/* fiche.css — jury-fiche (scherm + print/PDF), één bron.

   Vormtaal: institutioneel adviesrapport. Papier en inkt, één accent
   (het Ramirez-diepgroen) dat uitsluitend structuur markeert — nooit een
   status. De opbouw is een vaste twee-assige zetspiegel: een smalle
   kantlijn met metadata (nummers, vindplaatsen, labels, standen) en een
   gemeten tekstkolom van ~75 tekens. Alles ligt op dezelfde verticale as,
   van de kop tot de laatste formele check.

   VERHOUDING TOT DE SCHIL (public/app.css). De fiche deelt met de schil het
   palet en het accent, niet de vormtaal. Dat is opzet en geen inconsistentie:
   de schil is een webpagina en volgt ramirezevaluation.com één op één; de
   fiche is een A4 dat naar de jury gaat. Daar wint een schreefletter op
   9,3pt van een systeem-sans, en werkt een gemeten zetspiegel beter dan
   afgeronde tegels. Wat beide herkenbaar één maakt is de kleur, niet de vorm.

   Statuscodering is typografisch: merktekens in inkt (vol / half / open /
   cirkel / streep) plus het woord voluit. Geen kleurvlakken, geen
   verkeerslicht. 'Onbeslisbaar' krijgt bewust hetzelfde gewicht als de
   andere uitkomsten: twijfel is een resultaat, geen fout — en de fiche
   blijft leesbaar in zwart-wit en voor kleurenblinde lezers.

   Maten in pt/mm: dit is in de eerste plaats een drukwerkdocument dat naar
   A4 gaat; het scherm toont hetzelfde blad. */

/* Tokens staan op .fiche, niet op :root: de fiche-pagina laadt ook app.css
   en de twee stylesheets mogen elkaars variabelen niet overschrijven. */
.fiche {
  --blad: #ffffff;

  /* Palet één op één uit ramirezevaluation.com. */
  --inkt: #1d1d1f;
  --inkt-zacht: #424245;
  --gedempt: #6e6e73;
  --flauw: #86868b;

  --lijn: #d2d2d7;
  --lijn-fijn: #e8e8ed;
  /* 29/9: accent en letter van de website (shell.css), niet meer eigen. */
  --accent: #1B4F8A;
  --accent-tint: #EAF1F9;

  --serif: 'Public Sans', 'Helvetica Neue', Arial, sans-serif;
  --sans: 'Public Sans', 'Helvetica Neue', Arial, sans-serif;

  /* zetspiegel: 32 + 6 + 126 + 16 = 180 mm = A4 min 2×15 mm marge.
     126 mm draagt op 9,3pt ongeveer 78 tekens per regel; de 16 mm
     buitenmarge blijft leeg — lucht is hier een keuze, geen restruimte. */
  --rail: 32mm;
  --geul: 6mm;
  --kolom: 126mm;
}

/* ---------- zetspiegel ----------
   Twee assen zonder grid: een blok met linkermarge, en daarin een absoluut
   geplaatste kantlijn. Bewust géén CSS-grid: grid-containers fragmenteren in
   Chromium onbetrouwbaar over paginagrenzen (overlappende tekst in de PDF).
   Deze opzet breekt netjes af, want elk blok is een gewone blokstroom. */

.railblok {
  position: relative;
  padding-left: calc(var(--rail) + var(--geul));
}
.rail {
  position: absolute;
  left: 0;
  top: 0;
  width: var(--rail);
  text-align: right;
  hyphens: none;
  overflow-wrap: anywhere;
}

/* ---------- basis ---------- */

.fiche {
  font-family: var(--serif);
  font-optical-sizing: auto;
  font-size: 9.3pt;
  line-height: 1.42;
  color: var(--inkt);
  background: var(--blad);
  text-rendering: optimizeLegibility;
  font-kerning: normal;
  font-variant-numeric: lining-nums;
  -webkit-font-smoothing: antialiased;
}

.fiche h1, .fiche h2, .fiche h3 { margin: 0; font-weight: 600; }
.fiche p, .fiche ul, .fiche ol, .fiche blockquote, .fiche figure { margin: 0; }
.fiche ul, .fiche ol { list-style: none; padding: 0; }
.fiche p { orphans: 2; widows: 2; }

/* ---------- terugkerende elementen ---------- */

.microlabel,
.deellabel,
.sectie-toelichting,
.kop-soort,
.kop-ref,
.stand,
.claim-nr,
.claim-locatie,
.check-id,
.ko-tag,
.fp-id,
.fp-locatie,
.bm-zekerheid,
.deel-telling,
.checkgroep-kop,
.bijlage-merk,
.gaten-rest,
.verwijzing {
  font-family: var(--sans);
  font-variant-numeric: tabular-nums lining-nums;
}

.microlabel,
.deellabel,
.kop-soort,
.checkgroep-naam {
  font-size: 6.6pt;
  font-weight: 600;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--gedempt);
}
.microlabel { display: block; margin-bottom: 0.5mm; }

/* Tekstlaag-scheidingsteken (zie TL_SEP in fiche-template.mjs): moet bestaan
   voor kopiëren, pdftotext en screenreaders, maar visueel niet. Bewust geen
   display:none (verdwijnt overal) en geen sr-only-clip (positie buiten de
   tekststroom verminkt de pdftotext-leesvolgorde). */
.tl-sep { font-size: 1px; letter-spacing: 0; color: transparent; }

/* Merkteken: 4 vormen, allemaal in inkt. Vol/half/open vormen één schaal;
   de cirkel staat er bewust naast (onbekend ≠ zwak), de streep is n.v.t. */
.stand {
  display: inline-block;
  font-size: 7.6pt;
  line-height: 1.3;
  color: var(--inkt);
  white-space: nowrap;
}
.teken {
  display: inline-block;
  width: 0.62em;
  height: 0.62em;
  margin-right: 0.5em;
  border: 0.9px solid var(--inkt);
  vertical-align: 0.02em;
}
.teken-vol { background: var(--inkt); }
.teken-half { background: linear-gradient(to top, var(--inkt) 0 50%, transparent 50% 100%); }
.teken-open { background: transparent; }
.teken-cirkel { border-radius: 50%; background: transparent; }
.teken-ruit { background: var(--inkt); transform: rotate(45deg); }
.teken-streep {
  border: 0;
  border-top: 0.9px solid var(--flauw);
  height: 0;
  width: 0.7em;
  vertical-align: 0.28em;
}

.opsomming > li {
  position: relative;
  padding-left: 4.5mm;
  margin-top: 1.4mm;
}
.opsomming > li::before {
  content: '\2013';
  position: absolute;
  left: 0;
  color: var(--flauw);
}
.opsomming > li:first-child { margin-top: 0; }

/* ---------- kop van het blad ---------- */

.blad-kop {
  border-top: 1.6pt solid var(--inkt);
  padding-top: 2.6mm;
  margin-bottom: 6.5mm;
  break-inside: avoid;
  page-break-inside: avoid;
}
/* De merkregel volgt de schil: de naam in inkt op zijn eigen gewicht, de
   fase-aanduiding als groene pil. Niet gesperd-in-kapitaal zoals eerder —
   dat was de oude vormtaal; Ramirez zet zijn woordmerk gewoon uit. */
.kop-merk {
  font-family: var(--sans);
  font-size: 10.5pt;
  font-weight: 600;
  letter-spacing: -0.015em;
  color: var(--inkt);
  margin-bottom: 6mm;
}
.beta {
  font-size: 6.2pt;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
  background: var(--accent-tint);
  border-radius: 980px;
  padding: 0.15em 0.55em;
  margin-left: 0.55em;
  vertical-align: 0.12em;
}
.kop-blok .rail { top: 1.4mm; }
.kop-soort { color: var(--inkt); margin-bottom: 1.6mm; }
.kop-ref {
  font-size: 7.4pt;
  line-height: 1.4;
  color: var(--gedempt);
}
.kop-titel {
  font-size: 20pt;
  line-height: 1.06;
  letter-spacing: -0.012em;
  font-weight: 600;
}
.kop-ondertitel {
  font-size: 10pt;
  line-height: 1.35;
  color: var(--gedempt);
  margin-top: 2mm;
  max-width: 96mm;
}
.kop-doctrine {
  font-style: italic;
  font-size: 8.8pt;
  color: var(--inkt-zacht);
  border-top: 0.5pt solid var(--lijn);
  padding-top: 1.8mm;
  margin-top: 6mm;
}
/* Wegwijzer: welk deel je in handen hebt en waar de rest staat. Zonder deze
   regel is een losverspreide briefing niet zelfverklarend. */
