DIGITAL RENTAB — INSTALLATION AUTONOME SUR O2SWITCH
====================================================

Le dossier fonctionne seul : aucun réglage cPanel n'est nécessaire.
L'app s'ouvre sur un écran d'entrée protégé par mot de passe : rien de l'app
n'est affiché tant que api.php n'a pas validé le mot de passe.
Les données sont enregistrées sur le serveur, dans RD/data/.

Contenu du dossier « RD » :
  index.html        l'application (ne contient aucune donnée)
  api.php           connexion + enregistrement des données + sauvegardes automatiques
  config.php        empreinte du mot de passe (le mot de passe lui-même n'est stocké nulle part)
  .htaccess         HTTPS obligatoire, pas d'indexation, data/ et config.php interdits au web
  data/             dossier des données, déjà créé et protégé (.htaccess « Require all denied »)
  data/sauvegardes/ historique automatique, déjà créé et protégé
  Fichiers créés par api.php au premier usage : data/donnees.json, data/.cle,
  data/.essais.json. Si data/ ou data/sauvegardes/ manquent, api.php les recrée.

1. ENVOYER LES FICHIERS
   cPanel > Gestionnaire de fichiers > public_html
   « Charger » : envoyez digital-rentab-RD.zip, puis clic droit > « Extraire » dans public_html.
   Vous obtenez public_html/RD/. Si RD existe déjà, acceptez le remplacement des fichiers :
   le zip ne contient PAS data/donnees.json, vos données actuelles ne sont donc pas touchées.
   (Fichiers commençant par un point masqués : Paramètres > « Afficher les fichiers cachés ».)

2. DROITS
   Dossiers RD, RD/data et RD/data/sauvegardes en 755, fichiers en 644
   (valeurs par défaut d'o2switch après extraction).

3. VÉRIFIER LE HTTPS
   cPanel > « Lets Encrypt SSL » : le domaine doit avoir un certificat actif.

4. OUVRIR L'APPLICATION
   https://votre-domaine.fr/RD/
   Écran d'entrée : saisissez le mot de passe (inchangé). Il est demandé à chaque ouverture
   de l'app, et de nouveau après 5 minutes passées en arrière-plan.
   Sans réseau, un appareil qui s'est déjà connecté vérifie le mot de passe sur place et
   ouvre sa copie locale ; ses saisies partent au serveur dès le retour de la connexion.
   Si l'app s'ouvre sans demander le mot de passe, c'est que l'ancien index.html est
   encore en place : remplacez-le, puis fermez et rouvrez l'app.
   La pastille en haut à droite doit afficher « Synchronisé ».
   iPhone : Partager > « Sur l'écran d'accueil ».

SÉCURITÉ
   - 8 mots de passe faux en 15 minutes depuis la même connexion = blocage 15 minutes.
   - « Fichier » > « Se déconnecter de cet appareil » ferme la connexion, efface la copie
     locale et ramène à l'écran d'entrée.
   - Changer de mot de passe : remplacer l'empreinte dans config.php par une empreinte bcrypt
     (par exemple : php -r 'echo password_hash("NOUVEAU", PASSWORD_BCRYPT);').
     Tous les appareils devront se reconnecter.

TRÉSORERIE ET TVA (Santé financière)
   - La trésorerie fin de mois suit l'argent réel du compte, TVA comprise :
     missions encaissées TTC, dépenses TTC, charges récurrentes (avec ajustements du mois)
     et exceptionnelles, investissements programmés TTC, TVA nette reversée.
   - À renseigner : solde du compte et date du relevé, crédit de TVA déjà acquis,
     TVA due pas encore débitée au relevé.
   - Réglages TVA (onglet TVA) : exigibilité à l'encaissement (défaut, prestations de services)
     ou sur les débits. Régime réel normal : déclaration CA3 chaque mois, TVA du mois payée le mois suivant.
   - Une charge exceptionnelle sans date n'est comptée nulle part : l'app le signale.

MISES À JOUR DE L'APPLICATION
   Remplacez index.html et api.php. Ne touchez jamais à data/donnees.json.

SAUVEGARDES
   data/sauvegardes/ garde une copie au plus toutes les 30 minutes (120 copies).
   Revenir en arrière : copiez une sauvegarde à la place de data/donnees.json.
   Copie hors serveur : « Fichier » > « Exporter les données (.json) ».

SI L'ÉCRAN D'ENTRÉE AFFICHE UNE ERREUR
   « api.php introuvable » : api.php doit être à côté de index.html.
   « Mot de passe non configuré » : config.php manquant à côté de api.php.
   « Impossible de créer le dossier data/ » ou « pas accessible en écriture » :
   mettez RD et RD/data en droits 755.
   « Confidentialité des répertoires » cPanel encore active sur RD : désactivez-la.
