/* 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;
  --accent: #1c5d48;
  --accent-tint: #e7efe9;

  --serif: 'Source Serif 4', 'Source Serif Pro', Georgia, 'Times New Roman', serif;
  --sans: 'IBM Plex Sans', 'Segoe UI', '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-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; }

/* ---------- 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) ---------- */

.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; }
.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;
  font-weight: 600;
  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); }
.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; }

/* ---------- 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 0 (inlezen) en sectie D (vergelijkingscontext) hebben geen
   railblok om zich heen: hun sectiekop staat wél op de kantlijnas, maar hun
   body begon op de bladrand en liep dus onder de kantlijn door. Dat waren,
   naast de verificatieregel, de laatste twee 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.

   Beide selectors staan bewust mét hun 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. De opsomming in sectie 0 bestaat uit losse regels en volgt de
   volle kolombreedte, net als elke andere opsomming in het document. */
.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, .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 { 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. */
  .pv-vraag { break-inside: avoid; page-break-inside: avoid; break-after: avoid; page-break-after: avoid; }
  .blad-voet { break-inside: avoid; page-break-inside: avoid; }
  a { color: inherit; text-decoration: none; }
}
