diff --git a/src/app/globals.css b/src/app/globals.css index 098a38d62e..f89f3acd6e 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -970,3 +970,54 @@ tbody tr:hover { text-align: left; } } + +/* ── Mobile responsive overrides ──────────────────────────── */ +@media (max-width: 48rem) { + h1 { + font-size: clamp(1.25rem, 5vw, var(--size-heading-h1, 30px)); + } + h2 { + font-size: clamp(1.1rem, 4vw, var(--size-heading-h2, 22px)); + } + .hero { + padding: 1.25rem 1rem; + } + .card { + padding: 0.85rem 1rem; + } + .admin-card { + padding: 0.85rem; + } + .admin-filter-bar input, + .admin-filter-bar select { + min-width: 140px; + } + .admin-page td, + .admin-page th { + white-space: nowrap; + padding: 0.5rem 0.6rem; + font-size: 0.78rem; + } + .stat-grid { + grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); + } + .btn { + font-size: 13px; + padding: 0.4rem 0.85rem; + } + .content-card-head { + padding: 0.7rem 0.85rem; + } + .content-card-body { + padding: 0.85rem; + } +} + +/* make tables scroll on small screens */ +@media (max-width: 640px) { + table { + display: block; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 993f63373b..ab0a6bd084 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -91,9 +91,9 @@ export default async function RootLayout({ children }: { children: ReactNode }) -
-
-
{children}
+
+
+
{children}
diff --git a/src/components/mobile-nav.tsx b/src/components/mobile-nav.tsx index 60d8a0292d..30dacbf945 100644 --- a/src/components/mobile-nav.tsx +++ b/src/components/mobile-nav.tsx @@ -62,11 +62,11 @@ export function MobileNav({ children, menuLabel = "Open menu", closeLabel = "Clo