# Hospitality Responsive Report

**Date:** 2026-07-26  
**Product:** Torbat Food

## Breakpoints strategy

Mobile-first Tailwind utilities aligned with shared DS:

| Breakpoint | Layout behavior |
|------------|-----------------|
| `< lg` | Hidden sidebar; hamburger opens full-height drawer |
| `≥ lg` | Fixed 256px sidebar (`w-64`), content flex-1 |
| `sm` | Dashboard stat grid 2 columns |
| `xl` | Dashboard stat grid 4 columns |

## Component responsiveness

| Component | Mobile | Tablet | Desktop |
|-----------|--------|--------|---------|
| `HospitalityPortalShell` | Drawer nav | Drawer nav | Persistent sidebar |
| `HospitalityTablePage` | Horizontal scroll via DataTable | Full width search | Search max-w-md |
| Dashboard StatCards | Stack 1→2 cols | 2 cols | 4 cols |
| Dialogs | Full-width modal (DS) | Centered | Centered |
| Hub card | max-w-lg centered | Same | Same |

## Touch targets

- Nav links: `py-2.5` (~40px+ height)
- Icon buttons: DS `size="icon"` minimum
- Mobile menu button in header

## Performance on mobile

- Route-level code splitting via Next.js dynamic imports (default App Router)
- TanStack Query `staleTime` on capabilities (60s) reduces refetch
- Paginated lists (20 items) limit DOM size

## RTL on small screens

- Mobile drawer anchors from right (`absolute right-0`)
- Search icon positioned for RTL input padding

## Testing checklist

- [ ] iPhone SE: open drawer, navigate to menu items
- [ ] iPad: sidebar visible at lg
- [ ] Desktop 1920px: dashboard 4-column stats
- [ ] Dark mode toggle on mobile header/footer

## Lighthouse notes

- Use real backend in dev for accurate TTFB
- Images in menu media use refs only (no binary in hospitality service)
- Minimize layout shift: LoadingState skeletons on route transitions
