/* Minimal editorial report system */
.preview-scroll { background: #e9e9e7; }
.report-sheet {
  --report-paper: #fdfdfc; --report-ink: #171716; --report-muted: #70706c; --report-line: #d9d9d5;
  width: 210mm; min-height: 297mm; position: relative; overflow: hidden;
  color: var(--report-ink); background: var(--report-paper);
  box-shadow: 0 12px 36px rgba(0,0,0,.08); font-family: var(--ui-font); -webkit-font-smoothing: antialiased;
}

/* Cover */
.cover { display: grid; grid-template-rows: 1fr auto; min-height: 297mm; background: var(--report-paper); }
.cover-accent, .cover-line { display: none; }
.cover-main { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: 35mm 24mm 24mm; }
.cover-main::before { content: "REPORT"; margin-bottom: 4mm; color: var(--report-ink); font-size: 7.5pt; font-weight: 700; letter-spacing: .16em; }
.cover h1 { max-width: 138mm; margin: 0; color: var(--report-ink); font: 400 35pt/.98 var(--display-font); letter-spacing: -.045em; text-wrap: balance; }
.cover-property { max-width: 125mm; margin-top: 7mm; color: #4e4e4b; font-size: 11pt; line-height: 1.5; }
.cover-summary { max-width: 112mm; margin: 25mm 0 0; color: var(--report-muted); font-size: 9.5pt; line-height: 1.7; }
.cover-foot { display: grid; grid-template-columns: repeat(4,1fr); gap: 8mm; padding: 12mm 24mm 19mm; color: #8a8a86; font-size: 7pt; }
.cover-foot strong { display: block; margin-top: 2mm; color: var(--report-ink); font-size: 8pt; font-weight: 500; line-height: 1.4; }
.has-cover-image .cover-main { justify-content: flex-start; padding-top: 18mm; }
.report-cover-image { display: block; max-width: 100%; margin: 0 0 18mm; object-fit: contain; background: #f2f2ef; }
.landscape-cover .report-cover-image { width: 100%; height: auto; max-height: 112mm; object-fit: contain; }
.portrait-cover .report-cover-image { width: 72mm; height: auto; max-height: 108mm; align-self: center; object-fit: contain; background: transparent; }
.has-cover-image h1 { font-size: 31pt; }

/* Interior pages */
.page { padding: 19mm 24mm 22mm; }
.page-header { display: flex; align-items: baseline; justify-content: space-between; gap: 12mm; margin-bottom: 27mm; color: #92928e; font-size: 6.8pt; letter-spacing: .06em; text-transform: uppercase; }
.page h2 { max-width: 142mm; margin: 0 0 7mm; color: var(--report-ink); font: 400 25pt/1.06 var(--display-font); letter-spacing: -.035em; text-wrap: balance; }
.page h3 { margin: 0 0 3mm; color: var(--report-ink); font: 500 13pt/1.25 var(--display-font); letter-spacing: -.015em; }
.lead { max-width: 116mm; margin: 0 0 15mm; color: var(--report-muted); font-size: 10pt; line-height: 1.72; }
.report-copy { max-width: 125mm; color: #474744; font-size: 9.2pt; line-height: 1.72; }
.report-copy p:last-child { margin-bottom: 0; }
.report-block { margin: 12mm 0; break-inside: avoid; }
.summary-box { margin-top: 8mm; padding: 0; }
.summary-box .report-copy { max-width: 128mm; font-size: 10.2pt; }

/* Overview and contents */
.overview-metrics { display: grid; grid-template-columns: repeat(3,1fr); gap: 9mm; margin: 20mm 0 18mm; }
.metric-card { min-height: 21mm; padding-top: 4mm; border-top: 1px solid var(--report-ink); }
.metric-value { display: block; font: 400 19pt/1 var(--display-font); letter-spacing: -.03em; }
.metric-label { display: block; margin-top: 3mm; color: var(--report-muted); font-size: 6.8pt; letter-spacing: .08em; text-transform: uppercase; }
.toc { display: grid; }
.toc-group { margin-top: 7mm; padding-bottom: 2mm; border-bottom: .5mm solid var(--report-ink); color: var(--report-ink); font-size: 7pt; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.toc-row { display: grid; grid-template-columns: 12mm 1fr auto; gap: 4mm; align-items: baseline; padding: 4mm 0; border-bottom: .3mm solid var(--report-line); color: var(--report-muted); font-size: 8.5pt; }
.toc-row strong { color: var(--report-ink); font-weight: 500; }
.toc-num { color: var(--report-ink); font-size: 8pt; font-variant-numeric: tabular-nums; }

/* Report parts */
.part-page { padding: 19mm 24mm 22mm; }
.part-inner { min-height: 230mm; display: flex; flex-direction: column; justify-content: center; }
.part-inner > span { margin-bottom: 5mm; color: var(--report-muted); font-size: 7pt; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.part-inner h2 { max-width: 145mm; margin: 0; font: 400 38pt/1 var(--display-font); letter-spacing: -.045em; }
.part-inner p { max-width: 110mm; margin: 12mm 0 0; color: var(--report-muted); font-size: 11pt; line-height: 1.65; }

/* Findings */
.finding-card, .teaser-card, .concealed-card { padding: 0; border-top: .4mm solid var(--report-ink); background: transparent; }
.finding-head { display: grid; grid-template-columns: 1fr auto; gap: 8mm; align-items: start; padding: 5mm 0; border-bottom: .3mm solid var(--report-line); }
.priority { padding-top: 1mm; color: var(--report-muted); font-size: 6.5pt; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.finding-body { padding: 5mm 0 1mm; }
.finding-label { margin: 5mm 0 1.5mm; color: #888884; font-size: 6.5pt; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.recommendation { margin-top: 7mm; padding: 5mm 0 0; border-top: .3mm solid var(--report-line); }
.recommendation .finding-label { margin-top: 0; }
.recommendation .report-copy { color: #474744 !important; }

/* Media and captions */
.media-report-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 10mm 6mm; margin-top: 6mm; }
.media-report-card { min-width: 0; break-inside: avoid; }
.media-report-visual { position: relative; height: 66mm; overflow: hidden; background: #ededeb; }
.media-report-visual img, .media-report-visual video { display: block; width: 100%; height: 100%; object-fit: cover; }
.media-report-copy { padding-top: 3.5mm; }
.media-report-copy strong { display: block; margin-bottom: 1.5mm; color: var(--report-ink); font: 500 9.5pt/1.35 var(--display-font); }
.media-report-copy p { margin: 0; color: var(--report-muted); font-size: 7.8pt; line-height: 1.55; }
.media-type-line, .video-flag { display: block; color: var(--report-muted); font-size: 6pt; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.media-type-line { margin-bottom: 2mm; }
.video-flag { position: absolute; left: 3mm; top: 3mm; padding: 1.5mm 2mm; color: #fff; background: rgba(0,0,0,.72); }
.video-play-mark { position: absolute; left: 50%; top: 50%; z-index: 2; display: grid; width: 13mm; height: 13mm; place-items: center; padding-left: .8mm; border: .3mm solid rgba(255,255,255,.75); border-radius: 50%; color: #fff; background: rgba(0,0,0,.48); transform: translate(-50%,-50%); pointer-events: none; }
.media-video-poster { display: none !important; }

/* Reveal-only states */
.teaser-top { padding: 5mm 0; }
.locked-detail { display: grid; grid-template-columns: 1fr auto; gap: 8mm; align-items: center; padding: 5mm 0; border-top: .3mm solid var(--report-line); color: var(--report-muted); font-size: 8pt; }
.locked-detail strong { color: var(--report-ink); font-weight: 500; white-space: nowrap; }
.veil-lines { display: grid; gap: 1.5mm; margin-top: 2mm; filter: blur(2px); opacity: .38; user-select: none; }
.veil-line { display: block; width: 100%; height: 2mm; background: #9d9d98; }
.veil-line:nth-child(2) { width: 82%; }
.veil-line:nth-child(3) { width: 63%; }
.concealed-card { position: relative; min-height: 42mm; }
.concealed-label { position: absolute; inset: 0; z-index: 2; display: grid; place-content: center; padding: 8mm; color: var(--report-ink); text-align: center; font-size: 8.5pt; }
.concealed-inner { padding: 7mm 0; opacity: .25; filter: blur(4px); user-select: none; }
.concealed-title { width: 52%; height: 4mm; margin-bottom: 5mm; background: #777773; }
.concealed-media { height: 55mm; background: #d7d7d3; }
.blurred { filter: blur(8px); transform: scale(1.04); }

/* Closing page */
.cta-page { display: grid; min-height: 297mm; align-items: center; padding: 25mm; color: var(--report-ink); background: var(--report-paper); }
.cta-inner { max-width: 145mm; }
.cta-page h2 { max-width: 138mm; margin: 0 0 10mm; color: var(--report-ink); font: 400 29pt/1.08 var(--display-font); letter-spacing: -.04em; }
.cta-page p { max-width: 115mm; color: var(--report-muted); font-size: 10pt; line-height: 1.72; }
.cta-contact { margin-top: 16mm; color: var(--report-ink); font-size: 10pt; font-weight: 600; }
.report-sheet > .report-page-footer { position: absolute; right: 24mm; bottom: 10mm; left: auto; color: #a0a09c; font-size: 6.5pt; font-variant-numeric: tabular-nums; }

@media screen and (max-width: 650px) {
  .report-cover-image { height: 42vw; margin-bottom: 8vw; }
  .has-cover-image h1 { font-size: 7vw; }
}
