diff --git a/doc/functional-rules.md b/doc/functional-rules.md
index a15f719..0f3d26b 100644
--- a/doc/functional-rules.md
+++ b/doc/functional-rules.md
@@ -245,7 +245,7 @@ Tous les filtres checkbox sont cochés par défaut à l'ouverture du drawer.
- pour `FORFAIT`:
- pris: basé sur toutes les absences (demi-journées incluses)
- restants = acquis - pris (borné à 0)
- - paiement congés N-1: saisie RH via `PATCH /employees/{id}/paid-leave-days` (body: `paidLeaveDays`, `year`). Stocké dans `employee_leave_balances.paid_leave_days`. Les jours payés sont soustraits du reste à prendre N-1 (`previousYearRemainingDays = max(0, acquis_N-1 - pris_N-1 - payés)`). Uniquement pour les contrats forfait.
+ - paiement congés N-1: saisie RH via `PATCH /employees/{id}/paid-leave-days` (body: `paidLeaveDays`, `year`). Stocké dans `employee_leave_balances.paid_leave_days`. Les jours payés réduisent le stock N-1 **avant** l'attribution des jours pris : `disponible_N-1 = max(0, acquis_N-1 - payés)`, puis `pris_N-1 = min(disponible_N-1, total_pris)`, surplus pris basculé sur N. Reste à prendre N-1 = `max(0, disponible_N-1 - pris_N-1)`. Uniquement pour les contrats forfait.
- report annuel:
- le reliquat (`restants`) de l'exercice précédent est reporté dans les acquis de l'exercice courant
- pour `CDI`/`CDD` non forfait: report séparé jours + samedis
@@ -275,8 +275,9 @@ Tous les filtres checkbox sont cochés par défaut à l'ouverture du drawer.
- total mensuel des minutes de récupération
- compteur global exercice = `report N-1 + acquis N`
- attribution mensuelle des semaines:
- - une semaine ISO est affichée une seule fois, dans le mois qui contient le **samedi** de cette semaine
- - si le weekend tombe en début de mois suivant, c'est le mois suivant qui porte la semaine
+ - une semaine ISO qui chevauche deux mois est affichée dans **les deux mois**, avec les valeurs réparties proportionnellement aux minutes travaillées de chaque portion
+ - le calcul des heures supplémentaires reste hebdomadaire (seuils 35h/39h/43h appliqués sur la semaine entière), seul l'affichage est scindé
+ - exemple: S14 lundi-mardi en mars, mercredi-dimanche en avril → la S14 apparaît en mars (avec la part des heures de lun-mar) et en avril (avec la part mer-dim)
- logique de calcul:
- base identique aux calculs d'heures supplémentaires de la vue semaine Heures
- minutes de récupération hebdomadaires = `HS totales + bonus 25% + bonus 50%`
diff --git a/doc/rtt-rollover.md b/doc/rtt-rollover.md
index 3c3792f..3beaa64 100644
--- a/doc/rtt-rollover.md
+++ b/doc/rtt-rollover.md
@@ -32,9 +32,9 @@ Principe:
## 4) Attribution mensuelle des semaines
-- une semaine ISO est affichee une seule fois, dans le mois qui contient le **samedi** de cette semaine
-- si le weekend tombe en debut du mois suivant, c'est ce mois qui porte la semaine
-- pas de prorata: la totalite des minutes de recuperation de la semaine est comptee dans un seul mois
+- une semaine ISO qui chevauche deux mois est affichee dans **les deux mois**, avec les valeurs reparties proportionnellement aux minutes travaillees de chaque portion
+- le calcul des heures supplementaires reste hebdomadaire (seuils 35h/39h/43h appliques sur la semaine entiere), seul l'affichage est scinde
+- exemple: S14 lundi-mardi en mars, mercredi-dimanche en avril → la S14 apparait en mars (part lun-mar) et en avril (part mer-dim)
## 5) Table cible
diff --git a/frontend/pages/audit-logs.vue b/frontend/pages/audit-logs.vue
index 44c433d..983ba93 100644
--- a/frontend/pages/audit-logs.vue
+++ b/frontend/pages/audit-logs.vue
@@ -44,6 +44,7 @@
+