/* Miżien site pages (claim pages, lists). Same palette and type as the map homepage.
   Verdict colours keep the map's hues; text colours are chosen for WCAG AA contrast.
   The colour tokens (dark and light) are in theme.css, which every page loads first. */
:root {
  --serif: "Liberation Serif", Georgia, "Times New Roman", serif;
  --sans: "Liberation Sans", Arial, Helvetica, sans-serif;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 16px/1.6 var(--sans); }
a { color: var(--link); }
a:focus-visible, button:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 3px; }
.small { font-size: 13.5px; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.skip { position: absolute; left: 12px; top: -60px; z-index: 10; padding: 8px 14px; border-radius: 8px;
  background: var(--amber); color: #13301f; font-weight: 700; text-decoration: none; }
.skip:focus { top: 12px; }

/* ---------------------------------------------------------------- site header and footer */
.site-head { max-width: 1100px; margin: 0 auto; padding: 18px 20px 10px; display: flex; flex-wrap: wrap;
  align-items: center; justify-content: space-between; gap: 10px 24px; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none;
  font: 700 26px/1 var(--serif); }
.brand .brand-mark { width: 38px; height: 38px; flex: none; }
.head-end { display: flex; align-items: center; gap: 8px; min-width: 0; }
@media (min-width: 701px) { .site-head .tabs { justify-content: flex-end; } }
@media (max-width: 700px) { .head-end { width: 100%; } .head-end .tabs { flex: 1 1 auto; } }
main { max-width: 1100px; margin: 0 auto; padding: 0 20px 56px; }
.site-foot { max-width: 1100px; margin: 0 auto; padding: 22px 20px 40px; color: var(--muted); font-size: 13.5px;
  border-top: 1px solid var(--line); }
.site-foot p { margin: 0 0 6px; }

.crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 14px; padding: 0;
  font-size: 13.5px; color: var(--muted); }
.crumbs li + li::before { content: "›"; margin-right: 6px; color: var(--sage); }
.crumbs a { color: var(--muted); }

h1, h2 { font-family: var(--serif); line-height: 1.2; }
.page h1 { font-size: clamp(28px, 5vw, 38px); margin: 6px 0 10px; }

/* ---------------------------------------------------------------- verdict tokens: in labels.css */

/* ---------------------------------------------------------------- claim page */
.check { background: var(--paper); color: var(--paper-ink); border-radius: 16px; overflow: hidden;
  box-shadow: var(--card-shadow); }
.check a { color: var(--paper-link); }
.check-head { background: var(--v); color: var(--v-ink); padding: 22px 26px 20px; }
.check-head .kicker { margin: 0 0 6px; font: 700 12px/1.3 var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.check-head h1 { margin: 0; font-size: clamp(26px, 4.6vw, 36px); }
.verdictline { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; }
.verdictline .verdict { font: 700 15px/1.3 var(--sans); letter-spacing: .06em; text-transform: uppercase;
  padding: 5px 13px; border-radius: 999px; border: 2px solid currentColor; }
.verdictline .pill { font: 700 13px/1.3 var(--sans); padding: 6px 12px; border-radius: 999px;
  background: transparent; border: 1px solid currentColor; }
.check-body { padding: 8px 26px 24px; max-width: 78ch; }
.check-body h2 { font-size: 22px; margin: 26px 0 8px; padding-top: 16px; border-top: 1px solid var(--paper-line); color: #14452f; }
.check-body section:first-of-type h2, .notice + section h2 { border-top: 0; padding-top: 0; }
.check-body .small { color: var(--paper-muted); }
.check blockquote { margin: 10px 0 12px; padding: 4px 0 4px 16px; border-left: 4px solid var(--v);
  font: italic 20px/1.45 var(--serif); }
.check blockquote p { margin: 0; }
.notice { margin: 18px 0 6px; padding: 12px 16px; border-radius: 10px; background: #fbf0dc; border-left: 4px solid var(--amber); }
.notice p { margin: 0; }
.def { display: block; margin-top: 6px; }
.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px 20px; margin: 12px 0 0; }
.facts dt { font: 700 11.5px/1.3 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--paper-muted); }
.facts dd { margin: 2px 0 0; }
.sources { padding-left: 1.4em; }
.sources li { margin: 0 0 10px; }
.files, .linked { padding-left: 1.2em; }
.files li, .linked li { margin: 0 0 6px; }
.check-meta { margin-top: 26px; padding-top: 14px; border-top: 1px solid var(--paper-line); }

/* ---------------------------------------------------------------- reading pages (methodology, about) */
.prose-page { background: var(--paper); color: var(--paper-ink); border-radius: 16px; padding: 26px 30px 30px;
  box-shadow: var(--card-shadow); }
.prose-page > * { max-width: 78ch; }
.prose-page a { color: var(--paper-link); }
.prose-page h1 { color: #14452f; margin: 4px 0 10px; font-size: clamp(28px, 5vw, 40px); }
.prose-page h2 { font-size: 23px; color: #14452f; margin: 30px 0 10px; padding-top: 18px; border-top: 1px solid var(--paper-line); }
.prose-page h3 { font: 700 17px/1.3 var(--sans); color: #14452f; margin: 18px 0 6px; }
.prose-page .small { color: var(--paper-muted); }
.prose-page li { margin-bottom: 6px; }
.page-head .kicker { margin: 0; font: 700 12px/1.3 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--paper-muted); }
.lead { font: 19px/1.55 var(--serif); }
.st-draft { --v: #e3a72f; --v-ink: #13301f; }
.st-published { --v: #7fa88b; --v-ink: #13301f; }
.st-candidate { --v: #5d7468; --v-ink: #ffffff; }

/* the nine steps: a numbered flow with a connecting line */
.flow { list-style: none; margin: 14px 0 0; padding: 0; max-width: none; display: grid; gap: 0; counter-reset: none; }
.flow-step { position: relative; display: grid; grid-template-columns: 52px 1fr; gap: 0 16px; padding: 0 0 18px; margin: 0; }
.flow-step:not(:last-child)::before { content: ""; position: absolute; left: 25px; top: 52px; bottom: 0; width: 2px;
  background: linear-gradient(var(--sage), #d9e2db); }
.flow-icon { width: 52px; height: 52px; border-radius: 50%; background: #14452f; display: grid; place-items: center;
  box-shadow: 0 0 0 4px #e6efe8; }
.flow-icon svg { width: 26px; height: 26px; fill: none; stroke: #f6f4ee; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.flow-step:nth-child(7) .flow-icon { background: #e3a72f; }
.flow-step:nth-child(7) .flow-icon svg { stroke: #13301f; }
.flow-text h3 { margin: 4px 0 4px; font-size: 18px; }
.flow-n { display: inline-block; min-width: 1.6em; color: var(--paper-muted); font-weight: 700; }
.flow-text p { margin: 0 0 4px; }
.flow-open { font-size: 14px; color: var(--paper-muted); }
.flow-open span { font-weight: 700; color: #14452f; }
@media (min-width: 900px) {
  .flow { grid-template-columns: repeat(3, 1fr); gap: 18px; }
  .flow-step { grid-template-columns: 1fr; padding: 16px; background: #fff; border: 1px solid var(--paper-line); border-radius: 12px; }
  .flow-step::before { display: none; }
  .flow-icon { margin-bottom: 10px; }
}

/* source ladder: higher tiers weigh more */
.ladder { list-style: none; padding: 0; margin: 12px 0 0; display: grid; gap: 8px; }
.tier { display: flex; align-items: flex-start; gap: 12px; padding: 10px 14px; border-radius: 10px; background: #e6efe8;
  border-left: 6px solid #14452f; }
.tier-2 { margin-left: 3%; border-left-color: #2e7d4f; }
.tier-3 { margin-left: 6%; border-left-color: var(--sage); }
.tier-4 { margin-left: 9%; background: transparent; border: 2px dashed #b9c6bd; border-left-width: 6px; }
.tier-n { flex: none; width: 28px; height: 28px; border-radius: 50%; background: #14452f; color: #fff; display: grid; place-items: center; font-weight: 700; }

/* evidence grades A-D */
.grades { list-style: none; padding: 0; margin: 12px 0 8px; display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.grade-card { display: flex; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 10px; background: #fff; border: 1px solid var(--paper-line); }
.grade-letter { flex: none; width: 40px; height: 40px; border-radius: 8px; display: grid; place-items: center; font: 700 22px var(--serif); color: #fff; }
.gc-a .grade-letter { background: #14452f; } .gc-b .grade-letter { background: #2e7d4f; }
.gc-c .grade-letter { background: #56636a; } .gc-d .grade-letter { background: #8a6d3b; }

/* verdict spectrum */
.spectrum { list-style: none; padding: 0; margin: 14px 0; display: grid; gap: 8px; max-width: none; }
.spectrum li { display: grid; grid-template-columns: 170px 1fr; gap: 6px 14px; align-items: start; padding: 12px 14px;
  border-radius: 12px; background: #fff; border: 1px solid var(--paper-line); border-left: 6px solid var(--v); }
.spectrum .badge { justify-self: start; font-size: 13px; }
@media (max-width: 640px) { .spectrum li { grid-template-columns: 1fr; } }
.rules li { margin-bottom: 8px; }

/* confidence */
.confidence { list-style: none; padding: 0; }
.confidence li { display: flex; gap: 10px; align-items: center; }
.pips { display: inline-flex; gap: 3px; }
.pips i { width: 10px; height: 10px; border-radius: 50%; border: 2px solid #14452f; }
.pips i.on { background: #14452f; }

/* illustrative example */
.example { margin-top: 30px; padding: 18px 20px; border-radius: 14px; background: #fff; border: 2px dashed #b9c6bd; max-width: 78ch; }
.example h2 { border-top: 0; padding-top: 0; margin-top: 0; }
.example-note { color: #8a3a12; }
.outcomes { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin: 12px 0; }
.outcome { padding: 12px; border-radius: 10px; border-left: 6px solid var(--v); background: #f6f4ee; }
.outcome p { margin: 6px 0 0; }
.outcome .badge { margin: 0; }
.stages div { display: grid; grid-template-columns: 150px 1fr; gap: 12px; margin-bottom: 12px; }
@media (max-width: 640px) { .prose-page { padding: 18px 18px 22px; border-radius: 12px; } .stages div { grid-template-columns: 1fr; gap: 4px; } }

/* ---------------------------------------------------------------- full report on the claim page
   (HTML made by tools/report_html.py from the same content as the PDF; palette as in tools/mizien_report.py) */
.check-body.has-report { max-width: none; }
.has-report > section > p, .has-report > section > ol, .has-report > section > ul, .has-report .notice { max-width: 80ch; }
.report { font-size: 16px; }
.report p, .report li { max-width: 80ch; }
.report-cover { background: #14452f; color: #f6f4ee; border-radius: 14px; padding: 22px 24px; margin: 8px 0 22px; }
.check-body .report-cover .kicker { margin: 0; color: #bfd6c5; font: 700 12px/1.3 var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.check-body .report-cover .report-title { color: #fff; font: 700 clamp(26px, 4vw, 34px)/1.15 var(--serif); margin: 8px 0 6px; padding: 0; border: 0; }
.report-subtitle { color: #cfe2d4; font: italic 17px/1.45 var(--serif); margin: 0 0 14px; }
.report-quote { background: var(--paper); color: #14452f; border-left: 6px solid var(--amber); border-radius: 10px; padding: 14px 18px; margin: 0 0 14px; }
.report-quote p { margin: 0; font: italic 700 19px/1.4 var(--serif); }
.check-body .report-cover .quote-source { margin: -6px 0 14px; font: 13.5px/1.45 var(--sans); color: #e6efe8; }
.report-verdict { margin: 0 0 6px; } .report-verdict em { color: #cfe2d4; margin-left: 6px; }
.check-body .report-cover .small { color: #bfd6c5; margin: 0; }
.report h2 { display: flex; align-items: center; gap: 10px; }
.sec-n { flex: none; display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #14452f; color: #fff; font: 700 15px var(--sans); }
.report-toc .sec-n { width: 22px; height: 22px; font-size: 12px; }
.report h3 { font: 700 17px/1.3 var(--sans); color: #14452f; margin: 18px 0 6px; }
.report .lead { font: 18px/1.55 var(--serif); color: #14452f; }
.report .tag { margin: 0 0 4px; font: 700 11.5px/1.3 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: #14452f; }
.report .caption { font: italic 13.5px/1.45 var(--sans); color: var(--paper-muted); margin-top: 4px; }
.report .small { font-size: 13.5px; }
.key-points { list-style: none; counter-reset: kp; padding: 14px 18px; margin: 14px 0; background: #e6efe8; border-left: 4px solid #14452f; border-radius: 8px; }
.key-points li { counter-increment: kp; position: relative; padding-left: 40px; margin: 10px 0; }
.key-points li::before { content: counter(kp); position: absolute; left: 0; top: 1px; width: 26px; height: 26px; border-radius: 7px; background: #14452f; color: #fff; display: grid; place-items: center; font: 700 14px var(--sans); }
.callout { padding: 12px 16px; margin: 14px 0; border-left: 4px solid #14452f; border-radius: 8px; background: #fff; }
.callout > :first-child { margin-top: 0; } .callout > :last-child { margin-bottom: 0; }
.callout .key-points { margin: 0; padding: 0; border: 0; background: none; }
.bg-pale { background: #e6efe8; } .bg-amberpale { background: #fbf1d9; } .bg-redpale { background: #f7e4e0; } .bg-orangepale { background: #fbe9da; }
.bg-bluepale { background: #e3edf3; } .bg-greypale { background: #eef0f1; } .bg-cream { background: #f6f4ee; }
.bar-green { border-left-color: #14452f; } .bar-amber { border-left-color: #e3a72f; } .bar-red { border-left-color: #b5483a; } .bar-blue { border-left-color: #3c6e8f; }
.bar-slate { border-left-color: #2b3a42; } .bar-orange { border-left-color: #d9772b; } .bar-greenc { border-left-color: #2e7d4f; }
.chip { display: inline-block; padding: 2px 10px; border-radius: 999px; font: 700 11.5px/1.5 var(--sans); letter-spacing: .03em; background: #5f6b71; color: #fff; }
.chip.bg-greenc { background: #2e7d4f; color: #fff; } .chip.bg-lime { background: #8db36b; color: #13301f; } .chip.bg-orange { background: #d9772b; color: #13301f; }
.chip.bg-brick, .chip.bg-red { background: #b5483a; color: #fff; } .chip.bg-maroon { background: #8e2f25; color: #fff; } .chip.bg-amber { background: #e3a72f; color: #13301f; }
.chip.bg-grey { background: #8a9399; color: #13301f; } .chip.bg-green { background: #14452f; color: #fff; } .chip.bg-blue { background: #3c6e8f; color: #fff; } .chip.bg-slate { background: #2b3a42; color: #fff; }
.tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 6px; margin: 14px 0; }
.tile { background: #fff; border: 1px solid var(--paper-line); border-radius: 8px; padding: 10px 12px; }
.tile-big { display: block; font: 700 26px/1.15 var(--sans); color: #14452f; }
.tile-cap { display: block; margin-top: 4px; font: 13.5px/1.4 var(--sans); }
.fg-green { color: #14452f; } .fg-orange { color: #b25a17; } .fg-red { color: #b5483a; } .fg-grey { color: #5f6b71; } .fg-sage { color: #4b7558; }
.fg-blue { color: #3c6e8f; } .fg-amber { color: #8a6110; } .fg-greenc { color: #2e7d4f; }
.updown { display: grid; grid-template-columns: 1fr 1fr; margin: 14px 0; border-radius: 8px; overflow: hidden; }
.updown > div { padding: 10px 14px; } .updown p { margin: 0 0 4px; font-size: 14.5px; }
.updown .up { background: #e6efe8; } .updown .down { background: #f7e4e0; } .updown .down .tag { color: #8a2f22; }
.report-toc { margin: 8px 0 18px; }
.report-toc ol { list-style: none; padding: 0; margin: 0; columns: 2 260px; column-gap: 24px; }
.report-toc li { margin: 0 0 6px; break-inside: avoid; }
.report-toc a { display: flex; gap: 8px; align-items: center; color: var(--paper-ink); text-decoration: none; }
.report-toc a:hover { text-decoration: underline; }
.verdict-box { margin: 14px 0; padding: 14px 18px; border-radius: 8px; background: var(--v); color: var(--v-ink); }
.verdict-box .vb-label { font: 700 11.5px var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.verdict-box strong { display: block; font: 700 clamp(22px, 4vw, 28px)/1.2 var(--sans); text-transform: uppercase; margin: 2px 0 4px; }
.verdict-box p { margin: 0; }
.report-meter { list-style: none; padding: 0; margin: 14px 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; }
.report-meter .badge { display: block; text-align: center; white-space: normal; padding: 6px 4px; border-radius: 6px; font-size: 11.5px; line-height: 1.2; }
.report-meter li:not(.on) .badge { background: #eef0f1; color: #56636a; }
.report-meter li.on .badge { box-shadow: 0 0 0 2px #2b3a42; }
.contested { margin: 16px 0; border: 1px solid var(--paper-line); border-radius: 10px; overflow: hidden; }
.contested > header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 12px; padding: 9px 14px; background: #14452f; }
.check-body .contested h3 { margin: 0; color: #fff; font: 700 15px/1.35 var(--sans); }
.contested .sides { display: grid; grid-template-columns: 1fr 1fr; }
.contested .sides > div, .contested > footer { padding: 10px 14px; }
.contested p { margin: 0 0 4px; font-size: 14.5px; }
.contested .side-a { background: #e6efe8; } .contested .side-a .tag { color: #256b42; }
.contested .side-b { background: #f7e4e0; } .contested .side-b .tag { color: #8a2f22; }
.contested > footer { background: #eef0f1; } .contested > footer .tag { color: #2b3a42; }
.report-table { width: 100%; border-collapse: collapse; margin: 12px 0; font: 14px/1.45 var(--sans); background: #fff; }
.report-table th { background: #14452f; color: #fff; text-align: left; vertical-align: bottom; padding: 7px 9px; font: 700 12.5px/1.3 var(--sans); }
.report-table td { padding: 7px 9px; border-bottom: 1px solid #d5dbd7; vertical-align: top; }
.report-table tbody tr:nth-child(even) td { background: #f6f4ee; }
.report-table td p { margin: 0 0 4px; }
.report-table.layout { background: none; } .report-table.layout td { border: 0; background: none; padding: 4px 8px 4px 0; }
.report .grade { display: inline-grid; place-items: center; min-width: 24px; height: 24px; border-radius: 4px; font: 700 12.5px var(--sans); color: #2b3a42; }
.report .grade-a { background: #cfe5d5; } .report .grade-b { background: #e3edf3; } .report .grade-c { background: #fbf1d9; } .report .grade-d { background: #f7e4e0; }
.report-box { margin: 12px 0; padding: 10px 14px; background: #fff; border: 1px solid var(--paper-line); border-radius: 8px; }
.report .bullets { padding-left: 1.3em; }
.refs { list-style: none; padding: 0; font-size: 14px; }
.refs li { margin: 0 0 7px; padding-left: 2.8em; text-indent: -2.8em; overflow-wrap: anywhere; }
.ref-n { font-weight: 700; }
.requests { list-style: none; padding: 0; margin: 10px 0; }
.requests li { position: relative; padding: 7px 0 7px 30px; border-bottom: 1px solid var(--paper-line); }
.requests li::before { content: ""; position: absolute; left: 2px; top: 10px; width: 14px; height: 14px; border: 2px solid #14452f; border-radius: 2px; }
.report-figure { margin: 16px 0 6px; }
.report-figure img { display: block; width: 100%; height: auto; border-radius: 6px; border: 1px solid var(--paper-line); background: #fff; }
.report-figure figcaption { margin-top: 6px; font: italic 13.5px/1.45 var(--sans); color: var(--paper-muted); max-width: 80ch; }
@media (max-width: 640px) {
  .report-cover { padding: 16px; border-radius: 10px; }
  .updown, .contested .sides { grid-template-columns: 1fr; }
  .report-meter { grid-template-columns: 1fr; }
  .report-table { font-size: 13px; }
}

/* ---------------------------------------------------------------- downloads at the bottom of a claim page */
.downloads .download-grid { display: grid; grid-template-columns: minmax(0, 280px) minmax(0, 1fr); gap: 22px; align-items: start; margin-top: 10px; }
.flyer-preview { display: block; border-radius: 8px; overflow: hidden; box-shadow: 0 8px 26px rgb(var(--shade) / .2); background: #fff; }
.flyer-preview img { display: block; width: 100%; height: auto; }
.download-buttons { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; max-width: 420px; }
.check .btn-download { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 10px 16px;
  border-radius: 10px; background: #14452f; color: #fff; text-decoration: none; font: 700 15px/1.3 var(--sans); }
.check .btn-download:hover { background: #1d5a3f; }
.btn-download .dl-label { display: inline-flex; align-items: center; gap: 8px; }
.btn-download .ico { stroke: #e3a72f; }
.btn-download .dl-meta { font-weight: 400; font-size: 13.5px; color: #cfe2d4; white-space: nowrap; }
@media (max-width: 640px) { .downloads .download-grid { grid-template-columns: 1fr; } .flyer-preview { max-width: 260px; } }

/* ---------------------------------------------------------------- claim page: downloads in the header, section tabs */
.ico { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.head-downloads { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 0; padding: 0; }
.dl-chip { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 7px 13px 7px 10px; border-radius: 9px;
  background: #fff; color: #14452f; text-decoration: none; font: 700 14px/1.2 var(--sans); box-shadow: 0 1px 3px rgb(var(--shade) / .18); }
.dl-chip span { font-weight: 400; font-size: 12.5px; color: #56636a; margin-left: 2px; }
.dl-chip:hover { background: #f6f4ee; }
@media (max-width: 520px) { .head-downloads { gap: 6px; } .dl-chip { min-height: 38px; padding: 6px 10px 6px 8px; font-size: 13.5px; } .dl-chip span { display: none; } }
.page-tabs { position: sticky; top: 0; z-index: 5; display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none;
  margin: 0 -26px 6px; padding: 8px 22px; background: rgba(246,244,238,.96); border-bottom: 1px solid var(--paper-line);
  backdrop-filter: blur(4px); }
.page-tabs::-webkit-scrollbar { display: none; }
.check .page-tabs a { flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 8px;
  color: #14452f; text-decoration: none; font: 600 14px/1.2 var(--sans); }
.check .page-tabs a:hover { background: #e6efe8; }
.page-tabs .ico { stroke: #2e7d4f; }
:target { scroll-margin-top: 64px; }

/* ---------------------------------------------------------------- glyph key (/about/glyphs/) and glyphs beside claim facts */
.gk-grid { list-style: none; margin: 12px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px; max-width: none; }
.gk-item { display: flex; gap: 12px; align-items: flex-start; margin: 0; padding: 9px 12px; border: 1px solid var(--paper-line); border-radius: 12px; background: #fff; }
.gk-item.is-shared { border-style: dashed; }
.gk-glyph { flex: none; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: #14452f; color: #f6f4ee; }
.gk-glyph .gl { width: 25px; height: 25px; vertical-align: 0; }
.gk-text { display: flex; flex-direction: column; min-width: 0; line-height: 1.35; }
.gk-shared { font-size: 13px; font-style: italic; color: var(--paper-muted); }
.gk-places { font-size: 13px; color: var(--paper-muted); overflow-wrap: anywhere; }
.facts .gl, .kicker .gl, .body-chip .gl { margin-right: .3em; }
.body-chip .gl { color: #14452f; }
.verdictline .verdict .gl, .verdictline .pledge-pill .gl { margin-right: .35em; vertical-align: -.22em; }

/* ---------------------------------------------------------------- claim numbers (Google-style) and previous / next */
.pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 10px; margin: 26px auto 8px; text-align: center; }
.pager ol { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; margin: 0; padding: 0; }
.pager .pg { position: relative; display: inline-grid; place-items: center; min-width: 40px; height: 40px; padding: 0 6px; border-radius: 10px;
  color: var(--ink); text-decoration: none; font: 700 15px var(--sans); border: 1px solid transparent; }
.pager .pg::after { content: ""; position: absolute; bottom: 5px; left: 50%; width: 6px; height: 6px; margin-left: -3px; border-radius: 50%; background: var(--v); }
.pager .pg:hover { border-color: var(--accent); }
.pager .pg.is-current { background: var(--amber); color: #13301f; }
.pager .pg.is-current::after { box-shadow: 0 0 0 1.5px #13301f; }
.pager-gap { color: var(--muted); padding: 0 4px; }
.pager-step { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 14px; border-radius: 999px;
  border: 1px solid rgb(var(--rim) / .3); color: var(--ink); text-decoration: none; font: 600 15px var(--sans); }
.pager-step:hover { border-color: var(--accent); }
.pager-step.is-off { opacity: 1; color: var(--muted); border-style: dashed; cursor: default; }   /* readable (4.5:1) but plainly inactive */
.pager-count { flex-basis: 100%; margin: 6px 0 0; color: var(--muted); font-size: 13px; }
@media (hover: none) { .pager-keys { display: none; } }
.claim-flip .flip { position: fixed; top: 50%; z-index: 20; display: flex; align-items: center; gap: 8px; height: 56px; min-width: 56px;
  padding: 0 16px; border-radius: 999px; background: rgba(20,69,47,.92); color: #fff; text-decoration: none;
  border: 1px solid rgba(227,167,47,.55); box-shadow: 0 8px 24px rgba(0,0,0,.35); transform: translateY(-50%); transition: background .15s; }
.claim-flip .flip .ico { width: 22px; height: 22px; stroke: #e3a72f; stroke-width: 2.4; }
.claim-flip .flip:hover, .claim-flip .flip:focus-visible { background: #14452f; }
.flip-prev { left: 14px; } .flip-next { right: 14px; }
.flip-label { display: none; max-width: 260px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font: 14px/1.2 var(--sans); }
.flip-label b { color: #e3a72f; }
.flip:hover .flip-label, .flip:focus-visible .flip-label { display: inline; }
@media (max-width: 1239px) {      /* not enough margin beside the card: a floating bar centred at the bottom */
  .claim-flip { position: fixed; left: 50%; bottom: max(12px, env(safe-area-inset-bottom)); z-index: 20; transform: translateX(-50%);
    display: flex; gap: 2px; padding: 4px; border-radius: 999px; background: rgba(14,42,31,.94); border: 1px solid rgba(227,167,47,.5);
    box-shadow: 0 8px 24px rgba(0,0,0,.4); }
  .claim-flip .flip { position: static; transform: none; height: 46px; min-width: 46px; padding: 0 14px; box-shadow: none; border: 0; background: transparent; }
  .claim-flip .flip-label { display: inline; max-width: 34vw; font-size: 13.5px; }
  .claim-flip .flip-label { white-space: nowrap; }
  body:has(.claim-flip) { padding-bottom: 80px; }
}
@media (max-width: 480px) { .claim-flip .flip-label { max-width: 26vw; } .claim-flip .flip-label > :not(b) { display: none; } }

/* ---------------------------------------------------------------- claims list */
.view-switch { display: flex; align-items: center; gap: 6px; margin: 4px 0 16px; }
.view-switch[hidden] { display: none; }
.vs-label { color: var(--muted); font-size: 14px; margin-right: 4px; }
.view-switch button { display: inline-flex; align-items: center; gap: 7px; min-height: 38px; padding: 6px 14px 6px 11px; border-radius: 999px;
  border: 1px solid rgb(var(--rim) / .28); background: rgb(var(--panel) / .45); color: var(--ink); font: 600 14px var(--sans); cursor: pointer; }
.view-switch button .ico { stroke: var(--accent); }
.view-switch button:hover { border-color: var(--accent); }
.view-switch button[aria-pressed="true"] { background: var(--amber); border-color: var(--amber); color: #13301f; }
.view-switch button[aria-pressed="true"] .ico { stroke: #13301f; }
.panels { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.panels[hidden] { display: none; }
.panel-card { display: flex; flex-direction: column; height: 100%; border-radius: 14px; overflow: hidden; background: var(--paper);
  color: var(--paper-ink); text-decoration: none; box-shadow: 0 10px 28px rgb(var(--shade) / .28); transition: transform .15s, box-shadow .15s; }
.panel-card:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgb(var(--shade) / .36); }
.panel-card:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.panel-card img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; background: #14452f; }
.pc-body { display: flex; flex-direction: column; gap: 6px; flex: 1; padding: 12px 14px 14px; }
.pc-kicker { font: 700 11.5px/1.3 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--paper-muted); }
.pc-title { font: 700 18px/1.3 var(--serif); color: #14452f; }
.pc-meta { font-size: 13.5px; color: var(--paper-muted); }
.pc-foot { margin-top: auto; padding-top: 6px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.pc-status { font-size: 12.5px; color: var(--paper-muted); }

.table-wrap { overflow-x: auto; }
table.claims { width: 100%; border-collapse: collapse; font-size: 15px; }
table.claims th { text-align: left; font: 700 11.5px var(--sans); letter-spacing: .08em; text-transform: uppercase;
  color: var(--accent); padding: 8px; border-bottom: 1px solid rgb(var(--rim) / .3); }
table.claims td { padding: 10px 8px; border-bottom: 1px solid rgb(var(--rim) / .16); vertical-align: top; }
table.claims td .small { color: var(--muted); }
table.claims td:first-child { white-space: nowrap; }
table.claims a { color: var(--ink); }

/* ---------------------------------------------------------------- claim links, connections, bodies */
/* A link to a claim: a verdict dot, the number, the title. Long hover shows a summary (assets/claimrefs.js). */
.cref { display: inline-flex; align-items: baseline; gap: 6px; text-decoration: none; }
.cref:hover .cref-title, .cref:focus-visible .cref-title { text-decoration-color: currentColor; }
.cref-dot { flex: none; align-self: center; width: 10px; height: 10px; border-radius: 50%; background: var(--v); box-shadow: 0 0 0 1.5px #fff, 0 0 0 2.5px rgba(20,69,47,.25); }
.cref-id { font: 700 13px/1.3 var(--sans); letter-spacing: .02em; white-space: nowrap; }
.cref-title { text-decoration: underline; text-decoration-color: rgba(20,69,47,.3); text-underline-offset: 3px; }
a.claimref { text-decoration-style: dotted; text-underline-offset: 3px; font-weight: 700; white-space: nowrap; }
.cref-list { list-style: none; margin: 6px 0 4px; padding: 0; display: grid; gap: 6px; }
.cref-list li { margin: 0; }
.cref-list.is-routes li { display: grid; gap: 3px; padding: 7px 0; border-bottom: 1px dashed var(--paper-line); }
.cref-list.is-routes li:last-child { border-bottom: 0; }
.via { font-size: 13.5px; color: var(--paper-muted); padding-left: 16px; }
.route { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px; vertical-align: middle; }
.route-theme { display: inline-block; padding: 1px 8px 1px 10px; border-radius: 999px; background: #fff; color: #13301f;
  border: 1px solid var(--t, var(--sage)); box-shadow: inset 4px 0 0 var(--t, var(--sage)); font: 600 12.5px/1.5 var(--sans); }
.route-claim { display: inline-block; min-height: 24px; padding: 2px 0; font: 700 12.5px/20px var(--sans); }
.route-claim::before, .route-claim::after { content: "→"; color: var(--paper-muted); font-weight: 400; margin: 0 4px; display: inline-block; }
.conn-block { margin: 16px 0 0; padding: 14px 16px; border: 1px solid var(--paper-line); border-radius: 12px; background: #fbfaf6; }
.conn-block h3, .conn-block .h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font: 700 16.5px/1.3 var(--sans); color: #14452f; }
.conn-block .ico { width: 20px; height: 20px; flex: none; fill: none; stroke: #14452f; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.conn-lead { margin: 4px 0 6px; font-size: 14.5px; }
.count { display: inline-block; min-width: 22px; padding: 0 7px; border-radius: 999px; background: #14452f; color: #fff; font: 700 12px/1.6 var(--sans); text-align: center; }
.conn-more summary { cursor: pointer; list-style: none; }
.conn-more summary::-webkit-details-marker { display: none; }
.conn-more summary .h3::after { content: "▾"; margin-left: auto; color: var(--paper-muted); }
.conn-more[open] summary .h3::after { content: "▴"; }
.theme-card { margin: 10px 0 0; padding: 8px 12px 8px 14px; border-left: 4px solid var(--t, var(--sage)); background: #fff; border-radius: 0 10px 10px 0; }
.theme-card.is-pattern { --t: #6b5aa6; }
.theme-name { margin: 0; font: 700 15px/1.35 var(--sans); color: #14452f; }
.theme-kind { font: 400 12.5px var(--sans); color: var(--paper-muted); margin-left: 6px; white-space: nowrap; }
.theme-desc { margin: 3px 0 4px; font-size: 14.5px; }
.conn-bodies { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 8px; margin: 4px 0 8px; }
.body-chip { display: inline-block; padding: 3px 11px; border-radius: 999px; border: 1px solid #b9cbbf; background: #fff; font-weight: 700; text-decoration: none; }
.body-chip:hover { border-color: #14452f; }
.body-chip.is-person { border-style: dashed; }
.body-role { font-weight: 400; color: var(--paper-muted); }

.body-stats { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; padding: 0; }
.body-stats li { margin: 0; padding: 6px 12px; border-radius: 10px; background: #e9efe9; font-size: 14px; }
.body-stats b { font: 700 18px var(--sans); color: #14452f; margin-right: 3px; }
.tally { display: inline-block; margin: 0 6px 6px 0; padding: 2px 10px; border-radius: 999px; background: #e9efe9; font-size: 14px; }
.tally b { margin-left: 4px; color: #14452f; }
.body-facts { grid-template-columns: 1fr; }
.linked-bodies { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 10px; }
.linked-bodies li { margin: 0; padding: 10px 12px; border: 1px solid var(--paper-line); border-radius: 12px; background: #fbfaf6; }
.lb-name { margin: 0 0 4px; }
.lb-why { margin: 3px 0 0; font-size: 14px; }
.more-bodies { margin-top: 10px; }
.more-bodies summary { cursor: pointer; font-weight: 700; color: var(--paper-link); }
.prose-page table.claims th { color: #14452f; border-bottom: 1px solid var(--paper-line); }
.prose-page table.claims td { border-bottom: 1px solid var(--paper-line); }
.prose-page table.claims a { color: var(--paper-link); }
.prose-page table.claims td .small { color: var(--paper-muted); }
.prose-page table.claims td:first-child { white-space: normal; }
.prose-page > .table-scroll, .prose-page > section > .table-scroll { overflow-x: auto; position: relative; }   /* relative: hidden labels stay inside */
.prose-page > section.wide, .prose-page > section:has(.body-grid), .prose-page > section:has(.table-scroll),
.prose-page > section:has(.tl-chart) { max-width: none; }
.prose-page > section:has(.tl-chart) > p, .prose-page > section:has(.tl-chart) > ul:not(.kind-legend) { max-width: 78ch; }

.body-grid { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.body-card { margin: 0; display: flex; flex-direction: column; gap: 3px; padding: 11px 13px; border: 1px solid var(--paper-line); border-radius: 12px; background: #fbfaf6; }
.bc-name { font: 700 16px/1.3 var(--sans); text-decoration: none; }
.bc-name:hover { text-decoration: underline; }
.bc-count { font-size: 13.5px; color: var(--paper-muted); }
.bc-parent { font-size: 13px; color: var(--paper-muted); font-style: italic; }
.bc-people { font-size: 13.5px; }

.toc ol { display: flex; flex-wrap: wrap; gap: 6px 14px; padding: 10px 14px; margin: 12px 0 0; list-style: none; background: #e9efe9; border-radius: 10px; }
.toc li { margin: 0; }
.pattern-list { margin: 8px 0 0; }
.pattern-list > div { padding: 8px 0; border-bottom: 1px solid var(--paper-line); }
.pattern-list dt { font-weight: 700; color: #14452f; }
.pattern-list dd { margin: 2px 0 0; }
.pattern-claims { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-top: 4px; }
.bridge-list li { margin-bottom: 8px; }
.body-claims .cref { display: inline; }
.body-claims .cref-dot { display: inline-block; margin-right: 6px; }
@media (max-width: 640px) {
  .body-claims th:nth-child(2), .body-claims td:nth-child(2) { display: none; }
  .body-stats li { font-size: 13px; padding: 5px 10px; }
}

/* ---------------------------------------------------------------- timelines and patterns by kind of body */
/* A claim's timeline: year headings, then dated events. */
.tl, .tl ol { list-style: none; margin: 0; padding: 0; }
.tl { margin-top: 10px; }
.tl-year { margin: 0; }
.tl-year > h3 { margin: 14px 0 4px; font: 700 15px/1.3 var(--sans); color: #14452f; }
.tl-year > ol { border-left: 2px solid #cdd9cf; margin-left: 6px; padding-left: 16px; }
.tl-ev { position: relative; display: grid; grid-template-columns: 150px 1fr; gap: 2px 12px; padding: 5px 0; margin: 0; font-size: 14.5px; }
.tl-ev::before { content: ""; position: absolute; left: -23px; top: 11px; width: 10px; height: 10px; border-radius: 50%;
  background: #fff; border: 2px solid var(--sage); }
.tl-ev.k-statement::before, .tl-ev.k-said::before { background: #e3a72f; border-color: #a8761a; }
.tl-ev.k-same-body::before { background: #f6e3b4; border-color: #a8761a; }
.tl-ev.k-evidence::before { background: #56b4e9; border-color: #2c7bb0; }
.tl-ev.k-reported::before { background: #fff; border-color: #6b7c74; }
.tl-ev.k-check::before { background: #14452f; border-color: #14452f; }
.tl-ev.k-reply::before, .tl-ev.k-curated::before { background: #bb86fc; border-color: #6b4aa6; }
.tl-ev.is-future::before { background: #fff; border-style: dashed; }
.tl-ev.is-self { background: #fbf0dc; border-radius: 8px; margin-left: -8px; padding-left: 8px; }
.tl-date { color: var(--paper-muted); font-size: 13.5px; white-space: nowrap; }
.tl-kind { font-weight: 700; color: #14452f; }
.tl-ev.is-future .tl-kind { font-style: italic; }
.tl-change { font-size: 13px; }
@media (max-width: 640px) { .tl-ev { grid-template-columns: 1fr; } }

/* Claims on a time axis: a row per topic or theme; dots placed by date (the include timeline-chart.njk). */
.tl-chart { margin: 12px 0 10px; padding: 8px 0 4px; }
.tl-row { display: grid; grid-template-columns: 170px 1fr; gap: 10px; align-items: center; }
.tl-lane-name { font: 600 13px/1.25 var(--sans); color: #14452f; text-align: right; }
.tl-track { position: relative; height: calc(var(--rows, 1) * 20px + 14px); border-bottom: 1px solid #cdd9cf; }
.tl-axis .tl-track { height: 20px; border-bottom: 0; }
.tl-tick { position: absolute; left: var(--x); transform: translateX(-50%); font-size: 11.5px; color: var(--paper-muted); white-space: nowrap; }
.tl-tick.is-major { font-weight: 700; color: #14452f; }
.tl-grid { position: absolute; left: var(--x); top: 0; bottom: 0; border-left: 1px dotted #d3ddd5; }
.tl-grid.is-major { border-left: 1px solid #c4d2c7; }
.tl-dot { position: absolute; left: var(--x); top: calc(var(--row, 0) * 20px + 7px); width: 15px; height: 15px; margin-left: -7.5px;
  border-radius: 50%; background: var(--v); border: 2px solid #fff; box-shadow: 0 0 0 1.5px rgba(19,48,31,.55); }
.tl-dot:hover { transform: scale(1.35); z-index: 2; }
.tl-dot.is-rough { box-shadow: none; outline: 1.5px dashed rgba(19,48,31,.75); outline-offset: 1px; }
.tl-note { margin: 8px 0 0 180px; }
@media (max-width: 640px) { .tl-note { margin-left: 0; } }
.by-kind .tl-dot { background: #8a9399; }
.by-kind .kind-government { background: #e3a72f; } .by-kind .kind-agency { background: #56b4e9; } .by-kind .kind-regulator { background: #6fcf97; }
.by-kind .kind-oversight { background: #f2994a; } .by-kind .kind-party { background: #bb86fc; } .by-kind .kind-civil_society { background: #f06292; }
.by-kind .kind-business { background: #4fc3c8; } .by-kind .kind-media { background: #9fa8da; } .by-kind .kind-eu { background: #cfd8dc; }
.by-kind .kind-research { background: #a1887f; }
@media (max-width: 640px) {
  .tl-row { grid-template-columns: 1fr; gap: 2px; }
  .tl-lane-name { text-align: left; margin-top: 6px; }
  .tl-axis .tl-lane-name { display: none; }
}
.threads { list-style: none; padding: 0; margin: 6px 0 0; }
.threads > li { margin: 0 0 8px; }
.thread-topic { font-weight: 700; color: #14452f; }
.thread { list-style: none; margin: 4px 0 0; padding: 0 0 0 14px; border-left: 2px solid #cdd9cf; display: grid; gap: 4px; }
.thread li { margin: 0; }
.thread .tl-date { display: inline-block; min-width: 132px; }
.feed-link { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 14px; }
.feed-link .ico, .see-also .ico { width: 18px; height: 18px; fill: none; stroke: #c06a14; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.see-also { display: flex; gap: 8px; align-items: baseline; padding: 10px 14px; border-radius: 10px; background: #e9efe9; }
.see-also .ico { stroke: #14452f; flex: none; transform: translateY(3px); }
.updates { margin-top: 8px; }
.updates summary { cursor: pointer; font-weight: 700; color: var(--paper-link); }
.updates ul { list-style: none; padding: 0; margin: 6px 0 0; display: grid; gap: 4px; font-size: 14px; }

.kind-swatch { display: inline-block; width: 12px; height: 12px; border-radius: 50%; background: var(--k); margin-right: 7px;
  box-shadow: 0 0 0 1.5px rgba(19,48,31,.45); vertical-align: -1px; }
.kind-legend { list-style: none; padding: 0; margin: 8px 0 0; display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 13.5px; }
.kind-legend li { margin: 0; }
.prose-page table.matrix th[scope="row"], .prose-page table.kind-table th[scope="row"] { text-align: left; font: 600 14px var(--sans); color: #14452f;
  letter-spacing: 0; text-transform: none; white-space: nowrap; padding: 8px; border-bottom: 1px solid var(--paper-line); }
.prose-page table.matrix thead th { vertical-align: bottom; }
.prose-page table.matrix td { min-width: 70px; }
.prose-page table.matrix .cref { margin: 0 4px 3px 0; }
.matrix .none { color: #b6c2b9; }
.matrix .badge { font-size: 10.5px; white-space: normal; text-align: center; line-height: 1.25; }
.cell summary { cursor: pointer; font-weight: 700; color: var(--paper-link); }
.cell[open] summary { margin-bottom: 4px; }
.kind-topics { grid-template-columns: 1fr; }
.notice.is-correction { background: #eee8f8; border-left-color: #6b4aa6; }
.notice + .notice { margin-top: 8px; }
.tl-ev.k-correction::before { background: #6b4aa6; border-color: #4b3080; }
.change-list { list-style: none; padding: 0; margin: 8px 0 0; display: grid; gap: 0; }
.change-list li { display: grid; grid-template-columns: 150px 1fr; gap: 2px 12px; margin: 0; padding: 9px 0; border-bottom: 1px solid var(--paper-line); }
.change-what { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.change-text { flex-basis: 100%; font-size: 14.5px; }
.tl-verdict { display: block; margin-top: 2px; font-size: 13.5px; font-weight: 700; color: #14452f; }
.badge.change-correction { --v: #8e2f25; --v-ink: #fff; }
.badge.change-clarification { --v: #6b4aa6; --v-ink: #fff; }
@media (max-width: 640px) { .change-list li { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------- pledge labels and parts of a claim */
/* Pledge labels (methodology/verdict-scale.md, Pledges) have their own colours, apart from the verdict scale (labels.css). */
.verdictline .pledge-pill { background: var(--pl); color: var(--pl-ink, #fff); border-color: var(--pl); box-shadow: 0 0 0 1.5px rgba(255,255,255,.75); }
.pledge-box { margin: 16px 0 6px; padding: 14px 18px 12px; border-radius: 12px; background: #fbfaf6; border: 1px solid var(--paper-line); border-left: 6px solid var(--pl); }
.check-body .pledge-box h2 { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; padding: 0; border: 0; font-size: 20px; }
.pledge-box h2 .ico, .parts h2 .ico { width: 22px; height: 22px; fill: none; stroke: #14452f; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.pledge-status { margin: 0 0 4px; }
.pledge-label { display: inline-block; padding: 4px 12px; border-radius: 999px; background: var(--pl); color: var(--pl-ink, #fff); font: 700 14px/1.3 var(--sans); letter-spacing: .05em; text-transform: uppercase; }
.check-body .parts h2 { display: flex; align-items: center; gap: 8px; }
.part-list { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 8px; }
.part { display: grid; grid-template-columns: 74px 1fr auto; gap: 4px 12px; align-items: start; margin: 0; padding: 9px 12px;
  border: 1px solid var(--paper-line); border-left: 5px solid var(--tone); border-radius: 0 10px 10px 0; background: #fff; scroll-margin-top: 70px; }
.part:target { box-shadow: 0 0 0 3px var(--amber); }
.part-id { font: 700 13px/1.5 var(--sans); font-style: normal; color: #14452f; }
.part-text { font-weight: 700; }
.part-finding { display: block; margin-top: 3px; font-size: 14px; color: var(--paper-ink); }
.part-rating { justify-self: end; padding: 2px 10px; border-radius: 999px; background: var(--tone); color: var(--tone-ink, #fff); font: 700 11.5px/1.6 var(--sans); letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.tone-green { --tone: #2e7d4f; } .tone-lime { --tone: #8db36b; --tone-ink: #13301f; } .tone-amber { --tone: #e3a72f; --tone-ink: #13301f; }
.tone-orange { --tone: #d9772b; --tone-ink: #13301f; } .tone-red { --tone: #b5483a; } .tone-maroon { --tone: #8e2f25; } .tone-grey { --tone: #65756e; }
.part-rating a, .chip a, .badge a { color: inherit; }   /* a claim number inside a chip keeps the chip's readable ink */
@media (max-width: 640px) { .part { grid-template-columns: 1fr; } .part-rating { justify-self: start; } }
.tl-ev.k-pledge::before { background: #716f8d; border-color: #4f4c6c; }
.pledge-table .badge { white-space: nowrap; }
.pledge-labels > div { display: grid; grid-template-columns: 150px 1fr; gap: 4px 14px; padding: 7px 0; border-bottom: 1px solid var(--paper-line); }
.pledge-labels dd { margin: 0; }
@media (max-width: 640px) { .pledge-labels > div { grid-template-columns: 1fr; } }

@media (max-width: 640px) {
  .site-head { padding: 14px 16px 6px; }
  main { padding: 0 12px 44px; }
  .check { border-radius: 12px; }
  .check-head { padding: 18px 18px 16px; }
  .check-body { padding: 6px 18px 20px; }
  table.claims th:nth-child(3), table.claims td:nth-child(3) { display: none; }
}

@media print {
  body { background: #fff; color: #000; }
  .site-head nav, .skip, .crumbs, .site-foot { display: none; }
  .check { box-shadow: none; border: 1px solid #999; }
  .check-head { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .sources a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 11px; word-break: break-all; }
}

/* Pledges: outliers and the manifesto list (stage 4). */
.outliers { list-style: none; padding: 0; margin: 6px 0 14px; }
.outliers > li { padding: 8px 0; border-bottom: 1px solid var(--paper-line); }
.pledges-page .none { color: var(--paper-muted); font-style: italic; margin: 4px 0 12px; }
.pledges-page h3 .small { font-weight: 400; }
.mp-party { border: 1px solid var(--paper-line); border-radius: 10px; margin: 8px 0; padding: 0 12px; }
.mp-party > summary { cursor: pointer; padding: 10px 0; }
.mp-party[open] > summary { border-bottom: 1px solid var(--paper-line); margin-bottom: 8px; }
.mp-table td:first-child { white-space: nowrap; }
.mp-table tr:target { outline: 2px solid var(--accent); outline-offset: -2px; }
.mp-link.mp-recycled { color: #b8432a; }

/* Pledges: the election-by-party grid. */
.pgrid { border-collapse: separate; border-spacing: 4px; min-width: 820px; font-size: .88rem; }
.pgrid th { text-align: left; font-weight: 700; padding: 4px 6px; vertical-align: bottom; color: var(--paper-ink); }
.pgrid tbody th { vertical-align: top; white-space: nowrap; }
.pgrid td { background: color-mix(in srgb, var(--paper-line) 45%, transparent); border-radius: 8px; padding: 8px; vertical-align: top; width: 9%; line-height: 1.5; }
.pgrid td.pg-na { background: transparent; color: var(--paper-muted); }
.pgrid td.pg-none { background: transparent; border: 1px dashed var(--paper-line); font-style: italic; }
.pgrid td.pg-office { background: color-mix(in srgb, var(--paper-line) 25%, transparent); }
.pgrid .pg-n { font-weight: 700; font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.pgrid .pg-flag { color: #b8432a; font-weight: 700; font-size: .8rem; }
.pgrid .pg-p { font-weight: 700; font-size: .82rem; white-space: nowrap; text-decoration: none; }
.pg-sq { display: inline-block; width: 11px; height: 11px; border-radius: 3px; margin-right: 4px; vertical-align: -1px; }
.pgrid-key { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: .82rem; color: var(--paper-muted); margin: 6px 0 0; padding: 0; list-style: none; }
/* Pledges by subject (pledge_topic_matrix): a shaded table, one hue, the number always printed. */
.pt-h { margin: 18px 0 4px; font-size: 1.05rem; }
.ptopics { border-collapse: separate; border-spacing: 3px; min-width: 640px; font-size: .88rem; font-variant-numeric: tabular-nums; }
.ptopics th { text-align: left; font-weight: 700; padding: 4px 6px; color: var(--paper-ink); vertical-align: bottom; }
.ptopics tbody th { font-weight: 600; white-space: nowrap; }
.ptopics td { text-align: center; border-radius: 6px; padding: 0; min-width: 64px;
  background: color-mix(in srgb, #2e7d4f calc(var(--s, 0) * 88% + 7%), transparent); }
.ptopics td a { display: block; padding: 6px 4px; color: var(--paper-ink); font-weight: 700; text-decoration: none; }
.ptopics td.pt-dark a { color: #fff; }
.ptopics td a:hover { text-decoration: underline; }
.ptopics td.pt-0 { background: transparent; color: var(--paper-muted); }
.ptopics .pt-all { background: transparent; color: var(--paper-muted); font-weight: 600; }
/* Similar wording across elections (pledge_similar): one bar per party, strong / possible / none. */
.sim-bars { display: grid; gap: 8px; margin: 12px 0 6px; }
.sim-row { display: grid; grid-template-columns: minmax(90px, 160px) 1fr auto; gap: 4px 12px; align-items: center; }
.sim-bar { display: flex; height: 16px; border-radius: 4px; overflow: hidden; gap: 2px; }
.sim-bar i, .sim-key i { display: block; }
.s2 { background: #1f6b45; } .s1 { background: #8db36b; } .s0 { background: color-mix(in srgb, var(--paper-line) 80%, transparent); }
.sim-key { display: flex; flex-wrap: wrap; gap: 4px 16px; list-style: none; padding: 0; margin: 4px 0 10px; color: var(--paper-muted); }
.sim-key i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; }
.sim-topics, .sim-pairs { margin: 10px 0; }
.sim-topics summary, .sim-pairs summary { cursor: pointer; font-weight: 700; }
@media (max-width: 560px) { .sim-row { grid-template-columns: 1fr; } }
.mp-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 14px 0; }
.mp-filter label { font-weight: 700; }
.mp-filter select { min-height: 36px; padding: 4px 8px; border-radius: 8px; border: 1px solid var(--paper-line); background: var(--paper); color: var(--paper-ink); font: inherit; }
.mp-sub { color: var(--paper-muted); }
.mp-sim { color: var(--paper-muted); }
.pflow { margin: 10px 0 18px; }
.pflow figcaption { font-size: .9rem; margin-bottom: 6px; }
.pflow svg text { fill: var(--paper-ink); font: 12px Arial, sans-serif; }
