# Export PDF des heures — vue Jour

Bouton **Exporter** à droite du titre « Heures », visible pour les **administrateurs**
(`ROLE_ADMIN`) **et les chefs de site** (`ROLE_USER`), **uniquement en vue Jour** (masqué
en vue Semaine, masqué pour les profils employé `ROLE_SELF`).

## Périmètre
- **Administrateur** : peut exporter tous les sites.
- **Chef de site** : ne voit dans le drawer que **ses sites** et ne peut exporter que
  ceux-ci. Le périmètre est appliqué côté backend (`EmployeeRepository::findScoped`) — un
  `siteIds` forcé hors de son périmètre est ignoré, aucune donnée d'un autre site ne fuit.

## Comportement
- Ouvre un drawer : un champ **date** (préremplit la date affichée) et des **cases à
  cocher des sites** (limitées au périmètre de l'utilisateur).
- Génère un **PDF A4 portrait** d'une seule journée, **regroupé par site**.

## Données
- Mêmes employés que la vue Jour : **non-conducteurs**, **sous contrat** à la date
  choisie, des sites cochés et **dans le périmètre de l'utilisateur**. Les employés sous
  contrat sans saisie apparaissent (lignes vides).
- Colonnes : Nom · Statut · Début matin · Fin matin · Début après-midi · Fin après-midi ·
  Début soir · Fin soir · Jour · Nuit · **Total** (en gras). **Pas de colonne « Valider ».**
- Colonne **Statut** : affiche le **code** du type d'absence (ex. `AT`), pas le libellé,
  sur la couleur de fond du type. Un jour férié sans absence affiche le **nom du férié**
  sur fond bleu clair (`#b3e5fc`).
- Jour / Nuit / Total : identiques à l'écran (crédit d'absence `countAsWorkedHours` et
  crédit virtuel férié inclus).
- **Légende** sous le tableau : pour chaque code d'absence présent (hors férié), un carré
  de couleur contenant le code et le libellé du type à droite. Triée par code, dédupliquée.

## Technique
- Endpoint : `GET /work-hours/day-export?workDate=YYYY-MM-DD&siteIds=1,2,3` (`ROLE_USER`).
- Provider : `App\State\WorkHourDayExportProvider` — résout le périmètre via
  `EmployeeRepository::findScoped($user)` (admin → tous, chef de site → ses sites).
- Calcul des cellules : `YearlyHoursExportBuilder::buildDayRowsForEmployees` (source
  unique de vérité, partagée avec les exports annuels).
- Gabarit : `templates/work-hour-day-export/print.html.twig`.
