/* Report stylesheet, schema report_v3. Served at /report.css for the on-screen report and inlined into the downloaded file.
   Clay & Linen, as a report: warm-white paper, ink brown text, a wine accent for what needs doing (numbers, links, attention), olive for what to keep and what was reviewed, slate for
   limits and checks. Headings and the brief are set in an old-style serif stack, the body in the platform sans; no font is loaded (the site's policy allows files from our own
   domain only, and the download must work offline). One reading column, at most 860 px. Mobile first: the base rules are the 320 px layout and container queries (named "rp", on
   .report) widen it, so the layout follows the width the report actually has; below 760 px every grid is one column, from 760 px the steps of a finding are a two-column definition grid.
   Colour never carries meaning alone: every outcome has a word and a distinct mark (check, triangle, question mark, dash). The wine and the olive can look alike to some readers, so the
   word and the mark always say it first. Print is low ink: white panels, black text, borders instead of fills.
   No fonts, images or other files are loaded from here. */

.report{
  --ink:#2a2421;--ink2:#4a413b;--muted:#6d625a;--rule:#d9cdbf;--hair:#ebe2d7;--paper:#fff;--plane:#faf5ee;
  --attn:#7a3434;--attn-dark:#5a2626;--attn-pale:#f7ece8;--attn-line:#e3c9c1;--ok:#3f5d3a;--ok-pale:#eef3ea;--ok-line:#cfdcc9;--slate:#3f5266;--slate-pale:#eef2f6;--slate-line:#d6dee7;--focus:#1d4ed8;
  --serif:"Iowan Old Style","Charter","Bitstream Charter","Sitka Text",Cambria,Georgia,serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  container:rp / inline-size;
  display:block;max-width:860px;margin-inline:auto;color:var(--ink);background:transparent;
  font:16px/1.6 var(--sans);
  -webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-wrap:break-word;text-align:left;
}
.report *,.report *::before,.report *::after{box-sizing:border-box}
/* Resets use :where() so they carry no specificity: the page's own element rules lose to them, and the class rules below win. */
.report :where(h1,h2,h3){margin:0;padding:0;color:var(--ink);font-family:var(--serif);font-weight:600;letter-spacing:-.01em;line-height:1.15;text-transform:none}
.report :where(h4){margin:0;padding:0;color:var(--ink);font-family:inherit;font-weight:700;letter-spacing:-.01em;line-height:1.15;text-transform:none}
.report :where(p){margin:0 0 12px}
.report :where(ul,ol,dl,dd,figure,blockquote){margin:0;padding:0}
.report :where(ul,ol){list-style:none}
.report :where(a){color:inherit;text-underline-offset:3px}
.report a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.report :where(img){display:block;max-width:100%;height:auto;border:0}
.report :where(b){font-weight:700}
.rp-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.rp-note{font-size:12.5px;color:var(--muted);white-space:normal}
.rp-photo-count{margin:0 0 6px;font:600 19px/1.3 var(--serif)}
.rp-photo-note{margin:0 0 16px}
.rp-kicker{margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--attn-dark)}
.rp-kicker-ok{color:var(--ok)}

/* Running head: shown in the download and in print; on the site the page header already says it. */
.rp-runhead{display:none;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:0 16px;padding:10px 0 8px;border-bottom:2px solid var(--ink);font-size:13px}
.rp-brand{font-weight:800;font-size:15px;letter-spacing:-.01em}
.rp-brand-sub{font-weight:400;color:var(--muted);font-size:13px;margin-left:6px;letter-spacing:0}
.rp-when{color:var(--muted)}

/* ---- Part 1, the brief --------------------------------------------------------------------------------------------------------------------------------------- */
/* The top of the page (round 2, 9 Oct): the answer is the largest type; the listing name, the place and date, and the one line about the review sit above it, small. */
.rb-mast{padding:14px 0 12px;border-bottom:3px double var(--rule)}
.rb-title{font-size:clamp(22px,3.2vw,28px);line-height:1.2;margin:0 0 4px;overflow-wrap:anywhere}
.rb-meta{margin:0;color:var(--muted);font-size:14px;line-height:1.4}

