6b2a6f1ce4
- Neue Client-Komponente admin/modules/grants/page.tsx: laedt GET /module-grants/matrix einmal, rendert Module x Gruppen mit sticky erster Spalte/Kopfzeile, Kategorie- Gruppierung, Suchfeld und Admin-Bypass-Fussnote (D-03/D-15, PERM-03) - Jede Zelle togglet sofort optimistisch (POST/DELETE /module-grants); Fehlschlag springt die Checkbox zurueck und zeigt die Fehlermeldung im bestehenden error-Div (T-15-25) -- identisches Muster zu AdminModulesPage.toggleModule - aria-label pro Checkbox aus admin.groups.grants.matrixCheckboxLabel beschreibt die bevorstehende Aktion (freigeben/entziehen), nicht den aktuellen Zustand - admin/modules/page.tsx: neuer Header-Button "Freigaben-Matrix" verlinkt auf die Unterseite, kein siebter Sidebar-Eintrag - grants-matrix.test.tsx: 5 Tests (befuellte Matrix, leerer Zustand, Rollback bei Fehler, Suchfilter, aria-label je Checkbox)