# F-159 — Implementer

## Implementación
- `SidebarToggle` reutilizable para desktop y mobile.
- Estado desktop `expanded/collapsed` persistido en `localStorage` (`mdv.admin.sidebar.collapsed`).
- Desktop colapsado reduce 240px→80px y oculta etiquetas solo en breakpoint `lg`.
- Mobile/tablet usa el mismo sidebar como drawer con backdrop y cierre por navegación, botón o Escape.
- Drawer cerrado queda `invisible`, evitando foco en enlaces fuera de pantalla.
- Transiciones suaves de ancho, transformación e icono.
- Accesibilidad: botones nativos, `aria-label`, `aria-expanded`, `aria-controls`, `aria-current`, focus rings y tooltips.
- Restaurado acceso visible a cerrar sesión dentro del sidebar.

## Evidencia
- `cd project/apps/admin && npm run build`: PASS (29 rutas).
- `cd project && node_modules/.bin/tsc --noEmit`: PASS.
- `git diff --check`: PASS.
- `./scripts/verify.sh`: PASS.

## Archivo
- `project/apps/admin/src/app/(dashboard)/layout.tsx`
