@font-face { font-family: 'Inter Variable'; src: url('/static/fonts/inter.woff2') format('woff2'); font-weight: 100 900; font-display: swap; }
@font-face { font-family: 'Fraunces'; src: url('/static/fonts/fraunces.woff2') format('woff2'); font-weight: 100 900; font-display: swap; }
:root { --accent: #86661c; --ink: #0e1424; --text: #151b2d; --muted: #565d70; --line: #e8e3d6; }
* { box-sizing: border-box; }
body.report { margin: 0; background: #fff; color: var(--text); font: 400 14px/1.55 'Inter Variable', 'Segoe UI', Helvetica, Arial, sans-serif; }
.report h1, .report h2 { font-family: Fraunces, Georgia, 'Times New Roman', serif; font-weight: 500; letter-spacing: -.015em; }
.report h2 { font-size: 22px; margin: 0 0 12px; border-bottom: 2px solid var(--accent); padding-bottom: 6px; }
.report h3 { font-size: 14.5px; margin: 16px 0 6px; }
.report h4 { font-size: 14px; font-weight: 600; margin: 0 0 4px; }
.report section { margin: 0 0 30px; }
.report main, .toc, .rfoot { max-width: 880px; margin-left: auto; margin-right: auto; padding: 0 20px; }
.cover { background: var(--ink); color: #f1eee4; padding: 36px 40px; display: flex; flex-direction: column; gap: 40px; min-height: 420px; }
.cover-brand { display: flex; align-items: center; gap: 12px; font-weight: 600; }
.logo { max-height: 44px; max-width: 180px; background: #fff; padding: 4px; border-radius: 6px; }
.eyebrow { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: #d4b36a; }
.cover h1 { font-size: 40px; margin: 8px 0 6px; color: #fff; word-break: break-word; }
.cover-date { color: #bfc3d1; margin: 0; }
.cover-score { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; margin-top: 24px; background: #fff; color: var(--text); border-radius: 14px; padding: 18px 22px; width: fit-content; max-width: 100%; }
.dial { width: 132px; height: 132px; }
.dial-n { font: 500 40px Fraunces, Georgia, serif; fill: var(--text); }
.dial-g { font: 600 12px 'Segoe UI', Helvetica, Arial, sans-serif; fill: var(--muted); }
.counts { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, auto); gap: 8px 22px; }
.counts b { font-size: 20px; font-weight: 600; margin-right: 4px; }
.cover-foot { font-size: 11.5px; color: #a9aebd; margin-top: auto; }
.toc { padding-top: 26px; padding-bottom: 8px; }
.toc h2 { font-size: 18px; }
.toc ol { columns: 2; padding-left: 20px; margin: 0 0 16px; }
.toc a { color: var(--accent); text-decoration: none; }
.lead { font-size: 15.5px; }
.meta { color: var(--muted); font-size: 12.5px; word-break: break-word; margin: 3px 0; }
.disclaimer { background: #f6f3ea; border-radius: 8px; padding: 10px 12px; font-size: 12.5px; color: var(--muted); margin-top: 14px; }
.cats { width: 100%; border-collapse: collapse; margin-bottom: 10px; }
.cats th { text-align: left; font-weight: 500; width: 140px; padding: 5px 0; }
.cats td { padding: 5px 8px; }
.bar { width: 100%; height: 7px; display: block; }
.num { text-align: right; font-weight: 600; white-space: nowrap; }
.delta { list-style: none; padding: 0; display: flex; gap: 24px; flex-wrap: wrap; }
.delta b { font: 500 24px Fraunces, Georgia, serif; display: block; }
.fixes { padding-left: 20px; display: grid; gap: 8px; }
.effort { font-size: 11px; color: var(--accent); background: #f6efdb; padding: 1px 6px; border-radius: 4px; font-weight: 600; }
.spec { width: 100%; border-collapse: collapse; font-size: 13px; }
.spec th { text-align: left; font-size: 11.5px; color: var(--muted); border-bottom: 1px solid var(--line); padding: 6px; }
.spec td { border-bottom: 1px solid #f1eee5; padding: 7px 6px; vertical-align: top; }
.st { font-size: 11.5px; font-weight: 600; padding: 2px 7px; border-radius: 5px; background: #f0f0ee; color: #565d70; white-space: nowrap; }
.st-built { background: #e5f4ed; color: #17694c; }
.st-partial { background: #faf4dd; color: #80610a; }
.st-missing, .st-broken { background: #fbeceb; color: #a8231b; }
.count { font: 500 13px 'Segoe UI', Arial, sans-serif; color: var(--muted); }
.finding { border: 1px solid var(--line); border-radius: 9px; padding: 11px 13px; margin-bottom: 8px; break-inside: avoid; }
.finding p { margin: 3px 0; }
.finding pre { background: #f7f5ee; padding: 7px 9px; border-radius: 6px; white-space: pre-wrap; word-break: break-word; font-size: 11.5px; margin: 6px 0; }
.fix { font-size: 13px; }
.crop { max-width: 100%; max-height: 160px; border: 1px solid var(--line); border-radius: 6px; display: block; margin: 6px 0; }
.sev { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; padding: 2px 6px; border-radius: 4px; background: #f0f0ee; color: #565d70; }
.sev-critical { background: #fbeceb; color: #a8231b; }
.sev-high { background: #fbf0e6; color: #a84a12; }
.sev-medium { background: #faf4dd; color: #80610a; }
.sev-low { background: #e9f2f9; color: #23608f; }
.shots { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.shots figure { margin: 0; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; break-inside: avoid; }
.shots img { width: 100%; max-height: 260px; object-fit: cover; object-position: top; display: block; }
.shots figcaption { font-size: 11px; color: var(--muted); padding: 5px 7px; word-break: break-all; }
.rfoot { border-top: 1px solid var(--line); padding-top: 14px; padding-bottom: 30px; font-size: 12px; color: var(--muted); }
.watermark { position: fixed; top: 45%; left: 0; right: 0; text-align: center; font: 500 76px Fraunces, Georgia, serif; color: rgba(14, 20, 36, .06); transform: rotate(-24deg); pointer-events: none; z-index: 5; }
a { color: var(--accent); }
@media (max-width: 640px) { .cover { padding: 24px 16px; } .cover h1 { font-size: 28px; } .toc ol { columns: 1; } }
@media print {
  .report-pdf .cover { min-height: 262mm; -webkit-print-color-adjust: exact; print-color-adjust: exact; break-after: page; }
  .report-pdf .toc { break-after: page; }
  .report section { break-inside: auto; }
  .report h2 { break-after: avoid; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
