/* Census note: the security-note template (Thrift note), plus one square per pinned image and ledger tables that stack into labelled rows on a phone. */
article.note-page .note-dateline { color: var(--wp-muted); font: 400 var(--wp-text-meta)/1.4 var(--wp-font-body); margin: calc(-1 * var(--wp-2)) 0 var(--wp-8); }
article.note-page .note-action { border-left: 4px solid var(--wp-rust); margin: var(--wp-8) 0 0; max-width: 36em; padding: var(--wp-1) 0 var(--wp-1) var(--wp-4); }
article.note-page .note-action p { margin: 0; }
article.note-page .note-action strong { font: 600 var(--wp-text-lede)/1.4 var(--wp-font-body); }
/* the headline is a full sentence of about 130 characters: it takes the whole width, and the reader action takes the column beside the lede */
/* balanced: three even lines at 1440, and no line holding only the date on a phone */
article.census-note h1 { font-size: clamp(2.125rem, 3.6vw, 3.5rem); line-height: 1.04; max-width: 34ch; text-wrap: balance; }
@media (min-width: 64rem) {
  article.note-page .results-intro { column-gap: var(--wp-16); display: grid; grid-template-columns: minmax(0, 44rem) minmax(15rem, 1fr); max-width: none; }
  article.note-page .results-intro > * { grid-column: 1; }
  article.census-note .results-intro > h1 { grid-column: 1 / -1; }
  article.note-page .results-intro > .note-action { align-self: start; grid-column: 2; grid-row: 5 / span 3; margin-top: var(--wp-1); }
}
article.note-page .check-block { font-size: .875rem; white-space: pre; overflow-x: auto; overscroll-behavior-x: contain; }
article.note-page .check-block:focus-visible { outline: 3px solid var(--cn-color-amber); outline-offset: 3px; }
article.note-page .note-credit { color: var(--wp-muted); font-size: var(--wp-text-meta); line-height: 1.55; margin-top: var(--wp-8); max-width: 60em; }
article.census-note .results-section { scroll-margin-top: var(--wp-8); }
/* the dateline says when the data was taken: reading size on a phone, like the lede around it */
@media (max-width: 48rem) { article.census-note .note-dateline { font-size: 1rem; } }
/* the rescan line sits under the dateline as a dated update: small, but the date reads first; the counts above it stay as of the dateline */
article.census-note .note-dateline { margin-bottom: var(--wp-2); }
article.census-note .note-fresh { color: var(--wp-muted); font: 400 var(--wp-text-meta)/1.5 var(--wp-font-body); margin: 0 0 var(--wp-8); max-width: 44em; }
article.census-note .note-fresh-date { color: var(--wp-ink); font-weight: 600; }
@media (max-width: 48rem) { article.census-note .note-fresh { font-size: 1rem; } }
article.note-page .note-nobreak { white-space: nowrap; }
article.census-note .cn-leads li + li { margin-top: var(--wp-3); }
/* a checksum breaks between any two digits rather than push the page wide; a copy is still one string */
article.census-note .cn-hash { word-break: break-all; }
article.census-note .cn-rel { color: var(--wp-muted); font-family: var(--wp-font-mono); font-size: var(--wp-text-meta); white-space: nowrap; }

/* One square per pinned image. Classes run in the order of the class table, so each class is one solid run and the
   key, the table and the squares agree. Fill and edge both carry the class, so the runs stay apart without colour. */