.kop-doctrine + .kop-wegwijzer { margin-top: 2.6mm; }
.kop-wegwijzer {
  font-family: var(--sans);
  text-wrap: balance; /* zie de toelichting bij .sectie-toelichting */
  font-size: 7.4pt;
  line-height: 1.45;
  color: var(--gedempt);
  margin-top: 2.2mm;
  max-width: 152mm;
}

/* Verificatiebelofte in de kop van deel II: de regel die zegt wat dit
   document streng maakt, mét de tellingen. Hairline-kader in inkt — geen
   kleurvlak, conform het merktekens-register. */
.verificatie-regel {
  margin-top: 3.2mm;
  /* De padding staat hier bewust voluit met een expliciete linkerwaarde. Het
     was een verkorte notatie ('padding: 2mm 0 2.2mm'), en die zette de
     padding-left van .railblok terug op nul: het raillabel VERIFICATIE stond
     op de kantlijn terwijl zijn eigen tekst op de bladrand begon — het enige
     blok in het hele document dat naast de as viel. De max-width van 152 mm
     op de tekst was de compensatie daarvoor en kan dus weg. */
  padding: 2mm 0 2.2mm calc(var(--rail) + var(--geul));
  border-top: 0.35pt solid var(--lijn);
  border-bottom: 0.35pt solid var(--lijn);
  font-family: var(--sans);
  font-size: 7.4pt;
  line-height: 1.45;
  color: var(--inkt-zacht);
}
.verificatie-regel .verificatie-tekst { display: block; }

/* Inleesregel: sectie 0 van deel I, in hetzelfde kader en corps als de
   verificatieregel — het is dezelfde belofte vanaf de andere kant (wat er
   gelezen is, tegenover wat er geverifieerd is). Staat vóór de bevindingen:
   wie de oordelen leest, moet eerst weten wat de machine niet gelezen heeft. */
.inlees-regel {
  margin-top: 3.2mm;
  margin-bottom: 6.5mm;
  padding: 2mm 0 2.2mm calc(var(--rail) + var(--geul));
  /* Zwaarder dan de verificatieregel: dit blok moet gelezen worden vóór de
     oordelen, en in hairlines plus gedempt grijs sprong het oog eroverheen
     naar '01 Bevindingen'. Inktlijn boven, zoals de sectiekoppen. */
  border-top: 0.9pt solid var(--inkt);
  border-bottom: 0.35pt solid var(--lijn);
  font-family: var(--sans);
  font-size: 7.4pt;
  line-height: 1.45;
  color: var(--inkt-zacht);
}
.inlees-regel .inlees-intro { color: var(--inkt-zacht); }
.inlees-regel .rail .microlabel { color: var(--inkt); }
.inlees-regel .inlees-lijst { margin-top: 1.2mm; }
.inlees-regel .inlees-lijst > li {
  position: relative;
  padding-left: 3.5mm;
  margin-top: 0.8mm;
  color: var(--inkt);
}
.inlees-regel .inlees-rest { margin-top: 1mm; color: var(--gedempt); }
.inlees-regel .inlees-lijst > li::before {
  content: '\2013';
  position: absolute;
  left: 0;
  color: var(--flauw);
}

/* ---------- sectiekop ---------- */

.sectie { margin-bottom: 6.5mm; }
.sectie:last-of-type { margin-bottom: 0; }

.sectiekop {
  border-top: 0.9pt solid var(--inkt);
  padding-top: 1.8mm;
  margin-bottom: 4.5mm;
  break-after: avoid;
  page-break-after: avoid;
}
.sectie-nummer {
  font-family: var(--sans);
  font-size: 13pt;
  font-weight: 600;
  line-height: 1;
  color: var(--accent);
  font-variant-numeric: tabular-nums;
}
.sectie-naam {
  font-size: 14pt;
  line-height: 1.1;
  letter-spacing: -0.005em;
}
/* text-wrap: balance op de inleidende alinea's — de sectietoelichting en de
   wegwijzer in de kop. Die twee dragen vaste sjabloontekst in een vaste maat,
   dus hun wees viel in élke fiche op dezelfde plek: 'Elke vraag staat op een
   gat of / patroon.' en '... staat in deel II, / de bijlage.' Balanceren en
   niet 'pretty': pretty schoof hier hooguit één woord op (10% -> 14% van de
   regelbreedte), balance maakt de regels gelijk (10% -> 79%) én houdt het
   aantal regels per definitie gelijk — daarmee blijft de zethoogte, en dus de
   tweepaginagrens van deel I, ongemoeid. Alleen deze twee: elders is de tekst
   variabel en weegt een voorspelbare regelval zwaarder. */
.sectie-toelichting {
  text-wrap: balance;
  font-size: 8pt;
  line-height: 1.45;
  color: var(--gedempt);
  margin-top: 1.6mm;
  max-width: 108mm;
}

/* ---------- deel I, 01 bevindingen per criterium ----------
   De briefing kent geen citaten: per criterium alleen de sterkte-indicatie,
   de telling van het bewijs met een verwijzing naar de bijlage, en de gaten.
   Wat er niet bij past staat geteld genoemd — nooit stilzwijgend weggelaten. */

.bevinding {
  padding-top: 2mm;
  border-top: 0.5pt solid var(--lijn);
  margin-bottom: 4.4mm;
}
.bevinding:last-child { margin-bottom: 0; }
.bevinding-rail { top: 2mm; }
.gaten-lijst { margin-top: 1.9mm; }
.gaten-rest {
  font-size: 7.2pt;
  color: var(--gedempt);
  margin-top: 1.6mm;
}
.geen-gaten {
  font-size: 8.8pt;
  font-style: italic;
  color: var(--gedempt);
  margin-top: 1.9mm;
}
.verwijzing { color: var(--inkt-zacht); }

/* Bewijsnavigatie: de bijlage-verwijzingen zijn ankers. Op scherm discreet
   klikbaar (gestippelde onderstreping); in de gedrukte PDF exact de platte
   tekst van voorheen — daar navigeert het paginanummer. De terug-link bestaat
   alleen op scherm: elk PDF-deel is een eigen document. */
a.verwijzing-link { color: inherit; text-decoration: none; }
.terug-link {
  font-family: var(--sans);
  font-size: 6.6pt;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gedempt);
  text-decoration: none;
  white-space: nowrap;
}
@media screen {
  a.verwijzing-link {
    text-decoration: underline;
    text-decoration-style: dotted;
    text-decoration-color: var(--gedempt);
    text-underline-offset: 2px;
  }
  a.verwijzing-link:hover,
  .terug-link:hover { color: var(--inkt); }
  a.verwijzing-link:focus-visible,
  .terug-link:focus-visible { outline: 1.5px solid var(--inkt); outline-offset: 2px; }
  [id^='bijlage-'], [id^='briefing-'] { scroll-margin-top: 0.75rem; }
}
@media print {
  .terug-link { display: none; }
}

/* ---------- kerncijferstrip (beide delen) ---------- */

/* Legende bij de checkcodes (bijlage C): sleutel in de kantlijnkolom, uitleg
   ernaast. Zelfde corps als de bron- en grondregels van de checks. */
