@page { size: A4; margin: 12mm; }
body { font-family: Helvetica, Arial, sans-serif; color: #1f2937; font-size: 10.5pt; }
h1 { font-size: 24pt; margin: 0 0 6px; }
h2 { font-size: 16pt; margin: 0 0 10px; }
h3 { font-size: 12pt; margin: 0 0 8px; }
.section { margin-top: 18px; }
.page-break-before { page-break-before: always; }
.subtitle { color: #64748b; }
.muted { color: #64748b; }
.cover { border: 1px solid #dbe2ea; border-radius: 10px; padding: 16px; }
.cover-head { display: flex; justify-content: space-between; align-items: flex-start; }
.badge { background: #e6f7ef; color: #0f9f62; padding: 6px 10px; border-radius: 999px; font-size: 9pt; }
.meta-grid { margin-top: 12px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.kpi-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.kpi { border: 1px solid #dbe2ea; border-radius: 8px; padding: 10px; }
.kpi span { color: #64748b; display: block; margin-bottom: 4px; }
.kpi strong { font-size: 13pt; }
.chart-block { margin-bottom: 10px; border: 1px solid #dbe2ea; border-radius: 8px; padding: 10px; }
.bar-row { display: grid; grid-template-columns: 140px 1fr 50px; align-items: center; gap: 8px; margin: 6px 0; }
.bar { background: #e5e7eb; border-radius: 999px; height: 9px; overflow: hidden; }
.bar > div { background: #16a34a; height: 100%; }
.report-table { width: 100%; border-collapse: collapse; font-size: 9.5pt; }
.report-table th, .report-table td { border: 1px solid #e5e7eb; padding: 6px; vertical-align: top; }
.report-table th { background: #f8fafc; text-align: left; }
.report-table tr:nth-child(even) td { background: #fcfdff; }
.text-right { text-align: right; }
.text-center { text-align: center; }
.mb-4 { margin-bottom: 16px; }
.gallery-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.gallery-item { border: 1px solid #e5e7eb; border-radius: 8px; padding: 8px; }
.placeholder { background: #f1f5f9; color: #94a3b8; text-align: center; padding: 40px 8px; border-radius: 6px; margin-bottom: 6px; }
.gallery-caption small { display: block; }
