/* ==========================================================================
   NOVARIC® Governance Document — Shared CSS
   File:    governance-document.css
   Version: 1.0
   Date:    2026-08-20
   Owner:   NOVARIC® Legal & Compliance Division
   Notes:   Supplements prod design-tokens.css?v=20260818j.
            Uses existing --nv-* custom properties; does NOT redefine them.
            All classes scoped to .nv-gov-doc or prefixed nv-gov-*.
            Load AFTER design-tokens.css.
   ========================================================================== */

/* ── Governance document tokens (extensions only) ───────────────────────── */
:root {
  --nv-gov-toc-width: 220px;
  --nv-gov-content-max: 800px;
  --nv-gov-layout-max: 1200px;
  --nv-gov-section-gap: 2.5rem;
  --nv-gov-hero-pad: 2.5rem 0;
  --nv-gov-meta-accent: var(--nv-cyan, #009AE4);
  --nv-gov-badge-bg: rgba(255, 255, 255, .12);
  --nv-gov-badge-border: rgba(255, 255, 255, .25);
  --nv-gov-badge-published-bg: rgba(16, 185, 129, .20);
  --nv-gov-badge-published-border: rgba(16, 185, 129, .50);
  --nv-gov-badge-published-text: #6EE7B7;
  --nv-gov-badge-review-bg: rgba(251, 191, 36, .20);
  --nv-gov-badge-review-border: rgba(251, 191, 36, .50);
  --nv-gov-badge-review-text: #FDE68A;
  --nv-gov-badge-draft-bg: rgba(156, 163, 175, .20);
  --nv-gov-badge-draft-border: rgba(156, 163, 175, .50);
  --nv-gov-badge-draft-text: #E5E7EB;
  --nv-gov-badge-superseded-bg: rgba(239, 68, 68, .20);
  --nv-gov-badge-superseded-border: rgba(239, 68, 68, .50);
  --nv-gov-badge-superseded-text: #FCA5A5;
}

/* ══════════════════════════════════════════════════════════════════════════
   1. READING PROGRESS BAR
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-progress {
  position: fixed; top: 0; left: 0; width: 0; height: 3px;
  background: var(--nv-cyan, #009AE4); z-index: 9999;
  transition: width .1s linear;
}
@media (prefers-reduced-motion: reduce) { .nv-gov-progress { transition: none; } }

/* ══════════════════════════════════════════════════════════════════════════
   2. STATUS BANNERS — show only when applicable; do not use decoratively
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-banner {
  padding: .75rem var(--nv-sp-2, 1rem);
  font-size: .9rem; border-left: 4px solid; display: flex;
  align-items: flex-start; gap: .75rem;
}
.nv-gov-banner__icon { flex-shrink: 0; font-weight: 700; }
.nv-gov-banner__body { flex: 1; }
.nv-gov-banner__body p { margin: .2rem 0; }
.nv-gov-banner__dismiss {
  background: none; border: none; cursor: pointer; font-size: 1rem;
  padding: 0 .25rem; color: inherit; opacity: .7; flex-shrink: 0;
}
.nv-gov-banner__dismiss:hover { opacity: 1; }

.nv-gov-banner--draft {
  background: var(--nv-surface, #F4F6F8);
  border-color: #9CA3AF; color: var(--nv-text-muted, #4D5A6B);
}
.nv-gov-banner--review {
  background: var(--nv-warning-bg, #FFF6E5);
  border-color: var(--nv-warning-border, #B8791A);
  color: var(--nv-warning-text, #6B4A0E);
}
.nv-gov-banner--superseded {
  background: #FEF2F2; border-color: #EF4444; color: #991B1B;
}
.nv-gov-banner--archived {
  background: var(--nv-surface, #F4F6F8);
  border-color: var(--nv-border, #D9DFE7); color: var(--nv-text-muted, #4D5A6B);
}
.nv-gov-banner--summary {
  background: var(--nv-surface-2, #F0F7FD);
  border-color: var(--nv-action, #0072A9); color: var(--nv-text, #1E2732);
}
.nv-gov-banner--updated {
  background: #F0FDF4; border-color: #22C55E; color: #166534;
}

/* ══════════════════════════════════════════════════════════════════════════
   3. HERO
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-hero {
  background: var(--nv-navy, #1B2A3B); color: #fff;
  padding: var(--nv-gov-hero-pad);
}
.nv-gov-hero .nv-wrap { max-width: 900px; }
.nv-gov-hero__label {
  font-size: .8rem; font-weight: 600; letter-spacing: .08em;
  text-transform: uppercase; color: var(--nv-cyan, #009AE4);
  margin: 0 0 .5rem;
}
.nv-gov-hero__h1 {
  font-size: clamp(1.8rem, 4vw, 2.8rem); font-weight: 700; color: #fff;
  margin: 0 0 var(--nv-sp-3, 1.5rem); line-height: 1.15;
}
.nv-gov-hero__lead {
  font-size: 1.05rem; color: rgba(255,255,255,.85);
  max-width: 62ch; margin: 0 0 var(--nv-sp-2, 1rem);
}
.nv-gov-hero__meta {
  display: flex; flex-wrap: wrap; gap: .5rem .75rem;
  margin-bottom: var(--nv-sp-2, 1rem);
}
.nv-gov-hero__actions {
  display: flex; flex-wrap: wrap; gap: .75rem;
}

/* Badges */
.nv-gov-badge {
  display: inline-flex; align-items: center; padding: .2rem .65rem;
  border-radius: 999px; font-size: .72rem; font-weight: 700;
  letter-spacing: .03em;
  background: var(--nv-gov-badge-bg); color: #fff;
  border: 1px solid var(--nv-gov-badge-border);
}
.nv-gov-badge--published {
  background: var(--nv-gov-badge-published-bg);
  border-color: var(--nv-gov-badge-published-border);
  color: var(--nv-gov-badge-published-text);
}
.nv-gov-badge--review {
  background: var(--nv-gov-badge-review-bg);
  border-color: var(--nv-gov-badge-review-border);
  color: var(--nv-gov-badge-review-text);
}
.nv-gov-badge--draft {
  background: var(--nv-gov-badge-draft-bg);
  border-color: var(--nv-gov-badge-draft-border);
  color: var(--nv-gov-badge-draft-text);
}
.nv-gov-badge--superseded {
  background: var(--nv-gov-badge-superseded-bg);
  border-color: var(--nv-gov-badge-superseded-border);
  color: var(--nv-gov-badge-superseded-text);
}

/* ══════════════════════════════════════════════════════════════════════════
   4. PAGE LAYOUT
   ══════════════════════════════════════════════════════════════════════════ */
/* Two-column (TOC + content) — used for long-form documents */
.nv-gov-layout {
  display: flex; gap: var(--nv-sp-5, 3rem); align-items: flex-start;
  max-width: var(--nv-gov-layout-max, 1200px);
  margin: 0 auto; padding: var(--nv-gov-section-gap) var(--nv-sp-4, 2rem);
}
/* Single-column — for shorter documents */
.nv-gov-layout--single {
  max-width: 900px; margin: 0 auto;
  padding: var(--nv-gov-section-gap) var(--nv-sp-4, 2rem);
}
.nv-gov-content { flex: 1 1 0; min-width: 0; }

/* ══════════════════════════════════════════════════════════════════════════
   5. METADATA PANEL (top of page)
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-meta {
  background: var(--nv-surface, #F4F6F8);
  border: 1px solid var(--nv-border, #D9DFE7);
  border-left: 4px solid var(--nv-gov-meta-accent);
  border-radius: 4px;
  padding: var(--nv-sp-2, 1rem) var(--nv-sp-4, 2rem);
  margin-bottom: var(--nv-gov-section-gap);
}
.nv-gov-meta table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.nv-gov-meta th,
.nv-gov-meta td { padding: .35rem .5rem; text-align: left; vertical-align: top; }
.nv-gov-meta th {
  font-weight: 600; color: var(--nv-text-muted, #4D5A6B);
  width: 38%; white-space: nowrap;
}
.nv-gov-meta td { color: var(--nv-text, #1E2732); }
@media (max-width: 52em) {
  .nv-gov-meta th { display: none; }
  .nv-gov-meta td::before {
    content: attr(data-label) ": ";
    font-weight: 600; color: var(--nv-text-muted, #4D5A6B);
    display: block; font-size: .78rem;
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   6. TABLE OF CONTENTS
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-toc {
  width: var(--nv-gov-toc-width, 220px); flex-shrink: 0;
  position: sticky; top: calc(var(--nv-sp-2, 1rem) + 4px);
  max-height: calc(100vh - 4rem); overflow-y: auto;
  background: var(--nv-surface, #F4F6F8);
  border: 1px solid var(--nv-border, #D9DFE7);
  border-radius: 4px; padding: var(--nv-sp-2, 1rem);
}
.nv-gov-toc__title {
  font-size: .78rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: var(--nv-text-muted, #4D5A6B);
  margin: 0 0 .5rem; padding-bottom: .4rem;
  border-bottom: 1px solid var(--nv-border, #D9DFE7);
}
.nv-gov-toc__list { list-style: none; margin: 0; padding: 0; }
.nv-gov-toc__list li { margin: 0; }
.nv-gov-toc__list a {
  display: block; font-size: .8rem; padding: .3rem .4rem;
  color: var(--nv-text-muted, #4D5A6B); text-decoration: none;
  border-left: 2px solid transparent;
  border-radius: 0 3px 3px 0;
  transition: color .12s, border-color .12s, background .12s;
}
.nv-gov-toc__list a:hover {
  color: var(--nv-action, #0072A9);
  background: var(--nv-surface-2, #F0F7FD);
}
.nv-gov-toc__list a.is-active {
  color: var(--nv-navy, #1B2A3B);
  border-left-color: var(--nv-cyan, #009AE4);
  background: var(--nv-surface-2, #F0F7FD);
  font-weight: 600;
}
.nv-gov-toc__list a:focus-visible {
  outline: 3px solid var(--nv-focus, #0072A9); outline-offset: 2px;
}
/* Sub-items (h3 level) */
.nv-gov-toc__list li.is-sub a { padding-left: 1rem; font-size: .76rem; }

.nv-gov-toc__toggle {
  display: none; width: 100%;
  background: var(--nv-surface, #F4F6F8);
  border: 1px solid var(--nv-border, #D9DFE7);
  border-radius: 4px; padding: .5rem .75rem;
  font-size: .85rem; font-weight: 600;
  cursor: pointer; text-align: left; margin-bottom: .5rem;
}
@media (max-width: 860px) {
  .nv-gov-layout { flex-direction: column; gap: 0; padding-top: var(--nv-sp-4, 2rem); }
  .nv-gov-toc {
    width: 100%; position: static; max-height: none;
    margin-bottom: var(--nv-sp-4, 2rem);
  }
  .nv-gov-toc__toggle { display: flex; justify-content: space-between; align-items: center; }
  .nv-gov-toc__list { display: none; }
  .nv-gov-toc__list.is-open { display: block; }
}

/* ══════════════════════════════════════════════════════════════════════════
   7. DOCUMENT SECTIONS
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-section {
  padding: var(--nv-gov-section-gap) 0;
  border-bottom: 1px solid var(--nv-border, #D9DFE7);
  scroll-margin-top: 5rem;
}
.nv-gov-section:last-child { border-bottom: none; }
.nv-gov-section__heading {
  display: flex; align-items: center; gap: .5rem;
  margin: 0 0 var(--nv-sp-4, 2rem);
}
.nv-gov-section__heading h2 {
  margin: 0; font-size: clamp(1.3rem, 2.5vw, 1.7rem);
  color: var(--nv-navy, #1B2A3B);
  padding-bottom: .5rem;
  border-bottom: 2px solid var(--nv-cyan, #009AE4);
}

/* Section permalink button */
.nv-gov-permalink {
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.6rem; height: 1.6rem; border-radius: 50%;
  color: var(--nv-text-muted, #4D5A6B); text-decoration: none;
  opacity: 0; transition: opacity .15s, background .15s;
  flex-shrink: 0; font-size: .9rem;
}
.nv-gov-section__heading:hover .nv-gov-permalink,
.nv-gov-permalink:focus-visible { opacity: 1; background: var(--nv-surface, #F4F6F8); }
.nv-gov-permalink:focus-visible { outline: 3px solid var(--nv-focus, #0072A9); outline-offset: 2px; }
.nv-gov-permalink[data-copied]::after {
  content: "Copied"; position: absolute;
  background: var(--nv-navy, #1B2A3B); color: #fff;
  font-size: .7rem; padding: .2rem .5rem;
  border-radius: 3px; white-space: nowrap; pointer-events: none;
}

/* ══════════════════════════════════════════════════════════════════════════
   8. MODULE 1 — OPENING STATEMENT / COMMITMENT
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-commitment { }
.nv-gov-commitment__lead {
  font-size: 1.05rem; line-height: 1.7;
  color: var(--nv-text, #1E2732);
}

/* ══════════════════════════════════════════════════════════════════════════
   9. MODULE 4 — PRINCIPLE CARDS
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-principles {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: var(--nv-sp-4, 2rem); margin-top: var(--nv-sp-4, 2rem);
}
.nv-gov-principle {
  background: var(--nv-surface, #F4F6F8);
  border: 1px solid var(--nv-border, #D9DFE7);
  border-radius: 4px; padding: var(--nv-sp-4, 2rem);
  border-top: 3px solid var(--nv-cyan, #009AE4);
}
.nv-gov-principle__num {
  font-size: .7rem; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--nv-action, #0072A9);
  margin: 0 0 .35rem;
}
.nv-gov-principle__title {
  font-size: clamp(1.1rem, 1.6vw, 1.3rem); font-weight: 700;
  color: var(--nv-navy, #1B2A3B); margin: 0 0 .6rem;
}
.nv-gov-principle__statement {
  font-size: .95rem; font-weight: 600;
  color: var(--nv-text, #1E2732); margin: 0 0 .5rem;
}
.nv-gov-principle__body {
  font-size: .9rem; color: var(--nv-text-muted, #4D5A6B);
  line-height: 1.6; margin: 0;
}

/* ══════════════════════════════════════════════════════════════════════════
   10. MODULE 5 — REQUIREMENTS TABLE (required/prohibited)
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-table-wrap { overflow-x: auto; margin-top: var(--nv-sp-2, 1rem); }
.nv-gov-table {
  width: 100%; border-collapse: collapse; font-size: .88rem;
}
.nv-gov-table caption {
  text-align: left; font-size: .8rem;
  color: var(--nv-text-muted, #4D5A6B);
  padding-bottom: .4rem;
}
.nv-gov-table th,
.nv-gov-table td {
  padding: .55rem .75rem;
  border: 1px solid var(--nv-border, #D9DFE7);
  text-align: left; vertical-align: top;
}
.nv-gov-table thead th {
  background: var(--nv-navy, #1B2A3B); color: #fff; font-weight: 600;
}
.nv-gov-table tbody tr:nth-child(even) td { background: var(--nv-surface, #F4F6F8); }
.nv-gov-table tbody tr:nth-child(odd) td { background: #fff; }
/* Status indicators within table cells */
.nv-gov-status-yes {
  display: inline-flex; align-items: center; gap: .3rem;
  font-size: .75rem; font-weight: 700; padding: .15rem .55rem;
  border-radius: 999px; background: #D1FAE5; color: #065F46;
}
.nv-gov-status-no {
  display: inline-flex; align-items: center; gap: .3rem;
  font-size: .75rem; font-weight: 700; padding: .15rem .55rem;
  border-radius: 999px; background: #FEE2E2; color: #991B1B;
}

/* ══════════════════════════════════════════════════════════════════════════
   11. MODULE 6 — STAKEHOLDER COMMITMENT CARDS
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-stakeholders {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--nv-sp-4, 2rem); margin-top: var(--nv-sp-4, 2rem);
}
.nv-gov-stakeholder {
  background: #fff;
  border: 1px solid var(--nv-border, #D9DFE7);
  border-radius: 4px; overflow: hidden;
}
.nv-gov-stakeholder__header {
  background: var(--nv-navy, #1B2A3B); color: #fff;
  padding: .75rem var(--nv-sp-2, 1rem);
}
.nv-gov-stakeholder__header h3 { margin: 0; font-size: 1rem; font-weight: 700; color: #fff; }
.nv-gov-stakeholder__body { padding: var(--nv-sp-2, 1rem); }
.nv-gov-stakeholder dl { margin: 0; }
.nv-gov-stakeholder dt {
  font-size: .78rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .05em; color: var(--nv-action, #0072A9);
  margin: .75rem 0 .2rem;
}
.nv-gov-stakeholder dt:first-child { margin-top: 0; }
.nv-gov-stakeholder dd {
  margin: 0; font-size: .88rem;
  color: var(--nv-text, #1E2732); line-height: 1.55;
}
.nv-gov-stakeholder__links {
  padding: .5rem var(--nv-sp-2, 1rem);
  background: var(--nv-surface, #F4F6F8);
  border-top: 1px solid var(--nv-border, #D9DFE7);
  font-size: .8rem;
}
.nv-gov-stakeholder__links a { color: var(--nv-action, #0072A9); text-decoration: none; }
.nv-gov-stakeholder__links a:hover { text-decoration: underline; }

/* ══════════════════════════════════════════════════════════════════════════
   12. MODULE 7 — GOVERNANCE HIERARCHY
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-hierarchy {
  margin: var(--nv-sp-2, 1rem) 0;
  padding: var(--nv-sp-2, 1rem) var(--nv-sp-4, 2rem);
  background: var(--nv-surface-2, #F0F7FD);
  border: 1px solid var(--nv-border, #D9DFE7);
  border-left: 4px solid var(--nv-cyan, #009AE4);
  border-radius: 0 4px 4px 0; font-size: .9rem;
}
.nv-gov-hierarchy ol { margin: 0; padding-left: 1.4rem; list-style: decimal; }
.nv-gov-hierarchy li { padding: .2rem 0; color: var(--nv-text, #1E2732); }
.nv-gov-hierarchy li::marker { font-weight: 700; color: var(--nv-action, #0072A9); }
.nv-gov-hier-arrow {
  text-align: center; color: var(--nv-action, #0072A9);
  font-size: 1.1rem; margin: .1rem 0; display: block;
}

/* Leadership authority panel */
.nv-gov-authority {
  background: var(--nv-navy, #1B2A3B); border-radius: 4px;
  padding: var(--nv-sp-4, 2rem); margin-top: var(--nv-sp-4, 2rem);
  color: #fff;
}
.nv-gov-authority h3 { color: var(--nv-cyan, #009AE4); font-size: 1.05rem; margin: 0 0 .5rem; }
.nv-gov-authority p { color: rgba(255,255,255,.9); font-size: .95rem; margin: .25rem 0; }
.nv-gov-authority strong { color: #fff; }

/* ══════════════════════════════════════════════════════════════════════════
   13. MODULE 9 — CHECKLIST / PROCEDURES
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-checklist { list-style: none; margin: 0; padding: 0; }
.nv-gov-checklist li {
  display: flex; gap: .75rem; align-items: flex-start;
  padding: .6rem 0; border-bottom: 1px solid var(--nv-border, #D9DFE7);
  font-size: .95rem; color: var(--nv-text, #1E2732);
}
.nv-gov-checklist li:last-child { border-bottom: none; }
.nv-gov-checklist li::before {
  content: "✓"; color: var(--nv-action, #0072A9);
  font-weight: 700; flex-shrink: 0; margin-top: .05rem;
}

/* Audience / scope tags */
.nv-gov-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: var(--nv-sp-2, 1rem); }
.nv-gov-tag {
  display: inline-flex; align-items: center;
  padding: .25rem .7rem; border: 1px solid var(--nv-border, #D9DFE7);
  border-radius: 999px; font-size: .8rem;
  color: var(--nv-text, #1E2732); background: var(--nv-surface, #F4F6F8);
}

/* ══════════════════════════════════════════════════════════════════════════
   14. MODULE 10 — SPEAK-UP AND REPORTING
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-speakup {
  background: var(--nv-surface-2, #F0F7FD);
  border: 1px solid var(--nv-border, #D9DFE7);
  border-left: 4px solid var(--nv-action, #0072A9);
  border-radius: 4px; padding: var(--nv-sp-4, 2rem);
  margin-top: var(--nv-sp-4, 2rem);
}
.nv-gov-speakup__routes {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--nv-sp-2, 1rem); margin-top: var(--nv-sp-2, 1rem);
}
.nv-gov-speakup__route {
  background: #fff; border: 1px solid var(--nv-border, #D9DFE7);
  border-radius: 4px; padding: .75rem;
}
.nv-gov-speakup__route h4 { font-size: .9rem; font-weight: 700; color: var(--nv-navy, #1B2A3B); margin: 0 0 .3rem; }
.nv-gov-speakup__route p { font-size: .82rem; color: var(--nv-text-muted, #4D5A6B); margin: 0; }
.nv-gov-speakup__route a { font-size: .82rem; color: var(--nv-action, #0072A9); text-decoration: none; }
.nv-gov-speakup__route a:hover { text-decoration: underline; }

.nv-gov-noretaliation {
  background: var(--nv-navy, #1B2A3B); color: #fff;
  border-radius: 4px; padding: var(--nv-sp-2, 1rem) var(--nv-sp-4, 2rem);
  margin-top: var(--nv-sp-2, 1rem);
}
.nv-gov-noretaliation p { color: rgba(255,255,255,.9); margin: .3rem 0; font-size: .9rem; }
.nv-gov-noretaliation strong { color: var(--nv-cyan, #009AE4); }

/* ══════════════════════════════════════════════════════════════════════════
   15. MODULE 13 — LEGAL FRAMEWORK TABLE
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-table__juris {
  white-space: nowrap; font-size: .78rem;
  color: var(--nv-action, #0072A9); font-weight: 600;
}

/* ══════════════════════════════════════════════════════════════════════════
   16. MODULE 14 — DECISION GUIDE / CALLOUT
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-decision {
  background: var(--nv-surface-2, #F0F7FD);
  border: 1px solid var(--nv-cyan, #009AE4);
  border-radius: 4px; padding: var(--nv-sp-4, 2rem);
  margin-top: var(--nv-sp-4, 2rem);
}
.nv-gov-decision h3 { color: var(--nv-navy, #1B2A3B); margin: 0 0 var(--nv-sp-2, 1rem); }
.nv-gov-decision ol { margin: 0; padding-left: 1.4rem; }
.nv-gov-decision ol li { font-size: .95rem; color: var(--nv-text, #1E2732); padding: .3rem 0; line-height: 1.5; }
.nv-gov-decision__note { font-size: .8rem; color: var(--nv-text-muted, #4D5A6B); margin-top: .75rem; font-style: italic; }

/* ══════════════════════════════════════════════════════════════════════════
   17. MODULE 15 — GLOSSARY
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-glossary { margin-top: var(--nv-sp-2, 1rem); }
.nv-gov-glossary dl { margin: 0; }
.nv-gov-glossary dt {
  font-weight: 700; color: var(--nv-navy, #1B2A3B); font-size: .95rem;
  margin-top: var(--nv-sp-2, 1rem); padding-top: var(--nv-sp-2, 1rem);
  border-top: 1px solid var(--nv-border, #D9DFE7);
}
.nv-gov-glossary dt:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.nv-gov-glossary dd { margin: .25rem 0 0 0; font-size: .9rem; color: var(--nv-text, #1E2732); line-height: 1.6; }

/* ══════════════════════════════════════════════════════════════════════════
   18. MODULE 16 — RELATED DOCUMENTS
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-related {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: .6rem; margin-top: var(--nv-sp-2, 1rem);
}
.nv-gov-related__item {
  display: flex; align-items: flex-start; gap: .5rem;
  padding: .6rem .75rem; border: 1px solid var(--nv-border, #D9DFE7);
  border-radius: 4px; text-decoration: none;
  color: var(--nv-action, #0072A9); font-size: .88rem;
  background: #fff; transition: background .12s, border-color .12s;
}
.nv-gov-related__item:hover { background: var(--nv-surface-2, #F0F7FD); border-color: var(--nv-action, #0072A9); }
.nv-gov-related__item:focus-visible { outline: 3px solid var(--nv-focus, #0072A9); outline-offset: 2px; }
.nv-gov-related__rel {
  font-size: .72rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: .04em; color: var(--nv-text-muted, #4D5A6B);
  display: block; margin-bottom: .15rem;
}
.nv-gov-related__title { display: block; }

/* ══════════════════════════════════════════════════════════════════════════
   19. MODULE 17 — GOVERNANCE CONTACT TABLE
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-contact {
  background: var(--nv-surface-2, #F0F7FD);
  border: 1px solid var(--nv-border, #D9DFE7);
  border-radius: 4px; padding: var(--nv-sp-4, 2rem);
  margin-top: var(--nv-sp-2, 1rem);
}
.nv-gov-contact table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.nv-gov-contact th {
  padding: .45rem .75rem; text-align: left; font-weight: 600;
  color: var(--nv-text-muted, #4D5A6B);
  border-bottom: 1px solid var(--nv-border, #D9DFE7);
  width: 40%;
}
.nv-gov-contact td {
  padding: .45rem .75rem;
  border-bottom: 1px solid var(--nv-border, #D9DFE7);
}
.nv-gov-contact a { color: var(--nv-action, #0072A9); }
.nv-gov-contact a:hover { text-decoration: underline; }

/* ══════════════════════════════════════════════════════════════════════════
   20. MODULE 18 — REVISION HISTORY
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-revision { margin-top: var(--nv-sp-2, 1rem); }
/* Uses .nv-gov-table wrapper — no extra classes needed */

/* ══════════════════════════════════════════════════════════════════════════
   21. MODULE 19 — DOCUMENT CONTROL RECORD (two variants)
   ══════════════════════════════════════════════════════════════════════════ */
/* Light variant (mid-page) */
.nv-gov-record {
  background: var(--nv-surface, #F4F6F8);
  border: 1px solid var(--nv-border, #D9DFE7);
  border-radius: 4px; padding: var(--nv-sp-4, 2rem);
  margin-top: var(--nv-sp-4, 2rem);
}
.nv-gov-record__heading { margin: 0 0 var(--nv-sp-2, 1rem); }
.nv-gov-record table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.nv-gov-record th,
.nv-gov-record td { padding: .4rem .75rem; border: 1px solid var(--nv-border, #D9DFE7); text-align: left; vertical-align: top; }
.nv-gov-record th { background: #fff; font-weight: 600; color: var(--nv-text-muted, #4D5A6B); width: 35%; }

/* Dark footer variant */
.nv-gov-record--dark {
  background: var(--nv-navy, #1B2A3B); color: rgba(255,255,255,.85);
  border-radius: 4px; padding: var(--nv-sp-4, 2rem);
  margin-top: var(--nv-sp-5, 3rem);
}
.nv-gov-record--dark__title {
  color: var(--nv-cyan, #009AE4); font-size: .8rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
  margin: 0 0 var(--nv-sp-2, 1rem);
}
.nv-gov-record--dark table { width: 100%; border-collapse: collapse; font-size: .82rem; }
.nv-gov-record--dark th,
.nv-gov-record--dark td {
  padding: .3rem .5rem; text-align: left; vertical-align: top;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.nv-gov-record--dark th { width: 38%; color: rgba(255,255,255,.6); font-weight: 600; }
.nv-gov-record--dark td { color: rgba(255,255,255,.9); }
.nv-gov-record--dark a { color: var(--nv-cyan, #009AE4); text-decoration: none; }
.nv-gov-record--dark a:hover { text-decoration: underline; }
.nv-gov-record--dark__tagline { font-size: .8rem; color: rgba(255,255,255,.5); margin-top: var(--nv-sp-2, 1rem); font-style: italic; }

/* ══════════════════════════════════════════════════════════════════════════
   22. NOTE / DISCLAIMER / CALLOUT
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-note {
  font-size: .82rem; color: var(--nv-text-muted, #4D5A6B);
  border: 1px solid var(--nv-border, #D9DFE7);
  border-left: 3px solid var(--nv-border, #D9DFE7);
  border-radius: 0 4px 4px 0;
  padding: .6rem var(--nv-sp-2, 1rem); margin-top: var(--nv-sp-2, 1rem);
}
.nv-gov-note--warning {
  border-left-color: var(--nv-warning-border, #B8791A);
  background: var(--nv-warning-bg, #FFF6E5);
  color: var(--nv-warning-text, #6B4A0E);
}

/* ══════════════════════════════════════════════════════════════════════════
   23. BACK TO TOP
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-back-top {
  display: none; position: fixed; bottom: 1.5rem; right: 1.5rem;
  background: var(--nv-navy, #1B2A3B); color: #fff;
  border: none; border-radius: 999px;
  padding: .6rem 1rem; font-size: .85rem; font-weight: 600;
  cursor: pointer; z-index: 100;
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
  transition: background .15s;
}
.nv-gov-back-top:hover { background: var(--nv-navy-dark, #14202C); }
.nv-gov-back-top:focus-visible { outline: 3px solid var(--nv-focus, #0072A9); outline-offset: 2px; }
.nv-gov-back-top.is-visible { display: block; }

/* ══════════════════════════════════════════════════════════════════════════
   24. PRINT STYLESHEET — §14
   ══════════════════════════════════════════════════════════════════════════ */
@media print {
  /* Hide navigation chrome */
  .nv-gov-toc, .nv-gov-progress, .nv-gov-permalink,
  .nv-gov-hero__actions, .nv-gov-decision,
  .nv-gov-back-top, .nv-gov-banner__dismiss,
  .nv-utility, .nv-header, .nv-footer, .nv-consent,
  .nv-breadcrumb, .nv-skip { display: none !important; }

  /* Document layout */
  .nv-gov-layout { display: block; padding: 0; }
  .nv-gov-layout--single { padding: 0; }
  .nv-gov-meta { margin-bottom: 1rem; }

  /* Hero print treatment */
  .nv-gov-hero {
    background: none !important; color: #000 !important; padding: 0 0 1rem;
  }
  .nv-gov-hero__h1, .nv-gov-hero__lead, .nv-gov-hero__label { color: #000 !important; }
  .nv-gov-badge { background: none !important; color: #000 !important; border-color: #000 !important; }

  /* Dark sections preserve colour in print */
  .nv-gov-authority,
  .nv-gov-noretaliation,
  .nv-gov-stakeholder__header,
  .nv-gov-record--dark {
    background: #1B2A3B !important;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }

  /* Layout flatten */
  .nv-gov-principles, .nv-gov-stakeholders, .nv-gov-related,
  .nv-gov-speakup__routes { display: block; }
  .nv-gov-principle, .nv-gov-stakeholder,
  .nv-gov-related__item { page-break-inside: avoid; margin-bottom: .5rem; }
  .nv-gov-section { page-break-inside: avoid; }
  .nv-gov-section__heading h2 { page-break-after: avoid; }

  /* Expand collapsible TOC lists for print */
  .nv-gov-toc__list { display: block !important; }
  details { display: block !important; }
  details > summary::after { content: ""; }

  /* Table headers repeat across pages */
  thead { display: table-header-group; }
  tfoot { display: table-footer-group; }
  tr { page-break-inside: avoid; }

  /* Print authoritative-source notice */
  .nv-gov-content::after {
    content: "This copy may not reflect the current authorised version. The authoritative source is available at the canonical URL recorded in the Document Control Record above.";
    display: block; font-size: .7rem; color: #555;
    margin-top: 2rem; border-top: 1px solid #ccc; padding-top: .5rem;
  }

  /* Print URLs next to external links */
  a[href]::after { content: " (" attr(href) ")"; font-size: .7rem; color: #555; }
  a[href^="#"]::after { content: ""; }
  a[href^="/"]::after { content: " (https://novaric.eu" attr(href) ")"; font-size: .7rem; color: #555; }
}

/* ══════════════════════════════════════════════════════════════════════════
   25. REDUCED MOTION
   ══════════════════════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  .nv-gov-toc__list a,
  .nv-gov-related__item,
  .nv-gov-back-top,
  .nv-gov-permalink { transition: none; }
}

/* ══════════════════════════════════════════════════════════════════════════
   26. FOCUS VISIBILITY
   ══════════════════════════════════════════════════════════════════════════ */
.nv-gov-toc__list a:focus-visible,
.nv-gov-related__item:focus-visible,
.nv-gov-back-top:focus-visible,
.nv-gov-permalink:focus-visible {
  outline: 3px solid var(--nv-focus, #0072A9); outline-offset: 2px;
}


/* ══════════════════════════════════════════════════════════════════════════
   METADATA PANEL — COLLAPSIBLE TOGGLE (2026-08-20c, revised)
   Single compact row button; no icon SVGs; text chevron only.
   No-JS fallback: table always visible (js-ready class never added).
   ══════════════════════════════════════════════════════════════════════════ */

/* Toggle button — inline with existing meta panel accent */
.nv-gov-meta__toggle {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: .5rem;
  width: 100%;
  padding: .5rem 0;
  margin-bottom: 0;
  background: none;
  border: none;
  border-bottom: 1px solid var(--nv-border, #D9DFE7);
  cursor: pointer;
  text-align: left;
  font-family: var(--nv-font, Arial, Helvetica, sans-serif);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .02em;
  color: var(--nv-action, #0072A9);
  line-height: 1.4;
  transition: color .12s;
}
.nv-gov-meta__toggle:hover {
  color: var(--nv-navy, #1B2A3B);
}
.nv-gov-meta__toggle:focus-visible {
  outline: 3px solid var(--nv-focus, #0072A9);
  outline-offset: 2px;
  border-radius: 2px;
}

/* No SVG icons inside the toggle — text label + text chevron only */
.nv-gov-meta__toggle svg { display: none !important; }

/* Chevron — plain text character via pseudo-element, pushed right */
.nv-gov-meta__toggle::after {
  content: '▾';
  margin-left: auto;
  font-size: .75rem;
  color: var(--nv-text-muted, #4D5A6B);
  transition: transform .2s ease;
  display: inline-block;
}
@media (prefers-reduced-motion: reduce) {
  .nv-gov-meta__toggle::after { transition: none; }
}
.nv-gov-meta__toggle[aria-expanded="true"]::after {
  transform: rotate(180deg);
}

/* Label span — normal weight for the count portion */
.nv-gov-meta__label { font-weight: 700; }

/* Table wrapper — hidden when JS active */
.js-ready .nv-gov-meta__table-wrap { display: none; }
.js-ready .nv-gov-meta__table-wrap.is-open {
  display: block;
  margin-top: .6rem;
}

/* Compact panel height when collapsed */
.nv-gov-meta {
  padding-top: .4rem;
  padding-bottom: .4rem;
}

@media print {
  /* Always expand table; hide the toggle button */
  .js-ready .nv-gov-meta__table-wrap { display: block !important; }
  .nv-gov-meta__toggle { display: none !important; }
}