.census-note .cn-units { margin: var(--wp-2) 0 var(--wp-12); max-width: 60rem; }
.census-note .cn-band { display: grid; grid-template-columns: 10rem minmax(0, 1fr); column-gap: var(--wp-6); align-items: start; }
.census-note .cn-band + .cn-band { margin-top: var(--wp-4); padding-top: var(--wp-4); border-top: var(--wp-rule) solid var(--wp-ink); }
.census-note .cn-band-label { margin: 0; color: var(--wp-muted); font: 500 var(--wp-text-cite)/1.35 var(--wp-font-mono); letter-spacing: .06em; text-transform: uppercase; }
.census-note .cn-band:first-child .cn-band-label { color: var(--wp-ink); }
.census-note .cn-grid { display: grid; grid-template-columns: repeat(27, minmax(0, 1fr)); gap: 3px; }
.census-note .cn-units i, .census-note .cn-classes i, .census-note .cn-key i { display: block; aspect-ratio: 1; box-sizing: border-box; border: 1px solid var(--wp-muted); background: var(--wp-panel); }
.census-note .u-wd { background: var(--wp-rust) !important; border-color: var(--wp-rust) !important; }
.census-note .u-wl { background: var(--wp-flag) !important; border-color: var(--wp-rust) !important; }
.census-note .u-cu { background: var(--wp-cited) !important; border-color: var(--wp-cobalt) !important; }
.census-note .u-no { background: var(--wp-panel) !important; }
.census-note .u-un { background: repeating-linear-gradient(135deg, var(--wp-muted) 0 1px, var(--wp-panel) 1px 4px) !important; }
.census-note .u-ns { background: transparent !important; border-style: dashed !important; }
.census-note .cn-units figcaption { margin: var(--wp-4) 0 0 calc(10rem + var(--wp-6)); color: var(--wp-muted); font-size: var(--wp-text-meta); line-height: 1.45; }
.census-note .cn-units figcaption p { margin: 0 0 var(--wp-2); }
.census-note .cn-key { display: flex; flex-wrap: wrap; gap: var(--wp-1) var(--wp-6); list-style: none; margin: 0; padding: 0; }
.census-note .cn-key li { display: flex; align-items: center; gap: var(--wp-2); margin: 0; }
.census-note .cn-key i { width: 14px; flex: none; }
.census-note .cn-key code { color: var(--wp-ink); font-size: var(--wp-text-cite); }
@media (max-width: 48rem) {
  .census-note .cn-band { grid-template-columns: minmax(0, 1fr); row-gap: var(--wp-2); }
  .census-note .cn-grid { gap: 2px; }
  .census-note .cn-units figcaption { margin-left: 0; }
}

