Files
Jyotisha/frontend/src/components/birth-sky/report-sky-cover.css
T
Jesse_ChenandClaude Opus 5.5 a9a917d50c feat(report): birth-sky report cover bound to the report's birth fingerprint (F1–F3)
Product decision A (TASK-birth-sky-followup-20260928):
- every generation path writes subject.birthFingerprint (stored-row
  fingerprint, same function as the chart page's profileFingerprint);
  never into the evidence bundle the model reads
- GET /api/reports/:id compares on the server and returns only
  report.coverSubject (subject id or null); legacy reports never get one
- report page shows the night cover above the body, paper cover alone on
  the first printed A4 page; silent on any failure, no waiting state
- TS / JSON schema / Python contract accept the optional field
- BLOCKED T5 struck through; DESIGN §17, CHANGELOG, checklist, PROGRESS

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
2026-09-28 21:47:44 +08:00

32 lines
987 B
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* Report cover (TASK-birth-sky-followup-20260928 F3). Loaded with the lazy
cover chunk on the report page only. Screen: night palette, as wide as the
reading column, 3:4. Print: paper palette, alone on the first A4 page. */
.report-sky-cover { margin: 0 0 var(--space-6); }
.report-sky-cover img {
display: block;
width: 100%;
height: auto;
aspect-ratio: 3 / 4;
border-radius: var(--radius-md);
}
.report-sky-cover-print { display: none !important; }
@media print {
.report-sky-cover {
margin: 0;
break-after: page;
page-break-after: always;
break-inside: avoid-page;
}
.report-sky-cover-screen { display: none !important; }
.report-sky-cover-print {
display: block !important;
/* A4 inside the report's @page margins is 186mm × 270mm; 3:4 at 186mm
wide is 248mm tall, so 246mm keeps it on one page. */
width: auto !important;
max-width: 100%;
height: 246mm !important;
margin: 0 auto;
border-radius: 0;
}
}