.check-legende {
  margin: 0.8mm 0 6mm calc(var(--rail) + var(--geul));
  padding: 1.6mm 0 2mm;
  border-top: none; /* sluit aan op de kerncijferregel erboven: één blok cijfers + sleutel */
  border-bottom: 0.35pt solid var(--lijn);
  font-family: var(--sans);
  font-size: 7.2pt;
  line-height: 1.45;
  color: var(--inkt-zacht);
}
.check-legende > div { display: flex; gap: 3mm; margin-top: 0.7mm; }
.check-legende > div:first-child { margin-top: 0; }
.check-legende dt {
  flex: 0 0 16mm;
  font-variant-numeric: tabular-nums lining-nums;
  color: var(--inkt);
}
.check-legende dd { flex: 1; }
.check-legende em { font-style: normal; color: var(--inkt); }

.kern-reeks {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5mm 7mm;
  align-items: baseline;
  border-top: 0.5pt solid var(--lijn);
  border-bottom: 0.5pt solid var(--lijn);
  padding: 2.4mm 0;
}
.kern-reeks li {
  display: flex;
  align-items: baseline;
  gap: 1.6mm;
}
.kern-getal {
  font-family: var(--sans);
  font-size: 13pt;
  font-weight: 500;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  min-width: 6mm;
  text-align: right;
}
.kern-totaal { margin-left: auto; color: var(--gedempt); }
.kern-totaal .kern-getal { color: var(--inkt); }

/* ---------- deel I, 03 formele checks in het kort ----------
   Alleen de rode en de onbeslisbare items. 'Onbeslisbaar' is een uitkomst,
   geen tekortkoming — het krijgt daarom een eigen, benoemd blok en niet een
   voetnoot: juist bij weinig ruimte mag twijfel niet wegvallen. */

.sectie-briefing-checks .kern-reeks { margin-bottom: 4.5mm; }
.deel-check-rood { margin-bottom: 4.5mm; }
.check-kortrij {
  border-top: 0.5pt solid var(--lijn-fijn);
  padding-top: 1.4mm;
  margin-top: 1.4mm;
  break-inside: avoid;
  page-break-inside: avoid;
}
.check-kortrij:first-child { border-top: none; padding-top: 0; margin-top: 0; }
.check-kortkop { font-size: 8.7pt; line-height: 1.3; }
.check-kortkop .check-id { display: inline; margin-right: 0.6em; }
.onbeslisbaar-ko { display: flex; align-items: baseline; gap: 1.6mm; margin-bottom: 1.2mm; }
.check-noot {
  font-family: var(--sans);
  font-size: 7.4pt;
  line-height: 1.42;
  color: var(--gedempt);
  margin-bottom: 1.8mm;
}

/* ---------- 02 pitchvragen ---------- */

.sectie-pitchvragen .sectiekop { border-top-width: 1.6pt; }
.pitchvragen-lijst {
  border-top: 0.5pt solid var(--lijn);
}
/* Verdicht, niet ingekort. De pitchvragen zijn het handelingsdeel van de
   briefing en er verdwijnt er nooit één, en er verdwijnt geen woord uit.
   Wat hier krimpt is uitsluitend de zetruimte eromheen: op vijf vragen
   scheelde dat ruim 30 mm, en dat is het verschil tussen twee en drie
   pagina's. Zie de meting in briefingHtml(). */
.pitchvraag {
  padding-top: 2.6mm;
  padding-bottom: 2.6mm;
  border-bottom: 0.5pt solid var(--lijn-fijn);
  break-inside: avoid;
  page-break-inside: avoid;
}
.pitchvraag:last-child { border-bottom: none; }
.pv-nummer {
  display: block;
  font-family: var(--sans);
  font-size: 11pt;
  font-weight: 600;
  line-height: 1;
  color: var(--accent);
  font-variant-numeric: tabular-nums;
}
.pv-criterium {
  display: block;
  font-family: var(--sans);
  font-size: 7pt;
  line-height: 1.35;
  color: var(--gedempt);
  margin-top: 1.6mm;
}
.pv-vraag {
  font-size: 10.6pt;
  line-height: 1.32;
  /* 600 werd bij vragen van vier, vijf regels een muur; 500 houdt het
     contrast met de aanleiding (7 pt sans) zonder te schreeuwen. */
  font-weight: 500;
  letter-spacing: -0.004em;
}
.pv-aanleiding {
  font-family: var(--sans);
  font-size: 7.8pt;
  line-height: 1.4;
  color: var(--gedempt);
  margin-top: 1.8mm;
}

/* ---------- deel II, A bewijs per criterium ---------- */

.criterium { margin-bottom: 6mm; }
.criterium:last-child { margin-bottom: 0; }

.criterium-kop {
  border-top: 0.5pt solid var(--lijn);
  padding-top: 2mm;
  margin-bottom: 3.4mm;
  break-after: avoid;
  page-break-after: avoid;
}
.criterium-nr {
  display: block;
  font-family: var(--sans);
  font-size: 7.4pt;
  color: var(--flauw);
  font-variant-numeric: tabular-nums;
  margin-bottom: 1.4mm;
}
.criterium-stand { font-size: 7.8pt; }
.criterium-meta {
  font-family: var(--sans);
  font-size: 7.2pt;
  color: var(--gedempt);
  margin-top: 1.4mm;
  font-variant-numeric: tabular-nums;
}
.criterium-naam {
  font-size: 13pt;
  line-height: 1.15;
  letter-spacing: -0.006em;
}

.deel { margin-bottom: 4mm; }
.deel:last-child { margin-bottom: 0; }
.deel-telling {
  display: block;
  font-family: var(--sans);
  font-size: 7.4pt;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: var(--flauw);
  font-variant-numeric: tabular-nums;
  margin-top: 0.6mm;
}

.claim {
  padding-top: 2.2mm;
  padding-bottom: 2.2mm;
  border-top: 0.5pt solid var(--lijn-fijn);
  break-inside: avoid;
  page-break-inside: avoid;
}
.claim:first-child { border-top: 0.5pt solid var(--lijn); }
.claim-nr {
  display: block;
  font-size: 7.4pt;
  color: var(--flauw);
}
.claim-locatie {
  display: block;
  font-size: 7pt;
  line-height: 1.35;
  color: var(--gedempt);
  margin-top: 0.8mm;
}
.claim-onverifieerbaar {
  display: block;
  font-family: var(--sans);
  font-size: 6.6pt;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
  margin-top: 1mm;
}
.bevinding-tekst { font-size: 9.3pt; }
/* Bijlagemerk (A1 … A5): het anker waar deel I naar verwijst. */
.bijlage-merk {
  display: block;
  font-size: 9pt;
  font-weight: 600;
  line-height: 1;
  color: var(--accent);
  margin-bottom: 1.6mm;
}

/* Het citaat is brontekst, geen analyse: andere letter (schreefloos),
   kleiner, met een fijne lijn ernaast en hangende aanhalingstekens. */
.citaat {
  font-family: var(--sans);
  font-size: 7.9pt;
  line-height: 1.4;
  color: var(--inkt-zacht);
  border-left: 0.5pt solid var(--lijn);
  padding-left: 3.2mm;
  margin-top: 1.4mm;
}
.citaat p { text-indent: -0.42em; }

.patronen > li { margin-top: 2.4mm; }
.patronen > li:first-child { margin-top: 0; }
.fp-kop { display: block; }
.fp-naam { font-weight: 600; font-size: 9.3pt; }
.fp-id {
  font-size: 7pt;
  color: var(--flauw);
  margin-left: 0.6em;
  letter-spacing: 0.04em;
}
.fp-evidence { font-size: 9pt; color: var(--inkt-zacht); }
.fp-locatie {
  font-size: 7pt;
  color: var(--flauw);
  margin-top: 0.8mm;
  padding-left: 3.2mm;
}

.criterium-leeg { color: var(--gedempt); font-style: italic; }

/* ---------- deel II, B businessmodel ---------- */

.bm-archetype {
  font-size: 12pt;
  font-weight: 600;
  line-height: 1.2;
  margin-bottom: 1.8mm;
}
.bm-zekerheid {
  font-size: 7.2pt;
  color: var(--gedempt);
  margin-top: 0.8mm;
}

/* ---------- deel II, C formele checks ---------- */

