Description
The top navigation bar becomes crowded with links on medium-width screens and is inaccessible at all on screens where a hamburger menu should be shown. A collapsible sidebar navigation for tablet and mobile viewports must replace the overflow-prone horizontal nav links.
Technical Context
src/app/layout.tsx switches between a horizontal <nav> on lg and above and a slide-in sidebar below lg managed by src/components/layout/MobileSidebar.tsx (new). A hamburger MenuIcon button from lucide-react in the top bar toggles isOpen state. The sidebar uses Tailwind translate-x-0 / -translate-x-full transitions and an overlay backdrop that closes it on click. Focus is trapped inside the sidebar when open, following the same pattern as modals (Issue 2).
Acceptance Criteria
Description
The top navigation bar becomes crowded with links on medium-width screens and is inaccessible at all on screens where a hamburger menu should be shown. A collapsible sidebar navigation for tablet and mobile viewports must replace the overflow-prone horizontal nav links.
Technical Context
src/app/layout.tsxswitches between a horizontal<nav>onlgand above and a slide-in sidebar belowlgmanaged bysrc/components/layout/MobileSidebar.tsx(new). A hamburgerMenuIconbutton fromlucide-reactin the top bar togglesisOpenstate. The sidebar uses Tailwindtranslate-x-0/-translate-x-fulltransitions and an overlay backdrop that closes it on click. Focus is trapped inside the sidebar when open, following the same pattern as modals (Issue 2).Acceptance Criteria
lg, navigation links move into a sidebar triggered by a hamburger buttonlgand wider screens, the sidebar is hidden and the horizontal nav is visible regardless of sidebar state