{
  "common": {
    "emailSuggestion": {
      "text": "Intendevi {{email}}?",
      "apply": "Usa questo"
    },
    "save": "Salva",
    "saving": "Salvataggio...",
    "saved": "✓ Salvato",
    "cancel": "Annulla",
    "confirm": "Conferma",
    "delete": "Elimina",
    "edit": "Modifica",
    "close": "Chiudi",
    "add": "Aggiungi",
    "yes": "Sì",
    "no": "No",
    "loading": "Caricamento...",
    "optional": "(opzionale)",
    "all": "Tutti",
    "active": "Attivo",
    "inactive": "Inattivo",
    "moveUp": "Sposta su",
    "moveDown": "Sposta giù",
    "required": "obbligatorio",
    "none": "Nessuno",
    "unlimited": "Illimitata",
    "yesDelete": "Sì, elimina",
    "deleteQ": "Eliminare?",
    "unsavedChanges": "Hai modifiche non salvate. Se esci adesso andranno perse. Vuoi uscire comunque?",
    "saveError": "Errore durante il salvataggio. Riprova.",
    "deleteError": "Errore durante l'eliminazione. Riprova.",
    "loadError": "Errore durante il caricamento. Riprova.",
    "updateError": "Errore nell'aggiornamento. Riprova.",
    "uploadError": "Upload fallito. Riprova.",
    "notAnImage": "\"{{fileName}}\" non è un'immagine."
  },
  "login": {
    "greeting": "Ciao,",
    "logout": "Esci",
    "title": "Accedi",
    "howItWorks": "Come funziona?",
    "explanation": "Cliccando il bottone verrai portato direttamente sulla pagina di Google — la stessa che usi per accedere a Gmail. Noi non vediamo la tua password e non memorizziamo dati personali: usiamo solo la tua email per verificare che tu sia autorizzato ad accedere.",
    "continueWithGoogle": "Continua con Google",
    "notAuthorizedForTenant": "Non sei autorizzato per questo tenant.",
    "googleError": "Errore durante il login. Riprova."
  },
  "nav": {
    "bookings": "Prenotazioni",
    "approvals": "Approvazioni",
    "reviews": "Recensioni",
    "notifications": "Notifiche",
    "analytics": "Analytics",
    "profile": "Profilo",
    "services": "Servizi",
    "specialists": "Specialisti",
    "places": "Sedi",
    "gallery": "Galleria",
    "education": "Formazione",
    "documents": "Documenti",
    "faqs": "FAQ",
    "alerts": "Avvisi",
    "availability": "Disponibilità",
    "themes": "Temi",
    "qrcode": "QR Code",
    "settings": "Impostazioni",
    "release-notes": "Novità",
    "activity": "Attività",
    "privacy": "Privacy"
  },
  "dashboard": {
    "header": {
      "title": "Dashboard",
      "notifications": "Notifiche",
      "backToSite": "Torna al sito",
      "closeMenu": "Chiudi menu",
      "help": "Scarica la presentazione delle funzionalità"
    },
    "sidebar": {
      "logout": "Esci",
      "versionTooltip": "Versione distribuita — commit {{sha}}"
    },
    "toast": {
      "close": "Chiudi",
      "newBookingToday": "Nuova prenotazione oggi",
      "newBookingFull": "Nuova prenotazione: {{info}}",
      "newBookingsToday": "{{count}} nuove prenotazioni per oggi",
      "cancelledToday": "{{count}} disdette per oggi",
      "cancelledTodayFull": "Disdetta oggi: {{info}}",
      "rescheduledToday": "{{count}} appuntamenti spostati per oggi",
      "rescheduledTodayFull": "Appuntamento spostato: {{info}}"
    },
    "language": {
      "picker": "Lingua",
      "it": "IT",
      "en": "EN",
      "fr": "FR",
      "es": "ES",
      "de": "DE"
    }
  },
  "bookings": {
    "title": "Prenotazioni",
    "views": {
      "day": "Giorno",
      "week": "Settimana",
      "month": "Mese"
    },
    "filters": {
      "allSpecialists": "Tutti gli specialisti",
      "allServices": "Tutti i servizi",
      "allPlaces": "Tutte le sedi",
      "allTypes": "Tutte le voci",
      "typeAppointments": "Solo appuntamenti",
      "typeBlocked": "Solo indisponibilità",
      "typeNotes": "Solo note"
    },
    "today": "Oggi",
    "loading": "Caricamento...",
    "addAppointment": "Aggiungi appuntamento",
    "addAppointmentTitle": "Aggiungi appuntamento",
    "nonWorkingDay": "Giorno non lavorativo o assenza per l'intera giornata o orari non configurati",
    "nonWorkingDayShort": "Giorno non lavorativo",
    "lunchBreak": "Pausa pranzo",
    "add": "Aggiungi",
    "allDay": "Tutto il giorno",
    "blockedTypeLabel": "Indisponibilità",
    "dayCounts": {
      "appointmentsOne": "appuntamento",
      "appointmentsOther": "appuntamenti",
      "blockedOne": "indisponibilità",
      "blockedOther": "indisponibilità",
      "notesOne": "nota",
      "notesOther": "note",
      "waitlistOne": "in lista d'attesa",
      "waitlistOther": "in lista d'attesa"
    },
    "blockTime": "Blocca orario",
    "blockConfirm": "Confermi il blocco di questo orario?",
    "addNote": "Aggiungi nota",
    "noteConfirm": "Confermi il salvataggio di questa nota?",
    "noteLabel": "Nota",
    "goToAvailability": "Vai a Disponibilità",
    "multiDayEditWarningBlock": "Questo blocco copre più giorni, dal {{from}} al {{to}}. Da qui puoi solo eliminarlo — l'eliminazione lo rimuove per l'intero periodo. Per modificare le date vai su Disponibilità.",
    "multiDayEditWarningNote": "Questa nota copre più giorni, dal {{from}} al {{to}}. Da qui puoi solo eliminarla — l'eliminazione la rimuove per l'intero periodo. Per modificare le date vai su Disponibilità.",
    "waitlist": {
      "title": "Lista d'attesa per questa data",
      "remove": "Rimuovi",
      "expand": "Mostra la lista d'attesa",
      "collapse": "Nascondi la lista d'attesa"
    },
    "panel": {
      "new": "Nuovo appuntamento",
      "edit": "Modifica appuntamento",
      "view": "Dettaglio appuntamento",
      "block": "Blocca orario",
      "note": "Nota",
      "editBlock": "Modifica blocco",
      "editNote": "Modifica nota",
      "close": "Chiudi",
      "closePanel": "Chiudi pannello"
    },
    "form": {
      "date": "Data",
      "from": "Dalle",
      "to": "Alle",
      "specialist": "Specialista",
      "service": "Servizio",
      "offer": "Variante",
      "durationUnit": "min",
      "selectVariant": "Seleziona variante...",
      "select": "Seleziona...",
      "name": "Nome",
      "namePlaceholder": "Mario",
      "surname": "Cognome",
      "surnamePlaceholder": "Rossi",
      "phone": "Telefono",
      "phonePlaceholder": "333 123 4567",
      "phonePrefix": "Prefisso internazionale",
      "email": "Email",
      "emailPlaceholder": "mariorossi@gmail.com",
      "notes": "Note",
      "notesPlaceholder": "Preferenze, allergie...",
      "price": "Prezzo (€)"
    },
    "actions": {
      "save": "Salva",
      "saving": "Salvataggio...",
      "cancel": "Annulla",
      "delete": "Elimina",
      "approve": "Approva",
      "edit": "Modifica",
      "confirmOverride": "Conferma comunque",
      "overlapTitle": "Sovrapposizione rilevata – vuoi procedere?",
      "confirmDeleteQ": "Eliminare questo appuntamento?",
      "confirmDeleteBlockQ": "Eliminare questo blocco?",
      "confirmDeleteNoteQ": "Eliminare questa nota?",
      "confirmApproveQ": "Approvare questo appuntamento?",
      "yesDelete": "Sì, elimina",
      "yesApprove": "Sì, approva",
      "notifyOnDelete": "Avvisa il cliente via email della cancellazione",
      "notifyOnMove": "Avvisa il cliente via email del nuovo orario",
      "noShow": "Assente",
      "confirmNoShowQ": "Il cliente non si è presentato?",
      "yesNoShow": "Sì, segna assente",
      "cancelNoShow": "Annulla"
    },
    "status": {
      "pending": "In attesa",
      "confirmed": "Confermato",
      "pendingApproval": "In attesa di approvazione",
      "noShow": "Assente"
    },
    "detail": {
      "customer": "Cliente",
      "phone": "Telefono",
      "email": "Email",
      "service": "Servizio",
      "specialist": "Specialista",
      "date": "Data",
      "time": "Orario",
      "notes": "Note",
      "price": "Prezzo",
      "status": "Stato",
      "adminNotes": "Note interne (solo admin)",
      "adminNotesPlaceholder": "Es. cliente difficile, ha pagato in anticipo, no-show il 15/04...",
      "adminNotesSaving": "Salvataggio...",
      "adminNotesSaved": "Salvato",
      "adminNotesIndicator": "Nota interna",
      "noShowHistory": "{{count}} mancate presentazioni passate",
      "privacy": "Privacy",
      "privacyAccepted": "Informativa letta il {{when}} (versione del {{version}})",
      "healthConsent": "Dati sanitari",
      "healthConsentAccepted": "Consenso alle informazioni sulla salute indicate nelle note, dato il {{when}}",
      "consent": "Consenso",
      "consentAccepted": "Accettato il {{when}}"
    },
    "reminder": {
      "emailTitle": "Invia email reminder",
      "waTitle": "Invia reminder WhatsApp",
      "emailReminderBtn": "Invia email reminder",
      "waReminderBtn": "Apri WhatsApp",
      "subject": "Oggetto",
      "body": "Testo",
      "send": "Invia",
      "openWhatsApp": "Apri WhatsApp",
      "cancel": "Annulla",
      "close": "Chiudi",
      "closePanel": "Chiudi pannello",
      "sendError": "Errore durante l'invio. Riprova tra qualche istante.",
      "defaultEmailSubject": "Promemoria appuntamento — {{data}}",
      "defaultEmailBody": "Gentile {{nome}} {{cognome}},\n\nti ricordiamo il tuo appuntamento per \"{{servizio}}\" in data {{data}} alle {{ora_inizio}}.\n\nA presto!",
      "defaultWhatsapp": "Ciao {{nome}}, ti ricordiamo il tuo appuntamento per \"{{servizio}}\" il {{data}} alle {{ora_inizio}}."
    },
    "weekdays": {
      "mon": "Lun",
      "tue": "Mar",
      "wed": "Mer",
      "thu": "Gio",
      "fri": "Ven",
      "sat": "Sab",
      "sun": "Dom"
    },
    "unavailable": "Indisponibile",
    "errors": {
      "requiredFields": "Compila tutti i campi obbligatori (*).",
      "endAfterStart": "L'ora di fine deve essere successiva all'ora di inizio.",
      "selectVariant": "Seleziona una variante per il servizio.",
      "loadError": "Errore durante il caricamento. Riprova.",
      "saveError": "Errore durante il salvataggio. Riprova.",
      "slotTakenError": "Questo orario è appena stato occupato da un'altra prenotazione. Scegli un altro orario.",
      "deleteError": "Errore durante l'eliminazione. Riprova.",
      "approveError": "Errore durante l'approvazione. Riprova.",
      "noShowError": "Errore durante l'aggiornamento. Riprova."
    },
    "conflicts": {
      "lunch": "Pausa pranzo ({{start}}–{{end}})",
      "blocked": "Indisponibilità segnata ({{start}}–{{end}})",
      "blockedAllDay": "Indisponibilità segnata (intera giornata)",
      "existing": "Prenotazione esistente ({{start}}–{{end}}: {{name}} {{surname}})"
    }
  },
  "analytics": {
    "title": "Analytics",
    "loading": "Caricamento dati...",
    "allSpecialists": "Tutti",
    "kpi": {
      "bookings": "Prenotazioni",
      "uniqueCustomers": "Clienti unici",
      "anonymizedExcluded": "{{count}} prenotazioni anonime escluse",
      "anonymizedHint": "Prenotazioni di oltre 24 mesi fa o di clienti che hanno chiesto la cancellazione dei dati: senza contatti non si può sapere chi sono, quindi restano nei totali ma non nei conteggi per cliente.",
      "revenue": "Ricavo totale",
      "avgTicket": "Ticket medio",
      "avgRating": "Voto medio recensioni",
      "leadTime": "Anticipo medio prenotazione",
      "leadTimeUnit": "giorni",
      "occupancy": "Riempimento calendario",
      "pending": "in attesa",
      "cancellations": "Disdette clienti",
      "cancellationRateSuffix": "delle prenotazioni",
      "noShows": "Assenze",
      "noShowRateSuffix": "degli appuntamenti",
      "reschedules": "Spostamenti clienti",
      "rescheduleRateSuffix": "delle prenotazioni"
    },
    "chart": {
      "title": "Andamento",
      "bookings": "Prenotazioni",
      "revenue": "Ricavo",
      "empty": "Nessuna prenotazione nel periodo selezionato."
    },
    "tables": {
      "bySpecialist": "Per specialista",
      "byService": "Per servizio",
      "byPlace": "Per sede",
      "topCustomers": "Top clienti",
      "topCancellers": "Disdette per cliente",
      "cancellerCount": "Disdette",
      "topNoShowers": "Assenze per cliente",
      "noShowCount": "Assenze",
      "topReschedulers": "Spostamenti per cliente",
      "rescheduleCount": "Spostamenti",
      "specialist": "Specialista",
      "service": "Servizio",
      "place": "Sede",
      "customer": "Cliente",
      "customerContact": "Contatto",
      "customerBookings": "Appunt.",
      "bookings": "Prenotazioni",
      "revenue": "Ricavo",
      "shortBookings": "Pren.",
      "avgTicket": "Ticket medio",
      "occupancy": "Riempimento",
      "noData": "Nessun dato disponibile.",
      "otherInactive": "Altro / non più attivo"
    },
    "returnRate": {
      "title": "Fedeltà clienti",
      "once": "Prima visita",
      "few": "2–3 visite",
      "loyal": "4+ visite",
      "hint": "su {{total}} clienti unici nel periodo"
    },
    "dayOfWeek": {
      "title": "Giorno più richiesto"
    },
    "monthOfYear": {
      "title": "Mese più richiesto"
    },
    "hourOfDay": {
      "title": "Fascia oraria più richiesta"
    },
    "days": {
      "0": "Lun",
      "1": "Mar",
      "2": "Mer",
      "3": "Gio",
      "4": "Ven",
      "5": "Sab",
      "6": "Dom"
    },
    "periods": {
      "7d": "7 giorni",
      "30d": "30 giorni",
      "90d": "90 giorni",
      "year": "Quest'anno"
    },
    "months": {
      "0": "Gen",
      "1": "Feb",
      "2": "Mar",
      "3": "Apr",
      "4": "Mag",
      "5": "Giu",
      "6": "Lug",
      "7": "Ago",
      "8": "Set",
      "9": "Ott",
      "10": "Nov",
      "11": "Dic"
    },
    "loadError": "Errore nel caricamento dei dati. Riprova.",
    "trend": {
      "stable": "= periodo prec."
    },
    "yearInProgressNote": "Anno in corso: i numeri includono anche gli appuntamenti già fissati nei prossimi mesi, e le variazioni ▲/▼ sono calcolate rispetto all'intero anno precedente."
  },
  "approvals": {
    "title": "Approvazioni",
    "subtitle": "Richieste di prenotazione in attesa di conferma",
    "loading": "Caricamento...",
    "empty": "Nessuna richiesta in attesa",
    "confirmRejectQ": "Rifiutare la richiesta?",
    "confirmApproveQ": "Approvare la prenotazione?",
    "approve": "Approva",
    "reject": "Rifiuta",
    "rejectTitle": "Rifiuta richiesta",
    "yesApprove": "Sì, approva",
    "yesReject": "Sì, rifiuta",
    "saving": "...",
    "conflictTitle": "Attenzione, possibile conflitto:"
  },
  "availability": {
    "title": "Disponibilità",
    "saved": "✓ Salvato",
    "tabs": {
      "hours": "Orari di lavoro",
      "blocked": "Indisponibilità"
    },
    "noSpecialists": "Nessuno specialista attivo. Aggiungine uno dalla sezione Specialisti.",
    "context": {
      "global": "Globale",
      "resetPlace": "Resetta orari per questa sede",
      "removeConfig": "Rimuovi configurazione per questa sede"
    },
    "hours": {
      "title": "Orari settimanali",
      "lunchBreak": "Pausa pranzo",
      "lunchBreakHint": "Abilita e configura la pausa pranzo per ogni giorno.",
      "buffer": "Buffer tra appuntamenti",
      "bufferHint": "Minuti di pausa automatica dopo ogni appuntamento.",
      "customBuffer": "Personalizzato",
      "applyToAll": "Applica a tutti",
      "applyToAllTitle": "Copia questi orari a tutti gli specialisti",
      "save": "Salva",
      "saving": "Salvataggio...",
      "confirm": "Conferma",
      "cancel": "Annulla",
      "confirmSave": "Salvare gli orari per <strong>{{specialist}}</strong> – <em>{{context}}</em>?",
      "confirmApplyAll": "Sovrascrivere gli orari di <strong>tutti gli specialisti</strong> per <em>{{context}}</em> con quelli di <strong>{{specialist}}</strong>."
    },
    "colors": {
      "title": "Colori calendario",
      "hint": "Colori usati nella vista giornaliera per ferie/indisponibilità e pausa pranzo.",
      "blockedFull": "Ferie / Indisponibilità giornaliera",
      "blockedPartial": "Indisponibilità parziale",
      "lunchBreak": "Pausa pranzo",
      "save": "Salva colori",
      "saving": "Salvataggio...",
      "saved": "✓ Salvato"
    },
    "blocked": {
      "add": "+ Aggiungi blocco",
      "addNote": "+ Aggiungi nota",
      "new": "Nuovo blocco",
      "newNote": "Nuova nota",
      "edit": "Modifica blocco",
      "editNote": "Modifica nota",
      "blockingToggle": "Blocca agenda",
      "blockingToggleHint": "Se disattivato, non blocca l'agenda: resta visibile solo come promemoria.",
      "saveNote": "Salva nota",
      "updateNote": "Aggiorna nota",
      "noteBadge": "Nota",
      "specialistLabel": "Specialista",
      "allSpecialists": "— Tutti gli specialisti —",
      "placeLabel": "Sede",
      "allPlaces": "— Tutte le sedi —",
      "dateFrom": "Dal",
      "dateTo": "Al",
      "allDay": "Intera giornata",
      "fromTime": "Dalle",
      "toTime": "Alle",
      "reason": "Motivo",
      "reasonMax": "(max 50 caratteri)",
      "reasonPlaceholder": "Scegli o scrivi un motivo...",
      "saveBlock": "Salva blocco",
      "updateBlock": "Aggiorna blocco",
      "saving": "Salvataggio...",
      "confirm": "Conferma",
      "cancel": "Annulla",
      "empty": "Nessuna indisponibilità futura.",
      "all": "Tutti",
      "confirmDeleteQ": "Eliminare?",
      "yesDelete": "Sì",
      "noDelete": "No",
      "editTitle": "Modifica",
      "deleteTitle": "Elimina",
      "close": "Chiudi",
      "confirmSummary": "Confermi? {{summary}}",
      "confirmOneDayN": "1 giorno",
      "confirmDaysN": "{{n}} giorni",
      "errorDateRequired": "La data è obbligatoria.",
      "errorTimesRequired": "Ora inizio e ora fine sono obbligatorie.",
      "errorEndBeforeStart": "L'ora di fine deve essere successiva all'ora di inizio.",
      "conflictWarning": "Attenzione: {{n}} prenotazione/i confermata/e rientrano in questo periodo. È consigliabile contattare i clienti interessati per avvisarli e procedere manualmente alla cancellazione degli appuntamenti dall'agenda."
    },
    "days": {
      "mon": "Lunedì",
      "tue": "Martedì",
      "wed": "Mercoledì",
      "thu": "Giovedì",
      "fri": "Venerdì",
      "sat": "Sabato",
      "sun": "Domenica"
    },
    "reasons": {
      "vacation": "Ferie",
      "leave": "Permesso",
      "sick": "Malattia",
      "break": "Pausa",
      "busy": "Occupato"
    }
  },
  "documents": {
    "title": "Documenti",
    "hint": "Carica documenti come privacy policy, certificazioni, listini, convenzioni. Formati accettati: <strong>PDF, immagini, DOCX, XLSX, PPTX</strong>. Dimensione massima per file: <strong>{{maxSizeMb}} MB</strong>. Puoi decidere quali documenti rendere visibili ai clienti nella sezione <strong>Documenti</strong> del tuo sito pubblico.",
    "upload": "Carica documenti",
    "uploading": "Upload in corso…",
    "dropzone": "<strong>Trascina qui i file</strong> oppure usa il pulsante \"Carica documenti\"",
    "empty": "Nessun documento caricato.",
    "rename": "Rinomina",
    "namePlaceholder": "Nome documento",
    "open": "Apri",
    "openNewTab": "Apri in nuova scheda",
    "openError": "Impossibile aprire il documento. Riprova.",
    "moveUp": "Sposta su",
    "moveDown": "Sposta giù",
    "delete": "Elimina",
    "public": "Pubblico",
    "internal": "Interno",
    "makePublic": "Interno – clicca per renderlo pubblico",
    "makeInternal": "Visibile pubblicamente – clicca per renderlo interno",
    "confirmDeleteQ": "Eliminare questo documento?",
    "yesDelete": "Sì, elimina",
    "cancel": "Annulla",
    "remove": "Rimuovi",
    "save": "Salva"
  },
  "alerts": {
    "title": "Avvisi",
    "hint": "Crea messaggi di avviso da mostrare ai visitatori in cima al sito pubblico. Ogni avviso può essere abilitato/disabilitato, riordinato o eliminato. Massimo <strong>{{max}}</strong> avvisi.",
    "add": "+ Nuovo avviso",
    "limitReached": "Hai raggiunto il limite di {{max}} avvisi. Elimina un avviso esistente per aggiungerne uno nuovo.",
    "empty": "Nessun avviso creato.",
    "save": "Salva avviso",
    "saved": "✓ Salvato",
    "saving": "Salvataggio...",
    "cancel": "Annulla",
    "close": "Chiudi",
    "moveUp": "Sposta su",
    "moveDown": "Sposta giù",
    "edit": "Modifica",
    "delete": "Elimina",
    "panel": {
      "new": "Nuovo avviso",
      "edit": "Modifica avviso"
    },
    "type": "Tipo",
    "typeLabel": {
      "error": "Urgente",
      "warning": "Avviso",
      "info": "Info"
    },
    "typeIcon": {
      "error": "ti-alert-circle",
      "warning": "ti-alert-triangle",
      "info": "ti-info-circle"
    },
    "text": "Testo",
    "textPlaceholder": "Es. Siamo chiusi dal 10 al 20 agosto per ferie.",
    "enable": "Abilita",
    "disable": "Disabilita",
    "errorTextRequired": "Il testo dell'avviso è obbligatorio."
  },
  "suspended": {
    "title": "Sito temporaneamente non disponibile",
    "message": "Questo sito non è al momento disponibile. Ti invitiamo a riprovare più tardi."
  },
  "qrcode": {
    "title": "QR Code",
    "hint": "Il QR Code punta alla pagina pubblica del tuo sito, la stessa che vedono i clienti. Scansionandolo si accede direttamente al sito.",
    "yourCode": "Il tuo QR Code",
    "imgAlt": "QR Code del sito pubblico",
    "copyLink": "Copia link",
    "copied": "✓ Copiato",
    "errorGenerate": "Errore nella generazione del QR Code.",
    "exportTitle": "Esporta per la stampa",
    "exportHint": "Scegli la dimensione del QR Code e verifica l'anteprima di come verrebbe stampato su un foglio A4, poi esporta in PDF per stamparlo.",
    "size": "Dimensione",
    "previewCaption": "Anteprima foglio A4",
    "download": "Scarica PDF",
    "downloading": "Generazione PDF…",
    "print": "Stampa",
    "errorPdf": "Errore nella generazione del PDF. Riprova."
  },
  "faq": {
    "title": "FAQ",
    "saved": "✓ Salvato",
    "hint": "Censisci le domande frequenti che vuoi mostrare ai clienti sul tuo sito pubblico. Compaiono nella sezione <strong>FAQ</strong> ad apertura/chiusura (accordion) e ordinate come qui sotto.",
    "add": "+ Nuova FAQ",
    "panel": {
      "new": "Nuova FAQ",
      "edit": "Modifica FAQ"
    },
    "question": "Domanda",
    "questionPlaceholder": "Es. Quali sono i vostri orari?",
    "answer": "Risposta",
    "answerPlaceholder": "Scrivi una risposta chiara e completa…",
    "save": "Salva FAQ",
    "saving": "Salvataggio...",
    "cancel": "Annulla",
    "close": "Chiudi",
    "moveUp": "Sposta su",
    "moveDown": "Sposta giù",
    "edit": "Modifica",
    "delete": "Elimina",
    "yesDelete": "Sì, elimina",
    "empty": "Nessuna FAQ ancora censita.",
    "errorRequired": "Domanda e risposta sono obbligatorie."
  },
  "releaseNotes": {
    "title": "Novità",
    "subtitle": "Le ultime funzionalità e correzioni rilasciate sull'app.",
    "empty": "Nessun aggiornamento pubblicato per il momento.",
    "category": {
      "feature": "Nuova funzionalità",
      "improvement": "Miglioramento",
      "fix": "Correzione",
      "communication": "Comunicazione"
    }
  },
  "gallery": {
    "title": "Galleria",
    "hint": "Carica le foto dei tuoi lavori o servizi. Vengono ridimensionate automaticamente a 1600px e ricompresse per velocizzare il caricamento e ridurre l'occupazione. Le immagini compaiono nella sezione <strong>Galleria</strong> del tuo sito pubblico.",
    "upload": "Carica immagini",
    "uploading": "Upload in corso…",
    "empty": "Nessuna immagine caricata.",
    "moveLeft": "Sposta a sinistra",
    "moveRight": "Sposta a destra",
    "delete": "Elimina",
    "yesDelete": "Sì, elimina",
    "captionPlaceholder": "Didascalia (opzionale)",
    "save": "Salva",
    "descriptionLabel": "Testo introduttivo",
    "descriptionPlaceholder": "Aggiungi un testo che appare tra il titolo e le immagini nel sito pubblico (opzionale)…"
  },
  "education": {
    "title": "Formazione",
    "hint": "Gestisci la sezione Formazione del tuo sito pubblico: aggiungi un testo descrittivo (titoli di studio, certificazioni, esperienze) e carica foto di diplomi o attestati.",
    "uploadImage": "Carica immagini",
    "textLabel": "Testo formazione",
    "textHint": "Descrivi il tuo percorso formativo. Puoi usare grassetto, corsivo e link.",
    "textPlaceholder": "Es. Laurea in Medicina e Chirurgia presso…",
    "imagesLabel": "Immagini (diplomi, attestati, certificazioni)",
    "imagesHint": "Le immagini vengono ridimensionate automaticamente e ordinate con i tasti freccia sulla card.",
    "imagesEmpty": "Nessuna immagine caricata."
  },
  "activity": {
    "title": "Attività",
    "description": "Registro delle tue azioni nella dashboard: cosa hai modificato e quando.",
    "loading": "Caricamento…",
    "empty": "Nessuna attività registrata.",
    "loadError": "Impossibile caricare lo storico delle attività. Riprova più tardi.",
    "columns": {
      "when": "Quando",
      "who": "Chi",
      "what": "Cosa",
      "target": "Elemento",
      "details": "Dettagli"
    },
    "actions": {
      "service_create": "Servizio creato",
      "service_update": "Servizio modificato",
      "service_delete": "Servizio eliminato",
      "availability_update": "Disponibilità modificata",
      "blockedSlot_create": "Blocco/nota aggiunta",
      "blockedSlot_update": "Blocco/nota modificata",
      "blockedSlot_delete": "Blocco/nota eliminata",
      "booking_create": "Prenotazione creata",
      "booking_update": "Prenotazione modificata",
      "booking_cancel": "Prenotazione cancellata",
      "profile_update": "Profilo modificato",
      "customer_anonymize": "Dati cliente anonimizzati",
      "customer_export": "Dati cliente esportati"
    }
  },
  "notifications": {
    "title": "Notifiche",
    "tabs": {
      "all": "Tutte",
      "unread": "Non lette",
      "read": "Lette"
    },
    "actions": {
      "markRead": "Segna lette",
      "markUnread": "Segna non lette",
      "delete": "Elimina",
      "deleteAll": "Elimina tutte",
      "markAllRead": "Segna tutte lette",
      "confirmBulkDeleteQ": "Eliminare le notifiche selezionate?",
      "confirmDeleteAllQ": "Eliminare tutte le notifiche?",
      "yesDelete": "Sì, elimina",
      "cancel": "Annulla",
      "loadMore": "Carica altre"
    },
    "type": {
      "newBooking": "Nuova prenotazione",
      "cancelledByCustomer": "Disdetta dal cliente",
      "rescheduledByCustomer": "Spostata dal cliente"
    },
    "unreadLabel": "Non letta",
    "empty": "Nessuna notifica.",
    "emptyFiltered": "Nessuna notifica per questo filtro.",
    "loading": "Caricamento...",
    "selectAll": "Seleziona tutti",
    "confirmSingleDeleteQ": "Eliminare questa notifica?",
    "yesDelete": "Sì",
    "noDelete": "No",
    "atTime": "ore",
    "receivedOn": "ricevuta il",
    "previously": "prima: {{when}}"
  },
  "places": {
    "title": "Sedi",
    "add": "+ Aggiungi sede",
    "nameRequired": "Il nome della sede è obbligatorio.",
    "cascadeOffers": "{{count}} offerta/e legate a questa sede",
    "cascadeAvailabilities": "{{count}} configurazione/i di disponibilità per questa sede",
    "cascadeBlockedSlots": "{{count}} periodo/i di indisponibilità per questa sede",
    "cascadeLoading": "calcolo...",
    "panel": {
      "new": "Nuova sede",
      "edit": "Modifica sede"
    },
    "close": "Chiudi",
    "nameLabel": "Nome",
    "namePlaceholder": "Es. Salone Centro, Studio Milano...",
    "addressLabel": "Indirizzo",
    "addressPlaceholder": "Via, numero civico, città...",
    "save": "Salva sede",
    "saving": "Salvataggio...",
    "edit": "Modifica",
    "delete": "Elimina",
    "active": "Attiva",
    "inactive": "Inattiva",
    "confirmDeleteMsg": "Eliminare la sede \"{{name}}\"?",
    "yesDelete": "Sì, elimina",
    "empty": "Nessuna sede aggiunta."
  },
  "profile": {
    "title": "Profilo",
    "save": "Salva modifiche",
    "saving": "Salvataggio...",
    "confirm": "Conferma",
    "saved": "✓ Salvato",
    "cancel": "Annulla",
    "profileCardTitle": "Profilo",
    "profileCardHint": "Questi dati appaiono nella sezione «Profilo» del tuo sito pubblico.",
    "customLinksCardTitle": "Link personalizzati",
    "customLinksCardHint": "Aggiungi link a un blog, forum o sito esterno dove pubblichi contenuti — mostrati insieme ai social sul tuo sito pubblico.",
    "contactsCardTitle": "Contatti",
    "contactsCardHint": "Questi dati appaiono nella sezione «Contatti» del tuo sito pubblico.",
    "sectionsTitle": "Sezioni del sito",
    "sectionsHint": "Abilita, disabilita e riordina le sezioni della tua pagina pubblica.",
    "publicLanguage": "Lingua pagina pubblica",
    "publicLanguageHint": "Lingua di default mostrata ai clienti, i quali possono comunque cambiarla.",
    "publicLanguageLabel": "Lingua sito pubblico",
    "langOptions": {
      "it": "IT — Italiano",
      "en": "EN — English",
      "es": "ES — Español",
      "fr": "FR — Français",
      "de": "DE — Deutsch"
    },
    "accentColor": {
      "title": "Colore tema",
      "hint": "Colore dei bottoni principali e degli accenti interattivi nel tuo sito pubblico (es. 'Prenota', 'Invia recensione').",
      "custom": "Personalizzato",
      "preview": "Anteprima bottone"
    },
    "logo": {
      "title": "Logo dell'attività",
      "hint": "Logo mostrato sul tuo sito pubblico accanto al nome attività e nella dashboard admin. Formati: PNG, JPG, WebP. Le immagini grandi vengono ridimensionate automaticamente a 1024px sul lato lungo.",
      "empty": "Nessun logo caricato",
      "upload": "Carica logo",
      "replace": "Sostituisci",
      "remove": "Rimuovi",
      "confirmRemove": "Eliminare il logo?",
      "cancel": "Annulla",
      "confirm": "Sì, elimina"
    },
    "fields": {
      "title": "Titolo",
      "titlePlaceholder": "Dott.ssa",
      "name": "Nome",
      "namePlaceholder": "Mario",
      "surname": "Cognome",
      "surnamePlaceholder": "Rossi",
      "specialization": "Specializzazione",
      "specializationPlaceholder": "Nutrizionista",
      "denomination": "Denominazione",
      "denominationPlaceholder": "Salone...",
      "appShortName": "Nome breve per l'app",
      "appShortNameHint": "Facoltativo. È il nome che compare sotto l'icona quando un cliente aggiunge il tuo sito alla schermata Home del telefono. iPhone e Android ne mostrano per intero circa {{visible}} caratteri: oltre, il nome viene compresso o tagliato con «…». Se lo lasci vuoto viene usato il nome suggerito nel campo. Caratteri: {{count}}/{{max}}.",
      "address": "Indirizzo",
      "addressPlaceholder": "Via...",
      "addressesTitle": "Indirizzi",
      "addressLabelPlaceholder": "Studio Milano",
      "addAddress": "Aggiungi indirizzo",
      "removeAddress": "Rimuovi indirizzo",
      "customLinkLabel": "Etichetta",
      "customLinkLabelPlaceholder": "Il mio blog",
      "customLinkUrl": "URL",
      "addCustomLink": "Aggiungi link",
      "removeCustomLink": "Rimuovi link",
      "phone": "Telefono",
      "phonePlaceholder": "3331234567",
      "phonePrefix": "Prefisso internazionale",
      "phonesTitle": "Contatti telefonici",
      "contactLabel": "Etichetta (opzionale)",
      "contactLabelPlaceholder": "Segreteria",
      "noPrefix": "Nessun prefisso",
      "hasWhatsapp": "WhatsApp",
      "hasWhatsappNeedsPrefix": "Serve un prefisso internazionale per collegare WhatsApp",
      "addPhone": "Aggiungi contatto",
      "removePhone": "Rimuovi contatto",
      "email": "Email",
      "emailPlaceholder": "email@esempio.it",
      "bio": "Bio",
      "bioPlaceholder": "Descrizione professionale...",
      "bioCollapsedByDefault": "Mostra la bio compressa nella pagina pubblica, con un'icona per espanderla",
      "facebook": "Facebook",
      "instagram": "Instagram",
      "linkedin": "LinkedIn",
      "tiktok": "TikTok",
      "youtube": "YouTube",
      "twitter": "X (Twitter)"
    },
    "moveUp": "Sposta su",
    "moveDown": "Sposta giù",
    "active": "Attiva",
    "inactive": "Inattiva"
  },
  "reviews": {
    "title": "Recensioni",
    "loading": "Caricamento...",
    "tabs": {
      "pending": "In attesa",
      "approved": "Approvate",
      "rejected": "Rifiutate",
      "all": "Tutte"
    },
    "actions": {
      "delete": "Elimina",
      "approve": "Approva",
      "reject": "Rifiuta",
      "confirmBulkDeleteQ": "Eliminare le recensioni selezionate?",
      "yesDelete": "Sì, elimina",
      "cancel": "Annulla",
      "loadMore": "Carica altre"
    },
    "empty": {
      "pending": "Nessuna recensione in attesa di moderazione.",
      "approved": "Nessuna recensione approvata.",
      "rejected": "Nessuna recensione rifiutata.",
      "all": "Nessuna recensione ricevuta."
    },
    "selectAll": "Seleziona tutti",
    "confirmDeleteQ": "Eliminare questa recensione?"
  },
  "services": {
    "title": "Servizi",
    "add": "+ Aggiungi servizio",
    "nameRequired": "Il nome del servizio è obbligatorio.",
    "generic": "Servizio generico",
    "locationsCount": "{{count}} sedi",
    "attachmentsCount": "{{count}} allegati",
    "panel": {
      "new": "Nuovo servizio",
      "edit": "Modifica servizio"
    },
    "close": "Chiudi",
    "fields": {
      "name": "Nome",
      "namePlaceholder": "Es. Taglio uomo, Visita nutrizionale...",
      "description": "Descrizione",
      "descriptionPlaceholder": "Breve descrizione del servizio...",
      "translations": {
        "en": {
          "section": "Traduzione inglese (EN)",
          "name": "Nome (EN)",
          "namePlaceholder": "E.g. Men's haircut, Nutritional consultation...",
          "description": "Descrizione (EN)",
          "descriptionPlaceholder": "Brief description of the service..."
        },
        "es": {
          "section": "Traduzione spagnola (ES)",
          "name": "Nome (ES)",
          "namePlaceholder": "Ej. Corte de pelo, Consulta nutricional...",
          "description": "Descrizione (ES)",
          "descriptionPlaceholder": "Breve descripción del servicio..."
        },
        "fr": {
          "section": "Traduzione francese (FR)",
          "name": "Nome (FR)",
          "namePlaceholder": "Ex. Coupe homme, Consultation nutritionnelle...",
          "description": "Descrizione (FR)",
          "descriptionPlaceholder": "Brève description du service..."
        },
        "de": {
          "section": "Traduzione tedesca (DE)",
          "name": "Nome (DE)",
          "namePlaceholder": "Z. B. Herrenhaarschnitt, Ernährungsberatung...",
          "description": "Descrizione (DE)",
          "descriptionPlaceholder": "Kurze Beschreibung der Leistung..."
        }
      },
      "duration": "Durata",
      "price": "Prezzo (€)",
      "color": "Colore",
      "specialists": "Specialisti abilitati"
    },
    "offers": {
      "title": "Varianti per sede",
      "add": "+ Aggiungi variante",
      "panel": {
        "new": "Nuova variante",
        "edit": "Modifica variante"
      },
      "place": "Sede",
      "noPlaces": "Nessuna sede disponibile.",
      "createFirst": "Crea una sede prima di procedere.",
      "duration": "Durata",
      "price": "Prezzo (€)",
      "active": "Sede attiva",
      "specialists": "Specialisti abilitati",
      "edit": "Modifica",
      "delete": "Elimina"
    },
    "attachments": {
      "title": "Documenti allegati alla mail di conferma e al riepilogo prenotazione",
      "total": "Totale allegati: {{size}}",
      "overLimit": "Il totale degli allegati supera il limite di 1 MB. Rimuovi qualche documento oppure, se hai bisogno di allegati più pesanti, contatta l'amministratore della piattaforma.",
      "messageLabel": "Messaggio per il cliente",
      "messagePlaceholder": "Es. Scarica e leggi i documenti allegati, e portali firmati il giorno dell'appuntamento.",
      "messageHint": "Mostrato al cliente prima della conferma, insieme al link per scaricare ogni documento allegato (pubblico o privato: entrambi restano scaricabili solo da qui, e continuano ad arrivare anche via email a prenotazione confermata)."
    },
    "consent": {
      "checkboxLabel": "Testo della checkbox di consenso",
      "checkboxPlaceholder": "Es. Dichiaro di aver letto e compreso l'informativa e di accettarne il contenuto.",
      "checkboxHint": "Se compilato, il cliente deve spuntarlo per poter confermare la prenotazione. Se il servizio ha anche documenti allegati, la checkbox resta disabilitata finché non li ha aperti tutti."
    },
    "save": "Salva servizio",
    "saving": "Salvataggio...",
    "cancel": "Annulla",
    "edit": "Modifica",
    "delete": "Elimina",
    "yesDelete": "Sì, elimina",
    "active": "Attivo",
    "inactive": "Inattivo",
    "empty": "Nessun servizio aggiunto."
  },
  "themes": {
    "title": "Temi",
    "resetToDefault": "Ripristina default",
    "customColor": "Colore libero",
    "tabs": {
      "public": "Sito pubblico",
      "dashboard": "Dashboard admin"
    },
    "public": {
      "title": "Sito pubblico",
      "hint": "Configura la palette colori e il font del sito visibile ai tuoi clienti (/home, /booking, /review). Le modifiche sono in anteprima live nel browser — salva per renderle permanenti.",
      "accentColor": "Colore accento (CTA)",
      "accentColorDesc": "Colore dei bottoni primari (Prenota, Conferma, ecc.) e degli accenti interattivi (link FAQ, hover card, slot selezionato).",
      "previewCta": "Esempio bottone CTA",
      "otherColors": "Palette estesa",
      "backgroundColor": "Sfondo",
      "backgroundColorDesc": "Sfondo di navbar, footer e delle card (profilo, servizi, offerte, recensioni, documenti, FAQ) in tutte le pagine pubbliche (home, prenotazione, recensione, cancellazione).",
      "borderColor": "Bordi",
      "borderColorDesc": "Bordi e divisori di navbar, card e campi dei form in tutte le pagine pubbliche.",
      "textColor": "Testo principale",
      "textColorDesc": "Testo principale (nomi, titoli, valori) in tutte le pagine pubbliche — incluso il testo scritto negli editor di Formazione/Galleria, quando non ha un colore incollato esplicito.",
      "textMutedColor": "Testo secondario",
      "textMutedColorDesc": "Testo secondario: didascalie, etichette, orari, descrizioni brevi in tutte le pagine pubbliche.",
      "textTertiaryColor": "Testo terziario (icone, hint)",
      "textTertiaryColorDesc": "Testo meno rilevante: icone, timestamp, elementi disabilitati — il tono più chiaro dei tre livelli di testo.",
      "fontFamily": "Font",
      "fontFamilyDesc": "Font usato per tutti i testi del sito pubblico. I font Google vengono caricati automaticamente.",
      "fontPreviewText": "Il tuo font, la tua identità",
      "fontCustomLabel": "Oppure cerca un font personalizzato da Google Fonts",
      "fontCustomPlaceholder": "Es. Roboto, Open Sans, Montserrat…",
      "fontApply": "Applica",
      "fontCustomHint": "Trova il nome esatto della famiglia su",
      "fontCustomActive": "Font personalizzato attivo: {{ name }}",
      "fontNotFound": "Font non trovato su Google Fonts. Verifica che il nome sia esatto, con le maiuscole corrette (es. \"Roboto\", non \"roboto\").",
      "fontInvalidName": "Nome non valido. Usa solo lettere, numeri, spazi e trattini.",
      "fontLoadError": "Impossibile caricare il font. Controlla la connessione e riprova."
    },
    "dashboard": {
      "title": "Dashboard admin",
      "hint": "Personalizza l'aspetto della dashboard di gestione. Le modifiche sono in anteprima live — salva per renderle permanenti.",
      "darkMode": "Modalità scura",
      "darkModeDesc": "Attiva il tema scuro per la dashboard admin. Utile in ambienti con poca luce.",
      "darkModeOn": "Attiva modalità scura",
      "darkModeOff": "Disattiva modalità scura",
      "accentColor": "Colore accent dashboard",
      "accentColorDesc": "Colore dei bottoni primari (Salva, Aggiungi, tab attivi) e del bordo focus degli input — oltre a: i chip del calendario prenotazioni (vista settimana e mese), la striscia colorata e il nome del servizio nella vista giorno, l'hover dei bottoni di invito promemoria e l'iniziale dell'avatar in sidebar. Default: nero (#111).",
      "previewBtn": "Esempio bottone Salva",
      "calendarColors": "Colori calendario prenotazioni",
      "calendarColorsDesc": "Colori usati nel calendario per evidenziare slot bloccati, note e pause pranzo.",
      "blockedFull": "Blocco totale",
      "blockedPartial": "Blocco parziale",
      "lunchBreak": "Pausa pranzo",
      "note": "Nota"
    }
  },
  "settings": {
    "title": "Impostazioni",
    "save": "Salva impostazioni",
    "saving": "Salvataggio...",
    "saved": "✓ Salvato",
    "confirm": "Conferma",
    "cancel": "Annulla",
    "confirmSaveQ": "Salvare le impostazioni di prenotazione?",
    "cancellation": {
      "title": "Politica di cancellazione",
      "hint": "Definisci entro quando il cliente può cancellare un appuntamento. In caso contrario, puoi comunque scrivere un messaggio opzionale che verrà mostrato al cliente nella email di prenotazione",
      "limit": "Limite di cancellazione",
      "notAllowed": "Non consentita",
      "message": "Messaggio al cliente",
      "messagePlaceholder": "Es. Per cancellare contatta il salone almeno 24 ore prima..."
    },
    "reschedule": {
      "title": "Spostamento appuntamento",
      "hint": "Definisci entro quando il cliente può spostare da solo un appuntamento a un altro orario libero, dal link nell'email di prenotazione e nel promemoria.",
      "limit": "Limite di spostamento",
      "notAllowed": "Non consentito"
    },
    "booking": {
      "title": "Vincoli di prenotazione",
      "minAdvance": "Anticipo minimo",
      "minAdvanceHint": "Il cliente deve prenotare almeno X ore prima dello slot.",
      "maxAdvance": "Finestra massima",
      "maxAdvanceHint": "Il cliente non può prenotare oltre X giorni in anticipo.",
      "slotDuration": "Durata slot",
      "slotDurationHint": "Ogni quanti minuti vengono mostrati gli orari disponibili nel calendario di prenotazione.",
      "none": "Nessuno",
      "unlimited": "Illimitata"
    },
    "lastMinute": {
      "title": "Slot last minute",
      "hint": "Mostra ai clienti gli slot disponibili nei prossimi giorni nella pagina di prenotazione, per aiutarti ad occupare la giornata.",
      "enabled": "Abilita slot last minute",
      "rangeDays": "Periodo da considerare",
      "day1": "Solo oggi",
      "day2": "Oggi + domani",
      "day3": "Oggi + i prossimi 2 giorni"
    },
    "waitlist": {
      "title": "Lista d'attesa",
      "hint": "Quando non ci sono slot disponibili per una data, mostra al cliente un form per iscriversi alla lista d'attesa e ricevere una notifica se si libera un posto.",
      "enabled": "Abilita lista d'attesa"
    },
    "reviewRequest": {
      "title": "Richiesta recensione automatica",
      "hint": "Il giorno dopo un appuntamento confermato, invia automaticamente al cliente un'email con l'invito a lasciare una recensione.",
      "enabled": "Abilita richiesta recensione automatica"
    },
    "frequency": {
      "title": "Limite prenotazioni per cliente",
      "hint": "Limita quante prenotazioni lo stesso cliente (nome + cognome + email o telefono) può effettuare in un dato periodo.",
      "typeLabel": "Tipo di limite",
      "maxLabel": "Prenotazioni massime consentite",
      "daysLabel": "Nell'arco di quanti giorni",
      "types": {
        "none": "Nessuno",
        "per_day": "Al giorno",
        "per_week": "A settimana",
        "per_month": "Al mese",
        "every_n_days": "Ogni N giorni"
      }
    },
    "confirmation": {
      "title": "Conferma appuntamenti",
      "hint": "Scegli se le prenotazioni vengono confermate subito o richiedono la tua approvazione.",
      "auto": "Automatica",
      "manual": "Manuale",
      "manualHint": "Le prenotazioni rimarranno in stato \"In attesa\" finché non le approvi manualmente dalla sezione Prenotazioni."
    },
    "notifications": {
      "title": "Notifiche",
      "hint": "Scegli come vuoi essere notificato alla creazione o cancellazione di un appuntamento.",
      "admin": "Admin",
      "client": "Cliente",
      "email": "Email",
      "sms": "SMS",
      "smsNote": "Le notifiche SMS non sono ancora attive: prevedono un costo aggiuntivo da configurare a parte. Contatta l'amministratore della piattaforma se ti interessano.",
      "adminEmailAddressPlaceholder": "Email per le notifiche",
      "adminEmailAddressHint": "Riceverai una copia (CCN) di ogni email di conferma inviata al cliente."
    },
    "reminders": {
      "title": "Reminder automatico",
      "hint": "Il reminder viene inviato automaticamente al cliente con l'anticipo configurato. L'email usa lo stesso template grafico delle email di conferma.",
      "enabled": "Attiva reminder automatico",
      "hoursBefore": "Anticipo invio",
      "hoursBeforeHint": "Quante ore prima dell'appuntamento inviare il reminder automatico al cliente.",
      "emailLabel": "Email",
      "waLabel": "WhatsApp",
      "subject": "Oggetto email",
      "body": "Testo"
    },
    "defaultView": {
      "title": "Vista predefinita prenotazioni",
      "hint": "Vista selezionata all'apertura della pagina Prenotazioni.",
      "views": {
        "day": "Giornaliera",
        "week": "Settimanale",
        "month": "Mensile"
      }
    },
    "toast": {
      "title": "Notifiche real-time",
      "hint": "Toast che appare nella vista giornaliera quando arriva una nuova prenotazione.",
      "autoClose": "Chiusura automatica",
      "closeAfter": "Chiudi dopo",
      "showIn": "Mostra nel messaggio",
      "showCustomer": "Nome e cognome del cliente",
      "showService": "Servizio prenotato",
      "showDateTime": "Data e orario",
      "seconds": {
        "3": "3 secondi",
        "5": "5 secondi",
        "10": "10 secondi",
        "15": "15 secondi",
        "30": "30 secondi",
        "60": "60 secondi"
      }
    },
    "navOrder": {
      "title": "Ordine sezioni",
      "hint": "Usa le frecce per riordinare le voci nella sidebar. L'ordine viene salvato insieme alle altre impostazioni.",
      "active": "Attiva",
      "inactive": "Disattiva",
      "moveUp": "Sposta su",
      "moveDown": "Sposta giù"
    },
    "language": {
      "title": "Lingua dashboard",
      "dashboardLabel": "Lingua dashboard",
      "dashboardHint": "Lingua predefinita per tutti gli amministratori.",
      "names": {
        "it": "Italiano",
        "en": "English",
        "fr": "Français",
        "es": "Español",
        "de": "Deutsch"
      }
    }
  },
  "specialists": {
    "title": "Specialisti",
    "add": "+ Aggiungi specialista",
    "nameRequired": "Il nome dello specialista è obbligatorio.",
    "panel": {
      "new": "Nuovo specialista",
      "edit": "Modifica specialista"
    },
    "close": "Chiudi",
    "fields": {
      "name": "Nome",
      "namePlaceholder": "Es. Mario Rossi",
      "role": "Ruolo",
      "rolePlaceholder": "Es. Parrucchiere Senior, Nutrizionista...",
      "email": "Email",
      "emailPlaceholder": "mariorossi@gmail.com",
      "color": "Colore"
    },
    "save": "Salva specialista",
    "saving": "Salvataggio...",
    "cancel": "Annulla",
    "edit": "Modifica",
    "delete": "Elimina",
    "yesDelete": "Sì, elimina",
    "active": "Attivo",
    "inactive": "Inattivo",
    "empty": "Nessuno specialista aggiunto."
  },
  "public": {
    "seo": {
      "fallbackDescriptionWithSpecialization": "{{name}} — {{specialization}}. Scopri servizi e disponibilità e prenota online.",
      "fallbackDescription": "{{name}} — scopri servizi e disponibilità e prenota online."
    },
    "nav": {
      "home": "Home",
      "alerts": "Avvisi",
      "openMenu": "Apri menu",
      "closeMenu": "Chiudi menu",
      "languageCurrent": "Lingua: {{name}}",
      "langIt": "IT",
      "langEn": "EN"
    },
    "home": {
      "sections": {
        "profile": "Profilo",
        "bio": "Bio",
        "social": "Social",
        "services": "Servizi",
        "gallery": "Galleria",
        "education": "Formazione",
        "documents": "Documenti",
        "faqs": "FAQ",
        "reviews": "Recensioni",
        "contacts": "Contatti",
        "booking": "Prenota"
      },
      "bio": {
        "expand": "Espandi bio",
        "collapse": "Comprimi bio"
      },
      "services": {
        "active": "Attivo",
        "locations": "Sedi disponibili",
        "bookHint": "Prenota"
      },
      "gallery": {
        "openImage": "Apri immagine",
        "lightboxLabel": "Anteprima immagine",
        "close": "Chiudi",
        "prev": "Immagine precedente",
        "next": "Immagine successiva"
      },
      "contacts": {
        "emailLabel": "Email",
        "phoneLabel": "Telefono",
        "addressLabel": "Indirizzo",
        "sendEmail": "Invia email",
        "openWhatsApp": "Apri WhatsApp",
        "openMaps": "Apri in Google Maps"
      },
      "reviews": {
        "writeReview": "Lascia una recensione",
        "avgOutOf": "su 5",
        "count": "({{count}} recensioni)",
        "showLess": "Mostra meno",
        "showAll": "Vedi tutte le {{count}} recensioni",
        "empty": "Sii il primo a lasciare una recensione."
      },
      "whatsapp": {
        "greeting": "Salve! Ho visitato il vostro sito e vorrei avere informazioni."
      },
      "email": {
        "subject": "Richiesta informazioni",
        "body": "Salve,\n\nho visitato il vostro sito e vorrei avere informazioni sui vostri servizi.\n\nGrazie."
      }
    },
    "booking": {
      "step": {
        "specialist": {
          "title": "Chi vuoi prenotare?",
          "sub": "Scegli il professionista"
        },
        "service": {
          "title": "Quale servizio?",
          "sub": "Scegli il servizio che ti interessa"
        },
        "offer": {
          "title": "Quale sede?",
          "sub": "Scegli dove vuoi il tuo appuntamento"
        },
        "date": {
          "title": "Quando?",
          "sub": "Scegli una data disponibile",
          "loadingSlots": "Caricamento orari...",
          "noSlots": "Nessun orario disponibile per questa data.",
          "continue": "Continua"
        },
        "personal": {
          "title": "I tuoi dati",
          "sub": "Inserisci le tue informazioni",
          "name": "Nome",
          "surname": "Cognome",
          "email": "Email",
          "contactHint": "(almeno uno tra email e telefono)",
          "phone": "Telefono",
          "phonePrefix": "Prefisso internazionale",
          "notes": "Note",
          "notesOptional": "(opzionale)",
          "notesPlaceholder": "Informazioni aggiuntive...",
          "emailError": "Inserisci un indirizzo email valido.",
          "phoneError": "Solo cifre, spazi o trattini. Minimo 6 cifre.",
          "contactRequired": "Inserisci almeno un contatto tra email e telefono.",
          "verifying": "Verifica...",
          "continue": "Continua"
        },
        "summary": {
          "title": "Riepilogo",
          "sub": "Controlla i dati prima di confermare",
          "specialist": "Professionista",
          "service": "Servizio",
          "place": "Sede",
          "date": "Data",
          "time": "Orario",
          "name": "Nome",
          "email": "Email",
          "phone": "Telefono",
          "notes": "Note",
          "confirm": "Conferma prenotazione",
          "sending": "Invio in corso...",
          "consentDownloadFirst": "Apri e scarica ogni documento per poter procedere.",
          "consentDocumentError": "Impossibile aprire il documento. Riprova tra qualche istante.",
          "downloadAllDocuments": "Scarica tutti i documenti",
          "errorRateLimited": "Hai fatto troppe prenotazioni da questa connessione in poco tempo. Riprova più tardi o contattaci direttamente.",
          "errorGeneric": "Non è stato possibile completare la prenotazione. Riprova tra qualche istante."
        }
      },
      "success": {
        "manualTitle": "Richiesta inviata!",
        "manualEmail": "La tua prenotazione è <strong>in attesa di approvazione</strong>. Ti contatteremo a <strong>{{email}}</strong> non appena confermata.",
        "manualPhone": "La tua prenotazione è <strong>in attesa di approvazione</strong>. Ti contatteremo al numero <strong>{{phone}}</strong> non appena confermata.",
        "confirmedTitle": "Prenotazione confermata!",
        "confirmedEmail": "Riceverai una email di conferma a <strong>{{email}}</strong>",
        "confirmedPhone": "Prenotazione confermata! Ci vediamo presto.",
        "addToCalendar": "Aggiungi al calendario",
        "goHome": "Torna alla home"
      },
      "limit": {
        "title": "Prenotazione non consentita",
        "editData": "Modifica dati",
        "perDay": "Hai raggiunto il limite: puoi prenotare al massimo {{max}} {{unit}} al giorno.",
        "perWeek": "Hai raggiunto il limite: puoi prenotare al massimo {{max}} {{unit}} a settimana.",
        "perMonth": "Hai raggiunto il limite: puoi prenotare al massimo {{max}} {{unit}} al mese.",
        "everyNDays": "Hai raggiunto il limite: puoi prenotare al massimo {{max}} {{unit}} ogni {{days}} giorni.",
        "generic": "Non puoi effettuare ulteriori prenotazioni al momento.",
        "unitSingle": "volta",
        "unitMultiple": "volte"
      },
      "slotTaken": {
        "title": "Orario non più disponibile",
        "message": "Lo slot selezionato è stato appena prenotato da qualcun altro. Scegli un altro orario.",
        "retry": "Scegli un altro orario"
      },
      "lastMinute": {
        "title": "Slot last minute",
        "loading": "Ricerca slot last minute...",
        "today": "Oggi",
        "tomorrow": "Domani",
        "dayAfterTomorrow": "Dopodomani",
        "more": "... e altri {{count}} slot disponibili — seleziona {{day}}"
      },
      "openingHours": {
        "title": "Orari di apertura",
        "closed": "Chiuso",
        "lunch": "pausa"
      },
      "calendar": {
        "specialist": "Professionista",
        "place": "Sede",
        "notes": "Note"
      }
    },
    "waitlist": {
      "intro": "Vuoi essere avvisato se si libera un posto per questa data?",
      "contactHint": "(almeno uno tra email e telefono)",
      "submit": "Avvisami",
      "loading": "...",
      "success": "Sei in lista d'attesa! Ti avviseremo via email se si libera uno slot.",
      "already": "Sei già in lista d'attesa per questa data.",
      "error": "Errore durante l'iscrizione. Riprova."
    },
    "review": {
      "title": "Lascia una recensione",
      "subtitle": "Condividi la tua esperienza. Ti chiediamo nome, cognome e uno dei contatti (email o telefono) usato in fase di prenotazione per verificare la tua identità.",
      "form": {
        "name": "Nome",
        "surname": "Cognome",
        "contactHint": "Inserisci <strong>almeno uno</strong> tra email e telefono — quello usato per prenotare.",
        "email": "Email",
        "phone": "Telefono",
        "phonePrefix": "Prefisso internazionale",
        "rating": "Valutazione",
        "ratingAriaLabel": "Valutazione da 1 a 5 stelle",
        "starAria": "{{n}} stell{{suffix}}",
        "text": "La tua recensione",
        "textPlaceholder": "Raccontaci la tua esperienza (almeno 10 caratteri)…",
        "cancel": "Annulla",
        "submitting": "Invio in corso…",
        "submit": "Invia recensione",
        "contactRequired": "Compila almeno email o telefono per continuare.",
        "emailError": "Formato email non valido",
        "phoneError": "Formato telefono non valido"
      },
      "success": {
        "title": "Grazie!",
        "message": "La tua recensione è stata inviata correttamente. Sarà visibile sul sito una volta approvata dall'amministrazione.",
        "goHome": "Torna alla home"
      },
      "errors": {
        "noBooking": "Non risulta nessuna prenotazione confermata e già svolta legata a questi contatti. Le recensioni sono consentite solo a chi ha già completato almeno un appuntamento; assicurati di usare la stessa email o lo stesso numero di telefono della prenotazione.",
        "duplicate": "Risulta già una recensione associata a questi contatti. Grazie comunque per il riscontro.",
        "generic": "Errore durante l'invio. Riprova tra qualche istante."
      }
    },
    "footer": {
      "copyright": "© {{year}} {{name}}",
      "rights": "Tutti i diritti riservati",
      "madeBy": "Sito realizzato da",
      "wantSite": "Vuoi un sito come questo per la tua attività?",
      "contactCta": "Contattaci",
      "versionTooltip": "Versione distribuita — commit {{sha}}",
      "privacy": "Informativa privacy",
      "taxId": "P.IVA {{taxId}}"
    },
    "privacy": {
      "title": "Informativa sulla privacy",
      "lastUpdated": "Ultimo aggiornamento: {{date}}",
      "intro": "Questa informativa spiega come vengono trattati i dati personali raccolti attraverso questo sito, ai sensi del Regolamento (UE) 2016/679 (GDPR).",
      "controller": {
        "title": "Titolare del trattamento",
        "body": "Il titolare del trattamento è {{name}}.",
        "taxId": "P.IVA / Codice fiscale",
        "taxIdHint": "Compare anche in fondo a ogni pagina del sito: per chi ha partita IVA è obbligatoria.",
        "address": "Indirizzo",
        "email": "Email"
      },
      "data": {
        "title": "Quali dati raccogliamo",
        "contact": "Nome, cognome, email e/o numero di telefono, quando prenoti un appuntamento o ti iscrivi alla lista d'attesa.",
        "notes": "Le note che scegli di aggiungere alla prenotazione, che possono contenere informazioni sul tuo stato di salute.",
        "review": "Il nome e il testo della recensione, se decidi di lasciarne una.",
        "technical": "Dati tecnici necessari al funzionamento e alla sicurezza del sito, come l'indirizzo IP e il tipo di browser."
      },
      "purposes": {
        "title": "Perché li trattiamo e su quale base giuridica",
        "booking": "Gestire la prenotazione e inviarti conferme, promemoria e avvisi di modifica o disdetta: esecuzione del servizio che richiedi (art. 6.1.b GDPR).",
        "health": "Tenere conto delle informazioni sulla salute che scegli di indicare nelle note: tuo consenso esplicito (art. 9.2.a GDPR), richiesto con una casella separata solo se compili le note e revocabile in qualsiasi momento. Puoi sempre prenotare senza indicarle.",
        "waitlist": "Avvisarti quando si libera un posto, se ti iscrivi alla lista d'attesa: tua richiesta (art. 6.1.b GDPR).",
        "review": "Chiederti un parere dopo l'appuntamento: legittimo interesse del titolare (art. 6.1.f GDPR). La recensione viene pubblicata solo se decidi di inviarla. Puoi opporti in qualsiasi momento con il link presente in ogni email di richiesta.",
        "security": "Proteggere il sito da abusi e prenotazioni automatiche: legittimo interesse del titolare (art. 6.1.f GDPR).",
        "mandatory": "Nome, cognome e almeno un recapito sono necessari per prenotare: senza, non è possibile gestire l'appuntamento."
      },
      "recipients": {
        "title": "Chi tratta i dati",
        "body": "I dati sono trattati dal titolare e dal fornitore della piattaforma tecnologica che gestisce il sito, che agisce come responsabile del trattamento (art. 28 GDPR). Sono conservati su server di Google Cloud (Firebase) situati nell'Unione Europea e le email vengono inviate tramite servizi di Google. I dati non vengono venduti né ceduti a terzi per finalità di marketing.",
        "transfers": "Se Google tratta dati al di fuori dell'Unione Europea, lo fa sulla base delle garanzie previste dal GDPR (clausole contrattuali standard o EU-U.S. Data Privacy Framework)."
      },
      "retention": {
        "title": "Per quanto tempo conserviamo i dati",
        "bookings": "I dati delle prenotazioni sono conservati per {{months}} mesi dalla data dell'appuntamento: dopo, nome, contatti e note vengono cancellati automaticamente e restano solo dati anonimi per le statistiche. Puoi chiederne la cancellazione prima, in qualsiasi momento.",
        "waitlist": "Le iscrizioni alla lista d'attesa vengono cancellate automaticamente dopo la data per cui ti sei iscritto.",
        "emails": "Il registro delle email inviate viene cancellato automaticamente dopo {{days}} giorni.",
        "backups": "Le copie di sicurezza automatiche vengono sostituite a rotazione ed eliminate entro {{weeks}} settimane."
      },
      "cookies": {
        "title": "Cookie e tecnologie simili",
        "body": "Questo sito non usa cookie di profilazione né di statistica. Usa solo strumenti tecnici necessari al suo funzionamento: la memoria del browser per ricordare la lingua scelta e Google reCAPTCHA per proteggere i moduli di prenotazione da abusi automatizzati. reCAPTCHA può raccogliere informazioni sul dispositivo e sul browser, trattate da Google secondo la propria informativa.",
        "googleLink": "Informativa privacy di Google"
      },
      "rights": {
        "title": "I tuoi diritti",
        "body": "Puoi chiedere in qualsiasi momento l'accesso ai tuoi dati, la rettifica, la cancellazione, la limitazione del trattamento o la portabilità, opporti al trattamento e revocare il consenso, scrivendo a",
        "bodyNoEmail": "Puoi chiedere in qualsiasi momento l'accesso ai tuoi dati, la rettifica, la cancellazione, la limitazione del trattamento o la portabilità, opporti al trattamento e revocare il consenso, contattando il titolare ai recapiti indicati in questo sito.",
        "complaint": "Hai inoltre il diritto di proporre reclamo al Garante per la protezione dei dati personali:"
      },
      "consent": {
        "prefix": "Ho letto",
        "link": "l'informativa sulla privacy",
        "suffix": ".",
        "health": "Acconsento al trattamento delle informazioni sulla mia salute che ho indicato nelle note.",
        "healthHint": "Serve solo perché hai scritto delle note: se non vuoi dare il consenso, cancellale e potrai prenotare comunque."
      }
    }
  },
  "reviewOptOut": {
    "saving": "Salvataggio in corso…",
    "confirm": {
      "title": "Non ricevere più richieste di recensione",
      "hint": "Confermando, non riceverai più email che ti chiedono di lasciare una recensione dopo i tuoi appuntamenti. Continuerai a ricevere conferme e promemoria delle prenotazioni.",
      "cta": "Conferma"
    },
    "done": {
      "title": "Fatto",
      "hint": "Non riceverai più richieste di recensione. Se cambi idea, puoi comunque lasciare una recensione dal sito quando vuoi."
    },
    "notFound": {
      "title": "Link non valido",
      "hint": "Il link non è valido o non è più attivo. Contatta lo studio per non ricevere più richieste di recensione."
    },
    "error": {
      "title": "Qualcosa è andato storto",
      "hint": "Non è stato possibile salvare la tua scelta. Riprova più tardi o contatta lo studio."
    }
  },
  "cancel": {
    "loading": "Verifica in corso…",
    "cancelling": "Cancellazione in corso…",
    "notFound": {
      "title": "Prenotazione non trovata",
      "hint": "Il link potrebbe essere già stato utilizzato o non è valido. Contatta lo studio per assistenza."
    },
    "notAllowed": {
      "title": "Cancellazione non disponibile",
      "hint": "Questo appuntamento non può essere cancellato autonomamente. Contatta lo studio per ulteriori informazioni."
    },
    "expired": {
      "title": "Termine scaduto",
      "hint": "La cancellazione era consentita fino a {{h}} ore prima dell'appuntamento. Il termine è ormai passato."
    },
    "confirm": {
      "title": "Conferma cancellazione",
      "hint": "Stai per cancellare il seguente appuntamento. L'operazione non può essere annullata.",
      "date": "Data",
      "time": "Orario",
      "customer": "Intestatario",
      "cta": "Cancella appuntamento",
      "rescheduleInstead": "Preferisci spostarlo a un altro orario?"
    },
    "cancelled": {
      "title": "Appuntamento cancellato",
      "hint": "Il tuo appuntamento è stato cancellato con successo. Speriamo di rivederti presto!"
    },
    "error": {
      "title": "Errore imprevisto",
      "hint": "Si è verificato un errore durante la cancellazione. Riprova tra qualche istante o contatta lo studio."
    }
  },
  "reschedule": {
    "loading": "Verifica in corso…",
    "saving": "Spostamento in corso…",
    "notFound": {
      "title": "Prenotazione non trovata",
      "hint": "Il link potrebbe non essere più valido o l'appuntamento è stato cancellato. Contatta lo studio per assistenza."
    },
    "notAllowed": {
      "title": "Spostamento non disponibile",
      "hint": "Questo appuntamento non può essere spostato autonomamente. Contatta lo studio per concordare un nuovo orario."
    },
    "expired": {
      "title": "Termine scaduto",
      "hint": "Lo spostamento era consentito fino a {{h}} ore prima dell'appuntamento. Il termine è ormai passato: contatta lo studio."
    },
    "pick": {
      "title": "Sposta appuntamento",
      "hint": "Scegli un nuovo giorno e un nuovo orario. Il tuo appuntamento attuale resta valido finché non confermi.",
      "current": "Appuntamento attuale",
      "newDate": "Nuovo giorno",
      "newTime": "Orari disponibili",
      "noSlots": "Nessun orario disponibile in questo giorno. Prova con un altro giorno.",
      "slotTaken": "L'orario scelto è appena stato occupato. Scegline un altro.",
      "cta": "Conferma nuovo orario",
      "cancelInstead": "Preferisci cancellare l'appuntamento?"
    },
    "done": {
      "title": "Appuntamento spostato",
      "hint": "Ecco il nuovo orario. Riceverai un'email con tutti i dettagli."
    },
    "error": {
      "title": "Errore imprevisto",
      "hint": "Non è stato possibile spostare l'appuntamento. Il tuo orario attuale è invariato: riprova tra qualche istante o contatta lo studio."
    }
  },
  "pwa": {
    "installApp": "Installa app",
    "updateAvailable": "È disponibile una nuova versione.",
    "updateReload": "Aggiorna ora",
    "iosInstallTitle": "Installa questa app",
    "iosInstallBody": "Su iPhone/iPad: apri il menu Condividi e tocca \"Aggiungi a Home\".",
    "iosInstallDismiss": "Chiudi"
  },
  "privacySettings": {
    "title": "Privacy",
    "hint": "Il sito mostra ai clienti un'informativa sulla privacy, raggiungibile dal link in fondo a ogni pagina. Qui indichi chi è il titolare del trattamento e scegli se usare il modello già pronto o un testo tuo.",
    "saved": "Salvato",
    "save": "Salva",
    "saving": "Salvataggio…",
    "viewPublished": "Vedi l'informativa pubblicata",
    "missingController": "Mancano il nome o l'email del titolare: senza, l'informativa è incompleta. Compilali qui sotto o nella pagina Profilo.",
    "errorEmptyPolicy": "Scrivi il testo dell'informativa, oppure scegli il modello già pronto.",
    "controller": {
      "title": "Titolare del trattamento",
      "hint": "Il titolare è chi decide come usare i dati dei clienti: di solito tu o la tua attività. I campi lasciati vuoti usano i dati del profilo, mostrati in grigio.",
      "name": "Nome o ragione sociale",
      "taxId": "P.IVA / Codice fiscale",
      "address": "Indirizzo della sede",
      "email": "Email per le richieste privacy"
    },
    "policy": {
      "title": "Testo dell'informativa",
      "template": "Modello già pronto",
      "templateHint": "Generato con i dati del titolare e con quelli che il sito raccoglie davvero, nella lingua scelta dal visitatore.",
      "custom": "Testo personalizzato",
      "customHint": "Per esempio quello preparato dal tuo consulente. Viene mostrato così com'è, in tutte le lingue.",
      "customLabel": "Informativa",
      "customPlaceholder": "Incolla qui la tua informativa sulla privacy…",
      "legalNote": "Il modello è un punto di partenza e non sostituisce una consulenza legale: fallo verificare dal tuo consulente, soprattutto se tratti dati sanitari."
    },
    "erase": {
      "title": "Richieste di un cliente sui suoi dati",
      "hint": "Quando un cliente ti chiede quali dati conservi su di lui, o di cancellarli, inserisci l'email e/o il telefono con cui ha prenotato. «Esporta i dati» scarica un file con prenotazioni, recensioni, liste d'attesa ed email inviate: controllalo e invialo al cliente. «Cerca i dati» prepara la cancellazione: prenotazioni e recensioni restano nelle statistiche, ma nome, contatti e note vengono rimossi; l'iscrizione alla lista d'attesa e lo storico delle email inviate vengono eliminati.",
      "email": "Email del cliente",
      "phone": "Telefono del cliente",
      "phonePrefix": "Prefisso",
      "search": "Cerca i dati da cancellare",
      "export": "Esporta i dati",
      "exporting": "Esportazione…",
      "exportEmpty": "Nessun dato trovato per questo contatto: non c'è niente da esportare.",
      "exportError": "Esportazione non riuscita. Riprova.",
      "searching": "Ricerca in corso…",
      "previewIntro": "Verranno anonimizzati o eliminati:",
      "counts": {
        "bookings": "Prenotazioni: {{count}}",
        "reviews": "Recensioni: {{count}}",
        "waitlist": "Iscrizioni alla lista d'attesa: {{count}}",
        "sentEmails": "Email inviate registrate: {{count}}"
      },
      "irreversible": "L'operazione non si può annullare.",
      "nothingFound": "Nessun dato trovato con questi recapiti. Controlla di averli scritti come li ha indicati il cliente.",
      "confirm": "Anonimizza i dati",
      "running": "Anonimizzazione in corso…",
      "done": "Fatto. Nelle prenotazioni il cliente ora compare come «{{label}}».",
      "error": "Operazione non riuscita. Riprova tra qualche istante."
    }
  }
}
