.mccis-summary,
.mccis-print-area {
	--mccis-blue: #0a3985;
	--mccis-border: #d9dee6;
	--mccis-green: #e3f2e6;
	--mccis-green-dark: #2f6f3e;
	--mccis-amber: #fff1c7;
	--mccis-amber-dark: #866000;
	--mccis-red: #f8d9d9;
	--mccis-red-dark: #8a2424;
}

.mccis-summary {
	color: #252a31;
	font-size: 16px;
	width: 100%;
}

.mccis-toolbar {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 18px;
}

.mccis-date-filter {
	align-items: center;
	display: inline-flex;
	font-weight: 700;
	gap: 8px;
	margin-right: auto;
}

.mccis-date-filter select {
	background: #fff;
	border: 1px solid #9ca3ad;
	border-radius: 4px;
	color: inherit;
	font: inherit;
	padding: 8px 30px 8px 10px;
}

.mccis-print-button {
	appearance: none;
	background: var(--mccis-blue);
	border: 1px solid var(--mccis-blue);
	border-radius: 4px;
	color: #fff;
	cursor: pointer;
	font: inherit;
	font-weight: 700;
	padding: 10px 16px;
}

.mccis-print-button:hover,
.mccis-print-button:focus-visible {
	box-shadow: 0 0 0 3px rgba(10, 57, 133, 0.2);
	outline: 2px solid transparent;
}

.mccis-print-area {
	background: #fff;
}

.mccis-header {
	align-items: end;
	border-bottom: 3px solid var(--mccis-blue);
	display: flex;
	gap: 20px;
	justify-content: space-between;
	margin-bottom: 16px;
	padding-bottom: 10px;
}

.mccis-header h2 {
	color: var(--mccis-blue);
	font-size: clamp(24px, 3vw, 34px);
	line-height: 1.15;
	margin: 0 0 5px;
}

.mccis-header p {
	margin: 0;
}

.mccis-passing-note {
	font-weight: 700;
	white-space: nowrap;
}

.mccis-metrics {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	margin-bottom: 14px;
}

.mccis-metric {
	background: #f5f7fa;
	border: 1px solid var(--mccis-border);
	border-radius: 5px;
	padding: 10px;
	text-align: center;
}

