/* IICAP interface theme: radar.
   Two colours: electric cobalt for structure and selection, signal orange for the main actions and the current
   sheet. A cobalt brand band with radar rings, a sweep and contact blips; a cool light page with faint radar rings.
   Warnings stay amber. Nothing animates continuously.
   Class names and ids are the ones app.js renders; app.js is unchanged. */

/* Space Grotesk (SIL Open Font License 1.1, see fonts/SpaceGrotesk-OFL.txt), embedded so it also loads when the
   tool is opened as a file. */
@font-face {
  font-family: "Space Grotesk";
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url("data:font/woff2;base64,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") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  color-scheme: light;
  --bg: #eef2fa;
  --bg-2: #eceefa;
  --surface: #ffffff;
  --surface-2: #f7f8fd;
  --surface-3: #eceefa;
  --tint: #f7f8fd;
  --field: #ffffff;
  --line: #e3e6f3;
  --line-2: #d3d7ec;
  --line-3: #bcc1dd;
  --frame: #c9cde6;
  --text: #141938;
  --text-2: #434a74;
  --muted: #666d94;
  --placeholder: #9ca2c2;
  --kicker: #1f4fe0;
  --accent: #1f5bff;
  --accent-strong: #1f5bff;
  --accent-hover: #1449e0;
  --accent-soft: rgba(31, 91, 255, .08);
  --accent-ring: rgba(31, 91, 255, .35);
  --on-accent: #ffffff;
  --cyan: #0873ad;
  --violet: #7a3fe0;
  --ok: #0a8058;
  --warn: #b45f00;
  --bad: #d9264a;
  --purple: var(--violet);
  --amber: var(--warn);
  --green: var(--ok);
  --red: var(--bad);
  --cobalt: linear-gradient(120deg, #1b1aa6 0%, #2347f0 52%, #1a9bff 100%);
  --cobalt-v: linear-gradient(180deg, #1f5bff 0%, #1aa3ff 100%);
  --gauge: linear-gradient(90deg, #1f5bff 0%, #1aa3ff 100%);
  --signal: #ff6b1a;
  --signal-gradient: linear-gradient(180deg, #ff8a3d 0%, #ff6b1a 100%);
  --on-signal: #1a0d04;
  --card: rgba(255, 255, 255, .9);
  --card-edge: rgba(31, 91, 255, .16);
  --shadow: 0 1px 2px rgba(15, 30, 80, .05), 0 14px 32px -18px rgba(20, 50, 140, .3);
  --shadow-signal: 0 12px 26px -12px rgba(255, 107, 26, .75);
  --r: 10px;
  --radius: 10px;
  --radius-md: 10px;
  --radius-sm: 8px;
  --font: "Space Grotesk", "Bahnschrift", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, Arial, sans-serif;
  --mono: var(--font);
  font-family: var(--font);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
* { scrollbar-width: thin; scrollbar-color: #c3c7e0 transparent; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  color: var(--text);
  background-color: var(--bg);
  font-size: 15px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
button, input, select, textarea { font: inherit; color: inherit; }
::selection { color: var(--on-accent); background: var(--accent); }
a { color: var(--accent); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* Unsaved-work reminder (rendered by app.js): a slim bar above the page, so it never covers a control */
body > .backup-banner {
  position: relative;
  z-index: 60;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
  padding: 10px 20px;
  border-bottom: 1px solid rgba(180, 95, 0, .25);
  color: var(--text-2);
  background: #fff6e8;
  font-size: 14px;
  line-height: 1.5;
}
body > .backup-banner span { flex: 1 1 360px; min-width: 0; }
body > .backup-banner span::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 9px;
  border-radius: 50%;
  background: var(--warn);
  vertical-align: 1px;
}
body > .backup-banner button {
  min-height: 34px;
  padding: 6px 14px;
  border: 1px solid transparent;
  border-radius: var(--r);
  color: #fff;
  background: var(--warn);
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
}
body > .backup-banner button.quiet { border-color: var(--line-3); color: var(--text-2); background: transparent; }
body > .backup-banner button.quiet:hover { color: var(--text); }

/* ---------- Form controls ---------- */
:where(input:not([type=checkbox], [type=radio], [type=range], [type=file], [type=hidden]), select, textarea) {
  width: 100%;
  min-height: 44px;
  padding: 10px 13px;
  border: 1px solid var(--line-2);
  border-radius: var(--r);
  outline: none;
  color: var(--text);
  background: var(--field);
  font-size: 15px;
  line-height: 1.4;
  transition: border-color .15s, box-shadow .15s;
}
:where(input:not([type=checkbox], [type=radio], [type=range], [type=file], [type=hidden]), select, textarea):hover { border-color: var(--line-3); }
:where(input:not([type=checkbox], [type=radio], [type=range], [type=file], [type=hidden]), select, textarea):focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
:where(input, textarea)::placeholder { color: var(--placeholder); }
:where(input, select, textarea):disabled { opacity: .55; cursor: not-allowed; }
:where(textarea) { resize: vertical; }
:where(select) {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 34px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5' fill='none' stroke='%237a8498' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  cursor: pointer;
}
select option { color: var(--text); background: #fff; }
input[type=range] { width: 100%; min-height: 28px; margin: 0; padding: 0; accent-color: var(--accent-strong); background: transparent; }

input[type=checkbox], input[type=radio] {
  appearance: none;
  -webkit-appearance: none;
  width: 16px;
  height: 16px;
  min-height: 16px;
  flex: 0 0 16px;
  margin: 2px 0 0;
  padding: 0;
  display: inline-grid;
  place-content: center;
  border: 1px solid var(--line-3);
  background: var(--field);
  cursor: pointer;
  transition: background-color .12s, border-color .12s;
}
input[type=checkbox] { border-radius: var(--r); }
input[type=radio] { border-radius: 50%; }
input[type=checkbox]::before {
  content: "";
  width: 10px;
  height: 10px;
  background: var(--on-accent);
  clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
  transform: scale(0);
  transition: transform .12s;
}
input[type=radio]::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--on-accent); transform: scale(0); transition: transform .12s; }
input[type=checkbox]:checked, input[type=radio]:checked { border-color: var(--accent-strong); background: var(--accent-strong); }
input[type=checkbox]:checked::before, input[type=radio]:checked::before { transform: scale(1); }
input[type=checkbox]:not(:disabled):hover, input[type=radio]:not(:disabled):hover { border-color: var(--accent); }
input[type=checkbox]:disabled, input[type=radio]:disabled { opacity: .45; cursor: not-allowed; }

/* Feature switches */
.target-toggle input, .library-toggle input, .campaign-dotmlpf input, .rapid-toggle input,
.visualizer-enable input, .dotmlpf-transition-toggle input, #commonBaselineField input#commonBaselineToggle {
  position: relative;
  width: 34px;
  height: 20px;
  min-height: 20px;
  min-width: 34px;
  flex: 0 0 34px;
  margin: 1px 0 0;
  padding: 0;
  display: block;
  border: 1px solid var(--line-3);
  border-radius: 999px;
  background: var(--surface-3);
}
.target-toggle input::before, .library-toggle input::before, .campaign-dotmlpf input::before, .rapid-toggle input::before,
.visualizer-enable input::before, .dotmlpf-transition-toggle input::before, #commonBaselineField input#commonBaselineToggle::before {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(20, 25, 70, .3);
  clip-path: none;
  transform: none;
  transition: transform .15s, background-color .15s;
}
.target-toggle input:checked, .library-toggle input:checked, .campaign-dotmlpf input:checked, .rapid-toggle input:checked,
.visualizer-enable input:checked, .dotmlpf-transition-toggle input:checked, #commonBaselineField input#commonBaselineToggle:checked {
  border-color: var(--accent-strong);
  background: var(--accent-strong);
}
.target-toggle input:checked::before, .library-toggle input:checked::before, .campaign-dotmlpf input:checked::before, .rapid-toggle input:checked::before,
.visualizer-enable input:checked::before, .dotmlpf-transition-toggle input:checked::before, #commonBaselineField input#commonBaselineToggle:checked::before {
  background: #fff;
  transform: translateX(14px);
}

/* Field labels */
.campaign-grid label > span, .campaign-scope-field > span, .campaign-notes > span, .doe-form-grid label > span,
.report-fields label > span, .advanced-grid label > span, .rapid-fields label > span, .evidence-map-grid label > span,
.visualizer-builder label > span, .visualizer-terrain-controls label > span, .range-paste > span,
.dotmlpf-poc-grid label > span, .dotmlpf-manual-override > label > span, .dotmlpf-coa-select > span {
  display: block;
  margin-bottom: 7px;
  color: var(--text-2);
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.4;
}
.campaign-grid label > span small, .campaign-scope-field > span small { color: var(--muted); font-weight: 400; }
.select-label, .measure-label { display: block; margin: 20px 0 8px; color: var(--text-2); font-size: 13.5px; font-weight: 500; }
.system-label { margin-top: 0; }

/* ---------- Buttons ---------- */
.primary-action, .secondary-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 9px 18px;
  border-radius: var(--r);
  font-size: 14.5px;
  font-weight: 600;
  line-height: 1.3;
  text-align: center;
  cursor: pointer;
  transition: background-color .15s, border-color .15s, box-shadow .15s, color .15s;
}
.primary-action {
  border: 1px solid transparent;
  color: #fff;
  background: var(--accent-strong);
}
.primary-action:hover:not(:disabled) {
  background: var(--accent-hover);
}
.secondary-action { border: 1px solid var(--line-3); color: var(--text); background: var(--tint); }
.secondary-action:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--accent) 55%, transparent);
  background: var(--accent-soft);
}
button:disabled { opacity: .42; cursor: not-allowed; }
.file-button { display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.file-button input { display: none; }
.reset {
  display: block;
  margin: 22px auto 0;
  padding: 4px 8px;
  border: 0;
  color: var(--muted);
  background: transparent;
  font-size: 14px;
  text-decoration: underline;
  text-decoration-color: var(--line-3);
  text-underline-offset: 4px;
  cursor: pointer;
}
.reset:hover { color: var(--text); }
.text-danger { border: 0; color: var(--bad); background: transparent; font-size: 13.5px; cursor: pointer; }
#startNewCampaignButton {
  margin-left: 0 !important;
  border-color: rgba(255, 107, 120, .32) !important;
  color: var(--bad) !important;
  background: transparent;
}
#startNewCampaignButton:hover { background: rgba(255, 107, 120, .08); }

/* ---------- Disclosure (details) ---------- */
main details { border: 1px solid var(--line); border-radius: var(--r); background: transparent; }
main summary {
  position: relative;
  padding: 11px 42px 11px 14px;
  border-radius: inherit;
  color: var(--text);
  font-size: 14.5px;
  font-weight: 500;
  list-style: none;
  cursor: pointer;
  transition: background-color .15s;
}
main summary::-webkit-details-marker { display: none; }
main summary:hover { background: var(--tint); }
main summary::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 17px;
  width: 6px;
  height: 6px;
  border-right: 1.5px solid var(--muted);
  border-bottom: 1.5px solid var(--muted);
  transform: translateY(-75%) rotate(45deg);
  transition: transform .15s;
}
main details[open] > summary::after { transform: translateY(-25%) rotate(225deg); }
.note { padding: 0 14px 14px; color: var(--text-2); font-size: 14px; line-height: 1.55; }
.note strong { color: var(--text); }

/* ---------- Cards and flow ---------- */
.campaign-grid, .campaign-briefs, .campaign-dotmlpf, .dotmlpf-panel, .campaign-gate, .trl-panel, .purpose-panel, .rapid-panel,
.gate-panel, #metricPlanningSurface, .evidence-intake, .input-card, .result-box, .stats-model, .save-panel, .doe-response-panel,
.doe-stage, .doe-output, .doe-conops, .leadership-view, .report-tracker, .detail > .report-fields, .threshold-panel,
.report-context, .decision-control, .assessment-file {
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--surface);
}
.campaign-briefs, .dotmlpf-panel, .campaign-gate, .trl-panel, .purpose-panel, .gate-panel, .evidence-intake, .stats-model,
.doe-output, .doe-conops, .leadership-view, .report-tracker { padding: 22px 24px; }
.campaign-workspace > * + *, .calculator > * + *, #executionSurface > * + *, .doe-workspace > * + *, .report-builder > * + * { margin-top: 16px; }

/* Headings */
.eyebrow { display: block; margin-bottom: 8px; color: var(--accent); font: 500 11.5px/1.4 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.campaign-heading, .doe-heading, .report-heading, .trl-heading, .purpose-heading, .gate-heading, .rapid-heading, .evidence-heading,
.stats-heading, .doe-output-heading, .campaign-gate-heading, .dotmlpf-panel-heading, .dotmlpf-gap-heading, .dotmlpf-transition-heading,
.formula-guide-heading, .report-tracker-heading, .safety-gate-heading, .evidence-mapping-heading, .visualizer-register-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.campaign-heading > div:first-child, .doe-heading > div:first-child, .report-heading > div:first-child { min-width: 0; flex: 1; }
.campaign-heading, .doe-heading, .report-heading { margin-bottom: 8px; }
.campaign-heading h2, .doe-heading h2, .report-heading h2 { margin: 0; font-size: 26px; font-weight: 600; line-height: 1.25; letter-spacing: -.015em; }
.campaign-heading p, .doe-heading p, .report-heading p { max-width: 640px; margin: 8px 0 0; color: var(--text-2); font-size: 15px; line-height: 1.55; }
.campaign-heading { flex-wrap: wrap; align-items: center; }
.campaign-heading > div:first-child { flex: 1 1 420px; }
.trl-heading h2, .purpose-heading h2, .gate-heading h2, .rapid-heading h2, .evidence-heading h2, .step h2 {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -.01em;
}
.trl-heading p, .purpose-heading p, .gate-heading p, .evidence-heading p, .step p {
  margin: 6px 0 0;
  color: var(--text-2);
  font-size: 14.5px;
  line-height: 1.5;
}
.campaign-briefs h3, .stats-heading h3, .doe-output-heading h3, .formula-guide-heading h3, .report-tracker-heading h3, .dotmlpf-panel-heading h3 {
  margin: 0;
  font-size: 16.5px;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: -.005em;
}
.dotmlpf-gap-heading h4, .dotmlpf-transition-heading h4 { margin: 0; font-size: 15.5px; font-weight: 600; line-height: 1.35; }

/* Small uppercase labels */
.campaign-handoff span, .doe-launch span, .doe-recommend-box span, .evidence-mapping-heading span, .campaign-gate-heading > div > span,
.safety-gate-heading > div > span, .rapid-section-label span, .visualizer-range-features strong, .library-source-body span,
.conops-node > span, .leadership-path span, .formula-label, .dotmlpf-gap-decision span, .visualizer-first-person-controls span,
.dotmlpf-gap-recommendation small {
  display: block;
  color: var(--muted);
  font: 500 11px/1.4 var(--mono);
  letter-spacing: .09em;
  text-transform: uppercase;
}

/* Numbered steps */
.step { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 18px; }
.step > span, .doe-stage > summary > span:first-child {
  width: 26px;
  height: 26px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border: 1px solid var(--accent-ring);
  border-radius: var(--r);
  color: var(--accent);
  background: var(--accent-soft);
  font: 600 13px/1 var(--mono);
}
.step h2 { margin-top: 1px; }

/* ---------- Status chips ---------- */
.campaign-readiness, .trl-confidence, .purpose-outcome, .gate-recommendation, .rapid-recommendation, .model-badge, .campaign-gate-status,
.flight-safety-status, .leadership-recommendation, .mapping-confidence, .dotmlpf-gap-count, .dotmlpf-transition-disposition,
.stats-disposition, .formula-guide-badge, .saved-count, .adequacy-status {
  --chip: var(--text-2);
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 26px;
  padding: 4px 11px;
  border: 1px solid color-mix(in srgb, var(--chip) 32%, transparent);
  border-radius: var(--r);
  color: var(--chip);
  background: color-mix(in srgb, var(--chip) 9%, transparent);
  font: 500 11.5px/1.2 var(--mono);
  letter-spacing: .06em;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
}
.campaign-readiness::before, .trl-confidence::before, .purpose-outcome::before, .gate-recommendation::before, .rapid-recommendation::before,
.model-badge::before, .campaign-gate-status::before, .flight-safety-status::before, .leadership-recommendation::before,
.mapping-confidence::before, .dotmlpf-gap-count::before, .dotmlpf-transition-disposition::before, .stats-disposition::before,
.adequacy-status::before {
  content: "";
  width: 6px;
  height: 6px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: currentColor;
}
.campaign-readiness.ready, .gate-recommendation.advance, .rapid-recommendation.advance, .campaign-gate-status.released,
.flight-safety-status.ready, .leadership-recommendation.proceed, .mapping-confidence.high, .dotmlpf-transition-disposition.status-ready,
.stats-disposition.pass, .adequacy-status.ready { --chip: var(--ok); }
.trl-confidence, .purpose-outcome, .campaign-gate-status.ready { --chip: var(--accent); }
.campaign-readiness.pending, .gate-recommendation.limited, .rapid-recommendation.limited, .campaign-gate-status.locked,
.leadership-recommendation.mitigate, .mapping-confidence.medium, .dotmlpf-gap-count, .dotmlpf-transition-disposition.status-limited,
.stats-disposition.preliminary, .adequacy-status.warning { --chip: var(--warn); }
.gate-recommendation.retest, .rapid-recommendation.retest, .flight-safety-status.blocked, .leadership-recommendation.hold,
.mapping-confidence.low, .dotmlpf-transition-disposition.status-blocked, .stats-disposition.fail, .adequacy-status.review { --chip: var(--bad); }

/* ---------- Stat strips ---------- */
.gate-status-grid, .rapid-status-grid, .dotmlpf-status-grid, .stats-cards, .doe-summary-grid, .report-tracker-grid,
.control-status-strip, .leadership-factors, .dotmlpf-transition-summary {
  display: grid;
  gap: 1px;
  margin-top: 16px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--line);
}
.gate-status-grid, .rapid-status-grid, .dotmlpf-status-grid, .doe-summary-grid, .report-tracker-grid, .dotmlpf-transition-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stats-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.control-status-strip { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.leadership-factors { margin-top: 0; grid-template-columns: 1fr 1fr; }
.gate-status-grid > div, .rapid-status-grid > div, .dotmlpf-status-grid > div, .stats-cards > div, .doe-summary-grid > div,
.report-tracker-grid > div, .control-status-strip > div, .leadership-factors > div, .dotmlpf-transition-summary > div {
  min-width: 0;
  padding: 12px 14px;
  background: var(--surface);
}
.gate-status-grid span, .rapid-status-grid span, .dotmlpf-status-grid span, .stats-cards span, .doe-summary-grid span,
.report-tracker-grid span, .control-status-strip span, .leadership-factors span, .dotmlpf-transition-summary span {
  display: block;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.35;
}
.gate-status-grid strong, .rapid-status-grid strong, .dotmlpf-status-grid strong, .stats-cards strong, .doe-summary-grid strong,
.report-tracker-grid strong, .control-status-strip strong, .leadership-factors strong, .dotmlpf-transition-summary strong {
  display: block;
  margin-top: 4px;
  color: var(--text);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
.doe-summary-grid strong, .leadership-factors strong, .dotmlpf-transition-summary strong { font-size: 14.5px; }

/* Progress */
.gate-progress, .doe-progress { height: 4px; margin-top: 16px; overflow: hidden; border-radius: var(--r); background: var(--surface-3); }
.gate-progress span, .doe-progress span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--accent-strong), var(--cyan));
  transition: width .25s ease;
}

