diff --git a/src/main/java/dev/lions/unionflow/client/bean/MenuBean.java b/src/main/java/dev/lions/unionflow/client/bean/MenuBean.java
index e7987b7..b18f296 100644
--- a/src/main/java/dev/lions/unionflow/client/bean/MenuBean.java
+++ b/src/main/java/dev/lions/unionflow/client/bean/MenuBean.java
@@ -616,6 +616,36 @@ public class MenuBean implements Serializable {
hasAnyRole("SUPER_ADMIN", "ADMIN_ORGANISATION");
}
+ // ========================================================================
+ // Pages conformité (Sprint 8 — backend P1-NEW-7 / P2-NEW-3 / P1-NEW-15)
+ // ========================================================================
+
+ /**
+ * Tableau de bord conformité — Compliance Officer / Contrôleur Interne / direction.
+ * @since 2026-04-25
+ */
+ public boolean isConformiteDashboardVisible() {
+ return hasAnyRole("SUPER_ADMIN", "ADMIN_ORGANISATION", "PRESIDENT",
+ "TRESORIER", "COMPLIANCE_OFFICER", "CONTROLEUR_INTERNE");
+ }
+
+ /**
+ * Rapports trimestriels Contrôleur Interne — restreint contrôleur + président + admin.
+ * @since 2026-04-25
+ */
+ public boolean isRapportsTrimestrielsVisible() {
+ return hasAnyRole("SUPER_ADMIN", "ADMIN_ORGANISATION", "PRESIDENT",
+ "CONTROLEUR_INTERNE");
+ }
+
+ /**
+ * PI-SPI Readiness — admin technique uniquement.
+ * @since 2026-04-25
+ */
+ public boolean isPispiReadinessVisible() {
+ return hasAnyRole("SUPER_ADMIN", "COMPLIANCE_OFFICER");
+ }
+
/**
* Retourne true si l'organisation active dispose d'au moins un module métier spécifique
* (au-delà des modules communs toujours disponibles).
diff --git a/src/main/resources/META-INF/resources/templates/components/layout/menu.xhtml b/src/main/resources/META-INF/resources/templates/components/layout/menu.xhtml
index 9e0ec35..3762444 100644
--- a/src/main/resources/META-INF/resources/templates/components/layout/menu.xhtml
+++ b/src/main/resources/META-INF/resources/templates/components/layout/menu.xhtml
@@ -107,6 +107,15 @@
+
+
+
+
+
+
+
+
+