.sectie-checks .kern-reeks { margin-bottom: 5mm; }
.checkgroep { margin-bottom: 5mm; }
.checkgroep:last-child { margin-bottom: 0; }
.checkgroep-kop {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  border-bottom: 0.9pt solid var(--inkt);
  padding-bottom: 1.2mm;
  break-after: avoid;
  page-break-after: avoid;
}
.checkgroep-telling {
  font-size: 7.2pt;
  color: var(--gedempt);
  font-variant-numeric: tabular-nums;
}

/* GEMETEN EN BEWUST NIET VERANDERD (24/8): deze drie kolommen liggen 6 mm
   naast de kantlijnas van de rest van het document — de stand eindigt op
   26 mm waar elk ander kantlijnitem op --rail (32 mm) eindigt, en de naam
   begint op 31 mm waar elke andere tekstkolom op 38 mm begint. Dat is de
   enige plek waar de belofte in de kop van dit bestand ('alles ligt op
   dezelfde verticale as, van de kop tot de laatste formele check') niet
   opgaat, en het is verleidelijk om het recht te trekken.

   Doe dat niet zonder de tekstlaag te meten. De rij wordt naast elkaar
   gezet, maar hij wordt ook uitgelezen: pdftotext bepaalt met een
   kolomheuristiek of naam en toelichting op één regel horen. Met de stand op
   26 mm houdt hij ze bij elkaar en leest de PDF als het blad —
   'fc-002 / Onderneming max 2 jaar / Oprichting 14/03/2026 ...'. Schuif je de
   stand naar 32 mm, dan valt de naam ná zijn eigen toelichting:
   'fc-002 / Oprichting 14/03/2026 ... / Onderneming max 2 jaar'. Gemeten op de
   drie checks van de voorbeeldfiche: 3/3 rijen in bladvolgorde bij 26 mm,
   1/3 bij 32 mm. Beproefd met geulen van 2 tot 6 mm, naamkolommen van 34 tot
   46 mm, en met de stand absoluut in een railblok in plaats van in het
   raster: geen enkele variant met de stand op de as komt boven 2/3.

   Dat is geen cosmetiek. De bijlage bestaat om na te lezen en te citeren; een
   checknaam die achter zijn eigen toelichting terechtkomt in wat de lezer
   kopieert of de schermlezer voorleest, weegt zwaarder dan 6 mm alignement.
   Vandaar: as gelijk elders (verificatieregel, sectie 0, sectie D zijn 24/8
   wél rechtgetrokken), hier bewust niet. */
.checkrij {
  display: grid;
  grid-template-columns: 26mm 46mm 1fr;
  column-gap: 5mm;
  padding: 1.9mm 0;
  border-bottom: 0.5pt solid var(--lijn-fijn);
  break-inside: avoid;
  page-break-inside: avoid;
}
.checkrij.is-knockout { border-bottom-color: var(--lijn); }
/* Beknopte rij (in orde / n.v.t.): minder lucht, zelfde raster en leesvolgorde. */
.checkrij.is-beknopt { padding: 1mm 0; }
.checkrij.is-beknopt .check-id { display: inline; margin: 0 0.5em 0 0; }
.checkrij.is-beknopt .check-titel { font-weight: 500; }
.criterium-noot {
  font-family: var(--sans);
  font-size: 7.2pt;
  line-height: 1.38;
  color: var(--flauw);
  margin: 1.2mm 0 2mm;
}
.check-stand { text-align: right; }
.check-naam { font-size: 8.7pt; line-height: 1.3; }
.check-id {
  display: block;
  font-size: 6.6pt;
  color: var(--flauw);
  letter-spacing: 0.02em;
  margin-bottom: 0.4mm;
}
.check-titel { font-weight: 600; }
.ko-tag {
  display: inline-block;
  font-size: 6.2pt;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--inkt);
  border: 0.5pt solid var(--inkt);
  padding: 0 0.4em;
  margin-left: 0.4em;
  vertical-align: 0.14em;
}
.check-tekst {
  font-family: var(--sans);
  font-size: 7.7pt;
  line-height: 1.38;
  color: var(--inkt-zacht);
}
.check-bron {
  font-size: 6.8pt;
  line-height: 1.38;
  color: var(--flauw);
  margin-top: 1.2mm;
}
.check-bron .microlabel { display: inline; margin-right: 0.5em; letter-spacing: 0.1em; }
.bron-lijst { margin-top: 0.4mm; }
.bron-lijst li { display: flex; gap: 1.5mm; margin-top: 0.3mm; }
.bron-id {
  flex: 0 0 11mm;
  font-family: var(--sans);
  font-size: 6.2pt;
  letter-spacing: 0.06em;
  color: var(--gedempt);
}

/* ---------- voet ---------- */

.blad-voet {
  border-top: 0.9pt solid var(--inkt);
  padding-top: 2mm;
  margin-top: 3.5mm;
  font-size: 7.4pt;
  line-height: 1.42;
  color: var(--gedempt);
}
.voet-body p + p { margin-top: 1.4mm; }
.voet-versies {
  font-family: var(--sans);
  font-size: 6.8pt;
  color: var(--flauw);
  font-variant-numeric: tabular-nums;
}
.voet-lenzen {
  font-family: var(--sans);
  font-size: 7.2pt;
  color: var(--gedempt);
}

/* Sectie D (vergelijkingscontext) heeft geen railblok om zich heen: de
   sectiekop staat wél op de kantlijnas, maar de body begon op de bladrand en
   liep dus onder de kantlijn door — een van de laatste blokken die de belofte
   uit de kop van dit bestand braken ('alles ligt op dezelfde verticale as').
   Een inspringing in plaats van een railblok: er hoort hier geen
   kantlijnitem, alleen de as. (Sectie 0, inlezen, stond hier tot 25/8 naast;
   die is nu de inleesregel in deel I.)

   De selector staat bewust mét zijn sectie ervoor. De reset bovenaan
   ('.fiche p, .fiche ul, ... { margin: 0 }') weegt met zijn klasse plus
   element zwaarder dan één enkele klasse; een kale '.vergelijking-tekst'
   stond hier eerst en deed daardoor niets. */
.sectie-inlezen .opsomming-inlezen,
.sectie-vergelijking .vergelijking-tekst { margin-left: calc(var(--rail) + var(--geul)); }
/* D is één lang lopend blok; daar is de gemeten kolom van --kolom op zijn plaats. */
.vergelijking-tekst { max-width: var(--kolom); }

.fiche-fout { font-family: var(--sans); color: var(--accent); }

/* ---------- scheiding tussen de twee delen ----------
   Alleen zichtbaar wanneer beide delen in één document staan (scherm en
   browserprint). Het render-script schrijft twee losse PDF's; dan komt dit
   element niet voor. */

.deelscheiding {
  display: flex;
  align-items: center;
  gap: 4mm;
  margin: 14mm auto;
  width: 212mm;
  max-width: 100%;
  font-family: var(--sans);
  font-size: 6.8pt;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gedempt);
}
.deelscheiding::before,
.deelscheiding::after {
  content: '';
  flex: 1;
  border-top: 0.5pt solid var(--lijn);
}

/* ---------- scherm: het blad als blad ---------- */

@media screen {
  /* Het blad ligt op een grijze ondergrond en werpt een lichte schaduw: op
     scherm moet meteen duidelijk zijn dat je naar een document kijkt en niet
     naar een webpagina. Een kader van 1px op wit deed dat niet — dat leest als
     een kader. In druk verdwijnt dit alles (zie @media print). */
  .fiche {
    width: 212mm;
    max-width: 100%;
    margin: 0 auto;
    padding: 16mm;
    background: var(--blad);
    border: 1px solid var(--lijn-fijn);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 14px 36px -10px rgba(0, 0, 0, 0.14);
  }
  .fiche + .fiche { margin-top: 8mm; }
}