/* The review the report had: one line of text with a mark, not a panel. The mark is olive for a review that was done and wine for one that was not or could not be applied. */
.rb-status{display:flex;gap:8px;align-items:flex-start;margin:8px 0 0;font-size:13px;line-height:1.45;color:var(--ink2)}
.rb-status-t{min-width:0}
.rb-glyph{flex:0 0 18px;height:18px;margin-top:1px;border-radius:50%;display:grid;place-items:center;font:800 11px/1 var(--sans);color:#fff;background:var(--ok)}
.rb-status-ok .rb-glyph{background:var(--ok)}
.rb-status-warn{color:var(--attn-dark)}
.rb-status-warn .rb-glyph{background:var(--attn)}

.rb-short{margin:20px 0 0}
.rb-kicker{margin:0 0 6px;font:700 11px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.rb-headline{font-size:clamp(32px,6vw,48px);line-height:1.06;margin:0 0 8px}
.rb-then{margin:0;font-size:16px;line-height:1.5;color:var(--ink2)}

.rb-sec{margin:38px 0 0}
.rb-short+.rb-sec{margin-top:18px}
.rb-short+.rb-sec .rb-h{margin-bottom:10px;font-size:22px}
.rb-first,.rb-rest,.rb-only,.rb-keepsec{min-width:0}
.rb-h{margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid var(--rule);font-size:24px;line-height:1.2}
.rb-cards{display:grid;gap:16px}
.rb-card{display:grid;grid-template-columns:52px minmax(0,1fr);gap:4px 14px;padding:20px 22px 18px 16px;background:var(--paper);border:1px solid var(--rule);border-top:4px solid var(--attn);border-radius:12px}
.rb-num{font:600 44px/1 var(--serif);color:var(--attn);text-align:center}
.rb-card-body{min-width:0}
.rb-card-title{margin:2px 0 6px;font-size:22px;line-height:1.25;overflow-wrap:anywhere}
.rb-card-title a{color:var(--ink);text-decoration:none}
.rb-card-title a:hover{color:var(--attn);text-decoration:underline}
.rb-why{margin:0 0 12px;color:var(--ink2);font-size:16px;line-height:1.55}
.rb-repeat{margin:0 0 10px;font-size:14px;font-weight:650;color:var(--ink2)}
.rb-label{display:block;margin:0 0 3px;font:700 11px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--attn)}
.rb-do{margin:0 0 12px;font-size:16px;line-height:1.55}
.rb-wording{margin:4px 0 12px;padding:12px 14px;background:var(--plane);border-left:3px solid var(--attn);border-radius:0 8px 8px 0}
.rb-wording p.rb-label{margin-bottom:5px}
.rb-wording blockquote{margin:2px 0 6px;font:italic 17px/1.5 var(--serif);color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere}
.rb-fine{margin:6px 0 0;font-size:13px;color:var(--muted)}
.rb-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 0}
.rb-chip{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font:600 12px/1.4 var(--sans);border:1px solid var(--rule);color:var(--ink2);background:var(--paper)}
.rb-chip-edit,.rb-chip-confirm,.rb-chip-ask{border-color:#d9b7ae;color:var(--attn-dark);background:var(--attn-pale)}
.rb-chip-check{border-color:#c9d3de;color:var(--slate);background:var(--slate-pale)}
.rb-chip-idea{border-style:dashed;border-color:#a9bba3;color:var(--ok);background:var(--paper)}
.rb-chip-keep{border-color:var(--ok-line);color:var(--ok);background:var(--ok-pale)}
.rb-chip-quiet{border-color:transparent;background:transparent;color:var(--muted);padding-left:2px}

.rb-rows{border-top:1px solid var(--hair)}
.rb-row{padding:14px 0;border-bottom:1px solid var(--hair)}
.report a.rb-row-title{font:600 18px/1.35 var(--serif);color:var(--ink);text-decoration:none;overflow-wrap:anywhere}
.report a.rb-row-title:hover{color:var(--attn);text-decoration:underline}
.rb-row-do{margin:4px 0 2px;color:var(--ink2);font-size:15px;line-height:1.5}
.rb-row .rb-wording{margin:8px 0 6px}
.rb-row .rb-wording blockquote{font-size:16px}

/* the questions and the strengths stack, each as wide as the column (round 2, 9 Oct: side by side at 760 px and wider one column was six times the height of the other) */
.rb-pair{display:block}
.rb-qs{counter-reset:q}
.rb-qs li{position:relative;padding:10px 0 10px 40px;border-bottom:1px solid var(--hair);counter-increment:q}
.rb-qs li::before{content:counter(q);position:absolute;left:0;top:10px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:700 13px/1 var(--sans);color:var(--attn);border:1.5px solid var(--attn)}
.rb-q{margin:0;font-size:16px;line-height:1.5;color:var(--ink)}
.rb-q-why{margin:3px 0 0;font-size:14px;color:var(--muted)}
.rb-keeps li{position:relative;padding:10px 0 10px 40px;border-bottom:1px solid var(--hair)}
.rb-keeps li::before{content:"\2713";position:absolute;left:0;top:10px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:800 13px/1 var(--sans);color:#fff;background:var(--ok)}
.rb-keep-t{margin:0;font:600 17px/1.35 var(--serif)}
.report .rb-keep-t a{color:var(--ink);text-decoration:none}
.report .rb-keep-t a:hover{color:var(--ok);text-decoration:underline}
.rb-keep-d{margin:3px 0 0;font-size:14px;color:var(--ink2)}

.rb-unseen ul{margin:0;padding:14px 18px;background:var(--slate-pale);border:1px solid var(--slate-line);border-radius:10px}
.rb-unseen li{display:flex;gap:2px 14px;padding:6px 0;font-size:15px;line-height:1.5;color:var(--ink2)}
.rb-unseen li+li{border-top:1px solid #dbe2ea}
.rb-unseen-k{flex:0 0 230px;font-weight:700;color:var(--slate)}

.rb-next{display:flex;flex-wrap:wrap;gap:10px;margin:34px 0 0;padding-top:18px;border-top:3px double var(--rule)}
.report .rb-next a{display:inline-flex;padding:9px 16px;border-radius:999px;border:1px solid var(--attn);color:var(--attn);font:600 14px/1.2 var(--sans);text-decoration:none}
.report .rb-next a:hover{background:var(--attn);color:#fff}
.rb-next a::after{content:" \2193";white-space:pre}

@container rp (max-width:600px){
  .rb-card{grid-template-columns:34px minmax(0,1fr);padding:16px 14px 14px 10px}
  .rb-num{font-size:32px}
  .rb-card-title{font-size:20px}
  .rb-unseen li{display:block}
}

/* ---- Part 2 and Part 3 bands ----------------------------------------------------------------------------------------------------------------------------------- */
.rb-band{margin:64px 0 6px;padding-top:22px;border-top:3px double var(--rule)}
.rb-part{font-size:clamp(26px,3.2vw,32px);margin:0 0 8px}
.rb-band-note{max-width:62ch;margin:0 0 6px;color:var(--ink2)}
.rb-kicker+.rb-part{margin-top:0}

/* Sections */
.rp-band{padding:30px 0 8px;border-top:1px solid var(--rule)}
.rp-band-h{font-size:clamp(22px,5.4vw,28px);line-height:1.15;max-width:32ch;margin:0 0 8px}
.rp-band-sub{color:var(--ink2);max-width:62ch;margin-bottom:20px}
.rp-block-sub{margin:16px 0 6px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.rp-none{font-size:17px;max-width:62ch;margin:8px 0 24px}

/* Opening photos */
.rp-strip-wrap{padding-bottom:6px}
.rp-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
.rp-strip>li{min-width:0}
.rp-strip>li:first-child{grid-column:1/-1}
.rp-strip figure,.rp-exhibits figure{min-width:0}
.rp-strip figcaption{margin-top:4px;font-size:12px;line-height:1.35;color:var(--muted)}
.rp-strip-cap{margin:10px 0 0;font-size:12.5px;color:var(--muted);font-style:italic}
.rp-photo{display:block;min-width:0;background:var(--hair)}
.rp-photo .rp-img{width:100%;aspect-ratio:4/3;object-fit:cover}
.rp-photo-missing{display:grid;place-items:center;aspect-ratio:4/3;width:100%;border:1px dashed var(--rule);color:var(--muted);font-size:12px}
.rp-photo-missing::before{content:"Photo not in this download"}
/* On the site, tester.js puts this where a picture failed to load: a sentence in the page (so it prints and is read out), not a generated label. */
.rp-photo-failed{padding:8px;text-align:center;line-height:1.35;color:var(--ink2);border-style:solid}
.rp-photo-failed::before,.rp-thumbs .rp-photo-failed::before{content:none}
.rp-photo-fail-note{margin:12px 0 0;padding:10px 12px;border:2px solid var(--ink);font-size:14.5px;line-height:1.45}

/* The areas (Part 3): the producer's headline for them, then the table */
.rp-areahead{margin:0 0 14px;max-width:62ch;font:600 19px/1.35 var(--serif);color:var(--ink)}
.rp-legend{margin:14px 0 20px;font-size:13.5px;color:var(--muted);max-width:70ch}
.rp-review-scope{margin-bottom:0;color:var(--ink2)}

/* The listing and the dates checked (what the cover's side panel said) */
.rp-data{border-top:1px solid var(--rule);font-size:14.5px;line-height:1.45}
.rp-data>div{display:grid;grid-template-columns:minmax(0,92px) minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid var(--hair)}
.rp-data dt{color:var(--muted);font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;font-weight:650;padding-top:2px}
.rp-data dd{overflow-wrap:anywhere}
.rp-data dd>span{display:block}
.rp-subst{margin-top:4px;color:var(--attn-dark)}

/* Tables: a real table from 560 px, stacked rows below it */
/* table-layout:auto: a column is never narrower than the outcome pill in it (the pills do not wrap), and the percentages below are only where the rest of the width goes */
.rp-table{width:100%;border-collapse:collapse;table-layout:auto;border-top:1px solid var(--rule);font-size:15px}
.rp-table th,.rp-table td{text-align:left;vertical-align:top;padding:12px 12px 12px 0;border-bottom:1px solid var(--hair);font-weight:400;overflow-wrap:anywhere}
.rp-table thead th{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
.rp-table tbody th{font-weight:700}
.rp-table td p{margin:0 0 6px}
.rp-table td::before{display:none}
.rp-table-areas th:nth-child(1){width:22%}.rp-table-areas th:nth-child(2){width:28%}
.rp-table-coverage th:nth-child(1){width:17%}.rp-table-coverage th:nth-child(2){width:30%}.rp-table-coverage th:nth-child(3){width:26%}
.rp-table-rules th:nth-child(1){width:30%}.rp-table-rules th:nth-child(2){width:23%}  /* before the narrow-container rule below, so that rule wins when the rows stack */
.rp-flink{display:inline-block;margin-left:4px;font-size:13px;font-weight:600;color:var(--attn-dark);white-space:nowrap}
.rp-gaps li{position:relative;padding-left:14px;margin:0 0 4px}
.rp-gaps li::before{content:"";position:absolute;left:0;top:.7em;width:6px;height:2px;background:var(--ink)}
.rp-gap-none{margin:0}
.rp-outcome{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:2px 10px 2px 3px;border:1.5px solid currentColor;border-radius:999px;font-size:13px;font-weight:700;line-height:1.4;white-space:nowrap}
.rp-mark{display:inline-grid;place-items:center;flex:none;width:19px;height:19px;border-radius:50%;font-size:12px;line-height:1;font-weight:800;color:#fff}
.rp-outcome-meets{color:var(--ok);background:var(--ok-pale)}.rp-outcome-meets .rp-mark{background:var(--ok)}
.rp-outcome-needs{color:var(--attn-dark);background:var(--attn-pale)}.rp-outcome-needs .rp-mark{background:var(--attn);border-radius:3px}
.rp-outcome-unknown{color:var(--ink2);background:#fff;border-style:dashed}.rp-outcome-unknown .rp-mark{background:#fff;color:var(--ink2);border:1.5px solid var(--ink2)}
.rp-outcome-na{color:var(--muted);background:var(--plane);border-color:var(--rule)}.rp-outcome-na .rp-mark{background:var(--muted)}
.rp-outcome-idea{color:var(--ok);background:#fff;border-style:dashed}.rp-outcome-idea .rp-mark{background:var(--ok)}
@container rp (max-width:559.98px){
  .rp-table,.rp-table tbody,.rp-table tr,.rp-table th,.rp-table td{display:block;width:100%}
  .rp-table thead{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}
  .rp-table tr{padding:10px 0;border-bottom:1px solid var(--hair)}
  .rp-table th,.rp-table td{padding:2px 0;border:0}
  .rp-table td::before{content:attr(data-label);display:block;margin:6px 0 2px;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
  .rp-table-areas th:nth-child(n),.rp-table-coverage th:nth-child(n),.rp-table-rules th:nth-child(n){width:100%}
}

/* Findings (Part 2). One column: the evidence, then the steps. A guide to the point is in the brief; this is the detail behind it. */
.rp-finding{padding:30px 0 34px;border-top:1px solid var(--rule)}
.rp-findings>.rp-finding:first-of-type{border-top:0;padding-top:12px}
.rp-finding-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 14px;align-items:start;margin-bottom:22px}
.rp-finding-head-plain{grid-template-columns:minmax(0,1fr)}
.rp-fixno{font:600 48px/.9 var(--serif);color:var(--attn);letter-spacing:-.04em}
.rp-finding-title{min-width:0}
.rp-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.rp-tag{padding:2px 9px;border:1px solid var(--rule);border-radius:999px;background:#fff;color:var(--ink2);font-size:12px;font-weight:700;line-height:1.5}
.rp-tag-material{border-color:var(--attn);background:var(--attn-pale);color:var(--attn-dark)}
.rp-guestq{display:flex;flex-direction:column;gap:2px;margin:0 0 10px}
.rp-guestq-l{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.rp-guestq-t{font:italic 600 18px/1.35 var(--serif)}
.rp-finding h3{font-size:clamp(21px,5vw,26px);line-height:1.18;max-width:36ch;overflow-wrap:anywhere}
.rp-saw{margin:12px 0 0;font-size:17px;line-height:1.5;color:var(--ink2);max-width:62ch}
.rp-saw b{color:var(--ink)}
.rp-repeat{margin:8px 0 0;font-size:15px;font-weight:650;line-height:1.4;color:var(--ink2)}
.rp-finding-body{display:grid;grid-template-columns:minmax(0,1fr);gap:26px}
.rp-evidence-col{min-width:0}
.rp-exh{margin:0 0 8px;font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.rp-exhibits-wrap{margin-top:24px}
.rp-versus{display:grid;grid-template-columns:minmax(0,1fr);border:1px solid var(--rule);border-radius:10px;overflow:hidden}
.rp-side{min-width:0;padding:14px 16px 4px}
.rp-side-one{border:1px solid var(--rule);border-radius:10px}
.rp-side-b{background:var(--attn-pale)}
.rp-seal{display:flex;justify-content:center;height:0;position:relative;z-index:1}
.rp-seal span{display:grid;place-items:center;flex:none;width:34px;height:34px;margin-top:-17px;border-radius:50%;background:var(--ink);color:#fff;font-weight:800;font-size:18px;line-height:1}
.rp-seal+.rp-side{padding-top:28px}
.rp-side-h{margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2)}
.rp-quote{margin:0 0 14px;min-width:0}
.rp-quote figcaption{margin:0 0 4px;font-size:12px;font-weight:650;color:var(--muted)}
.rp-quote blockquote{padding-left:12px;border-left:3px solid var(--attn);font:16px/1.5 var(--serif);white-space:pre-wrap;overflow-wrap:anywhere}
.rp-side-b .rp-quote blockquote{border-left-color:var(--attn-dark)}
.rp-exhibits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.rp-exhibits li{min-width:0}
.rp-exhibits figcaption{margin-top:6px;font-size:13.5px;line-height:1.45;color:var(--ink2)}
.rp-steps{border-top:1px solid var(--rule);align-self:start;min-width:0}
.rp-steps>div{padding:14px 0 8px;border-bottom:1px solid var(--hair)}
.rp-steps h4{margin:0 0 6px;font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.rp-steps p{margin:0 0 6px;font-size:16px;line-height:1.55}
.rp-do p{font-weight:600}
.rp-do p.rp-pointer{font-weight:400}
.rp-pointer a{color:var(--attn);font-weight:600}
.rp-owner{padding-inline:12px;background:var(--plane)}
.rp-flimits li{position:relative;padding-left:14px;margin:0 0 4px;font-size:15px}
.rp-flimits li::before{content:"";position:absolute;left:0;top:.7em;width:6px;height:2px;background:var(--ink)}

/* Also worth a look: the points the brief gives no number, written out as every other finding */
.rp-also>.rp-finding:first-of-type{border-top:0;padding-top:12px}
.rp-nclist{border-top:1px solid var(--rule);margin:14px 0 22px}
.rp-nclist li{padding:9px 0;border-bottom:1px solid var(--hair);font-size:16px;line-height:1.45}
.rp-nc{display:block;font-weight:400}

/* Advice tags, suggested wording, combined points, numbers, guest concerns, open checks and the expandable blocks (sprint 2 C). Every tag carries words; colour only helps. */
.rp-tag-step{border-color:#d9b7ae;background:var(--attn-pale);color:var(--attn-dark)}
.rp-tag-idea{border-style:dashed;border-color:#a9bba3;background:#fff;color:var(--ok)}
.rp-tag-who{border-color:transparent;background:transparent;color:var(--muted);padding-left:2px}
.rp-who{display:block;margin-top:2px;font-size:13px;font-weight:500;color:var(--muted)}
.rp-keepnote{margin:8px 0;font-size:15px}
.rp-partial{display:inline-block;margin:4px 4px 0 0;padding:1px 8px;border:1.5px dashed var(--ink2);border-radius:999px;font-size:13px;font-weight:650;color:var(--ink2)}
.rp-qmeta{margin:4px 0 0 15px;font-size:12.5px;line-height:1.4;color:var(--muted)}
.rp-side-extra{margin-top:12px;border-top:1px solid var(--rule)}
.rp-draft{margin:0 0 8px;padding:10px 12px;border:1px solid var(--rule);background:var(--plane);font-size:15.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.rp-conseq{margin:6px 0 0;font-size:15px}
.rp-members>ul>li{margin:10px 0;padding-left:12px;border-left:3px solid var(--attn)}
.rp-members li p{margin:4px 0;font-size:15px;line-height:1.5}
.rp-counts li{padding:6px 0}
.rp-removed li{margin:8px 0}
.rp-checknote p,.rp-recent p{font-size:15px}
.rp-conflict{margin:0 0 12px;padding:8px 10px;border:1.5px solid var(--attn);background:var(--attn-pale);font-size:15px;line-height:1.45}
.rp-dims li{margin:0 0 6px;font-size:15px;line-height:1.45}
.rp-offer{margin:8px 0 14px;padding-top:8px;border-top:1px solid var(--hair)}
.rp-themes>li{border-bottom:1px solid var(--hair)}
.rp-theme-n{font-weight:700}
.rp-theme-c{margin-left:10px;font-weight:500;color:var(--muted)}
.rp-unr,.rp-checklist{border-top:1px solid var(--rule);margin-top:14px}
.rp-unr-item,.rp-check{padding:16px 0 6px;border-bottom:1px solid var(--hair)}
.rp-unr-item h3,.rp-check h3{margin:0 0 8px;font-size:19px;line-height:1.25}
.rp-unr-item h3{font-size:17px}
.rp-reasons li,.rp-ended li{position:relative;padding:4px 0 4px 16px;font-size:15px}
.rp-reasons li::before{content:"";position:absolute;left:0;top:.95em;width:7px;height:2px;background:var(--ink)}
.rp-ended li{padding-left:0;border-bottom:1px solid var(--hair);font-size:14.5px}
.rp-ended span{display:block}
/* The rule-by-rule list is long (about 60 rows): kept tight so it does not run to many pages */
.rp-table-rules{font-size:13.5px;line-height:1.4}
.rp-table-rules th,.rp-table-rules td{padding:6px 10px 6px 0}
.rp-table-rules tbody th{font-weight:650}
.rp-table-rules td p{margin:0 0 2px}
.rp-causelist li{padding:6px 0;border-top:1px solid var(--hair)}.rp-causelist li:first-child{border-top:0;padding-top:2px}
.rp-causelist p{margin:0 0 2px}
.rp-table-rules .rp-cause .rp-fold{margin:0}
.rp-table-rules .rp-outcome{font-size:12px}
.rp-table-rules .rp-note{display:inline}
.rp-unraised,.rp-openchecks,.rp-checked,.rp-notconfirmed,.rp-qev,.rp-listing{padding-bottom:6px}
.rp-qev-item{padding:14px 0 4px;border-top:1px solid var(--hair)}
.rp-qev-list h3{margin:0 0 8px;font-size:17px}
.rp-guide{margin:0}
.rp-wording{margin:0}
.rp-fold{margin:10px 0 14px}
.rp-fold>summary{cursor:pointer;padding:6px 0;font-size:15px;font-weight:650}
.rp-fold>summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.rp-fold-sub>summary{color:var(--ink2)}

/* Part 3: each section is a fold (written open: the download and a print show everything; tester.js folds them on the site) */
.rp-fold-part{margin:0;border-top:1px solid var(--rule)}
.rp-fold-part>summary{display:flex;align-items:center;gap:10px;padding:16px 0;font:600 19px/1.3 var(--serif);color:var(--ink);cursor:pointer;list-style:none}
.rp-fold-part>summary::-webkit-details-marker{display:none}
.rp-fold-part>summary::before{content:"\25B8";flex:none;color:var(--attn);font:700 14px/1 var(--sans)}
.rp-fold-part[open]>summary::before{content:"\25BE"}
.rp-fold-part>.rp-band{border-top:0;padding-top:6px}
.rp-fold-part>.rp-strip-wrap{padding-top:6px}

/* Strengths */
.rp-keep{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;margin-top:18px}
.rp-strength{min-width:0;border-top:1px solid var(--rule);padding-top:14px}
.rp-strength h3{display:grid;grid-template-columns:26px minmax(0,1fr);gap:6px;font-size:20px;line-height:1.25}
.rp-tick{color:var(--ok);font-weight:800}
.rp-basis{margin:6px 0 12px;font-size:12.5px;font-weight:650;color:var(--muted)}
.rp-strength .rp-quote blockquote{border-left-color:var(--ok)}

/* Photos by room */
.rp-rooms{border-top:1px solid var(--rule)}
.rp-room{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--hair)}
.rp-room-n{font-size:15px;font-weight:650;line-height:1.3;overflow-wrap:anywhere}
.rp-room-c{font-size:15px;font-weight:800;text-align:right}
.rp-thumbs{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:3px}
.rp-thumbs li{min-width:0}
.rp-thumbs .rp-photo .rp-img{aspect-ratio:1}
.rp-thumbs .rp-photo-missing{aspect-ratio:1;padding:4px;text-align:center;font-size:11px;line-height:1.25}
.rp-thumbs .rp-photo-failed{aspect-ratio:auto;min-height:52px;font-size:10.5px}
.rp-thumbs .rp-photo-missing::before{content:"Not in this download"}

/* Reviews, price, search */
.rp-blocks{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;margin-top:18px}
.rp-block{min-width:0;border-top:1px solid var(--rule);padding-top:14px}
.rp-block h3{margin-bottom:10px;font-size:18px;line-height:1.3}
.rp-lines li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 12px;padding:6px 0;border-bottom:1px solid var(--hair);font-size:15px}
.rp-lines li span{min-width:0;overflow-wrap:anywhere}
.rp-lines li span:last-child{font-weight:650;text-align:right}
.rp-limit{margin:12px 0 0;font-size:13.5px;color:var(--muted)}

/* About this check */
.rp-models{border-top:1px solid var(--rule);max-width:420px}
.rp-models>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--hair);font-size:14.5px}
.rp-models dt{color:var(--muted)}
.rp-models dd{font-weight:650;overflow-wrap:anywhere;text-align:right}
.rp-limits{max-width:70ch}
.rp-limits li{position:relative;padding:4px 0 4px 16px;font-size:15px}
.rp-limits li::before{content:"";position:absolute;left:0;top:.95em;width:7px;height:2px;background:var(--ink)}
.rp-colophon{display:grid;gap:6px;margin-top:30px;padding:16px 0 8px;border-top:3px double var(--rule);font-size:12.5px;color:var(--muted)}
.rp-colophon p{margin:0;overflow-wrap:anywhere}
.rp-ref{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;user-select:all}

/* Medium: 560 px of report width and up */
@container rp (min-width:560px){
  .rp-strip{grid-template-columns:repeat(var(--cols,5),minmax(0,1fr))}
  .rp-strip>li:first-child{grid-column:auto}
  .rp-strip-1{--cols:1}.rp-strip-2{--cols:2}.rp-strip-3{--cols:3}.rp-strip-4{--cols:4}
  .rp-versus{grid-template-columns:minmax(0,1fr) 0 minmax(0,1fr)}
  .rp-seal{height:auto;width:0;align-items:center}
  .rp-seal span{margin-top:0}
  .rp-side{padding:16px 26px 6px}
  .rp-seal+.rp-side{padding-top:16px}
  .rp-fixno{font-size:60px}
  .rp-finding-head{gap:10px 20px}
  .rp-room{grid-template-columns:150px 34px minmax(0,1fr)}
  .rp-thumbs{grid-column:auto}
}
@container rp (max-width:419.98px){.rp-exhibits{grid-template-columns:minmax(0,1fr)}}

/* Wide: 760 px of report width and up. The steps of a finding (why it matters, what to do, how to check, ...) become a definition grid: the label on the left, the words on the right. */
@container rp (min-width:760px){
  .rp-steps>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:0 24px}
  .rp-steps>div>h4{grid-column:1;grid-row:1;padding-top:3px}
  .rp-steps>div>:not(h4){grid-column:2}
  .rp-data>div{grid-template-columns:minmax(0,150px) minmax(0,1fr)}
}

/* The downloaded file: a sheet on a light page */
.rp-standalone{margin:0;padding:16px;background:var(--plane,#faf5ee);color:#2a2421}
.rp-standalone .report{margin:0 auto;padding:0 clamp(16px,4vw,40px) 24px;background:#fff;box-shadow:0 1px 2px rgba(42,36,33,.06),0 12px 40px rgba(42,36,33,.06)}
.rp-standalone .rp-runhead{display:flex}
.rp-standalone .rp-thumbs{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:6px}
.rp-print-hint{max-width:940px;margin:0 auto 10px;padding:6px 14px;border:1px solid #d9cdbf;background:#fff;font:13px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:#2a2421}
.rp-print-hint p{margin:0}

/* Print: white, dark text, no large fills, links spelled out, "Page n of N" on every page. The brief takes its own pages, and Part 2 and Part 3 each start on a new page. A finding is allowed to
   run across pages: forcing each one onto a fresh page and keeping a tall one whole left almost-empty pages (docs/review-2026-10-07/sprints/sprint-2-B-pdf-diagnosis.md, cause 2); only its
   head stays together and stays with the text after it. A card of the brief and a row of its lists are short and are not cut across two pages. */
@media print{
  @page{margin:14mm;@bottom-center{content:"Page " counter(page) " of " counter(pages);font:9pt "Helvetica Neue",Helvetica,Arial,sans-serif;color:#000}}
  html,body,.rp-standalone{background:#fff!important;color:#000}
  .rp-standalone{padding:0}
  .rp-standalone .report{max-width:none;margin:0;padding:0;box-shadow:none}
  .rp-print-hint,.rp-flink,.rb-next{display:none!important}
  .rp-runhead{display:flex!important}
  .report{max-width:none;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:11pt;line-height:1.45;color:#000;-webkit-print-color-adjust:economy;print-color-adjust:economy}
  .report *{background-image:none!important;box-shadow:none!important}
  .report :where(h1,h2,h3){font-family:Georgia,"Times New Roman",serif}
  .rp-side-b,.rp-owner,.rp-draft,.rp-conflict,.rp-tag,.rp-tag-material,.rp-outcome,.rp-outcome-meets,.rp-outcome-needs,.rp-outcome-unknown,.rp-outcome-na,.rp-outcome-idea{background:#fff!important}
  .rp-photo,.rp-photo-missing,.rp-photo-failed{background:#fff!important}
  .rp-mark{background:#fff!important;color:#000!important;border:1.5px solid #000!important}
  .rp-seal span{background:#fff!important;color:#000!important;border:2px solid #000}
  .rp-fixno,.rp-kicker,.rp-kicker-ok,.rp-tick,.rp-subst,.rp-outcome-meets,.rp-outcome-needs,.rp-outcome-idea,.rp-pointer a{color:#000!important}
  .rp-quote blockquote,.rp-side-b .rp-quote blockquote,.rp-strength .rp-quote blockquote,.rp-members>ul>li{border-left-color:#000}
  .rp-quote blockquote{max-height:none!important;overflow:visible!important}
  .rp-band{padding-top:18px}
  /* The brief: white panels, black text, borders instead of fills. */
  .rb-brief{break-after:page}
  .rb-card,.rb-wording,.rb-unseen ul,.rb-chip{background:#fff!important}
  .rb-unseen ul{border:1.5px solid #000}
  .rb-glyph,.rb-keeps li::before,.rb-status-warn .rb-glyph{background:#fff!important;color:#000!important;border:1.5px solid #000}
  .rb-status,.rb-status-warn{color:#000}
  .rb-num,.rb-label,.rb-card-title a,.rb-row-title,.rb-qs li::before,.rb-keep-t a,.rb-unseen-k{color:#000!important}
  .rb-qs li::before{border-color:#000}
  .rb-chip,.rb-chip-edit,.rb-chip-confirm,.rb-chip-ask,.rb-chip-check,.rb-chip-idea,.rb-chip-keep{color:#000;border-color:#000}
  .rb-chip-quiet{border-color:transparent}
  .rb-card{border:1px solid #000;border-top:3px solid #000}
  .rb-wording{border-left-color:#000}
  .rb-card,.rb-row,.rb-qs li,.rb-keeps li,.rb-unseen li{break-inside:avoid}
  .rb-cards,.rb-pair{display:block}  /* grids on screen; as plain blocks they flow across the brief's pages like the other grids below */
  .rb-cards>li+li{margin-top:9px}
  .rb-pair>section+section{margin-top:22px}
  /* The brief is meant to fit two pages: set a little tighter on paper than on screen. */
  .rb-mast{padding:4px 0 8px}
  .rb-title{font-size:17px;margin-bottom:2px}
  .rb-meta{font-size:11.5px}
  .rb-status{margin:5px 0 0;font-size:11.5px}
  .rb-short{margin:12px 0 0}
  .rb-headline{font-size:28px;margin-bottom:4px}
  .rb-then{font-size:12.5px}
  .rb-short+.rb-sec{margin-top:12px}
  .rb-sec{margin-top:16px}
  .rb-h{font-size:17.5px;margin-bottom:7px;padding-bottom:4px}
  .rb-card{grid-template-columns:32px minmax(0,1fr);padding:8px 12px 7px 8px}
  .rb-num{font-size:28px}
  .rb-card-title{font-size:16px;margin-bottom:2px}
  .rb-why,.rb-do{font-size:12px;margin-bottom:5px}
  .rb-wording{padding:6px 10px;margin:2px 0 6px}
  .rb-wording blockquote{font-size:12.5px;margin-bottom:2px}
  .rb-fine{font-size:11px;margin-top:3px}
  .rb-chips{margin-top:3px}
  .rb-row{padding:8px 0}
  .report a.rb-row-title{font-size:14.5px}
  .rb-row-do{font-size:12.5px}
  .rb-qs li,.rb-keeps li{padding-block:7px}
  .rb-qs li::before{top:7px}
  .rb-keeps li::before{top:7px}
  .rb-q{font-size:12.5px}
  .rb-q-why{font-size:11px}
  .rb-keep-t{font-size:14.5px}
  .rb-keep-d{font-size:11.5px}
  .rb-unseen ul{padding:8px 12px}
  .rb-unseen li{font-size:12px;padding:4px 0}
  .rb-h,.rb-headline,.rb-card-title{break-after:avoid}
  .rb-band{margin-top:0;break-before:page}
  .rb-title,.rb-headline{color:#000}
  .rp-fold-part>summary{padding:10px 0 4px;color:#000}
  .rp-fold-part>summary::before{display:none}
  /* These are grids on screen. Chromium moved a whole grid to a fresh page when it was a little too tall for the rest of the page (page 1 held only the running head; a page held one photo row
     and the next section began on the next page), and a row of three finding steps cannot be split; as plain blocks, one under the other, they flow across pages. */
  .rp-blocks,.rp-keep,.rp-finding-body,.rp-steps{display:block}
  .rp-blocks>*+*,.rp-keep>*+*,.rp-finding-body>*+*{margin-top:24px}
  .rp-table-rules{font-size:9.5pt}
  .rp-colophon{display:block;break-inside:avoid}
  .rp-colophon p{margin:0 0 6px}
  .rp-steps>div{border-bottom:1px solid var(--hair)}
  .rp-versus{display:block}
  .rp-seal{display:block;height:auto;width:auto;text-align:center}
  .rp-seal span{display:inline-grid;margin:4px 0}
  .rp-seal+.rp-side{padding-top:14px}
  /* A card taller than what is left of a page (a strength with its quotes and Airbnb's words, a guest concern, an open check) is allowed to run on; each quote and each heading with its first lines stays whole.
     Keeping them whole left a page holding only the end of the finding before it (sprint-2-C-report-page.md). */
  .rp-quote,.rp-exhibits figure,.rp-room,.rp-table tr,.rp-steps>div,.rp-versus,.rp-offer,.rp-members li,.rp-counts li,.rp-draft{break-inside:avoid}
  .rp-steps>.rp-members,.rp-steps>.rp-counts,.rp-steps>.rp-guide{break-inside:auto}
  .rp-band-h,.rp-finding h3,.rp-kicker{break-after:avoid}
  /* Save as PDF and Print: a heading never ends a page, and a table row or a card is not cut across two pages where it can be avoided. The page-break-* lines are the older names some browsers still read. */
  .report h1,.report h2,.report h3,.report h4,.report h5,.report h6,.rp-band-h,.rp-band-sub,.rp-side-h,.rp-block-sub,.rp-finding-head{break-after:avoid;page-break-after:avoid}
  .report tr,.rp-finding-head,.rp-owner{break-inside:avoid;page-break-inside:avoid}
  a{text-decoration:none}
  a.rp-ext::after{content:" (" attr(href) ")";font-size:.88em;word-break:break-all}
  /* Pagination of the tables and the last page (round 2, 9 Oct). A tall row of the area table, of the scope table or of a cause in the rule table may run across two pages (kept whole, it moved to the next page and left the
     one before it half empty); the header of every table stays with its first row and is repeated on the next page; the colophon is kept with what comes before it, so it is never
     alone on a last page. */
  .rp-table thead{display:table-header-group;break-after:avoid;page-break-after:avoid}
  .rp-table thead tr{break-after:avoid}
  .rp-table tbody,.rp-table tbody tr:first-child{break-before:avoid;page-break-before:avoid}  /* Chromium reads this one: the header is never the last thing on a page */
  .rp-table-areas tr,.rp-table-coverage tr,.rp-table-rules tr.rp-cause{break-inside:auto;page-break-inside:auto}
  .rp-colophon{break-before:avoid;page-break-before:avoid}
  /* A cell of the area, scope and rule tables may be cut after one line (the default keeps two lines on each side of a break, and with the "partly checked" box at the end of an area's
     sentence Chromium then moved the whole row to the next page, leaving 25 to 45 per cent of the page before it empty). */
  .rp-table td{orphans:1;widows:1}
  .rp-partial{margin:0}  /* no margin around the box on paper: with it, Chromium kept the row whole */
  .rp-ended li,.rp-causelist li{break-inside:avoid;page-break-inside:avoid}  /* a row of "how each point ended" goes to the last page whole, with the colophon */
  .rp-strip,.rp-exhibits{gap:6px}
}
