:root {
	--primary-color: #0d6efd;
	--light-gray-bg: #f8f9fa;
	--border-color: #dee2e6;
	--text-color-dark: #212529;
	--text-color-light: #6c757d;
	--card-shadow: 0 4px 12px rgba(0, 0, 0, 0.07);
	--card-radius: 0.5rem;
}

body { background-color: var(--light-gray-bg); }

.report-container { max-width: 1140px; margin: 2rem auto; }

.report-header {
	display: flex; justify-content: space-between; align-items: center;
	padding: 1.5rem; background-color: #fff; border-radius: var(--card-radius);
	box-shadow: var(--card-shadow); margin-bottom: 2rem;
}

.report-section {
	background-color: #fff; padding: 2rem; border-radius: var(--card-radius);
	box-shadow: var(--card-shadow); margin-bottom: 2rem;
}

.stat-card-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.5rem; margin-bottom: 2rem; }
.stat-card { background-color: #fff; padding: 1.25rem; border-radius: var(--card-radius); box-shadow: var(--card-shadow); display: flex; align-items: center; border: 1px solid var(--border-color); }
.stat-card .icon { font-size: 1.75rem; color: var(--primary-color); background-color: rgba(13, 110, 253, 0.1); height: 50px; width: 50px; border-radius: 50%; display: grid; place-items: center; margin-right: 1rem; }
.stat-card .info .value { font-size: 1.5rem; font-weight: 700; color: var(--text-color-dark); }
.stat-card .info .label { font-size: 0.9rem; color: var(--text-color-light); }

.chart-container {
	background-color: #fff; padding: 1.5rem; border-radius: var(--card-radius);
	border: 1px solid var(--border-color);
}

.section-heading {
	font-size: 2rem; font-weight: 700; margin-bottom: 1.5rem;
	padding-bottom: 0.5rem; border-bottom: 2px solid var(--primary-color);
}

.session-title { font-size: 1.75rem; font-weight: 700; margin-top: 2.5rem; margin-bottom: 1.5rem; }

.year-selector-container {
	display: flex; align-items: center; justify-content: center;
	min-height: 50vh; background-color: #f8f9fa;
}

.year-selector-card {
	width: 100%; max-width: 400px; padding: 2rem; border: 1px solid #dee2e6;
	border-radius: 0.5rem; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.07); background-color: #fff;
}

.year-selector-card .form-group label { font-weight: 500; }

#reportLoading { font-size: 1.1rem; color: var(--text-color-light); }

/* --- PRINT-SPECIFIC STYLES --- */
@media print {
	@page {
		size: A4 landscape;
		margin: 0.75cm;
	}
	body, .report-container {
		background-color: #fff; margin: 0; padding: 0;
	}
	.no-print {
		display: none !important;
	}
	.report-section {
		box-shadow: none; border: none; padding: 0; margin: 0;
		page-break-after: always;
	}
	.chart-container {
		page-break-inside: avoid;
		border: none; padding: 0;
		width: 100%;
		height: 85vh;
	}
	.stat-card-row, .section-heading, .session-title {
		page-break-after: avoid;
	}
}