diff --git a/.MEMORY.md.swp b/.MEMORY.md.swp
deleted file mode 100644
index 84f4dadc..00000000
Binary files a/.MEMORY.md.swp and /dev/null differ
diff --git a/.npmrc b/.npmrc
deleted file mode 100644
index f03b3f93..00000000
--- a/.npmrc
+++ /dev/null
@@ -1,3 +0,0 @@
-ignore-scripts=true
-audit=true
-prefix=/home/inext/.npm-global
diff --git a/.phpunit.result.cache b/.phpunit.result.cache
deleted file mode 100644
index 78fe23d1..00000000
--- a/.phpunit.result.cache
+++ /dev/null
@@ -1 +0,0 @@
-{"version":2,"defects":{"Tests\\Feature\\ExampleTest::test_the_application_returns_a_successful_response":8,"Tests\\Feature\\CalendarEventsTest::test_generate_settimanale_events_produces_weekly_occurrences":8,"Tests\\Feature\\StorageRepositoryTest::test_can_create_webdav_repository":8,"Tests\\Feature\\StorageRepositoryTest::test_can_create_google_drive_repository":8,"Tests\\Feature\\StorageRepositoryTest::test_requires_nome_and_tipo":8,"Tests\\Feature\\StorageRepositoryTest::test_can_list_repositories_in_settings":8,"Tests\\Feature\\StorageRepositoryTest::test_can_delete_repository_with_no_documents":8,"Tests\\Feature\\StorageRepositoryTest::test_encrypts_sensitive_config_fields":8,"Tests\\Feature\\StorageRepositoryTest::test_tipo_labels":8,"Tests\\Feature\\StorageRepositoryTest::test_tipo_icons":8,"Tests\\Feature\\StorageRepositoryTest::test_can_reorder_repositories":8,"Tests\\Unit\\StorageRepositoryServiceTest::test_encrypts_webdav_password":8,"Tests\\Unit\\StorageRepositoryServiceTest::test_encrypts_google_drive_secrets":8,"Tests\\Unit\\StorageRepositoryServiceTest::test_builds_null_filesystem_for_unknown_tipo":8,"Tests\\Feature\\CalendarEventsTest::test_find_first_sunday_of_june_2026":8,"Tests\\Feature\\CalendarEventsTest::test_find_second_saturday_of_june_2026":8,"Tests\\Feature\\CalendarEventsTest::test_find_fifth_sunday_returns_null_when_not_in_month":8,"Tests\\Feature\\CalendarEventsTest::test_generate_mensile_events_for_all_months":8,"Tests\\Feature\\CalendarEventsTest::test_generate_mensile_events_respects_selected_months":8,"Tests\\Feature\\CalendarEventsTest::test_generate_annuale_events_produces_correct_dates":8},"times":{"Tests\\Unit\\ExampleTest::test_that_true_is_true":0.001,"Tests\\Feature\\ExampleTest::test_the_application_returns_a_successful_response":0.029,"Tests\\Feature\\CalendarEventsTest::test_find_first_sunday_of_june_2026":0.003,"Tests\\Feature\\CalendarEventsTest::test_find_second_saturday_of_june_2026":0.001,"Tests\\Feature\\CalendarEventsTest::test_find_fifth_sunday_returns_null_when_not_in_month":0.001,"Tests\\Feature\\CalendarEventsTest::test_generate_mensile_events_for_all_months":0.014,"Tests\\Feature\\CalendarEventsTest::test_generate_mensile_events_respects_selected_months":0.001,"Tests\\Feature\\CalendarEventsTest::test_generate_annuale_events_produces_correct_dates":0.001,"Tests\\Feature\\CalendarEventsTest::test_generate_settimanale_events_produces_weekly_occurrences":0.005,"Tests\\Unit\\StorageRepositoryServiceTest::test_encrypts_webdav_password":0.016,"Tests\\Unit\\StorageRepositoryServiceTest::test_encrypts_google_drive_secrets":0.001,"Tests\\Unit\\StorageRepositoryServiceTest::test_builds_null_filesystem_for_unknown_tipo":0.015,"Tests\\Feature\\StorageRepositoryTest::test_can_create_webdav_repository":0.026,"Tests\\Feature\\StorageRepositoryTest::test_can_create_google_drive_repository":0.005,"Tests\\Feature\\StorageRepositoryTest::test_requires_nome_and_tipo":0.006,"Tests\\Feature\\StorageRepositoryTest::test_can_delete_repository_with_no_documents":0.009,"Tests\\Feature\\StorageRepositoryTest::test_tipo_labels":0.001,"Tests\\Feature\\StorageRepositoryTest::test_tipo_icons":0.001,"Tests\\Feature\\StorageRepositoryTest::test_can_reorder_repositories":0.007}}
\ No newline at end of file
diff --git a/AGENTS.md_old b/AGENTS.md_old
deleted file mode 100644
index 6b39b377..00000000
--- a/AGENTS.md_old
+++ /dev/null
@@ -1,114 +0,0 @@
--# AGENTS.md
-## System Prompt – Senior PHP 8.4 / Laravel 13 / AdminLTE / MySQL (Enterprise)
-
-### 🎯 Ruolo
-Sei un **Senior Software Engineer** specializzato in:
-- PHP **8.4**
-- Laravel **13**
-- AdminLTE
-- MySQL
-- Architetture enterprise, scalabili e manutenibili
-
-Il tuo compito è produrre codice completo, sicuro, scalabile e conforme agli standard professionali.
-
----
-
-### 🧠 Gestione della memoria (`MEMORY.md`)
-#Prima di **ogni azione**, devi:
-#
-#1. **Leggere `MEMORY.md`** per recuperare il contesto precedente.
-#2. **Aggiornare `MEMORY.md`** con:
-# - nuove scoperte tecniche,
-# - decisioni architetturali,
-# - file creati o modificati,
-# - dipendenze aggiunte,
-# - problemi risolti o aperti,
-# - convenzioni adottate.
-#
-# `MEMORY.md` è la **fonte di verità** del progetto e garantisce continuità e coerenza.
-
-
-### 🧠 Gestione della memoria (MEMORY.md)
-Prima di ogni azione devi:
-
-1. Leggere completamente il file `MEMORY.md` per recuperare il contesto precedente.
-2. Utilizzare le informazioni contenute in `MEMORY.md` per garantire continuità, coerenza e allineamento del progetto.
-
----
-
-### 📌 Regola obbligatoria di persistenza
-Dopo ogni richiesta dell’utente, l’agente deve:
-
-1. Rileggere completamente `MEMORY.md` prima di iniziare qualsiasi operazione.
-2. Aggiornare `MEMORY.md` riscrivendolo per intero, includendo:
- - nuove informazioni apprese,
- - file creati o modificati,
- - decisioni architetturali,
- - dipendenze aggiunte,
- - problemi aperti o risolti,
- - stato corrente del progetto,
- - qualsiasi contenuto rilevante generato nella risposta.
-3. Salvare il nuovo contenuto di `MEMORY.md` nella root del repository.
-4. Ogni risposta dell’agente deve sempre contenere:
- - l’output richiesto dall’utente,
- - la nuova versione completa e aggiornata di `MEMORY.md`.
-
-Se una sezione di `MEMORY.md` non cambia, deve comunque essere mantenuta.
-
----
-
-### 🧩 Stile di lavoro
-- Produci **file completi**, mai snippet isolati.
-- Rispetta **PSR‑12**, **SOLID**, **Clean Architecture**, **DDD** quando applicabile.
-- Usa Laravel 13 con:
- - Eloquent ORM,
- - Form Request,
- - Resource / ResourceCollection,
- - Policy + Gate,
- - Eventi + Listener,
- - Modularizzazione del codice.
-- Usa AdminLTE integrato con Blade e asset pipeline. Prendi a riferimento questa pagina per le viste: https://adminlte.io/themes/AdminLTE/index2.html
-- Usa MySQL con:
- - migrazioni complete,
- - foreign key,
- - indici ottimizzati,
- - naming convention coerente.
-
----
-
-### 🔐 Sicurezza e qualità
-- Valida sempre input e output.
-- Evita SQL injection, XSS, CSRF, mass assignment.
-- Usa DTO o Resource per l’esposizione dati.
-- Scrivi test PHPUnit quando richiesto.
-- Documenta con PHPDoc e README tecnici.
-
----
-
-### ⚙️ Configurazione speciale
-Imposta sempre:
-OPENCODE_EXPERIMENTAL_LSP_TOOL=true
-
-
----
-
-### 🧭 Modalità di risposta
-Ogni volta che produci output:
-
-1. **Controlla `MEMORY.md`**
-2. Aggiorna `MEMORY.md`
-3. Genera:
- - file completi,
- - struttura delle directory,
- - istruzioni di installazione,
- - comandi artisan,
- - note architetturali,
- - eventuali script di build.
-
----
-
-### 🔗 Collegamenti utili
-- [Laravel_architettura](ca://s?q=Laravel_architettura)
-- [AdminLTE_integrazione](ca://s?q=AdminLTE_integrazione)
-- [Pattern_enterprise_PHP](ca://s?q=Pattern_enterprise_PHP)
-- [Gestione_MEMORIA_md](ca://s?q=Gestione_MEMORIA_md)
diff --git a/MEMORY.md b/MEMORY.md
index 52f3bf4d..c21928d7 100644
--- a/MEMORY.md
+++ b/MEMORY.md
@@ -1,1089 +1,48 @@
-# MEMORY.md - Glastree Project
+# 🧠 MEMORY.md — Stato Progetto
-## Project Context
-Laravel 13 / PHP 8.4 project for parish management (Glastree). Full codebase exists and is operational.
+## Goal
+- Stabilizzare il modale "Carica Documento" e migliorare la gestione cartelle durante l'upload.
----
+## Constraints & Preferences
+- (none)
-## Issues Open
-*Nessuna issue aperta.*
+## Progress
+### Done
+- Aggiunto pulsante "Scarica Guida PDF" nella sidebar di `/help` con nuovo metodo `HelpController::downloadPdf()` e route `GET /help/pdf/download`
+- Aggiunta card "Backup" in dashboard (small-box bg-navy, icona fa-hdd) con conteggio backup, visibile solo a utenti con `canManage('settings')`
+- Corretto `modal-body` nel modale `#uploadModal` che chiudeva prematuramente (pulsanti Annulla/Carica finivano fuori dal popup)
+- Aggiunto campo `visibilita` (select Pubblico/Individuo/Gruppo) nel form di upload documento, mancante e richiesto dal controller
+- Aggiunto selettore cartelle visibile (`
Nessuna vista salvata. Configura una tabella e salva la vista.
-
-
-
-
-
-
-
- Per salvare una vista, configura le colonne, i filtri e l'ordinamento in una delle pagine elenco (Individui, Gruppi, Documenti, Eventi) e clicca su "Salva Vista".
-
-stopSection(); ?>
-make('layouts.adminlte', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?>
\ No newline at end of file
diff --git a/storage/framework/views/409969b30ed6a6609c8c6acb7f2e2713.php b/storage/framework/views/409969b30ed6a6609c8c6acb7f2e2713.php
deleted file mode 100755
index 10445546..00000000
--- a/storage/framework/views/409969b30ed6a6609c8c6acb7f2e2713.php
+++ /dev/null
@@ -1,400 +0,0 @@
-
-
-
-
-
- Stampa Report -
-
-
-
-
-
- Come aggiungere contatti: vai su Individui, seleziona le righe desired, e usa il menu Azioni > Crea Mailing List per creare una lista dai contatti selezionati.
-