/*
 * document.css — the ONE stylesheet for Notarium legal documents.
 *
 * The same file styles the wizard's live preview pane, the signing page and
 * the PDF that Chromium prints. That is the whole point: if preview and print
 * were two stylesheets they would drift, and the drift would be in legally
 * significant text. Never fork this file for print.
 *
 * Fonts are VENDORED (app/assets/fonts) and never fetched at render time —
 * the PDF renderer has no network. On screen Propshaft resolves the relative
 * url()s below; for print, Documents::PrintStylesheet inlines the same woff2
 * files as data: URIs so the Chromium pass is fully self-contained.
 *
 * Running footer: Chromium's Page.printToPDF ignores @page margin boxes
 * (@bottom-center) and the `pages` counter, so the printed footer comes from
 * printToPDF's footerTemplate — built by PdfRenderService from the same
 * selskab/CVR line that .nt-paper__footer shows on screen.
 *
 * NO CSS COUNTERS. The pack's templates number their own headings — the
 * vedtægter carry real §§, the referat writes "Ad punkt 4" off the same
 * agenda list it printed the dagsorden from — so a counter-driven
 * `h2::before` here rendered "1. 1 Navn". Numbering belongs to the document,
 * never to the stylesheet.
 */

/* ── Vendored faces ─────────────────────────────────────────────────── */

@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 400 700;
  font-display: block;
  src: url("/assets/notarium-fraunces-latin-2a0ad122.woff2") 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;
}

@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 400 700;
  font-display: block;
  src: url("/assets/notarium-fraunces-latin-ext-cce59c20.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Source Serif 4";
  font-style: normal;
  font-weight: 400 700;
  font-display: block;
  src: url("/assets/notarium-source-serif-4-latin-88e013b5.woff2") 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;
}