.mccis-metric span {
	display: block;
	font-size: 0.78em;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.mccis-metric strong {
	color: var(--mccis-blue);
	display: block;
	font-size: 1.5em;
	line-height: 1.15;
	margin-top: 3px;
}

.mccis-metric-highlight {
	background: #e8f0fb;
	border-color: #9db6dc;
}

.mccis-overview-grid {
	display: grid;
	gap: 14px;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	margin-bottom: 14px;
}

.mccis-panel,
.mccis-question-performance,
.mccis-attention,
.mccis-perfect {
	border: 1px solid var(--mccis-border);
	border-radius: 5px;
	padding: 12px 14px;
}

.mccis-panel h3,
.mccis-question-performance h3,
.mccis-attention h3,
.mccis-perfect h3 {
	color: var(--mccis-blue);
	font-size: 1.08em;
	line-height: 1.2;
	margin: 0 0 9px;
}

.mccis-band-row {
	align-items: center;
	display: grid;
	gap: 9px;
	grid-template-columns: 96px 1fr 24px;
	margin: 7px 0;
}

.mccis-band-label {
	font-weight: 700;
	white-space: nowrap;
}

.mccis-band-track {
	background: #e9edf2;
	border-radius: 999px;
	height: 12px;
	overflow: hidden;
}

.mccis-band-track span {
	background: var(--mccis-blue);
	display: block;
	height: 100%;
	min-width: 0;
}

.mccis-most-missed ol {
	columns: 2;
	column-gap: 24px;
	margin: 0;
	padding-left: 22px;
}

.mccis-most-missed li {
	break-inside: avoid;
	margin: 0 0 7px;
	padding-left: 2px;
}

.mccis-most-missed li strong,
.mccis-most-missed li span {
	display: block;
}

.mccis-most-missed li span {
	font-size: 0.88em;
}

.mccis-all-correct,
.mccis-all-passed,
.mccis-no-perfect,
.mccis-empty {
	margin: 0;
}

.mccis-question-performance {
	margin-bottom: 14px;
}

.mccis-section-heading {
	align-items: center;
	display: flex;
	gap: 12px;
	justify-content: space-between;
}

.mccis-section-heading p {
	font-size: 0.82em;
	margin: 0 0 9px;
	white-space: nowrap;
}

.mccis-section-heading p span {
	border: 1px solid rgba(0, 0, 0, 0.16);
	display: inline-block;
	height: 10px;
	margin: 0 4px 0 9px;
	vertical-align: baseline;
	width: 10px;
}

.mccis-section-heading p span:first-child {
	margin-left: 0;
}

.mccis-legend-low {
	background: var(--mccis-green);
}

.mccis-legend-review {
	background: var(--mccis-amber);
}

.mccis-legend-high {
	background: var(--mccis-red);
}

.mccis-question-grid {
	display: grid;
	gap: 6px;
	grid-template-columns: repeat(10, minmax(0, 1fr));
}

.mccis-question {
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 4px;
	line-height: 1.15;
	padding: 7px 5px;
	text-align: center;
}

.mccis-question strong,
.mccis-question span {
	display: block;
}

.mccis-question span {
	font-size: 0.82em;
	margin-top: 2px;
	white-space: nowrap;
}

.mccis-question-low {
	background: var(--mccis-green);
	color: var(--mccis-green-dark);
}

.mccis-question-review {
	background: var(--mccis-amber);
	color: var(--mccis-amber-dark);
}

.mccis-question-high {
	background: var(--mccis-red);
	color: var(--mccis-red-dark);
}

.mccis-student-groups {
	display: grid;
	gap: 14px;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.mccis-attention-list,
.mccis-perfect-list {
	display: grid;
	gap: 6px 10px;
	grid-template-columns: 1fr;
	list-style: none;
	margin: 0;
	padding: 0;
}

.mccis-attention-list li,
.mccis-perfect-list li {
	align-items: baseline;
	background: #f8f9fb;
	display: grid;
	gap: 6px;
	padding: 6px 8px;
}

.mccis-attention-list li {
	border-left: 3px solid #bd4242;
	grid-template-columns: minmax(0, 1fr) auto auto;
}

.mccis-perfect-list li {
	border-left: 3px solid var(--mccis-blue);
	grid-template-columns: minmax(0, 1fr) auto;
}

.mccis-attention-list li span,
.mccis-perfect-list li span {
	font-weight: 700;
	min-width: 0;
	white-space: nowrap;
}

.mccis-attention-list li small {
	color: #59616c;
	white-space: nowrap;
}

@media (max-width: 800px) {
	.mccis-metrics {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.mccis-overview-grid {
		grid-template-columns: 1fr;
	}

	.mccis-question-grid {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}

	.mccis-attention-list {
		grid-template-columns: 1fr;
	}

	.mccis-perfect-list,
	.mccis-student-groups {
		grid-template-columns: 1fr;
	}
}

@page {
	margin: 0.35in;
	size: letter portrait;
}

@media print {
	html,
	body.mccis-is-printing {
		margin: 0 !important;
		padding: 0 !important;
	}

	body.mccis-is-printing > *:not(.mccis-print-portal) {
		display: none !important;
	}

	body.mccis-is-printing > .mccis-print-portal {
		display: block !important;
		margin: 0 !important;
		padding: 0 !important;
		position: static !important;
		width: 100% !important;
	}

	.mccis-print-portal .mccis-print-area {
		-webkit-print-color-adjust: exact;
		color: #222;
		font-family: Arial, Helvetica, sans-serif;
		font-size: 12pt;
		line-height: 1.2;
		print-color-adjust: exact;
	}

	.mccis-print-portal .mccis-header {
		margin-bottom: 12px;
		padding-bottom: 8px;
	}

	.mccis-print-portal .mccis-header h2 {
		font-size: 22pt;
	}

	.mccis-print-portal .mccis-metrics {
		gap: 8px;
		grid-template-columns: repeat(6, minmax(0, 1fr));
		margin-bottom: 10px;
	}

	.mccis-print-portal .mccis-metric {
		padding: 8px;
	}

	.mccis-print-portal .mccis-overview-grid {
		gap: 10px;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		margin-bottom: 10px;
	}

	.mccis-print-portal .mccis-panel,
	.mccis-print-portal .mccis-question-performance,
	.mccis-print-portal .mccis-attention,
	.mccis-print-portal .mccis-perfect {
		break-inside: avoid;
		padding: 9px 11px;
		page-break-inside: avoid;
	}

	.mccis-print-portal .mccis-panel h3,
	.mccis-print-portal .mccis-question-performance h3,
	.mccis-print-portal .mccis-attention h3,
	.mccis-print-portal .mccis-perfect h3 {
		margin-bottom: 6px;
	}

	.mccis-print-portal .mccis-band-row {
		margin: 5px 0;
	}

	.mccis-print-portal .mccis-most-missed li {
		margin-bottom: 4px;
	}

	.mccis-print-portal .mccis-question-performance {
		margin-bottom: 10px;
	}

	.mccis-print-portal .mccis-question-grid {
		gap: 5px;
		grid-template-columns: repeat(10, minmax(0, 1fr));
	}

	.mccis-print-portal .mccis-question {
		padding: 6px 4px;
	}

	.mccis-print-portal .mccis-student-groups {
		gap: 10px;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.mccis-print-portal .mccis-attention-list,
	.mccis-print-portal .mccis-perfect-list {
		gap: 6px;
		grid-template-columns: 1fr;
	}

	.mccis-print-portal .mccis-attention-list li,
	.mccis-print-portal .mccis-perfect-list li {
		padding: 6px 8px;
	}

	.mccis-print-portal .mccis-metric span,
	.mccis-print-portal .mccis-most-missed li span,
	.mccis-print-portal .mccis-section-heading p,
	.mccis-print-portal .mccis-question span,
	.mccis-print-portal .mccis-attention-list li small {
		font-size: 1em;
	}
}
