/* ==========================================================
   FABR Shared Report Framework
   Browser print / Save as PDF report styling
   ========================================================== */

.fabr-report{
	background:var(--fabr-colour-surface-muted, #f8fafc);
	border:1px solid var(--fabr-colour-border, #e2e8f0);
	border-radius:var(--fabr-radius-lg, 24px);
	box-shadow:var(--fabr-shadow-sm, 0 12px 28px rgba(15, 23, 42, .07));
	box-sizing:border-box;
	color:var(--fabr-colour-text, #18212f);
	margin:var(--fabr-space-8, 32px) auto;
	max-width:1040px;
	padding:var(--fabr-space-6, 24px);
}

.fabr-report__document{
	background:var(--fabr-colour-surface, #ffffff);
	border:1px solid var(--fabr-colour-border, #e2e8f0);
	border-radius:var(--fabr-radius-md, 18px);
	box-shadow:var(--fabr-shadow-sm, 0 12px 28px rgba(15, 23, 42, .07));
	padding:var(--fabr-space-9, 36px);
}

.fabr-report__actions{
	display:flex;
	justify-content:flex-end;
	margin-bottom:1rem;
	opacity:1;
	visibility:visible;
}

.fabr-report__print-button{
	align-items:center;
	background:var(--fabr-colour-primary, #00a7d1);
	border:1px solid transparent;
	border-radius:var(--fabr-radius-sm, 14px);
	color:var(--fabr-colour-text-inverse, #ffffff);
	cursor:pointer;
	display:flex;
	font-size:15px;
	font-weight:700;
	justify-content:center;
	line-height:1.2;
	margin:0 0 16px auto;
	padding:14px 24px;
	text-decoration:none;
	opacity:1;
	visibility:visible;
	width:auto;
}

.fabr-report__header,
.fabr-report__branding,
.fabr-report__footer{
	align-items:flex-start;
	display:flex;
	gap:var(--fabr-space-5, 20px);
	justify-content:space-between;
}

.fabr-report__header{
	border-bottom:2px solid var(--fabr-colour-primary, #00a7d1);
	margin-bottom:var(--fabr-space-7, 28px);
	padding-bottom:var(--fabr-space-6, 24px);
}

.fabr-report__business{
	color:var(--fabr-colour-text, #18212f);
	font-size:15px;
	font-weight:900;
	letter-spacing:.02em;
	margin:0 0 var(--fabr-space-2, 8px);
	text-transform:uppercase;
}

.fabr-report__eyebrow{
	color:var(--fabr-colour-primary, #00a7d1);
	font-size:12px;
	font-weight:800;
	letter-spacing:.08em;
	margin:0 0 var(--fabr-space-2, 8px);
	text-transform:uppercase;
}

.fabr-report__title{
	color:var(--fabr-colour-text, #18212f);
	font-size:36px;
	font-weight:900;
	line-height:1.15;
	margin:0;
}

.fabr-report__subtitle,
.fabr-report__meta,
.fabr-report__brand-line,
.fabr-report__metric-note,
.fabr-report__footer{
	color:var(--fabr-colour-text-muted, #64748b);
}

.fabr-report__subtitle{
	font-size:16px;
	margin:var(--fabr-space-2, 8px) 0 0;
}

.fabr-report__meta{
	background:var(--fabr-colour-surface-muted, #f8fafc);
	border:1px solid var(--fabr-colour-border, #e2e8f0);
	border-radius:var(--fabr-radius-sm, 14px);
	font-size:14px;
	font-weight:700;
	min-width:150px;
	padding:var(--fabr-space-3, 12px);
	text-align:right;
	white-space:nowrap;
}

.fabr-report__meta span,
.fabr-report__meta strong{
	display:block;
}

.fabr-report__meta strong{
	color:var(--fabr-colour-text, #18212f);
	margin-top:2px;
}

.fabr-report__branding,
.fabr-report__summary,
.fabr-report__section,
.fabr-report__disclaimer{
	margin-bottom:var(--fabr-space-7, 28px);
}

.fabr-report__branding{
	background:var(--fabr-colour-surface-muted, #f8fafc);
	border:1px solid var(--fabr-colour-border, #e2e8f0);
	border-radius:var(--fabr-radius-md, 18px);
	padding:var(--fabr-space-5, 20px);
}

.fabr-report__logo{
	max-height:56px;
	max-width:180px;
	object-fit:contain;
}

.fabr-report__brand-line{
	font-size:14px;
	margin:0 0 var(--fabr-space-1, 4px);
}

.fabr-report__brand-line--business_name{
	color:var(--fabr-colour-text, #18212f);
	font-weight:800;
}

.fabr-report__summary,
.fabr-report__section,
.fabr-report__disclaimer{
	break-inside:avoid;
	page-break-inside:avoid;
}

.fabr-report__summary{
	background:linear-gradient(180deg, var(--fabr-colour-surface, #ffffff) 0%, var(--fabr-colour-surface-muted, #f8fafc) 100%);
	border:1px solid var(--fabr-colour-border, #e2e8f0);
	border-radius:var(--fabr-radius-md, 18px);
	padding:var(--fabr-space-6, 24px);
}

.fabr-report__summary h3,
.fabr-report__section h3,
.fabr-report__disclaimer h3{
	color:var(--fabr-colour-text, #18212f);
	font-size:20px;
	line-height:1.25;
	margin:0 0 var(--fabr-space-4, 16px);
}

.fabr-report__summary h3{
	font-size:24px;
}

.fabr-report__content{
	color:var(--fabr-colour-text-muted, #64748b);
	font-size:15px;
	line-height:1.65;
	max-width:780px;
}

.fabr-report__content > :first-child{
	margin-top:0;
}

.fabr-report__content > :last-child{
	margin-bottom:0;
}

.fabr-report__key-value-grid{
	display:grid;
	gap:var(--fabr-space-4, 16px);
	grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
}

.fabr-report__metric{
	background:var(--fabr-colour-surface-muted, #f8fafc);
	border:1px solid var(--fabr-colour-border, #e2e8f0);
	border-radius:var(--fabr-radius-md, 18px);
	padding:var(--fabr-space-5, 20px) var(--fabr-space-4, 16px);
}

.fabr-report__metric-label,
.fabr-report__metric-note{
	display:block;
	font-size:13px;
	font-weight:700;
	line-height:1.35;
}

.fabr-report__metric-value{
	display:block;
	font-size:26px;
	font-weight:900;
	line-height:1.2;
	margin:var(--fabr-space-2, 8px) 0;
}

.fabr-report__table-wrap{
	overflow-x:auto;
}

.fabr-report__table{
	border-collapse:collapse;
	font-size:14px;
	width:100%;
}

.fabr-report__table tr{
	break-inside:avoid;
	page-break-inside:avoid;
}

.fabr-report__table th,
.fabr-report__table td{
	border-bottom:1px solid var(--fabr-colour-border, #e2e8f0);
	padding:14px 12px;
	text-align:left;
}

.fabr-report__table th{
	background:var(--fabr-colour-text, #18212f);
	border-bottom:0;
	color:var(--fabr-colour-text-inverse, #ffffff);
	font-size:13px;
	letter-spacing:.02em;
	text-transform:uppercase;
}

.fabr-report__table td{
	color:var(--fabr-colour-text, #18212f);
	font-weight:700;
}

.fabr-report__note,
.fabr-report__disclaimer{
	background:var(--fabr-colour-surface-raised, #fbfdff);
	border:1px solid var(--fabr-colour-border, #e2e8f0);
	border-radius:var(--fabr-radius-md, 18px);
	padding:var(--fabr-space-5, 20px);
}

.fabr-report__note .fabr-report__content{
	font-size:14px;
}

.fabr-report__disclaimer .fabr-report__content{
	font-size:11px;
	line-height:1.55;
}

.fabr-report__footer{
	border-top:1px solid var(--fabr-colour-border, #e2e8f0);
	font-size:12px;
	font-weight:700;
	gap:var(--fabr-space-3, 12px);
	margin-top:var(--fabr-space-8, 32px);
	padding-top:var(--fabr-space-4, 16px);
}

.fabr-print-mount{
	display:none;
}

@media (max-width: 640px){
	.fabr-report{
		padding:var(--fabr-space-4, 16px);
	}

	.fabr-report__document{
		padding:var(--fabr-space-5, 20px);
	}

	.fabr-report__header,
	.fabr-report__branding,
	.fabr-report__footer{
		display:block;
	}

	.fabr-report__meta{
		margin-top:var(--fabr-space-3, 12px);
		text-align:left;
		white-space:normal;
	}
}

@media print{
	@page{
		margin:18mm;
		size:A4 portrait;
	}

	body.fabr-is-printing-report > *:not(#fabr-print-mount){
		display:none !important;
	}

	#fabr-print-mount{
		background:#fff !important;
		display:block !important;
		width:100% !important;
	}

	#fabr-print-mount,
	#fabr-print-mount *{
		visibility:visible !important;
	}

	#fabr-print-mount .fabr-report{
		background:#fff !important;
		display:block !important;
		max-width:170mm !important;
		margin:0 auto !important;
		padding:0 !important;
		width:100% !important;
	}

	#fabr-print-mount .fabr-report__document{
		border:0 !important;
		box-sizing:border-box !important;
		box-shadow:none !important;
		margin:0 auto !important;
		max-width:170mm !important;
		padding:0 !important;
		width:100% !important;
	}

	#fabr-print-mount .fabr-report__key-value-grid{
		gap:10px !important;
	}

	#fabr-print-mount .fabr-report__metric{
		box-sizing:border-box !important;
		padding:12px !important;
	}

	#fabr-print-mount table,
	#fabr-print-mount .fabr-report__table{
		border-collapse:collapse !important;
		width:100% !important;
	}

	#fabr-print-mount [data-fabr-report-print],
	#fabr-print-mount .fabr-report__actions,
	#fabr-print-mount .fabr-report__print-button{
		display:none !important;
	}

	#fabr-print-mount .fabr-report__summary,
	#fabr-print-mount .fabr-report section,
	#fabr-print-mount .fabr-report__section,
	#fabr-print-mount .fabr-report__metric,
	#fabr-print-mount .fabr-report__note,
	#fabr-print-mount .fabr-report__disclaimer,
	#fabr-print-mount .fabr-kpi-grid,
	#fabr-print-mount .fabr-comparison-table{
		break-inside:avoid;
		page-break-inside:avoid;
	}

	#fabr-print-mount h1,
	#fabr-print-mount h2,
	#fabr-print-mount h3,
	#fabr-print-mount h4{
		break-after:avoid;
		page-break-after:avoid;
	}

	#fabr-print-mount .fabr-report__table-wrap{
		overflow:visible;
	}

	#fabr-print-mount .fabr-report__title{
		font-size:30px !important;
	}

	#fabr-print-mount .fabr-report__summary{
		padding:16px !important;
	}

	#fabr-print-mount .fabr-report__metric-value{
		font-size:20px !important;
	}

	#fabr-print-mount .fabr-report__footer{
		font-size:10px !important;
	}
}