@media screen and (max-width: 860px) {
  /* Smal scherm: de kantlijn klapt boven de tekst, de leesorde blijft gelijk. */
  .railblok { padding-left: 0; }
  .rail {
    position: static;
    width: auto;
    text-align: left;
    margin-bottom: 1.4mm;
  }
  .fiche { width: 100%; padding: 8mm 6mm; font-size: 10.4pt; }
  .kop-blok .rail { top: auto; }
  .kop-blok .rail,
  .claim-rail,
  .criterium-rail,
  .bevinding-rail,
  .pv-rail {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 3.5mm;
  }
  .kop-blok .rail p,
  .claim-nr,
  .claim-locatie,
  .criterium-nr,
  .pv-nummer,
  .pv-criterium { display: inline-block; margin: 0; }
  .kop-titel { font-size: 19pt; }
  .bevinding-rail { top: auto; }
  .bevinding-tekst, .citaat, .check-tekst { font-size: inherit; }
  .citaat { font-size: 9.4pt; }
  .bijlage-merk { display: inline-block; margin: 0; }
  .kop-wegwijzer, .onbeslisbaar-ko { display: flex; align-items: baseline; gap: 1.6mm; margin-bottom: 1.2mm; }
.check-noot { font-size: 9pt; max-width: none; }
  .deelscheiding { width: 100%; margin: 10mm auto; }
  .checkrij { grid-template-columns: 1fr; row-gap: 1.2mm; }
  .check-stand { text-align: left; }
  .kern-totaal { margin-left: 0; }
  .vergelijking-tekst { max-width: none; }
}

/* ---------- print / PDF ---------- */

@page {
  size: A4;
  margin: 15mm;
}

@media print {
  .fiche {
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
  }
  /* Deel I loopt door zonder harde afbraak: het is er precies twee pagina's
     lang, en elke geforceerde breuk zou daar een halflege pagina van maken.
     In deel II beginnen de formele checks wel op een eigen pagina — dat is
     het blok dat je apart opslaat of naast het dossier legt.
     Staan beide delen in één document (scherm-print), dan begint deel II
     altijd op een verse pagina; de scheiding moet fysiek zijn. */
  .sectie-checks { break-before: page; page-break-before: always; }
  .fiche-bijlage { break-before: page; page-break-before: always; }
  .deelscheiding { display: none; }
  /* De briefing mag een criterium wél over de paginagrens breken — een
     'break-inside: avoid' op het hele blok zou een halve pagina wit maken en
     de tweepaginagrens in gevaar brengen. Wat niet mag breken is de kop van
     het blok van zijn eerste gat. */
  .sectiekop,
  .criterium-kop,
  .checkgroep-kop,
  .criterium-naam,
  .criterium-meta,
  .deellabel { break-after: avoid; page-break-after: avoid; }
  .claim,
  .checkrij,
  .check-kortrij,
  .kern-reeks,
  .patronen > li,
  .opsomming > li,
  .inlees-lijst > li { break-inside: avoid; page-break-inside: avoid; }
  /* De pitchvraag mag wél over de paginagrens breken, en dat is een
     bewuste omkering. Een onbreekbaar blok van ~44 mm springt in zijn
     geheel naar de volgende pagina en laat onderaan evenveel wit staan;
     over vijf vragen was dat het verschil tussen twee en drie pagina's,
     terwijl de totale zethoogte al binnen het budget viel. Wat wél
     bijeen blijft is de vraag zelf plus het begin van haar aanleiding —
     een vraag zonder aanleiding onderaan een pagina is onbruikbaar, een
     aanleiding die doorloopt is dat niet. */
  /* 25/8: die omkering stond hier wel beschreven maar werkte niet. De
     schermregel '.pitchvraag { break-inside: avoid }' hogerop werd in dit
     printblok nergens teruggezet, dus in de PDF sprong elke vraag toch in
     zijn geheel naar de volgende pagina — tot 25 mm wit per grens, en of dat
     wit viel hing af van de toevallige volgorde. Toen de vragen op
     criteriumvolgorde gingen staan, was dat op 05-hol-verteld (nul getoonde
     gaten, niets meer in te leveren) het verschil tussen twee en drie
     pagina's. Nu expliciet: het blok mag breken, de vraagtekst ook (orphans en
     widows 2, zoals elke alinea in dit document); de vraag blijft aan het
     begin van haar aanleiding vastzitten. */
  .pitchvraag { break-inside: auto; page-break-inside: auto; }
  .pv-vraag { break-after: avoid; page-break-after: avoid; }
  .blad-voet { break-inside: avoid; page-break-inside: avoid; }
  a { color: inherit; text-decoration: none; }
}

/* Deel II: patroonnamen als één doorlopende regel (29/9). */
.patroon-namen { font-size: 8.4pt; line-height: 1.45; }

/* Deel II, pre-check (29/9): compacter zetwerk. Dit is een werkdocument dat de
   beoordelaar doorloopt, geen leestekst: kleiner corps, strakkere interlinie,
   minder wit tussen de gaten. De annex behoudt het ruime leeszetwerk. */
.fiche-bijlage:not(.fiche-annex) .deel-gaten .opsomming > li,
.fiche-bijlage:not(.fiche-annex) .sectie-businessmodel .opsomming > li {
  font-size: 8.6pt;
  line-height: 1.38;
  margin-top: 0.8mm;
}
.fiche-bijlage:not(.fiche-annex) .deel { margin-top: 2mm; }
.fiche-bijlage:not(.fiche-annex) .criterium { margin-top: 5mm; }
.fiche-bijlage:not(.fiche-annex) .checkrij .check-tekst p { font-size: 8.2pt; line-height: 1.38; }


/* ================================================================
   V2 (29/9): deel I en II in de huisstijl van de website.
   Public Sans, donkerblauwe balk, blauw accent. Drie niveaus en niet meer:
   sectiekop (12pt), criterium (10,5pt), tekst (9,4pt). Grijs alleen voor
   wat bijzaak is. Geen kantlijn meer: de tekst krijgt de volle breedte.
   ================================================================ */

.fiche.v2 {
  --sys: #0C1C2E;
  --inkt: #14202C;
  --inkt-zacht: #384655;
  --gedempt: #5A6878;
  --lijn: #D3D9E0;
  --lijn-fijn: #E3E7EC;
  --tegel: #F6F7F9;
  --amber: #8A5A00;
  --amber-tint: #FFF6E0;
  font-family: 'Public Sans', 'Helvetica Neue', Arial, sans-serif;
  font-size: 9.4pt;
  line-height: 1.5;
  color: var(--inkt);
}