@font-face {
  font-family: "Source Serif 4";
  font-style: normal;
  font-weight: 400 700;
  font-display: block;
  src: url("/assets/notarium-source-serif-4-latin-ext-45521d1e.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Source Serif 4";
  font-style: italic;
  font-weight: 400 700;
  font-display: block;
  src: url("/assets/notarium-source-serif-4-italic-latin-d304b70c.woff2") 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;
}

@font-face {
  font-family: "Source Serif 4";
  font-style: italic;
  font-weight: 400 700;
  font-display: block;
  src: url("/assets/notarium-source-serif-4-italic-latin-ext-19739600.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 700;
  font-display: block;
  src: url("/assets/notarium-inter-latin-496a588b.woff2") 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;
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 700;
  font-display: block;
  src: url("/assets/notarium-inter-latin-ext-5a6754fc.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 400 600;
  font-display: block;
  src: url("/assets/notarium-jetbrains-mono-latin-68dbce1c.woff2") 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;
}

@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 400 600;
  font-display: block;
  src: url("/assets/notarium-jetbrains-mono-latin-ext-b0c48b7a.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ── Page geometry ──────────────────────────────────────────────────── */

/*
 * Danish legal-document margins: generous left for the ring binder, wide
 * bottom for the running footer. PdfRenderService passes the same numbers to
 * printToPDF (in inches) — keep the two in sync if you change them.
 */
@page {
  size: A4;
  margin: 22mm 20mm 24mm 20mm;
}

/*
 * The token host. Every class that can be the outermost node of a document is
 * on the list — the print sheet (.nt-paper), the screen sheet
 * (.nt-doc-sheet, via shared/_document_page), the document body itself
 * (.nt-doc), and the explicit marker (.nt-doc-tokens) that print.html.erb
 * puts on <body>. The whole contract of this file is that all of them resolve
 * the SAME custom properties Chromium does; miss one and its rules fall back
 * to whatever notarium.css's theme-aware --nt-doc-* aliases happen to say,
 * which is the drift this file exists to prevent.
 */
.nt-doc-tokens,
.nt-doc,
.nt-doc-sheet,
.nt-paper {
  --doc-ink: #16181d;
  --doc-ink-soft: #4b4f58;
  --doc-ink-faint: #83878f;
  --doc-rule: #d6cfc2;
  --doc-rule-strong: #b3aa99;
  --doc-seal: #7f1d2b;
  --doc-ok: #1e6b4f;
  --doc-paper: #ffffff;
  --doc-tint: #f6f3ec;

  --doc-serif: "Source Serif 4", "Georgia", "Times New Roman", serif;
  --doc-display: "Fraunces", "Source Serif 4", "Georgia", serif;
  --doc-sans: "Inter", -apple-system, "Segoe UI", "Helvetica Neue", sans-serif;
  --doc-mono: "JetBrains Mono", "SFMono-Regular", "Menlo", monospace;

  --doc-page-width: 210mm;
  --doc-margin-x: 20mm;
  --doc-margin-top: 22mm;
  --doc-margin-bottom: 24mm;

  /* Proportions of the pack's own .doc-* markup. Theme-independent: a legal
     document reads the same in dark mode, it just sits on a dimmer desk. */
  --doc-lead: 1.62;
  --doc-gap: 1.4rem;            /* air between two doc-sections */
  --doc-clause-indent: 3rem;    /* the hanging number column of a vedtægt */
}

/*
 * The paper frame is SCREEN chrome only: on paper the sheet is the sheet, so
 * print drops the shadow, the ground and the simulated margins (the real ones
 * come from @page / printToPDF).
 */
.nt-paper {
  box-sizing: border-box;
  width: min(100%, var(--doc-page-width));
  margin: 0 auto;
  padding: var(--doc-margin-top) var(--doc-margin-x) var(--doc-margin-bottom);
  background: var(--doc-paper);
  color: var(--doc-ink);
  border: 1px solid var(--doc-rule);
  border-radius: 2px;
  box-shadow: 0 12px 32px rgba(22, 24, 29, 0.12);
  position: relative;
}

.nt-paper--flush {
  box-shadow: none;
  border: 0;
  border-radius: 0;
}

.nt-paper__footer {
  margin-top: 14mm;
  padding-top: 3mm;
  border-top: 0.5pt solid var(--doc-rule);
  font-family: var(--doc-sans);
  font-size: 7.5pt;
  letter-spacing: 0.02em;
  color: var(--doc-ink-faint);
  display: flex;
  flex-wrap: wrap;
  gap: 0 0.6em;
}

.nt-paper__footer span::after {
  content: " ·";
  color: var(--doc-rule-strong);
}

.nt-paper__footer span:last-child::after {
  content: "";
}

/* ── The document body ──────────────────────────────────────────────── */

.nt-doc {
  font-family: var(--doc-serif);
  font-size: 11.5pt;
  line-height: var(--doc-lead);
  color: var(--doc-ink);
  font-variant-numeric: oldstyle-nums proportional-nums;
  hyphens: auto;
}

/*
 * THE METRICS, RESTATED ONE NOTCH STRONGER. This is not belt-and-braces.
 *
 * notarium.css declares `.nt-doc` a second time (§31, the marketing hero):
 * `font-size: clamp(0.44rem, 0.6vw, 0.53rem)`, sized so a whole referat fits
 * inside a 23.5rem prop of a sheet on the front page. Propshaft's bulk
 * include loads that file AFTER this one, and both selectors are (0,1,0) —
 * so the prop won. Measured on the signing page before this rule existed:
 * the real legal document a customer was about to sign rendered at 8.4px on
 * screen while its PDF printed at 11.5pt. §23's `.nt-doc-sheet` does the same
 * thing more mildly to the wizard's preview pane.
 *
 * So on the surfaces that ARE the document — every one of them a token host —
 * the document's own metrics are stated at (0,2,0) and win. Colour is
 * deliberately NOT restated: the sheet's theme-aware ink on its dimmed paper
 * is right for a screen at night, and print never loads notarium.css at all.
 */
.nt-doc.nt-doc-tokens,
.nt-doc-sheet.nt-doc,
.nt-paper .nt-doc {
  font-family: var(--doc-serif);
  font-size: 11.5pt;
  line-height: var(--doc-lead);
}

.nt-doc p {
  margin: 0 0 0.75em;
  text-align: justify;
  orphans: 3;
  widows: 3;
}

.nt-doc > :first-child {
  margin-top: 0;
}

.nt-doc h1 {
  font-family: var(--doc-display);
  font-optical-sizing: auto;
  font-size: 21pt;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0 0 2mm;
  text-wrap: balance;
}

.nt-doc h2 {
  font-family: var(--doc-display);
  font-size: 12.5pt;
  font-weight: 600;
  margin: 8mm 0 2mm;
  break-after: avoid;
  page-break-after: avoid;
}

.nt-doc h3 {
  font-family: var(--doc-serif);
  font-size: 11.5pt;
  font-weight: 700;
  margin: 5mm 0 1.5mm;
  break-after: avoid;
  page-break-after: avoid;
}

.nt-doc h4 {
  font-family: var(--doc-sans);
  font-size: 9pt;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--doc-ink-soft);
  margin: 5mm 0 1.5mm;
  break-after: avoid;
  page-break-after: avoid;
}

.nt-doc ol,
.nt-doc ul {
  margin: 0 0 0.75em;
  padding-left: 1.6em;
}

.nt-doc li {
  margin-bottom: 0.25em;
}

.nt-doc blockquote {
  margin: 0 0 0.75em;
  padding: 0 0 0 4mm;
  border-left: 2pt solid var(--doc-rule);
  color: var(--doc-ink-soft);
  font-style: italic;
}

.nt-doc hr {
  border: 0;
  border-top: 0.5pt solid var(--doc-rule);
  margin: 6mm 0;
}

.nt-doc table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 4mm;
  font-size: 10pt;
  break-inside: avoid;
  page-break-inside: avoid;
}

.nt-doc th {
  font-family: var(--doc-sans);
  font-size: 8pt;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--doc-ink-soft);
  text-align: left;
  padding: 1.5mm 2mm 1.5mm 0;
  border-bottom: 0.75pt solid var(--doc-rule-strong);
}

.nt-doc td {
  padding: 1.5mm 2mm 1.5mm 0;
  border-bottom: 0.5pt solid var(--doc-rule);
  vertical-align: top;
}

.nt-doc td:last-child,
.nt-doc th:last-child {
  padding-right: 0;
}

.nt-doc .num {
  text-align: right;
  font-variant-numeric: tabular-nums lining-nums;
  white-space: nowrap;
}

/* § chips — statutory references are set in mono so they read as citations. */
.nt-doc__lov {
  font-family: var(--doc-mono);
  font-size: 0.82em;
  font-weight: 500;
  letter-spacing: -0.01em;
  white-space: nowrap;
  color: var(--doc-seal);
  background: rgba(127, 29, 43, 0.07);
  border-radius: 3px;
  padding: 0.05em 0.35em;
}

.nt-doc__hash,
.nt-doc__mono {
  font-family: var(--doc-mono);
  font-size: 0.8em;
  overflow-wrap: anywhere;
}

/* ══════════════════════════════════════════════════════════════════════
   The .doc-* vocabulary — the classes the country pack's templates emit.

   The pack's Liquid templates are SEMANTIC HTML with structural classes and
   nothing else: no inline styles, no <style>, no layout tables. That is a
   deliberate rule (legal/dk/README.md) and it puts the entire visual identity
   of every referat, vedtægt and udbytteopgørelse right here.

   These rules lived in notarium.css §26c scoped under `.nt-doc-sheet`, which
   meant Chromium — which is handed THIS file and nothing else — printed the
   pack's markup unstyled. Same file, same tokens, same render as the signed
   PDF: what a customer approves in the wizard's right-hand pane is the
   document, not a picture of one.
   ══════════════════════════════════════════════════════════════════════ */

.nt-doc .doc { display: block; }

/* ── the document's own header ───────────────────────────────────────── */

.nt-doc .doc-header {
  text-align: center;
  margin-bottom: 2.1rem;
  padding-bottom: 1.1rem;
  border-bottom: 1px solid var(--doc-rule);
}

/* `margin: 0` is load-bearing: `.nt-doc h1` carries a 2mm bottom margin for
   bare headings, and inside this header it would push "for" off the title. */
.nt-doc .doc-title {
  margin: 0;
  font-family: var(--doc-display);
  font-size: 1.45rem;
  font-weight: 600;
  line-height: 1.18;
  letter-spacing: -0.008em;
  color: var(--doc-ink);
  text-wrap: balance;
}

.nt-doc .doc-subtitle {
  margin-top: 0.45rem;
  font-size: 0.9rem;
  color: var(--doc-ink-soft);
}

.nt-doc .doc-subject {
  margin-top: 0.35rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--doc-ink);
}

