diff --git a/src/app/global.css b/src/app/global.css index 261f31c..2b2a85d 100644 --- a/src/app/global.css +++ b/src/app/global.css @@ -29,11 +29,34 @@ body { overscroll-behavior: none; } +/* Tablet/mobile: stable layout when virtual keyboard opens */ +html { + /* Prefer dynamic viewport height so layout can adapt to keyboard (if browser resizes) */ + height: 100%; +} body { + min-height: 100%; + min-height: 100dvh; background-color: var(--background); color: var(--foreground); } +/* Full-height containers: use dvh so keyboard doesn’t squash the layout when overlay is used */ +@media (max-width: 1024px) { + .min-h-screen { + min-height: 100dvh; + } +} + +/* Avoid iOS zoom on input focus (keep inputs ≥16px where possible) */ +@media (max-width: 1024px) { + input, + select, + textarea { + font-size: max(16px, 1rem); + } +} + .app-search-criteria { border-radius: 8px; border: 1px solid var(--border); diff --git a/src/app/layout.tsx b/src/app/layout.tsx index dde610b..027afb7 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,4 +1,4 @@ -import type { Metadata } from "next"; +import type { Metadata, Viewport } from "next"; // import { detectLanguage } from "@/i18n"; // import ThemeRegistry from "@/theme/ThemeRegistry"; import { detectLanguage } from "../i18n"; @@ -9,6 +9,14 @@ export const metadata: Metadata = { description: "FPSMS - xxxx Management System", }; +/** Tablet/mobile: virtual keyboard overlays content instead of resizing viewport (avoids "half screen gone"). */ +export const viewport: Viewport = { + width: "device-width", + initialScale: 1, + viewportFit: "cover", + interactiveWidget: "overlays-content", +}; + export default async function RootLayout({ children, }: { diff --git a/src/components/Logo/Logo.tsx b/src/components/Logo/Logo.tsx index 8e18be2..0bc601c 100644 --- a/src/components/Logo/Logo.tsx +++ b/src/components/Logo/Logo.tsx @@ -7,7 +7,7 @@ interface Props { } /** - * Logo: 3D-style badge (FP) + MTMS wordmark. + * Logo: 3D-style badge (FP) + FP-MTMS wordmark. * Badge uses gradient and highlight for depth; FP = Food Production, MTMS = system name. */ const Logo: React.FC = ({ height = 44, className = "" }) => { @@ -68,13 +68,13 @@ const Logo: React.FC = ({ height = 44, className = "" }) => { FP - {/* Wordmark: MTMS + subtitle — strong, energetic */} + {/* Wordmark: FP-MTMS + subtitle — strong, energetic */}
- MTMS + FP-MTMS