.v2-band {
  display: flex; justify-content: space-between; align-items: center;
  background: var(--sys); color: #E8EEF4;
  padding: 3mm 5mm; margin-bottom: 6mm;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.v2-merk { font-size: 8.6pt; letter-spacing: 0.02em; color: #9FB1C4; }
.v2-merk strong { color: #FFFFFF; font-weight: 700; margin-right: 1.5mm; }

.v2-chip {
  display: inline-flex; align-items: center; gap: 1.6mm;
  font-size: 7.4pt; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase;
  border: 0.6pt solid var(--lijn); padding: 0.6mm 2mm; white-space: nowrap;
  color: var(--inkt);
}
.v2-chip-donker { border-color: #24405E; color: #E8EEF4; }
.v2-sterkte .teken { width: 2.2mm; height: 2.2mm; border: 0.8pt solid var(--inkt); display: inline-block; }
.v2-patroon { text-transform: none; letter-spacing: 0; font-weight: 500; background: var(--tegel); margin: 0 1.5mm 1.5mm 0; }
.v2-ko { border-color: var(--inkt); }

.v2-titel { margin-bottom: 6mm; }
.v2-eyebrow { font-size: 7.6pt; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent); }
.v2-titel h1 { font-size: 22pt; line-height: 1.15; font-weight: 700; margin-top: 1mm; letter-spacing: -0.01em; }
.v2-meta { font-size: 8.4pt; color: var(--gedempt); margin-top: 1mm; }

.v2-let-op {
  background: var(--amber-tint); border-left: 1mm solid var(--amber);
  padding: 2.5mm 4mm; margin-bottom: 6mm; font-size: 8.8pt;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}

.v2-sectie { margin-top: 7mm; }
.v2-sectie > h2 {
  font-size: 12pt; font-weight: 700; padding-top: 2.5mm;
  border-top: 0.9mm solid var(--accent); margin-bottom: 3mm;
}
.v2-intro { color: var(--inkt-zacht); margin-bottom: 3mm; }
.v2-zacht { color: var(--gedempt); }
.v2-noot { font-size: 8.4pt; color: var(--gedempt); margin-top: 3mm; }
.v2-label { font-size: 7.6pt; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gedempt); margin: 3mm 0 1.5mm; }

.v2-tabel { width: 100%; border-collapse: collapse; }
.v2-tabel th {
  text-align: left; font-size: 7.4pt; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--gedempt); padding: 0 3mm 2mm 0; border-bottom: 0.6pt solid var(--lijn);
}
.v2-tabel td { vertical-align: top; padding: 3mm 3mm 3mm 0; border-bottom: 0.6pt solid var(--lijn-fijn); }
.v2-tabel tr { break-inside: avoid; page-break-inside: avoid; }
.v2-crit { width: 42mm; font-weight: 600; font-size: 9.8pt; }
.v2-ind { width: 44mm; }
.v2-nr { display: inline-block; min-width: 7mm; color: var(--accent); font-weight: 700; font-variant-numeric: tabular-nums; }
.v2-meer { display: block; margin-top: 1mm; font-size: 8.2pt; color: var(--gedempt); }

.v2-kpis { list-style: none; display: flex; gap: 0; border: 0.6pt solid var(--lijn); margin-bottom: 3mm; }
.v2-kpis li { flex: 1; padding: 2.5mm 3mm; border-right: 0.6pt solid var(--lijn-fijn); }
.v2-kpis li:last-child { border-right: 0; }
.v2-kpi-getal { display: block; font-size: 15pt; font-weight: 700; line-height: 1.1; font-variant-numeric: tabular-nums; color: var(--gedempt); }
.v2-kpi-nadruk .v2-kpi-getal { color: var(--inkt); }
.v2-kpi-label { font-size: 7.6pt; color: var(--gedempt); }

.v2-lijst { list-style: none; }
.v2-lijst > li { position: relative; padding-left: 4.5mm; margin-top: 1.6mm; break-inside: avoid; page-break-inside: avoid; }
.v2-lijst > li::before { content: ''; position: absolute; left: 0.5mm; top: 2.2mm; width: 1.6mm; height: 0.6pt; background: var(--accent); }
.v2-checkpunten > li { margin-top: 2.5mm; }
.v2-bron { font-size: 8pt; color: var(--gedempt); }

.v2-pitch { list-style: none; }
.v2-pitch > li { display: flex; gap: 4mm; padding: 3mm 0; border-bottom: 0.6pt solid var(--lijn-fijn); break-inside: avoid; page-break-inside: avoid; }
.v2-pv-nr { flex: 0 0 7mm; font-size: 13pt; font-weight: 700; color: var(--accent); line-height: 1.2; }
.v2-pv-crit { font-size: 7.4pt; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gedempt); }
.v2-pv-vraag { font-size: 9.8pt; margin-top: 0.5mm; }

.v2-crit-blok { margin-top: 6mm; break-inside: auto; }
.v2-crit-kop { display: flex; justify-content: space-between; align-items: baseline; gap: 4mm; border-bottom: 0.6pt solid var(--lijn); padding-bottom: 1.5mm; break-after: avoid; page-break-after: avoid; }
.v2-crit-kop h3 { font-size: 10.8pt; font-weight: 700; }
.v2-patronen { line-height: 1; }

.v2-colofon { margin-top: 8mm; padding-top: 2.5mm; border-top: 0.6pt solid var(--lijn); font-size: 7.6pt; color: var(--gedempt); }
.v2-colofon p + p { margin-top: 1mm; }

@media print {
  .fiche.v2 .v2-sectie > h2 { break-after: avoid; page-break-after: avoid; }
}