.nt-doc .doc-meta {
  margin-top: 0.6rem;
  font-size: 0.8rem;
  color: var(--doc-ink-soft);
}

/* A header line is the document naming itself; justification belongs to
   prose. */
.nt-doc .doc-header p { text-align: center; }

/* ── sections ────────────────────────────────────────────────────────── */

.nt-doc .doc-section { margin-top: var(--doc-gap); }
.nt-doc .doc-section:first-of-type { margin-top: 0; }

/* `margin: 0 0 …` for the same reason as .doc-title: the section already owns
   the air above it, and inheriting `.nt-doc h2`'s 8mm on top of --doc-gap
   opened a hole between every clause. */
.nt-doc .doc-section-title {
  margin: 0 0 0.4rem;
  font-family: var(--doc-serif);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
  color: var(--doc-ink);
}

.nt-doc .doc-subsection-title {
  font-family: var(--doc-serif);
  font-size: 0.93rem;
  font-weight: 700;
  margin: 0.9rem 0 0.3rem;
  color: var(--doc-ink);
}

.nt-doc .doc-preamble { color: var(--doc-ink); }

.nt-doc .doc-rule {
  border: 0;
  border-top: 1px solid var(--doc-rule);
  margin: 1.4rem 0;
}

/* ── dagsorden and lists ─────────────────────────────────────────────── */