/* ---------- Option cards ---------- */
.trl-option, .purpose-option, .category, .evidence-mode, .dotmlpf-mode-options label {
  display: block;
  padding: 12px 14px;
  border: 1px solid var(--line-2);
  border-radius: var(--r);
  color: var(--text-2);
  background: var(--tint);
  text-align: left;
  cursor: pointer;
  transition: border-color .15s, background-color .15s, box-shadow .15s;
}
.trl-option:hover, .purpose-option:hover, .category:hover, .evidence-mode:hover, .dotmlpf-mode-options label:hover {
  border-color: var(--line-3);
  background: var(--tint);
}
.trl-option.active, .purpose-option.active, .category.active, .evidence-mode.active, .dotmlpf-mode-options label:has(input:checked) {
  border-color: color-mix(in srgb, var(--accent) 70%, transparent);
  background: var(--accent-soft);
}
.trl-option strong, .purpose-option strong, .category strong, .evidence-mode strong, .dotmlpf-mode-options strong {
  display: block;
  color: var(--text);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.35;
}
.trl-option span, .purpose-option span, .evidence-mode span, .category small, .dotmlpf-mode-options small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 13.5px;
  line-height: 1.4;
}
.trl-option small { display: block; margin-top: 8px; color: var(--text-2); font-size: 13px; font-weight: 500; line-height: 1.3; }
.trl-option.active strong, .purpose-option.active strong, .category.active strong, .evidence-mode.active strong,
.dotmlpf-mode-options label:has(input:checked) strong { color: var(--text); }
.trl-option.active small, .category.active small { color: var(--accent); }
.category strong { font-family: var(--mono); font-size: 15.5px; letter-spacing: .04em; }

/* ---------- Toggle rows ---------- */
.target-toggle, .library-toggle, .campaign-dotmlpf, .rapid-toggle, .visualizer-enable, .dotmlpf-transition-toggle {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  cursor: pointer;
}
.target-toggle, .visualizer-enable, .dotmlpf-transition-toggle {
  padding: 14px 16px;
  border: 1px solid var(--line-2);
  border-radius: var(--r);
  background: var(--tint);
  transition: border-color .15s, background-color .15s;
}
.campaign-dotmlpf { padding: 16px 20px; transition: border-color .15s; }
.target-toggle:has(input:checked), .visualizer-enable:has(input:checked), .dotmlpf-transition-toggle:has(input:checked),
.campaign-dotmlpf:has(input:checked) {
  border-color: color-mix(in srgb, var(--accent) 45%, transparent);
}
.target-toggle span, .target-toggle strong, .target-toggle small, .library-toggle span, .library-toggle strong, .library-toggle small,
.campaign-dotmlpf span, .campaign-dotmlpf strong, .campaign-dotmlpf small, .rapid-toggle span, .rapid-toggle strong, .rapid-toggle small,
.visualizer-enable span, .visualizer-enable strong, .visualizer-enable small, .dotmlpf-transition-toggle span,
.dotmlpf-transition-toggle strong, .dotmlpf-transition-toggle small { display: block; }
.target-toggle strong, .library-toggle strong, .campaign-dotmlpf strong, .rapid-toggle strong, .visualizer-enable strong,
.dotmlpf-transition-toggle strong { color: var(--text); font-size: 15px; font-weight: 600; line-height: 1.35; }
.target-toggle small, .library-toggle small, .campaign-dotmlpf small, .rapid-toggle small, .visualizer-enable small,
.dotmlpf-transition-toggle small { margin-top: 3px; color: var(--muted); font-size: 13.5px; line-height: 1.45; }
.campaign-dotmlpf small.active { color: var(--ok); }

/* Checklist rows */
.gate-confirmations label, .rapid-confirmations label, .evidence-confirm, .campaign-gate-approval, .doe-check, .decision-acknowledgement,
.advanced-grid .exclude-run, .flight-safety-controls label, .dotmlpf-service-options label, #commonBaselineField label.common-baseline-switch {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: var(--text-2);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.45;
  cursor: pointer;
}

/* ---------- Campaign Initiator ---------- */
.campaign-heading .campaign-readiness { margin-left: auto; }
.campaign-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; padding: 24px; }
.campaign-grid .wide { grid-column: 1 / -1; }
.campaign-scope-field > small { display: block; margin-top: 8px; color: var(--muted); font-size: 13.5px; }
.campaign-category-chips, .assessment-category-scope { display: flex; flex-wrap: wrap; gap: 8px; }
.campaign-category-chips label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px 6px 9px;
  border: 1px solid var(--line-2);
  border-radius: var(--r);
  color: var(--text-2);
  background: var(--tint);
  font-size: 13.5px;
  line-height: 1.3;
  cursor: pointer;
  transition: border-color .15s, background-color .15s, color .15s;
}
.campaign-category-chips label:hover { border-color: var(--line-3); color: var(--text); }
.campaign-category-chips input { width: 14px; height: 14px; min-height: 14px; flex-basis: 14px; margin: 0; border-radius: 50%; }
.campaign-category-chips input::before { width: 8px; height: 8px; }
.campaign-category-chips label:has(input:checked) {
  border-color: color-mix(in srgb, var(--accent) 50%, transparent);
  color: var(--text);
  background: var(--accent-soft);
}
#commonBaselineField label.common-baseline-switch { align-items: center; padding: 2px 0; color: var(--text); font-weight: 500; }
#commonBaselineField small#commonBaselineSummary { margin: 8px 0 10px; color: var(--muted); font-size: 13.5px; line-height: 1.45; }
#campaignExpansionPanel {
  padding: 14px 16px !important;
  border-color: var(--line-2) !important;
  border-radius: var(--r);
  background: var(--tint);
  color: var(--text-2);
  font-size: 14px;
}
#campaignExpansionPanel label { color: var(--text); font-weight: 500 !important; }
#campaignExpansionPanel p { color: var(--muted); }

.campaign-briefs > div:first-child p { margin: 6px 0 0; color: var(--text-2); font-size: 14.5px; line-height: 1.5; }
.campaign-upload { display: flex; align-items: center; gap: 12px; margin-top: 16px; }
.campaign-upload > span { color: var(--muted); font-size: 13.5px; }
.campaign-brief-list, .evidence-file-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.campaign-brief-list p, .evidence-file-list p { margin: 0; color: var(--muted); font-size: 13.5px; }
.campaign-brief-list span, .evidence-file-list span {
  padding: 4px 10px;
  border: 1px solid var(--line-2);
  border-radius: var(--r);
  color: var(--text-2);
  background: var(--surface-2);
  font-size: 13px;
  line-height: 1.4;
}
.evidence-file-list span.review { border-color: rgba(242, 184, 75, .35); color: var(--warn); }
.campaign-notes { display: block; margin-top: 16px; }

/* Workflow gate */
.campaign-gate-heading > div { min-width: 0; }
.campaign-gate-heading strong, .campaign-gate-heading small { display: block; }
.campaign-gate-heading strong { margin-top: 6px; font-size: 16.5px; font-weight: 600; }
.campaign-gate-heading small { max-width: 640px; margin-top: 6px; color: var(--text-2); font-size: 14px; line-height: 1.5; }
.campaign-gate-checklist { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 18px 0 0; padding: 0; list-style: none; }
.campaign-gate-checklist li {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  color: var(--muted);
  font-size: 13.5px;
  line-height: 1.35;
}
.campaign-gate-checklist li::before { content: ""; width: 14px; height: 14px; flex: 0 0 auto; border: 1.5px dashed var(--line-3); border-radius: 50%; }
.campaign-gate-checklist li.complete { border-color: color-mix(in srgb, var(--ok) 22%, transparent); color: var(--text); }
.campaign-gate-checklist li.complete::before {
  border: 0;
  background: var(--ok) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.8 6.2 5 8.4 9.3 3.6' fill='none' stroke='%2306130d' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 11px no-repeat;
}
.campaign-gate-approval { margin-top: 14px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--r); }
.campaign-gate-approval span, .campaign-gate-approval strong, .campaign-gate-approval small { display: block; }
.campaign-gate-approval strong { color: var(--text); font-size: 14.5px; font-weight: 600; }
.campaign-gate-approval small { margin-top: 3px; color: var(--muted); font-size: 13.5px; }
.campaign-gate-approval:has(input:disabled) { cursor: not-allowed; opacity: .55; }
.campaign-gate-alert { min-height: 18px; margin-top: 8px; color: var(--warn); font-size: 13.5px; }
.campaign-gate-alert.success { color: var(--ok); }
.campaign-handoff {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 8px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.campaign-handoff strong, .campaign-handoff small { display: block; }
.campaign-handoff strong { margin-top: 6px; font-size: 15px; font-weight: 600; }
.campaign-handoff small { margin-top: 4px; color: var(--muted); font-size: 13.5px; line-height: 1.5; }
.campaign-handoff button { flex: 0 0 auto; }

/* ---------- DOTMLPF-P study ---------- */
.dotmlpf-panel-heading p { max-width: 640px; margin: 6px 0 0; color: var(--text-2); font-size: 14px; line-height: 1.5; }
.dotmlpf-panel-heading button { flex: 0 0 auto; }
.dotmlpf-mode-options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 18px; }
.dotmlpf-mode-options label { display: flex; gap: 10px; }
.dotmlpf-mode-options span { display: block; }
.dotmlpf-scrub-status { margin: 12px 0 0; color: var(--ok); font-size: 13.5px; font-weight: 500; }
.dotmlpf-scrub-status.warning { color: var(--warn); }
.dotmlpf-gap-section { margin-top: 16px; padding: 16px; border: 1px solid var(--line); border-radius: var(--r); background: var(--tint); }
.dotmlpf-gap-heading p { max-width: 660px; margin: 5px 0 0; color: var(--text-2); font-size: 13.5px; line-height: 1.5; }
.dotmlpf-gap-cards { display: grid; gap: 8px; margin-top: 14px; }
.dotmlpf-gap-card { overflow: hidden; border-left: 2px solid var(--warn); background: var(--surface); }
.dotmlpf-gap-card.severity-high { border-left-color: var(--bad); }
.dotmlpf-gap-card summary {
  display: grid;
  grid-template-columns: minmax(150px, .7fr) minmax(240px, 1.3fr);
  gap: 14px;
  align-items: center;
  padding: 12px 42px 12px 14px;
}
.dotmlpf-gap-card summary > div:first-child span { display: block; color: var(--text); font-size: 14px; font-weight: 600; }
.dotmlpf-gap-card summary > div:first-child strong { display: block; margin-top: 3px; color: var(--warn); font: 500 11.5px/1.4 var(--mono); letter-spacing: .04em; text-transform: uppercase; }
.dotmlpf-gap-card.severity-high summary > div:first-child strong { color: var(--bad); }
.dotmlpf-gap-recommendation { text-align: right; }
.dotmlpf-gap-recommendation strong { display: block; margin-top: 3px; color: var(--text-2); font-size: 13.5px; font-weight: 500; }
.dotmlpf-gap-recommendation em { display: inline-block; margin-top: 3px; color: var(--warn); font-size: 12px; font-style: normal; font-weight: 600; }
.dotmlpf-panel .dotmlpf-badge {
  display: inline-block;
  margin: 5px 0 0 6px;
  padding: 2px 8px;
  border: 1px solid rgba(242, 184, 75, .3);
  border-radius: var(--r);
  color: var(--warn);
  background: rgba(242, 184, 75, .08);
  font: 500 11px/1.5 var(--mono);
  letter-spacing: .05em;
  text-transform: uppercase;
}
.dotmlpf-panel .dotmlpf-badge.input { border-color: rgba(255, 107, 120, .3); color: var(--bad); background: rgba(255, 107, 120, .08); }
.dotmlpf-gap-body { padding: 0 14px 14px; border-top: 1px solid var(--line); }
.dotmlpf-gap-facts { padding: 10px 0; }
.dotmlpf-gap-facts p { margin: 6px 0; color: var(--text-2); font-size: 13.5px; line-height: 1.55; }
.dotmlpf-gap-facts strong { color: var(--text); }
.dotmlpf-panel .dotmlpf-gap-decision { font-size: 13.5px; }
.dotmlpf-panel .dotmlpf-gap-decision > div { padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r); }
.dotmlpf-gap-decision strong { display: block; margin-top: 4px; color: var(--text); font-weight: 500; line-height: 1.45; }
.dotmlpf-coa-select { display: block; margin-top: 10px; }
.dotmlpf-coa-select small { display: block; margin-top: 5px; color: var(--muted); font-size: 13px; }
.dotmlpf-panel .dotmlpf-decision {
  margin: 16px 0 0;
  padding: 16px 18px;
  border: 1px solid var(--line-2);
  border-radius: var(--r);
  color: var(--text-2);
  background: var(--tint);
}
.dotmlpf-panel .dotmlpf-decision strong { color: var(--text); }
.dotmlpf-panel .dotmlpf-decision table, .dotmlpf-panel .dotmlpf-coa-table { font-size: 13.5px; }
.dotmlpf-panel .dotmlpf-decision th, .dotmlpf-panel .dotmlpf-decision td,
.dotmlpf-panel .dotmlpf-coa-table th, .dotmlpf-panel .dotmlpf-coa-table td {
  padding: 8px 10px;
  border: 0;
  border-bottom: 1px solid var(--line);
}
.dotmlpf-panel .dotmlpf-decision th, .dotmlpf-panel .dotmlpf-coa-table th {
  color: var(--muted);
  background: var(--surface-2);
  font: 500 11px/1.4 var(--mono);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.dotmlpf-panel .dotmlpf-decision tr.rec td, .dotmlpf-panel .dotmlpf-coa-table tr.rec td { background: rgba(70, 209, 154, .08); }
.dotmlpf-panel .dotmlpf-ok { color: var(--ok); }
.dotmlpf-panel .dotmlpf-warn { color: var(--warn); }
.dotmlpf-panel .dotmlpf-decision h5 { color: var(--muted); }

.dotmlpf-controls { margin-top: 12px; }
.dotmlpf-controls-body { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; padding: 4px 14px 16px; }
.dotmlpf-control-label { display: block; color: var(--text); font-size: 14px; font-weight: 600; }
.dotmlpf-controls-body small { display: block; margin-top: 4px; color: var(--muted); font-size: 13px; line-height: 1.45; }
.dotmlpf-service-options { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 10px; }
.dotmlpf-service-options label { align-items: center; padding: 8px 10px; border: 1px solid var(--line); border-radius: var(--r); font-size: 13.5px; }
.dotmlpf-service-options input { margin: 0; }
.dotmlpf-service-options label:has(input:disabled) { cursor: default; opacity: .8; }
.dotmlpf-poc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }
.dotmlpf-poc-grid .wide { grid-column: 1 / -1; }
.dotmlpf-manual-override { grid-column: 1 / -1; padding-top: 14px; border-top: 1px solid var(--line); }
.dotmlpf-manual-override > label { display: block; margin-top: 10px; }
.dotmlpf-dimension-overrides { display: grid; gap: 8px; margin-top: 12px; }
.dotmlpf-override-row {
  display: grid;
  grid-template-columns: minmax(190px, 1.2fr) 140px minmax(180px, 1fr);
  gap: 8px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: var(--r);
}
.dotmlpf-override-row strong, .dotmlpf-override-row small { display: block; }
.dotmlpf-override-row strong { color: var(--text); font-size: 13.5px; font-weight: 600; }
.dotmlpf-override-row small { margin-top: 2px; font-size: 12px; }
.override-label { color: #8f2b1f; font-size: .68rem; letter-spacing: .04em; }
.dotmlpf-verification {
  margin: 14px 0 0;
  padding: 10px 14px;
  border-left: 2px solid var(--accent);
  border-radius: 0;
  color: var(--muted);
  background: var(--tint);
  font-size: 13.5px;
  line-height: 1.55;
}
.dotmlpf-verification strong { color: var(--text-2); }

.dotmlpf-transition-toggle { margin-top: 14px; }
.dotmlpf-transition-panel { margin-top: 12px; padding: 16px; border: 1px solid var(--line); border-radius: var(--r); background: var(--tint); }
.dotmlpf-transition-summary { margin-top: 12px; }
.dotmlpf-readiness-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.dotmlpf-readiness-item { padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r); background: var(--surface); }
.dotmlpf-readiness-item header { display: flex; justify-content: space-between; gap: 8px; }
.dotmlpf-readiness-item header strong { color: var(--text); font-size: 13px; font-weight: 500; }
.dotmlpf-readiness-item header span { color: var(--text-2); font: 400 12px var(--mono); }
.dotmlpf-readiness-track { height: 4px; margin: 8px 0; overflow: hidden; border-radius: var(--r); background: var(--surface-3); }
.dotmlpf-readiness-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--accent-strong), var(--cyan)); }
.dotmlpf-readiness-item small { display: block; color: var(--muted); font-size: 12px; line-height: 1.4; }
.dotmlpf-transition-details { margin-top: 10px; }
.dotmlpf-transition-details-body { padding: 0 14px 14px; }
.dotmlpf-transition-details-body section { margin-top: 14px; }
.dotmlpf-transition-details-body h5 { margin: 0 0 6px; color: var(--text); font-size: 13.5px; font-weight: 600; }
.dotmlpf-transition-details-body ul, .dotmlpf-transition-details-body ol { margin: 0; padding-left: 19px; color: var(--text-2); font-size: 13.5px; line-height: 1.5; }
.dotmlpf-transition-details-body li + li { margin-top: 4px; }
.dotmlpf-transition-details-body li small { display: block; color: var(--muted); }
.dotmlpf-lane-grid, .dotmlpf-pathways, .dotmlpf-timeline { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.dotmlpf-lane-grid article, .dotmlpf-pathways article, .dotmlpf-timeline article { padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r); }
.dotmlpf-lane-grid strong, .dotmlpf-pathways strong, .dotmlpf-timeline strong { color: var(--text); font-size: 13.5px; }
.dotmlpf-lane-grid p, .dotmlpf-pathways p { margin: 4px 0 0; color: var(--text-2); font-size: 13px; line-height: 1.45; }
.dotmlpf-timeline ul { margin-top: 5px; }
.dotmlpf-transition-caveat {
  margin: 14px 0 0;
  padding: 10px 12px;
  border-left: 2px solid var(--ok);
  border-radius: 0;
  color: var(--muted);
  background: var(--tint);
  font-size: 13px;
  line-height: 1.5;
}
.dotmlpf-gap-empty { margin: 0; padding: 12px; border: 1px dashed var(--line-3); border-radius: var(--r); color: var(--muted); font-size: 13.5px; }

/* ---------- Assessment Framework ---------- */
.trl-options, .purpose-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 18px; }
.trl-guidance {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 12px;
  padding: 10px 14px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  font-size: 13.5px;
  line-height: 1.45;
}
.trl-guidance strong { color: var(--text); font-weight: 500; }
.trl-guidance span { color: var(--muted); text-align: right; }
.library-toggle { margin-top: 16px; }
.confidence-note, .rapid-policy-note, .planning-basis { margin: 12px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }

.purpose-guidance { margin-top: 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--r); }
.purpose-guidance p { margin: 0; color: var(--text-2); font-size: 14px; line-height: 1.55; }
.purpose-terms { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.purpose-terms span { padding: 3px 10px; border: 1px solid var(--line-2); border-radius: var(--r); color: var(--text-2); font-size: 13px; line-height: 1.5; }
.purpose-context, .rapid-context, .gate-confirmations { margin-top: 14px; }
.purpose-fields, .rapid-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 4px 14px 16px; }
.purpose-fields label { color: var(--text-2); font-size: 13.5px; font-weight: 500; }
.purpose-fields label > span { display: block; margin-bottom: 7px; }
.purpose-fields .wide, .rapid-fields .wide { grid-column: 1 / -1; }

.rapid-panel { padding: 20px 24px; }
.rapid-section-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.rapid-section-label strong { color: var(--text-2); font-size: 14px; font-weight: 500; }
.rapid-body { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.rapid-disclaimer {
  margin: 12px 0 0;
  padding: 10px 14px;
  border-left: 2px solid var(--warn);
  border-radius: 0;
  color: var(--text-2);
  background: rgba(242, 184, 75, .05);
  font-size: 13.5px;
  line-height: 1.5;
}
.rapid-explanation, .gate-explanation { margin: 12px 0 0; color: var(--text-2); font-size: 14px; line-height: 1.5; }
.rapid-confirmations { display: grid; gap: 10px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--r); }
.rapid-confirmations label span { margin: 0; }

.gate-inputs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.gate-inputs label { color: var(--text-2); font-size: 13.5px; font-weight: 500; }
.gate-inputs select, .gate-inputs input { margin-top: 7px; }
.gate-confirmations > div { display: grid; gap: 10px; padding: 4px 14px 14px; }

.assessment-category-scope { margin: 10px 0 0; padding: 10px; border: 1px solid var(--line); border-radius: var(--r); }
.assessment-category-scope button {
  padding: 5px 11px;
  border: 1px solid var(--line-2);
  border-radius: var(--r);
  color: var(--text-2);
  background: transparent;
  font-size: 13px;
  cursor: pointer;
}
.assessment-category-scope button.active { border-color: var(--accent-strong); color: #fff; background: var(--accent-strong); }
.category-buttons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.target-toggle { margin-top: 14px; }
.metric-plan-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--tint);
}
.metric-plan-bar span, .metric-plan-bar strong { display: block; }
.metric-plan-bar span { color: var(--muted); font-size: 13px; }
.metric-plan-bar strong { margin-top: 2px; color: var(--text); font-size: 15px; font-weight: 600; }
.metric-plan-bar button { flex: 0 0 auto; }
.metric-plan-review { margin-top: 8px; }
.metric-plan-review summary { display: flex; justify-content: space-between; gap: 10px; }
.metric-plan-review summary span { color: var(--muted); font-size: 13.5px; font-weight: 400; }
.metric-plan-review summary b { color: var(--text); font-weight: 600; }
.metric-plan-review-body { padding: 0 14px 12px; }
.demo-coverage-message { margin-top: 2px; color: var(--warn); font-size: 13.5px; line-height: 1.45; }
.demo-coverage-message.complete { color: var(--ok); }
.demo-metric-list { max-height: 220px; margin-top: 8px; overflow: auto; }
.demo-metric-list > p { margin: 8px 0; color: var(--muted); font-size: 13.5px; }
.demo-metric-row { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid var(--line); }
.demo-metric-row span, .saved-metric-type {
  padding: 3px 6px;
  border-radius: var(--r);
  color: var(--cyan);
  background: rgba(86, 208, 255, .1);
  font: 600 11px/1.3 var(--mono);
  letter-spacing: .04em;
  text-align: center;
}
.demo-metric-row span.mop, .saved-metric-row .saved-metric-type.mop { color: var(--violet); background: rgba(179, 157, 255, .1); }
.demo-metric-row span.mos, .saved-metric-row .saved-metric-type.mos { color: var(--warn); background: rgba(242, 184, 75, .1); }
.demo-metric-row div strong, .demo-metric-row div small { display: block; }
.demo-metric-row div strong { font-size: 14px; font-weight: 500; }
.demo-metric-row div small { margin-top: 2px; color: var(--muted); font-size: 13px; }
.demo-remove { border: 0; color: var(--muted); background: transparent; font-size: 13px; cursor: pointer; }
.demo-remove:hover { color: var(--bad); }
.doe-launch {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 14px;
  padding: 16px 18px;
  border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
  border-radius: var(--r);
  background: linear-gradient(120deg, color-mix(in srgb, var(--accent) 9%, transparent), transparent 65%);
}
.doe-launch span { color: var(--accent); }
.doe-launch strong, .doe-launch small { display: block; }
.doe-launch strong { margin-top: 6px; font-size: 15px; font-weight: 600; }
.doe-launch small { margin-top: 4px; color: var(--muted); font-size: 13.5px; line-height: 1.5; }
.doe-launch-actions { min-width: 230px; display: grid; gap: 8px; }

.formula-block {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 18px;
  padding: 16px 18px;
  border: 1px solid var(--line-2);
  border-radius: var(--r);
  background: linear-gradient(180deg, var(--tint), transparent), var(--field);
}
.formula-block > div { min-width: 0; }
.formula-label { margin-bottom: 5px; }
.formula-block strong { display: block; color: var(--text); font: 400 17px/1.45 var(--mono); letter-spacing: -.01em; }
.type-badge { flex: 0 0 auto; padding: 6px 9px; border: 1px solid; border-radius: var(--r); font: 600 13px/1 var(--mono); letter-spacing: .05em; }
.type-badge.moe { color: var(--cyan); border-color: rgba(86, 208, 255, .3); background: rgba(86, 208, 255, .08); }
.type-badge.mop { color: var(--violet); border-color: rgba(179, 157, 255, .3); background: rgba(179, 157, 255, .08); }
.type-badge.mos { color: var(--warn); border-color: rgba(242, 184, 75, .3); background: rgba(242, 184, 75, .08); }
.formula-guide { margin-top: 12px; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--r); }
.formula-guide-heading h3 { font-size: 16px; }
.formula-variable-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.formula-variable-grid article { display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--r); background: var(--tint); }
.formula-variable, .variable {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(86, 208, 255, .28);
  border-radius: var(--r);
  color: var(--cyan);
  background: rgba(86, 208, 255, .08);
  font: 600 14px/1 var(--mono);
}
.formula-variable.y, .y-card .variable { border-color: rgba(179, 157, 255, .3); color: var(--violet); background: rgba(179, 157, 255, .08); }
.formula-variable-grid strong, .formula-variable-grid small { display: block; }
.formula-variable-grid strong { color: var(--text); font-size: 14.5px; font-weight: 600; }
.formula-variable-grid small { margin-top: 3px; color: var(--muted); font-size: 13.5px; line-height: 1.45; }
.formula-example, .library-source { margin-top: 10px; }
.formula-example-body { padding: 0 14px 14px; }
.formula-example-body p { margin: 0 0 10px; color: var(--text-2); font-size: 14px; line-height: 1.5; }
.formula-example-equation {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--field);
}
.formula-example-equation span { color: var(--muted); font: 400 13px var(--mono); }
.formula-example-equation strong { color: var(--cyan); font: 500 14.5px var(--mono); }
.formula-example-body button { margin-top: 10px; }
.formula-example-body > small { display: block; margin-top: 8px; color: var(--muted); font-size: 13px; line-height: 1.45; }
.library-source-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  margin: 0 14px 14px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--line);
}
.library-source-body > div { padding: 10px 12px; background: var(--surface); }
.library-source-body .wide { grid-column: 1 / -1; }
.library-source-body strong, .library-source-body p { display: block; margin: 5px 0 0; color: var(--text-2); font-size: 13.5px; font-weight: 400; line-height: 1.5; white-space: pre-line; }

/* ---------- Execute & Analyze ---------- */
.evidence-mode-options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 18px; }
.evidence-upload-body { margin-top: 14px; }
.evidence-drop-zone {
  min-height: 96px;
  padding: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  border: 1px dashed var(--line-3);
  border-radius: var(--r);
  background: var(--tint);
  transition: border-color .15s, background-color .15s;
}
.evidence-drop-zone.dragover { border-color: var(--accent); background: var(--accent-soft); }
.evidence-drop-zone strong, .evidence-drop-zone small { display: block; }
.evidence-drop-zone strong { font-size: 14.5px; font-weight: 600; }
.evidence-drop-zone small { margin-top: 3px; color: var(--muted); font-size: 13px; }
.evidence-mapping { margin-top: 14px; padding: 16px; border: 1px solid var(--line); border-radius: var(--r); }
.evidence-mapping-heading strong { display: block; margin-top: 5px; font-size: 15px; font-weight: 600; }
.evidence-mapping > p { margin: 8px 0 0; color: var(--muted); font-size: 13.5px; line-height: 1.5; }
.evidence-map-grid { display: grid; grid-template-columns: 1.35fr .65fr 1.35fr .65fr; gap: 10px; margin-top: 14px; }
.evidence-confirm { margin-top: 12px; }
.evidence-actions { display: flex; align-items: center; gap: 12px; margin-top: 12px; }
.evidence-actions small { color: var(--muted); font-size: 13px; line-height: 1.45; }
.evidence-limitation { margin: 12px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }

.input-step, .result-step { margin-top: 0 !important; margin-bottom: 0; }
.detail > .step + * { margin-top: 14px; }
.input-grid { display: grid; grid-template-columns: 1fr 40px 1fr; gap: 12px; align-items: stretch; }
.input-card { position: relative; padding: 20px; }
.variable { width: 30px; height: 30px; margin-bottom: 14px; font-size: 15px; }
.input-card > label { display: block; min-height: 40px; margin-bottom: 10px; font-size: 15px; font-weight: 500; line-height: 1.35; }
.number-field { position: relative; }
.number-field input { padding-right: 70px; font: 400 17px/1.4 var(--mono); }
.number-field span { position: absolute; top: 50%; right: 12px; transform: translateY(-50%); color: var(--muted); font-size: 13.5px; pointer-events: none; }
.operator { display: grid; place-items: center; color: var(--muted); font: 300 26px/1 var(--mono); }
.input-card details { margin-top: 14px; }
.error { min-height: 20px; padding-top: 2px; color: var(--bad); font-size: 14px; }
.detail > .error { margin-top: 6px; }

.result-box { min-height: 130px; padding: 24px 26px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.result-box > div { min-width: 190px; }
.result-box span:first-child { display: block; color: var(--text-2); font-size: 14px; }
.result-box strong {
  display: inline-block;
  margin: 8px 8px 0 0;
  color: var(--accent);
  font-size: clamp(44px, 6vw, 64px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -.03em;
  font-variant-numeric: tabular-nums;
}
.result-box #resultUnit { display: inline; color: var(--text-2); font-size: 17px; font-weight: 500; }
.result-box p { max-width: 340px; margin: 0; color: var(--text-2); font-size: 14.5px; line-height: 1.55; }
.result-box.complete {
  border-color: rgba(86, 208, 255, .32);
}
.result-box.complete strong { color: var(--cyan); }

.stats-heading h3 { margin-top: 0; }
.interval-visual { position: relative; height: 16px; margin: 24px 7px 0; border-radius: var(--r); background: var(--surface-3); }
.interval-band { position: absolute; top: 4px; height: 8px; border-radius: var(--r); background: rgba(86, 208, 255, .35); }
.estimate-marker, .threshold-marker, .baseline-marker { position: absolute; top: -4px; width: 2px; height: 24px; border-radius: var(--r); transform: translateX(-50%); }
.estimate-marker { background: var(--cyan); }
.threshold-marker { background: var(--warn); }
.baseline-marker { background: var(--violet); }
.interval-key { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 8px; color: var(--muted); font: 400 12px var(--mono); }
.interval-key span:nth-child(2) { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; font-family: var(--font); }
.interval-key i { display: inline-block; width: 8px; height: 8px; border-radius: var(--r); }
.estimate-key { background: var(--cyan); }
.threshold-key { background: var(--warn); }
.baseline-key { background: var(--violet); }
.distribution-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 20px; }
.distribution-heading > span { color: var(--text-2); font-size: 14px; font-weight: 500; }
.replication-bars {
  position: relative;
  height: 104px;
  margin-top: 10px;
  padding: 12px 10px 8px;
  display: grid;
  grid-template-columns: repeat(24, minmax(2px, 1fr));
  align-items: end;
  gap: 3px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--field);
}
.replication-bars::before, .replication-bars::after { content: ""; position: absolute; right: 10px; left: 10px; height: 1px; background: rgba(150, 165, 200, .08); }
.replication-bars::before { top: 33%; }
.replication-bars::after { top: 66%; }
.replication-bars .histogram-bar {
  position: relative;
  z-index: 1;
  width: 100%;
  min-height: 3px;
  border-radius: var(--r);
  background: linear-gradient(to top, rgba(86, 208, 255, .3), var(--cyan));
}
.replication-bars.point-only { display: flex; align-items: center; justify-content: center; }
.replication-bars.point-only::after { top: 50%; right: 12%; left: 12%; background: var(--line-3); }
.replication-bars.point-only .point-stem { position: absolute; z-index: 2; bottom: 50%; width: 2px; height: 30px; background: var(--cyan); }
.replication-bars.point-only .point-dot {
  position: relative;
  z-index: 3;
  width: 16px;
  height: 16px;
  border: 4px solid var(--field);
  border-radius: 50%;
  background: var(--cyan);
}
.replication-bars.point-only .point-label { position: absolute; z-index: 3; top: 12px; color: var(--text); font-size: 13px; font-weight: 500; }
.distribution-axis { display: flex; justify-content: space-between; gap: 8px; margin-top: 6px; color: var(--muted); font: 400 12px var(--mono); }
.distribution-axis span:nth-child(2) { text-align: center; }
.stats-explanation { margin: 12px 0 0; color: var(--text-2); font-size: 14px; line-height: 1.55; }

.threshold-panel > summary, .report-context > summary, .assessment-file > summary { padding: 14px 44px 14px 18px; font-size: 15px; }
.threshold-content { padding: 4px 18px 18px; }
.comparison-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.comparison-grid + .comparison-grid { margin-top: 14px; }
.threshold-content label { display: block; color: var(--text-2); font-size: 13.5px; font-weight: 500; }
.threshold-content label > span:first-child { display: block; }
.threshold-content label > :not(span) { margin-top: 7px; }
.threshold-field { max-width: 320px; }
.mission-threshold-guidance {
  margin: 12px 0 0;
  padding: 10px 14px;
  border-left: 2px solid var(--warn);
  border-radius: 0;
  color: var(--text-2);
  background: rgba(242, 184, 75, .06);
  font-size: 13.5px;
  line-height: 1.5;
}
.decision { margin-top: 14px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--r); font-size: 14.5px; line-height: 1.5; }
.decision.neutral { color: var(--muted); }
.decision.pass { border-color: rgba(70, 209, 154, .35); color: var(--ok); background: rgba(70, 209, 154, .08); }
.decision.fail { border-color: rgba(255, 107, 120, .35); color: var(--bad); background: rgba(255, 107, 120, .08); }

.save-panel { padding: 20px 24px; }
.save-panel > label { display: block; margin-bottom: 8px; color: var(--text-2); font-size: 13.5px; font-weight: 500; }
.save-panel label small { color: var(--muted); font-weight: 400; }
.advanced-capture { margin-top: 12px; }
.advanced-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 4px 14px 16px; }
.advanced-grid .wide, .advanced-grid .exclude-run { grid-column: 1 / -1; }
.advanced-grid .exclude-run { align-items: center; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r); }
.advanced-grid .exclude-run > span { display: inline; margin: 0; color: var(--text-2); font-size: 14px; font-weight: 400; }
.advanced-grid .exclude-run input { margin: 0; }
.save-panel .primary-action { width: 100%; min-height: 42px; margin-top: 14px; }
.save-status { min-height: 20px; margin-top: 8px; color: var(--ok); font-size: 14px; }

/* ---------- DoE plan ---------- */
#campaignExpansionBanner {
  padding: 12px 14px !important;
  border-color: rgba(86, 208, 255, .3) !important;
  border-radius: var(--r);
  color: var(--text-2);
  background: rgba(86, 208, 255, .06) !important;
  font-size: 14px !important;
}
.doe-progress-text { margin: 8px 0 0 !important; color: var(--muted); font-size: 13.5px; }
.doe-response-panel { padding: 16px 20px; }
.doe-response-panel span, .doe-response-panel strong { display: block; }
.doe-response-panel > div:first-child span { color: var(--muted); font-size: 13px; }
.doe-response-panel strong { margin-top: 3px; font-size: 15.5px; font-weight: 600; }
.doe-response-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.doe-response-chips span { padding: 3px 9px; border: 1px solid var(--line-2); border-radius: var(--r); color: var(--text-2); background: var(--surface-2); font-size: 13px; }

.doe-stage > summary { display: flex; align-items: center; gap: 14px; padding: 16px 48px 16px 18px; }
.doe-stage > summary div strong, .doe-stage > summary div small { display: block; }
.doe-stage > summary div strong { color: var(--text); font-size: 15.5px; font-weight: 600; }
.doe-stage > summary div small { margin-top: 2px; color: var(--muted); font-size: 13.5px; font-weight: 400; line-height: 1.45; }
.doe-stage[open] > summary { border-bottom: 1px solid var(--line); border-radius: var(--r); }
.doe-stage-body { padding: 18px; }
.doe-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.doe-form-grid .wide { grid-column: 1 / -1; }
.doe-check { align-items: center; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r); }
.doe-check input { margin: 0; }
.doe-check span { margin: 0 !important; color: var(--text-2) !important; font-size: 14px !important; font-weight: 400 !important; }
.doe-inline-form { display: grid; grid-template-columns: 1.35fr .8fr .8fr 1fr auto; gap: 8px; }
.doe-inline-form.event-form { grid-template-columns: 1fr 1fr 1.4fr auto; }
.doe-inline-form button { min-height: 44px; }
.doe-list { margin-top: 12px; }
.doe-list > p { margin: 0; color: var(--muted); font-size: 13.5px; }
.doe-list-row { display: grid; grid-template-columns: 1.3fr 1fr auto; align-items: center; gap: 12px; padding: 10px 2px; border-top: 1px solid var(--line); }
.doe-list-row strong, .doe-list-row small { display: block; }
.doe-list-row strong { font-size: 14.5px; font-weight: 500; }
.doe-list-row small { margin-top: 2px; color: var(--muted); font-size: 13px; }
.doe-list-row em { color: var(--ok); font-size: 13px; font-style: normal; }
.doe-list-row button { border: 0; color: var(--muted); background: transparent; font-size: 13.5px; cursor: pointer; }
.doe-list-row button:hover { color: var(--bad); }
.doe-recommend-box { margin-bottom: 14px; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r); background: var(--tint); }
.doe-recommend-box strong { display: block; margin-top: 6px; color: var(--text); font-size: 14.5px; font-weight: 500; }
.doe-recommend-controls { display: grid; grid-template-columns: 1.2fr 1fr auto; gap: 8px; margin-top: 12px; }
.doe-factor-recommend-controls { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-top: 12px; }
.doe-recommend-box p { margin: 10px 0 0; color: var(--muted); font-size: 13.5px; line-height: 1.5; }