/* ---------- voorblad (29/9) ---------- */
.v2-voorblad { break-after: page; page-break-after: always; }
.v2-voorblad-kern { padding: 16mm 0 10mm; }
.v2-h { width: 18mm; height: 18mm; display: block; margin-bottom: 8mm; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.v2-voorblad-kern h1 { font-size: 30pt; line-height: 1.1; font-weight: 700; margin-top: 2mm; letter-spacing: -0.015em; }
.v2-voorblad-kern .v2-meta { font-size: 9.5pt; margin-top: 2mm; }
.v2-indeling { list-style: none; }
.v2-indeling > li { display: flex; gap: 5mm; padding: 4mm 0; border-bottom: 0.6pt solid var(--lijn-fijn); }
.v2-deel-nr { flex: 0 0 9mm; font-size: 14pt; font-weight: 700; color: var(--accent); line-height: 1.2; }
.v2-deel-titel { font-size: 11pt; font-weight: 700; display: flex; justify-content: space-between; gap: 4mm; }
.v2-omvang { font-weight: 500; color: var(--gedempt); font-size: 9pt; white-space: nowrap; }
.v2-deel-inhoud { color: var(--inkt-zacht); margin-top: 0.8mm; }
.v2-voorblad-voet { margin-top: 12mm; font-size: 7.8pt; color: var(--gedempt); }

/* Annex: standaard dicht, dus ook niet in de print. */
.annex-omhulsel[hidden] { display: none !important; }

/* ---------- downloadtegels en afdrukmodi (29/9) ---------- */
.download-tegels { display: flex; gap: 0.75rem; align-items: stretch; flex-wrap: wrap; }
.download-tegel {
  display: flex; align-items: center; gap: 0.7rem; text-align: left; cursor: pointer;
  font: inherit; padding: 0.65rem 1rem 0.65rem 0.8rem; min-width: 14rem;
  background: #fff; color: #14202C; border: 1px solid #D3D9E0;
  transition: border-color 0.12s, background 0.12s, transform 0.12s;
}
.download-tegel:hover { border-color: #1B4F8A; transform: translateY(-1px); }
.download-tegel:active { transform: none; }
.download-tegel:focus-visible { outline: 2px solid #1B4F8A; outline-offset: 2px; }
.download-tegel svg { width: 1.6rem; height: 1.6rem; flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.download-tegel strong { display: block; font-size: 0.95rem; font-weight: 700; }
.download-tegel small { display: block; font-size: 0.78rem; color: #5A6878; margin-top: 0.1rem; }
.download-tegel.is-hoofd { background: #1B4F8A; border-color: #1B4F8A; color: #fff; }
.download-tegel.is-hoofd small { color: #CFE0F2; }
.download-tegel.is-hoofd:hover { background: #123A66; border-color: #123A66; }
.annex-toggle { font: inherit; font-size: 0.82rem; color: #1B4F8A; background: none; border: 0; padding: 0 0.3rem; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; align-self: center; }
.print-tip { font-size: 0.8rem; color: #5A6878; margin: -0.4rem 0 1rem; }

/* Skelet i.p.v. "wordt geladen": de pagina voelt meteen klaar. */
.fiche-skelet { display: grid; gap: 0.9rem; padding: 2rem 0; max-width: 46rem; }
.fiche-skelet span { display: block; height: 1rem; background: linear-gradient(90deg, #EEF1F4 25%, #F6F7F9 50%, #EEF1F4 75%); background-size: 200% 100%; animation: skelet 1.1s linear infinite; }
.fiche-skelet span:first-child { height: 2.2rem; width: 55%; }
.fiche-skelet span:nth-child(3) { width: 85%; }
@keyframes skelet { to { background-position: -200% 0; } }

@media print {
  /* Annex-download: alleen de annex. */
  body[data-druk="annex"] .fiche:not(.fiche-annex),
  body[data-druk="annex"] .deelscheiding { display: none !important; }
  body[data-druk="annex"] .annex-omhulsel { display: block !important; }
  /* Rapport-download: nooit de annex, ook niet als die op scherm open staat. */
  body[data-druk="rapport"] .annex-omhulsel { display: none !important; }
}

/* ================================================================
   RAPPORT (29/9, na externe review). Eén typografische schaal:
   H1 28pt · sectie 17pt · tussenkop 12,5pt · blokkop 11pt · tekst 10,5pt/1,45
   · citaat 9,5pt · metadata min. 8,5pt. Drie gewichten: 400, 600, 700.
   Kleuren uit de huisstijl (shell.css). Statuslabels zijn tekst in een
   omlijnd label: leesbaar zonder kleur, geen vierkantjes.
   ================================================================ */

.fiche.r {
  --r-donker: #0C1C2E; --r-accent: #1B4F8A; --r-inkt: #14202C; --r-zacht: #5A6878;
  --r-lijn: #E3E7EC; --r-lijn-sterk: #D3D9E0; --r-vlak: #F6F7F9; --r-accent-vlak: #EAF1F9;
  --r-waarschuwing: #FFF6E0; --r-waarschuwing-inkt: #8A5A00;
  font-family: 'Public Sans', 'Helvetica Neue', Arial, sans-serif;
  font-size: 10.5pt; line-height: 1.45; color: var(--r-inkt); background: #fff;
}
.fiche.r p + p { margin-top: 1.5mm; }

.r-band {
  display: flex; justify-content: space-between; align-items: center; gap: 4mm;
  background: var(--r-donker); color: #E8EEF4; padding: 3mm 5mm; margin-bottom: 7mm;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.r-merk { display: inline-flex; align-items: center; gap: 2mm; font-size: 9pt; color: #9FB1C4; }
.r-merk strong { color: #fff; font-weight: 700; }
.r-h { width: 6mm; height: 6mm; flex: none; }
.r-chip { font-size: 8.5pt; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; border: 0.6pt solid #24405E; padding: 0.6mm 2mm; white-space: nowrap; }
.r-deeltitel { font-size: 17pt; font-weight: 700; color: var(--r-accent); margin: 0 0 5mm; }

.r-opening { margin-bottom: 6mm; }
.r-eyebrow { font-size: 8.5pt; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--r-accent); }
.r-h1 { font-size: 28pt; line-height: 1.12; font-weight: 700; margin: 1.5mm 0 1mm; letter-spacing: -0.01em; }
.r-meta { font-size: 9pt; color: var(--r-zacht); }
.r-vlak { background: var(--r-accent-vlak); padding: 3.5mm 4.5mm; margin-top: 5mm; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.r-bespreek { margin-top: 4mm; }
.r-bespreek ol { margin: 1mm 0 0 5mm; }
.r-bespreek li + li { margin-top: 1mm; }
.r-klein-label { display: block; font-size: 8.5pt; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--r-zacht); margin-bottom: 0.8mm; }
.r-melding { background: var(--r-waarschuwing); border-left: 1mm solid var(--r-waarschuwing-inkt); padding: 2.5mm 4mm; margin-top: 4mm; font-size: 9.5pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }

.r-sectie { margin-top: 7mm; }
.r-h2 { font-size: 17pt; line-height: 1.2; font-weight: 700; padding-top: 2.5mm; border-top: 0.8mm solid var(--r-accent); margin-bottom: 3.5mm; }
.r-h3 { font-size: 12.5pt; font-weight: 700; }
.r-h4 { font-size: 11pt; font-weight: 600; color: var(--r-accent); margin-bottom: 1mm; }
.r-nr { display: inline-block; min-width: 9mm; color: var(--r-accent); font-weight: 700; font-variant-numeric: tabular-nums; }
.r-intro { color: var(--r-zacht); margin-bottom: 3mm; }
.r-zacht { color: var(--r-zacht); }
.r-noot { font-size: 9pt; color: var(--r-zacht); margin-top: 2.5mm; }
.r-id { font-size: 8.5pt; font-weight: 600; color: var(--r-zacht); letter-spacing: 0.02em; margin: 0 1.5mm; white-space: nowrap; }
.r-pag:not(:empty)::before { content: 'p. '; }
.r-bijref .r-pag:not(:empty)::before { content: ' p. '; }
.r-bijref .r-pag.pag-elders::after { content: ' van het volledige rapport'; font-size: inherit; color: inherit; }
.r-pag { font-size: 8.5pt; color: var(--r-zacht); white-space: nowrap; }

.r-label { display: inline-block; font-size: 8.5pt; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; border: 0.8pt solid var(--r-inkt); padding: 0.4mm 1.8mm; margin-top: 1mm; white-space: nowrap; line-height: 1.35; }
.r-label-rood, .r-label-onvoldoende_onderbouwd { border-width: 1.4pt; }
.r-label-check { border-color: var(--r-lijn-sterk); color: var(--r-zacht); margin: 0 0 0 auto; }

.r-tabel { width: 100%; border-collapse: collapse; font-size: 9.5pt; line-height: 1.4; }
.r-tabel thead { display: table-header-group; }
.r-tabel th { text-align: left; font-size: 8.5pt; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--r-zacht); padding: 0 3mm 2mm 0; border-bottom: 0.8pt solid var(--r-lijn-sterk); }
.r-tabel td { vertical-align: top; padding: 2.5mm 3mm 2.5mm 0; border-bottom: 0.6pt solid var(--r-lijn); }
.r-tabel tr { break-inside: avoid; page-break-inside: avoid; }
.r-overzicht .r-td-crit { width: 36mm; font-weight: 600; font-size: 10pt; }
.r-overzicht .r-td-ref { width: 16mm; white-space: nowrap; }

.r-kpis { list-style: none; display: flex; border: 0.6pt solid var(--r-lijn-sterk); margin-bottom: 3mm; }
.r-kpis li { flex: 1; padding: 2.5mm 3mm; font-size: 8.5pt; color: var(--r-zacht); border-right: 0.6pt solid var(--r-lijn); }
.r-kpis li:last-child { border-right: 0; }
.r-kpis span { display: block; font-size: 15pt; font-weight: 700; line-height: 1.1; color: var(--r-zacht); font-variant-numeric: tabular-nums; }
.r-kpis .is-nadruk span { color: var(--r-inkt); }

.r-lijst { list-style: none; }
.r-lijst > li { position: relative; padding-left: 4.5mm; margin-top: 1.4mm; break-inside: avoid; page-break-inside: avoid; }
.r-lijst > li::before { content: ''; position: absolute; left: 0.3mm; top: 2.6mm; width: 1.8mm; height: 0.7pt; background: var(--r-accent); }

.r-pitch { list-style: none; counter-reset: pv; }
.r-pitch > li { counter-increment: pv; position: relative; padding: 2.5mm 0 2.5mm 9mm; border-bottom: 0.6pt solid var(--r-lijn); break-inside: avoid; page-break-inside: avoid; }
.r-pitch > li::before { content: counter(pv); position: absolute; left: 0; top: 2.3mm; font-size: 13pt; font-weight: 700; color: var(--r-accent); }
.r-pv { font-size: 10.5pt; }
.r-pv-vervolg { font-size: 9.5pt; color: var(--r-zacht); }

.r-toc { list-style: none; columns: 2; column-gap: 8mm; font-size: 9.5pt; }
.r-toc li { display: flex; justify-content: space-between; gap: 2mm; padding: 0.6mm 0; border-bottom: 0.5pt dotted var(--r-lijn-sterk); break-inside: avoid; }
.r-toc a { color: inherit; text-decoration: none; }
.r-toc-nr { display: inline-block; min-width: 8mm; color: var(--r-accent); font-weight: 600; }
.r-colofon { margin-top: 6mm; padding-top: 2.5mm; border-top: 0.6pt solid var(--r-lijn); font-size: 8.5pt; color: var(--r-zacht); }

.r-crit { margin-top: 7mm; }
.r-crit-kop { display: flex; justify-content: space-between; align-items: baseline; gap: 4mm; border-bottom: 0.8pt solid var(--r-lijn-sterk); padding-bottom: 1.5mm; margin-bottom: 3mm; break-after: avoid; page-break-after: avoid; }
.r-kernbevinding { background: var(--r-vlak); padding: 3mm 4mm; margin-bottom: 3mm; -webkit-print-color-adjust: exact; print-color-adjust: exact; break-inside: avoid; }
.r-blok { margin-top: 3.5mm; }
.r-h4 + * { break-before: avoid; }
.r-signalen { list-style: none; }
.r-signalen li { padding: 2mm 0; border-bottom: 0.5pt solid var(--r-lijn); break-inside: avoid; page-break-inside: avoid; }
.r-refs { font-size: 9pt; color: var(--r-zacht); margin-top: 3mm; }

.r-data { display: grid; grid-template-columns: 38mm 1fr; gap: 1.2mm 4mm; font-size: 9.5pt; }
.r-data dt { font-weight: 600; color: var(--r-zacht); }

.r-bron-groep { margin-top: 5mm; }
.r-bronnen { list-style: none; margin-top: 2mm; }
.r-bron { display: grid; grid-template-columns: 22mm 1fr; gap: 4mm; padding: 3mm 0; border-bottom: 0.5pt solid var(--r-lijn); break-inside: avoid; page-break-inside: avoid; }
.r-bron-id { font-size: 9pt; font-weight: 700; color: var(--r-accent); font-variant-numeric: tabular-nums; }
.r-bron-id span { display: block; font-weight: 400; font-size: 8.5pt; color: var(--r-zacht); }
.r-bron-inhoud > * + * { margin-top: 1.5mm; }
.r-citaat { font-size: 9.5pt; line-height: 1.45; background: var(--r-vlak); border-left: 0.8mm solid var(--r-lijn-sterk); padding: 2mm 3.5mm; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.r-bron-loc { font-size: 8.5pt; color: var(--r-zacht); }
.r-bron-soort { font-weight: 600; }

.r-check-groep { margin-top: 5mm; }
.r-checks { list-style: none; }
.r-check { padding: 3mm 0; border-bottom: 0.5pt solid var(--r-lijn); break-inside: avoid; page-break-inside: avoid; }
.r-check-kop { display: flex; align-items: baseline; gap: 2mm; margin-bottom: 1.5mm; }
.r-check-kop .r-id { margin: 0; min-width: 13mm; }

.r-h2, .r-h3, .r-h4 { break-after: avoid; page-break-after: avoid; }

@media print {
  @page { size: A4; margin: 18mm 17mm 18mm 17mm; }
  .fiche.r { max-width: none; margin: 0; padding: 0; border: 0; box-shadow: none; }
  .r-deel { break-before: page; page-break-before: always; }
  .r-pagina-start { break-before: page; page-break-before: always; }
}

/* Kernbriefing compact: twee pagina's (29/9). */
.fiche-briefing .r-h1 { font-size: 26pt; }
.fiche-briefing .r-vlak { margin-top: 4mm; padding: 3mm 4mm; font-size: 10pt; }
.fiche-briefing .r-bespreek { font-size: 10pt; margin-top: 3mm; }
.fiche-briefing .r-opening { margin-bottom: 4mm; }
.fiche-briefing .r-sectie { margin-top: 5mm; }
.r-overzicht { font-size: 9.8pt; line-height: 1.38; }
.r-overzicht td { padding: 2mm 2.5mm 2mm 0; text-align: left; }
.r-overzicht .r-td-crit { width: 30mm; font-size: 9.8pt; }
/* Nummer boven de naam: nooit meer een gat tussen nummer en naam (Kloze 29/9). */
.r-overzicht .r-td-crit .r-nr { display: block; min-width: 0; }
/* Het label ondersteunt, het draagt de prioriteit niet (Astra 29/9). */
.r-overzicht .r-label { font-size: 7pt; letter-spacing: 0.04em; border-width: 0.5pt; border-color: var(--r-lijn-sterk); padding: 0.2mm 1.2mm; }
.r-peildatum { margin-top: 0.8mm; }
.r-kpi-kop { margin: 0 0 1.5mm; }
.r-overzicht .r-td-ref { width: 12mm; }
.r-inhoud { margin: 0 0 6mm; }
.r-bespreek ol { list-style: decimal; padding-left: 5mm; margin-left: 0; }
.fiche-briefing .r-kpis li { padding: 1.8mm 2.5mm; }
.fiche-briefing .r-kpis span { font-size: 13pt; }
.fiche-briefing .r-lijst { font-size: 9.5pt; }
.fiche-briefing .r-pitch > li { padding: 1.8mm 0 1.8mm 8mm; }
.fiche-briefing .r-pv { font-size: 10pt; line-height: 1.4; }
.fiche-briefing .r-pv-vervolg { font-size: 9pt; }
.fiche-briefing .r-h2 { font-size: 15pt; margin-bottom: 2.5mm; }
.fiche-briefing .r-colofon { margin-top: 3mm; padding-top: 1.5mm; font-size: 8pt; break-before: avoid; }
.fiche-briefing .r-pitch > li { padding-top: 1.5mm; padding-bottom: 1.5mm; }

/* 29/9 (Astra): indicatie, leeskwaliteit en vervolgactie als aparte signalen. */
.r-label-onbeslisbaar { border-style: dashed; border-color: var(--r-lijn-sterk); color: var(--r-zacht); }
.r-lees { display: block; margin-top: 1mm; font-size: 8.5pt; font-weight: 500; color: var(--r-waarschuwing-inkt); }
.r-lees::before { content: "\25CC\00a0"; }
.r-actie { display: inline-block; font-size: 8pt; font-weight: 600; letter-spacing: 0.03em; color: var(--r-zacht); background: var(--r-vlak); border: 0.5pt solid var(--r-lijn-sterk); border-radius: 1mm; padding: 0 1.4mm; line-height: 1.5; white-space: nowrap; vertical-align: 0.1em; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.r-toeschr { color: var(--r-zacht); font-weight: 600; }
.r-overzicht .r-td-crit a { color: inherit; text-decoration: none; }
.r-bestanden { list-style: none; margin: 0; padding: 0; }
.r-bestanden li { margin: 0 0 0.6mm; }
.r-overzicht .r-pv-vervolg { display: block; margin-top: 1mm; color: var(--r-zacht); font-size: 8.5pt; }
.fiche-briefing #r-formeel.r-pagina-start { break-before: auto; page-break-before: auto; }
.fiche-briefing .r-overzicht tr, .fiche-briefing .r-pitch > li, .fiche-briefing .r-lijst > li { break-inside: avoid; }

/* Telefoon: geen horizontale scroll. De band breekt, de overzichtstabel wordt
   per criterium een blok met kopjes. */
@media screen and (max-width: 640px) {
  .r-band { flex-wrap: wrap; gap: 2mm; }
  .r-chip { white-space: normal; }
  .r-overzicht, .r-overzicht tbody, .r-overzicht tr, .r-overzicht td { display: block; width: auto; }
  .r-overzicht thead { display: none; }
  .r-overzicht tr { padding: 3mm 0; border-bottom: 0.5pt solid var(--r-lijn); }
  .r-overzicht td { padding: 1mm 0; }
  .r-overzicht .r-td-crit { width: auto; }
  .r-overzicht td:nth-child(2)::before { content: "Aanwezig in het dossier"; }
  .r-overzicht td:nth-child(3)::before { content: "Nog onduidelijk"; }
  .r-overzicht td:nth-child(4)::before { content: "Gerichte vraag"; }
  .r-overzicht td:not(.r-td-crit)::before { display: block; font-size: 8pt; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--r-zacht); }
  .r-tabel { display: block; overflow-x: auto; }
  .r-actie { white-space: normal; }
}

/* Review Astra 29/9: kop + statusbalk van de formele controles, en betekenis
   + verificatievraag van een criterium, nooit over een paginagrens gescheiden. */
.r-samen { break-inside: avoid; page-break-inside: avoid; }
.r-overzicht { line-height: 1.3; }
.r-overzicht .r-td-crit { width: 24mm; }
.r-overzicht td { padding: 1.6mm 2.2mm 1.6mm 0; }