.nt-doc .doc-agenda {
  list-style: decimal;
  padding-left: 1.6rem;
  margin-top: 0.3rem;
}

.nt-doc .doc-agenda-item { padding-left: 0.2rem; margin-top: 0.2rem; }

.nt-doc .doc-list {
  list-style: disc;
  padding-left: 1.4rem;
  margin-top: 0.5rem;
}

.nt-doc .doc-list--steps { list-style: decimal; }
.nt-doc .doc-list li { margin-top: 0.25rem; }
.nt-doc .doc-list--members li,
.nt-doc .doc-list--positions li { list-style: none; }

.nt-doc .doc-list--members,
.nt-doc .doc-list--positions { padding-left: 0; }

.nt-doc .doc-list--members li::before,
.nt-doc .doc-list--positions li::before {
  content: "—";
  margin-right: 0.5rem;
  color: var(--doc-ink-soft);
}

/* ── numbered clauses (vedtægter) ────────────────────────────────────── */

/* Hanging indent with the clause number in the margin — the shape every
   Danish vedtægt has had since before there were word processors, and the
   reason a customer can find "punkt 5.3" by running a finger down the page. */
.nt-doc .doc-clause {
  display: grid;
  grid-template-columns: var(--doc-clause-indent) 1fr;
  margin-top: 0.45rem;
}

.nt-doc .doc-clause-no {
  font-variant-numeric: tabular-nums;
  color: var(--doc-ink-soft);
}

.nt-doc .doc-amendment-lead { margin-top: 0.9rem; }

/* ── quoted wording ──────────────────────────────────────────────────── */

/* A vedtægtsændring quotes the new wording verbatim. It has to LOOK quoted:
   this is the sentence that becomes law inside the company. */
.nt-doc .doc-quote {
  margin: 0.6rem 0 0.6rem 0;
  padding: 0.5rem 0 0.5rem 1rem;
  border-left: 2px solid var(--doc-rule);
  color: var(--doc-ink);
  font-style: italic;
}

.nt-doc .doc-quote p + p { margin-top: 0.4em; }

/* ── tables ──────────────────────────────────────────────────────────── */

.nt-doc .doc-table {
  width: 100%;
  margin-top: 0.7rem;
  border-collapse: collapse;
  font-size: 0.88rem;
  font-variant-numeric: tabular-nums;
}

