diff --git a/nextjs-app/app/globals.css b/nextjs-app/app/globals.css index ae80291..ca6c3d4 100644 --- a/nextjs-app/app/globals.css +++ b/nextjs-app/app/globals.css @@ -291,6 +291,8 @@ body { max-width: 1400px; margin: 0 auto; padding: 1.25rem 1.5rem; + min-width: 0; + overflow-x: clip; } .view { diff --git a/nextjs-app/components/ComparisonView.module.css b/nextjs-app/components/ComparisonView.module.css index 0ba918a..b820ad3 100644 --- a/nextjs-app/components/ComparisonView.module.css +++ b/nextjs-app/components/ComparisonView.module.css @@ -301,12 +301,15 @@ .tableWrapper { overflow-x: auto; + max-width: 100%; margin-top: 1rem; + -webkit-overflow-scrolling: touch; } .comparisonTable { width: 100%; - border-collapse: collapse; + border-collapse: separate; + border-spacing: 0; font-size: 0.9375rem; } @@ -320,6 +323,7 @@ font-weight: 600; color: var(--text-primary, #1a1612); border-bottom: 2px solid var(--border-color, #e5dfd5); + background: var(--bg-secondary, #f3ede4); white-space: nowrap; text-transform: uppercase; font-size: 0.75rem; @@ -331,6 +335,24 @@ border-bottom: 1px solid var(--border-color, #e5dfd5); color: var(--text-secondary, #5c564d); text-align: left; + background: var(--bg-card, white); +} + +/* Sticky first column (Year) so labels remain visible while scrolling */ +.comparisonTable th:first-child, +.comparisonTable td:first-child { + position: sticky; + left: 0; + z-index: 1; + box-shadow: 2px 0 4px -2px rgba(26, 22, 18, 0.08); +} + +.comparisonTable thead th:first-child { + z-index: 2; +} + +.comparisonTable tbody tr:hover td:first-child { + background: var(--bg-secondary, #f3ede4); } .comparisonTable tbody tr:last-child td { diff --git a/nextjs-app/components/FilterBar.tsx b/nextjs-app/components/FilterBar.tsx index e94c7f0..4535f57 100644 --- a/nextjs-app/components/FilterBar.tsx +++ b/nextjs-app/components/FilterBar.tsx @@ -148,7 +148,7 @@ export function FilterBar({ filters, isHero, resultFilters }: FilterBarProps) { type="search" value={omniValue} onChange={(e) => setOmniValue(e.target.value)} - placeholder="Search by school or postcode ..." + placeholder="School name or postcode" className={styles.omniInput} />