/* Sample report page only (sample-report.html). Builds on style.css tokens; no new fonts, no external requests.
   Rating colours carry a text label too (never colour alone). Contrast: red #B42318/#FEF4F3 6.0:1, amber #8A4B00/#FFF4E0 6.3:1, green #0A6B2D/#ECF7F0 6.2:1. */
:root{--r-red:#B42318;--r-red-bg:#FEF4F3;--r-red-line:#F4CFCB;--r-amb:#8A4B00;--r-amb-bg:#FFF4E0;--r-amb-line:#F3D9A8;--r-grn:#0A6B2D;--r-grn-bg:#ECF7F0;--r-grn-line:#BFE3CB}

.rp-hero{padding:56px 0 48px;background:linear-gradient(180deg,#FFFFFF 0,var(--bg-alt) 100%);border-bottom:1px solid var(--line)}
.rp-sample-note{display:block;margin:0 0 32px;padding:14px 18px;border:1px dashed var(--field);border-radius:var(--r);background:#fff;font-size:.9375rem;line-height:1.55;color:var(--fg);max-width:760px}
.rp-sample-note strong{color:var(--ink)}
.rp-kicker{margin:0 0 12px;font-size:.8125rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.rp-hero h1{font-size:clamp(2rem,1.5rem + 2.2vw,2.875rem);margin:0 0 16px}
.rp-hero .lead{max-width:44em}
.rp-meta{display:grid;gap:0;margin:32px 0 0;max-width:880px;border-top:1px solid var(--line);font-size:.9375rem}
.rp-meta div{display:grid;grid-template-columns:168px minmax(0,1fr);gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}
.rp-meta dt{color:var(--muted)}
.rp-meta dd{margin:0;color:var(--ink)}
code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;font-size:.86em;background:var(--bg-alt);border:1px solid var(--line);border-radius:6px;padding:1px 5px;overflow-wrap:anywhere}

.rp-section{padding:64px 0}
.rp-section h2{font-size:clamp(1.5rem,1.25rem + 1vw,2rem);margin:0 0 20px}
.rp-section .intro{color:var(--muted);max-width:44em}

/* Verdict */
.verdict{position:relative;padding:28px 28px 24px 32px;border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:var(--shadow-2);max-width:880px}
.verdict::before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:4px;border-radius:0 4px 4px 0;background:var(--accent)}
.verdict-label{margin:0 0 8px;font-size:.8125rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}
.verdict-text{margin:0 0 16px;font-size:1.1875rem;line-height:1.5;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.verdict p:last-child{margin-bottom:0}
.actions{margin:24px 0 0;padding:0;list-style:none;counter-reset:act;display:grid;gap:12px;max-width:880px}
.actions li{counter-increment:act;position:relative;padding:14px 16px 14px 56px;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.actions li::before{content:counter(act);position:absolute;left:16px;top:13px;width:26px;height:26px;border-radius:999px;background:var(--accent-tint);color:var(--accent);font-weight:700;font-size:.875rem;line-height:26px;text-align:center}
.actions .who{display:block;font-size:.8125rem;color:var(--muted)}

/* One-page summary */
.sum-grid{display:grid;gap:8px 48px;max-width:1040px}
ol.top5{margin:0;padding:0;list-style:none;display:grid;gap:10px}
ol.top5 li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;align-items:baseline;padding:12px 16px;border:1px solid var(--line);border-radius:var(--r);background:#fff;font-size:.9375rem;line-height:1.55;color:var(--ink)}
ol.top5 .pill{justify-self:start}
ol.top5 .effort{margin:0 0 0 6px}
.effort-key{margin:20px 0 0}
@media (min-width:960px){.sum-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}
@media (max-width:420px){ol.top5 li{grid-template-columns:minmax(0,1fr);gap:6px}}

/* Scorecard */
.score-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:var(--shadow-1)}
table.score{width:100%;border-collapse:collapse;font-size:.9375rem;line-height:1.5}
table.score caption{text-align:left;padding:0 0 12px;color:var(--muted);font-size:.875rem;caption-side:top}
table.score th,table.score td{padding:12px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
table.score thead th{font-size:.8125rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--bg-alt)}
table.score tbody tr:last-child th,table.score tbody tr:last-child td{border-bottom:0}
table.score tbody th{font-weight:600;color:var(--ink);width:30%}
table.score td.rate{width:120px;white-space:nowrap}
.pill{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:999px;border:1px solid;font-size:.75rem;font-weight:700;letter-spacing:.06em;line-height:1.6}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.pill.red{color:var(--r-red);background:var(--r-red-bg);border-color:var(--r-red-line)}
.pill.amber{color:var(--r-amb);background:var(--r-amb-bg);border-color:var(--r-amb-line)}
.pill.green{color:var(--r-grn);background:var(--r-grn-bg);border-color:var(--r-grn-line)}
.legend{display:flex;flex-wrap:wrap;gap:8px 20px;margin:16px 0 0;padding:0;list-style:none;font-size:.875rem;color:var(--muted)}
.legend li{display:flex;gap:8px;align-items:center}

/* Risks */
.risks{display:grid;gap:20px}
.risk{border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:var(--shadow-1);padding:24px}
.risk-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;margin:0 0 16px}
.risk-num{font-size:.8125rem;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.risk h3{font-size:1.1875rem;margin:0;flex:1 1 320px}
.risk dl{margin:0;display:grid;gap:0}
.risk dl div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;padding:10px 0;border-top:1px solid var(--line);font-size:.9375rem;line-height:1.6}
.risk dt{color:var(--muted);font-weight:600}
.risk dd{margin:0;color:var(--fg)}
.risk .ask{font-style:italic;color:var(--ink)}
.effort{display:inline-block;min-width:24px;margin-right:6px;padding:0 7px;border-radius:6px;background:var(--ink);color:#fff;font-size:.75rem;font-weight:700;text-align:center;line-height:1.7}

/* Two-column lists */
.cols{display:grid;gap:40px}
ol.qs{margin:0;padding-left:22px;display:grid;gap:10px;max-width:44em}
ol.qs li::marker{color:var(--muted);font-weight:600}
ul.good{margin:0;padding:0;list-style:none;display:grid;gap:12px}
ul.good li{position:relative;padding-left:28px}
ul.good li::before{content:"";position:absolute;left:2px;top:.45em;width:12px;height:7px;border-left:2px solid var(--r-grn);border-bottom:2px solid var(--r-grn);transform:rotate(-45deg)}

/* Method / limits */
.limits{border:1px solid var(--legal-line);background:var(--legal-bg);border-radius:var(--r);padding:20px 24px;max-width:880px;font-size:.9375rem}
.limits h3{color:var(--legal);margin:0 0 8px}
.limits ul{margin:0;padding-left:20px;display:grid;gap:6px}
.method{margin-top:24px;font-size:.9375rem;color:var(--fg);max-width:880px}
.back{margin-top:32px}

@media (min-width:960px){
  .cols{grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:64px}
}
@media (max-width:640px){
  .rp-meta div,.risk dl div{grid-template-columns:minmax(0,1fr);gap:2px}
  .risk{padding:20px 16px}
  .verdict{padding:24px 18px 20px 22px}
  table.score th,table.score td{padding:10px 12px}
  table.score tbody th{width:auto}
}
@media print{
  header.top .btn,.back{display:none}
  .rp-section{padding:24px 0}
  .risk,.verdict,.score-wrap{box-shadow:none;break-inside:avoid}
}
.sr-gap{margin:32px 0 0;font-size:1.0625rem}