.nt-doc .doc-table-caption {
  caption-side: top;
  text-align: left;
  padding-bottom: 0.3rem;
  font-size: 0.8rem;
  font-style: italic;
  color: var(--doc-ink-soft);
}

/* `.nt-doc th` sets the small-caps sans label style the evidence appendix
   wants. A doc-table's header is a heading INSIDE a legal document and stays
   in the document's own face — without these two resets the udbytte table's
   "Kapitalejer" printed as an uppercase UI label. */
.nt-doc .doc-table th {
  font-family: var(--doc-serif);
  text-transform: none;
  letter-spacing: 0;
}

.nt-doc .doc-table thead th {
  text-align: left;
  padding: 0.3rem 0.55rem;
  border-bottom: 1px solid var(--doc-ink-soft);
  font-weight: 700;
  font-size: 0.8rem;
  letter-spacing: 0.01em;
  color: var(--doc-ink);
}

.nt-doc .doc-table td,
.nt-doc .doc-table tbody th {
  padding: 0.3rem 0.55rem;
  border-bottom: 1px solid var(--doc-rule);
  vertical-align: top;
}

.nt-doc .doc-table tbody th {
  text-align: left;
  font-weight: 400;
  color: var(--doc-ink);
}

.nt-doc .doc-table tfoot th,
.nt-doc .doc-table tfoot td {
  padding: 0.4rem 0.55rem;
  border-top: 1.5px solid var(--doc-ink-soft);
  border-bottom: 0;
  font-weight: 700;
  text-align: left;
  color: var(--doc-ink);
}

.nt-doc .doc-cell--amount,
.nt-doc .doc-table tfoot td.doc-cell--amount,
.nt-doc .doc-cell--number { text-align: right; white-space: nowrap; }

.nt-doc .doc-cell-note { font-size: 0.75rem; color: var(--doc-ink-soft); }

/* A figures table is a two-column ledger, not a grid: the label runs long and
   the amount is the thing being read. */
.nt-doc .doc-table--figures tbody th { width: 62%; }

/* ── notes, emphasis, parties ────────────────────────────────────────── */

.nt-doc .doc-note {
  margin-top: 0.7rem;
  font-size: 0.83rem;
  color: var(--doc-ink-soft);
}

.nt-doc .doc-emphasis { font-weight: 700; }
.nt-doc strong { font-weight: 700; }

.nt-doc .doc-party { margin-top: 0.8rem; }
.nt-doc .doc-party-name { font-weight: 700; }

/* A stifter's address is an <address>, which browsers italicise. It is a
   postal address, not an aside — and it is never justified. */
.nt-doc address {
  font-style: normal;
  text-align: left;
}

/* ── signatures ──────────────────────────────────────────────────────── */

.nt-doc .doc-signature-block {
  margin-top: 2.4rem;
  padding-top: 1.1rem;
  border-top: 1px solid var(--doc-rule);
  page-break-inside: avoid;
  break-inside: avoid;
}

.nt-doc .doc-signature-block .doc-section-title { margin-bottom: 1.1rem; }

.nt-doc .doc-signature,
.nt-doc .doc-signature-group { margin-top: 1.6rem; break-inside: avoid; }

.nt-doc .doc-signature-role,
.nt-doc .doc-signature-for {
  font-size: 0.8rem;
  color: var(--doc-ink-soft);
}

/* The name sits UNDER a rule, because that rule is where a human signs. A
   printed name with no line above it is not a signature block. */
.nt-doc .doc-signature-line {
  margin-top: 2rem;
  padding-top: 0.35rem;
  border-top: 1px solid var(--doc-ink-soft);
  max-width: 16rem;
  font-size: 0.86rem;
}

.nt-doc .doc-signature-title,
.nt-doc .doc-signature-date {
  font-size: 0.78rem;
  color: var(--doc-ink-soft);
}

.nt-doc .doc-signature-date { margin-top: 1.2rem; }

/* A signature line is a name on a rule; justifying it would space the words
   across 16rem. */
.nt-doc .doc-signature p,
.nt-doc .doc-signature-group p,
.nt-doc .doc-party p,
.nt-doc .doc-clause-no { text-align: left; }