/* Ledger tables (Canada guides): mono heads, hairline rows, the primary column carries the weight */
.census-note .cn-table-wrap { margin: var(--wp-6) 0 var(--wp-8); }
.census-note table.cn-table { min-width: 0; width: 100%; border: 0; border-collapse: collapse; font-size: var(--wp-text-ledger); line-height: 1.5; }
.census-note .cn-table th, .census-note .cn-table td { border: 0; border-bottom: var(--wp-rule) solid var(--wp-hair); padding: var(--wp-3) var(--wp-4) var(--wp-3) 0; text-align: left; vertical-align: top; background: none; }
.census-note .cn-table th:last-child, .census-note .cn-table td:last-child { padding-right: 0; }
.census-note .cn-table thead th, .census-note .cn-table thead td { font: 500 var(--wp-text-cite)/1.3 var(--wp-font-mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp-muted); border-bottom: var(--wp-rule-strong) solid var(--wp-ink); vertical-align: bottom; }
.census-note .cn-table tbody th { font-weight: 600; }
.census-note .cn-table thead .cn-case { text-transform: none; }
.census-note .cn-table code { font-size: var(--wp-text-meta); }
.census-note .cn-count { max-width: 60rem; }
.census-note .cn-count td:nth-child(2) { font-weight: 600; }
.census-note .cn-count .is-ns th, .census-note .cn-count .is-ns td { color: var(--wp-muted); font-weight: 400; }
.census-note .cn-classes { max-width: 60rem; }
.census-note .cn-classes tbody th { white-space: nowrap; }
.census-note .cn-classes tbody th i { display: inline-block; width: 12px; margin-right: var(--wp-2); vertical-align: -1px; }
.census-note .cn-classes td:nth-child(3), .census-note .cn-classes td:nth-child(4) { font-family: var(--wp-font-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.census-note .cn-classes td:nth-child(3) { font-weight: 600; }
.census-note .cn-kinds, .census-note .cn-zones, .census-note .cn-bases { max-width: 60rem; }
.census-note .cn-kinds td:nth-child(4), .census-note .cn-bases td:nth-child(2) { font-family: var(--wp-font-mono); font-variant-numeric: tabular-nums; font-weight: 600; }
.census-note .cn-zones td { font-family: var(--wp-font-mono); font-size: var(--wp-text-meta); white-space: nowrap; }
.census-note .cn-zones td:nth-child(2) { font-weight: 600; }
.census-note .cn-zones td:nth-child(3) { color: var(--wp-muted); }

/* Find your image: a row per image. The name is the link; the short digest sits under it because the digest, not the tag, is what we scanned */
.census-note .results-section > h3 { max-width: 44em; font: 600 var(--wp-text-h3)/1.35 var(--wp-font-body); margin: var(--wp-12) 0 0; }
.census-note .results-section > h3 code { font-size: .875em; }
.census-note .cn-images-wrap { margin-top: var(--wp-3); }
.census-note .cn-images tbody th { font-weight: 600; }
.census-note .cn-images tbody th a { overflow-wrap: anywhere; }
/* the image link gets a 48px hit area with no line moved: padding and an equal negative margin (Canada guides rule) */
.census-note .cn-images tbody th a { padding: 13px 15px; margin: -13px -15px; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.census-note .cn-images tbody th a:focus-visible { outline-offset: -10px; }
.census-note .cn-digest { display: block; margin-top: 2px; color: var(--wp-muted); font: 400 var(--wp-text-cite)/1.3 var(--wp-font-mono); }
.census-note .cn-images td:nth-child(2) code { overflow-wrap: anywhere; }
/* "older than 2026b ×3" is longer than half a phone row: a release may wrap in the image tables */
.census-note .cn-images .cn-rel { white-space: normal; }
@media (min-width: 48.0625rem) {
  .census-note .cn-count tbody th { width: 34%; }
  .census-note .cn-images tbody th { width: 28%; }
  .census-note .cn-images td:nth-child(2) { width: 15%; }
  .census-note .cn-images td:nth-child(3) { width: 24%; }
  .census-note .cn-images td:nth-child(5) { width: 10%; }
  .census-note .cn-images.is-library td:nth-child(3) { width: 34%; }
  .census-note .cn-zones tbody th { white-space: nowrap; }
  .census-note .cn-kinds td:nth-child(4), .census-note .cn-bases td:nth-child(2) { width: 7rem; }
  .census-note .cn-bases tbody th { width: 34%; }
}
.census-note .cn-tags-move { color: var(--wp-muted); }

/* most of the updated images are wrong, so the table opens on the most-pulled and the rest follow closed, in the same form */
.census-note .cn-table-note { margin: var(--wp-2) 0 0; color: var(--wp-muted); font-size: var(--wp-text-meta); }
.census-note .cn-more { margin: calc(-1 * var(--wp-4)) 0 0; border-bottom: var(--wp-rule) solid var(--wp-hair); }
.census-note .cn-more summary code { font-size: .875em; }

/* every other image, by name only, closed by default: a find in the page still opens it */
.census-note .cn-rest { margin: var(--wp-8) 0 0; border-top: var(--wp-rule-strong) solid var(--wp-ink); }
/* baseline, not centre: on a two-line label the mark stays on the first line; the padding centres a one-line label in the tap height */
.census-note .cn-rest summary, .census-note .cn-more summary { display: flex; align-items: baseline; min-height: var(--wp-tap); padding: calc((var(--wp-tap) - 1.5em) / 2) 0; line-height: 1.5; font-weight: 600; cursor: pointer; }
/* a flex summary loses its triangle: a plus drawn from two bars, which becomes a minus when open, says the row opens */
.census-note .cn-rest summary::before, .census-note .cn-more summary::before { content: ""; flex: none; width: 12px; height: 12px; margin: 0 var(--wp-3) 0 2px;
  background: linear-gradient(var(--wp-rust), var(--wp-rust)) center / 12px 2px no-repeat, linear-gradient(var(--wp-rust), var(--wp-rust)) center / 2px 12px no-repeat; }
.census-note .cn-rest[open] > summary::before, .census-note .cn-more[open] > summary::before { background-size: 12px 2px, 0 0; }
@media (forced-colors: active) { .census-note .cn-rest summary::before, .census-note .cn-more summary::before { display: none; } .census-note .cn-rest summary, .census-note .cn-more summary { display: list-item; } }
.census-note .cn-rest summary:focus-visible, .census-note .cn-more summary:focus-visible { outline: 3px solid var(--cn-color-amber); outline-offset: 2px; }
.census-note .cn-rest-group { padding: var(--wp-3) 0 var(--wp-4); border-top: var(--wp-rule) solid var(--wp-hair); }
.census-note .cn-rest-head { margin: 0 0 var(--wp-2); color: var(--wp-muted); font-size: var(--wp-text-meta); }
.census-note .cn-rest-head code { color: var(--wp-ink); }
.census-note .cn-rest-names { margin: 0; font: 400 var(--wp-text-meta)/1.7 var(--wp-font-mono); }
/* a name stays whole on its line; one longer than a phone line (percona/percona-xtradb-cluster-operator at 320) breaks inside */
.census-note .cn-rest-names span { display: inline-block; max-width: 100%; overflow-wrap: anywhere; }
.census-note .cn-rest-names span:not(:last-child)::after { content: " ·" / ""; color: var(--wp-muted); }

/* Columns in census.csv: a short list, in two or three columns where the page is wide */
.census-note .cn-columns { list-style: none; padding: 0; columns: 2 18rem; column-gap: var(--wp-8); max-width: 60rem !important; }
.census-note .cn-columns li { margin: 0 0 var(--wp-2); break-inside: avoid; }
.census-note .cn-columns li + li { margin-top: 0; }

/* Below 48rem a row of four or five columns would squeeze each cell to a few words a line. Each row becomes a block:
   the row head as its title, then each cell under its column head. Table roles are set in the markup, so screen
   readers keep the table and its headers; the repeated head is drawn by CSS with empty alt text, so it is not read twice. */
@media (max-width: 48rem) {
  .census-note .cn-table, .census-note .cn-table tbody, .census-note .cn-table tr, .census-note .cn-table th, .census-note .cn-table td { display: block; width: auto; }
  .census-note .cn-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .census-note .cn-table tbody { border-top: var(--wp-rule-strong) solid var(--wp-ink); }
  .census-note .cn-table tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: var(--wp-4); row-gap: var(--wp-2); padding: var(--wp-3) 0 var(--wp-4); border-bottom: var(--wp-rule) solid var(--wp-hair); }
  .census-note .cn-table th, .census-note .cn-table td { grid-column: 1 / -1; border: 0; padding: 0; white-space: normal; }
  .census-note .cn-table td::before { content: attr(data-label); content: attr(data-label) / ""; display: block; margin-bottom: 2px; font: 500 var(--wp-text-cite)/1.3 var(--wp-font-mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp-muted); }
  .census-note .cn-table tbody th { font-size: var(--wp-text-body); line-height: 1.4; }
  /* this label starts with a release name (2026e), which uppercase would misspell: sentence case instead */
  .census-note .cn-bases td:nth-child(4)::before { text-transform: none; letter-spacing: 0; }
  /* class, zone and image rows: the short cells pair up side by side */
  .census-note .cn-classes td:nth-child(3), .census-note .cn-classes td:nth-child(4),
  .census-note .cn-zones td, .census-note .cn-images td { grid-column: auto; }
  .census-note .cn-kinds td:nth-child(2), .census-note .cn-kinds td:nth-child(4),
  .census-note .cn-bases td:nth-child(2), .census-note .cn-bases td:nth-child(3) { grid-column: auto; }
  .census-note .cn-zones td:nth-child(4), .census-note .cn-zones td:nth-child(5) { font-family: var(--wp-font-body); font-size: var(--wp-text-ledger); }
  /* image rows are many: a tighter row, the name and digest on one line where they fit */
  .census-note .cn-images tr { row-gap: var(--wp-1); padding: var(--wp-3) 0; }
  .census-note .cn-images tbody th { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 var(--wp-3); margin-bottom: var(--wp-1); }
  .census-note .cn-images .cn-digest { display: inline; margin: 0; }
  .census-note .cn-images td { line-height: 1.35; }
}