.range-upload { display: flex; align-items: center; gap: 12px; }
.range-upload span { color: var(--muted); font-size: 13.5px; }
.range-paste { display: block; margin-top: 14px; }
.range-verification-grid { display: grid; grid-template-columns: 1fr 180px 1.2fr; gap: 12px; align-items: end; margin: 14px 0; }
.range-verification-grid label { display: flex; flex-direction: column; gap: 7px; color: var(--text-2); font-size: 13.5px; font-weight: 500; }
.range-verification-grid label.range-verify-check {
  flex-direction: row;
  align-items: center;
  gap: 10px;
  min-height: 40px;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  font-size: 14px;
  font-weight: 400;
  cursor: pointer;
}
.range-verify-check input { margin: 0; }
.range-actions { display: flex; align-items: center; gap: 12px; margin-top: 10px; }
.range-actions small { color: var(--muted); font-size: 13px; line-height: 1.45; }
.verification-status, .fidelity-notice { margin: 12px 0 0; padding: 9px 12px; border: 1px solid; border-radius: var(--r); font-size: 13.5px; font-weight: 500; line-height: 1.5; }
.verification-status.warning, .fidelity-notice { border-color: rgba(242, 184, 75, .3); color: var(--warn); background: rgba(242, 184, 75, .06); }
.verification-status.ready, .fidelity-notice.engineering { border-color: rgba(70, 209, 154, .3); color: var(--ok); background: rgba(70, 209, 154, .06); }
.fidelity-notice.geospatial { border-color: rgba(86, 208, 255, .3); color: var(--cyan); background: rgba(86, 208, 255, .06); }
.range-crosswalk { margin-top: 14px; overflow-x: auto; }
.range-crosswalk > p { margin: 0; color: var(--muted); font-size: 13.5px; }
.range-crosswalk select { min-width: 130px; min-height: 32px; padding: 5px 30px 5px 9px; font-size: 13.5px; }
.range-status { font-weight: 600; }
.range-status.supported { color: var(--ok); }
.range-status.mitigation { color: var(--warn); }
.range-status.gap { color: var(--bad); }
.range-status.unknown { color: var(--muted); }

/* In-app tables */
.range-crosswalk table, .doe-run-matrix table, .visualizer-table-wrap table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 13.5px;
}
.range-crosswalk table { overflow: hidden; border: 1px solid var(--line); border-radius: var(--r); }
.range-crosswalk th, .range-crosswalk td, .doe-run-matrix th, .doe-run-matrix td, .visualizer-table-wrap th, .visualizer-table-wrap td {
  padding: 9px 10px;
  border-bottom: 1px solid var(--line);
  color: var(--text-2);
  text-align: left;
  vertical-align: top;
}
.range-crosswalk th, .doe-run-matrix th, .visualizer-table-wrap th {
  color: var(--muted);
  background: var(--surface-2);
  font: 500 11px/1.4 var(--mono);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.range-crosswalk tr:last-child td, .doe-run-matrix tr:last-child td, .visualizer-table-wrap tr:last-child td { border-bottom: 0; }
.range-crosswalk td strong { color: var(--text); }

/* Flight safety gate */
.safety-gate-heading > div { min-width: 0; }
.safety-gate-heading > div > span { color: color-mix(in srgb, var(--bad) 85%, var(--text)); }
.safety-gate-heading > div > strong, .safety-gate-heading small { display: block; }
.safety-gate-heading > div > strong { margin-top: 6px; color: var(--text); font-size: 15.5px; font-weight: 600; }
.safety-gate-heading small { max-width: 680px; margin-top: 4px; color: var(--text-2); font-size: 13.5px; line-height: 1.5; }
.safety-applicability { display: grid; grid-template-columns: minmax(250px, 420px) 1fr; gap: 14px; align-items: end; margin-top: 16px; }
.safety-applicability label, .flight-safety-fields label { display: flex; flex-direction: column; gap: 7px; color: var(--text-2); font-size: 13.5px; font-weight: 500; }
.safety-applicability p {
  margin: 0;
  padding: 10px 14px;
  border-left: 2px solid var(--bad);
  border-radius: 0;
  color: var(--text-2);
  background: rgba(255, 107, 120, .05);
  font-size: 13.5px;
  line-height: 1.5;
}
.flight-safety-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 14px; }
.flight-safety-controls.inactive { opacity: .5; }
.flight-safety-controls label { padding: 12px; border: 1px solid var(--line); border-radius: var(--r); transition: border-color .15s; }
.flight-safety-controls label:has(input:checked) { border-color: color-mix(in srgb, var(--accent) 40%, transparent); }
.flight-safety-controls span, .flight-safety-controls strong, .flight-safety-controls small { display: block; }
.flight-safety-controls strong { color: var(--text); font-size: 14px; font-weight: 600; }
.flight-safety-controls small { margin-top: 3px; color: var(--muted); font-size: 13px; line-height: 1.45; }
.flight-safety-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.flight-safety-fields .wide { grid-column: 1 / -1; }
.flight-safety-issues {
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px solid rgba(255, 107, 120, .3);
  border-radius: var(--r);
  color: var(--bad);
  background: rgba(255, 107, 120, .06);
  font-size: 13.5px;
  line-height: 1.5;
}
.flight-safety-issues p { margin: 0; }
.flight-safety-issues ul { margin: 8px 0 0; padding-left: 18px; }
.flight-safety-caveat { margin: 12px 0 0; color: var(--muted); font-size: 13px; line-height: 1.5; }