/* ── the document's own closing footer (not the sheet's) ─────────────── */

.nt-doc .doc-footer {
  display: block;
  margin-top: 2rem;
  padding-top: 0.8rem;
  border-top: 1px solid var(--doc-rule);
  font-size: 0.8rem;
  color: var(--doc-ink-soft);
}

/* ── Metadata grid (the evidence appendix) ──────────────────────────── */

.nt-doc__meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(38mm, 1fr));
  gap: 2mm 6mm;
  margin: 4mm 0 0;
  font-family: var(--doc-sans);
  font-size: 8.5pt;
}

.nt-doc__meta dt {
  color: var(--doc-ink-faint);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 7.5pt;
  margin: 0 0 0.5mm;
}

.nt-doc__meta dd {
  margin: 0;
  color: var(--doc-ink);
  font-weight: 500;
}

/* A metadata grid inside the body (the evidence appendix) needs breathing
   room from the prose that follows; the front-matter one has its own rule. */
.nt-doc__break .nt-doc__meta {
  margin-bottom: 6mm;
}

/* ── Signature page + evidence appendix (sealed versions) ───────────── */

.nt-doc__break {
  break-before: page;
  page-break-before: always;
  margin-top: 0;
}

.nt-doc__seal {
  display: flex;
  align-items: center;
  gap: 4mm;
  margin: 0 0 6mm;
  padding: 4mm;
  background: var(--doc-tint);
  border: 0.5pt solid var(--doc-rule);
  border-radius: 3px;
}

.nt-doc__seal-mark {
  flex: 0 0 auto;
  /* The document body sets hyphens:auto; the seal must not break its word. */
  hyphens: none;
  width: 18mm;
  height: 18mm;
  border-radius: 50%;
  border: 1.5pt solid var(--doc-seal);
  color: var(--doc-seal);
  font-family: var(--doc-display);
  font-size: 6.5pt;
  font-weight: 600;
  letter-spacing: 0.08em;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.nt-doc__seal-body {
  font-family: var(--doc-sans);
  font-size: 8.5pt;
  line-height: 1.45;
  color: var(--doc-ink-soft);
}

.nt-doc__signatures {
  list-style: none;
  margin: 0;
  padding: 0;
}

.nt-doc__signature {
  break-inside: avoid;
  page-break-inside: avoid;
  padding: 4mm 0;
  border-bottom: 0.5pt solid var(--doc-rule);
}

.nt-doc__signature-name {
  font-family: var(--doc-display);
  font-size: 13pt;
  font-weight: 600;
  margin: 0 0 1mm;
}

.nt-doc__signature-meta {
  font-family: var(--doc-sans);
  font-size: 8.5pt;
  color: var(--doc-ink-soft);
  margin: 0;
}

.nt-doc__events {
  width: 100%;
  font-family: var(--doc-mono);
  font-size: 7.5pt;
}

.nt-doc__events td {
  padding: 1mm 2mm 1mm 0;
  overflow-wrap: anywhere;
}

/* ── Screen-only preview chrome ─────────────────────────────────────── */

.nt-preview {
  background: var(--nt-surface-sunken, #ece8e0);
  padding: 24px 16px;
  overflow-y: auto;
}

@media print {
  .nt-preview {
    background: none;
    padding: 0;
    overflow: visible;
  }

  .nt-paper {
    width: auto;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .nt-screen-only { display: none; }

  /*
   * Hide the in-flow footer ONLY in the Chromium pass, where printToPDF's
   * footerTemplate already paints selskab · CVR · side X af Y at the foot of
   * every page (see the file header) and a second one would print twice on
   * the last page. `.nt-print` is set by documents/print.html.erb, so it is
   * on exactly that document and nothing else.
   *
   * This used to be an unscoped `.nt-paper__footer { display: none }`, which
   * also fired when a human pressed ⌘P on the signing page — no
   * footerTemplate there, no @page margin box either, so the printed
   * signature copy came out with no selskab, no CVR and no verify-URL at all.
   */
  .nt-print .nt-paper__footer { display: none; }
}
