diff --git a/nextjs-app/components/SchoolDetailView.module.css b/nextjs-app/components/SchoolDetailView.module.css
index b2b419a..6365249 100644
--- a/nextjs-app/components/SchoolDetailView.module.css
+++ b/nextjs-app/components/SchoolDetailView.module.css
@@ -1040,6 +1040,41 @@
color: var(--accent-coral-dark, #b04a2e);
}
+/* ── Ofsted grade grids (Report Card + OEIF) ──
+ Uniform, vertically-aligned grade chips. Labels reserve two lines so
+ single- and double-line labels put their chips on the same baseline;
+ every chip (Met, Strong, Expected standard, …) shares one font size,
+ padding and min-height regardless of how many lines its text wraps to. */
+.gradeGrid .metricCard {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 0.5rem;
+ padding: 0.85rem 0.75rem;
+}
+.gradeGrid .metricLabel {
+ min-height: 2.6em;
+ margin: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+}
+.gradeGrid .metricValue {
+ margin-top: auto;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ max-width: 100%;
+ min-height: 2.6em;
+ padding: 0.3rem 0.7rem;
+ border-radius: 5px;
+ font-size: 1rem;
+ font-weight: 700;
+ line-height: 1.25;
+ text-align: center;
+}
+
.ofstedDisclaimer {
font-size: 0.8rem;
color: var(--text-muted, #8a847a);
diff --git a/nextjs-app/components/SchoolDetailView.tsx b/nextjs-app/components/SchoolDetailView.tsx
index 47c4588..5d4a45c 100644
--- a/nextjs-app/components/SchoolDetailView.tsx
+++ b/nextjs-app/components/SchoolDetailView.tsx
@@ -577,7 +577,7 @@ export function SchoolDetailView({
From November 2025, Ofsted replaced single overall grades with Report Cards rating schools across several areas.
-
+
{ofsted.rc_safeguarding_met != null && (
Safeguarding
@@ -623,7 +623,7 @@ export function SchoolDetailView({
Rated
{OFSTED_LABELS[ofsted.overall_effectiveness!]} across all inspected areas — Quality of Teaching, Behaviour, Pupils' Development and Leadership.
) : (
-
+
{oeifAreas.map(({ label, value }) => (
{label}
diff --git a/nextjs-app/components/SecondarySchoolDetailView.module.css b/nextjs-app/components/SecondarySchoolDetailView.module.css
index 396fca1..6f9d85d 100644
--- a/nextjs-app/components/SecondarySchoolDetailView.module.css
+++ b/nextjs-app/components/SecondarySchoolDetailView.module.css
@@ -623,6 +623,41 @@
color: var(--accent-coral-dark, #b04a2e);
}
+/* ── Ofsted grade grids (Report Card + OEIF) ──
+ Uniform, vertically-aligned grade chips. Labels reserve two lines so
+ single- and double-line labels put their chips on the same baseline;
+ every chip (Met, Strong, Expected standard, …) shares one font size,
+ padding and min-height regardless of how many lines its text wraps to. */
+.gradeGrid .metricCard {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 0.5rem;
+ padding: 0.85rem 0.75rem;
+}
+.gradeGrid .metricLabel {
+ min-height: 2.6em;
+ margin: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+}
+.gradeGrid .metricValue {
+ margin-top: auto;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ max-width: 100%;
+ min-height: 2.6em;
+ padding: 0.3rem 0.7rem;
+ border-radius: 5px;
+ font-size: 1rem;
+ font-weight: 700;
+ line-height: 1.25;
+ text-align: center;
+}
+
.ofstedDisclaimer {
font-size: 0.8rem;
color: var(--text-muted, #8a847a);
diff --git a/nextjs-app/components/SecondarySchoolDetailView.tsx b/nextjs-app/components/SecondarySchoolDetailView.tsx
index 2bf371c..8504a49 100644
--- a/nextjs-app/components/SecondarySchoolDetailView.tsx
+++ b/nextjs-app/components/SecondarySchoolDetailView.tsx
@@ -374,7 +374,7 @@ export function SecondarySchoolDetailView({
From November 2025, Ofsted replaced single overall grades with Report Cards rating schools across several areas.
-
+
{ofsted.rc_safeguarding_met != null && (
Safeguarding
@@ -419,7 +419,7 @@ export function SecondarySchoolDetailView({
Rated
{OFSTED_LABELS[ofsted.overall_effectiveness]} across all inspected areas — Quality of Teaching, Behaviour, Pupils' Development and Leadership.
) : (
-
+
{oeifAreas.map(({ label, value }) => (
{label}
@@ -436,7 +436,7 @@ export function SecondarySchoolDetailView({
From September 2024, Ofsted no longer gives a single overall grade.
-
+
{[
{ label: 'Quality of Education', value: ofsted.quality_of_education },
{ label: 'Behaviour & Attitudes', value: ofsted.behaviour_attitudes },