/*
 * Report / print styles. The .koda-report block is hidden on screen and shown
 * only when printing; everything else on the page is hidden at print time, so
 * the browser's Save-as-PDF produces a clean, branded A4 document.
 */
.koda-report { display: none; }

@media print {
	@page { size: A4; margin: 16mm 14mm; }

	html, body { background: #fff !important; }
	body > *:not(.koda-report) { display: none !important; }

	.koda-report {
		display: block;
		font-family: 'Montserrat', Verdana, sans-serif;
		color: #030a2c;
		font-size: 10pt;
		line-height: 1.4;
		/* Browsers strip background colours in print by default. Without this,
		   the navy wordmark and total band print white-on-white — the branded
		   elements would vanish in the actual PDF. */
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}
	.kr-mark, .kr-total { -webkit-print-color-adjust: exact; print-color-adjust: exact; }

	.kr-head { display: flex; align-items: center; gap: 8mm; border-bottom: 2px solid #030a2c; padding-bottom: 4mm; margin-bottom: 6mm; }
	.kr-mark {
		font-weight: 800; font-size: 16pt; color: #fff; background: #030a2c;
		border: 1px solid #030a2c; padding: 3mm 4mm; letter-spacing: 0.01em;
	}
	.kr-title { display: grid; gap: 1mm; }
	.kr-title .kr-pl { font-weight: 800; font-size: 11pt; }
	.kr-title .kr-en { color: #343c58; font-size: 8.5pt; }

	.kr-pl { display: block; }
	.kr-en { display: block; color: #343c58; font-size: 8pt; }

	/* Cover band — the one-glance summary. Filled gauge cells must keep their
	   ink in print, same as the wordmark. All fills are dark enough that white
	   text passes WCAG AA (≥4.5:1). */
	.kr-cover { border: 1px solid #030a2c; padding: 4mm 5mm; margin: 0 0 6mm; break-inside: avoid; page-break-inside: avoid; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
	.kr-cover-head { display: flex; justify-content: space-between; align-items: start; gap: 6mm; margin-bottom: 3mm; }
	.kr-eyebrow { margin: 0; font-size: 8pt; text-transform: uppercase; letter-spacing: 0.08em; color: #1c48f0; font-weight: 800; }
	.kr-subject { margin: 1mm 0 0; font-weight: 800; font-size: 11pt; }
	.kr-confidential { margin: 0; font-size: 7.5pt; text-transform: uppercase; letter-spacing: 0.06em; color: #343c58; text-align: right; white-space: nowrap; }
	.kr-cover-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 4mm; margin-bottom: 4mm; }
	.kr-cover-cell { border-top: 1.5px solid #030a2c; padding-top: 2mm; }
	.kr-cover-value { display: block; font-weight: 800; font-size: 12pt; margin-top: 1mm; }
	.kr-cover-cell--headline .kr-cover-value { font-size: 16pt; color: #1c48f0; }

	.kr-gauge-head { display: flex; justify-content: space-between; align-items: end; gap: 6mm; margin-bottom: 2mm; }
	.kr-gauge-level .kr-pl { font-weight: 800; font-size: 11pt; }
	.kr-gauge-ratio { font-weight: 800; font-size: 11pt; }
	.kr-gauge-bar { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1mm; }
	.kr-gauge-cell { border: 1px solid #c6cbd4; padding: 1.6mm 2mm; text-align: center; color: #343c58; }
	.kr-gauge-cell .kr-pl { font-weight: 700; font-size: 8pt; }
	.kr-gauge-cell .kr-en { font-size: 6.5pt; }
	.kr-gauge-cell--active { color: #fff; }
	.kr-gauge-cell--active .kr-en { color: #fff; }
	.kr-gauge-cell--active.kr-gauge--low { background: #1a6b3c; border-color: #1a6b3c; }
	.kr-gauge-cell--active.kr-gauge--moderate { background: #8a5a00; border-color: #8a5a00; }
	.kr-gauge-cell--active.kr-gauge--high { background: #a83a0a; border-color: #a83a0a; }
	.kr-gauge-cell--active.kr-gauge--critical { background: #b3261e; border-color: #b3261e; }
	.kr-gauge-caption { margin: 2mm 0 0; font-size: 7.5pt; color: #343c58; }

	.kr-meta { display: grid; gap: 0; margin-bottom: 6mm; }

	.kr-section { margin: 0 0 5mm; break-inside: avoid; }
	.kr-h2 { font-size: 9pt; text-transform: uppercase; letter-spacing: 0.06em; color: #1c48f0; margin: 4mm 0 2mm; border-bottom: 1px solid #e1e1e1; padding-bottom: 1mm; }

	.kr-row { display: flex; justify-content: space-between; gap: 6mm; padding: 1.6mm 0; border-bottom: 1px solid #eef0f2; }
	.kr-row--total { font-weight: 800; border-bottom: 1.5px solid #030a2c; }
	.kr-label { display: grid; }
	.kr-note { font-size: 7.5pt; color: #1c48f0; }
	.kr-value { font-weight: 700; white-space: nowrap; align-self: center; }
	/* Financial figures stay on one line; free-text meta values (project name)
	   must wrap or a long name runs off the page. */
	.kr-meta .kr-value { white-space: normal; overflow-wrap: anywhere; text-align: right; }

	.kr-total {
		display: flex; justify-content: space-between; align-items: center; gap: 6mm;
		background: #030a2c; color: #fff; padding: 4mm 5mm; margin: 4mm 0 2mm;
		break-inside: avoid; page-break-inside: avoid;
	}
	.kr-total .kr-en { color: #a5b7fb; }
	.kr-total .kr-value { font-size: 15pt; font-weight: 800; }

	.kr-compare { margin: 0 0 6mm; break-inside: avoid; page-break-inside: avoid; }

	/* Keep each checklist item and the footer intact across page breaks. */
	.kr-checklist .kr-check { padding: 1.4mm 0; padding-left: 5mm; position: relative; border-bottom: 1px solid #eef0f2; break-inside: avoid; page-break-inside: avoid; }
	.kr-checklist .kr-check::before { content: '□'; position: absolute; left: 0; color: #1c48f0; }

	.kr-notes { margin: 5mm 0; font-size: 8pt; color: #343c58; }
	.kr-notes p { margin: 0 0 2mm; }

	.kr-foot { display: flex; justify-content: space-between; border-top: 2px solid #030a2c; padding-top: 3mm; margin-top: 6mm; font-weight: 700; font-size: 9pt; }
}
