/* Espace public : masquage des affordances d'écriture + pages exclues.
   Filet visuel par-dessus la garde de dispatch (readonlyGuard.js). */

/* --- Nav : pages exclues --- */
body[data-mode="public"] [data-args='["messages"]'],
body[data-mode="public"] [data-args='["favorites"]'],
body[data-mode="public"] [data-args='["profile"]'],
body[data-mode="public"] [data-args='["suggestions"]'],
body[data-mode="public"] [data-args='["agents"]'],
body[data-mode="public"] [data-args='["indics"]'],
body[data-mode="public"] [data-args='["calc"]'],
body[data-mode="public"] [data-args='["chrono"]'],
body[data-mode="public"] [data-args='["vehicles"]'],
body[data-mode="public"] [data-args='["casier"]'],
body[data-mode="public"] a.nav-item[href="espace-public"],
body[data-mode="public"] #nav-agents,
body[data-mode="public"] #nav-suggestions {
  display: none !important;
}

/* --- Topbar : éléments inutiles en public --- */
body[data-mode="public"] .notif-bell,
body[data-mode="public"] #logout-btn {
  display: none !important;
}

/* --- Boutons de création / édition / suppression --- */
body[data-mode="public"] .btn-primary[data-act^="show"],
body[data-mode="public"] [data-act^="show"][data-act$="Form"],
body[data-mode="public"] [data-act^="show"][data-act$="Edit"],
body[data-mode="public"] [data-act^="delete"],
body[data-mode="public"] [data-act^="remove"],
body[data-mode="public"] [data-act^="save"],
body[data-mode="public"] [data-act^="add"],
body[data-mode="public"] [data-act^="create"],
body[data-mode="public"] [data-act^="msg"],
body[data-mode="public"] [data-act^="sugg"],
body[data-mode="public"] .kebab-btn,
body[data-mode="public"] .quick-create,
body[data-mode="public"] .fab,
body[data-mode="public"] .sugg-fab {
  display: none !important;
}

/* --- Boutons de création « Nouveau … » des listes (report-new-btn, enquete-new-btn,
   dossier-new-btn, recap-new-btn, group-new-btn, inter-new-btn, inter-empty-new-btn…) --- */
body[data-mode="public"] [id$="-new-btn"] {
  display: none !important;
}

/* --- Dashboard : retirer la carte « Lutins du serveur » (collection lutins fermée en public) --- */
body[data-mode="public"] .card:has(#dash-agents) {
  display: none !important;
}

/* --- Dashboard : retirer la tuile « Véhicules » (page vehicles exclue en public) --- */
body[data-mode="public"] .tile[data-args='["vehicles",7]'] {
  display: none !important;
}

/* Barre de mini-widgets vide en public (widgets retirés) → pas d'espace fantôme */
body[data-mode="public"] #dash-mini-widgets:empty { display: none !important; }

/* --- Détail personne : le rail d'actions (« Écrire… ») est retiré en public ; sans lui,
   le corps en grille 220px+1fr place les onglets dans la colonne étroite → on passe en 1 colonne. --- */
body[data-mode="public"] .citizen-body {
  grid-template-columns: 1fr !important;
}

/* --- Identité publique : carte latérale + topbar --- */
body[data-mode="public"] #sb-av {
  font-size: 22px;
  background: linear-gradient(135deg, #1e3a5f, #0b1220);
}
body[data-mode="public"] .agent-card .agent-mat { display: none; }
body[data-mode="public"] .tb-sub { color: var(--blue3, #60a5fa); font-weight: 600; }

/* Bouton d'accès à l'espace lutin (CTA) dans la sidebar publique */
body[data-mode="public"] .pub-login-btn {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  margin: 8px 6px 4px; padding: 11px 14px;
  background: linear-gradient(135deg, #60a5fa, #3b82f6);
  color: #fff; text-decoration: none;
  font-size: 13px; font-weight: 700; letter-spacing: .01em;
  border-radius: 10px;
  box-shadow: 0 4px 14px rgba(59, 130, 246, .32);
  transition: transform .12s ease, box-shadow .12s ease, filter .12s ease;
}
body[data-mode="public"] .pub-login-btn:hover {
  filter: brightness(1.08);
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(59, 130, 246, .45);
}

/* --- Champs d'édition inline : neutralisés visuellement --- */
body[data-mode="public"] [contenteditable] { -webkit-user-modify: read-only; user-modify: read-only; }

/* --- Vues détail & affordances d'édition ---
   Le kebab ⋮ (Modifier/Supprimer) et certains boutons utilisent la délégation locale
   data-action (persons/vehicles/reports/enquetes/groups/…) ou addEventListener : ils ne
   passent PAS par la garde de dispatch (readonlyGuard.js, qui ne couvre que data-act).
   Le masquage CSS est donc ici la protection principale (filet dur = règles Firebase). */
body[data-mode="public"] .drug-menu,            /* kebab partagé ⋮ Modifier/Supprimer */
body[data-mode="public"] [data-action^="edit-"],   /* items kebab Modifier (data-action local) */
body[data-mode="public"] [data-action^="delete-"], /* items kebab Supprimer (data-action local) */
body[data-mode="public"] [data-action^="new-"],    /* boutons « + X » de création rapide (ex. + Enquête sur une carte interrogatoire) */
body[data-mode="public"] .gcard-actions,        /* actions des cartes groupuscules */
body[data-mode="public"] .pick-btn-change,      /* bouton « changer » (avatar/photo) */
body[data-mode="public"] .chip-picker-chip-x,   /* retirer un chip dans un formulaire */
body[data-mode="public"] [id$="-form-view"],    /* aucune vue formulaire (création/édition) en public */
body[data-mode="public"] [id$="-save-btn"],     /* boutons Enregistrer */
body[data-mode="public"] [id$="-edit-banner"],  /* bandeaux d'édition */
body[data-mode="public"] #draw-zone-btn,        /* carte : dessiner une zone */
body[data-mode="public"] #map-add-marker-btn,   /* carte : ajouter un marqueur */
body[data-mode="public"] #map-draw-indicator {  /* carte : indicateur mode dessin */
  display: none !important;
}

/* --- Contrôles d'édition inline (selects de statut, inputs, textareas) ---
   Certains détails contiennent des <select> de statut câblés en addEventListener('change')
   (groupe → updateGroupStatus, rapport → updateReportStatus, enquête → __enqStatusChange) qui
   ne passent ni par la garde JS ni par le masquage de boutons. On les rend NON interactifs.
   On garde actifs : la recherche globale (#global-search) et les selects de filtre/tri
   (ids en -filter ou -sort) pour pouvoir naviguer/filtrer librement. */
body[data-mode="public"] select,
body[data-mode="public"] textarea {
  pointer-events: none !important;
}
body[data-mode="public"] #global-search,
body[data-mode="public"] .gs-input,
body[data-mode="public"] input[type="search"],
body[data-mode="public"] select[id$="-filter"],
body[data-mode="public"] select[id$="-sort"],
body[data-mode="public"] #group-sort {
  pointer-events: auto !important;
}

/* Les modales publiques (suggestion, candidature lutin) sont des formulaires légitimes :
   leurs champs restent interactifs malgré le pointer-events:none global ci-dessus. */
body[data-mode="public"] .modal-box textarea,
body[data-mode="public"] .modal-box input,
body[data-mode="public"] .modal-box select {
  pointer-events: auto !important;
}