/* 3D visualizer */
.visualizer-body { margin-top: 14px; }
.visualizer-scene-fields { display: grid; grid-template-columns: 1.4fr 1fr .65fr; gap: 10px; }
.visualizer-scene-fields label { display: flex; flex-direction: column; gap: 7px; color: var(--text-2); font-size: 13.5px; font-weight: 500; }
.visualizer-scene-fields .wide { grid-column: span 2; }
.visualizer-range-features { margin-top: 10px; padding: 10px 14px; border: 1px solid var(--line); border-radius: var(--r); }
.visualizer-range-features span, .visualizer-range-features small { display: block; }
.visualizer-range-features span { margin-top: 4px; color: var(--text-2); font-size: 13.5px; }
.visualizer-range-features small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.visualizer-terrain-controls { display: grid; grid-template-columns: .8fr 1fr 1fr; gap: 12px; margin-top: 10px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--r); }
.visualizer-terrain-controls label > span strong { color: var(--accent); font: 500 13px var(--mono); }
.visualizer-workspace { display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 12px; margin-top: 12px; }
.visualizer-canvas-panel, .visualizer-builder, .visualizer-register { border: 1px solid var(--line); border-radius: var(--r); background: var(--field); }
.visualizer-canvas-panel { min-width: 0; overflow: hidden; }
.visualizer-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border-bottom: 1px solid var(--line); background: var(--surface); }
.visualizer-toolbar strong, .visualizer-toolbar small { display: block; }
.visualizer-toolbar strong { font-size: 14px; font-weight: 600; }
.visualizer-toolbar small { margin-top: 2px; color: var(--muted); font-size: 12px; }
.visualizer-view-actions { display: flex; align-items: center; gap: 6px; }
.visualizer-view-mode {
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid var(--line-3);
  border-radius: var(--r);
  color: var(--text-2);
  background: transparent;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
}
.visualizer-view-mode:hover { color: var(--text); border-color: var(--accent); }
.visualizer-view-mode.active { border-color: var(--accent-strong); color: #fff; background: var(--accent-strong); }
.visualizer-camera { display: flex; gap: 4px; }
.visualizer-camera button, .visualizer-first-person-controls button {
  border: 1px solid var(--line-2);
  border-radius: var(--r);
  color: var(--text-2);
  background: transparent;
  cursor: pointer;
}
.visualizer-camera button { width: 30px; height: 30px; font-size: 15px; }
.visualizer-camera button:hover, .visualizer-camera button:focus-visible,
.visualizer-first-person-controls button:hover { border-color: var(--accent); color: var(--text); background: var(--accent-soft); }
.visualizer-canvas-panel canvas { display: block; width: 100%; height: clamp(320px, 40vw, 520px); touch-action: none; cursor: grab; }
.visualizer-canvas-panel canvas:active { cursor: grabbing; }
.visualizer-first-person-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 8px 12px; border-top: 1px solid var(--line); background: var(--surface); }
.visualizer-first-person-controls span { margin-right: 6px; }
.visualizer-first-person-controls button { padding: 5px 9px; font-size: 13px; }
.visualizer-domain-key { display: grid; grid-template-columns: repeat(3, 1fr); font: 600 11.5px/1.4 var(--mono); text-align: center; }
.visualizer-domain-key span { padding: 6px 5px; }
.domain-space { color: #d5e6ff; background: #0a1530; }
.domain-air { color: #062033; background: #8fcbe7; }
.domain-ground { color: #e2eee5; background: #3e5748; }
.visualizer-axis-key { display: flex; flex-wrap: wrap; gap: 16px; padding: 8px 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.visualizer-axis-key span { display: flex; align-items: center; gap: 6px; }
.visualizer-axis-key i { width: 14px; height: 3px; border-radius: var(--r); }
.axis-x { background: #ff7e88; }
.axis-y { background: #67d99b; }
.axis-z { background: #6de0ff; }
.visualizer-builder { padding: 14px; }
.visualizer-builder h4 { margin: 0 0 12px; font-size: 15px; font-weight: 600; }
.visualizer-builder label { display: block; margin-top: 10px; }
.visualizer-coordinate-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 10px; }
.visualizer-coordinate-grid label { margin: 0; }
.visualizer-coordinate-grid input { padding: 8px; }
.visualizer-builder > button { width: 100%; margin-top: 12px; }
.visualizer-selected-status { padding: 8px 10px; border: 1px dashed var(--line-3); border-radius: var(--r); color: var(--muted); font-size: 13px; }
.visualizer-selected-status.active { border-style: solid; border-color: var(--accent); color: var(--text); background: var(--accent-soft); }
.visualizer-image-source { margin-top: 10px; padding: 8px 10px; border: 1px solid var(--line); border-radius: var(--r); color: var(--muted); font-size: 12px; line-height: 1.45; }
.visualizer-image-source a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.visualizer-register { margin-top: 12px; padding: 12px 14px; }
.visualizer-register-heading { align-items: center; }
.visualizer-register-heading strong, .visualizer-register-heading small { display: block; }
.visualizer-register-heading strong { font-size: 14.5px; font-weight: 600; }
.visualizer-register-heading small { margin-top: 2px; color: var(--muted); font-size: 13px; }
.visualizer-register > div > p { margin: 8px 0 0; color: var(--muted); font-size: 13.5px; }
.visualizer-table-wrap { margin-top: 10px; overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r); }
.visualizer-table-wrap table { min-width: 720px; }
.visualizer-table-wrap td strong, .visualizer-table-wrap td small { display: block; }
.visualizer-table-wrap td strong { color: var(--text); }
.visualizer-table-wrap td small { margin-top: 2px; color: var(--muted); font-size: 11.5px; }
.visualizer-table-wrap td button { margin-right: 6px; border: 0; color: var(--accent); background: transparent; font-size: 13px; cursor: pointer; }
.visualizer-table-wrap td button:last-child { color: var(--bad); }
.visualizer-table-wrap tr.selected td { background: var(--accent-soft); }
.visualizer-photo-credit { margin: 8px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.visualizer-caution {
  margin: 10px 0 0;
  padding: 10px 14px;
  border-left: 2px solid var(--warn);
  border-radius: 0;
  color: var(--text-2);
  background: rgba(242, 184, 75, .05);
  font-size: 13.5px;
  line-height: 1.5;
}
.visualizer-caution strong { color: var(--text); }

/* DoE outputs */
.adequacy-panel { display: grid; grid-template-columns: 210px 1fr; gap: 18px; margin-top: 14px; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r); }
.adequacy-panel span { display: block; color: var(--muted); font-size: 13px; }
.adequacy-status { margin-top: 8px; }
.adequacy-panel ul { margin: 0; padding-left: 18px; color: var(--text-2); font-size: 14px; line-height: 1.6; }
.doe-run-matrix { max-height: 320px; margin-top: 14px; overflow: auto; border: 1px solid var(--line); border-radius: var(--r); }
.doe-run-matrix:empty { display: none; }
.doe-run-matrix th { position: sticky; top: 0; z-index: 1; }
.doe-conops-flow { display: flex; align-items: stretch; gap: 8px; margin-top: 14px; padding-bottom: 4px; overflow-x: auto; }
.conops-node { min-width: 150px; padding: 12px; border: 1px solid var(--line); border-radius: var(--r); background: var(--tint); }
.conops-node > span { color: var(--accent); }
.conops-node > strong, .conops-node > small { display: block; }
.conops-node > strong { margin-top: 6px; font-size: 14px; font-weight: 600; }
.conops-node > small { margin-top: 6px; color: var(--muted); font-size: 13px; line-height: 1.45; }
.conops-arrow { display: flex; align-items: center; color: var(--muted); font-size: 18px; }
.leadership-grid { display: grid; grid-template-columns: 170px 1fr; gap: 16px; margin-top: 16px; }
.leadership-score { display: flex; align-items: center; justify-content: center; }
.leadership-gauge {
  position: relative;
  width: 132px;
  height: 132px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: conic-gradient(var(--cyan) 0%, var(--surface-3) 0);
}
.leadership-gauge::before { content: ""; position: absolute; inset: 12px; border-radius: 50%; background: var(--surface); }
.leadership-gauge > * { position: relative; }
.leadership-gauge strong { font-size: 26px; font-weight: 600; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.leadership-gauge span { margin-top: 2px; color: var(--muted); font-size: 12px; }
.leadership-path { display: flex; align-items: stretch; gap: 8px; margin-top: 14px; overflow-x: auto; }
.leadership-path > div { min-width: 135px; flex: 1; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r); }
.leadership-path span { color: var(--accent); }
.leadership-path strong { display: block; margin-top: 5px; color: var(--text); font-size: 13.5px; font-weight: 500; }
.leadership-path i { display: flex; align-items: center; color: var(--muted); font-size: 17px; font-style: normal; }
.leadership-actions {
  margin-top: 12px;
  padding: 12px 14px;
  border-left: 2px solid var(--warn);
  border-radius: 0;
  background: rgba(242, 184, 75, .05);
}
.leadership-actions p, .leadership-actions ul { margin: 0; color: var(--text-2); font-size: 13.5px; line-height: 1.55; }
.leadership-actions ul { padding-left: 18px; }
.doe-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin-top: 20px !important; }

/* ---------- Reports ---------- */
.report-heading > div:last-child { display: flex; flex: 0 0 auto; flex-direction: column; align-items: flex-end; gap: 6px; }
.autosave-status { color: var(--muted); font-size: 13px; }
.report-tracker-heading p { margin: 5px 0 0; color: var(--text-2); font-size: 14px; line-height: 1.5; }
.report-metric-total {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  height: 52px;
  padding: 0 12px;
  border: 1px solid var(--accent-ring);
  border-radius: var(--r);
  color: var(--accent);
  background: var(--accent-soft);
  font: 600 22px/1 var(--mono);
}
.report-readiness { margin-top: 12px; padding: 10px 14px; border: 1px solid var(--line); border-radius: var(--r); font-size: 14px; font-weight: 500; line-height: 1.5; }
.report-readiness.ready { border-color: rgba(70, 209, 154, .3); color: var(--ok); background: rgba(70, 209, 154, .06); }
.report-readiness.warning { border-color: rgba(242, 184, 75, .3); color: var(--warn); background: rgba(242, 184, 75, .06); }
.report-readiness.empty { color: var(--text-2); }
.saved-metric-review { margin-top: 12px; }
.saved-metric-review > summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.saved-metric-review > summary span { color: var(--accent); font-size: 13.5px; }
.saved-metric-list { padding: 0 14px 12px; }
.saved-metric-list > p { margin: 4px 0; color: var(--muted); font-size: 13.5px; }
.saved-metric-row { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--line); }
.saved-metric-row:first-child { border-top: 0; }
.saved-metric-type { min-width: 40px; }
.saved-metric-name strong, .saved-metric-name small { display: block; }
.saved-metric-name strong { color: var(--text); font-size: 14px; font-weight: 500; }
.saved-metric-name small { margin-top: 2px; color: var(--muted); font-size: 13px; }
.saved-metric-status { color: var(--text-2); font-size: 13px; text-align: right; }
.saved-metric-status.ready { color: var(--ok); }
.saved-metric-status.warning { color: var(--warn); }
.report-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.detail > .report-fields { gap: 16px 18px; padding: 22px 24px; }
.report-fields .wide { grid-column: 1 / -1; }
.context-fields { padding: 4px 18px 18px; }
.decision-control > summary { display: flex; justify-content: space-between; gap: 16px; padding: 14px 44px 14px 18px; font-size: 15px; }
.decision-control > summary strong { color: var(--warn); font: 500 11.5px/1.8 var(--mono); letter-spacing: .06em; }
.decision-control-body { padding: 0 18px 18px; }
.decision-control-body > .control-status-strip { margin-top: 4px; }
.decision-control .report-fields { margin-top: 14px; padding: 0; }
.report-fields .decision-acknowledgement {
  align-items: center;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: var(--r);
}
.report-fields .decision-acknowledgement > span { margin: 0; color: var(--text-2); font-size: 14px; font-weight: 400; }
.decision-acknowledgement input { margin: 0; }
.report-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.report-action {
  display: block;
  min-height: 88px;
  padding: 16px 18px;
  border: 1px solid var(--line-2);
  border-radius: var(--r);
  color: var(--text);
  background: var(--surface);
  text-align: left;
  cursor: pointer;
  transition: border-color .15s, background-color .15s, box-shadow .15s;
}
.report-action strong, .report-action small { display: block; }
.report-action strong { font-size: 15.5px; font-weight: 600; }
.report-action small { margin-top: 6px; color: var(--muted); font-size: 13.5px; line-height: 1.45; }
.report-action:hover:not(:disabled), .report-action:focus-visible {
  border-color: color-mix(in srgb, var(--accent) 55%, transparent);
  outline: none;
  background: color-mix(in srgb, var(--accent) 5%, var(--surface));
}
.detail > .report-doe-link { display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-top: 12px; color: var(--muted); font-size: 13.5px; }
.detail > .report-message { min-height: 20px; margin-top: 8px; padding: 0; color: var(--bad); font-size: 14px; }
.file-actions { display: flex; align-items: center; gap: 10px; padding: 4px 18px 16px; }
.file-actions span { color: var(--muted); font-size: 13.5px; }
#backupLastStatus { display: block; padding: 0 18px 16px; color: var(--muted); font-size: 13px; }
.report-output {
  padding: clamp(20px, 4vw, 40px);
  border: 0;
  border-radius: var(--r);
  color: #172333;
  background: #fff;
  /* the generated report keeps its original typography */
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: normal;
  -webkit-font-smoothing: auto;
}
.report-output a { color: revert; }
.report-tools { display: flex; justify-content: flex-end; gap: 10px; }

/* ---------- Report document (printed output; light paper) ---------- */
.report-cover { padding-bottom: 18px; border-bottom: 3px solid #173c65; }
.report-cover .report-kicker { margin: 0 0 5px; color: #28587f; font-size: .72rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.report-cover h2 { margin: 0; color: #102d4b; font-size: 1.55rem; }
.report-meta { display: grid; grid-template-columns: repeat(2, 1fr); gap: 7px 20px; margin: 15px 0 0; padding: 0; list-style: none; font-size: .84rem; }
.report-meta strong { color: #173c65; }
.report-section { margin-top: 22px; }
.report-section h3 { margin: 0 0 9px; color: #173c65; font-size: 1.02rem; }
.report-section p { margin: 0 0 9px; line-height: 1.5; }
.report-summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; }
.summary-tile { padding: 12px; border: 1px solid #ccd8e2; border-radius: 8px; background: #f4f7fa; }
.summary-tile span, .summary-tile strong { display: block; }
.summary-tile span { color: #5c6d7a; font-size: .72rem; }
.summary-tile strong { margin-top: 3px; color: #173c65; font-size: 1.25rem; }
.report-table-wrap { overflow-x: auto; }
.report-table { width: 100%; border-collapse: collapse; font-size: .77rem; }
.report-table th, .report-table td { padding: 9px 8px; vertical-align: top; text-align: left; border: 1px solid #ced8e1; line-height: 1.4; }
.report-table th { color: #173c65; background: #edf3f7; font-weight: 850; }
.report-table .status-pass { color: #087446; font-weight: 900; }
.report-table .status-fail { color: #b0202b; font-weight: 900; }
.report-table .status-tbd { color: #856100; font-weight: 900; }
.report-table .status-preliminary { color: #6a4ba0; font-weight: 900; }
.report-table .status-claimed, .iap-document .status-claimed { color: #8a5b00; font-weight: 900; }
.decision-banner { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 12px; padding: 14px; border: 1px solid #b9cce0; border-radius: 9px; background: #eef5fb; }
.decision-banner span, .decision-banner strong { display: block; }
.decision-banner span { color: #5b6d7c; font-size: .75rem; }
.decision-banner strong { margin-top: 3px; color: #173c65; font-size: 1.2rem; }
.decision-banner p { max-width: 520px; margin: 0; font-size: .82rem; }
.report-note { margin-top: 14px; padding: 11px 13px; border-left: 4px solid #28587f; color: #40505d; background: #edf3f7; font-size: .82rem; line-height: 1.45; }
.iap-document { color: #111; font-family: Arial, Helvetica, sans-serif; background: #fff; }
.iap-cover { position: relative; min-height: 760px; padding: 18px 34px 28px; display: flex; flex-direction: column; background: #fff; }
.iap-cover-marking { text-align: center; color: #080b82; font-size: .78rem; font-weight: 900; letter-spacing: .05em; }
.iap-cover-body { margin: auto 0; text-align: center; }
.iap-brand { margin-bottom: 28px; color: #24557f; font-size: 1rem; font-weight: 900; letter-spacing: .16em; }
.iap-cover h1 { margin: 0; color: #082f64; font-size: clamp(2.2rem, 7vw, 4.3rem); line-height: 1.05; text-transform: uppercase; }
.iap-cover h2 { margin: 22px 0 0; color: #24557f; font-size: clamp(1.2rem, 3vw, 1.75rem); text-transform: uppercase; }
.iap-cover-body > p { margin: 12px 0 0; color: #3c556c; font-size: .88rem; font-weight: 800; letter-spacing: .045em; }
.iap-rule { width: 120px; height: 3px; margin: 28px auto; background: #082f64; }
.iap-cover dl { width: min(520px, 100%); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid #aeb8c1; border-bottom: 1px solid #aeb8c1; }
.iap-cover dl div { padding: 11px 14px; text-align: left; }
.iap-cover dt { color: #536575; font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.iap-cover dd { margin: 3px 0 0; font-size: .86rem; font-weight: 700; }
.iap-cover-footer { display: flex; justify-content: space-between; gap: 20px; color: #080b82; font-size: .72rem; font-weight: 900; }
.iap-fixed-marking { display: none; }
.iap-section { margin: 26px 0; }
.iap-section > h2 { margin: 0 0 11px; padding-bottom: 4px; border-bottom: 2px solid #7d858d; color: #24557f; font-size: 1.15rem; line-height: 1.2; }
.iap-section > h3 { margin: 22px 0 8px; color: #444; font-size: 1rem; text-decoration: underline; text-decoration-color: #6e7378; text-underline-offset: 4px; }
.iap-section p { margin: 0 0 11px; color: #171717; font-size: .88rem; line-height: 1.48; }
.iap-section em { color: #555; font-size: .72rem; }
.iap-section small { color: #4d5964; font-size: .7rem; line-height: 1.35; }
.iap-table { width: 100%; margin: 0 0 22px; border-collapse: collapse; table-layout: fixed; font-size: .75rem; }
.iap-table th, .iap-table td { padding: 9px 10px; vertical-align: middle; text-align: left; border: 1px solid #6f7377; line-height: 1.35; overflow-wrap: anywhere; }
.iap-table th { color: #fff; background: #080b82; font-weight: 800; }
.iap-table tbody tr:nth-child(even) td { background: #edf1f5; }
.iap-table .id-col { width: 11%; }
.iap-framework-table th:first-child, .iap-framework-table td:first-child { width: 31%; font-weight: 700; }
.iap-guide-table th:nth-child(2), .iap-guide-table th:nth-child(3) { width: 29%; }
.iap-results-table th:nth-child(2) { width: 22%; }
.iap-results-table th:nth-child(3) { width: 25%; }
.iap-results-table th:nth-child(4) { width: 18%; }
.iap-decision-table th, .iap-decision-table td { text-align: center; }
.iap-decision-table th:first-child, .iap-decision-table td:first-child { width: 43%; text-align: left; }
.iap-decision-table td strong { color: #082f64; font-size: 1.05rem; }
.iap-trial-table { font-size: .67rem; }
.iap-trial-table th:nth-child(2), .iap-trial-table th:nth-child(7) { width: 20%; }
.iap-annex { margin-top: 40px; padding-top: 4px; }
.iap-annex > h2 { text-transform: uppercase; }
.iap-document .status-pass { color: #087446; font-weight: 900; }
.iap-document .status-fail { color: #a1121d; font-weight: 900; }
.iap-document .status-tbd { color: #745800; font-weight: 900; }
.iap-document .status-preliminary { color: #5d3b91; font-weight: 900; }

/* ---------- Sheet layout ---------- */
.sheet { max-width: 1320px; margin: 0 auto; padding: 30px clamp(16px, 3vw, 40px) 64px; }
.sheet-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 32px; }
.brand-kicker { display: block; color: var(--kicker); font-size: 15px; font-weight: 600; letter-spacing: .01em; }
.brand-block h1 { margin: 6px 0 0; font-size: clamp(30px, 3.4vw, 42px); font-weight: 700; line-height: 1.08; letter-spacing: -.015em; }
.brand-block p { max-width: 540px; margin: 12px 0 0; color: var(--text-2); font-size: 14.5px; line-height: 1.55; }
.title-block { flex: 0 0 auto; width: min(440px, 100%); border-collapse: collapse; table-layout: fixed; font-size: 13px; }
.title-block tr:first-child > :nth-child(1) { width: 78px; }
.title-block tr:first-child > :nth-child(3) { width: 64px; }
.title-block tr:first-child > :nth-child(4) { width: 150px; }
.title-block th, .title-block td { padding: 8px 11px; border: 1px solid var(--frame); text-align: left; vertical-align: top; line-height: 1.35; }
.title-block th { color: var(--kicker); font-weight: 500; white-space: nowrap; }
.title-block td { color: var(--text); font-weight: 600; overflow-wrap: break-word; }
#tbAnalyst { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.title-block .tone-warn { color: var(--warn); }
.title-block .tone-ok { color: var(--ok); }
.title-block .tone-bad { color: var(--bad); }

/* Sheet stepper */
.workspace-nav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 38px 0 30px; }
.workspace-tab {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  padding: 0;
  border: 0;
  color: var(--text);
  background: none;
  text-align: left;
  cursor: pointer;
}
.workspace-tab > span {
  position: relative;
  z-index: 1;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 1.5px solid var(--frame);
  border-radius: 50%;
  color: var(--text);
  background: var(--bg);
  font-size: 15px;
  font-weight: 600;
  transition: border-color .15s, background-color .15s, color .15s;
}
.workspace-tab:not(:last-child)::after { content: ""; position: absolute; top: 17px; right: -4px; left: 44px; border-top: 1.5px dashed var(--line-3); }
.workspace-tab strong, .workspace-tab small { display: block; }
.workspace-tab strong { font-size: 15px; font-weight: 600; line-height: 1.3; }
.workspace-tab small { margin-top: 3px; color: var(--muted); font-size: 13px; line-height: 1.35; }
.workspace-tab:not(:disabled):hover > span { border-color: var(--accent); color: var(--accent); }
.workspace-tab.active > span { border-color: var(--accent); color: var(--on-accent); background: var(--accent); }
.workspace-tab.active small { color: var(--accent); }
.workspace-tab:disabled { cursor: not-allowed; }
.workspace-tab:disabled > span { border-style: dashed; border-color: var(--line-3); color: var(--text-2); }
.workspace-tab:disabled > div { opacity: .85; }

/* Body: the active detail on the left, status and actions on the right */
.sheet-body { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 26px; align-items: start; }
main { min-width: 0; }
.campaign-workspace, .calculator, .doe-workspace, .report-builder { max-width: none; margin: 0; }
.campaign-heading, .doe-heading, .report-heading { display: none !important; }
.sheet-rail { display: flex; flex-direction: column; gap: 18px; }
@media (min-height: 780px) and (min-width: 1001px) { .sheet-rail { position: sticky; top: 18px; } }

/* Detail frames */
.detail { position: relative; border: 1.5px solid var(--frame); border-radius: 0; background: var(--tint); }
.detail:not(details) { padding: 28px 28px 26px; }
details.detail { padding: 0; }
.detail:not(details) > * + * { margin-top: 18px; }
.detail-head { display: flex; align-items: center; gap: 14px; }
.detail-head-title { font-size: 21px; font-weight: 600; line-height: 1.25; }
.detail-head-rule { flex: 1 1 auto; min-width: 24px; height: 1px; background: var(--line-2); }
.detail-head-tag { flex: 0 0 auto; color: var(--kicker); font-size: 13px; font-weight: 500; white-space: nowrap; }
details.detail > summary .detail-head-rule { align-self: center; }
.is-dup { display: none !important; }
.detail-title { margin: 0; font-size: 21px; font-weight: 600; line-height: 1.25; }
.detail :is(.campaign-grid, .report-fields) { padding: 0; border: 0; background: none; }
.detail :is(.campaign-dotmlpf, .dotmlpf-panel, .doe-response-panel, .input-card, .result-box, .stats-model, .save-panel,
  .threshold-panel, .report-tracker, .report-context):not(.detail) {
  border: 1px dashed var(--line-3);
  background: var(--tint);
}
.detail > .doe-stage:not(.detail) { border: 0; background: none; }
.detail > .doe-stage:not(.detail) > summary { padding: 0 0 16px; }
.detail > .doe-stage:not(.detail) > .doe-stage-body { padding: 18px 0 0; }

/* Rail */
.rail-card { position: relative; padding: 20px 20px 18px; border: 1.5px solid var(--frame); border-radius: 0; background: var(--tint); }
.rail-card-rule { flex: 1 1 auto; height: 1px; margin-left: 14px; background: var(--line-2); }
.rail-card h3 { margin: 0; font-size: 19px; font-weight: 600; line-height: 1.25; }
.rail-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.release-card { border-color: var(--accent); background: var(--accent-soft); }
.rail-hint { margin: 0; color: var(--muted); font-size: 13.5px; }
.release-card:not(:has(#doeLaunch[hidden])) .rail-hint { display: none; }
.readiness-card h3 { margin-bottom: 0; }
.readiness-card > .rail-card-head { justify-content: flex-start; margin-bottom: 12px; }
.readiness-row { display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; padding: 7px 0; }
.readiness-row.is-hidden { display: none; }
.readiness-row span { color: var(--text-2); font-size: 13.5px; }
.readiness-row strong { color: var(--text); font-size: 13.5px; font-weight: 600; text-align: right; }
.readiness-bar { grid-column: 1 / -1; height: 8px; border: 1px solid var(--line-3); }
.readiness-bar b { display: block; width: var(--fill, 0%); height: 100%; background: var(--text-2); transition: width .3s ease; }
.readiness-overall { margin-top: 10px; padding-top: 12px; border-top: 1px dashed var(--line-3); }
.readiness-overall span { display: block; color: var(--text-2); font-size: 13px; }
.readiness-overall strong { display: block; margin-top: 3px; color: var(--accent); font-size: 18px; font-weight: 600; text-transform: lowercase; }
.readiness-overall strong::first-letter { text-transform: uppercase; }
.rail-tools { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px; }
.rail-tools .file-actions, .rail-tools-campaign { display: contents; }
.rail-tools .secondary-action, .rail-tools summary { min-height: 38px; padding: 7px 13px; font-size: 13.5px; }
.rail-tools #fileStatus:empty { display: none; }
.rail-tools #fileStatus, .rail-tools #backupLastStatus { flex: 1 1 100%; padding: 0; color: var(--muted); font-size: 12.5px; }
.archive-expand { border: 0 !important; }
.archive-expand > summary {
  display: inline-flex;
  align-items: center;
  border: 1.5px solid var(--frame);
  color: var(--text);
  font-weight: 600;
  list-style: none;
  cursor: pointer;
}
.archive-expand > summary::-webkit-details-marker { display: none; }
.archive-expand > summary::after { display: none; }
.archive-expand > summary:hover { border-color: var(--accent); color: var(--accent); }
.archive-expand[open] { flex: 1 1 100%; }
.archive-expand[open] > summary { border-color: var(--accent); color: var(--accent); }
.archive-expand #campaignExpansionPanel { margin-top: 10px !important; }
#newCampaignSlot:empty { display: none; }

/* ---------- One page per sheet (ui.js) ---------- */
.sheet-continue { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 12px 16px; margin-top: 26px; }
.sheet-continue button { cursor: pointer; }
.continue-note { margin: 0 auto 0 0; color: var(--text-2); font-size: 14px; }
.step-prev, .step-next {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 10px 20px;
  border-radius: var(--r);
  font-size: 15.5px;
  font-weight: 600;
  text-align: left;
}
.step-prev { border: 1.5px solid var(--frame); color: var(--text); background: transparent; }
.step-prev::before { content: "\2190"; }
.step-prev:hover { border-color: var(--accent); color: var(--accent); }
.step-next { margin-left: auto; border: 1.5px solid var(--accent); color: var(--on-accent); background: var(--accent); }
.step-next::after { content: "\2192"; }
.step-next:hover:not(:disabled) { border-color: var(--accent-hover); background: var(--accent-hover); }
.step-next:disabled { border-style: dashed; border-color: var(--line-3); color: var(--text-2); background: transparent; cursor: not-allowed; }
.stepped .doe-stage > summary, .stepped .decision-control > summary { cursor: default; }
.stepped .doe-stage > summary:hover, .stepped .decision-control > summary:hover { background: transparent; }
.stepped .doe-stage > summary::after, .stepped .decision-control > summary::after { display: none; }
.campaign-boundary.is-collapsed { display: none; }
.result-box.empty strong { color: var(--line-3); }

/* Long generated blocks open from their heading */
.foldable:not(.unfolded) > :not(.fold-head) { display: none !important; }
.fold-head { position: relative; padding-right: 30px; border-radius: var(--r); cursor: pointer; }
.fold-head::after {
  content: "";
  position: absolute;
  top: 12px;
  right: 6px;
  width: 7px;
  height: 7px;
  border-right: 1.5px solid var(--muted);
  border-bottom: 1.5px solid var(--muted);
  transform: rotate(45deg);
  transition: transform .15s;
}
.unfolded > .fold-head::after { top: 16px; transform: rotate(225deg); }
.fold-head:hover h4 { color: var(--accent); }

/* Fine print behind an info button */
.info-folded:not(.info-open) { display: none !important; }
.info-toggle {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  margin: 10px 0 0;
  padding: 0;
  border: 1px solid var(--line-3);
  border-radius: 50%;
  color: var(--muted);
  background: transparent;
  font: italic 600 12px/1 Georgia, "Times New Roman", serif;
  cursor: pointer;
}
.info-toggle:hover, .info-toggle[aria-expanded="true"] { border-color: var(--accent); color: var(--accent); }
.range-actions .info-toggle { flex: 0 0 auto; margin-top: 0; }
#campaignExpansionPanel .info-toggle { display: grid; margin: 8px 0; }

/* ---------- Blueprint finish ---------- */
.eyebrow, .campaign-handoff span, .doe-launch span, .doe-recommend-box span, .evidence-mapping-heading span,
.safety-gate-heading > div > span, .rapid-section-label span, .visualizer-range-features strong, .library-source-body span,
.conops-node > span, .leadership-path span, .formula-label, .dotmlpf-gap-decision span, .visualizer-first-person-controls span,
.dotmlpf-gap-recommendation small {
  color: var(--kicker);
  font-family: var(--font);
  font-weight: 600;
  letter-spacing: .1em;
}
.safety-gate-heading > div > span { color: var(--bad); }
:where(input:not([type=checkbox], [type=radio], [type=range], [type=file], [type=hidden]), select, textarea) { border-color: var(--line-3); border-radius: var(--r); }
:where(input:not([type=checkbox], [type=radio], [type=range], [type=file], [type=hidden]), select, textarea):hover { border-color: var(--frame); }
:where(select) { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5' fill='none' stroke='%23c5caf0' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
select option { color: var(--text); background: var(--bg); }
input[type=checkbox], input[type=radio] { border-color: var(--frame); }
.primary-action, .secondary-action { border-radius: var(--r); }
.primary-action { border: 1.5px solid var(--accent); color: #fff; background: var(--accent); }
.primary-action:hover:not(:disabled) { border-color: var(--accent-hover); background: var(--accent-hover); }
.primary-action:disabled { border-style: dashed; border-color: var(--line-3); color: var(--text-2); background: transparent; opacity: .8; }
.secondary-action { border: 1.5px solid var(--frame); color: var(--text); background: transparent; }
.secondary-action:hover:not(:disabled) { border-color: var(--accent); color: var(--accent); background: transparent; }
#startNewCampaignButton { border-color: var(--bad) !important; }
#startNewCampaignButton:hover { color: var(--on-accent) !important; background: var(--bad); }
.trl-option.active, .purpose-option.active, .category.active, .evidence-mode.active, .dotmlpf-mode-options label:has(input:checked) {
  border-color: var(--accent);
  background: var(--accent-soft);
  box-shadow: inset 0 0 0 1px var(--accent);
}
.trl-option.active small, .category.active small { color: var(--accent); }
.campaign-readiness, .trl-confidence, .purpose-outcome, .gate-recommendation, .rapid-recommendation, .model-badge, .campaign-gate-status,
.flight-safety-status, .leadership-recommendation, .mapping-confidence, .dotmlpf-gap-count, .dotmlpf-transition-disposition,
.stats-disposition, .formula-guide-badge, .saved-count, .adequacy-status {
  border-color: currentColor;
  border-radius: var(--r);
  background: transparent;
  font-family: var(--font);
  font-weight: 600;
}
.campaign-readiness::before, .trl-confidence::before, .purpose-outcome::before, .gate-recommendation::before, .rapid-recommendation::before,
.model-badge::before, .campaign-gate-status::before, .flight-safety-status::before, .leadership-recommendation::before,
.mapping-confidence::before, .dotmlpf-gap-count::before, .dotmlpf-transition-disposition::before, .stats-disposition::before,
.adequacy-status::before { display: none; }
.rail-card-head .campaign-gate-status { min-height: 0; padding: 0; border: 0; font-size: 13px; }
.step > span, .doe-stage > summary > span:first-child { border: 1.5px solid var(--accent); border-radius: 50%; color: var(--accent); background: transparent; }
.campaign-category-chips label { border-color: var(--line-3); border-radius: var(--r); }
.campaign-category-chips input { border-radius: var(--r); }
.campaign-category-chips label:has(input:checked) { border-color: var(--accent); color: var(--text); background: var(--accent-soft); }
.brief-drop { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 20px; border: 1.5px dashed var(--line-3); background: var(--tint); }
.brief-drop .campaign-brief-list { margin-top: 0; }
.brief-drop .campaign-brief-list p { color: var(--text); font-weight: 600; }
.brief-drop .campaign-upload { flex-direction: column; align-items: flex-end; gap: 6px; margin-top: 0; }
body > .backup-banner button { border-radius: var(--r); color: #fff; background: var(--warn); }
body > .backup-banner button.quiet { border-color: var(--frame); color: var(--text); background: transparent; }

.phase-note {
  display: flex;
  flex-wrap: wrap;
  gap: 2px 8px;
  margin-top: 12px;
  padding: 10px 14px;
  border-left: 2px solid var(--line-3);
  color: var(--muted);
  background: var(--tint);
  font-size: 13.5px;
  line-height: 1.5;
}
.phase-note strong { color: var(--text-2); font-weight: 600; }

/* Release sheet 2 (the campaign gate), the last detail of sheet 1 */
.campaign-gate .campaign-gate-checklist li[role=link] { cursor: pointer; }
.campaign-gate .campaign-gate-checklist li[role=link]:hover, .campaign-gate .campaign-gate-checklist li[role=link]:focus-visible { color: var(--accent); }
.is-target { outline: 2px solid var(--accent) !important; outline-offset: 4px; }
.campaign-gate .campaign-gate-checklist { grid-template-columns: 1fr; gap: 2px; margin: 0; }
.campaign-gate .campaign-gate-checklist li { padding: 5px 0; border: 0; color: var(--text-2); font-size: 13.5px; }
.campaign-gate .campaign-gate-checklist li::before { width: 15px; height: 15px; border: 1.5px solid var(--frame); border-radius: var(--r); }
.campaign-gate .campaign-gate-checklist li.complete { color: var(--text); }
.campaign-gate .campaign-gate-checklist li.complete::before { border-color: var(--accent); background-color: var(--accent); }
.campaign-gate .campaign-gate-approval { margin-top: 12px; padding: 12px 0 0; border: 0; border-top: 1px dashed var(--line-3); border-radius: 0; }
.campaign-gate .campaign-gate-approval strong { font-size: 13.5px; font-weight: 500; }
.campaign-gate .campaign-gate-approval small { font-size: 12.5px; }
.campaign-gate .campaign-gate-alert { margin-top: 6px; font-size: 12.5px; }
.campaign-gate .campaign-gate-alert:empty { display: none; }
.campaign-gate:has(#campaignGateStatus.released) :is(.campaign-gate-approval, #campaignHandoffButton) { display: none; }
.campaign-gate .campaign-handoff { flex-direction: column; align-items: stretch; gap: 10px; margin-top: 12px; padding-top: 0; border-top: 0; }
.campaign-gate .campaign-handoff strong { margin-top: 0; color: var(--text-2); font-size: 13px; font-weight: 500; }
.campaign-gate .campaign-handoff button { width: 100%; }
.sheet-rail .doe-launch { display: block; margin: 0; padding: 0; border: 0; background: none; }
.sheet-rail .doe-launch strong { font-size: 14px; }
.sheet-rail .doe-launch-actions { min-width: 0; margin-top: 14px; }
.sheet-rail .doe-launch-actions button { width: 100%; }
.doe-rail .doe-progress { margin-top: 2px; height: 8px; border: 1px solid var(--line-3); background: transparent; }
.doe-rail .doe-progress span { background: var(--text-2); }
.doe-rail .doe-actions { flex-direction: column; align-items: stretch; margin-top: 16px !important; }
.doe-rail .doe-actions button { width: 100%; }
.gate-progress { border: 1px solid var(--line-3); background: transparent; }
.gate-progress span { background: var(--text-2); }

/* ---------- Guided flow (ui.js) ---------- */
.ui-hidden { display: none !important; }
:is(.campaign-workspace, .calculator, #executionSurface, .doe-workspace, .report-builder) > .detail + .detail { margin-top: 22px; }

/* Optional sections fold to their heading line and its one-line note */
.opt-fold:not(.is-open) > :not(.detail-head, .detail-hint, summary) { display: none !important; }
.opt-fold > .detail-head, .opt-fold > summary { cursor: pointer; }
.opt-fold > .detail-head { position: relative; padding-right: 30px; }
.opt-fold > .detail-head::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 4px;
  width: 7px;
  height: 7px;
  border-right: 1.5px solid var(--muted);
  border-bottom: 1.5px solid var(--muted);
  transform: translateY(-75%) rotate(45deg);
  transition: transform .15s;
}
.opt-fold.is-open > .detail-head::after { transform: translateY(-25%) rotate(225deg); }
.stepped .opt-fold > summary::after { display: block; }
.stepped .opt-fold:not(.is-open) > summary::after { transform: translateY(-75%) rotate(45deg); }
.stepped .opt-fold.is-open > summary::after { transform: translateY(-25%) rotate(225deg); }
.opt-fold > .detail-head:hover .detail-head-title, .opt-fold > summary:hover strong { color: var(--accent); }
.opt-fold > .detail-head:focus-visible, .opt-fold > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.opt-fold:not(.is-open) { background: transparent; }
.detail-head-opt { flex: 0 0 auto; color: var(--muted); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.continue-note[hidden] { display: none !important; }
.next-metric { margin-top: 10px; }
.next-metric[hidden] { display: none !important; }
.detail-hint { margin: 0; color: var(--text-2); font-size: 15px; line-height: 1.5; }
.detail:not(details) > .detail-head + .detail-hint { margin-top: 8px; }
details.detail > .detail-hint { margin: 0; padding: 0 24px 16px; }
.req-tag { margin-left: 6px; color: var(--accent); font-size: 12px; font-weight: 500; letter-spacing: .04em; text-transform: lowercase; }

/* Release sheet 2 inside the sheet */
.campaign-gate .campaign-gate-checklist { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 24px; }
.campaign-gate .campaign-handoff { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 18px; }
.campaign-gate .campaign-handoff button { width: auto; }

/* Next step card */
.next-card .rail-card-head { margin-bottom: 10px; }
.next-count { color: var(--kicker); font-size: 13px; font-weight: 500; white-space: nowrap; }
.next-text { margin: 0; color: var(--text); font-size: 16px; line-height: 1.45; }
.next-note { margin: 6px 0 0; color: var(--text-2); font-size: 13.5px; }
.next-note[hidden], .next-alt[hidden], .step-alt[hidden] { display: none !important; }
.next-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  min-height: 48px;
  margin-top: 16px;
  padding: 10px 18px;
  border: 1.5px solid var(--accent);
  border-radius: var(--r);
  color: var(--on-accent);
  background: var(--accent);
  font-size: 15.5px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}
.next-button::after { content: "\2192"; }
.next-button:hover { border-color: var(--accent-hover); background: var(--accent-hover); }
.step-alt {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  padding: 10px 20px;
  border: 1.5px solid var(--frame);
  border-radius: var(--r);
  color: var(--text);
  background: transparent;
  font-size: 15.5px;
  font-weight: 600;
  text-align: left;
}
.step-alt:hover { border-color: var(--accent); color: var(--accent); }
.next-alt { display: block; margin: 10px 0 0; padding: 2px 0; border: 0; border-bottom: 1px dashed var(--line-3); color: var(--text-2); background: none; font: inherit; font-size: 13.5px; cursor: pointer; }
.next-alt:hover { border-color: var(--accent); color: var(--accent); }

/* Finished sheets show a tick */
.workspace-tab.is-done:not(.active) > span { font-size: 0; }
.workspace-tab.is-done:not(.active) > span::before { content: "\2713"; color: var(--accent); font-size: 16px; }

/* Sheet 2: tick the metrics */
.stepped #metricPlanningSurface > .step { display: none; }
.metric-picks { display: grid; gap: 20px; }
.pick-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.pick-group legend { margin-bottom: 10px; padding: 0; color: var(--text-2); font-size: 14px; }
.pick-group legend strong { margin-right: 10px; color: var(--kicker); font-weight: 600; letter-spacing: .1em; }
.pick-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.pick { display: flex; align-items: flex-start; gap: 12px; padding: 11px 14px; border: 1px solid var(--line-3); border-radius: var(--r); cursor: pointer; }
.pick:hover { border-color: var(--frame); }
.pick:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); }
.pick input { flex: 0 0 auto; margin-top: 2px; }
.pick span { min-width: 0; }
.pick strong, .pick small { display: block; }
.pick strong { color: var(--text); font-size: 14.5px; font-weight: 600; line-height: 1.35; }
.pick small { margin-top: 3px; color: var(--muted); font-size: 12.5px; line-height: 1.4; }
.pick-more { justify-self: start; margin-top: 10px; padding: 2px 0; border: 0; border-bottom: 1px dashed var(--line-3); color: var(--text-2); background: none; font: inherit; font-size: 13.5px; cursor: pointer; }
.pick-more:hover { border-color: var(--accent); color: var(--accent); }
#campaignCategoryScope:not([hidden])::before { content: "Metrics for"; align-self: center; margin-right: 4px; color: var(--muted); font-size: 13.5px; }
.metric-more > summary { font-size: 14px; }
.metric-more-body { padding: 4px 16px 18px; }
.metric-more-body > * + * { margin-top: 14px; }

/* Sheet 4: which metric the numbers are for */
.metric-runs { padding: 16px 18px; border: 1px dashed var(--line-3); background: var(--tint); }
.metric-runs-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; }
.metric-runs-head span { color: var(--text); font-size: 15px; font-weight: 600; }
.metric-runs-count { color: var(--text-2); font-size: 13px; font-weight: 500; }
.metric-run-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px; margin-top: 12px; }
.metric-run {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 2px 12px;
  padding: 10px 12px;
  border: 1px solid var(--line-3);
  border-radius: var(--r);
  color: var(--text);
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.metric-run:hover { border-color: var(--frame); }
.metric-run.is-current { border-color: var(--accent); background: var(--accent-soft); box-shadow: inset 0 0 0 1px var(--accent); }
.metric-run-type { grid-row: span 2; color: var(--kicker); font-size: 12px; font-weight: 600; letter-spacing: .08em; }
.metric-run strong { font-size: 14px; font-weight: 600; line-height: 1.3; }
.metric-run small { color: var(--muted); font-size: 12.5px; }
.metric-run.has-runs small { color: var(--ok); }

@media (max-width: 1000px) {
  .pick-list { grid-template-columns: 1fr; }
  /* One column: the Next step card comes before the sheet, the rest of the rail after it. */
  .sheet-rail { display: contents; }
  .next-card { order: -1; }
}
@media (max-width: 650px) {
  .campaign-gate .campaign-gate-checklist { grid-template-columns: 1fr; }
  .campaign-gate .campaign-handoff button { width: 100%; }
  .sheet-continue { flex-direction: column-reverse; align-items: stretch; }
  .sheet-continue .step-alt, .sheet-continue .step-next { justify-content: center; text-align: center; }
  .continue-note { margin: 0; }
}
@media print {
  .sheet-continue, .next-card { display: none !important; }
}

/* ---------- AI assistance (ai.js) ---------- */
.ai-help {
  margin-left: 8px;
  padding: 0 7px;
  border: 1px solid var(--accent);
  border-radius: var(--r);
  color: var(--accent);
  background: transparent;
  font-size: 11.5px;
  font-weight: 600;
  line-height: 18px;
  letter-spacing: .06em;
  vertical-align: 1px;
  cursor: pointer;
}
.ai-help:hover { color: var(--on-accent); background: var(--accent); }
.ai-help:disabled { opacity: .5; cursor: progress; }
.ai-suggest { margin-top: 8px; padding: 12px 14px; border: 1px dashed var(--accent); background: var(--accent-soft); }
.ai-suggest-text { margin: 0; color: var(--text); font-size: 14.5px; line-height: 1.55; white-space: pre-wrap; }
.ai-suggest-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.ai-suggest-actions button { min-height: 36px; padding: 6px 14px; font-size: 13.5px; }
.ai-suggest-note { margin: 8px 0 0; color: var(--muted); font-size: 12.5px; }
.ai-suggest-error { margin: 0 0 8px; color: var(--bad); font-size: 13.5px; }
.ai-wor-action { border-color: var(--accent); }
.ai-wor-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; padding: 12px 16px; border: 1.5px solid var(--accent); background: var(--accent-soft); }
.ai-wor-bar-text { flex: 1 1 320px; color: var(--text); font-size: 14px; }
.ai-wor h4 { margin: 16px 0 6px; color: #173c65; font-size: .95rem; }
.ai-wor [contenteditable="true"]:hover { outline: 1px dashed #9fb3c8; outline-offset: 3px; }
.ai-wor [contenteditable="true"]:focus { outline: 2px solid #28587f; outline-offset: 3px; }
.ai-wor .ai-flag { padding: 0 2px; color: #7a1f12; background: #ffd9a0; }
.ai-wor-notice { border-left-color: #b26b00; }

/* ---------- Radar theme ---------- */
/* The page: cool light ground with faint radar rings in two corners and a fine grid */
html { background: var(--bg); }
body { background: transparent; }
body::before, body::after { content: ""; position: fixed; inset: 0; pointer-events: none; }
body::before {
  z-index: -2;
  background:
    repeating-radial-gradient(circle at 0% 100%, rgba(31, 91, 255, .1) 0 1px, transparent 1.5px 72px),
    repeating-radial-gradient(circle at 100% 0%, rgba(31, 91, 255, .08) 0 1px, transparent 1.5px 72px),
    radial-gradient(60% 70% at 100% 0%, rgba(26, 155, 255, .16), transparent 70%),
    radial-gradient(55% 65% at 0% 100%, rgba(255, 107, 26, .09), transparent 70%),
    var(--bg);
  -webkit-mask-image: radial-gradient(130% 130% at 50% 50%, #000 40%, rgba(0, 0, 0, .9));
}
body::after {
  z-index: -1;
  background-image:
    linear-gradient(rgba(31, 91, 255, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(31, 91, 255, .045) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(90% 80% at 50% 0%, #000, transparent);
  mask-image: radial-gradient(90% 80% at 50% 0%, #000, transparent);
}

/* Brand band: cobalt, with radar rings, crosshairs, a sweep and a few contact blips */
.sheet { padding-top: 26px; }
.sheet-header {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 36px 38px;
  border-radius: 24px;
  color: #fff;
  background: var(--cobalt);
  box-shadow: 0 28px 56px -28px rgba(27, 26, 166, .8), 0 0 0 1px rgba(255, 255, 255, .22) inset;
}
.sheet-header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at 60% 30%, #ffd2ad 0 2.5px, rgba(255, 140, 60, .55) 3.5px, transparent 11px),
    radial-gradient(circle at 70% 78%, #ffd2ad 0 2px, rgba(255, 140, 60, .5) 3px, transparent 9px),
    radial-gradient(circle at 54% 64%, #c9ecff 0 1.8px, rgba(120, 210, 255, .5) 2.8px, transparent 8px),
    linear-gradient(90deg, transparent calc(66% - .5px), rgba(255, 255, 255, .16) calc(66% - .5px), rgba(255, 255, 255, .16) calc(66% + .5px), transparent calc(66% + .5px)),
    linear-gradient(transparent calc(100% - .5px), rgba(255, 255, 255, .16) calc(100% - .5px)),
    repeating-radial-gradient(circle at 66% 100%, rgba(255, 255, 255, .26) 0 1px, transparent 1.5px 56px);
  -webkit-mask-image: radial-gradient(80% 160% at 66% 100%, #000 55%, transparent 100%);
  mask-image: radial-gradient(80% 160% at 66% 100%, #000 55%, transparent 100%);
}
.sheet-header::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: conic-gradient(from 300deg at 66% 100%, rgba(140, 215, 255, 0) 0deg, rgba(140, 215, 255, .38) 34deg, rgba(140, 215, 255, 0) 35deg, rgba(140, 215, 255, 0) 360deg);
  -webkit-mask-image: radial-gradient(56% 120% at 66% 100%, #000 60%, transparent 100%);
  mask-image: radial-gradient(56% 120% at 66% 100%, #000 60%, transparent 100%);
}
.brand-kicker { color: rgba(255, 255, 255, .88); font-size: 13px; letter-spacing: .22em; text-transform: uppercase; }
.brand-kicker::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 10px; border-radius: 50%; background: var(--signal); box-shadow: 0 0 10px var(--signal); vertical-align: 1px; }
.brand-block h1 { color: #fff; text-shadow: 0 2px 24px rgba(10, 20, 90, .35); }
.brand-block p { color: rgba(255, 255, 255, .88); }
.title-block { border-collapse: separate; border-spacing: 0; border: 1px solid rgba(255, 255, 255, .34); border-radius: 16px; overflow: hidden; background: rgba(10, 30, 120, .22); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: 0 10px 30px -12px rgba(5, 15, 70, .45); }
.title-block th, .title-block td { border: 0; border-top: 1px solid rgba(255, 255, 255, .2); border-left: 1px solid rgba(255, 255, 255, .2); }
.title-block tr:first-child > * { border-top: 0; }
.title-block tr > :first-child { border-left: 0; }
.title-block th { color: rgba(205, 225, 255, .9); font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; }
.title-block td { color: #fff; }
.title-block :is(.tone-warn, .tone-ok, .tone-bad) { color: #fff; }
.title-block :is(.tone-warn, .tone-ok, .tone-bad)::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; vertical-align: 1px; }
.title-block .tone-warn::before { background: #ffb347; box-shadow: 0 0 10px #ffb347; }
.title-block .tone-ok::before { background: #4dffb0; box-shadow: 0 0 10px #4dffb0; }
.title-block .tone-bad::before { background: #ff8fa3; box-shadow: 0 0 10px #ff8fa3; }

/* Panels: white cards with a cobalt hairline */
.workspace-nav, .detail, .rail-card { border: 1px solid var(--card-edge); background: var(--card); box-shadow: var(--shadow); }
.workspace-nav { position: relative; margin: 24px 0 28px; padding: 20px 24px 18px; border-radius: 22px; }
.detail, .rail-card { border-radius: 20px; }
details.detail > summary { border-radius: 20px 20px 0 0; }
.next-card { border: 1.5px solid rgba(255, 107, 26, .45); background: linear-gradient(170deg, #ffffff 45%, #fff3ea); box-shadow: 0 22px 44px -24px rgba(255, 107, 26, .55); }
.next-card::before { content: ""; position: absolute; top: -1.5px; left: 22px; right: 22px; height: 3px; border-radius: 0 0 3px 3px; background: var(--signal-gradient); }
.release-card { border: 1.5px solid var(--accent-ring); background: linear-gradient(180deg, #ffffff 45%, #eef3ff); }
.opt-fold:not(.is-open) { border-style: dashed; border-color: rgba(31, 91, 255, .3); background: rgba(255, 255, 255, .55); box-shadow: none; }

/* Section heads read like instrument labels */
.detail-head { position: relative; padding-left: 16px; }
.detail-head::before { content: ""; position: absolute; top: 50%; left: 0; width: 4px; height: 24px; border-radius: 4px; background: var(--cobalt-v); transform: translateY(-50%); box-shadow: 0 0 10px rgba(31, 91, 255, .45); }
.detail-head-title { color: var(--text); }
.detail-head-rule, .rail-card-rule { height: 1px; background: linear-gradient(90deg, rgba(31, 91, 255, .45), transparent); }
.detail-head-tag, .detail-head-opt { padding: 3px 10px; border-radius: 999px; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.detail-head-tag { border: 1px solid rgba(31, 91, 255, .3); color: var(--kicker); background: #f2f6ff; }
.detail-head-opt { border: 1px solid rgba(102, 109, 148, .28); color: var(--muted); background: #f6f7fb; }
.next-count { padding: 3px 10px; border-radius: 999px; color: var(--on-signal); background: var(--signal-gradient); font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

/* Panels inside a card */
.detail :is(.campaign-dotmlpf, .dotmlpf-panel, .doe-response-panel, .input-card, .result-box, .stats-model, .save-panel,
  .threshold-panel, .report-tracker, .report-context):not(.detail) {
  border: 1px solid rgba(31, 91, 255, .12);
  border-radius: 16px;
  background: #f6f8ff;
}
.metric-runs, .brief-drop { border: 1px solid rgba(31, 91, 255, .12); border-radius: 16px; background: #f6f8ff; }
:where(input:not([type=checkbox], [type=radio], [type=range], [type=file], [type=hidden]), select, textarea) { background-color: #fff; }
:where(input:not([type=checkbox], [type=radio], [type=range], [type=file], [type=hidden]), select, textarea):focus { border-color: var(--accent); box-shadow: 0 0 0 4px rgba(31, 91, 255, .14); }

/* Choices light up cobalt when picked */
.pick, .metric-run { background: #fff; }
.pick:has(input:checked), .metric-run.is-current,
.trl-option.active, .purpose-option.active, .category.active, .evidence-mode.active, .dotmlpf-mode-options label:has(input:checked) {
  border-color: transparent;
  background: linear-gradient(135deg, rgba(31, 91, 255, .1), rgba(26, 163, 255, .07));
  box-shadow: 0 0 0 1.5px var(--accent), 0 10px 22px -14px rgba(31, 91, 255, .8);
}

/* Stepper: the current sheet is an orange beacon; finished sheets are joined by a lit cobalt line */
.workspace-tab > span { border-color: rgba(31, 91, 255, .3); color: var(--text-2); background: #fff; }
.workspace-tab.active > span { border-color: transparent; color: var(--on-signal); background: var(--signal-gradient); box-shadow: 0 0 0 5px rgba(255, 107, 26, .16), 0 10px 22px -6px rgba(255, 107, 26, .75); }
.workspace-tab.is-done:not(.active) > span { border-color: transparent; color: #fff; background: var(--cobalt-v); }
.workspace-tab.is-done:not(.active) > span::before { color: #fff; }
.workspace-tab:disabled > span { border-color: var(--line-2); color: var(--muted); background: #f6f7fb; }
.workspace-tab:disabled { opacity: .7; }
.workspace-tab:not(:last-child)::after { border-top-color: rgba(31, 91, 255, .28); }
.workspace-tab.is-done:not(:last-child)::after { height: 2px; border-top: 0; background: var(--gauge); box-shadow: 0 0 8px rgba(31, 91, 255, .45); }
.workspace-tab.active small { color: #c2500c; }
.campaign-gate .campaign-gate-checklist li.complete::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.8 6.2 5 8.4 9.3 3.6' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-position: center;
  background-size: 11px;
  background-repeat: no-repeat;
}

/* Readiness: lit cobalt gauges */
.readiness-bar { height: 8px; border: 0; border-radius: 999px; background: rgba(31, 91, 255, .1); overflow: hidden; }
.readiness-bar b { border-radius: 999px; background: var(--gauge); box-shadow: 0 0 8px rgba(31, 91, 255, .55); }
.doe-rail .doe-progress, .gate-progress { border: 0; border-radius: 999px; background: rgba(31, 91, 255, .1); overflow: hidden; }
.doe-rail .doe-progress span, .gate-progress span { background: var(--gauge); }
.readiness-overall strong { color: var(--kicker); }

/* Buttons: the main action is signal orange; other primary actions cobalt; secondary ones white */
.step-next, .next-button {
  border: 0;
  border-radius: 14px;
  color: var(--on-signal);
  background: var(--signal-gradient);
  box-shadow: var(--shadow-signal), 0 1px 0 rgba(255, 255, 255, .45) inset;
  transition: box-shadow .2s, transform .2s, filter .2s;
}
.step-next:hover:not(:disabled), .next-button:hover { border: 0; background: var(--signal-gradient); filter: brightness(1.06); transform: translateY(-1px); box-shadow: 0 16px 30px -12px rgba(255, 107, 26, .85), 0 1px 0 rgba(255, 255, 255, .45) inset; }
.step-next:disabled { border: 1.5px dashed var(--line-3); color: var(--muted); background: rgba(255, 255, 255, .6); box-shadow: none; transform: none; filter: none; }
.primary-action { border: 0; border-radius: 12px; color: #fff; background: linear-gradient(180deg, #3570ff, #1f5bff); box-shadow: 0 10px 22px -12px rgba(31, 91, 255, .8); }
.primary-action:hover:not(:disabled) { border: 0; background: linear-gradient(180deg, #3570ff, #1f5bff); filter: brightness(1.08); }
.primary-action:disabled { border: 1.5px dashed var(--line-3); color: var(--text-2); background: rgba(255, 255, 255, .6); box-shadow: none; }
.step-alt, .step-prev, .secondary-action { border: 1px solid rgba(31, 91, 255, .25); border-radius: 12px; background: #fff; }
.step-alt:hover, .secondary-action:hover:not(:disabled) { border-color: var(--accent); color: var(--kicker); background: #f5f8ff; }
.assessment-category-scope button.active, .visualizer-view-mode.active { border-color: transparent; background: var(--accent); }

/* The generated report sits on the page like a sheet of paper */
.report-output:not([hidden]) { border-radius: 14px; box-shadow: 0 30px 60px -30px rgba(20, 50, 140, .5); }

/* Unsaved-work reminder */
body > .backup-banner { border-bottom: 1px solid rgba(180, 95, 0, .22); background: rgba(255, 246, 232, .92); }

@media print {
  body::before, body::after { display: none !important; }
}

/* Asked once: the Assessment sheet's maturity picker gives way to a line that shows the campaign's choice */
.ui-retired { display: none !important; }
.maturity-line { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; padding: 12px 16px; border: 1px solid rgba(31, 91, 255, .18); border-radius: 14px; background: #f6f8ff; }
.maturity-line p { flex: 1 1 380px; margin: 0; color: var(--text-2); font-size: 14px; }

/* ---------- Accounts: account bar, dashboard, sign-in, people dialog, Accounts page ---------- */
/* One action, one place: these repeat controls found elsewhere on the sheet */
.stepped :is(#returnReportBuilder, #createDoeReport, .report-doe-link, #metricPlanningSurface > .metric-plan-bar) { display: none !important; }
/* Signed in, work is saved to the account: the browser-only backup reminder and the in-draft campaign reset step aside */
.has-account :is(.backup-banner, #newCampaignSlot, .archive-expand) { display: none !important; }

.account-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 18px;
  margin-bottom: 16px;
  padding: 10px 14px;
  border: 1px solid var(--card-edge);
  border-radius: 16px;
  background: var(--card);
  box-shadow: var(--shadow);
}
.bar-group { display: flex; align-items: center; gap: 8px; min-width: 0; }
.bar-project { flex: 1 1 320px; padding-left: 16px; border-left: 1px solid var(--line); }
.bar-label { color: var(--muted); font-size: 11.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.bar-title { min-width: 0; overflow: hidden; color: var(--text); font-size: 15px; font-weight: 600; white-space: nowrap; text-overflow: ellipsis; }
.bar-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 7px 14px;
  border: 1px solid rgba(31, 91, 255, .25);
  border-radius: 10px;
  color: var(--text);
  background: #fff;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
}
.bar-btn:hover { border-color: var(--accent); color: var(--kicker); }
.bar-btn.is-current { border-color: var(--accent); color: var(--kicker); background: var(--accent-soft); }
.bar-btn.is-new { border-color: transparent; color: var(--on-signal); background: var(--signal-gradient); box-shadow: 0 8px 18px -10px rgba(255, 107, 26, .8); }
.bar-btn.is-new:hover { color: var(--on-signal); filter: brightness(1.06); }
.bar-btn:disabled { opacity: .6; cursor: progress; }
.bar-user { position: relative; margin-left: auto; }
.bar-me { border-color: transparent; background: transparent; }
.bar-me:hover { background: var(--accent-soft); }
.bar-menu { position: absolute; top: calc(100% + 6px); right: 0; z-index: 90; min-width: 230px; padding: 6px; border: 1px solid var(--card-edge); border-radius: 12px; background: #fff; box-shadow: 0 24px 50px -20px rgba(15, 30, 90, .45); }
.bar-menu-head { padding: 8px 12px 6px; color: var(--muted); font-size: 12.5px; }
.bar-menu-item { display: block; width: 100%; padding: 9px 12px; border: 0; border-radius: 8px; color: var(--text); background: transparent; font-size: 14px; text-align: left; cursor: pointer; }
.bar-menu-item:hover, .bar-menu-item:focus-visible { color: var(--kicker); background: var(--accent-soft); }
.bar-people { display: inline-flex; align-items: center; }
.avatar {
  display: inline-grid;
  flex: 0 0 auto;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 2px solid #fff;
  border-radius: 50%;
  color: #fff;
  background: var(--cobalt-v);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .02em;
}
.bar-people .avatar + .avatar { margin-left: -8px; }
.avatar.is-owner { color: var(--on-signal); background: var(--signal-gradient); }
.avatar.is-more { color: var(--text-2); background: #e8ecf8; }
.avatar.is-me { width: 30px; height: 30px; }
.sync-status { display: inline-flex; align-items: center; gap: 6px; padding-left: 6px; color: var(--muted); font-size: 12.5px; white-space: nowrap; }
.sync-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--ok); }
.sync-status.is-bad { color: var(--bad); }
.sync-status.is-bad::before { background: var(--bad); }
.sync-strip { position: fixed; bottom: 20px; left: 50%; z-index: 95; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; width: min(820px, calc(100vw - 32px)); padding: 14px 18px; border: 1.5px solid rgba(180, 95, 0, .45); border-radius: 16px; color: var(--text); background: #fff6e8; box-shadow: 0 24px 50px -18px rgba(60, 30, 0, .45); font-size: 14.5px; transform: translateX(-50%); }
.sync-strip span { flex: 1 1 320px; }
.strip-btn { min-height: 36px; padding: 6px 14px; border: 1px solid rgba(31, 91, 255, .3); border-radius: 10px; color: var(--text); background: #fff; font-size: 14px; font-weight: 600; cursor: pointer; }
.strip-btn.is-strong { border-color: var(--accent); color: #fff; background: var(--accent); }

/* People dialog */
.iicap-dialog { width: min(540px, calc(100vw - 32px)); padding: 0; border: 1px solid var(--card-edge); border-radius: 18px; color: var(--text); background: #fff; box-shadow: 0 30px 80px -30px rgba(10, 20, 80, .6); }
.iicap-dialog::backdrop { background: rgba(14, 22, 60, .35); }
.dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 22px 12px; border-bottom: 1px solid var(--line); }
.dialog-head h2 { margin: 0; font-size: 19px; font-weight: 600; }
.dialog-close { width: 34px; height: 34px; border: 0; border-radius: 8px; color: var(--muted); background: transparent; font-size: 22px; line-height: 1; cursor: pointer; }
.dialog-close:hover { color: var(--text); background: var(--accent-soft); }
.dialog-body { padding: 16px 22px 22px; }
.dialog-body > * + * { margin-top: 14px; }
.dialog-lede { margin: 0; font-weight: 600; }
.dialog-note { margin: 0; color: var(--muted); font-size: 13.5px; }
.dialog-error, .auth-error { margin: 0; color: var(--bad); font-size: 14px; }
.person-list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.person-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 12px; }
.person-who { display: flex; align-items: center; gap: 10px; min-width: 0; }
.person-who strong, .person-who small { display: block; }
.person-who strong { font-size: 14.5px; font-weight: 600; }
.person-who small { color: var(--muted); font-size: 12.5px; }
.text-action { padding: 4px 6px; border: 0; color: var(--kicker); background: none; font-size: 14px; font-weight: 600; cursor: pointer; }
.text-action:hover { text-decoration: underline; }
.text-action.is-danger { color: var(--bad); }
.invite-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; }
.invite-label { flex: 1 1 260px; }
.invite-label > span, .admin-form label > span, .auth-card label > span { display: block; margin-bottom: 7px; color: var(--text-2); font-size: 13.5px; font-weight: 500; }
.invite-label select, .admin-form :is(input, select), .auth-card input { width: 100%; }

/* Dashboard */
.dash-stats { display: grid; flex: 0 0 auto; grid-template-columns: repeat(2, minmax(120px, 1fr)); gap: 10px; }
.dash-stat { padding: 12px 16px; border: 1px solid rgba(255, 255, 255, .3); border-radius: 14px; background: rgba(10, 30, 120, .22); }
.dash-stat strong { display: block; color: #fff; font-size: 28px; font-weight: 700; line-height: 1.1; }
.dash-stat span { display: block; margin-top: 2px; color: rgba(205, 225, 255, .9); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; }
.dash-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 26px 0 18px; }
.dash-filters { display: flex; flex-wrap: wrap; gap: 6px; }
.dash-filter { min-height: 38px; padding: 7px 14px; border: 1px solid rgba(31, 91, 255, .25); border-radius: 999px; color: var(--text); background: #fff; font-size: 14px; font-weight: 600; cursor: pointer; }
.dash-filter:hover { border-color: var(--accent); color: var(--kicker); }
.dash-filter.is-on { border-color: var(--accent); color: #fff; background: var(--accent); }
.dash-search { flex: 1 1 240px; }
.dash-search span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.dash-search input { width: 100%; }
.dash-import { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 18px; padding: 14px 18px; border: 1px solid rgba(255, 107, 26, .45); border-radius: 16px; background: #fff3ea; }
.dash-import p { flex: 1 1 320px; margin: 0; }
.dash-message { margin: 0 0 18px; padding: 12px 16px; border: 1px solid rgba(180, 95, 0, .3); border-radius: 12px; background: #fff6e8; }
.dash-section + .dash-section { margin-top: 32px; }
.dash-section h2 { margin: 0 0 14px; font-size: 20px; font-weight: 600; }
.dash-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; }
.dash-empty { grid-column: 1 / -1; margin: 0; padding: 22px; border: 1px dashed rgba(31, 91, 255, .3); border-radius: 16px; color: var(--muted); background: rgba(255, 255, 255, .6); }
.report-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow: hidden;
  padding: 22px 22px 18px;
  border: 1px solid var(--card-edge);
  border-radius: 20px;
  background: var(--card);
  box-shadow: var(--shadow);
  transition: transform .2s, box-shadow .2s;
}
.report-card::before { content: ""; position: absolute; top: 0; right: 0; left: 0; height: 3px; background: var(--gauge); }
.report-card.stage-report::before { background: var(--signal-gradient); }
.report-card:hover { transform: translateY(-2px); box-shadow: 0 1px 2px rgba(15, 30, 80, .05), 0 22px 40px -22px rgba(20, 50, 140, .45); }
.report-card-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 10px; }
.stage-pill { padding: 3px 10px; border-radius: 999px; color: var(--kicker); background: rgba(31, 91, 255, .1); font-size: 12px; font-weight: 700; letter-spacing: .03em; }
.stage-report .stage-pill { color: var(--on-signal); background: var(--signal-gradient); }
.report-updated { color: var(--muted); font-size: 12.5px; }
.report-card h3 { margin: 0; font-size: 19px; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.report-sub { margin: 0; color: var(--text-2); font-size: 13.5px; }
.stage-track { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.stage-track i { height: 6px; border-radius: 999px; background: rgba(31, 91, 255, .12); }
.stage-track i.is-done { background: var(--gauge); }
.stage-track i.is-now { background: var(--signal-gradient); }
.report-card-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 6px; }
.report-card-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.report-card-actions :is(.step-next, .step-alt) { min-height: 38px; padding: 7px 14px; font-size: 14px; }
.report-open { text-decoration: none; }

/* Sign-in */
.auth-sheet { max-width: 980px; }
.auth-main { display: grid; justify-items: center; gap: 18px; margin-top: 30px; }
.auth-card { width: min(440px, 100%); padding: 28px 30px; border: 1px solid var(--card-edge); border-radius: 20px; background: var(--card); box-shadow: var(--shadow); }
.auth-card h2 { margin: 0 0 6px; font-size: 24px; font-weight: 600; }
.auth-card form { display: grid; gap: 14px; margin-top: 16px; }
.auth-card input { min-height: 44px; }
.auth-submit { justify-content: space-between; width: 100%; margin-left: 0; }
.auth-lede { margin: 0; color: var(--text-2); }
.auth-note, .auth-hint { margin: 14px 0 0; color: var(--muted); font-size: 13.5px; }
.auth-hint { margin: 0; }
.auth-link { color: var(--kicker); font-weight: 600; text-align: center; }
.auth-setup { width: min(560px, 100%); margin: 0; padding: 16px 20px; border: 1px dashed rgba(31, 91, 255, .35); border-radius: 14px; background: #fff; }
.auth-setup code { display: inline-block; margin-top: 8px; padding: 6px 10px; border-radius: 8px; background: #eef2fb; }

/* Accounts page */
.accounts-main { display: grid; gap: 22px; margin-top: 26px; }
.admin-card > * + * { margin-top: 16px; }
.admin-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 180px auto; align-items: end; gap: 12px; }
.admin-hint { margin: 0; color: var(--muted); font-size: 13.5px; }
.temp-panel { padding: 16px 18px; border: 1.5px solid rgba(255, 107, 26, .45); border-radius: 14px; background: #fff3ea; }
.temp-panel p { margin: 0; }
.temp-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 10px 0; }
.temp-row code { padding: 8px 12px; border: 1px solid var(--line-2); border-radius: 8px; background: #fff; font-size: 18px; letter-spacing: .06em; }
.account-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.account-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px 16px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.account-state { padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.account-state.is-ok { color: var(--ok); background: rgba(10, 128, 88, .1); }
.account-state.is-warn { color: var(--warn); background: rgba(180, 95, 0, .1); }
.account-state.is-off { color: var(--muted); background: #eef0f6; }
.account-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.account-actions .secondary-action { min-height: 36px; padding: 6px 12px; font-size: 13.5px; }

@media (max-width: 1000px) {
  .dash-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .bar-project { order: 3; flex: 1 1 100%; padding: 10px 0 0; border-top: 1px solid var(--line); border-left: 0; }
}
@media (max-width: 650px) {
  .dash-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bar-me-name { display: none; }
  .admin-form { grid-template-columns: 1fr; }
  .account-row { grid-template-columns: 1fr; }
  .account-actions { justify-content: flex-start; }
  .dash-grid { grid-template-columns: 1fr; }
  .auth-card { padding: 22px 20px; }
}
@media print {
  .account-bar, .sync-strip, .iicap-dialog { display: none !important; }
}

/* ---------- WOR details (wor-details.js) ---------- */
.wor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
.wor-grid .wide { grid-column: 1 / -1; }
:is(.wor-grid, .wor-row) label > span { display: block; margin-bottom: 7px; color: var(--text-2); font-size: 13.5px; font-weight: 500; line-height: 1.4; }
:is(.wor-grid, .wor-row) label > span small:not(.req-tag) { color: var(--muted); font-weight: 400; }
:is(.wor-grid, .wor-row) :is(input, select, textarea) { width: 100%; }
.wor-rows { margin-top: 22px; }
.wor-rows-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-bottom: 10px; }
.wor-rows-head strong { font-size: 15px; font-weight: 600; }
.wor-rows-head span { flex-basis: 100%; color: var(--muted); font-size: 13.5px; }
.wor-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) minmax(0, 1.3fr) auto; align-items: start; gap: 10px; margin-bottom: 8px; padding: 12px; border: 1px solid rgba(31, 91, 255, .14); border-radius: 14px; background: #f6f8ff; }
.wor-finding { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto; }
.wor-finding .wide { grid-column: 1 / -2; }
.wor-remove { align-self: end; min-height: 40px; }
.wor-rows-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: 10px; }
.wor-none { display: inline-flex; align-items: center; gap: 8px; color: var(--text-2); font-size: 14px; cursor: pointer; }
.wor-status { color: var(--muted); font-size: 13.5px; }
.wor-findings > .secondary-action { margin-top: 4px; }

/* ---------- WOR document (wor.js): the pages of the program's reference WOR ---------- */
/* Every size and position is the reference document's, in points: Letter pages, Times New Roman 12 pt on 13.8 pt
   lines, text block 1 in from the sides starting 73.15 pt from the top, headings navy, marking at top and bottom,
   running title and page number in the footer. Screen and print use the same layout. */
.report-output:has(> .wor-doc), .report-output:has(> .wor-doc):not([hidden]) { padding: 0; background: transparent; box-shadow: none; }
.wor-doc { --wor-navy: #000080; --wor-cover: #002060; --wor-head: #111c4e; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.wor-doc > .ai-wor-notice { max-width: 8.5in; margin: 0 auto 14px; font-family: var(--font); }
.wor-frame { overflow: hidden; }
.wor-stage { width: 8.5in; margin: 0 auto; transform-origin: 0 0; }
.wor-measure { position: absolute; top: 0; left: -20000px; width: 9in; visibility: hidden; }
.wor-sheet { position: relative; box-sizing: border-box; width: 8.5in; height: 11in; margin: 0 0 24px; overflow: hidden; color: #000; background: #fff; box-shadow: 0 1px 3px rgba(15, 30, 80, .18), 0 18px 40px -24px rgba(15, 30, 80, .45); font: 12pt/13.8pt "Times New Roman", Times, serif; text-align: left; }
.wor-sheet:last-child { margin-bottom: 0; }
.wor-mark { position: absolute; right: 0; left: 0; color: var(--wor-mark, #007a33); font: 700 12pt/13.8pt "Times New Roman", Times, serif; text-align: center; }
.wor-mark-top { top: 37.25pt; }
.wor-mark-bottom { top: 743.05pt; }
.wor-foot { position: absolute; top: 728.75pt; right: 72pt; left: 72pt; display: flex; justify-content: space-between; gap: 12pt; font: italic 12pt/13.8pt "Times New Roman", Times, serif; }
.wor-sheet-body { position: absolute; top: 73.15pt; left: 72pt; width: 468pt; height: 646.85pt; }
.wor-sheet:not(.wor-sheet-cover) .wor-sheet-body > :first-child { margin-top: 0 !important; }
.wor-sheet p { margin: 0 0 13.8pt; text-align: justify; }
.wor-sheet .wor-tight, .wor-sheet .wor-lead { margin-bottom: 0; }
.wor-sheet .wor-lead { font-weight: 700; text-align: left; }
.wor-sheet sup { font-size: 65%; line-height: 0; }
.wor-h1 { margin: 20pt 0 13.9pt; color: var(--wor-navy); font: 700 16pt/18.4pt "Times New Roman", Times, serif; text-align: center; text-transform: uppercase; }
.wor-h2 { margin: 13.8pt 0 2.2pt; padding-bottom: 1pt; border-bottom: .75pt solid #808080; color: var(--wor-navy); font: 700 14pt/16.1pt "Times New Roman", Times, serif; }
.wor-h3 { margin: 13.8pt 0 0; font: 700 12pt/13.8pt "Times New Roman", Times, serif; }
.wor-list { margin: 0 0 13.8pt; padding: 0 0 0 36pt; list-style: none; }
.wor-list li { position: relative; text-align: justify; }
.wor-list li::before { content: "\2022"; position: absolute; left: -18pt; }
.wor-sheet .wor-list li p { margin: 0; }
.wor-frag { overflow: hidden; }
.wor-cont { cursor: text; }
.wor-table { margin: 0 0 13.8pt; }
.wor-table figcaption { margin: 0 0 2.4pt; font-weight: 700; text-align: center; }
.wor-table table { width: 100%; border-collapse: collapse; font: 12pt/13.8pt "Times New Roman", Times, serif; }
.wor-table table.wor-fixed { table-layout: fixed; }
.wor-table th { padding: 1.2pt 5.4pt; border: .5pt solid #000; color: #fff; background: var(--wor-head); font-weight: 700; text-align: center; vertical-align: middle; }
.wor-table td { padding: 1.2pt 5.4pt; border: .5pt solid #000; text-align: left; vertical-align: top; }
.wor-centered td { text-align: center; vertical-align: middle; }
.wor-limitations td:first-child { vertical-align: middle; }
.wor-crosswalk th:last-child { height: 75pt; padding: 4pt 0; writing-mode: vertical-rl; transform: rotate(180deg); }
.wor-crosswalk td:last-child { text-align: center; }
.wor-table .wor-objective td { font-weight: 700; }
.wor-acronyms table, .wor-acronyms td { border: 0; }
.wor-acronyms td { padding: 3pt 5.4pt; }
.wor-figure { margin: 0 0 13.8pt; text-align: center; }
.wor-chart { display: block; margin: 0 auto; }
.wor-figure figcaption { margin-top: 6pt; font-weight: 700; text-align: center; }
.wor-chart .frame { fill: #fff; stroke: #d9d9d9; stroke-width: .75; }
.wor-chart .grid { stroke: #d9d9d9; stroke-width: .5; }
.wor-chart .bar { fill: #156082; }
.wor-chart .ci { stroke: #e97132; stroke-width: 1; }
.wor-chart .title { fill: #595959; font: 9px "Aptos Narrow", Aptos, Calibri, Arial, sans-serif; }
.wor-chart .axis { fill: #595959; font: 5.5px "Aptos Narrow", Aptos, Calibri, Arial, sans-serif; }
.wor-chart .value { fill: #fff; font: 700 5.5px "Aptos Narrow", Aptos, Calibri, Arial, sans-serif; }
.wor-chart .value.outside { fill: #404040; }
.wor-footnotes { position: absolute; bottom: 111.8pt; left: 72pt; width: 468pt; }
.wor-fn-rule { width: 120pt; margin-bottom: 15.1pt; border-top: .5pt solid #000; }
.wor-sheet .wor-fn { margin: 0; font: 10pt/11.7pt "Times New Roman", Times, serif; text-align: left; }
.wor-seal { position: absolute; top: 22.7pt; left: 23.5pt; width: 92.4pt; height: 92.4pt; }
.wor-sheet-cover p { margin: 0; font-weight: 700; text-align: center; }
.wor-sheet-cover .wor-cover-kind { margin-top: 18.55pt; color: var(--wor-cover); font-size: 16pt; line-height: 18.4pt; }
.wor-sheet-cover .wor-cover-system { margin-top: 22.85pt; color: var(--wor-cover); font-size: 20pt; line-height: 23pt; }
.wor-sheet-cover .wor-cover-event { margin-top: 22.95pt; color: var(--wor-cover); font-size: 16pt; line-height: 18.4pt; white-space: pre-line; }
.wor-sheet-cover .wor-cover-location { margin-top: 23.3pt; font-size: 16pt; line-height: 18.4pt; }
.wor-sheet-cover .wor-cover-dates { font-size: 14pt; line-height: 16.1pt; }
.wor-sheet-cover .wor-cover-producer { margin-top: 18.47pt; font-size: 16pt; line-height: 18.4pt; }
.wor-sheet-cover .wor-cover-release { margin-top: 22.65pt; font-weight: 400; text-align: justify; }
.wor-signature { margin: 41.1pt 0 0 228pt; }
.wor-sheet-cover .wor-signature p { font-weight: 400; line-height: 13.9pt; text-align: left; }
.wor-cover-notes { position: absolute; right: 72pt; bottom: 59pt; left: 72pt; font: italic 9pt/10.5pt "Times New Roman", Times, serif; }
.wor-sheet .wor-cover-notes p { margin: 0 0 5.7pt; font-weight: 400; text-align: left; }
.wor-sheet .wor-cover-notes p:last-child { margin-bottom: 0; }
.wor-sheet .wor-toc-title { margin-bottom: 0; }
.wor-sheet .wor-toc-head { margin-top: 0; }
.wor-sheet .wor-toc-gap { margin-top: 27.6pt; }
.wor-toc-list { margin: 0; padding: 0; list-style: none; font: 10pt/11.5pt "Times New Roman", Times, serif; }
.wor-toc-list li { overflow: hidden; }
.wor-toc-list li::after { content: "................................................................................................................................................................................................................................................"; float: left; width: 0; white-space: nowrap; }
.wor-toc-text { padding-right: 2pt; background: #fff; }
.wor-toc-num { position: relative; z-index: 1; float: right; padding-left: 2pt; background: #fff; }
.wor-toc-1 { margin: 5.8pt 0; font-weight: 700; }
.wor-toc-2 { padding-left: 10.8pt; font-variant: small-caps; }
.wor-toc-flat { font-weight: 700; }
.wor-toc-3 { padding-left: 21.6pt; font-style: italic; }
.wor-h3-sub { font-style: italic; }
.wor-sheet .wor-missing { color: #595959; font-style: italic; }
.plan-current td { background: #eef1fa; }
.plan-form td, .plan-form-fields td { height: 19pt; }
.plan-form-fields td:first-child { font-weight: 700; }
.plan-form .plan-xy { display: block; color: #595959; font-size: 9pt; line-height: 11pt; }
.plan-form td:has(> .plan-unit) { position: relative; }
.plan-form .plan-unit { position: absolute; right: 3pt; bottom: 1pt; color: #8c8c8c; font-size: 8pt; line-height: 9pt; }
.wor-doc .ai-flag { padding: 0 2px; color: #7a1f12; background: #ffd9a0; }
@page worsheet { size: Letter portrait; margin: 0; }

@media (max-width: 650px) {
  .wor-grid, .wor-row, .wor-finding { grid-template-columns: 1fr; }
  .wor-finding .wide { grid-column: auto; }
}
@media print {
  .wor-doc > .ai-wor-notice { display: none !important; }
  .wor-frame { height: auto !important; overflow: visible; }
  .wor-stage { width: auto; margin: 0; transform: none !important; }
  .wor-sheet { margin: 0; box-shadow: none; break-after: page; page: worsheet; }
  .wor-sheet:last-child { break-after: auto; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
  .sheet-body { grid-template-columns: minmax(0, 1fr) 300px; }
}
@media (max-width: 1000px) {
  .sheet-header { flex-direction: column; gap: 22px; }
  .title-block { width: 100%; }
  .workspace-nav { grid-template-columns: repeat(5, minmax(150px, 1fr)); overflow-x: auto; padding-bottom: 6px; }
  .sheet-body { grid-template-columns: 1fr; }
  .range-verification-grid, .adequacy-panel { grid-template-columns: 1fr; }
  .visualizer-scene-fields .wide { grid-column: auto; }
  .visualizer-workspace { grid-template-columns: 1fr; }
  .visualizer-builder { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .visualizer-builder h4, .visualizer-builder > button { grid-column: 1 / -1; }
  .visualizer-builder label, .visualizer-coordinate-grid { margin-top: 0; }
}
@media (max-width: 700px) {
  .campaign-gate-heading, .campaign-handoff, .safety-gate-heading { align-items: stretch; flex-direction: column; }
  .campaign-gate-checklist, .safety-applicability, .flight-safety-controls, .flight-safety-fields { grid-template-columns: 1fr; }
  .flight-safety-fields .wide { grid-column: auto; }
  .campaign-handoff button { width: 100%; }
}
@media (max-width: 650px) {
  .campaign-heading, .doe-heading, .report-heading, .trl-heading, .trl-guidance, .purpose-heading, .rapid-heading, .gate-heading,
  .dotmlpf-panel-heading, .dotmlpf-gap-heading, .dotmlpf-transition-heading, .evidence-heading, .evidence-mapping-heading,
  .stats-heading, .doe-output-heading, .formula-guide-heading, .doe-launch, .result-box, .decision-banner {
    align-items: flex-start;
    flex-direction: column;
  }
  .report-heading > div:last-child { align-items: flex-start; }
  .trl-guidance span, .dotmlpf-gap-recommendation { text-align: left; }
  .campaign-grid, .trl-options, .purpose-options, .purpose-fields, .rapid-fields, .gate-inputs, .dotmlpf-controls-body,
  .dotmlpf-poc-grid, .dotmlpf-mode-options, .dotmlpf-override-row, .dotmlpf-gap-card summary, .dotmlpf-service-options,
  .evidence-mode-options, .evidence-map-grid, .report-fields, .report-actions, .advanced-grid, .comparison-grid,
  .formula-variable-grid, .library-source-body, .doe-form-grid, .doe-inline-form, .doe-inline-form.event-form,
  .doe-recommend-controls, .doe-factor-recommend-controls, .visualizer-scene-fields, .visualizer-builder,
  .visualizer-terrain-controls, .dotmlpf-readiness-grid, .dotmlpf-lane-grid, .dotmlpf-pathways, .dotmlpf-timeline,
  .leadership-grid, .input-grid, .report-summary-grid { grid-template-columns: 1fr; }
  .campaign-grid .wide, .purpose-fields .wide, .rapid-fields .wide, .dotmlpf-poc-grid .wide, .report-fields .wide,
  .advanced-grid .wide, .advanced-grid .exclude-run, .library-source-body .wide, .doe-form-grid .wide,
  .visualizer-builder h4, .visualizer-builder > button { grid-column: auto; }
  .gate-status-grid, .rapid-status-grid, .dotmlpf-status-grid, .doe-summary-grid, .report-tracker-grid,
  .dotmlpf-transition-summary, .leadership-factors { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stats-cards { grid-template-columns: 1fr; }
  .operator { height: 30px; }
  .input-card > label { min-height: 0; }
  .result-box p { max-width: none; }
  .campaign-upload, .evidence-drop-zone, .evidence-actions, .range-actions, .doe-actions, .report-tools, .file-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .doe-launch-actions { width: 100%; min-width: 0; }
  .campaign-handoff button, .dotmlpf-panel-heading button, .evidence-actions button, .doe-launch button, .report-tools button,
  .file-actions button, .file-actions label { width: 100%; }
  .saved-metric-row { grid-template-columns: auto 1fr; }
  .saved-metric-status { grid-column: 2; text-align: left; }
  .formula-example-equation { align-items: flex-start; flex-direction: column; }
  .interval-key span:nth-child(2) { display: none; }
  .visualizer-toolbar, .visualizer-view-actions { align-items: stretch; flex-direction: column; }
  .visualizer-camera { width: 100%; justify-content: space-between; }
  .visualizer-camera button { flex: 1; }
  .doe-conops-flow, .leadership-path { align-items: stretch; flex-direction: column; }
  .conops-arrow, .leadership-path i { justify-content: center; transform: rotate(90deg); }
  .conops-node { min-width: 0; }
  .range-crosswalk table { min-width: 700px; }
  .iap-cover { min-height: 620px; padding: 14px; }
  .iap-cover dl { grid-template-columns: 1fr; }
  .iap-cover-footer { flex-direction: column; text-align: center; }
  .iap-table { min-width: 720px; }
  .iap-section { overflow-x: auto; }
}
@media (max-width: 650px) {
  .sheet { padding-top: 22px; }
  .sheet-header { padding: 26px 20px; border-radius: 20px; }
  .detail-head, details.detail > summary { flex-wrap: wrap; }
  .detail-head-rule { display: none; }
  .title-block tr:first-child > :nth-child(1) { width: 82px; }
  .title-block tr:first-child > :nth-child(3) { width: 68px; }
  .title-block tr:first-child > :nth-child(4) { width: auto; }
  .title-block th { letter-spacing: .06em; }
  .title-block td { word-break: keep-all; overflow-wrap: normal; }
  #tbDrawing { overflow-wrap: anywhere; }
  .workspace-nav { padding: 16px; border-radius: 18px; }
  .detail, .rail-card { border-radius: 16px; }
  .detail:not(details) { padding: 22px 18px 20px; }
  .title-block { table-layout: fixed; font-size: 12.5px; }
  .title-block td { overflow-wrap: normal; word-break: keep-all; }
  .title-block th, .title-block td { padding: 7px 8px; }
  .step-prev, .step-next { flex: 1 1 0; justify-content: center; text-align: center; }
  .brief-drop { flex-direction: column; align-items: stretch; }
  .brief-drop .campaign-upload { align-items: stretch; }
}

/* ---------- Print: only the generated report ---------- */
@media print {
  @page { size: Letter portrait; margin: .55in .55in .65in; }
  body { color: #111; background: #fff; }
  .sheet-header, .workspace-nav, .sheet-rail, .sheet-continue, .detail-tag, .backup-banner, .campaign-workspace, .calculator,
  .doe-workspace, .report-builder > .detail:not(:has(#reportOutput)), .report-builder .detail:has(#reportOutput) > :not(#reportOutput),
  .info-toggle, .ai-help, .ai-suggest, .ai-wor-bar { display: none !important; }
  .ai-wor .ai-flag { background: none; }
  .sheet { max-width: none; padding: 0; }
  .sheet-body { display: block; }
  main { padding: 0; }
  .report-builder:not([hidden]) { display: block !important; max-width: none; margin: 0; padding: 0; border: 0; background: #fff; }
  .report-builder .detail:has(#reportOutput) { display: block !important; margin: 0; padding: 0; border: 0; background: none; }
  .report-output:not([hidden]) { display: block !important; margin: 0; padding: 0; border: 0; border-radius: 0; }
  .report-table-wrap { overflow: visible; }
  .report-table { font-size: 9pt; }
  .report-section { break-inside: avoid; }
  .report-table tr, .iap-table tr { break-inside: avoid; }
  .iap-table thead { display: table-header-group; }
  .iap-cover { min-height: 9.1in; padding: .1in .15in .2in; break-after: page; }
  .iap-cover-marking, .iap-cover-footer span { display: none; }
  .iap-cover h1 { font-size: 38pt; }
  .iap-cover h2 { font-size: 20pt; }
  .iap-section { margin: .22in 0; }
  .iap-section > h2 { font-size: 15pt; }
  .iap-section > h3 { font-size: 12pt; }
  .iap-section p { font-size: 10pt; }
  .iap-table { font-size: 8.2pt; }
  .iap-annex { break-before: page; }
  .iap-fixed-marking { display: block; position: fixed; right: 0; left: 0; z-index: 20; color: #080b82; font-size: 8pt; font-weight: 900; text-align: center; }
  .iap-fixed-top { top: -.38in; }
  .iap-fixed-bottom { bottom: -.48in; }
  .iap-cover ~ .iap-fixed-marking { visibility: visible; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* WOR cover panel on the Reports sheet: one heading per line of the printed cover. */
.wor-cover-fields .wor-cover-group { margin: 18px 0 8px; font-size: 13px; font-weight: 600; letter-spacing: 0.02em; }
.wor-cover-fields .wor-cover-group:first-of-type { margin-top: 4px; }
