/* Laporan PDF: hanya tampil saat dicetak (atau ?demo&print untuk pratinjau). Selalu terang. */
.report { display: none; }
@page { size: A4; margin: 14mm 14mm 16mm; }
@page { @bottom-right { content: "Halaman " counter(page); font: 8pt "Plus Jakarta Sans", sans-serif; color: #7a867f; } }

@media print {
  html, body { background: #fff !important; }
  .screen-only, dialog, .toast { display: none !important; }
  .report { display: block !important; }
}
html.print-preview .screen-only { display: none; }
html.print-preview .report { display: block; background: #fff; }
@media screen { html.print-preview .rpage { width: 182mm; margin: 10mm auto; box-shadow: 0 0 0 1px #ddd; padding: 8mm; } }

.report { color: #13211b; font-family: "Plus Jakarta Sans", "Segoe UI", sans-serif; font-size: 9.5pt; line-height: 1.45; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.report h1, .report h2, .report h3 { font-family: "Plus Jakarta Sans", sans-serif; letter-spacing: -0.02em; color: #13211b; }
.report h2 { font-size: 17pt; margin: 0 0 2mm; }
.report h3 { font-size: 11pt; margin: 0 0 2mm; display: flex; align-items: center; gap: 2mm; }
.report p { margin: 0; }
.rpage { break-after: page; position: relative; min-height: 255mm; display: flex; flex-direction: column; gap: 4mm; }
.rpage:last-child { break-after: auto; }
.rhead { display: flex; justify-content: space-between; font-size: 7.5pt; color: #7a867f; border-bottom: 1px solid #dfe3d9; padding-bottom: 2mm; margin-bottom: 2mm; text-transform: uppercase; letter-spacing: .06em; }
.rfoot { margin-top: auto; font-size: 7pt; color: #7a867f; border-top: 1px solid #dfe3d9; padding-top: 2mm; }
.rlead { color: #4b5a52; margin-bottom: 2mm !important; }
.rnote { color: #4b5a52; font-size: 8.5pt; }
.rmt { margin-top: 4mm !important; }
.f { color: #7a867f; }
.neg { color: #c2412d; }

/* sampul */
.rcover { gap: 7mm; }
.rbrand { display: flex; align-items: center; gap: 3mm; font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: 13pt; }
.rbrand img { height: 12mm; max-width: 50mm; object-fit: contain; }
.rtitle { background: #0e7a5a; color: #fff; border-radius: 5mm; padding: 10mm 10mm 9mm; display: grid; gap: 2mm; }
.rtitle h1 { color: #fff; font-size: 30pt; line-height: 1.02; margin: 0; }
.reyebrow { font-size: 8pt; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; opacity: .85; }
.rperiod { font-size: 13pt; font-weight: 600; }
.rmeta { font-size: 8.5pt; opacity: .88; }
.rkpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 3mm; }
.rkpi { border: 1px solid #dfe3d9; border-radius: 3mm; padding: 3.5mm; display: grid; gap: 1mm; align-content: start; }
.rkpi span { font-size: 7pt; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #7a867f; }
.rkpi b { font-family: "Plus Jakarta Sans", sans-serif; font-size: 14pt; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.rkpi small { font-size: 7.5pt; color: #4b5a52; }
.rkpi.hero { background: #fdf4d6; border-color: #f4c542; }
.rsummary p { font-size: 10.5pt; line-height: 1.6; }
.rtop ol { margin: 0; padding-left: 5mm; display: grid; gap: 2mm; }
.rtop em { color: #0e7a5a; font-style: normal; font-weight: 600; }

/* tabel */
.rtable { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.rtable th, .rtable td { padding: 1.8mm 2mm; border-bottom: 1px solid #e6e9e2; text-align: right; white-space: nowrap; }
.rtable th:first-child, .rtable td:first-child { text-align: left; white-space: normal; padding-left: 0; }
.rtable th:last-child, .rtable td:last-child { padding-right: 0; }
.rtable thead th { font-size: 7pt; text-transform: uppercase; letter-spacing: .06em; color: #7a867f; border-bottom: 1.5px solid #13211b; }
.rtable tr.b td { font-weight: 600; }
.rtable tr.total td { font-weight: 800; border-top: 1.5px solid #13211b; background: #f3f6f1; }
.rtable.rsmall { font-size: 8.5pt; }
.rtable tr { break-inside: avoid; }
.rsw { display: inline-block; width: 2.4mm; height: 2.4mm; border-radius: .6mm; margin-right: 1.6mm; vertical-align: middle; }
.rtag { font-size: 6.5pt; font-weight: 700; padding: .3mm 1.6mm; border-radius: 9px; margin-left: 1mm; }
.rtag.rugi { background: #f8e1dc; color: #c2412d; } .rtag.tipis { background: #fbefcf; color: #8a5a00; }
.rgrid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 6mm; margin-top: 3mm; }
.rbars { width: 100%; border-collapse: collapse; font-size: 8.5pt; font-variant-numeric: tabular-nums; }
.rbars td { padding: 1.2mm 1mm; border-bottom: 1px solid #eef0ea; }
.rbars td:first-child { padding-left: 0; width: 42%; }
.rbars .trk { width: 30%; }
.rbars .trk i { display: block; height: 2.6mm; border-radius: 0 1mm 1mm 0; min-width: .5mm; }
.rbars .n { text-align: right; white-space: nowrap; }
.rchart { width: 100%; height: auto; }
.rchart text { font-size: 9px; fill: #7a867f; font-family: "Plus Jakarta Sans", sans-serif; }
.rlegend { display: flex; gap: 5mm; font-size: 8pt; color: #4b5a52; }
.rlegend i { display: inline-block; width: 3mm; height: 3mm; border-radius: .6mm; margin-right: 1.5mm; vertical-align: -0.3mm; }

/* temuan */
.rins { list-style: none; margin: 0; padding: 0; display: grid; gap: 2.4mm; }
.rins li { display: grid; grid-template-columns: 6mm 1fr; gap: 3mm; padding: 2.6mm 3mm; border-radius: 2.5mm; background: #f3f6f1; break-inside: avoid; }
.rins li > span { width: 6mm; height: 6mm; border-radius: 1.6mm; display: grid; place-items: center; font-weight: 800; background: #fff; }
.rins li.bad > span { background: #f8e1dc; color: #c2412d; } .rins li.warn > span { background: #fbefcf; color: #8a5a00; } .rins li.good > span { background: #dff1e8; color: #18794a; }
.rins p { color: #4b5a52; font-size: 8.5pt; }
.rins em { color: #0e7a5a; font-style: normal; font-weight: 600; font-size: 8.5pt; }
.rmethod { margin: 0; padding-left: 4.5mm; display: grid; gap: 2.4mm; color: #4b5a52; font-size: 9.5pt; max-width: 160mm; }
.rwatermark { position: fixed; inset: 0; display: grid; place-items: center; font-family: "Plus Jakarta Sans", sans-serif; font-size: 120pt; font-weight: 800; color: rgb(14 122 90 / 7%); transform: rotate(-30deg); pointer-events: none; z-index: 0; }
