/* Navigation audit worksheet (/information-architecture/navigation-audit/).
   Layered over home-parity.css + site-nav-dropdown.css + guides.css + guides-rich.css, scoped to body.nva.
   Layout follows the IA hub (1200px container, no side rail); the page has no section outline (one worksheet).
   The approved final composition is the screen layer at the end of this file. Existing tokens only: #303030 ink, #3d3d3d body, #56514f / #6d6d6d muted,
   #643995 accent, #e3dedd rule, #d9d2e2 line, #faf8fd band, #f5f0ff active pill, #E0BBF5 lavender. */

.nva { --ink: #303030; --muted: #6d6d6d; --purple: #643995; --rule: #e3dedd; --line: #d9d2e2; --band: #faf8fd; --nav-h: 65px; }
.nva .gd-article > .container { max-width: 1200px; }
.nva .gd-layout { display: block; }
.nva .gd-measure { max-width: none; }
.nva [id] { scroll-margin-top: calc(var(--nav-h) + 24px); }
/* Keyboard focus never lands under the sticky nav (WCAG 2.4.11): the scroller keeps the nav height clear. */
html:has(> body.nva) { scroll-padding-top: 89px; }
@media (max-width: 760px) { html:has(> body.nva) { scroll-padding-top: 92px; } }
.nva-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
html:not(.js) .nva-js { display: none !important; }
.nva-print-brand, .nva-print-head, .nva-print-foot, .nva-print-note, .nva-print-sum, .nva-pv { display: none; }
/* V2 observation controls need the script (summary, exports); without it the card keeps its six fields. */
html:not(.js) body.nva .nva-obs__meta { display: none; } /* outranks the screen layer's body.nva rule */

/* Opaque on this page: entries scrolling under the translucent shared nav read as ghost text. */
.nva .nav-02 { background-color: #fff; }

/* ---------- header ---------- */
.nva-head h1 { margin: 6px 0 14px; }
.nva-intro { max-width: 780px; }
.nva .gd-article .nva-intro p { margin: 0 0 12px; }
.nva-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin: 22px 0 0; padding: 14px 16px; background: var(--band); border: 1px solid var(--line); border-radius: 10px; }
.nva .gd-article .nva-status { margin: 0 0 0 auto; font-size: 14px; color: var(--muted); }

.nva-btn { font: inherit; font-size: 14px; font-weight: 700; line-height: 1.3; color: var(--ink); background: #fff; border: 1.5px solid var(--ink); border-radius: 6px; padding: 8px 14px; cursor: pointer; }
.nva-btn:hover { box-shadow: 2px 2px 0 #E0BBF5; }
.nva-btn:focus-visible, .nva-remove:focus-visible, .nva-example > summary:focus-visible { outline: 2px solid var(--purple); outline-offset: 2px; }
.nva-btn--primary { color: #fff; background: var(--purple); border-color: var(--purple); }
.nva-btn--quiet { color: #56514f; border-color: var(--line); }
.nva-add { margin-top: 12px; }

/* ---------- sections ---------- */
.nva-sec { margin-top: 56px; }
.nva-sec h2 { margin: 0 0 10px; }
.nva .gd-article .nva-help { max-width: 780px; margin: 0 0 12px; }
.nva-opt { font-weight: 400; color: var(--muted); }

/* fields */
.nva-f__label { display: block; margin: 0 0 4px; font-size: 13.5px; font-weight: 700; color: var(--ink); }
.nva textarea { display: block; width: 100%; box-sizing: border-box; min-height: 42px; margin: 0; padding: 8px 10px; font: inherit; font-size: 15px; line-height: 1.45; color: var(--ink); background: #fff; border: 1px solid #cfc6db; border-radius: 6px; resize: vertical; field-sizing: content; }
.nva textarea::placeholder { color: #8a8290; }
.nva textarea:focus { outline: 2px solid var(--purple); outline-offset: 0; border-color: var(--purple); }

.nva-scope { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 20px; margin-top: 18px; }
@media (max-width: 960px) { .nva-scope { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .nva-scope { grid-template-columns: 1fr; } }

/* ---------- worksheet tables (tasks, observation log) ---------- */
.nva-table { width: 100%; margin-top: 16px; border-collapse: collapse; table-layout: fixed; }
.nva-table th, .nva-table td { padding: 8px 6px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--rule); }
.nva-table thead th { font-size: 13.5px; font-weight: 700; color: var(--ink); white-space: normal; border-bottom: 2px solid var(--ink); }
.nva-table .nva-f__label { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.nva-row__n { font-size: 14px; font-weight: 700; color: var(--muted); padding-top: 18px !important; }
.nva-row__rm { width: 40px; }
.nva-table--tasks th:first-child { width: 64px; }
.nva-remove { width: 32px; height: 32px; margin-top: 6px; padding: 0; font: inherit; font-size: 20px; line-height: 1; color: #56514f; background: #fff; border: 1px solid var(--line); border-radius: 6px; cursor: pointer; }
.nva-remove:hover { border-color: var(--purple); color: var(--purple); }
.nva .gd-article .nva-empty { margin: 14px 0 0; color: var(--muted); font-style: italic; }

/* below 900px each task row becomes a labelled block */
@media (max-width: 899px) {
  .nva-table--tasks, .nva-table--tasks tbody, .nva-table--tasks tr, .nva-table--tasks td, .nva-table--tasks th { display: block; width: auto !important; }
  .nva-table--tasks thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .nva-table--tasks tr { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px; padding: 16px 0 18px; border-bottom: 1px solid var(--rule); }
  .nva-table--tasks th, .nva-table--tasks td { padding: 0; border: 0; }
  .nva-table--tasks .nva-row__n { grid-column: 1 / -1; padding: 0 44px 0 0 !important; color: var(--ink); font-size: 15px; }
  .nva-table--tasks .nva-row__rm { position: absolute; top: 10px; right: 0; }
  .nva-table--tasks .nva-f__label { position: static; width: auto; height: auto; margin: 0 0 4px; overflow: visible; clip: auto; white-space: normal; }
}
@media (max-width: 640px) {
  .nva-table--tasks tr { grid-template-columns: 1fr; }
}

/* ---------- observation cards: what you saw (row 1), what it may mean and what comes next (row 2) ---------- */
.nva-cards { display: grid; gap: 18px; margin-top: 18px; }
.nva-obs { border: 1px solid var(--line); border-radius: 10px; background: #fff; overflow: hidden; }
.nva-obs__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 12px 8px 20px; background: var(--band); border-bottom: 1px solid var(--line); }
.nva-obs .nva-row__n { padding: 0 !important; font-size: 15px; color: var(--ink); }
.nva-obs .nva-remove { margin: 0; }
.nva-obs__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px 20px; padding: 16px 20px 20px; }
.nva-obs .nva-f--item { grid-column: span 3; }
.nva-obs .nva-f--observation { grid-column: span 5; }
.nva-obs .nva-f--evidence { grid-column: span 4; }
.nva-obs .nva-f--explanations { grid-column: span 5; }
.nva-obs .nva-f--question { grid-column: span 3; }
.nva-obs .nva-f--next { grid-column: span 4; }
.nva-obs textarea { min-height: 92px; }
.nva-obs .nva-f--item textarea { min-height: 92px; }
@media (max-width: 1099px) {
  .nva-obs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nva-obs .nva-f { grid-column: auto !important; }
  .nva-obs .nva-f--observation, .nva-obs .nva-f--explanations { grid-column: 1 / -1 !important; }
}
@media (max-width: 640px) {
  .nva-obs__grid { grid-template-columns: 1fr; gap: 14px; padding: 14px; }
  .nva-obs__head { padding: 8px 10px 8px 14px; }
  .nva-obs textarea { min-height: 72px; }
  .nva-obs .nva-f--item textarea { min-height: 46px; }
}

/* ---------- checklist ---------- */
.nva .gd-article .nva-count { display: inline-block; margin: 6px 0 0; padding: 4px 12px; font-size: 14px; font-weight: 700; color: var(--purple); border: 1px solid var(--line); border-radius: 999px; background: #fff; }
.nva-group { margin: 30px 0 4px; font-size: 18.2px; }
.nva .gd-article .nva-checks { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--rule); }
.nva .gd-article .nva-check { margin: 0; }
.nva-check { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 10px 28px; padding: 14px 0; border-bottom: 1px solid var(--rule); }
.nva-check__n { display: inline-block; min-width: 1.6em; font-weight: 700; color: var(--muted); }
.nva .gd-article .nva-check__q { margin: 0 0 8px; }
.nva-tick { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: #56514f; cursor: pointer; }
.nva-tick input { width: 20px; height: 20px; margin: 0; accent-color: var(--purple); cursor: pointer; }
.nva-tick input:focus-visible { outline: 2px solid var(--purple); outline-offset: 2px; }
@media (max-width: 760px) { .nva-check { grid-template-columns: 1fr; } }

/* ---------- next checks, example, limits ---------- */
.nva-next td:first-child { width: 34%; font-weight: 600; color: var(--ink); }
.nva-example { margin-top: 6px; }
.nva-example > summary { display: inline-block; list-style: none; cursor: pointer; font-size: 14px; font-weight: 700; color: var(--purple); border: 1.5px solid var(--purple); border-radius: 6px; padding: 8px 14px; background: #fff; }
.nva-example > summary::-webkit-details-marker { display: none; }
.nva-example__hide, .nva-example[open] .nva-example__show { display: none; }
.nva-example[open] .nva-example__hide { display: inline; }
.nva-example__body { margin-top: 8px; padding: 4px 20px 16px; border-left: 3px solid #E0BBF5; }
.nva-example__body h3 { margin: 22px 0 6px; }
.nva-example .gd-table { font-size: 14px; }
.nva-ex-scope td:first-child { width: 24%; font-weight: 600; }
.nva-ex-log th { white-space: normal; }
.nva-ex-notes { margin: 6px 0 0; padding-left: 1.1em; }
.nva-ex-notes li { margin: 0 0 6px; }
@media (max-width: 640px) { .nva-example__body { padding: 0 0 8px 12px; } }

/* ---------- clear confirmation ---------- */
.nva-dialog { position: fixed; inset: 0; margin: auto; height: fit-content; max-width: 440px; width: calc(100vw - 48px); padding: 24px; color: var(--ink); border: 2px solid var(--ink); border-radius: 10px; box-shadow: 6px 6px 0 #E0BBF5; }
.nva-dialog::backdrop { background: rgba(48, 48, 48, 0.45); }
.nva-dialog h2 { margin: 0 0 10px; font-size: 20px; }
.nva .gd-article .nva-dialog p { margin: 0 0 18px; }
.nva-dialog__actions { display: flex; flex-wrap: wrap; gap: 10px; }

.nva-blank-sheet { display: none; }

@media (max-width: 760px) { .nva { --nav-h: 68px; } }
@media (max-width: 640px) {
  .nva-controls { padding: 12px; }
  .nva .gd-article .nva-status { margin: 0; flex-basis: 100%; }
}

/* ---------- print: the worksheet only ---------- */
@page { margin: 14mm 12mm 16mm; @bottom-left { content: "uxbeam.com/information-architecture/navigation-audit/"; font-size: 8pt; color: #6d6d6d; } }
@page nva-wide { size: landscape; }

@media print {
  .nva { font-size: 10pt; }
  .nva .nav-02, .nva .footer-02, .nva .bg-black-color, .nva .lightbox-overlay, .nva-head, .nva-help, .nva-legend, .nva-screen, .nva-js,
  .nva-row__rm, .nva-empty, .nva-dialog { display: none !important; }
  .nva .gd-article { padding: 0; }
  .nva .gd-article > .container { max-width: none; padding: 0; }
  .nva * { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  /* print-only brand row: the site's own lockup (logo + wordmark), then the title rule */
  .nva .gd-article .nva-print-brand { display: flex; align-items: center; gap: 2mm; margin: 0 0 2.5mm; font-size: 11pt; font-weight: 700; color: #303030; }
  .nva-print-brand img { width: auto; height: 6.5mm; }
  .nva .gd-article .nva-print-head { display: block; margin: 0 0 4mm; padding-bottom: 2.5mm; border-bottom: 0.4mm solid #303030; font-size: 15pt; font-weight: 700; color: #303030; }
  .nva .gd-article .nva-print-note { display: block; margin: 0 0 2mm; font-size: 9pt; color: #303030; }
  .nva-sec { margin-top: 6mm; }
  .nva-sec h2 { font-size: 13pt; margin: 0 0 2mm; break-after: avoid; }
  .nva-group { font-size: 9pt; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #56514f; margin: 3mm 0 0; padding-bottom: 1mm; break-after: avoid; }

  /* fields print as text blocks (filled by the script before printing) */
  .js .nva textarea { display: none; }
  .nva-pv { display: block; min-height: 7mm; padding: 1.5mm 2mm; font-size: 9.5pt; line-height: 1.35; white-space: pre-wrap; overflow-wrap: anywhere; border: 0.3mm solid #b9afc9; border-radius: 1mm; }
  .nva-f__label { font-size: 8.5pt; margin-bottom: 1mm; }

  .nva-scope { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3mm 5mm; margin-top: 2mm; }
  .nva-scope .nva-pv { min-height: 12mm; }

  /* real tables in print: column headers repeat on each page, rows never split */
  .nva-table, .nva-table thead, .nva-table tbody, .nva-table tr, .nva-table th, .nva-table td { position: static !important; }
  .nva-table { display: table !important; width: 100% !important; table-layout: fixed; }
  .nva-table thead { display: table-header-group !important; width: auto !important; height: auto !important; overflow: visible !important; clip: auto !important; }
  .nva-table tbody { display: table-row-group !important; }
  .nva-table tr { display: table-row !important; break-inside: avoid; }
  .nva-table th, .nva-table td { display: table-cell !important; width: auto; padding: 1.5mm 1.2mm !important; font-size: 8.5pt; }
  .nva-table thead th { font-size: 8.5pt; border-bottom: 0.5mm solid #303030; }
  .nva-table .nva-f__label { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; }
  .nva-table .nva-row__rm { display: none !important; }
  .nva-table--tasks th:first-child { width: 15mm !important; }
  .nva-row__n { font-size: 8.5pt !important; color: #303030 !important; padding-top: 2.5mm !important; white-space: nowrap; }
  .nva-table--tasks .nva-pv { min-height: 9mm; }

  /* checklist: its own page, two balanced columns, items never split */
  .nva-sec--checklist { break-before: page; margin-top: 0; }
  .nva-groups { columns: 2; column-gap: 8mm; }
  .nva-group { break-after: avoid; }
  .nva-group:first-child { margin-top: 0; }
  .nva .gd-article .nva-checks { border-top: 0.3mm solid #b9afc9; }
  .nva-check { display: block; padding: 1.2mm 0; border-bottom: 0.3mm solid #e3dedd; break-inside: avoid; }
  .nva .gd-article .nva-check__q { margin: 0 0 1mm; font-size: 8.5pt; line-height: 1.35; }
  .nva-tick { font-size: 8pt; margin: 0 0 1mm; }
  .nva-tick input { width: 3.6mm; height: 3.6mm; }
  .nva-f--note .nva-f__label { display: none; }
  .nva-f--note .nva-pv { min-height: 11mm; }

  /* observation log: landscape pages where named pages are supported; cards work in portrait too */
  .nva-sec--log { page: nva-wide; break-before: page; margin-top: 0; }
  .nva-cards { gap: 3.5mm; margin-top: 2mm; }
  .nva-obs { break-inside: avoid; border: 0.3mm solid #b9afc9; border-radius: 1.5mm; }
  .nva-obs__head { padding: 1mm 3mm; background: #faf8fd; }
  .nva-obs .nva-row__n { font-size: 9pt; }
  .nva-obs__grid { grid-template-columns: repeat(12, minmax(0, 1fr)) !important; gap: 1.5mm 3mm; padding: 1.5mm 3mm 2.5mm; }
  .nva-obs .nva-f--item { grid-column: span 3 !important; }
  .nva-obs .nva-f--observation { grid-column: span 5 !important; }
  .nva-obs .nva-f--evidence { grid-column: span 4 !important; }
  .nva-obs .nva-f--explanations { grid-column: span 5 !important; }
  .nva-obs .nva-f--question { grid-column: span 3 !important; }
  .nva-obs .nva-f--next { grid-column: span 4 !important; }
  .nva-obs .nva-pv { min-height: 10mm; }
  .nva-blank-sheet .nva-obs .nva-pv { min-height: 16mm; }

  body.nva-printing-blank #nva-sheet { display: none !important; }
  body.nva-printing-blank .nva-blank-sheet { display: block !important; }

  /* V2 observation controls: priority prints as text (blank: "High / Medium / Low" to circle); include is screen-only */
  .js .nva select { display: none; }
  /* priority sits in the card's header bar, so the observation log keeps its height */
  .nva-obs { position: relative; }
  .nva-obs__meta { position: absolute; top: 0.9mm; right: 3mm; padding: 0; }
  .nva-f--priority { display: flex; align-items: baseline; gap: 2mm; }
  .nva-f--priority .nva-f__label { margin: 0; }
  .nva .nva-f--priority .nva-pv { min-height: 0 !important; padding: 0 1mm; border: 0; font-size: 9pt; font-weight: 700; }
  .nva-f--include, .nva-hint { display: none !important; }
  .nva-obs .nva-f--item .nva-pv { min-height: 10mm; }

  /* completed PDF, page 1: the audit summary (built by the script); never in the blank PDF */
  .nva .gd-article .nva-print-sum { display: block; break-after: page; }
  body.nva-printing-blank .nva-print-sum { display: none !important; }
  .nva .gd-article .nva-print-sum:empty { display: none; } /* no script: no summary page, no blank first page */
  .nva-ps-meta { display: grid; grid-template-columns: 38mm minmax(0, 1fr); gap: 1mm 4mm; margin: 0 0 5mm; font-size: 9pt; line-height: 1.35; }
  .nva-ps-meta dt { font-weight: 700; color: #303030; }
  .nva-ps-meta dd { margin: 0; color: #3d3d3d; white-space: pre-wrap; overflow-wrap: anywhere; }
  .nva-print-sum h2 { font-size: 13pt; margin: 0 0 1.5mm; break-after: avoid; }
  .nva .gd-article .nva-print-sum p { margin: 0 0 3mm; font-size: 9pt; color: #3d3d3d; }
  .nva-ps-table { width: 100%; border-collapse: collapse; font-size: 8.6pt; line-height: 1.35; }
  .nva-ps-table th { text-align: left; font-size: 7.5pt; letter-spacing: .06em; text-transform: uppercase; color: #643995; border-bottom: 0.4mm solid #303030; padding: 1.5mm; }
  .nva-ps-table td { vertical-align: top; border-bottom: 0.3mm solid #e3dedd; padding: 2mm 1.5mm; white-space: pre-wrap; overflow-wrap: anywhere; }
  .nva-ps-table tr { break-inside: avoid; }
  .nva-ps-table td.nva-ps-p { white-space: nowrap; font-weight: 700; }
  .nva-ps-table th:first-child { width: 24mm; }
  .nva-ps-table--unranked th:first-child { width: auto; }
  .nva-ps-table b { display: block; margin: 0 0 0.8mm; }
  .nva-ps-table i { color: #8a4b1f; }
  .nva-ps-open { margin: 5mm 0 0; padding: 3mm 4mm; background: #faf8f6; border-radius: 1.5mm; break-inside: avoid; }
  .nva-ps-open h3 { font-size: 10pt; margin: 0 0 1.5mm; }
  .nva .gd-article .nva-ps-open ul { margin: 0; padding-left: 5mm; }
  .nva .gd-article .nva-ps-open li { font-size: 8.8pt; margin: 0.8mm 0; line-height: 1.35; }
  .nva .gd-article .nva-print-sum .nva-ps-limits { margin: 4mm 0 0; font-size: 8.5pt; color: #56514f; }

  /* completed PDF, closing appendix: the next-check table */
  body:not(.nva-printing-blank) .nva-sec.nva-appendix { display: block !important; break-before: page; margin-top: 0; }
  .nva-appendix .gd-table-scroll { overflow: visible !important; }
  .nva-appendix .gd-table { width: 100%; font-size: 8.8pt; border-collapse: collapse; }
  .nva-appendix .gd-table th, .nva-appendix .gd-table td { padding: 1.8mm 1.5mm; vertical-align: top; border-bottom: 0.3mm solid #e3dedd; white-space: normal; }
  .nva-appendix .gd-table tr { break-inside: avoid; }
  .nva-appendix a { color: #303030; text-decoration: none; }
}

/* ==========================================================================
   Final composition (screen only; print rules above are untouched). Approved 2026-10-14, promoted from the
   ?concept=final review overlay (concepts/concept-final.css). Header and Scope from concept A1, checklist sheet
   from A2, observation cards from A1. One 1124px content column; no section outline.
   - 01 Scope: rail (numeral above heading, instruction) beside the fields.
   - 02 Tasks, 03 Checklist, 04 Log: numeral + heading on one line, instruction below at the full content width,
     working surface below. Post-worksheet help text also runs the full content width.
   - CTA: narrower box, centred in the column (V2, 2026-10-15).
   Station colours: 01 lavender, 02 peach, 03 sky, 04 mint, so mint never sits beside a tick.
   ========================================================================== */
@media screen {
  body.nva { --paper: #faf8f6; --line: #cfc6db; --hair: #ece6f4; --lav: #E0BBF5; --peach: #FFD1BB; --sky: #BBDAFF; --mint: #D4FFBB; --ink: #303030; --purple: #643995; --rail: 260px; --rail-gap: 44px; --measure: none; }


  /* ---------- first impression: A1 title block + instrument panel ---------- */
  body.nva .nva-head { display: grid; grid-template-columns: minmax(0, 1fr) 360px; column-gap: 72px; align-items: start; padding: 8px 0 12px; }
  body.nva .nva-head > :not(.nva-controls) { grid-column: 1; }
  body.nva .nva-head h1 { font-size: 48px; line-height: 1.08; letter-spacing: -0.5px; margin: 10px 0 22px; }
  body.nva .nva-head h1::after { content: ''; display: block; width: 168px; height: 6px; margin-top: 18px; border-radius: 3px; background: var(--gd-drift-gradient); background-size: 300% 100%; }
  body.nva .gd-article .nva-intro .gd-lead { font-size: 19px; line-height: 1.6; color: var(--ink); }
  body.nva .gd-article .nva-intro p { color: #56514f; }
  body.nva .nva-controls { grid-column: 2; grid-row: 1 / span 3; flex-direction: column; align-items: stretch; gap: 10px; margin: 44px 0 0; padding: 22px; background: #fff; border: 2px solid var(--ink); border-radius: 12px; box-shadow: 7px 7px 0 var(--lav); }
  body.nva .nva-controls .nva-btn { width: 100%; padding: 11px 16px; font-size: 15px; text-align: left; }
  body.nva .nva-controls .nva-btn--primary { background: var(--ink); border-color: var(--ink); }
  body.nva .nva-controls .nva-btn--quiet { border-style: dashed; }
  body.nva .gd-article .nva-status { margin: 6px 0 0; padding-top: 12px; border-top: 1px solid #e3dedd; font-size: 13.5px; }

  /* ---------- stations: shared numeral disc on the heading ---------- */
  body.nva #nva-sheet { counter-reset: station; margin-top: 40px; }
  body.nva #nva-sheet > .nva-sec { --st: var(--lav); counter-increment: station; margin: 0; padding: 56px 0 60px; border-top: 1px solid #e3dedd; }
  body.nva #nva-sheet > .nva-sec:nth-child(2) { --st: var(--peach); }
  body.nva #nva-sheet > .nva-sec:nth-child(3) { --st: var(--sky); }
  body.nva #nva-sheet > .nva-sec:nth-child(4) { --st: var(--mint); }
  body.nva #nva-sheet > .nva-sec:first-child { border-top: 0; background: linear-gradient(90deg, rgba(224,187,245,0), rgba(224,187,245,.55) 30%, rgba(187,218,255,.55) 70%, rgba(187,218,255,0)) top / 100% 2px no-repeat; }
  body.nva #nva-sheet > .nva-sec > h2 { display: flex; align-items: center; gap: 16px; margin: 0 0 16px; font-size: 28px; line-height: 1.2; }
  body.nva #nva-sheet > .nva-sec > h2::before { content: counter(station, decimal-leading-zero); flex: none; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; font-size: 18px; font-weight: 700; color: var(--ink); background: var(--st); }
  body.nva .gd-article .nva-sec.nva-screen .nva-help { max-width: none; }
  body.nva .gd-article #nva-sheet .nva-help { max-width: var(--measure); font-size: 15.5px; line-height: 1.65; color: #56514f; margin: 0 0 10px; }
  body.nva #nva-sheet > .nva-sec:nth-child(n + 2) { display: flow-root; }
  body.nva #nva-sheet > .nva-sec > .nva-table, body.nva #nva-sheet > .nva-sec > .nva-groups, body.nva #nva-sheet > .nva-sec > .nva-cards { margin-top: 28px; }

  /* 01: A1 rail (numeral above heading, instruction) beside the fields */
  body.nva #nva-sheet > .nva-sec:first-child { display: grid; grid-template-columns: var(--rail) minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: var(--rail-gap); align-items: start; }
  body.nva #nva-sheet > .nva-sec:first-child > h2 { grid-column: 1; grid-row: 1; flex-direction: column; align-items: flex-start; gap: 18px; }
  body.nva #nva-sheet > .nva-sec:first-child > h2::before { width: 56px; height: 56px; font-size: 19px; }
  body.nva .gd-article #nva-sheet > .nva-sec:first-child > .nva-help { grid-column: 1; grid-row: 2; font-size: 15px; }
  body.nva #nva-sheet > .nva-sec:first-child > .nva-scope { grid-column: 2; grid-row: 1 / span 2; margin: 0; }
  body.nva #nva-sheet > .nva-sec > .nva-add { margin-top: 16px; }

  /* ---------- fields as notebook lines (A1) ---------- */
  body.nva .nva-f__label { font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--purple); margin-bottom: 6px; }
  body.nva .nva-opt { text-transform: none; letter-spacing: 0; font-weight: 400; }
  /* field boundary #8b80a0 = 3.3:1 or more on every field fill (WCAG 1.4.11); placeholder #6f6585 = 4.85:1 or more (1.4.3) */
  body.nva textarea { background: var(--paper); border: 0; border-bottom: 1.5px solid #8b80a0; border-radius: 6px 6px 0 0; padding: 10px 12px; transition: background .15s, border-color .15s; }
  body.nva textarea:hover { border-bottom-color: #6f6585; }
  body.nva textarea:focus { outline: none; background: #f5f0ff; border-bottom-color: var(--purple); box-shadow: 0 2px 0 var(--purple); }
  body.nva textarea::placeholder { color: #6f6585; }
  body.nva .nva-scope { gap: 24px 32px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.nva .nva-scope textarea { min-height: 48px; }

  /* tasks: A1 ledger; goal column slightly wider, the other three equal */
  body.nva .nva-table th, body.nva .nva-table td { border-bottom: 1px solid var(--hair); padding: 10px 8px; }
  body.nva .nva-table thead th { font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--purple); border-bottom: 2px solid var(--ink); vertical-align: bottom; }
  body.nva .nva-table--tasks thead th:first-child { width: 64px; }
  body.nva .nva-table--tasks thead th:nth-child(2) { width: 27%; }
  body.nva .nva-table--tasks textarea { min-height: 48px; }
  body.nva .nva-table--tasks .nva-row__n { color: var(--ink); font-size: 13px; padding-top: 22px !important; }
  body.nva .nva-btn.nva-add { border-style: dashed; border-color: #9d8fb3; color: var(--purple); background: transparent; }
  body.nva .nva-btn.nva-add:hover { border-style: solid; box-shadow: 3px 3px 0 var(--st, var(--lav)); }

  /* ---------- checklist: A2 three families side by side on a notebook ground ---------- */
  body.nva .gd-article .nva-count { justify-self: start; margin: 4px 0 0; padding: 4px 12px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: #56514f; font-size: 13.5px; font-weight: 700; }
  body.nva .nva-groups { display: grid; grid-auto-flow: column; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto auto; column-gap: 0; padding: 30px 0 8px; background: var(--paper); border-radius: 16px; }
  body.nva .nva-group { margin: 0; padding: 0 30px 14px; font-size: 18px; line-height: 1.3; display: flex; align-items: center; gap: 10px; }
  body.nva .nva-group::before { content: ''; width: 12px; height: 12px; border-radius: 50%; flex: none; box-shadow: 0 0 0 2px var(--ink); background: var(--g); }
  body.nva .nva-groups > :nth-child(1), body.nva .nva-groups > :nth-child(2) { --g: var(--lav); }
  body.nva .nva-groups > :nth-child(3), body.nva .nva-groups > :nth-child(4) { --g: var(--peach); }
  body.nva .nva-groups > :nth-child(5), body.nva .nva-groups > :nth-child(6) { --g: var(--sky); }
  body.nva .nva-groups > :nth-child(n + 3) { border-left: 1px solid #e6dfd9; }
  body.nva .gd-article .nva-checks { margin: 0; padding: 0 30px 18px; border-top: 0; }
  body.nva .nva-check { display: block; padding: 20px 0 18px; border-top: 1.5px solid var(--ink); border-bottom: 0; }
  body.nva .nva-check + .nva-check { border-top: 1px solid #e6dfd9; }
  body.nva .gd-article .nva-check__q { margin: 0 0 14px; font-size: 15.5px; line-height: 1.6; color: #3d3d3d; }
  body.nva .nva-check__q strong { color: var(--ink); }
  body.nva .nva-check__n { min-width: 0; width: 24px; height: 24px; margin-right: 10px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 1.5px var(--line); color: var(--purple); font-size: 12px; display: inline-grid; place-items: center; vertical-align: 1px; }
  body.nva .nva-f--note .nva-f__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  body.nva .nva-f--note textarea { min-height: 64px; background: #fff; font-size: 15px; }
  body.nva .nva-f--note textarea:focus { background: #fff; }
  body.nva .nva-tick { margin: 0 0 12px; padding: 2px 6px 2px 0; font-size: 13.5px; color: #56514f; }
  body.nva .nva-tick input { appearance: none; -webkit-appearance: none; width: 24px; height: 24px; flex: none; border: 2px solid var(--ink); border-radius: 6px; background: #fff; transition: background .15s; }
  body.nva .nva-tick:hover input { background: #f5f0ff; }
  body.nva .nva-tick input:checked { background: var(--lav) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5' fill='none' stroke='%23303030' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 15px no-repeat; }
  body.nva .nva-tick input:focus-visible { outline: 3px solid var(--purple); outline-offset: 3px; }

  /* ---------- observation cards: A1 framed records ---------- */
  body.nva .nva-cards { gap: 30px; margin-top: 26px; }
  body.nva .nva-obs { border: 2px solid var(--ink); border-radius: 12px; box-shadow: 7px 7px 0 var(--mint); overflow: visible; }
  body.nva .nva-obs__head { background: transparent; border-bottom: 0; padding: 18px 16px 0 24px; }
  body.nva .nva-obs .nva-row__n { font-size: 19px; display: inline-flex; align-items: center; gap: 10px; }
  body.nva .nva-obs .nva-row__n::before { content: ''; width: 12px; height: 12px; border-radius: 50%; background: var(--mint); box-shadow: 0 0 0 2px var(--ink); }
  body.nva .nva-obs__grid { padding: 18px 24px 26px; gap: 20px 28px; }
  body.nva .nva-obs .nva-f--explanations, body.nva .nva-obs .nva-f--question, body.nva .nva-obs .nva-f--next { padding-top: 20px; border-top: 1px dashed var(--line); }
  body.nva .nva-remove { border-color: transparent; background: transparent; font-size: 22px; }
  body.nva .nva-remove:hover { border-color: var(--ink); background: #fff; }

  /* ---------- final CTA: narrower box (centred: see V2 below) ---------- */
  body.nva .gd-cta-glow { max-width: 820px; }
  body.nva .gd-article .gd-cta p { max-width: 660px; margin-left: auto; margin-right: auto; }
  body.nva .gd-article .gd-cta p:last-child { margin-bottom: 0; }

  /* ---------- tablet: every station becomes a header row (heading | instruction) over a full-width surface ---------- */
  @media (max-width: 1099px) {
    body.nva { --rail: 220px; --rail-gap: 36px; }
    body.nva .nva-head { grid-template-columns: 1fr; }
    body.nva .nva-controls { grid-column: 1; grid-row: auto; margin-top: 18px; flex-direction: row; flex-wrap: wrap; }
    body.nva .nva-controls .nva-btn { width: auto; }
    body.nva #nva-sheet > .nva-sec:first-child { grid-template-rows: none; }
    body.nva #nva-sheet > .nva-sec:first-child > h2 { grid-row: 1 / span 2; }
    body.nva .gd-article #nva-sheet > .nva-sec:first-child > .nva-help { grid-column: 2; grid-row: 1 / span 2; padding-top: 74px; }
    body.nva #nva-sheet > .nva-sec:first-child > .nva-scope { grid-column: 1 / -1; grid-row: 3; margin-top: 30px; }
    body.nva .nva-groups { grid-auto-flow: row; grid-template-columns: 1fr; grid-template-rows: none; padding: 26px 0 6px; }
    body.nva .nva-groups > :nth-child(n + 3) { border-left: 0; }
    body.nva .nva-group { padding: 0 26px 12px; }
    body.nva .nva-groups > .nva-group:not(:first-child) { padding-top: 22px; }
    body.nva .gd-article .nva-checks { padding: 0 26px 8px; }
    body.nva .nva-check { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); column-gap: 28px; }
    body.nva .nva-check .nva-f--note { grid-column: 2; grid-row: 1 / span 2; }
    body.nva .nva-obs .nva-f--explanations { padding-top: 20px; }
    body.nva .nva-obs .nva-f--question, body.nva .nva-obs .nva-f--next { border-top: 0; padding-top: 0; }
  }
  /* tasks become labelled two-column blocks from tablet down (base CSS does this only below 900px;
     a four-column row at 900-1099px leaves ~136px fields) */
  @media (max-width: 1099px) {
    body.nva .nva-table--tasks, body.nva .nva-table--tasks tbody, body.nva .nva-table--tasks tr, body.nva .nva-table--tasks td, body.nva .nva-table--tasks th { display: block; width: auto !important; }
    body.nva .nva-table--tasks thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    body.nva .nva-table--tasks tr { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 28px; padding: 18px 0 22px; border-bottom: 1px solid var(--hair); }
    body.nva .nva-table--tasks th, body.nva .nva-table--tasks td { padding: 0; border: 0; }
    body.nva .nva-table--tasks .nva-row__n { grid-column: 1 / -1; padding: 0 44px 0 0 !important; font-size: 15px; }
    body.nva .nva-table--tasks .nva-row__rm { position: absolute; top: 12px; right: 0; }
    body.nva .nva-table--tasks .nva-f__label { position: static; width: auto; height: auto; margin: 0 0 6px; overflow: visible; clip: auto; white-space: normal; }
    body.nva .nva-table--tasks tbody tr:first-child { border-top: 2px solid var(--ink); }
  }

  /* ---------- phone: compact station header, one column throughout ---------- */
  @media (max-width: 640px) {
    body.nva .nva-head h1 { font-size: 34px; margin-bottom: 18px; }
    body.nva .nva-head h1::after { width: 120px; height: 5px; margin-top: 14px; }
    body.nva .gd-article .nva-intro .gd-lead { font-size: 17px; }
    body.nva .nva-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 14px; box-shadow: 5px 5px 0 var(--lav); }
    body.nva .nva-controls .nva-btn { width: 100%; padding: 10px 12px; text-align: center; }
    body.nva .nva-controls .nva-btn--primary { grid-column: 1 / -1; }
    body.nva .gd-article .nva-status { grid-column: 1 / -1; margin: 2px 0 0; padding-top: 10px; }
    body.nva #nva-sheet > .nva-sec { padding: 38px 0 44px; }
    body.nva #nva-sheet > .nva-sec:first-child { grid-template-columns: minmax(0, 1fr); }
    body.nva #nva-sheet > .nva-sec:first-child > * { grid-column: 1 !important; grid-row: auto !important; }
    body.nva #nva-sheet > .nva-sec > h2, body.nva #nva-sheet > .nva-sec:first-child > h2 { flex-direction: row; align-items: center; gap: 12px; margin: 0 0 14px; font-size: 24px; }
    body.nva #nva-sheet > .nva-sec > h2::before, body.nva #nva-sheet > .nva-sec:first-child > h2::before { width: 40px; height: 40px; font-size: 15px; }
    body.nva .gd-article #nva-sheet > .nva-sec > .nva-help { padding-top: 0 !important; font-size: 15px; }
    body.nva #nva-sheet > .nva-sec > .nva-scope, body.nva #nva-sheet > .nva-sec > .nva-table, body.nva #nva-sheet > .nva-sec > .nva-groups, body.nva #nva-sheet > .nva-sec > .nva-cards { margin-top: 20px; }
    body.nva textarea, body.nva .nva-f--note textarea { font-size: 16px; }
    body.nva .nva-scope { grid-template-columns: 1fr; gap: 18px; }
    body.nva .nva-table--tasks tr { grid-template-columns: 1fr; gap: 14px; }
    body.nva .nva-groups { margin-left: -8px; margin-right: -8px; border-radius: 12px; }
    body.nva .nva-group { padding: 0 16px 10px; font-size: 17px; }
    body.nva .gd-article .nva-checks { padding: 0 16px 6px; }
    body.nva .nva-check { display: block; }
    body.nva .nva-obs { box-shadow: 5px 5px 0 var(--mint); }
    body.nva .nva-obs__grid { padding: 14px 16px 20px; }
    body.nva .nva-obs .nva-f--explanations, body.nva .nva-obs .nva-f--question, body.nva .nva-obs .nva-f--next { border-top: 0; padding-top: 0; }
  }

  /* ---------- V2 (2026-10-15): payoff panel, observation controls, station 05, centred CTA ---------- */
  body.nva .nva-take { display: grid; grid-template-columns: minmax(0, 1fr) 150px; gap: 18px; align-items: start; margin: 26px 0 0; padding: 18px 20px; background: #fff; border: 2px solid var(--ink); border-radius: 12px; box-shadow: 6px 6px 0 var(--lav); }
  body.nva .nva-take h2 { margin: 0 0 8px; font-size: 15px; letter-spacing: .08em; text-transform: uppercase; color: var(--purple); }
  body.nva .gd-article .nva-take ul { margin: 0; padding: 0 0 0 18px; }
  body.nva .gd-article .nva-take li { margin: 0 0 6px; font-size: 15px; line-height: 1.5; color: var(--ink); }
  body.nva .gd-article .nva-take .nva-take__privacy { margin: 10px 0 0; padding-top: 10px; border-top: 1px solid #e3dedd; font-size: 13.5px; color: #56514f; }
  body.nva .nva-take__thumb { margin: 0; }
  body.nva .nva-take__thumb img { display: block; width: 150px; height: auto; border: 1px solid var(--line); border-radius: 4px; box-shadow: 3px 3px 0 var(--sky); }
  body.nva .nva-take__thumb figcaption { margin-top: 6px; font-size: 12px; line-height: 1.35; color: #56514f; }

  body.nva select { display: block; width: 100%; box-sizing: border-box; min-height: 46px; margin: 0; padding: 10px 12px; font: inherit; font-size: 15px; color: var(--ink); background: var(--paper); border: 0; border-bottom: 1.5px solid #8b80a0; border-radius: 6px 6px 0 0; }
  body.nva select:hover { border-bottom-color: #6f6585; }
  body.nva select:focus { outline: none; background: #f5f0ff; border-bottom-color: var(--purple); box-shadow: 0 2px 0 var(--purple); }
  body.nva .nva-obs__meta { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px 28px; padding: 16px 24px 0; }
  body.nva .nva-f--priority { width: 240px; }
  body.nva .nva-f--include { padding-top: 24px; }
  body.nva .gd-article .nva-hint { margin: 6px 0 0; font-size: 13px; line-height: 1.45; color: #56514f; }
  body.nva .nva-inc { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; color: var(--ink); cursor: pointer; }
  body.nva .nva-inc input { width: 22px; height: 22px; margin: 0; flex: none; accent-color: var(--purple); cursor: pointer; }
  body.nva .nva-inc input:disabled { cursor: not-allowed; }
  body.nva .nva-inc input:disabled + span { color: #6d6d6d; }
  body.nva .nva-inc input:focus-visible { outline: 3px solid var(--purple); outline-offset: 3px; }

  body.nva .gd-article .nva-sum__status { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; padding: 0; list-style: none; }
  body.nva .gd-article .nva-sum__status li { margin: 0; padding: 5px 12px; border: 1px solid var(--line); border-radius: 999px; background: #fff; font-size: 13.5px; font-weight: 700; color: #56514f; }
  body.nva .nva-sum h3 { margin: 26px 0 8px; font-size: 18px; }
  body.nva .gd-article .nva-sum__note { margin: 22px 0 0; font-size: 15.5px; color: #56514f; }
  body.nva .nva-findings { display: grid; gap: 16px; margin: 16px 0 0; }
  body.nva .nva-finding { padding: 16px 20px; background: #fff; border: 2px solid var(--ink); border-radius: 12px; box-shadow: 5px 5px 0 var(--peach); }
  body.nva .nva-finding:focus-visible { outline: 3px solid var(--purple); outline-offset: 3px; }
  body.nva .nva-finding__top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0 0 8px; }
  body.nva .nva-pill { padding: 2px 10px; font-size: 12.5px; font-weight: 700; color: var(--ink); background: #fff; border: 1.5px solid var(--ink); border-radius: 999px; }
  body.nva .nva-pill--high { background: var(--lav); }
  body.nva .nva-pill--medium { background: var(--sky); }
  body.nva .nva-finding__ref { font-size: 13.5px; color: #56514f; }
  body.nva .gd-article .nva-finding__obs { margin: 0 0 10px; font-size: 16px; line-height: 1.55; font-weight: 700; color: var(--ink); white-space: pre-wrap; overflow-wrap: anywhere; }
  body.nva .nva-finding dl { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 6px 14px; margin: 0; font-size: 14.5px; line-height: 1.5; }
  body.nva .nva-finding dt { padding-top: 3px; font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--purple); }
  body.nva .nva-finding dd { margin: 0; color: #3d3d3d; white-space: pre-wrap; overflow-wrap: anywhere; }
  body.nva .nva-miss { color: #8a4b1f; font-style: italic; }
  body.nva .nva-finding__inc { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--line); width: 100%; }
  body.nva .nva-findings--unranked .nva-finding { box-shadow: none; border-width: 1.5px; }
  body.nva .nva-sum__open { margin: 24px 0 0; padding: 16px 20px; background: var(--paper); border-radius: 12px; }
  body.nva .nva-sum__open h3 { margin: 0 0 8px; }
  body.nva .gd-article .nva-sum__open ul { margin: 0; padding-left: 20px; }
  body.nva .gd-article .nva-sum__open li { margin: 4px 0; font-size: 15px; color: #3d3d3d; }
  body.nva .nva-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 22px 0 0; padding: 16px 18px; background: #fff; border: 2px solid var(--ink); border-radius: 12px; box-shadow: 6px 6px 0 var(--lav); }
  body.nva .nva-actions .nva-btn { padding: 11px 16px; font-size: 15px; text-align: left; }
  body.nva .nva-actions .nva-btn--primary { background: var(--ink); border-color: var(--ink); }
  body.nva .gd-article .nva-actions__status { flex-basis: 100%; margin: 0; font-size: 13.5px; color: #56514f; }
  body.nva .gd-article .nva-actions__status:empty { display: none; }
  body.nva .nva-fallback { flex-basis: 100%; min-height: 160px; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 13px; }
  body.nva .nva-fallback[hidden] { display: none; }
  /* fixed height: a very large export must not be laid out as one tall auto-sized field */
  body.nva textarea.nva-fallback { field-sizing: fixed; height: 260px; min-height: 0; overflow: auto; resize: vertical; }

  body.nva .gd-cta-glow { margin-left: auto; margin-right: auto; }
  /* V2 strings are owner-exact or generated from entries: avoid one-word last lines without rewording or resizing */
  body.nva .gd-article .nva-intro .gd-lead, body.nva .nva-take li, body.nva .nva-take__privacy, body.nva .nva-sum [data-sum="help"], body.nva .nva-sum__note,
  body.nva .nva-finding__ref, body.nva .nva-hint, body.nva .nva-sum__open li { text-wrap: pretty; }

  @media (max-width: 640px) {
    body.nva .nva-take { grid-template-columns: minmax(0, 1fr); padding: 16px; box-shadow: 5px 5px 0 var(--lav); }
    body.nva .nva-take__thumb { display: none; }
    /* buttons stack full width and stay left-aligned: no label wraps */
    body.nva .nva-controls { grid-template-columns: minmax(0, 1fr); }
    body.nva .nva-controls .nva-btn { text-align: left; }
    body.nva .nva-obs__meta { padding: 14px 16px 0; gap: 14px; }
    body.nva .nva-f--priority { width: 100%; }
    body.nva .nva-f--include { padding-top: 0; }
    body.nva select { font-size: 16px; }
    body.nva .nva-finding { padding: 14px 16px; }
    body.nva .nva-finding dl { grid-template-columns: minmax(0, 1fr); gap: 2px; }
    body.nva .nva-finding dd { margin-bottom: 8px; }
    body.nva .nva-actions { flex-direction: column; align-items: stretch; padding: 14px; box-shadow: 5px 5px 0 var(--lav); }
  }
}
