{
  "app": {
    "name": "PianoPlanner",
    "tagline": "Smart scheduling for piano technicians"
  },
  "landing": {
    "gettingStarted": {
      "title": "🚀 Get Started with PianoPlanner",
      "subtitle": "Follow these 7 simple steps to set up your account. Your smart scheduling will be ready in 5 minutes.",
      "step1Title": "Account & Login",
      "step1New": "New here?",
      "step1NewDesc": "Click 'Register' and create an account with your email address.",
      "step1Existing": "Already registered?",
      "step1ExistingDesc": "Log in directly to continue where you left off.",
      "step2Title": "Business Details",
      "step2Desc": "Make your communication look professional.",
      "step2Item1": "Enter your business name and address.",
      "step2Item2": "This address is also used as the starting point for route calculations.",
      "step3Title": "Your Services",
      "step3Desc": "What do you offer?",
      "step3Item1": "Add your services (e.g., 'Tuning', 'Appraisal', 'Concert Service').",
      "step3Item2": "Set the default duration and price per service.",
      "step4Title": "Travel Preferences",
      "step4Desc": "PianoPlanner helps you drive efficiently.",
      "step4MaxTravel": "Max. Travel Time:",
      "step4MaxTravelDesc": "How long do you want to travel to a customer at most?",
      "step4Buffer": "Buffer:",
      "step4BufferDesc": "How much time do you want between appointments by default?",
      "step5Title": "Your First Test Customer",
      "step5Desc": "Let's test the system!",
      "step5Item1": "Create a fictional customer (or yourself).",
      "step5Item2": "Add a piano to this customer.",
      "step5Tip": "💡 This way you can see how the customer file looks.",
      "step6Title": "Connect Calendar",
      "step6Desc": "How do you prefer to work?",
      "step6Upload": "Upload:",
      "step6UploadDesc": "Import your existing customer file and calendar.",
      "step6Sync": "Sync:",
      "step6SyncDesc": "Connect with Google Calendar or Outlook.",
      "step6Standalone": "Stand-alone:",
      "step6StandaloneDesc": "Use PianoPlanner as your main calendar.",
      "step7Title": "Ready to go! 🎉",
      "step7Desc": "Your dashboard is now active. Here's what the colors mean:",
      "step7Green": "Appointments that are efficiently planned (little travel time)",
      "step7Red": "Appointments that are far apart - use Smart Appointment!",
      "step7ShareLink": "Share your link:",
      "step7ShareLinkDesc": "Send customers your personal booking link and let your calendar fill itself.",
      "step1Desc": "Make your communication look professional.",
      "step1Item1": "Enter your business name and address.",
      "step1Item2": "Your address is auto-completed for accurate route planning.",
      "step3MaxTravel": "Max. Travel Time:",
      "step3MaxTravelDesc": "How long do you want to travel to a customer at most?",
      "step3Buffer": "Buffer:",
      "step3BufferDesc": "How much time between appointments?",
      "step4Google": "Two-way sync, most complete",
      "step4Apple": "Seamless integration",
      "step4Ical": "Works with any calendar app",
      "step6Green": "Efficiently planned appointments (little travel time)",
      "step6Red": "Far apart — use Smart Appointment!",
      "step6ShareLink": "Share your link:",
      "step6ShareLinkDesc": "Send customers your personal booking link and let your calendar fill itself."
    },
    "storyReminderTitle": "Never manually remind again",
    "storyReminderDesc": "PianoPlanner automatically sends tuning reminders at the right time. With smart follow-ups and a booking link so customers schedule their own appointment.",
    "storyReminderF1": "Automatic email based on service interval",
    "storyReminderF2": "Smart follow-ups: up to 4 reminders per cycle",
    "storyReminderF3": "Direct booking link in every reminder",
    "storyReminderF4": "Unsubscribe link — 100% GDPR compliant",
    "compactRouteFillTitle": "Route Fill",
    "compactRouteFillDesc": "Find nearby customers due for tuning. Send invitations in one click.",
    "features": "Features",
    "pricing": "Pricing",
    "myStory": "My Story",
    "privacy": "Privacy",
    "terms": "Terms",
    "login": "Login",
    "getStarted": "Get Started",
    "nowLive": "Now Live",
    "headline": "The smartest business software for piano technicians.",
    "subheadline": "Let your calendar fill itself without leaving gaps. Optimize your routes, manage your clients and pianos, and reduce your admin work. All wrapped in one clear tool that truly understands your craft.",
    "startFree": "Get Started Free",
    "learnMore": "Learn more",
    "heroTitle": "Piano scheduling, simplified.",
    "heroSubtitle": "Smart scheduling built for piano technicians. AI-powered routing, automatic reminders, and a booking page your customers will love.",
    "heroCta": "Start free trial",
    "heroCta2": "See how it works",
    "everythingYouNeed": "Everything you need.",
    "builtFor": "Built by and for piano technicians. Every feature designed to save you time.",
    "featuresTitle": "Everything you need",
    "featuresSubtitle": "Professional tools designed specifically for piano technicians.",
    "storyInvoiceTitle": "Invoice instantly, get paid faster",
    "storyInvoiceDesc": "The piano tuner is still at the customer's home and the invoice is already sent — with a payment link. Create professional invoices from your calendar, email them with a PDF, and get paid via credit card or PayPal. No separate accounting software needed.",
    "storyInvoiceF1": "1-click invoice from your calendar — customer details auto-filled",
    "storyInvoiceF2": "Credit card & PayPal payment link via Stripe — customer pays directly online",
    "storyInvoiceF3": "Professional PDF with your own letterhead and automatic numbering",
    "storyInvoiceF4": "Create invoices on your phone — iPhone & Android, even on the go",
    "storyInvoiceF5": "Integration with QuickBooks, Xero and more — UBL e-invoicing",
    "storyPlanTitle": "Plan smarter, drive less",
    "storyPlanDesc": "See at a glance how efficient your day is. Combine appointments in the same area and save hours of travel time per week.",
    "storyPlanF1": "Color-coded route efficiency per appointment",
    "storyPlanF2": "AI suggestions: automatically cluster nearby clients",
    "storyPlanF3": "Warnings for tight schedules + 1-click fix",
    "storyPlanF4": "Mileage tracking with business/private split",
    "storyWorkshopTitle": "Workshop & projects",
    "storyWorkshopDesc": "Manage rebuilds and workshop jobs from quote to delivery. Plan tasks, track hours and keep oversight of capacity.",
    "storyWorkshopF1": "Project planner with tasks, deadlines and progress",
    "storyWorkshopF2": "Time tracking: book workshop appointments to projects",
    "storyWorkshopF3": "Quotes: labor, materials & costs as PDF",
    "storyWorkshopF4": "Week capacity: instantly see how much room you have",
    "storyPianoTitle": "Every piano, every detail",
    "storyPianoDesc": "Complete service history per piano. Customers book via their personal link. Venues get dedicated evening slots.",
    "storyPianoF1": "Service history, notes and photos per instrument",
    "storyPianoF2": "Personal booking links with pre-filled details",
    "storyPianoF3": "Theater mode: separate hours for concert halls and venues",
    "storyPianoF4": "Automatic tuning reminders based on interval",
    "bannerSyncTitle": "Calendar Sync",
    "bannerSyncDesc": "2-way sync with Google, Apple & Microsoft 365. Or use iCal — works with any calendar app.",
    "bannerMobileTitle": "Access everywhere",
    "bannerMobileDesc": "PWA on your homescreen. Works offline. Push notifications for new bookings.",
    "bannerPrivacyTitle": "Bank-level security",
    "bannerPrivacyDesc": "Secure EU cloud storage. No Big Tech. Fully GDPR compliant.",
    "compactEmailTitle": "Professional emails",
    "compactEmailDesc": "Confirmations & reminders in 4 languages. Custom SMTP domain.",
    "compactPrivateTitle": "Private appointments",
    "compactPrivateDesc": "Personal trips separate. Syncs as 'Busy' without details.",
    "compactWalkInTitle": "Walk-in & quick plan",
    "compactWalkInDesc": "Schedule instantly from dashboard. No customer record needed.",
    "compactInvoiceTitle": "1-click invoicing",
    "compactInvoiceDesc": "Create invoices from your calendar. Instant payment link via Stripe.",
    "compactLangTitle": "4 languages",
    "compactLangDesc": "Dutch, English, German and French. Customer sees their own language.",
    "desktopTitle": "Powerful on desktop.",
    "desktopDesc": "Full dashboard experience on your Mac or PC. Manage your entire business from one screen.",
    "desktopFeature1": "Complete dashboard overview",
    "desktopFeature2": "Drag & drop appointments",
    "desktopFeature3": "Smart route optimization",
    "desktopFeature4": "Calendar sync & integrations",
    "mobileTitle": "Your schedule, anywhere.",
    "mobileDesc": "Add PianoPlanner to your iPhone or Android homescreen. It works like a native app - even without internet.",
    "mobileFeature1Title": "Add to Homescreen",
    "mobileFeature1Desc": "One tap to install. No app store needed.",
    "mobileFeature2Title": "Works Offline",
    "mobileFeature2Desc": "View appointments and customers without internet.",
    "mobileFeature3Title": "Push Notifications",
    "mobileFeature3Desc": "Get alerts for new bookings and reminders.",
    "mobileFeature4Title": "Touch Gestures",
    "mobileFeature4Desc": "Swipe to navigate. Pull to refresh.",
    "ctaTitle": "Ready to streamline your schedule?",
    "ctaSubtitle": "Join piano technicians who save hours every week.",
    "ctaButton": "Start free trial",
    "footerTagline": "Smart scheduling for piano technicians",
    "startToday": "Start Free Today",
    "joinTechnicians": "Join piano technicians who save hours every week with smarter scheduling.",
    "yourName": "Your name",
    "password": "Password (min. 8 characters)",
    "createAccount": "Create Free Account",
    "accountCreated": "Account created!",
    "awaitingApproval": "Your account is awaiting approval. You'll receive an email when activated.",
    "installApp": "Install App",
    "skipNav": "Skip to content",
    "creatingAccount": "Creating account...",
    "passwordTooShort": "Password must be at least 8 characters",
    "signupError": "Something went wrong.",
    "connectionError": "Connection error.",
    "trialInfo": "30-day free trial · No credit card needed · Get started right away",
    "notifTitle": "New Booking!",
    "notifText": "John Smith - Piano Tuning",
    "demoPaid": "Paid ✓",
    "demoTuningDesc": "Tuning — Steinway & Sons D",
    "demoPaymentLink": "Credit card payment link",
    "demoPdfSent": "PDF sent",
    "demoNew": "NEW",
    "demoTravelSaved": "-2h travel time",
    "demoRevision": "Steinway Restoration",
    "demoHoursProgress": "17.5 / 26.0 hours • 4 tasks done",
    "demoStrings": "✓ Strings",
    "demoHammers": "✓ Hammers",
    "demoIntonation": "⏳ Voicing",
    "demoRegulation": "○ Regulation",
    "demoPianoDetail": "De Vries family • Last tuned: Jan 14, 2026",
    "demoTuningJan": "✓ Tuning Jan '26",
    "demoRegulationOct": "✓ Regulation Oct '25",
    "demoPhotos": "📎 Photos",
    "demoAutoReminders": "Automatic reminders",
    "demoReminder1": "Reminder 1",
    "demo14days": "+14 days",
    "demoReminder2": "Reminder 2",
    "demoBooked": "Booked!",
    "demoBookingInEmail": "Booking link in email",
    "tryFree": "Try free"
  },
  "launcher": {
    "share": "Share booking link",
    "smart": "Smart",
    "agenda": "Agenda",
    "customers": "Customers",
    "pianos": "Pianos",
    "tagline": "Your piano tunings, smartly scheduled"
  },
  "nav": {
    "dashboard": "Dashboard",
    "customers": "Customers",
    "pianos": "Pianos",
    "settings": "Settings",
    "help": "Help",
    "logout": "Log out",
    "agenda": "Calendar",
    "admin": "Admin",
    "pricing": "Pricing",
    "helpCustomers": "Manage customers, share personal booking links, view tuning status, and smartly fill routes with Route Fill.",
    "helpTravel": "Record travel costs per appointment, view monthly overviews, and export for your accounting.",
    "travelReport": "Trips",
    "guide": "Guide",
    "projects": "Projects",
    "helpInvoices": "Create invoices, send by email, track payments, and customize the layout with your own details.",
    "helpSupport": "Contact support for questions, bugs, or feature requests.",
    "home": "Home",
    "helpPianos": "Register pianos, set tuning intervals, track status with color codes, and view maintenance history.",
    "billing": "Subscription",
    "helpProjects": "Create workshop projects, manage tasks, link appointments, and track progress with deadlines.",
    "pageHelp": "Help for this page",
    "support": "Support",
    "helpSettings": "Configure your business details, email templates, tuning reminders, working hours, and calendar integrations.",
    "routeOptimizer": "Route Optimizer",
    "helpDashboard": "Schedule appointments, use Smart Pick for smart suggestions, and manage your calendar with color codes and reminders.",
    "upgrade": "Upgrade",
    "invoices": "Invoices",
    "helpGuide": "View the complete guide with explanations of all PianoPlanner features.",
    "loggingOut": "Logging out...",
    "calendar": "Calendar"
  },
  "routeOptimizer": {
    "totalKm": "Total km",
    "weekOverview": "Week Overview",
    "planningOptimal": "Your schedule is already optimal!",
    "noApiKey": "Google Maps API key not configured",
    "noSuggestions": "No suggestions",
    "efficiencyScore": "Route Efficiency",
    "calculating": "Calculating...",
    "outlier": "Outlier",
    "suggestedTime": "Suggested time",
    "appointments": "Appointments",
    "accept": "Accept",
    "outliers": "Outliers",
    "rescheduled": "Appointment rescheduled!",
    "suggestions": "Optimization Suggestions",
    "dismiss": "Dismiss",
    "gradeA": "Excellent route planning!",
    "rescheduleError": "Error rescheduling",
    "title": "Route Optimizer",
    "gradeF": "Strong improvement possible",
    "centroid": "Center {day}",
    "gradeB": "Good route planning",
    "noData": "No data available",
    "gradeD": "Could be improved",
    "avgPerTrip": "Avg. per trip",
    "noTimeAvailable": "No time available",
    "gradeC": "Acceptable planning",
    "potentialSavings": "Save up to {km} km",
    "errorLoading": "Error loading data",
    "month": "Month",
    "subtitle": "Optimize your schedule and save kilometers",
    "week": "Week"
  },
  "days": {
    "thursday": "Thursday",
    "monday": "Monday",
    "saturday": "Saturday",
    "sunday": "Sunday",
    "tuesday": "Tuesday",
    "friday": "Friday",
    "wednesday": "Wednesday"
  },
  "smartWizard": {
    "nextAppointmentHere": "Your next appointment will appear here",
    "button": "Smart Appointment",
    "dayFriday": "Friday",
    "floor2": "2nd floor",
    "selectCustomerFirst": "Select a customer first",
    "floor3": "3rd floor",
    "errorSavingPiano": "Error saving piano",
    "tabCalendar": "Calendar",
    "finishOther": "Other",
    "daySunday": "Sunday",
    "backToBestChoice": "Back to best choice",
    "dayTuesday": "Tuesday",
    "floorGround": "Ground floor",
    "selectServiceToSee": "Select a service to see the smartest moments",
    "findingBestMoments": "Finding best moments...",
    "interval6months": "6 months",
    "searchPlaceholder": "Type name, email or phone number...",
    "goToCalendar": "Go to calendar",
    "type": "Type",
    "tuningRecommended": "A tuning is recommended!",
    "climateControlActive": "Active",
    "cityRequired": "City *",
    "noActiveAppointment": "No active appointment",
    "errorSavingCustomer": "Error saving customer",
    "selectOrAddCustomer": "Select or add customer",
    "conditionFair": "Fair",
    "noPianosForCustomer": "No pianos registered for this customer yet",
    "phonePlaceholder": "123-456-7890",
    "notTuned": "not tuned",
    "searchExistingCustomer": "Search existing customer",
    "noRecentTuningKnown": "No recent tuning known. A first checkup is recommended.",
    "filterEvening": "Evening",
    "createAppointment": "Create appointment",
    "addPianoForCustomer": "Add piano for customer",
    "tabCustomers": "Customers",
    "selectOrAddPiano": "Select or add piano",
    "floor": "Floor",
    "fullNamePlaceholder": "Full name",
    "daySaturday": "Saturday",
    "noTuningKnown": "No tuning known",
    "finishWhitePolish": "White polish",
    "considerCheckup": "Consider a checkup.",
    "intervalOnRequest": "On request",
    "badgeWorkshop": "Workshop",
    "email": "Email",
    "errorCreatingAppointment": "Error creating appointment",
    "tabSmart": "Smart",
    "noCustomersFound": "No customers found",
    "interval12months": "12 months",
    "addressSearch": "Search address",
    "pianoOverdueAlert": "This piano has been",
    "toComplete": "To complete",
    "months": "months",
    "brandRequired": "Brand *",
    "noTuningKnownForPiano": "No tuning known for this piano. This could be the first appointment.",
    "modelPlaceholder": "e.g. Model D",
    "travelTime": "Travel time",
    "brand": "Brand",
    "streetAndNumber": "Street and house number",
    "filterAll": "All",
    "createNewCustomer": "Create new customer",
    "finishWood": "Wood",
    "dayWednesday": "Wednesday",
    "currentAppointment": "Current Appointment",
    "street": "Street + number",
    "enterBrand": "Please enter a brand",
    "title": "Smart Appointment",
    "brandPlaceholder": "e.g. Steinway",
    "noAvailableMoments": "No available moments found",
    "badgeRemote": "Remote",
    "sendConfirmationEmail": "Send confirmation email to customer",
    "model": "Model",
    "fillAllFields": "Please fill in all required fields",
    "bestChoice": "Best choice",
    "condition": "Condition",
    "confirmationEmailSent": "Confirmation email has been sent",
    "furtherAway": "Further away",
    "location": "Location",
    "interval18months": "18 months",
    "typeUpright": "Piano",
    "preferOtherMomentCount": "Prefer another moment? {{count}} alternatives available",
    "typeGrand": "Grand piano",
    "dayThursday": "Thursday",
    "finishWhiteMatte": "White matte",
    "customerPianos": "Customer's pianos",
    "appointmentPlanned": "Appointment planned!",
    "after": "After",
    "yearPlaceholder": "e.g. 1985",
    "searchOrCreate": "Search for an existing customer or create a new one",
    "aiSuggestions": "AI Suggestions",
    "name": "Name",
    "typeDigital": "Digital piano",
    "enterName": "Please enter a name",
    "toDo": "To Do",
    "step1": "Customer",
    "smartSearching": "We're finding the best options for you...",
    "finishBlackPolish": "Black polish",
    "calculatedBasedOn": "Automatically calculated based on your calendar and travel time",
    "tuningPitchPlaceholder": "e.g. 440 Hz",
    "saveCustomer": "Save customer",
    "postalCode": "Postal code",
    "dayStatus": "Day Status",
    "finish": "Finish",
    "climateControl": "Climate Control",
    "pianoWellMaintained": "Piano is well maintained.",
    "lastTuningWas": "Last tuning was",
    "serialNumber": "Serial number",
    "smartRecommendations": "Smart recommendations based on location and calendar",
    "loadMoreOptions": "Load more options",
    "whatNeedsDone": "What needs to be done?",
    "or": "or",
    "searchCustomerPlaceholder": "Name, email or phone number...",
    "floorBasement": "Basement",
    "viewRoute": "View route",
    "lastTuningColon": "Last tuning:",
    "searchExisting": "Search existing customer",
    "customerNotesPlaceholder": "Optional notes about this customer...",
    "filterMorning": "Morning",
    "noMomentsFound": "No available moments found in the coming weeks. Check your calendar settings.",
    "floor1": "1st floor",
    "step3": "Appointment",
    "emailPlaceholder": "email@example.com",
    "tuningData": "Tuning Data",
    "chooseOrRegister": "Choose an existing piano or register a new one",
    "tuningInterval": "Tuning interval",
    "selectExistingOrRegister": "Choose an existing piano or register a new one",
    "locationOptional": "Location (optional)",
    "phone": "Phone",
    "customerHasNoPianos": "This customer has no pianos yet. Add one!",
    "addressSearchPlaceholder": "Start typing for suggestions...",
    "notes": "Notes",
    "address": "Address",
    "todayRemaining": "Today remaining",
    "buildYear": "Build year",
    "addNewPiano": "Add new piano",
    "locationPlaceholder": "If piano is at a different location",
    "basedOnCalendarAndTravel": "Based on your calendar and travel time",
    "calculatingSuggestions": "Calculating smart suggestions...",
    "filterAfternoon": "Afternoon",
    "errorLoadingPianos": "Error loading pianos",
    "tabPianos": "Pianos",
    "customerNotInSystem": "Customer not yet in system",
    "conditionPoor": "Poor",
    "nameRequired": "Name *",
    "conditionExcellent": "Excellent",
    "findingMoreOptions": "Finding more options...",
    "city": "City",
    "done": "Done",
    "badgeRoute": "Route",
    "saved": "saved",
    "savePiano": "Save piano",
    "errorLoadingSuggestions": "Error loading suggestions",
    "conditionGood": "Good",
    "searchExistingOrCreate": "Search for an existing customer or create a new one",
    "chosenMoment": "Chosen moment",
    "noTravelTime": "No travel time",
    "monthsAgo": "months ago",
    "selectService": "-- Select service --",
    "smartestMoments": "Smartest moments",
    "preferOtherMoment": "Prefer another moment? Choose yourself",
    "pianoNotesPlaceholder": "Special features, history, specific attention points...",
    "finishBlackMatte": "Black matte",
    "calculatingBestMoment": "Calculating best moment...",
    "loadingPianos": "Loading pianos...",
    "badgeNearby": "Nearby",
    "monthsAgoTuned": "months ago tuned",
    "tuningPitch": "Tuning Pitch",
    "lastTuning": "Last tuning",
    "sendConfirmationEmailTo": "Send confirmation email to",
    "badgeBest": "Best",
    "dayMonday": "Monday",
    "chooseService": "Choose service",
    "errorFindingMoments": "Error finding available moments.",
    "step2": "Piano",
    "interval24months": "24 months",
    "busy": "Busy"
  },
  "dashboard": {
    "title": "Dashboard",
    "todayAppointments": "Today's Appointments",
    "upcomingAppointments": "Upcoming Appointments",
    "noAppointments": "No appointments scheduled",
    "viewAll": "View all",
    "customer": "Customer",
    "searchCustomer": "Search customer...",
    "noCustomersFound": "No customers found",
    "route": "Route",
    "sync": "Sync",
    "addCustomer": "Add Customer",
    "addPianoTitle": "Add piano",
    "savePiano": "Save Piano",
    "calcTravelTimesTitle": "Calculate travel times",
    "syncCalendarTitle": "Sync calendar",
    "streamline": "Streamline",
    "streamlineTitle": "Streamline Day",
    "streamlineDesc": "Shift appointments based on real Google Maps travel times",
    "streamlineLoading": "Calculating travel times...",
    "streamlineNoAppointments": "Not enough appointments",
    "streamlineMinTwo": "At least 2 appointments are needed to streamline.",
    "streamlineAlreadyOptimal": "Already optimal!",
    "streamlineNoChanges": "Your schedule is already well-organized. No changes needed.",
    "streamlineChanges": "changes",
    "streamlineTotal": "appointments total",
    "streamlineApply": "Apply",
    "streamlineApplied": "Schedule streamlined",
    "streamlineAppointmentsMoved": "appointments moved",
    "streamlineFailed": "Streamlining failed",
    "applyRoute": "Apply",
    "optimizeRoute": "Optimize Route",
    "blockDays": "Block day(s)",
    "walkInTitle": "Walk-in Registration",
    "selectAllFields": "Select all fields",
    "workshopHoursTotal": "Total hours",
    "upcomingToday": "Coming Up Today",
    "selectServiceEdit": "-- Select service --",
    "mileageEnterKm": "Enter km",
    "timeInterval": "Time interval",
    "titlePlaceholder": "e.g. Tune Steinway",
    "guideTip": "<strong>Tip:</strong> Use week view for overview or day view for details. Drag appointments to move them. Double-click to edit.",
    "reasonOptional": "(optional)",
    "guideColorRed": "Red — long travel time",
    "guideColorsDesc": "Appointments automatically get a color based on travel time:",
    "workshopLabel": "Workshop",
    "titleExamplePlaceholder": "e.g. Piano tuning",
    "outsideHoursAfterMultiple": "↓ {{count}} appointments after {{hour}}:00",
    "addCustomerButton": "Add customer",
    "startTimeRequired": "Start time *",
    "streetPlaceholder": "Street name 123",
    "guideColorPrivate": "Purple — private appointment",
    "guideScheduleDesc": "Click on a time slot in the calendar or use the + button. Fill in customer, location, time and duration. Smart Pick automatically suggests the best pianos for maintenance.",
    "phonePlaceholder": "123-456-7890",
    "selectOrCreateCustomer": "Select a customer first or create a new one",
    "missingAddressesMore": "more",
    "inProgress": "In Progress",
    "confirmationSentTo": "Confirmation email sent to",
    "teamDashboardBtn": "Team Dashboard",
    "mileageTotal": "Total km",
    "serviceRequired": "Service *",
    "mileagePrivate": "Private",
    "selectPianosHint": "Select one or more pianos. Duration is calculated automatically.",
    "pianosForAppointment": "Pianos for this appointment",
    "activeAppointments": "Active appointments",
    "actionSheetUnavailableSubtitle": "Block day(s) for holiday or time off",
    "appointment": "Appointment",
    "emailPlaceholder": "email@example.com",
    "workshopPeriodView": "Current view",
    "walkInSearchHint": "Search or create customer...",
    "missingAddressesSub": "Travel times cannot be calculated",
    "outsideHoursBeforeMultiple": "↑ {{count}} appointments before {{hour}}:00",
    "payStatusPending": "To be invoiced",
    "optedOut": "Unsubscribed",
    "guideLocationDesc": "Choose 'At customer' for on-site appointments, or 'Workshop' to link hours to a restoration project. The linked hours are tracked automatically.",
    "guideColorGreen": "Green — short travel time, efficient route",
    "nextAppointmentAppears": "Your next appointment will appear here",
    "confirmMarkPaid": "Mark this payment as paid?",
    "mileagePrivateTrip": "Private",
    "guideTitle": "Calendar - Guide",
    "yesterday": "Yesterday",
    "reasonPlaceholder": "e.g. Holiday, day off, doctor...",
    "howToUse": "How does it work?",
    "guideSchedule": "Schedule appointment",
    "guideColorDefault": "Default — no travel data available",
    "mileageRoundTrip": "Round trip ×2",
    "mileageYearTotal": "Year total",
    "outsideHoursBeforeSingle": "↑ {{count}} appointment before {{hour}}:00",
    "nextNavTitle": "Next (→)",
    "guideColors": "Calendar color codes",
    "toDo": "To Do",
    "addressAutoFilled": "Address (auto-filled from customer)",
    "mileageBusiness": "Business",
    "selectOrCreateCustomerTitle": "Select or Create Customer",
    "thisMonth": "This month",
    "guideColorOrange": "Orange — average travel time",
    "enjoyFreeTime": "Enjoy your free time!",
    "titleRequired": "Title *",
    "auto": "Auto",
    "nextNav": "Next",
    "addNewCustomerTitle": "Add new customer",
    "teamBanner": "You have a Teams subscription — manage your tuners and view the team calendar",
    "newCustomerTitle": "New Customer",
    "zoomOutTitle": "Zoom out (Cmd −)",
    "mileageTitle": "Mileage Tracking",
    "prevNavTitle": "Previous (←)",
    "actionSheetWorkshopSubtitle": "Internal task without customer",
    "stillToDo": "Still to do",
    "actionSheetSmartTitle": "Find best time",
    "selectService": "-- Select service --",
    "goToToday": "Go to today",
    "calendarSyncPromptTitle": "Sync your Google Calendar",
    "calendarSyncPromptDesc": "You signed in with Google. Would you like to connect your calendar so appointments sync automatically?",
    "calendarSyncPromptYes": "Yes, connect",
    "calendarSyncPromptLater": "Later",
    "mileageQuickAdd": "Add trip",
    "zoomOut": "Zoom out",
    "selectCustomerServiceDate": "Please select customer, service and date",
    "markPaid": "Mark as paid",
    "actionSheetWorkshopTitle": "Workshop task",
    "fieldLabel": "Field",
    "blockDaysDesc": "Blocked days are not available for customers.",
    "missingAddressesEdit": "Edit",
    "selectOrCreatePiano": "Select a piano first or create a new one",
    "prevNav": "Previous",
    "actionSheetWalkInSubtitle": "Customer comes to workshop",
    "totalSent": "Total",
    "untilDateOptional": "(optional, for multiple days)",
    "payStatusInvoiced": "Invoice sent",
    "newPianoInline": "🎹 New Piano",
    "selectPianos": "Select Piano(s)",
    "workshopPeriodWeek": "This week",
    "endTime": "End time",
    "mileageFullView": "Full overview",
    "newCustomerInline": "👤 New Customer",
    "mileageTripAdded": "Trip added",
    "blockButton": "Block",
    "resetZoomTitle": "Click to reset (Cmd 0)",
    "guideReminders": "Reminders",
    "wizardStepPiano": "Piano",
    "guideSmartPick": "Smart Pick",
    "selectCustomerFirst": "Select a customer first",
    "noMoreAppointmentsToday": "No more appointments today",
    "routeAnalysisTitle": "Route Analysis",
    "today": "Today",
    "calculatingRoute": "Calculating route...",
    "actionSheetFillHereTitle": "Fill in here",
    "done": "Done",
    "actionSheetFillHereSubtitle": "Create appointment at this time",
    "wizardStepCustomer": "Customer",
    "viewMode": "View (D/W/M)",
    "zoomIn": "Zoom in",
    "sendConfirmationLabel": "Send confirmation email to customer",
    "emailConfirmation": "Email confirmation",
    "guideSmartPickDesc": "Smart Pick highlights recommended time slots with a yellow glow. This is based on tuning interval, last tuning and season. Overdue pianos get a warning.",
    "sendConfirmationTo": "Send confirmation to",
    "customerRequired": "Customer *",
    "actionSheetSmartSubtitle": "Let me find the best time",
    "wizardStepServiceTime": "Service & Time",
    "customerNoEmail": "Customer has no email address",
    "workshopPeriodMonth": "This month",
    "pianoPlaceholder": "e.g. Yamaha U1",
    "noPianosAvailable": "No pianos available",
    "oneHour": "1 hour",
    "appointmentsUpdated": "{{count}} appointments updated!",
    "reasonLabel": "Reason",
    "errorApplyingRoute": "Error applying route: ",
    "pianoOptionalLabel": "Piano (optional)",
    "serviceAndTime": "Service & Time",
    "completedAppointments": "Completed appointments",
    "missingAddressesTitle": "{count} appointments without address",
    "openPaymentsHint": "View and invoice in Invoices →",
    "createInvoice": "Create invoice",
    "zoomInTitle": "Zoom in (Cmd +)",
    "remoteLabel": "Remote",
    "applying": "Applying...",
    "nameRequired": "Name *",
    "sendTo": "Send to",
    "openPayments": "Open Payments",
    "busy": "Busy",
    "workshopStats": "Workshop / Field",
    "noActiveAppointment": "No active appointment",
    "zoomControls": "Zoom (Cmd +/-)",
    "additionalInfoPlaceholder": "Additional info...",
    "searchHint": "Search by name, or",
    "paymentMarkedPaid": "Payment marked as paid",
    "createNewCustomer": "create new customer",
    "outsideHoursAfterSingle": "↓ {{count}} appointment after {{hour}}:00",
    "untilDate": "Until date",
    "currentAppointment": "Current Appointment",
    "guideLocation": "Location types",
    "toProcess": "To Process",
    "workshopTaskTitle": "Workshop Task",
    "calendarView": "Calendar view",
    "endTimeHint": "End time calculated: service duration + buffer",
    "searchCustomerPlaceholder": "Search customer...",
    "pendingAppointments": "Pending appointments",
    "fromDate": "From date",
    "onSchedule": "On schedule",
    "dayStatus": "Day Status",
    "tuningReminders": "Tuning Reminders",
    "guideRemindersDesc": "Send customers a confirmation email when scheduling (optional toggle). You can also set up automatic reminders. Customize email templates in Settings.",
    "actionSheetWalkInTitle": "Walk-in",
    "actionSheetUnavailableTitle": "Unavailable",
    "bookingLeads": "Booking leads"
  },
  "customers": {
    "title": "Customers",
    "addCustomer": "Add Customer",
    "editCustomer": "Edit Customer",
    "deleteCustomer": "Delete Customer",
    "name": "Name",
    "email": "Email",
    "phone": "Phone",
    "address": "Address",
    "street": "Street",
    "postalCode": "Zip code",
    "city": "City",
    "notes": "Notes",
    "noCustomers": "No customers yet",
    "searchPlaceholder": "Search customers...",
    "export": "Export",
    "delete": "Delete",
    "deselect": "Deselect",
    "withPiano": "With Piano",
    "convertAddresses": "Convert addresses",
    "noAppointmentsYet": "No appointments yet",
    "billingToAdmin": "Invoices to administration",
    "errorSavingCustomer": "Error saving customer",
    "customerCreated": "Customer created",
    "paymentTermsDefault": "Default (setting)",
    "errorDeleting": "Error deleting",
    "mergeConfirmMsg": "Are you sure you want to merge these customers? All appointments and pianos will be combined. This action cannot be undone.",
    "duplicatesBy": "Duplicates by",
    "mergeWarning": "Select which data to keep below. Appointments, pianos and notes will be merged automatically.",
    "billingName": "Attn. (administration)",
    "noDuplicates": "No duplicates found",
    "mergeError": "Error merging customers",
    "noPiano": "No piano",
    "unknownPiano": "Unknown piano",
    "mergeCustomers": "Merge Customers",
    "typePrivate": "Private",
    "billingAdmin": "Billing / Administration",
    "errorSaving": "Error saving",
    "type": "Customer Type",
    "appointments": "appointments",
    "emailPlaceholder": "email@example.com",
    "guideBookingLink": "Personal booking link",
    "typeBusiness": "Business",
    "fieldPhone": "Phone",
    "billingAdminDesc": "Send invoices to an accountant or administration office instead of the customer.",
    "fullName": "Full name",
    "selectFieldsToKeep": "Select the data to keep:",
    "addressSearch": "Search address",
    "nameRequired": "Please enter a name",
    "emailLog": "Email log",
    "guideSmartFillDesc": "Fill your route smartly: search by city or postal code to find nearby customers due for tuning. You'll see urgency, distance and when you last visited. Select customers and send invitations in one go.",
    "billingToAdminToggleDesc": "Invoices go to the administration address, not to the customer",
    "guideBookingLinkDesc": "Each customer gets a unique booking link. Share it with the customer so they can view and schedule appointments themselves. Find the link in the customer profile under 'Booking Link'.",
    "addressSearchPlaceholder": "Start typing for suggestions...",
    "guideAdd": "Add customer",
    "keepThis": "Keep this",
    "guideDuplicates": "Merge duplicates",
    "guideSmartFill": "Smart Fill Route",
    "tryDifferentSearch": "Try a different search term",
    "errorLoadingCustomer": "Error loading customer",
    "mergeWarningTitle": "Warning:",
    "fullNamePlaceholder": "Full name",
    "fieldEmail": "Email",
    "billingEmail": "Invoice email",
    "typeGovernment": "Government",
    "guideRemindersDesc": "Set a tuning interval per piano (3, 6 or 12 months). PianoPlanner automatically sends an invitation email when it's time for maintenance.",
    "loadingCustomers": "Loading customers...",
    "contactInfo": "Contact Information",
    "guideReminders": "Tuning reminders",
    "duplicatesFound": "Duplicates",
    "manageDuplicates": "Manage Duplicates",
    "pianosAfterSave": "Pianos and appointments appear after saving the customer",
    "fieldName": "Name",
    "customerDeleted": "Customer deleted",
    "howToUse": "How does it work?",
    "guideTheater": "Theater customers",
    "guideTheaterDesc": "Mark theaters, concert halls and regular customers as 'Theater'. These customers can see their complete appointment history and book new appointments directly via their booking link.",
    "duplicatesTitle": "Possible Duplicates",
    "noAddressKnown": "No address known",
    "addFirstCustomer": "Add your first customer to get started",
    "billingToAdminToggle": "Send invoices to administration",
    "noCustomersFound": "No customers found",
    "typeTheater": "Theater",
    "customersDeleted": "{{count}} customer(s) deleted",
    "cityPlaceholder": "New York",
    "streetPlaceholder": "Street name 123",
    "fieldAddress": "Address",
    "customerNotFound": "Customer not found",
    "scheduleAppointment": "Schedule Appointment",
    "route": "Route",
    "newCustomer": "New Customer",
    "errorCreatingCustomer": "Could not create customer. Please try again.",
    "pianoCount": "pianos",
    "guideTitle": "Customers - Guide",
    "postalCodePlaceholder": "12345",
    "guideAddDesc": "Click 'New Customer' to create a customer. Fill in name, address and contact details. Pianos can be added later from the customer profile.",
    "customerSaved": "Customer saved",
    "notesPlaceholder": "Internal notes...",
    "personalBookingLink": "Personal Booking Link",
    "phonePlaceholder": "06-12345678",
    "errorSavingCustomerMsg": "Could not save customer: ",
    "guideTip": "<strong>Tip:</strong> The 'Last tuning' column shows the piano that was tuned longest ago per customer — ideal to quickly schedule someone in between. Sort by this column to see the most urgent customers first.",
    "needsTuning": "Tuning Due",
    "bookingLinkHint": "Send this link to your customer so they can book appointments themselves.",
    "emptyStateText": "Add your first customer to get started",
    "lastTuning": "Last tuning",
    "backToList": "Back to customers",
    "customerAdded": "Customer added",
    "call": "Call",
    "fieldType": "Type",
    "guideDuplicatesDesc": "Imported customers duplicated? Use 'Manage Duplicates' to merge duplicate customers. Pianos and appointments are automatically transferred.",
    "noContactDetails": "No contact details",
    "confirmMerge": "Merge",
    "errorLoadingCustomers": "Could not load customers",
    "noCustomerId": "No customer ID provided",
    "newThisMonth": "New this month",
    "fieldNotes": "Notes",
    "typeSchool": "School",
    "noEmailsYet": "No emails sent to this customer yet",
    "noPreference": "Not yet known",
    "cityRequired": "City *",
    "confirmDeleteNamed": "Are you sure you want to delete \"{{name}}\"?",
    "customerUpdated": "Customer updated",
    "appointmentHistory": "Appointments",
    "mergeSuccess": "Customers merged successfully!",
    "preferredPayment": "Preferred payment method",
    "paymentTerms": "Payment terms",
    "contactDetails": "Contact Details",
    "typeChurch": "Church",
    "namePlaceholder": "Full name",
    "typeStudio": "Studio",
    "noResults": "No results",
    "merge": "Merge",
    "noNotes": "No notes",
    "typeHoreca": "Hospitality",
    "noContactInfo": "No contact info",
    "couldNotLoadMap": "Could not load map: ",
    "couldNotLoadMapData": "Could not load map data",
    "noCity": "No city",
    "remainingToProcess": "{{count}} remaining to process",
    "geocodingFailed": "Geocoding failed",
    "duplicatesFetchError": "Error fetching duplicates",
    "clickToSelectPrimary": "Click a customer to select as primary",
    "chooseFieldValues": "Choose which value to keep for each field:",
    "mergeFailed": "Merge failed",
    "mergeErrorOccurred": "Something went wrong during merge",
    "searchFailed": "Search failed",
    "connectionFailed": "Connection failed: ",
    "sendFailed": "Send failed",
    "failed": "Failed",
    "addFirstCustomerDesc": "Add your first customer to get started",
    "status": "Status",
    "edit": "Edit",
    "newAppointment": "New appointment",
    "customerCount": "customers",
    "confirmDelete": "Are you sure you want to delete this customer?",
    "exportSuccess": "Export successful",
    "selected": "selected"
  },
  "pianos": {
    "title": "Pianos",
    "addPiano": "Add Piano",
    "editPiano": "Edit Piano",
    "deletePiano": "Delete Piano",
    "brand": "Brand",
    "model": "Model",
    "serialNumber": "Serial number",
    "year": "Year",
    "type": "Type",
    "upright": "Piano",
    "grand": "Grand Piano",
    "digital": "Digital",
    "condition": "Condition",
    "excellent": "Excellent",
    "good": "Good",
    "fair": "Fair",
    "poor": "Poor",
    "lastTuning": "Last tuning",
    "noPianos": "No pianos yet",
    "serviceHistory": "Service History",
    "addService": "+ Service",
    "noServiceHistory": "No service history yet",
    "confirmDelete": "Are you sure you want to delete this piano?",
    "scheduleAppointment": "Schedule appointment",
    "featurePopupTitle": "New!",
    "featurePopupBody": "You can now select pianos that are due for service and send tuning invitations directly from this page. Use the checkboxes to select pianos and click 'Send invitation' in the action bar.",
    "featurePopupGotIt": "Got it!",
    "typeDigital": "Digital Piano",
    "bulkTuningTitle": "Update last tuning date",
    "conditionFair": "Fair",
    "oak": "Oak",
    "viewCustomer": "View Customer",
    "pianoAdded": "Piano added",
    "typePiano": "Piano",
    "filterDueSoon": "Soon",
    "basicInfo": "Basic Information",
    "serviceSoon": "Service soon",
    "conditionExcellent": "Excellent",
    "typeGrand": "Grand Piano",
    "lastTuningDate": "Last tuning date",
    "colBrandModel": "Brand & Model",
    "finish": "Finish",
    "noPianoId": "No piano ID provided",
    "piano": "Piano",
    "changeCustomer": "Change",
    "colLastTuning": "Last tuned",
    "brandPlaceholder": "e.g. Steinway",
    "intervalNone": "Customer initiates contact",
    "colCustomer": "Customer",
    "interval3": "Every 3 months",
    "tuningPitchPlaceholder": "e.g. 440 Hz",
    "monthsLateForService": "{{count}} months late for service",
    "everyMonths": "Every {{months}} months",
    "tryDifferentSearch": "Try a different search or filter",
    "thisPiano": "this piano",
    "errorSavingPianoMsg": "Could not save piano: ",
    "guideAdd": "Add piano",
    "tuningInterval": "Tuning Interval",
    "uploadFailed": "Photo upload failed",
    "interval12": "Yearly",
    "conditionGood": "Good",
    "serviceOk": "Well maintained",
    "schedule": "Schedule",
    "neverTuned": "Never tuned",
    "guideTitle": "Pianos - Guide",
    "exportCsv": "Export",
    "photos": "Photos",
    "locationMaintenance": "Location & Maintenance",
    "lastTuned": "Last tuned",
    "guideIntervalDesc": "Set a tuning interval per piano: 3, 6 or 12 months. Or choose 'Customer initiates contact' if the customer calls themselves. The status color shows if maintenance is needed.",
    "pianoDetails": "Piano Details",
    "needsRepair": "Needs repair",
    "loading": "Loading...",
    "onSchedule": "On Schedule",
    "colStatus": "Status",
    "climateControl": "Climate Control",
    "floor4plus": "4th or higher",
    "guideSmartPick": "Smart Pick",
    "deleteFailed": "Delete failed",
    "linkOwnerFirst": "Link an owner first",
    "statusGood": "Good",
    "monthsUntilService": "{{count}} months until service",
    "bulkApply": "Apply",
    "howToUse": "How does it work?",
    "deletePhoto": "Delete photo",
    "guideStatusDesc": "Green = on schedule, Yellow = tuning due soon, Red = overdue. Colors are calculated based on last tuning and the set interval.",
    "serviceVoicing": "Voicing",
    "guideStatus": "Status colors",
    "noResults": "No pianos found",
    "finishPlaceholder": "e.g. Black Gloss",
    "typeDigitalPiano": "Digital",
    "floor": "Floor",
    "edit": "Edit",
    "floor2": "2nd floor",
    "brandExample": "bijv. Yamaha",
    "photoDeleted": "Photo deleted",
    "emptyStateText": "Add your first piano to get started",
    "guideAddDesc": "Click 'New Piano' or add a piano from the customer profile. Fill in brand, model, serial number and location. Link the piano to a customer.",
    "serviceTuning": "Tuning",
    "scheduleService": "Schedule Appointment",
    "guideTip": "<strong>Tip:</strong> Use the 'Overdue' or 'Never' filters to quickly find pianos that need attention. Click on a piano to view details and history.",
    "overdue": "Overdue",
    "walnut": "Walnut",
    "blackPolish": "Black high gloss",
    "floor3": "3rd floor",
    "typeRequired": "Type *",
    "noCustomer": "No customer",
    "linkOwner": "Link Owner",
    "byBrand": "Pianos by Brand",
    "errorLoadingPiano": "Could not load piano",
    "tuningData": "Tuning Data",
    "dueSoonStatus": "Due Soon",
    "customerRequired": "Please select a customer first",
    "statusUnknown": "Unknown",
    "monthsLate": "{{count}} mo late",
    "customerUnlinked": "Owner unlinked",
    "pianoNotFound": "Piano not found",
    "errorLoading": "Error loading data",
    "typeGrandPiano": "Grand",
    "serviceRegulation": "Regulation",
    "newPiano": "New piano",
    "withinMonths": "Within {{count}} mo",
    "optional": "Optioneel",
    "addFirstService": "Add a first service",
    "guideHistoryDesc": "View the complete maintenance history per piano. All appointments are automatically logged with date, service type and any notes.",
    "typeUpright": "Piano",
    "tuningPitch": "Tuning Pitch",
    "savePiano": "Piano opslaan",
    "colLocation": "Location",
    "noOwner": "No owner linked to this piano.",
    "bulkTuningSuccess": "Pianos updated!",
    "bulkTuningDesc": "pianos will be updated",
    "pianoUpdated": "Piano updated",
    "colNextService": "Next service",
    "guideInterval": "Set tuning interval",
    "basement": "Basement",
    "monthsAgoTuned": "Tuned {{count}} months ago",
    "selectDateFirst": "Please select a date first",
    "locationPlaceholder": "e.g. Living room",
    "colActions": "Actions",
    "colSerialNumber": "Serial number",
    "overdueStatus": "Overdue",
    "photosAdded": "{{count}} photos added",
    "whitePolish": "White high gloss",
    "nextService": "Next Service",
    "brandRequired": "Brand is required",
    "errorSaving": "Could not save piano",
    "noPianosForCustomer": "No pianos for this customer yet",
    "confirmDeleteNamed": "Are you sure you want to delete \"{{name}}\"?",
    "guideSmartPickDesc": "When scheduling an appointment, Smart Pick shows which pianos need maintenance. Recommended time slots are highlighted based on interval and season.",
    "nextTuning": "Next",
    "notesPlaceholder": "Additional information...",
    "addPhoto": "Add photo",
    "selectDate": "Select a date",
    "serviceRepair": "Repair",
    "customerLinked": "Customer linked",
    "errorLoadingPianos": "Error loading pianos",
    "blackSatin": "Black satin",
    "mahogany": "Mahogany",
    "noNotes": "No notes",
    "selected": "selected",
    "location": "Location",
    "filterOverdue": "Overdue",
    "searchPlaceholder": "Search pianos...",
    "noOwnerLinked": "No owner linked",
    "guideHistory": "Maintenance history",
    "noRemarks": "No remarks",
    "maxPhotos": "Maximum 10 photos per piano",
    "owner": "Owner",
    "dueSoon": "Due Soon",
    "selectCustomer": "Select customer",
    "loadingHistory": "Loading history...",
    "errorSavingPiano": "Error saving piano",
    "serviceStatus": "Service Status",
    "groundFloor": "Ground floor",
    "modelPlaceholder": "e.g. U1, Model D",
    "filterUnknown": "Unknown",
    "tuningAdded": "Tuning added",
    "yearExample": "bijv. 1985",
    "planFirstTuning": "Plan the first tuning",
    "filterOk": "Good",
    "conditionPoor": "Poor",
    "floor1": "1st floor",
    "interval6": "Every 6 months",
    "photoAdded": "Photo added",
    "loadingPianos": "Loading pianos...",
    "bulkLastTuning": "Last tuning",
    "yearPlaceholder": "Year",
    "colType": "Type",
    "unlinkCustomer": "Unlink",
    "totalPianos": "Total Pianos",
    "notes": "Notes",
    "serviceSoonNeeded": "Service needed soon",
    "noServiceInfo": "No service information available",
    "modelExample": "bijv. U1",
    "other": "Other",
    "climateControlActive": "Active",
    "serviceOverdue": "Service overdue",
    "linkCustomer": "Link customer",
    "totalPianosLabel": "Total pianos",
    "pianoDeleted": "Piano deleted",
    "noDetails": "No details",
    "errorDeleting": "Error deleting",
    "noCustomersFound": "No customers found",
    "confirmDeletePhoto": "Delete photo?",
    "pianoDataUnavailable": "Piano data unavailable",
    "noCustomerLinked": "No customer linked",
    "linkFailed": "Link failed",
    "confirmUnlinkOwner": "Unlink owner from this piano?",
    "unlinkFailed": "Unlink failed",
    "buildYear": "Build year"
  },
  "appointments": {
    "title": "Appointments",
    "newAppointment": "New Appointment",
    "editAppointment": "Edit Appointment",
    "deleteAppointment": "Delete Appointment",
    "deleteTitle": "Delete Appointment",
    "deleteConfirm": "Are you sure you want to delete this appointment? This action cannot be undone.",
    "date": "Date",
    "time": "Time",
    "duration": "Duration",
    "service": "Service",
    "customer": "Customer",
    "piano": "Piano",
    "location": "Location",
    "notes": "Notes",
    "status": "Status",
    "scheduled": "Scheduled",
    "completed": "Completed",
    "cancelled": "Canceled",
    "hours": "hours",
    "route": "Route",
    "remaining": "remaining",
    "travelFromWorkshop": "From workshop",
    "noProject": "No project (loose workshop hours)",
    "travelToWorkshop": "To workshop",
    "privateAppointmentHint": "Not business-related, counts for separate mileage tracking",
    "noTravelNeeded": "No travel needed",
    "errorCreatingAppointment": "Error creating appointment: ",
    "privatePurpose": "Trip purpose",
    "locationType": "Where?",
    "schedule": "Schedule",
    "whatsapp": "WhatsApp",
    "workshopCount": "workshop",
    "privateAppointment": "Private appointment",
    "done": "Done",
    "thisAppointment": "this appointment",
    "atWorkshop": "Workshop",
    "elapsed": "elapsed",
    "enjoyYourDay": "Enjoy your day!",
    "remainingHours": "Remaining",
    "atCustomer": "At customer",
    "atRemote": "Remote",
    "errorDeletingAppointment": "Could not delete appointment. Please try again.",
    "travelWarningBoth": "Warning: insufficient travel time to surrounding appointments (minimum {{neededMinutes}} min recommended)",
    "locationRemote": "Remote",
    "createAppointment": "Create Appointment",
    "newProject": "New",
    "errorSavingAppointment": "Could not save appointment: ",
    "timerDone": "Finished",
    "appointmentCreated": "Appointment created!",
    "appointment": "Appointment",
    "couldNotLoad": "Could not load appointments",
    "workshopAddress": "Your workshop address",
    "workshopAppointment": "Workshop appointment",
    "travelWarningNext": "Warning: only {{gapMinutes}} min travel time to next appointment (minimum {{neededMinutes}} min recommended)",
    "markDone": "Mark as done",
    "errorMovingAppointment": "Could not move appointment: ",
    "tryAgain": "Try again",
    "workshopTimer": "Workshop timer",
    "startsIn": "Starts in",
    "privatePurposePlaceholder": "e.g. Shopping, doctor, family...",
    "locationWorkshop": "Workshop",
    "confirmDeleteNamed": "Are you sure you want to delete \"{{title}}\"?",
    "viewProject": "View project",
    "fillTitleStartEnd": "Please fill in title, start and end time",
    "slotTaken": "This time slot is already taken. Please choose another time.",
    "message": "Message",
    "selectProject": "Select a project",
    "noAppointmentsToday": "No appointments today",
    "errorMovingAppointmentRetry": "Could not move appointment. Please try again.",
    "customerCount": "customer",
    "travelWarningPrevious": "Warning: only {{gapMinutes}} min travel time from previous appointment (minimum {{neededMinutes}} min recommended)",
    "locationCustomer": "At customer",
    "appointmentDeleted": "Appointment deleted",
    "remoteCount": "remote",
    "project": "Project",
    "call": "Call",
    "linkedProject": "Linked project"
  },
  "services": {
    "title": "Services",
    "addService": "Add Service",
    "editService": "Edit Service",
    "deleteService": "Delete Service",
    "name": "Name",
    "duration": "Duration",
    "price": "Price",
    "description": "Description",
    "minutes": "minutes"
  },
  "pwa": {
    "agenda": {
      "today": "Today",
      "day": "Day",
      "week": "Week",
      "month": "Month",
      "view": "View",
      "done": "Done",
      "analysisDay": "Day",
      "analysisWeek": "Week",
      "pending": "pending"
    },
    "customerDetail": {
      "customers": "Customers",
      "customer": "Customer",
      "edit": "Edit",
      "call": "Call",
      "route": "Route",
      "email": "Email",
      "whatsapp": "WhatsApp",
      "copyBooking": "Copy",
      "addPiano": "Add Piano",
      "invoiceProOnly": "Invoicing is available from the Pro plan.",
      "invoiceTitle": "Quick Invoice",
      "addService": "Add service",
      "sending": "Sending...",
      "invoiceError": "Error sending invoice",
      "sendInvoice": "Send",
      "vatRate": "VAT",
      "price": "Price",
      "vat": "VAT",
      "quantity": "Quantity",
      "selectService": "Choose a service...",
      "subtotal": "Subtotal",
      "copy": "Copy",
      "customDescription": "Description",
      "noLines": "Add at least one line to the invoice.",
      "addLine": "+ Add line",
      "openTasks": "Open appointments",
      "invoiceSent": "Invoice sent!",
      "newPiano": "New Piano",
      "total": "Total",
      "invoice": "Invoice",
      "removeLine": "Remove",
      "noEmail": "This customer has no email address. Please add one first."
    },
    "launcher": {
      "sync": "Sync",
      "customers": "Customers",
      "smart": "Smart Plan",
      "pianos": "Pianos",
      "smartDesc": "AI-powered suggestions",
      "agenda": "Agenda",
      "agendaDesc": "Manage appointments",
      "invoicesDesc": "Create and send invoices",
      "customersDesc": "Customer overview",
      "pianosDesc": "Instruments & data",
      "share": "Share booking link",
      "sectionTitle": "Get started",
      "invoices": "Invoices"
    },
    "wakeLockReleased": "Screen lock released",
    "dataStoredLocally": "Data is stored locally",
    "itemsSynced": "items synced",
    "sync": "Sync",
    "noCalendarsLinked": "No calendars linked",
    "youAreOffline": "You are offline",
    "swipeToClose": "Swipe down to close",
    "syncCompleted": "Sync completed!",
    "logoutConfirm": "Are you sure you want to log out?",
    "backOnline": "Back online",
    "goToSettings": "Go to Settings to link calendars",
    "refreshing": "Refreshing...",
    "dataSynced": "Data synchronized",
    "releaseToRefresh": "Release to refresh",
    "syncError": "Sync error",
    "couldNotSync": "Could not sync. Check your internet connection",
    "update": "Update",
    "later": "Later",
    "syncedCalendars": "calendar(s) synced",
    "pullToRefresh": "Pull to refresh",
    "loading": "Loading...",
    "itemsFailedSync": "items failed to sync",
    "wakeLockActive": "Screen stays on",
    "syncFailed": "Sync failed",
    "updateAvailable": "New version available"
  },
  "settings": {
    "title": "Settings",
    "googleCalendar": "Google Calendar Sync",
    "appleCalendar": "Apple Calendar Sync",
    "emailNotifications": "Email Notifications",
    "bookingLink": "Public Booking Link",
    "companyProfile": "Company Profile",
    "account": {
      "loginMethod": "Login method",
      "resetDataBtn": "Start Over",
      "resetting": "Resetting...",
      "resetTitle": "Delete all data, keep your settings",
      "importContactsDesc": "vCard, CSV\niPhone, Google, Outlook",
      "importTitle": "Import Data",
      "keepServices": "Your services & prices",
      "confirmReset": "Start Over",
      "resetConfirmWarning": "This will delete all your data!",
      "permanentAction": "This action is permanent!",
      "deleteTitle": "Delete your account permanently",
      "resetWillKeep": "Will be kept:",
      "resetConfirmDetail": "All customers, pianos, appointments, invoices and service history will be permanently deleted. Your settings and account will be kept.",
      "importTypes": "Contacts, Calendar, CSV",
      "resetMileage": "Mileage records",
      "resetConfirmLabel": "Confirmation",
      "resetFailed": "Failed to reset data",
      "resetDescription": "Remove all your customers, pianos, appointments, invoices and service history. Your account, settings, services, email templates and subscription remain unchanged.",
      "subscriptionDesc": "Manage your subscription, view invoices and update payment method.",
      "autoDetect": "Auto-detect",
      "importDesc": "Import existing data from other apps or files.",
      "name": "Name",
      "cleanNotes": "Clean Up Notes",
      "keepSubscription": "Subscription & calendar sync",
      "confirmPassword": "Confirm password",
      "resetCustomers": "All customers",
      "deleteConfirmPassword": "Password",
      "importGazelleDesc": "Step by step\nwith detailed report",
      "saveProfile": "Save Profile",
      "interfaceLanguage": "Interface language",
      "deleteConfirmBtn": "Delete My Account",
      "confirmDeletion": "To confirm deletion, please enter your password:",
      "newPassword": "New password",
      "cleanNotesDesc": "Remove duplicate text and repeated lines from customer and piano notes. Useful after importing data that may contain merge artifacts.",
      "keepSettings": "Company settings & booking page",
      "deleteConfirmPrompt": "To confirm deletion, please enter your password:",
      "manageSubscription": "Manage Subscription",
      "deleteModalWarning": "Your account, all appointments, customers, pianos, services, and settings will be permanently deleted and cannot be recovered.",
      "deleteMyAccount": "Delete My Account",
      "importCalendar": "Calendar",
      "importGazelle": "Gazelle Import",
      "deleteAccountBtn": "Delete Account",
      "resetPianos": "All pianos and photos",
      "email": "Email",
      "subscriptionTitle": "Subscription",
      "changePassword": "Change Password",
      "keepAccount": "Your account & profile",
      "timezoneDesc": "Set your timezone for accurate appointment scheduling and calendar sync.",
      "resetInvoices": "All invoices",
      "deleteAccountConfirmMsg": "Your account, all appointments, customers, pianos, services, and settings will be permanently deleted and cannot be recovered.",
      "profileEmail": "Email",
      "password": "Password",
      "resetConfirmPrompt": "Type RESET to confirm:",
      "timezone": "Timezone",
      "resetWillDelete": "Will be deleted:",
      "resetServiceHistory": "All service history",
      "importContacts": "Contacts",
      "minChars": "Minimum 6 characters",
      "deleteAccountPermanent": "This action is permanent!",
      "keepTemplates": "Email templates",
      "resetSuccess": "All data has been deleted. Your settings and account are preserved.",
      "deleteAccountConfirmTitle": "Delete Account",
      "currentPassword": "Current password",
      "cleanAllNotes": "Clean All Notes",
      "resetAppointments": "All appointments",
      "deleteWarning": "This action cannot be undone. All your data, appointments, customers, and settings will be permanently deleted.",
      "importCalendarDesc": "iCal (.ics)\nApple, Google, Outlook",
      "resetTypeReset": "Type RESET to confirm",
      "saveTimezone": "Save Timezone"
    },
    "language": "Language",
    "selectLanguage": "Select language",
    "save": "Save",
    "saved": "Saved!",
    "connect": "Connect",
    "disconnect": "Disconnect",
    "connected": "Connected",
    "notConnected": "Not connected",
    "enabled": "Enabled",
    "disabled": "Disabled",
    "syncDisclaimer": "Please note: when enabling calendar synchronisation, appointment data will be shared with Google (external processor). PianoPlanner is not responsible for how Google processes your data. See our Data Processing Agreement (Art. 3.3) for more information.\n\nDo you want to continue?",
    "syncDisclaimerApple": "Please note: when connecting Apple Calendar, appointment data will be shared with Apple (external processor). PianoPlanner is not responsible for how Apple processes your data. See our Data Processing Agreement (Art. 3.3) for more information.\n\nDo you want to continue?",
    "syncNow": "Sync Now",
    "validateVat": "Validate",
    "blockedDays": {
      "title": "Holidays & blocked days",
      "hint": "Days when you are not available. Customers cannot book on these days.",
      "fromDate": "From date",
      "toDate": "Until date",
      "reason": "Reason",
      "add": "Add",
      "empty": "No blocked days scheduled",
      "remove": "Remove",
      "loadError": "Could not load blocked days",
      "selectStartDate": "Select a start date",
      "endBeforeStart": "End date cannot be before start date",
      "unavailable": "Unavailable",
      "daysBlocked": "{count} days blocked",
      "dayBlocked": "1 day blocked",
      "blockError": "Could not block days",
      "confirmRemoveSingle": "Are you sure you want to unblock this day?",
      "confirmRemoveMultiple": "Are you sure you want to unblock these {count} days?",
      "dayUnblocked": "Day unblocked",
      "daysUnblocked": "{count} days unblocked",
      "through": "to",
      "dayCount": "{count} days"
    },
    "bccEnabled": "BCC copy enabled",
    "timezoneSaved": "🌍 Timezone saved!",
    "booking": {
      "upgradeToPro": "Upgrade to Pro",
      "linkDisabled": "Booking link is disabled",
      "saveAvailability": "Save Availability",
      "4hours": "4 hours",
      "1week": "1 week",
      "theaterProMsg": "Theater availability is only available with a Pro subscription.",
      "1day": "1 day",
      "5days": "5 days",
      "selectServices": "Select which services customers can book via the public link",
      "enableTheater": "Enable theater availability",
      "saveTheater": "Save Theater Availability",
      "2months": "2 months",
      "8hours": "8 hours (same day)",
      "theaterAvailability": "Theater Availability",
      "4days": "4 days",
      "desc": "Let customers schedule appointments online via a shareable link.",
      "pageTitlePlaceholder": "Schedule an appointment",
      "yourUrl": "Your booking URL:",
      "theaterHint": "Optional separate availability for theaters/venues. Enable this to allow certain customers to book outside normal hours.",
      "theaterAvailabilityHint": "Optional separate availability for theaters/venues. Enable this to allow certain customers to book outside normal hours.",
      "availableServices": "Available services for booking",
      "weeklyAvailability": "Weekly Availability",
      "weeklyAvailabilityHint": "Set your working hours for each day.",
      "availableServicesDesc": "Select which services customers can book via the public link",
      "maxAdvance": "Maximum advance",
      "copyLink": "Copy",
      "noMinimum": "No minimum (immediate)",
      "2hours": "2 hours",
      "proFeature": "Pro Feature",
      "previewLink": "Preview",
      "9months": "9 months",
      "3months": "3 months",
      "2days": "2 days",
      "1hour": "1 hour",
      "theaterWindow": "Theater Booking Window",
      "welcomePlaceholder": "Message shown on your booking page",
      "welcomeMessage": "Welcome message (optional)",
      "enableLink": "Enable booking link",
      "2weeks": "2 weeks",
      "theaterWindowHint": "Different advance booking times for theater customers. Useful for allowing last-minute bookings.",
      "theaterBookingWindow": "Theater Booking Window",
      "minAdvance": "Minimum advance",
      "theaterBookingWindowHint": "Different advance booking times for theater customers. Useful for allowing last-minute bookings.",
      "3days": "3 days",
      "1year": "1 year",
      "preview": "Preview",
      "pageTitle": "Page title",
      "1month": "1 month",
      "enableBookingLink": "Enable booking link",
      "yourBookingUrl": "Your booking URL:",
      "6months": "6 months",
      "requiredFields": "Required fields"
    },
    "confirmSwitchToPianoplanner": "Are you sure you want to switch back to PianoPlanner email? Your own SMTP settings will be removed.",
    "calendar": {
      "importOnlyGoogleDesc": "Google → PianoPlanner",
      "googleDesc": "Two-way sync between PianoPlanner and Google Calendar.",
      "exportOnlyAppleDesc": "PianoPlanner → Apple",
      "connectMicrosoft": "Connect Microsoft Account",
      "microsoftSynced": "Your Microsoft Calendar is synced.",
      "displayDesc": "Configure which hours to show in your calendar view.",
      "feedAutoRefresh": "Calendar apps refresh automatically (usually hourly).",
      "startDate": "Start Date",
      "syncRange": "Sync Range:",
      "copy": "Copy",
      "newLink": "New Link",
      "exportOnly": "Export only",
      "selectCalendar": "Select Calendar:",
      "feedInstructionsTitle": "Add to your calendar:",
      "inactive": "Inactive",
      "lastSync": "Last sync:",
      "connectGoogle": "Connect Google Account",
      "appleIdLabel": "Apple ID",
      "setupInstructions": "Setup instructions:",
      "from": "From",
      "feedTitle": "Calendar Subscription",
      "microsoftConnected": "Connected!",
      "googleTitle": "Google Calendar",
      "appleTitle": "Apple Calendar",
      "appSpecificPassword": "App-Specific Password",
      "historyImport": "Import historical calendar data",
      "feedInstructionOutlook": "Outlook: Add Calendar → Subscribe from web",
      "twoWaySync": "Two-way sync",
      "singleProviderError": "You can only connect one calendar provider. Disconnect the current one first.",
      "exportTitle": "Export / Backup",
      "appPasswordLabel": "App-Specific Password",
      "microsoftTitle": "Microsoft 365 / Outlook",
      "calendarExportDesc": "Download your calendar as .ics file for backup or import.",
      "exportHint": "Leave dates empty to export 1 year back and forward.",
      "saveRange": "Save Range",
      "calendarExportTitle": "Export / Backup",
      "historyImportDesc": "Import appointments up to 3 years back from your Google Calendar",
      "exportOnlyGoogleDesc": "PianoPlanner → Google",
      "twoWayAppleDesc": "PianoPlanner ↔ Apple (recommended)",
      "feedUrlLabel": "Subscription URL:",
      "singleProviderMessage": "You can only use one calendar integration at a time",
      "feedDesc": "Subscribe to your calendar from any app (read-only iCal feed).",
      "enableSync": "✓ Enable Sync",
      "endHour": "End hour",
      "downloadIcs": "Download .ics",
      "feedInstructionGoogle": "Google: Settings → Add Calendar → From URL",
      "twoWayGoogleDesc": "PianoPlanner ↔ Google (recommended)",
      "singleProviderTitle": "One calendar active",
      "monthsAhead": "Months Ahead",
      "exportDesc": "Download your calendar as .ics file for backup or import.",
      "disable": "Disable",
      "feedInstructionApple": "Apple: File → New Calendar Subscription",
      "never": "Never",
      "syncDirection": "Sync direction",
      "importOnlyAppleDesc": "Apple → PianoPlanner",
      "microsoftDesc": "Sync with Outlook.com, Hotmail or Microsoft 365 work calendar.",
      "calendarLabel": "Calendar",
      "enableFeed": "Enable Feed",
      "appleDesc": "Sync with iCloud / Apple Calendar.",
      "displayTitle": "Calendar Display",
      "betaDisclaimer": "Google Calendar sync is currently in beta. Google is reviewing our app for verification. During this period, you may see a warning screen when connecting. This is normal and your data is safe.",
      "importOnly": "Import only",
      "startHour": "Start hour",
      "addToCalendar": "Add to your calendar:",
      "appleId": "Apple ID",
      "to": "To",
      "connect": "Connect",
      "disableFeed": "Disable",
      "outsideHoursInfo": "Appointments outside these hours will show an indicator at the top/bottom of the calendar."
    },
    "tuningReminders": {
      "testSent": "Test reminder sent to your own email address. Check your inbox.",
      "statsThisMonth": "This month",
      "title": "Automatic Tuning Reminders",
      "daysBeforeDue": "days before tuning is due",
      "howStep1": "Reminders are only sent for pianos with a set service interval (> 0)",
      "howStep3": "If no response, follow-ups are sent at the configured interval",
      "maxFollowups": "Maximum reminders per cycle",
      "howStep2": "The first reminder is sent X days before the scheduled tuning",
      "howItWorks": "How does it work?",
      "statsTotalSent": "Total sent",
      "advanceDays": "Send first reminder",
      "description": "Automatically send tuning reminders to customers when their piano is due for service. Based on the service interval per piano.",
      "sendTime": "Send time",
      "active": "Active",
      "previewWarning": "There are currently {pianoCount} pianos from {customerCount} customers due for tuning. After saving, reminders will be sent. Pianos imported less than 24 hours ago will be skipped.",
      "daysBetweenFollowups": "days between follow-up reminders",
      "saveError": "Error saving tuning reminder settings",
      "enableDesc": "Customers will automatically be reminded when their piano is due for tuning",
      "testError": "Could not send test reminder",
      "saved": "Tuning reminder settings saved",
      "statsOptedOut": "Unsubscribed",
      "inactive": "Inactive",
      "previewNone": "There are currently no pianos due for tuning. Newly imported pianos are only included after 24 hours.",
      "remindersPer": "reminders per cycle",
      "sendTest": "Send test",
      "sendTimeDesc": "hour (emails will be sent around this time)",
      "howStep4": "The cycle stops automatically when the customer books an appointment or unsubscribes",
      "editTemplate": "Edit template",
      "followupInterval": "Follow-up interval",
      "previewTitle": "Heads up",
      "howStep5": "You can customize the email template via the Template Editor",
      "enable": "Enable automatic reminders"
    },
    "email": {
      "reminderTip": "💡 Tip: combine e.g. 7 days + 24 hours, so customers have time to reschedule if they can't make it.",
      "availableVariables": "Available variables",
      "days7": "7 days before",
      "senderDetails": "Your sender details",
      "sendVia": "Send emails via:",
      "emailsSentFrom": "Emails will be sent from:",
      "viaPianoplanner": "PianoPlanner (default)",
      "remindersDesc": "Send before appointment",
      "viaPianoplannerDesc": "Emails sent on your behalf via noreply@pianoplanner.com",
      "providerCustom": "Other (manual setup)",
      "senderName": "Sender name (optional)",
      "hoursBefore": "hours before",
      "clickRefreshPreview": "Click \"Refresh\" to see a preview",
      "sendReminder": "Send reminder",
      "cancellationsDesc": "Notify customer when cancelled",
      "senderName2": "Sender name",
      "reminderExplanation": "Customers automatically receive an email reminder before their appointment. Set one or two reminders — ideal when you plan far ahead, so customers still have time to reschedule.",
      "templatesDesc": "Customize the content of automatic emails with your own text and style.",
      "advancedSmtpDesc": "By default, emails are sent via our secure server with your name as sender. Want to send emails directly via your own mail server? Enter your SMTP details below.",
      "sslTls": "SSL/TLS (required for port 465)",
      "openEditor": "Open Template Editor",
      "appPasswordHint": "Not your regular password. Follow instructions above.",
      "reminderOff": "Off",
      "test": "Test",
      "hours2": "2 hours before",
      "confirmationsDesc": "Send when appointment is booked",
      "bccToSelfDesc": "Automatically receive a copy of all emails sent to customers (confirmations, reminders, cancellations, invoices). Useful to verify what your customers receive.",
      "notificationsDesc": "Automatic emails to customers for appointments.",
      "templatesTitle": "Email Templates",
      "smtpHost": "SMTP Host",
      "provider": "Email provider",
      "days5": "5 days before",
      "refresh": "Refresh",
      "providerGmail": "Gmail / Google Workspace",
      "providerOutlook": "Outlook / Microsoft 365",
      "configTitle": "Email Configuration",
      "bccToSelf": "Copy to myself (BCC)",
      "hours12": "12 hours before",
      "configDesc": "Send emails from your own address or use PianoPlanner's default.",
      "reminder1Label": "Reminder 1",
      "port": "Port",
      "newBookingAlerts": "New booking alerts",
      "editorHint": "Use the full editor for a better experience with live preview.",
      "viaOwnDesc": "Emails sent from your personal email address",
      "hours24": "24 hours before",
      "reminder2Label": "Reminder 2",
      "editTemplateTitle": "Edit Email Template",
      "emailsViaPianoplannerDesc": "Emails are sent on your behalf via noreply@pianoplanner.com",
      "notVerified": "Not verified",
      "reminders": "Reminder emails",
      "ownEmailActive": "Own email",
      "usingPianoplanner": "Using PianoPlanner",
      "advancedSmtp": "Advanced: custom SMTP server (optional)",
      "providerTransip": "TransIP",
      "subject": "Subject",
      "resetToDefault": "Reset to default",
      "smtpDisclaimerTitle": "Note about using your own SMTP",
      "smtpDisclaimerText": "When using your own email server, you will receive bounce messages (undeliverable mail notifications) directly. These are automatic messages when a customer email address no longer exists or is incorrect. This is normal and not a PianoPlanner error — simply update the customer's email address.",
      "appPassword": "App-specific password",
      "emailAddress": "Email address",
      "testToActivate": "Test the connection to activate your settings",
      "providerIcloud": "iCloud / Apple Mail",
      "cancellations": "Cancellation emails",
      "hours48": "48 hours before",
      "preview": "Preview",
      "newBookingAlertsDesc": "Get notified when customers book",
      "hours6": "6 hours before",
      "loading": "Loading...",
      "templateActive": "Template active",
      "replyEmail": "Email address (for replies)",
      "cancel": "Cancel",
      "pianoplannerEmail": "PianoPlanner email",
      "sendTest": "Send Test",
      "contentHtml": "Content (HTML)",
      "viaOwn": "My own email",
      "notificationsTitle": "Notifications",
      "confirmations": "Confirmation emails",
      "ownEmailConfigured": "Own email active",
      "reminder2MustBeShorter": "Reminder 2 must be shorter than reminder 1 (closer to the appointment)"
    },
    "mileage": {
      "tripPrivate": "Private trip",
      "exportPDF": "Export PDF (tax-proof)",
      "trips": "trips",
      "vehicleName": "Vehicle",
      "private": "Private",
      "manualTrips": "Manual trips",
      "title": "Mileage Tracking",
      "vehicleError": "Error saving vehicle",
      "privateKm": "Private km",
      "exportCSV": "Export CSV",
      "enterDistance": "Enter a distance",
      "tripRoundTrip": "Round trip (×2)",
      "vehicleSaved": "Vehicle saved",
      "pdfError": "Error generating PDF",
      "noData": "No mileage data loaded",
      "saveVehicle": "Save",
      "noReadings": "No odometer readings entered yet.",
      "enterReading": "Enter a valid odometer reading",
      "totalKm": "Total km",
      "tripPurpose": "Trip purpose",
      "odometerDate": "Date",
      "pdfComingSoon": "PDF export coming soon!",
      "readingSaved": "Odometer reading saved",
      "odometerReading": "Reading (km)",
      "businessKm": "Business km",
      "generatingPdf": "Generating PDF...",
      "tripDate": "Date",
      "tripDeleted": "Trip deleted",
      "year": "Year:",
      "exportPrefix": "mileage-log",
      "pdfReady": "PDF downloaded",
      "addTripTitle": "Add manual trip",
      "selectDate": "Select a date",
      "tripFrom": "From",
      "manualTripsTitle": "Manual trips",
      "tripDistance": "Distance (km)",
      "business": "Business",
      "dashboardLink": "Quickly add trips? Use the mileage widget on the Dashboard →",
      "confirmDelete": "Are you sure you want to delete this trip?",
      "addTrip": "Add trip",
      "licensePlate": "License plate",
      "tripTo": "To",
      "vehicleTitle": "Vehicle",
      "description": "Tax-proof mileage administration with vehicle, odometer readings and trip registration.",
      "tripAdded": "Trip added",
      "odometerTitle": "Odometer Readings",
      "monthlyBreakdown": "Monthly Breakdown",
      "pdfTitle": "Mileage Log",
      "pdfGeneratedOn": "Generated on",
      "pdfAdministration": "mileage administration",
      "pdfCompanyDetails": "Company details",
      "pdfVehicle": "Vehicle",
      "pdfLicensePlate": "License plate",
      "pdfStartOdometer": "Start odometer",
      "pdfEndOdometer": "End odometer",
      "pdfActuallyDriven": "Actually driven",
      "pdfTotal": "Total",
      "pdfBusiness": "Business",
      "pdfPrivate": "Private",
      "pdfMonthlyOverview": "Monthly Overview",
      "pdfMonth": "Month",
      "pdfTripLog": "Trip Log",
      "pdfDate": "Date",
      "pdfType": "Type",
      "pdfFrom": "From",
      "pdfTo": "To",
      "pdfPurpose": "Purpose",
      "pdfOutward": "Outward",
      "pdfReturn": "Return",
      "pdfSource": "Source",
      "pdfPrint": "Print / Save PDF",
      "pdfLegendOverride": "Manually corrected distance",
      "pdfLegendManual": "Manually added trip",
      "pdfFooterNote": "This document was automatically generated by PianoPlanner on",
      "pdfTaxNote": "Keep this document with your fiscal records as required by tax authorities.",
      "pdfMonthNames": "January,February,March,April,May,June,July,August,September,October,November,December"
    },
    "export": {
      "downloadBtn": "Download Backup",
      "appointments": "Appointments",
      "tipText": "Store the file in a safe place, such as your own cloud storage or an external drive. This way you always have a copy of your business data.",
      "title": "Data Export",
      "error": "Export failed",
      "statusLabel": "Backup & Download",
      "customers": "Customers",
      "serviceRecords": "Service records",
      "preparing": "Preparing export...",
      "description": "Download all your business data as a backup. The file contains customers, pianos, appointments, service history and settings.",
      "tipTitle": "Tip: make regular backups",
      "pianos": "Pianos",
      "success": "Backup downloaded!"
    },
    "panelIntro": {
      "bookingTitle": "Booking & Planning",
      "accountTitle": "Account",
      "businessTitle": "Business",
      "accountDesc": "Manage your profile, password, language and subscription. Import data or create a backup of your data.",
      "integrationsDesc": "Connect PianoPlanner with your accounting software to automatically sync invoices. Your API credentials are stored encrypted.",
      "emailTitle": "Email & Communication",
      "calendarDesc": "Sync with your existing calendar to prevent double bookings. PianoPlanner checks your existing appointments and automatically blocks those times for online bookings.",
      "servicesDesc": "Manage your services with prices, duration and buffer times. Customers choose from these when booking. Create specific services so customers can choose exactly what they need.",
      "servicesTitle": "Services",
      "integrationsTitle": "Accounting Integrations",
      "businessDesc": "Manage your company details, timezone and mileage tracking. Your business information is shown on the booking page and in emails to customers.",
      "calendarTitle": "Calendar & Sync",
      "bookingDesc": "Set up your online booking link, manage your availability and travel times. Customers can schedule appointments themselves through your personal link.",
      "emailDesc": "Set up automatic confirmations, reminders and notifications. Use your own email address for a professional appearance."
    },
    "services": {
      "rate": "Rate *",
      "bufferBefore": "Buffer before (min)",
      "customerTypesDesc": "Select which customer types can book this service via their personal link. Leave all unchecked for all types.",
      "serviceNamePlaceholder": "e.g. Tune grand piano",
      "newService": "+ New Service",
      "title": "Services",
      "description": "Description",
      "calendarColor": "Calendar color",
      "bufferAfter": "Buffer after (min)",
      "loadingServices": "Loading services...",
      "customerTypes": "Available for customer types",
      "serviceName": "Service name *",
      "desc": "Manage the services you offer. Buffer times are included in scheduling.",
      "descriptionPlaceholder": "Short description",
      "cancel": "Cancel",
      "duration": "Duration (min) *",
      "newServiceTitle": "New Service"
    },
    "sidebar": {
      "regionalSettings": "Regional Settings",
      "microsoftCalendar": "Microsoft 365",
      "travelArea": "Travel & Service Area",
      "services": "Services",
      "integrations": "Integrations",
      "customDomain": "Custom Domain",
      "emailTemplates": "Templates",
      "bookingPlanning": "Booking & Planning",
      "availability": "Availability",
      "icalFeed": "iCal Feed",
      "importData": "Import Data",
      "bookingSettings": "Booking Settings",
      "mileageTracking": "Mileage Tracking",
      "emailNotifications": "Notifications",
      "profile": "Profile",
      "business": "Business",
      "displaySettings": "Display Settings",
      "travelSettings": "Travel & Service Area",
      "googleCalendar": "Google Calendar",
      "calendar": "Calendar",
      "emailLog": "Sent emails",
      "companyDetails": "Company Details",
      "teamManagement": "Team Management",
      "email": "Email",
      "appleCalendar": "Apple iCloud",
      "notifications": "Notifications",
      "accounting": "Accounting Integration",
      "account": "Account",
      "manageServices": "Manage Services",
      "communication": "Communication",
      "subscription": "Subscription",
      "onlineBooking": "Online Booking",
      "pushNotifications": "Push Notifications",
      "language": "Language"
    },
    "travel": {
      "analyzeTitle": "Analysis of your customer base",
      "15min": "15 minutes",
      "maxBetweenAdvice40": "🔵 <strong>Wide — max. ~40 min.</strong><br>▸ Customers < 40 min drive get <strong>priority</strong><br>▸ Customers 40–60 min drive appear <strong>lower in the list</strong><br>▸ Customers > 60 min drive appear <strong>only if no better options are available</strong><br>▸ Large service area. Only truly long trips (1 hour+) rank lower",
      "desc": "Set how far you want to drive and how much break time you want between appointments.",
      "analyzeTopCities": "Largest cities",
      "analyzeCoverage": "Percentage of customer pairs within each setting",
      "bookingRadius": "Service area for online bookings",
      "analyzeLoading": "Analyzing customer base...",
      "maxBookingTravel": "Maximum travel time for bookings",
      "maxBetweenAdvice30": "🟢 <strong>Standard — max. ~30 min.</strong> ⭐ Most popular<br>▸ Customers < 30 min drive get <strong>priority</strong><br>▸ Customers 30–45 min drive appear <strong>lower in the list</strong><br>▸ Customers > 45 min drive appear <strong>only if no better options are available</strong><br>▸ Good balance — full days in the same region, without missing customers",
      "enableTrafficPrediction": "Enable traffic prediction",
      "maxBetween": "Travel time between appointments",
      "35min": "35 minutes",
      "bookingRadiusDesc": "How far away can customers live and still book online?",
      "maxBetweenAdvice10": "🔴 <strong>Very tight — max. ~10 min.</strong><br>▸ Customers < 10 min drive get <strong>priority</strong><br>▸ Customers 10–15 min drive appear <strong>lower in the list</strong><br>▸ Customers > 15 min drive appear <strong>only if no better options are available</strong><br>▸ Ideal for one neighbourhood or small town",
      "bookingRadiusHint": "How far away can customers live and still book online?",
      "trafficPredictionExplain": "🚦 Travel times account for expected traffic at the time of the appointment. During rush hours, longer travel times are calculated for more realistic scheduling.",
      "maxBetweenAdvice15": "🟠 <strong>Tight — max. ~15 min.</strong><br>▸ Customers < 15 min drive get <strong>priority</strong><br>▸ Customers 15–22 min drive appear <strong>lower in the list</strong><br>▸ Customers > 22 min drive appear <strong>only if no better options are available</strong><br>▸ Suitable for one city or small municipality",
      "trafficPrediction": "Traffic Prediction",
      "maxBetweenAdviceNone": "⚪ <strong>No preference set.</strong><br>▸ The system still plans smartly: nearby customers get <strong>priority</strong> and days with multiple customers in the same area are grouped together<br>▸ No customers are pushed down — everyone gets a fair chance<br>▸ Ideal if you have a large service area or want to give the system maximum flexibility",
      "maxBetweenAdvice25": "🟢 <strong>Medium — max. ~25 min.</strong><br>▸ Customers < 25 min drive get <strong>priority</strong><br>▸ Customers 25–37 min drive appear <strong>lower in the list</strong><br>▸ Customers > 37 min drive appear <strong>only if no better options are available</strong><br>▸ A small region. Good if you serve a few municipalities",
      "2hours": "2 hours",
      "saveTravel": "Save Travel Settings",
      "maxBetweenAdvice45": "🔵 <strong>Large — max. ~45 min.</strong><br>▸ Customers < 45 min drive get <strong>priority</strong><br>▸ Customers 45–67 min drive appear <strong>lower in the list</strong><br>▸ Customers > 67 min drive appear <strong>only if no better options are available</strong><br>▸ Suitable for an entire province",
      "maxBetweenAdvice60": "⚪ <strong>Maximum — max. ~60 min.</strong><br>▸ Customers < 60 min drive get <strong>priority</strong><br>▸ Customers 60–90 min drive appear <strong>lower in the list</strong><br>▸ Customers > 90 min drive appear <strong>only if no better options are available</strong><br>▸ Virtually everything is suggested",
      "25min": "25 minutes",
      "20min": "20 minutes",
      "farMessage": "Message for far locations",
      "maxTravelBooking": "Maximum travel time for bookings",
      "1hour": "1 hour",
      "analyzeMedian": "Median distance between customers",
      "maxBetweenAdvice20": "🟡 <strong>Compact — max. ~20 min.</strong><br>▸ Customers < 20 min drive get <strong>priority</strong><br>▸ Customers 20–30 min drive appear <strong>lower in the list</strong><br>▸ Customers > 30 min drive appear <strong>only if no better options are available</strong><br>▸ Your city and immediate surroundings",
      "title": "Travel Settings",
      "analyzeApply": "Apply this setting",
      "saveTravelSettings": "Save Travel Settings",
      "analyzeExplain": "This covers most trips between consecutive customers. Customers further away still appear in your suggestions but ranked lower.",
      "40min": "40 minutes",
      "maxBetweenAdvice35": "🔵 <strong>Relaxed — max. ~35 min.</strong><br>▸ Customers < 35 min drive get <strong>priority</strong><br>▸ Customers 35–52 min drive appear <strong>lower in the list</strong><br>▸ Customers > 52 min drive appear <strong>only if no better options are available</strong><br>▸ Wider region. You miss few customers",
      "90min": "1.5 hours",
      "bookingRadiusExplain": "🗺️ This is the boundary of your service area for online bookings. Customers who live further than this travel time cannot book online — they'll see a message to contact you. You can always schedule them manually.",
      "30min": "30 minutes",
      "routeEfficiencyHint": "How long do you want to drive between two customers on the same day at most? The system uses this preference to plan your day efficiently.",
      "trafficPredictionHint": "Use expected traffic conditions when calculating travel times between appointments.",
      "maxBetweenInfo": "💡 This only affects <strong>smart suggestions</strong>. Customers who live further away can always be scheduled manually or book through your booking link. This setting controls which times the system automatically suggests — not which customers you can accept.",
      "noPreference": "No preference",
      "analyzeNotEnough": "Not enough customers with address data to analyze. At least 5 customers with an address required.",
      "analyzeCustomers": "customers analyzed",
      "routeEfficiency": "Travel time between appointments",
      "travelInfoHint": "The system plans your day as efficiently as possible. Nearby customers get priority, further customers appear lower in the suggestions.",
      "45min": "45 minutes",
      "noLimit": "No limit",
      "routeEfficiencyDesc": "How long do you want to drive between two customers on the same day at most? The system uses this preference to plan your day efficiently.",
      "analyzeAdvice": "Recommendation",
      "analyzeError": "Something went wrong during analysis. Please try again.",
      "10min": "10 minutes",
      "farMessageHint": "This message is shown to customers who live too far away to book online.",
      "analyzeRecommended": "recommended",
      "analyzeBtn": "Analyze my customer base",
      "enableLimits": "Enable travel limits"
    },
    "timeTo": "to",
    "couldNotDisableFeedError": "Could not disable feed: ",
    "couldNotRegenerateFeed": "Could not regenerate feed",
    "modalNotFound": "Error: Modal not found",
    "advice": {
      "bufferText": "Each service has a buffer before (arrival, setting up tools) and a buffer after (cleaning up, driving to next customer). Recommended: 15 min before, 15-30 min after. Adjust via the ✏️ icon on each service.",
      "notificationsTitle": "Recommended combination",
      "travelTitle": "Limit your service area for efficiency",
      "notificationsText": "Confirmation on booking, reminder 24 hours ahead (60% fewer no-shows), cancellation email and new booking alert. This way you miss nothing and customers always know where they stand.",
      "bookingTitle": "Online booking saves you 30 minutes per day",
      "calendarSyncText": "Google Calendar offers the best two-way sync. Apple iCloud and Microsoft 365 are also supported. You can only connect one at a time — choose the calendar you use daily. You can always switch by disconnecting first.",
      "companyTitle": "Complete profile = trustworthy",
      "calendarSyncTitle": "Which calendar to connect?",
      "bookingText": "Share your booking link on your website, in your email signature, or on your Google Business Profile. Customers choose an available time themselves — no more back-and-forth messaging. Recommended: minimum 24 hours, maximum 3 months ahead.",
      "companyText": "Customers see your company name and logo on the booking page and in emails. A complete profile with logo, address and chamber of commerce number radiates professionalism. Your address is also used as starting point for travel time calculations.",
      "bufferTitle": "Buffer times — travel time between appointments",
      "smtpText": "Emails from info@yourbusiness.com are better received than from a noreply address. Use Gmail, iCloud or Outlook with an app-specific password for best delivery.",
      "travelText": "Most piano tuners work within 45-60 minutes travel time. A smaller area means more appointments per day and lower fuel costs. The travel time between appointments determines how the smart scheduling system clusters appointments in the same area.",
      "smtpTitle": "Your own email address = more professional",
      "smtpText2": "Enter your name and email address so customers see your name as the sender. Replies go directly to your inbox."
    },
    "templateSaved": "Template saved!",
    "bookingSettingsSaved": "Booking settings saved!",
    "workshopAvailability": "Workshop Availability",
    "sync": {
      "pendingInQueue": "sync(s) in queue",
      "notSynced": "not synchronized",
      "connectedSyncOff": "Connected (sync off)",
      "forceSync": "Force Sync",
      "notConnected": "Not connected",
      "needsReauth": "Reconnect required",
      "failed": "failed",
      "active": "Active"
    },
    "cards": {
      "resetData": "Start Over",
      "password": "Password",
      "dangerZone": "Danger Zone",
      "companyAvailability": "Company & Availability"
    },
    "vat": {
      "serviceDown": "EU VIES service temporarily unavailable. Please try again later.",
      "verified": "Verified via EU VIES",
      "validateBtn": "Validate",
      "validating": "Validating...",
      "error": "Error validating VAT number",
      "enterNumber": "Please enter a VAT number first",
      "reverseCharge": "Reverse charge (0%) — VAT shifted to buyer",
      "valid": "Valid VAT number",
      "invalid": "Invalid VAT number"
    },
    "googleDisconnected": "Google Calendar disconnected",
    "enterAppPassword": "Please enter your app-specific password",
    "company": {
      "searchAddressPlaceholder": "Start typing to search...",
      "searchAddress": "Search address",
      "removeLogo": "Remove",
      "basicInfo": "Basic Information",
      "saveCompany": "Save Company",
      "uploadLogo": "Upload Logo",
      "logoTitle": "Company Logo",
      "logoDesc": "Upload your logo to personalize emails and your booking page."
    },
    "resetFailed": "Reset failed",
    "couldNotSaveSettings": "Could not save settings",
    "couldNotEnableFeed": "Could not enable feed",
    "errorSyncing": "Error syncing",
    "couldNotSaveCalendarSelection": "Could not save calendar selection",
    "calendarSelectionSaved": "Calendar selection saved!",
    "fillAllPasswordFields": "Please fill in all password fields",
    "emailLog": {
      "colRecipient": "Recipient",
      "deleted": "{count} email(s) deleted",
      "description": "Overview of all sent emails. Check if messages were delivered successfully.",
      "totalEmails": "email(s)",
      "statusFailed": "Failed",
      "confirmDelete": "Are you sure you want to delete {count} email(s)?",
      "deleteSelected": "Delete selected",
      "colDate": "Date",
      "statusSent": "Sent",
      "selectedCount": "{count} selected",
      "colSubject": "Subject",
      "refresh": "Refresh",
      "loadError": "Could not load email log",
      "loading": "Loading...",
      "colStatus": "Status",
      "empty": "No emails sent yet",
      "title": "Sent emails",
      "searchPlaceholder": "Search by email address or subject...",
      "selectAllPage": "Select page",
      "deleteError": "Could not delete emails"
    },
    "connectingToApple": "Connecting to Apple Calendar...",
    "logoRequirements": "PNG, JPG or GIF. Max 2MB recommended. Preferably use an image of max 400×400px with a transparent background.",
    "newService": "New Service",
    "hideGuideDesc": "Hide the 'How does it work?' sections on all pages",
    "workshopAvailabilitySaved": "Workshop availability saved",
    "confirmRegenerateFeed": "Are you sure you want to generate a new link? The current link will stop working and you need to re-subscribe in your calendar apps.",
    "saveFailedWithError": "Save failed: ",
    "theaterAvailabilityFailed": "Failed to save theater availability",
    "iban": {
      "validateBtn": "Validate",
      "invalid": "Invalid IBAN — check the digits",
      "enterNumber": "Please enter an IBAN first",
      "invalidFormat": "Invalid IBAN format",
      "valid": "Valid IBAN",
      "wrongLength": "IBAN for {country} must be {length} characters"
    },
    "saveFailed": "Save failed",
    "resetFailedWithError": "Reset failed: ",
    "errorSavingEmailSettings": "Error saving email settings",
    "fillSubjectAndContent": "Please fill in subject and content",
    "uploadLogo": "Upload logo",
    "syncFailedError": "Sync failed: ",
    "emailsViaPianoPlanner": "Emails will now be sent via PianoPlanner",
    "logoRemoved": "Logo removed",
    "availabilityFailed": "Failed to save availability",
    "hideGuide": "Hide Guides",
    "syncComplete": "Sync complete! Items synchronized.",
    "errorSavingSettings": "Error saving settings",
    "enableWorkshopHours": "Enable workshop hours",
    "syncFailed": "Sync failed",
    "serviceNotFound": "Service not found. Try refreshing the page.",
    "workshopAddressPlaceholder": "e.g. 5 Industrial Road, Amsterdam",
    "errorDisconnecting": "Error disconnecting",
    "errorCleaningNotes": "Error cleaning notes: ",
    "couldNotSaveCompanyProfile": "Could not save company profile: ",
    "selectTimezone": "Please select a timezone",
    "failedToDeleteAccount": "Failed to delete account",
    "profileSaved": "Profile saved!",
    "smtpServerError": "Server gave an unexpected response. Try again or log in again.",
    "couldNotConnectApple": "Could not connect to Apple Calendar",
    "somethingWentWrong": "Something went wrong",
    "confirmDisconnectApple": "Are you sure you want to disconnect Apple Calendar?",
    "passwordChanged": "Password changed!",
    "theaterAvailabilitySaved": "Theater availability saved",
    "serviceAdded": "Service added!",
    "singleProviderTitle": "Another calendar active",
    "sendFailed": "Send failed",
    "passwordMinLength": "Password must be at least 6 characters",
    "syncEnabled": "Sync enabled!",
    "microsoftDisconnected": "Microsoft Calendar disconnected",
    "smtpSettingsSaved": "SMTP settings saved! Now test the connection.",
    "errorSaving": "Error saving: ",
    "dayNotAvailable": "Not available",
    "calendarFeedDisabled": "Calendar feed disabled",
    "deleting": "Deleting...",
    "newFeedLinkGenerated": "New feed link generated. Remember to re-subscribe!",
    "availabilitySaved": "Weekly availability saved",
    "couldNotSaveRange": "Could not save range: ",
    "fileTooLarge": "File is too large. Maximum size is 5MB.",
    "workshopAvailabilityHint": "Set dedicated workshop hours. During these times, no customer appointments will be scheduled — only workshop tasks.",
    "notesCleanedSuccess": "Notes cleaned!",
    "calendarFeedActive": "Calendar feed is now active! Copy the URL to subscribe.",
    "saveWorkshopAvailability": "Save Workshop Availability",
    "languageChanged": "Language changed",
    "nameEmailRequired": "Name and email are required",
    "subtitle": "Manage your calendar, email, account and business settings.",
    "couldNotChangePassword": "Could not change password",
    "pleaseEnterPassword": "Please enter your password",
    "somethingWentWrongTryAgain": "Something went wrong. Please try again.",
    "confirmResetTemplate": "Are you sure you want to reset this template to the default version? Your changes will be removed.",
    "templateReset": "Template reset to default",
    "couldNotEnableFeedError": "Could not enable feed: ",
    "uploadFailed": "Upload failed: ",
    "syncOverview": "Sync Overview",
    "errorSyncingApple": "Error syncing with Apple Calendar",
    "editService": "Edit Service",
    "confirmDisconnectMicrosoft": "Are you sure you want to disconnect Microsoft Calendar?",
    "singleProviderError": "You already have an active sync with another calendar. Disconnect the current calendar first.",
    "syncingWithApple": "Syncing with Apple Calendar...",
    "confirmDisableFeed": "Are you sure you want to disable the calendar feed? Existing subscriptions will stop working.",
    "couldNotSaveTimezone": "Could not save timezone",
    "workshopAddressHint": "Leave empty to use your company address for workshop appointments.",
    "serviceDeleted": "Service deleted",
    "smtpTestSuccess": "SMTP test successful! Check your inbox.",
    "confirmDeleteService": "Are you sure you want to delete this service?",
    "sending": "Sending...",
    "errors": "errors",
    "failedToDisconnect": "Failed to disconnect: ",
    "couldNotDisconnect": "Could not disconnect",
    "workshopAvailabilityFailed": "Failed to save workshop availability",
    "testEmailSending": "Test email is being sent...",
    "testEmailSent": "✅ Test email sent to your email address!",
    "accountDeletedRedirecting": "Account deleted successfully. Redirecting...",
    "couldNotEnableSync": "Could not enable sync",
    "connectionError": "Connection error. Please try again.",
    "confirmDisconnectGoogle": "Are you sure you want to disconnect Google Calendar? Your sync will be disabled and you will need to log in with Google again to reconnect.",
    "saving": "Saving...",
    "appleCalendarSavedWait": "Account saved successfully! It may take a few seconds for your calendars to appear.",
    "couldNotSaveService": "Could not save service",
    "couldNotGenerateNewLink": "Could not generate new link: ",
    "syncCompleteItems": "Sync complete! Items synchronized.",
    "confirmRemoveLogo": "Are you sure you want to remove your logo?",
    "deleteMyAccount": "Delete My Account",
    "passwordsDoNotMatch": "New passwords do not match",
    "appleDisconnected": "Apple Calendar disconnected",
    "sendTestEmail": "Send test email",
    "singleProviderMessage": "Your calendar is connected to {provider}. Disconnect {provider} first in the settings above before switching.",
    "failedToEnableSync": "Failed to enable sync: ",
    "couldNotRemoveLogo": "Could not remove logo: ",
    "loading": "Loading...",
    "couldNotSendTestEmail": "Could not send test email",
    "couldNotDisableFeed": "Could not disable feed",
    "failedToConnect": "Failed to connect: ",
    "appleCalendarConnected": "🍎 Apple Calendar connected successfully!",
    "logoUploaded": "Logo uploaded successfully!",
    "workshopProMessage": "Workshop availability is only available with a Pro subscription.",
    "selectCalendarFirst": "Please select a calendar first",
    "bccDisabled": "BCC copy disabled",
    "syncing": "Syncing...",
    "errorSendingTestEmail": "Error sending test email",
    "confirmCleanNotes": "This will clean up all customer and piano notes by removing duplicate text and repeated lines.\n\nDo you want to continue?",
    "enterAppleCredentials": "Please enter your Apple ID and app-specific password",
    "testEmailFailed": "❌ Test email failed: ",
    "couldNotSaveProfile": "Could not save profile",
    "appleSyncEnabled": "🍎 Apple Calendar sync enabled!",
    "linkCopied": "Link copied to clipboard!",
    "emailSettingsSaved": "Email settings saved",
    "dayAvailable": "Available",
    "syncRangeSaved": "Sync range saved. Calendar apps will update on next refresh.",
    "workshopAddress": "Workshop address",
    "companyProfileSaved": "Company profile saved!",
    "serviceUpdated": "Service updated!",
    "testEmailSentCheckInbox": "Test email sent! Check your inbox.",
    "couldNotLoadTemplate": "Could not load template",
    "enterEmailAddress": "Please enter your email address",
    "couldNotDeleteService": "Could not delete service",
    "generating": "Generating...",
    "lastSyncAt": "Last sync:"
  },
  "company": {
    "name": "Company name",
    "ownerName": "Owner name",
    "email": "Email",
    "phone": "Phone",
    "address": "Address",
    "street": "Street",
    "postalCode": "Zip code",
    "city": "City",
    "country": "Country",
    "kvk": "Business registration",
    "vat": "Tax ID",
    "iban": "Bank account",
    "postalCodePlaceholder": "10001",
    "cityPlaceholder": "New York",
    "website": "Website"
  },
  "email": {
    "title": "Email Notifications",
    "configured": "Email configured",
    "notConfigured": "Email not configured",
    "confirmations": "Confirmation emails",
    "confirmationsDesc": "Send confirmation when appointment is booked",
    "reminders": "Reminder emails",
    "remindersDesc": "Send reminder before appointment",
    "reminderTime": "Send reminder",
    "hoursBefore": "hours before",
    "cancellations": "Cancellation emails",
    "cancellationsDesc": "Notify customer when appointment is canceled",
    "newBookings": "New booking alerts",
    "newBookingsDesc": "Get notified when customers book appointments",
    "sendTest": "Send test email",
    "testSent": "Test email sent! Check your inbox."
  },
  "booking": {
    "title": "Online Booking",
    "enableBooking": "Enable booking link",
    "yourLink": "Your booking link",
    "copy": "Copy",
    "copied": "Copied!",
    "preview": "Preview",
    "slug": "Custom URL",
    "pageTitle": "Page title",
    "description": "Description",
    "minAdvance": "Minimum advance booking",
    "maxAdvance": "Maximum advance booking",
    "hours": "hours",
    "days": "days",
    "notAvailableOn": "Not available on",
    "noSlotsIn14Days": "No time found in the next 14 days.",
    "tryDifferentDate": "Try selecting a different starting date.",
    "saveAndContinue": "Save & continue",
    "skipPiano": "Skip",
    "continue": "Continue",
    "findTime": "Find time",
    "differentDate": "Different date",
    "confirmAppointment": "Confirm Appointment",
    "step2Title": "2. Customer details",
    "onRequest": "On request",
    "genericError": "Something went wrong. Please try again.",
    "customer": "Customer",
    "location": "Location",
    "bookingError": "Could not book appointment. Please try again.",
    "notesPlaceholder": "Extra information for this appointment...",
    "searchCustomerPlaceholder": "Search existing customer (name, email, city)...",
    "skipNoPiano": "Skip (no piano)",
    "email": "Email",
    "orAddNew": "or add new customer",
    "to": "to",
    "nameRequired": "Name *",
    "serialNumber": "SN",
    "customerLabel": "Customer:",
    "noAddress": "No address",
    "travelTime": "Travel time",
    "bookingInProgress": "Booking...",
    "selectDateFirst": "Please select a date first",
    "pageSubtitle": "Book a new appointment in 4 easy steps",
    "continueWithoutPiano": "Continue without piano →",
    "selectPianosDesc": "Select which piano(s) to service for this customer.",
    "noCustomersFound": "No customers found",
    "serviceLabel": "Service:",
    "dateTime": "Date & time",
    "piano": "Piano",
    "step4Title": "4. Confirm appointment",
    "step1Title": "1. Choose a service",
    "continueWithTime": "Continue with this time →",
    "preferredDate": "Preferred date",
    "notesOptional": "Notes (optional)",
    "from": "from",
    "success": "Appointment Booked!",
    "noPianosRegistered": "No pianos registered for this customer yet.",
    "saveCustomerError": "Could not save customer. Please try again.",
    "successText": "The appointment has been added to your calendar.",
    "customerSelected": "Customer selected",
    "checkingAvailability": "Checking availability...",
    "goToDashboard": "Go to Dashboard",
    "firstAvailableOn": "First available time on",
    "step3Title": "3. Choose date & time",
    "differentCustomer": "Different customer",
    "scheduleAppointment": "Schedule Appointment",
    "addPianosLater": "You can add pianos later on the Pianos page.",
    "grand": "Grand",
    "upright": "Upright",
    "newAppointment": "New Appointment",
    "travelTimeLabel": "Travel time",
    "service": "Service",
    "step2bTitle": "2b. Select piano",
    "pianosLabel": "Piano(s):",
    "phone": "Phone",
    "clickToSelect": "Click a time to select it"
  },
  "book": {
    "school": {
      "serialNumber": "Serial no.",
      "brand": "Brand",
      "location": "Location",
      "whichServiceForPianos": "Which service for the",
      "lastTuned": "Last tuned",
      "pianosSelected": "pianos selected",
      "selectedPianosTitle": "Selected pianos",
      "back": "Back",
      "selectPianos": "Select pianos",
      "nextChooseService": "Next: choose service",
      "chooseServiceSub": "Which service for the selected pianos?",
      "chooseService": "Choose service",
      "type": "Type",
      "pickDate": "Date & time",
      "selectPianosSub": "Check which pianos need tuning",
      "pianoOverview": "Piano overview",
      "nextChooseDate": "Next: choose date",
      "pianoOverviewSub": "Select the pianos that need tuning",
      "selectedPianos": "selected pianos?",
      "pickDateSub": "Choose when you want the appointment",
      "model": "Model",
      "scheduled": "Scheduled"
    },
    "linkInvalid": "This booking link is not valid",
    "selectPianoSub": "Choose the piano or grand piano",
    "notesOptional": "Notes (optional)",
    "selectPiano": "Select a piano",
    "availableTimesFor": "Available times for",
    "appointments": "Appointments",
    "loadingCalendar": "Loading calendar...",
    "sendConfirmation": "Send confirmation by email",
    "noTimesAvailable": "No available times",
    "theaterStep2": "Select the instrument (piano or grand piano)",
    "chooseServiceSub": "Select the desired service",
    "welcome": "Welcome",
    "notesSub": "Extra information for the technician",
    "loadingTimes": "Loading available times...",
    "confirmEmail": "A confirmation email has been sent",
    "bestChoice": "Best choice",
    "suggestedTimes": "Suggested times",
    "loading": "Loading...",
    "theaterInstructionsTitle": "How to book an appointment",
    "smartSuggestionsDesc": "Recommended moments based on location and schedule",
    "legendAvailable": "Available",
    "theaterStep1": "Choose the desired service (tuning, repair, etc.)",
    "notesPlaceholder": "Any notes or requests...",
    "contactForBooking": "No available times found. Please contact us to schedule an appointment.",
    "noSmartSuggestions": "No smart suggestions available",
    "available": "Available",
    "smartSuggestions": "Smart suggestions",
    "bookAppointment": "Book appointment",
    "calculatingSmart": "Calculating suggestions...",
    "theaterStep3": "Optionally describe the event in the notes (e.g. concert, rehearsal)",
    "chooseManualTime": "Choose manually",
    "moreOptions": "More options",
    "theaterStep4": "Select a date and time in the calendar",
    "chooseDateTime": "Choose date & time",
    "linkNotFound": "Booking link not found",
    "booked": "Booked!",
    "planHere": "Book here",
    "loadMoreSuggestions": "Load more suggestions",
    "chooseDateTimeSub": "Choose a suitable time",
    "firstAvailable": "First available",
    "appointmentsSub": "History & scheduled",
    "legendClosed": "Closed",
    "chooseService": "Choose a service",
    "preferOtherTime": "Prefer another time? Choose yourself",
    "legendFull": "Fully booked",
    "findingBestTimes": "Finding the best times...",
    "smartSearching": "We're finding the best options for you..."
  },
  "calendar": {
    "today": "Today",
    "week": "Week",
    "month": "Month",
    "day": "Day",
    "syncNow": "Sync now",
    "lastSync": "Last sync",
    "syncDirection": "Sync direction",
    "bothDirections": "Both directions",
    "toGoogle": "To Google only",
    "fromGoogle": "From Google only",
    "toApple": "To Apple only",
    "fromApple": "From Apple only",
    "months": [
      "January",
      "February",
      "March",
      "April",
      "May",
      "June",
      "July",
      "August",
      "September",
      "October",
      "November",
      "December"
    ],
    "monthsShort": [
      "Jan",
      "Feb",
      "Mar",
      "Apr",
      "May",
      "Jun",
      "Jul",
      "Aug",
      "Sep",
      "Oct",
      "Nov",
      "Dec"
    ],
    "days": [
      "Sunday",
      "Monday",
      "Tuesday",
      "Wednesday",
      "Thursday",
      "Friday",
      "Saturday"
    ],
    "daysShort": [
      "Sun",
      "Mon",
      "Tue",
      "Wed",
      "Thu",
      "Fri",
      "Sat"
    ],
    "noTitle": "No title",
    "allDay": "All day"
  },
  "publicBooking": {
    "postalCode": "Zip code",
    "postalCodePlaceholder": "e.g. 10001",
    "cityPlaceholder": "e.g. New York",
    "searchingAvailability": "Searching availability...",
    "analyzingCalendar": "Analyzing calendar...",
    "optimizingRoute": "Optimizing route...",
    "earliestAvailable": "Earliest available",
    "earlierOption": "Earliest available",
    "bestChoice": "Best Choice",
    "errorNotFound": "404",
    "phone": "Phone",
    "searchingTimes": "Searching for available times...",
    "step3Time": "Time",
    "booking": "Booking...",
    "sendEmail": "Send Email",
    "errorNotFoundText": "This booking link is not active or does not exist.",
    "outsideServiceArea": "Outside Service Area",
    "time": "Time",
    "email": "Email",
    "back": "← Back",
    "confirmAppointment": "Confirm Appointment",
    "timesOptimizedIntro": "These times are optimized for minimal travel time and efficient scheduling.",
    "appointmentScheduled": "Appointment Scheduled!",
    "choosePreferredTime": "Choose your preferred time",
    "min": "min",
    "city": "City",
    "findingBestTimes": "Finding the best times for your location...",
    "errorNotFoundTitle": "Booking page not found",
    "loading": "Loading...",
    "searchingTimesSubtitle": "This may take a moment",
    "bookingFailed": "Could not book appointment. Please try again.",
    "locationTooFar": "Your location is approximately <strong>{{travelTime}}</strong> away (max: {{maxAllowed}} min).",
    "yourDetails": "Your details",
    "chooseService": "Choose a service",
    "noAvailableTimes": "No available times found. Please try again later.",
    "noServicesAvailable": "No services available",
    "service": "Service",
    "findBestTimes": "Find best times →",
    "next": "Next →",
    "newAppointment": "New Appointment",
    "findBestTimesIntro": "We'll find the best appointment times based on your location.",
    "preferOtherTime": "Prefer a different time? Choose yourself",
    "backToBestChoice": "Back to best choice",
    "address": "Address (street + number)",
    "date": "Date",
    "pageTitle": "Book Appointment",
    "errorLoadingTimes": "Error loading available times. Please try again.",
    "loadingOptimalTimes": "Loading optimal times...",
    "addressPlaceholder": "Start typing an address...",
    "step2Details": "Details",
    "step1Service": "Service",
    "onRequest": "On request",
    "poweredBy": "Powered by",
    "name": "Name"
  },
  "common": {
    "save": "Save",
    "cancel": "Cancel",
    "delete": "Delete",
    "edit": "Edit",
    "add": "Add",
    "close": "Close",
    "confirm": "Confirm",
    "yes": "Yes",
    "no": "No",
    "loading": "Loading...",
    "error": "Error",
    "success": "Success",
    "search": "Search",
    "filter": "Filter",
    "all": "All",
    "none": "None",
    "required": "Required",
    "optional": "Optional",
    "understood": "Got it",
    "next": "Next",
    "start": "Start",
    "appointment": "Appointment",
    "title": "Title",
    "appointments_one": "{{count}} appointment",
    "total": "Total",
    "errorOccurred": "An error occurred. Please try again.",
    "pianos_other": "{{count}} pianos",
    "customers_other": "{{count}} customers",
    "customer": "Customer",
    "notes": "Notes...",
    "busy": "Busy...",
    "end": "End",
    "choose": "-- Choose --",
    "service": "Service",
    "errorLoading": "Error loading",
    "previous": "Previous",
    "errorSaving": "Error saving",
    "date": "Date",
    "internalNotes": "Internal notes...",
    "unknownError": "Unknown error",
    "saving": "Saving...",
    "back": "Back",
    "saveFailed": "Save failed",
    "selectDate": "Select date",
    "daysAgo_one": "{{count}} day ago",
    "appointments_other": "{{count}} appointments",
    "errorDeleting": "Error deleting",
    "daysAgo_other": "{{count}} days ago",
    "pianos_one": "{{count}} piano",
    "customers_one": "{{count}} customer",
    "time": "Time",
    "address": "Address",
    "or": "or",
    "more": "more",
    "at": "at",
    "of": "of",
    "unnamed": "Unnamed",
    "skipNav": "Skip to content"
  },
  "teamBooking": {
    "appointmentsToday": "appointments today",
    "reviewBooking": "Review Your Booking",
    "confirmBooking": "Confirm Booking",
    "tryAlternativeDates": "Try these alternative dates",
    "fullName": "Full Name",
    "dateTime": "Date & Time",
    "duration": "Duration",
    "searchCustomer": "Search Customer",
    "addressHelp": "Helps us assign the nearest available team member",
    "travelTime": "Travel time",
    "selectDateTime": "Select Date & Time",
    "email": "Email Address",
    "stepDetails": "Your Details",
    "addressPlaceholder": "Street, City",
    "service": "Service",
    "name": "Name",
    "bookingConfirmed": "Booking Confirmed!",
    "availableOptions": "Available Options",
    "yourDetailsSubtitle": "We need some information to confirm your booking",
    "yourAddress": "Your Address",
    "stepService": "Service",
    "minutes": "minutes",
    "stepDateTime": "Date & Time",
    "confirmationEmail": "A confirmation email has been sent to your email address.",
    "pageTitle": "Book Appointment - Team",
    "selectPiano": "Select Piano",
    "notes": "Additional Notes",
    "notesPlaceholder": "Any special requests or information...",
    "smartAssignmentInfo": "We'll suggest the best available team member based on your location and date",
    "phone": "Phone Number",
    "stepConfirm": "Confirm",
    "preferredDate": "Preferred Date",
    "noSlotsAvailable": "No available slots on this date",
    "selectServiceSubtitle": "Choose the service you need",
    "confirmationEmailLabel": "Confirmation Email",
    "reviewBookingSubtitle": "Please check all details before confirming",
    "findAvailableTimes": "Find Available Times",
    "yourDetails": "Your Details",
    "bestMatch": "Best Match",
    "selectService": "Select a Service",
    "location": "Location",
    "teamMember": "Team Member",
    "outsideServiceArea": "Outside our service area",
    "outOfZoneMessage": "Unfortunately, this address is outside the area we currently serve.",
    "contactUsDirectly": "Contact us directly:",
    "selectTimeFirst": "Please select a time slot first",
    "fillRequiredFields": "Please fill in name, email and address",
    "searchingTimes": "Searching for available times...",
    "noSlotsInComingWeeks": "No available time slots found in the coming weeks.",
    "preferOtherTime": "Prefer a different time? Choose yourself",
    "earliestOption": "Earliest",
    "backToBestChoice": "Back to best choice",
    "findBestTimesIntro": "Find best times",
    "addressStar": "Address *",
    "findBestTimes": "Find best times",
    "choosePreferredTime": "Choose your preferred time",
    "timesOptimizedIntro": "Times optimized for efficient routing",
    "loadingOptimalTimes": "Loading optimal times...",
    "confirmAppointment": "Confirm appointment"
  },
  "teams": {
    "myTeam": "My Team",
    "editMember": "Edit Member",
    "bookingSettings": "Booking Settings",
    "maxDistance": "Max Travel Distance (km)",
    "createFirstTeam": "Create your first team to enable smart team booking",
    "members": "members",
    "priorityHint": "Higher priority members are preferred for assignments",
    "linkCopied": "Link copied!",
    "manage": "Manage",
    "pageTitle": "Team Management - PianoPlanner",
    "enterDates": "Enter a start and end date",
    "enableBooking": "Enable Team Booking",
    "priority": "Priority (0-100)",
    "memberAddressHint": "Used for smart routing",
    "statusActive": "Active",
    "loading": "Loading...",
    "connectLinkCopied": "Connect link for {name} copied! Send this link to {name}.",
    "status": "Status",
    "settingsSaveFailed": "Could not save settings",
    "bookingDescPlaceholder": "e.g. Our team of experienced piano tuners is ready to help...",
    "absenceAddFailed": "Could not add absence",
    "memberName": "Name",
    "statusInactive": "Inactive",
    "teamMembers": "Team Members",
    "bookingDescription": "Booking Page Description",
    "bookingTitle": "Booking Page Title",
    "disconnectConfirm": "Disconnect Google Calendar for {name}?",
    "bookingDescriptionHint": "A brief description for customers",
    "memberAdded": "Member added",
    "title": "Team Management",
    "inactive": "Inactive",
    "enterTeamName": "Enter a team name",
    "createTeam": "Create Team",
    "bookingDisabled": "Bookings disabled",
    "absenceAdded": "Absence added",
    "save": "Save",
    "memberSaveFailed": "Could not save member",
    "workHours": "Work Hours",
    "disconnected": "Google Calendar disconnected for {name}",
    "icalDesc": "Each team member has a personal iCal link to view appointments (read-only) in their own calendar.",
    "bookingTitleHint": "Shown to customers on the booking page",
    "memberEmail": "Email",
    "memberAddress": "Home Address",
    "memberUpdated": "Member updated",
    "myTeamSubtitle": "Manage your piano tuners, work hours and booking link",
    "newMember": "New Member",
    "bookingDisabledMsg": "Enable bookings so customers can book online with your team.",
    "noTeamsYet": "No Teams Yet",
    "connectLinkFailed": "Could not create connection link",
    "icalGoogle": "Google: Settings → Other calendars → From URL",
    "workHoursHint": "Format: HH:MM-HH:MM",
    "icalOutlook": "Outlook: Add calendar → Subscribe from web",
    "absenceDeleteConfirm": "Delete absence?",
    "editTeam": "Edit Team",
    "enableBookingHint": "Allow customers to book with your team",
    "bookingLink": "Booking Link",
    "bookingToggleFailed": "Could not change bookings",
    "memberDeleteConfirm": "Are you sure you want to remove this team member?",
    "teamNamePlaceholder": "e.g. Your Company Name",
    "icalTitle": "Calendar subscription for team members",
    "absenceDeleteFailed": "Could not delete absence",
    "disconnectFailed": "Could not disconnect Google Calendar",
    "bookingTitlePlaceholder": "e.g. Book a tuning",
    "addMember": "Add Member",
    "subtitle": "Manage your teams and enable smart team booking",
    "absenceDeleted": "Absence deleted",
    "active": "Active",
    "bookingEnabled": "Bookings enabled",
    "memberRemoved": "Member removed",
    "settingsSaved": "Settings saved",
    "teamName": "Team Name",
    "memberRemoveFailed": "Could not remove member",
    "nameEmailRequired": "Name and email are required",
    "pianoTuners": "Piano Tuners",
    "newTeam": "New Team",
    "icalApple": "Apple: File → New Calendar Subscription → paste URL",
    "companyLogo": "Company Logo",
    "logoUploadHint": "Upload a custom team logo (overrides company logo)",
    "logoUploaded": "Logo uploaded",
    "logoRemoved": "Logo removed",
    "usingCompanyLogo": "Your company logo from Settings is used on the booking page.",
    "changeInSettings": "Change in Settings",
    "serviceArea": "Service Area",
    "noZone": "No zone",
    "enterAddressFirst": "Enter a home address above first",
    "clearZone": "Clear zone (available everywhere)",
    "geocodeFailed": "Could not find this address on the map",
    "serviceZone": "zone",
    "contactPhone": "Contact Phone",
    "contactPhonePlaceholder": "e.g. +31 6 12345678",
    "contactPhoneHint": "Shown to customers outside your service area",
    "contactEmail": "Contact Email",
    "contactEmailPlaceholder": "e.g. info@company.com",
    "dragToMove": "Drag to move zone center",
    "zoneHint": "Customers outside this radius cannot book this tuner",
    "teamLoadFailed": "Could not load team",
    "bookingActiveLabel": "Active",
    "copyButton": "Copy",
    "bookingDisabledLabel": "Off",
    "noMembersYet": "No team members yet",
    "vacationButton": "🏖️ Vacation",
    "sendAccessButton": "📱 Send Access",
    "lastActiveLabel": "Last active:",
    "neverLoggedIn": "Never logged in",
    "sendingStatus": "Sending...",
    "sentStatus": "Sent",
    "errorSending": "Error sending.",
    "justNow": "just now",
    "minutesAgo": "{{mins}} min ago",
    "hoursAgo": "{{hours}} hours ago",
    "yesterday": "yesterday",
    "daysAgo": "{{days}} days ago",
    "absencesTitle": "Absences",
    "noAbsences": "No absences planned",
    "scheduledAbsences": "Scheduled",
    "pastAbsences": "Past",
    "dateRangeSeparator": "to",
    "deleteAbsenceButton": "Delete",
    "memberLoadFailed": "Could not load members",
    "logoUploadFailed": "Could not upload logo",
    "logoRemoveFailed": "Could not remove logo",
    "magicLinkSent": "Magic link sent successfully!"
  },
  "actions": {
    "save": "Save",
    "cancel": "Cancel",
    "delete": "Delete",
    "edit": "Edit",
    "add": "Add",
    "viewCustomer": "View Customer",
    "navigate": "Navigate",
    "back": "Back",
    "next": "Next",
    "close": "Close",
    "confirm": "Confirm",
    "complete": "Complete",
    "createInvoice": "Create Invoice",
    "markAsDone": "Mark as done"
  },
  "completion": {
    "preferredHint": "⭐ This customer's preference",
    "payCash": "Paid in cash",
    "customerPreference": "⭐ This customer's preference",
    "payInvoice": "Create invoice",
    "payPin": "Paid by card",
    "payLater": "Invoice later",
    "title": "Complete appointment",
    "updatePianoDesc": "Last tuning date → today",
    "submit": "✅ Complete",
    "notesLabel": "Notes",
    "payNone": "No payment (warranty/service)",
    "updatePiano": "Update tuning",
    "paymentLabel": "Payment",
    "notesPlaceholder": "Optional note..."
  },
  "errors": {
    "notLoggedIn": "Not logged in",
    "notFound": "Not found",
    "serverError": "Server error",
    "networkError": "Network error",
    "invalidInput": "Invalid input",
    "couldNotComplete": "Could not complete appointment",
    "error": "Error",
    "connectionError": "Connection error"
  },
  "subscription": {
    "proRequired": "Invoicing is available from Pro plan and up"
  },
  "route": {
    "good": "Good",
    "travelTime": "Travel time",
    "poor": "Poor",
    "moderate": "Moderate",
    "excellent": "Excellent",
    "efficiency": "Route Efficiency"
  },
  "analysis": {
    "day": "Day",
    "minutesSaved": "min saved",
    "totalKm": "Total km",
    "trips": "Trips",
    "routeAnalysis": "Route Analysis",
    "timingRisk": "Timing too tight",
    "findBetterDay": "Find better day",
    "upgradeDesc": "Route Analysis is available from the Solo subscription.",
    "loading": "Loading analysis...",
    "grade": "Grade",
    "moveAppointment": "Move appointment",
    "savings": "savings",
    "week": "Week",
    "gradeD": "Needs improvement",
    "noAppointmentsDesc": "There are no appointments to analyze.",
    "upgradeButton": "Upgrade to Solo",
    "score": "Score",
    "timingTight": "Tight timing",
    "clusterSuggestion": "Cluster appointments",
    "routeOptimizationPossible": "Route optimization possible!",
    "total": "total",
    "longTrip": "Long",
    "gradeC": "Acceptable",
    "save": "save",
    "veryLongTrip": "Very long",
    "gradeB": "Good",
    "noAppointments": "No appointments",
    "critical": "CRITICAL",
    "appointments": "appointments",
    "tip": "TIP",
    "gradeF": "Inefficient",
    "later": "later",
    "shortTrip": "Short",
    "suggestions": "Suggestions",
    "gradeA": "Excellent",
    "analyze": "Analyze",
    "totalTime": "Total drive time",
    "thisWeek": "This week",
    "savingsPossible": "savings possible",
    "applyOptimization": "Apply",
    "mediumTrip": "Medium",
    "potentialSavings": "Potential savings",
    "zigzagWarning": "Zigzag route",
    "viewAllTimes": "View all times",
    "optimizations": "Optimizations",
    "viewReorder": "View reorder",
    "perDay": "Per day",
    "quickMove": "Quick move to",
    "high": "HIGH",
    "medium": "MEDIUM",
    "longTripWarning": "Long trip",
    "savingsThisWeek": "savings this week",
    "upgradeRequired": "Solo Feature",
    "errorLoading": "Error loading analysis",
    "viewAnalysis": "View analysis"
  },
  "time": {
    "today": "Today",
    "tomorrow": "Tomorrow",
    "yesterday": "Yesterday",
    "thisWeek": "This week",
    "nextWeek": "Next week",
    "never": "Never",
    "allDay": "All day",
    "justNow": "just now"
  },
  "login": {
    "title": "Log in",
    "welcome": "Welcome",
    "register": "Register",
    "email": "Email",
    "password": "Password",
    "confirmPassword": "Confirm password",
    "name": "Name",
    "forgotPassword": "Forgot password?",
    "forgotDesc": "Enter your email. You will receive a link to reset your password.",
    "sendResetLink": "Send reset link",
    "backToLogin": "← Back to login",
    "rememberMe": "Remember me",
    "loginWithGoogle": "Login with Google",
    "signupWithGoogle": "Sign up with Google",
    "createAccount": "Create account",
    "alreadyHaveAccount": "Already have an account?",
    "noAccount": "New here?",
    "loginLink": "Log in →",
    "joinBeta": "Join Beta",
    "joinBetaLink": "Join the beta →",
    "betaAccess": "Beta Access",
    "betaDesc": "Join our beta program and get <strong>14 days free access</strong> to all features. Help shape the future of PianoPlanner!",
    "companyOptional": "Company name (optional)",
    "namePlaceholder": "John Smith",
    "passwordMin": "Min. 8 characters",
    "or": "or",
    "acceptTerms": "I agree to the <a href=\"/terms.html\" target=\"_blank\">Terms & Conditions</a>, the <a href=\"/privacy.html\" target=\"_blank\">Privacy Policy</a> and the <a href=\"/dpa.html\" target=\"_blank\">Data Processing Agreement</a>",
    "acceptTermsRequired": "You must agree to the Terms & Conditions, Privacy Policy and Data Processing Agreement.",
    "hintLogin": "Welcome back!",
    "hintRegister": "Create an account in 30 seconds",
    "trustFree": "1 month free trial",
    "trustNoCard": "No credit card required",
    "trustGdpr": "GDPR compliant & data in EU",
    "trustCancel": "Cancel anytime",
    "sending": "Sending...",
    "resetLinkSent": "If this email address is known, you will receive a reset link.",
    "creatingAccount": "Creating account...",
    "awaitingApproval": "Account created! Please wait for admin approval. You'll receive an email when your account is activated.",
    "loginFailed": "Login failed",
    "loggingIn": "Logging in...",
    "somethingWentWrong": "Something went wrong. Please try again.",
    "registerLink": "Create an account →",
    "accountCreatedBtn": "Account Created!",
    "googleRecommended": "Recommended — direct access to calendar sync",
    "googleRecommendedSignup": "Fastest way — ready with calendar sync instantly",
    "awaitingApprovalBtn": "Awaiting Approval",
    "passwordTooShort": "Password must be at least 8 characters.",
    "accountCreated": "Account created! You can now log in with your credentials.",
    "welcomeBack": "Welcome back! Redirecting..."
  },
  "pricing": {
    "title": "Pricing",
    "subtitle": "Simple, transparent pricing",
    "monthly": "per month",
    "yearly": "per year",
    "startTrial": "Start free trial",
    "subscribe": "Subscribe",
    "currentPlan": "Current plan",
    "features": "Features",
    "unlimited": "Unlimited",
    "support": "Support",
    "trial": "Trial",
    "trialDays": "day free trial",
    "exVat": "excl. VAT",
    "soloFeature13": "Route Fill (fill schedule gaps)",
    "proFeature4": "Mileage tracking (tax-proof)",
    "compareCustomers": "Customers & appointments",
    "premiumFeature5": "Deadline overview",
    "freeHintLink": "Start with our free entry plan.",
    "compareTheater": "Theater/venue hours",
    "mostPopular": "Most Popular",
    "startTagline": "Smart scheduling & routes",
    "trySolo": "Start free trial",
    "perMonth": "/ month",
    "compareReminders": "Email reminders",
    "proName": "Pro",
    "compareiCal": "Calendar export (iCal)",
    "proFeature3": "1-click invoicing with payment link",
    "startFeature1": "Unlimited customers & appointments",
    "compareTeamMembers": "Extra tuners",
    "compareMagicLink": "Magic Link portal",
    "startFeature3": "Online booking page",
    "premiumName": "Premium",
    "premiumFeature3": "Time tracking & capacity planning",
    "faq1Answer": "Yes! All paid plans include a 1-month free trial. No credit card required. After the month you can choose to pay or fall back to the free plan.",
    "serverText": "Enterprise-grade security. GDPR compliant. Data encrypted at rest and in transit.",
    "proFeature3sub": "PDF + credit card via Stripe",
    "startFeature9": "CSV & Gazelle import",
    "faq2Answer": "Your data is yours. You can export everything before canceling. After cancellation, your account reverts to the Free plan.",
    "compareMileage": "Mileage tracking",
    "faqSubtitle": "Everything you need to know about PianoPlanner.",
    "invoiceHighlightDesc": "Create invoices from your calendar, send them with PDF and payment link. Your customer pays directly via credit card or PayPal. Available from Pro.",
    "getStartedFree": "Get started free",
    "premiumFeature2": "Workshop project planner",
    "premiumFeature6": "Team dashboard & smart assignment",
    "foreverFree": "Forever free",
    "comparePwa": "PWA mobile app",
    "startFeature6": "Smart Suggestions",
    "faq4Answer": "PianoPlanner syncs two-way with Google Calendar, Apple Calendar, and Microsoft 365. Appointments appear in real-time across all your devices.",
    "premiumFeature6sub": "+ €15 per extra tuner/team member",
    "teamsName": "Teams",
    "teamsTagline": "Workshop, projects & team",
    "teamsFeature1": "Everything in Pro, plus:",
    "teamsFeature2": "Workshop project planner",
    "teamsFeature3": "Time tracking & capacity planning",
    "teamsFeature4": "Theater/venue hours",
    "teamsFeature5": "Deadline overview",
    "teamsFeature6": "Team dashboard & smart assignment",
    "teamsFeature7": "Magic Link portal for tuners",
    "teamsFeature7sub": "Incl. 5 tuners · + €15 per extra tuner",
    "footerFeature1": "1 month free",
    "startFeature4": "Email reminders & templates",
    "compareTitle": "Compare plans",
    "faq3Question": "Can I change plans later?",
    "compareProjects": "Workshop project planner",
    "serverTitle": "Secure cloud, trusted company",
    "compareAccounting": "Accounting integration",
    "startFeature7": "Calendar export (iCal)",
    "proFeature1": "Everything in Start, plus:",
    "compareSmart": "Smart Suggestions",
    "faq3Answer": "Absolutely. Upgrade or downgrade anytime. Changes take effect immediately and the new amount applies from the next billing cycle.",
    "compareTimetrack": "Time tracking",
    "compareBooking": "Online booking page",
    "compareCapacity": "Capacity planning",
    "premiumFeature4": "Theater/venue hours",
    "compareTeamDashboard": "Team dashboard & assignment",
    "proFeature5": "Accounting integration (QuickBooks, Xero, ...)",
    "compareImport": "CSV & Gazelle import",
    "independenceTipTitle": "Break free from Big Tech?",
    "faqTitle": "Frequently Asked Questions",
    "compareInvoicing": "Invoicing + payment link",
    "invoiceHighlightTitle": "Invoicing with instant payment link",
    "faq1Question": "Can I try before I buy?",
    "compareSmtp": "Own email (SMTP)",
    "premiumTagline": "Workshop, projects & team",
    "compareRoute": "Route optimization",
    "compareCalSync": "2-way calendar sync",
    "footerFeature4": "GDPR compliant",
    "freeHint": "Just starting or up to 25 customers?",
    "startFeature5": "Custom email domain (SMTP)",
    "startName": "Start",
    "independenceTipText": "With just the Start plan, you manage everything in PianoPlanner and generate an iCal link that works with any calendar app. No Google, Apple, or Microsoft account needed.",
    "faq4Question": "How does calendar sync work?",
    "proTagline": "Full sync & automation",
    "proFeature2": "2-way sync Google, Apple & Microsoft",
    "serverLocation": "Your data is stored securely on encrypted cloud servers",
    "footerFeature2": "No credit card required",
    "startFeature8": "PWA mobile app",
    "compareFeature": "Feature",
    "footerFeature3": "Cancel anytime",
    "startFeature2": "Route optimization & Route Fill",
    "faq2Question": "What happens to my data if I cancel?",
    "premiumFeature1": "Everything in Pro, plus:",
    "teamsHint": "More than 5 tuners?",
    "teamsHintLink": "Contact us for a custom quote."
  },
  "billing": {
    "title": "Subscription",
    "currentPlan": "Current plan",
    "nextBilling": "Next billing",
    "paymentMethod": "Payment method",
    "updatePayment": "Update payment",
    "cancelSubscription": "Cancel subscription",
    "reactivate": "Reactivate",
    "active": "Active",
    "trial": "Trial",
    "expired": "Expired",
    "canceled": "Canceled",
    "subtitle": "Manage your subscription and invoices",
    "startSubscription": "Start subscription",
    "choosePlan": "Choose your plan",
    "perMonthVat": "/month + VAT",
    "soloFeature1": "Unlimited customers & appointments",
    "soloFeature2": "Email reminders & templates",
    "soloFeature3": "Route optimization",
    "soloFeature4": "Online booking page",
    "proFeatureAll": "Everything in Solo, plus:",
    "proFeature1": "2-way calendar sync",
    "proFeature2": "Mileage tracking (tax-proof)",
    "proFeature3": "Invoicing with payment link",
    "selectPlanContinue": "Select a plan to continue",
    "whatsIncluded": "What's included",
    "allPlansInclude": "All plans include:",
    "featureUnlimited": "Unlimited customers & appointments",
    "featureEmail": "Email reminders & templates",
    "featureSMTP": "Custom email domain (SMTP)",
    "featureRoute": "Route optimization",
    "featureBooking": "Online booking page",
    "featurePWA": "PWA mobile app",
    "featureSmart": "Smart Suggestions",
    "featureImport": "CSV & Gazelle import",
    "featureIcal": "Calendar export (iCal)",
    "featureEU": "EU servers (GDPR compliant)",
    "proAdds": "Pro plan adds:",
    "proFeatureSync": "2-way calendar sync (Google, Apple, Microsoft)",
    "proFeatureKm": "Mileage tracking (tax-proof)",
    "proFeatureInvoice": "Invoicing with payment link",
    "proFeatureAccounting": "Accounting integration",
    "proFeatureSupport": "Priority support",
    "needHelp": "Need help?",
    "needHelpDesc": "Do you have questions about your subscription or invoices? Contact us.",
    "contactUs": "Contact us",
    "statusLabel": "Status",
    "checkoutError": "Could not start checkout.",
    "paymentCancelledDesc": "No problem! You can try again later. Nothing was charged.",
    "trialExpired": "Your trial has expired",
    "teamsFeature3": "iCal feed per tuner",
    "teamsFeature1": "Up to 5 piano tuners",
    "perMonth": "month",
    "somethingWentWrong": "Something went wrong. Please try again.",
    "noSubscription": "No subscription",
    "confirmationEmail": "You will receive a confirmation email. Invoices can be found below.",
    "teamsFeatureAll": "Everything in Pro, plus:",
    "teamsFeature2": "Team dashboard & smart assignment",
    "paymentCancelled": "Payment cancelled",
    "welcomePlan": "Welcome to PianoPlanner",
    "portalError": "Could not open subscription management.",
    "vat": "VAT",
    "daysLeftTrial": "days left in your trial",
    "paymentSuccess": "Your payment was successful. Your subscription is now active for",
    "upgradeAnytime": "You can upgrade anytime – no need to wait for your trial to end!",
    "upgradeNow": "Upgrade now",
    "price": "Price",
    "daysLeft": "days left",
    "loadError": "Could not load subscription data.",
    "likePianoPlanner": "Like PianoPlanner?",
    "manageSubscription": "Manage subscription"
  },
  "import": {
    "title": "Import Data",
    "selectSource": "Select Import Source",
    "selectSourceDesc": "Choose where you want to import your customer data from.",
    "step": {
      "source": "Source",
      "upload": "Upload",
      "preview": "Preview",
      "import": "Import"
    },
    "external": {
      "desc": "Piano service software"
    },
    "csv": {
      "desc": "Generic CSV file"
    },
    "uploadFile": "Upload File",
    "uploadFileDesc": "Upload your export file (CSV format).",
    "dropFile": "Drop your file here",
    "orClick": "or click to browse",
    "previewData": "Preview Data",
    "previewDesc": "Review the data before importing.",
    "totalRecords": "Total Records",
    "activeClients": "Active Clients",
    "inactiveClients": "Inactive Clients",
    "withEmail": "With Email",
    "th": {
      "name": "Name",
      "email": "Email",
      "phone": "Phone",
      "city": "City",
      "status": "Status"
    },
    "options": "Import Options",
    "opt": {
      "activeOnly": "Only import active clients",
      "activeOnlyDesc": "Skip clients marked as inactive",
      "skipDuplicates": "Skip duplicates",
      "skipDuplicatesDesc": "Skip clients with email addresses already in your database",
      "includeCompany": "Include company name",
      "includeCompanyDesc": "Add company name to customer name (e.g., \"Company - John Doe\")"
    },
    "importing": "Importing...",
    "complete": "Import Complete!",
    "failed": "Import Failed",
    "partialComplete": "Import Partially Complete",
    "successMessage": "Successfully imported {{count}} customers.",
    "partialMessage": "Imported {{imported}} customers with {{errors}} errors.",
    "noImports": "No customers were imported.",
    "imported": "Imported",
    "skipped": "Skipped",
    "errors": "Errors",
    "viewCustomers": "View Customers",
    "importMore": "Import More",
    "undoImport": "Undo Import",
    "undone": "Import Undone",
    "undoneMessage": "Successfully deleted {{count}} records.",
    "next": "Next",
    "back": "Back",
    "cancel": "Cancel",
    "preview": "Preview",
    "startImport": "Start Import",
    "error": {
      "csvOnly": "Please upload a CSV file",
      "parse": "Error parsing CSV file"
    },
    "deleteImportedData": "Delete imported data",
    "backToImport": "Back to import",
    "analyzeFile": "Analyze File",
    "importContacts": "Import Contacts",
    "importAppointments": "Import Appointments",
    "viewAgenda": "View Agenda",
    "filterLinked": "Linked",
    "filterNoCustomer": "No customer",
    "filterValid": "Valid",
    "filterNoLink": "No link",
    "gazelleTitle": "Gazelle Import Wizard - PianoPlanner",
    "step2Desc": "Upload pianos.csv",
    "filterAll": "All",
    "deleteImported": "Delete imported data",
    "manager": {
      "title": "Import Manager",
      "empty": "No imports found",
      "back": "Back",
      "desc": "Manage your previous imports",
      "loading": "Loading..."
    },
    "optSkipExisting": "Skip existing customers",
    "step3Desc": "Upload events.csv (optional)",
    "step3Title": "Import Appointments",
    "step4Desc": "View results",
    "orClickBrowse": "or click to browse",
    "eventsDesc": "Upload your Gazelle events.csv file. Appointments will be linked to customers and pianos. This is optional - you can skip this step.",
    "skipAndFinish": "Finish without appointments →",
    "optSkipExistingDesc": "Skip customers that already exist (based on email)",
    "dropEvents": "Drop events.csv here",
    "optCreateCustomersDesc": "Automatically create customers for pianos without a match",
    "filterSkip": "⚠ Skip",
    "eventsTitle": "Step 3: Import Appointments",
    "importPianos": "Import Pianos",
    "backToSettings": "Back to Settings",
    "importEvents": "Import Appointments",
    "importCustomers": "Import Customers",
    "skipStep": "Skip step →",
    "step1Title": "Import Customers",
    "step1Desc": "Upload clients.csv",
    "gazelle": {
      "desc": "Import data from Gazelle"
    },
    "filterError": "✗ Error",
    "pianosTitle": "Step 2: Import Pianos",
    "pianosDesc": "Upload your Gazelle pianos.csv file. Pianos will be automatically linked to customers via Gazelle ID.",
    "pianos": "Pianos",
    "completedDesc": "Your Gazelle data has been imported to PianoPlanner.",
    "optCreateCustomers": "Create missing customers",
    "gazelleWizard": "Gazelle Import Wizard",
    "customers": "Customers",
    "viewPianos": "View Pianos",
    "dropClients": "Drop clients.csv here",
    "events": "Appointments",
    "toDashboard": "Go to Dashboard",
    "completed": "Import Complete!",
    "customersTitle": "Step 1: Import Customers",
    "dropPianos": "Drop pianos.csv here",
    "step2Title": "Import Pianos",
    "step4Title": "Complete",
    "customersDesc": "Upload your Gazelle clients.csv file. We'll validate each record and show exactly what will be imported."
  },
  "emailTemplates": {
    "tabConfirmation": "Confirmation",
    "tabReminder": "Reminder",
    "tabCancellation": "Cancellation",
    "tabNotification": "Notification",
    "tabInvitation": "Invitation",
    "modeVisual": "Visual",
    "modeHtml": "HTML",
    "varAll": "All",
    "varCustomer": "Customer",
    "varAppointment": "Appointment",
    "varPiano": "Piano",
    "varInvitation": "Invitation",
    "varCompany": "Company",
    "resetDefault": "Reset to Default",
    "sendTest": "Send Test",
    "trialNudge": {
      "expired": {
        "noInvoicing": "No invoicing",
        "body": "Your 30-day trial has ended. Your account is now on the free plan.",
        "whatChanges": "What changes?",
        "noReminders": "No automatic reminders",
        "dataSafe": "Your data ({{customers}} customers, {{pianos}} pianos) is safe",
        "greeting": "Hi {{name}},",
        "ctaButton": "Upgrade now",
        "subject": "Your PianoPlanner trial has expired",
        "cta": "Upgrade at any time to instantly reactivate all features.",
        "noRoute": "No route optimization",
        "freeLimit": "Up to 25 customers and 50 appointments/year on the free plan",
        "noSync": "No calendar sync"
      },
      "day7": {
        "body": "You've been using PianoPlanner for a week now — great to have you! 🎹",
        "statsTitle": "Your usage so far:",
        "ctaButton": "Go to PianoPlanner",
        "statsAppointments": "{{count}} appointment(s) scheduled",
        "cta": "If you have any questions, just reply to this email. We're happy to help!",
        "greeting": "Hi {{name}},",
        "statsPianos": "{{count}} piano(s) registered",
        "statsCustomers": "{{count}} customer(s) created",
        "footer": "You have {{daysLeft}} days left in your trial. After your trial, you'll always have access to the free plan.",
        "subject": "How's it going with PianoPlanner, {{name}}?"
      },
      "day28": {
        "body": "Your trial expires the day after tomorrow.",
        "greeting": "Hi {{name}},",
        "ctaButton": "Upgrade now",
        "warning": "You'll immediately lose access to route optimization, calendar sync, invoicing and automatic reminders.",
        "dataSafe": "Your data ({{customers}} customers, {{pianos}} pianos) is safely stored. You can always upgrade to reactivate everything.",
        "subject": "🔔 2 days left — your PianoPlanner Pro access ends soon"
      },
      "lastchance": {
        "ctaButton": "Back to PianoPlanner",
        "tip": "With the Solo plan (€24.50/mo) you get everything you need: unlimited customers, route optimization and automatic reminders.",
        "footer": "This is the last reminder we'll send. You can always upgrade on your own via billing.",
        "cta": "Upgrade today and get instant access to all features again.",
        "dataWaiting": "You have {{customers}} customers and {{pianos}} pianos in your account. That data is waiting for you.",
        "greeting": "Hi {{name}},",
        "subject": "We miss you! Come back to PianoPlanner 🎹",
        "body": "It's been a week since your trial expired. We hope you enjoyed the PianoPlanner experience!"
      },
      "banner": {
        "upgradeNow": "Upgrade now",
        "daysLeft": "{{days}} days left in your trial — upgrade to keep everything",
        "endingSoon": "{{days}} day(s) left — your Pro access ends soon!",
        "upgrade": "Upgrade now",
        "freePlan": "Free plan — upgrade for route optimization, calendar sync and more",
        "viewPlans": "View plans",
        "expired": "Your trial has expired — upgrade to get all features back",
        "welcomeDays": "Welcome! You have {{days}} days to explore everything"
      },
      "day25": {
        "greeting": "Hi {{name}},",
        "body": "In 5 days your trial expires and you'll lose access to the Pro features you're currently using.",
        "cta": "Upgrade now and keep everything you've built.",
        "ctaButton": "Upgrade now — from €24.50/mo",
        "warning": "Route optimization, reminders, calendar sync and invoicing won't be available in the free plan.",
        "subject": "⏳ 5 days left — your PianoPlanner trial is ending"
      },
      "day20": {
        "body": "Your trial expires in 10 days. Here's what you've accomplished so far:",
        "loseAccess": "After your trial, you'll lose access to:",
        "statsCustomers": "{{count}} customer(s)",
        "cta": "With the Solo plan (€24.50/mo) you keep everything, or upgrade to Pro (€39.50/mo) for the full experience.",
        "statsEmails": "{{count}} emails sent",
        "loseCalendarSync": "Two-way calendar sync",
        "greeting": "Hi {{name}},",
        "ctaButton": "View plans",
        "subject": "10 days left in your PianoPlanner trial",
        "loseInvoicing": "Invoicing & mileage tracking",
        "loseReminders": "Automatic reminders",
        "statsAppointments": "{{count}} appointment(s)",
        "loseRoute": "Route optimization & Smart Suggestions",
        "footer": "Your data is always safely stored, even if you don't upgrade (yet)."
      }
    },
    "cancellation": {
      "title": "Appointment Cancelled",
      "regards": "Kind regards,",
      "reschedule": "Would you like to reschedule? Contact us or book a new appointment online.",
      "intro": "Your appointment has been cancelled:",
      "subject": "Cancellation: {{service}} on {{date}}",
      "greeting": "Dear {{customerName}},"
    },
    "teamBookingConfirmation": {
      "teamMember": "Team member",
      "regards": "Kind regards,",
      "time": "Time",
      "intro": "Your appointment has been confirmed. One of our team members will be happy to visit.",
      "subject": "Confirmation: {{service}} with {{teamMember}} on {{date}}",
      "service": "Service",
      "date": "Date",
      "location": "Location",
      "questions": "Do you have questions? Feel free to contact us.",
      "greeting": "Dear {{customerName}},",
      "notes": "Your notes",
      "title": "Appointment Confirmed"
    },
    "reminder": {
      "intro": "This is a reminder for your appointment:",
      "subject": "Reminder: {{service}} on {{date}}",
      "inHours": "in {{hours}} hours",
      "regards": "Kind regards,",
      "greeting": "Dear {{customerName}},",
      "inDays": "in {{days}} days",
      "lookingForward": "We look forward to seeing you!",
      "subtitle": "Your appointment is tomorrow",
      "tomorrow": "tomorrow",
      "title": "Reminder"
    },
    "subscriptionEmail": {
      "footer": "PianoPlanner • You will receive a monthly invoice for your subscription.",
      "inclVat": "incl. {{pct}}% VAT",
      "subtitle": "Your subscription has been successfully activated",
      "reverseCharge": "VAT reverse charged",
      "dashboard": "Go to your Dashboard",
      "active": "Active ✓",
      "amount": "Amount",
      "intro": "Thank you for your trust in PianoPlanner! Your payment has been received and your <strong>{{plan}}</strong> subscription is now active.",
      "plan": "Plan",
      "status": "Status",
      "greeting": "Dear {{name}},",
      "title": "Welcome to {{plan}}!",
      "manage": "You can manage your subscription at any time via the settings in PianoPlanner. Have questions? Feel free to contact us.",
      "perMonth": "/month",
      "exclVat": "excl. VAT",
      "subject": "Welcome to {{plan}}! 🎹"
    },
    "variableDescriptions": {
      "location": "Appointment location/address",
      "companyAddress": "Your company address",
      "bookingLink": "Customer's personal booking link",
      "daysSinceTuning": "Days since last tuning",
      "pianoBrand": "Piano brand (e.g. Steinway)",
      "time": "Appointment time",
      "companyPhone": "Your phone number",
      "reminderNumber": "Sequential reminder number (1, 2, 3...)",
      "serviceInterval": "Recommended tuning interval in months",
      "pianoSerial": "Piano serial number",
      "notes": "Notes/comments",
      "pianoLocation": "Piano location (e.g. living room)",
      "pianoType": "Type (grand/upright)",
      "pianoModel": "Piano model",
      "customerPhone": "Customer's phone",
      "customerEmail": "Customer's email",
      "companyName": "Your company name",
      "companyEmail": "Your email address",
      "date": "Appointment date",
      "customerAddress": "Customer's address",
      "pianoBuildYear": "Piano build year",
      "customerName": "Customer's name",
      "pianoColor": "Colour/finish of the piano",
      "monthsSinceTuning": "Months since last tuning",
      "lastTuning": "Date of last tuning",
      "unsubscribeLink": "Unsubscribe link for reminders",
      "companyLogo": "Your company logo (as image)",
      "service": "Service name"
    },
    "newBooking": {
      "openPianoPlanner": "Open PianoPlanner to view this appointment",
      "subtitle": "A new appointment has been booked",
      "customerDetails": "Customer",
      "title": "New Appointment",
      "appointmentDetails": "Appointment Details",
      "customerNote": "Customer note",
      "subject": "New booking: {{customerName}} - {{service}}"
    },
    "passwordReset": {
      "button": "Reset password",
      "intro": "You have requested to reset your password. Click the button below to set a new password.",
      "expiry": "This link is valid for 1 hour. If you did not make this request, you can ignore this email.",
      "subject": "Reset password - PianoPlanner",
      "title": "Reset password",
      "requestMessage": "If this email address is registered with us, you will receive a reset link.",
      "greeting": "Hello {{name}},"
    },
    "bookingInvitation": {
      "greeting": "Dear {{customerName}},",
      "title": "Book an Appointment",
      "regards": "Kind regards,",
      "subtitle": "Easy online booking",
      "bookButton": "Book Appointment",
      "subject": "Invitation to book an appointment",
      "intro": "I would like to invite you to schedule an appointment. You can easily choose a suitable time using the link below.",
      "linkNote": "Or copy this link:"
    },
    "tuningInvitation": {
      "lastTuning": "Last tuning",
      "months": "months",
      "recommendedInterval": "Recommended interval",
      "piano": "Piano",
      "unknown": "Unknown",
      "greeting": "Dear {{customerName}},",
      "title": "Time for a Tuning",
      "subject": "Time for a tuning: your {{piano_brand}} {{piano_model}}",
      "unsubscribeText": "Stop receiving reminders",
      "bookNow": "Easily schedule your next tuning using the link below:",
      "bookButton": "Book an appointment now",
      "regards": "Kind regards,",
      "intro": "It has been a while since your piano was last tuned. To keep your instrument in optimal condition, it is time for maintenance.",
      "timeElapsed": "Time elapsed",
      "footer": "Professional piano tuning",
      "every": "every",
      "subtitle": "Your piano deserves the best care"
    },
    "teamMemberNotification": {
      "closing": "Good luck!",
      "customerInfo": "Customer details",
      "title": "New Appointment",
      "footer": "This appointment was automatically assigned based on availability and location",
      "email": "Email",
      "intro": "A new appointment has been assigned to you via the team booking system.",
      "travelTime": "Travel time from your previous appointment",
      "greeting": "Hi {{teamMember}},",
      "phone": "Phone",
      "customerNotes": "Customer notes",
      "name": "Name",
      "minutes": "minutes",
      "subtitle": "Automatically assigned via team booking",
      "location": "Location",
      "time": "Time",
      "subject": "New appointment assigned: {{service}} on {{date}}",
      "date": "Date",
      "smartAssignment": "Smart assignment:",
      "service": "Service"
    },
    "rescheduleEmail": {
      "location": "Location:",
      "to": "To:",
      "from": "From:",
      "badge": "Reschedule confirmed",
      "ownerIntro": "has rescheduled their appointment:",
      "oldTime": "Previous time",
      "greeting": "Dear {{name}},",
      "ownerSubject": "{{name}} rescheduled: {{date}} {{time}}",
      "title": "Appointment rescheduled",
      "ownerTitle": "Appointment rescheduled by customer",
      "intro": "Your appointment has been successfully rescheduled.",
      "service": "Service:",
      "regards": "Kind regards,",
      "subject": "Appointment rescheduled: {{service}} — {{date}}"
    },
    "tabs": {
      "cancellation": "Cancellation",
      "confirmation": "Confirmation",
      "newBooking": "New Booking",
      "reminder": "Reminder",
      "invitation": "Invitation"
    },
    "confirmation": {
      "intro": "Your appointment has been confirmed. Here are all the details.",
      "rescheduleText": "Doesn't the time suit you? You can reschedule your appointment online.",
      "buildYear": "Year built",
      "time": "Time",
      "confirmed": "Confirmed",
      "service": "Service",
      "questions": "Do you have questions? Feel free to contact us.",
      "subject": "Confirmation: {{service}} on {{date}}",
      "pianoLocation": "Piano location",
      "rescheduleButton": "Reschedule appointment",
      "date": "Date",
      "piano": "Piano",
      "instrument": "Instrument",
      "details": "Appointment details",
      "location": "Location",
      "pianoType": "Type",
      "address": "Address",
      "regards": "Kind regards,",
      "title": "Appointment Confirmed",
      "notes": "Notes",
      "greeting": "Dear {{customerName}},",
      "serialNumber": "Serial number"
    },
    "bccToSelfDesc": "Automatically receive a copy of all emails sent to customers (confirmations, reminders, cancellations, invoices). Useful to verify what your customers receive.",
    "helpBanner": {
      "step3Desc": "Check the live preview on the right. Send a test email to yourself to see the result.",
      "subtitle": "Customize your customer emails in 3 easy steps",
      "title": "Get started with the Email Editor",
      "step3Title": "Save & test",
      "tip": "Tip: Variables like {{customerName}} are automatically replaced with real customer details when sending.",
      "step1Desc": "Click above on the email type you want to customize (confirmation, reminder, etc.)",
      "step2Desc": "Use the 🎨 Visual mode to format text like in Word. Click on variables to insert customer details.",
      "step2Title": "Edit visually or in HTML",
      "step1Title": "Choose a template"
    },
    "invoiceEmail": {
      "paySecure": "Pay securely via credit card, PayPal or other methods",
      "payButton": "💳 Pay now"
    },
    "subtitle": "Customize the emails sent to your customers",
    "title": "Email Templates",
    "bccToSelf": "Copy to myself (BCC)"
  },
  "support": {
    "pageTitle": "Support - PianoPlanner",
    "title": "Support",
    "subtitle": "Report a problem or ask a question",
    "backToDashboard": "Back to Dashboard",
    "subjectLabel": "Subject",
    "subjectPlaceholder": "Brief description of the issue",
    "typeLabel": "Report type",
    "typeBug": "🐛 Bug / Error",
    "typeQuestion": "❓ Question",
    "typeFeature": "💡 Feature request",
    "typeOther": "📋 Other",
    "priorityLabel": "Priority",
    "priorityLow": "Low",
    "priorityMedium": "Medium",
    "priorityHigh": "High",
    "descriptionLabel": "Description",
    "descriptionPlaceholder": "Describe the problem in as much detail as possible. What were you doing? What did you expect? What happened?",
    "descriptionHint": "Tip: The more details, the faster we can help you",
    "screenshotsLabel": "Screenshots (optional)",
    "dropFilesHere": "Drop files here or",
    "browse": "browse",
    "fileLimit": "Max 5 files, each max 5 MB (images or PDF)",
    "submitButton": "Submit report",
    "thankYou": "Thank you for your report!",
    "successMessage": "We have received your message and will contact you as soon as possible.",
    "sending": "Sending...",
    "sendFailed": "Sending failed",
    "sendError": "Error sending: ",
    "maxFilesError": "Maximum 5 files allowed",
    "fileTooLarge": "{file} is too large (max 5 MB)",
    "invalidFileType": "{file} is not an image or PDF"
  },
  "cookieBanner": {
    "message": "We use cookies to improve your experience. By continuing to use this site, you agree to our",
    "privacyLink": "Privacy Policy",
    "accept": "Accept",
    "decline": "Decline"
  },
  "pwaLauncher": {
    "customers": "Customers",
    "loginSubtitle": "Log in to sync",
    "agenda": "Agenda",
    "smartAppointment": "Smart Appointment",
    "shareLink": "Share Link",
    "login": "Login",
    "subtitle": "Your piano business",
    "loading": "Loading...",
    "sync": "Sync",
    "pianos": "Pianos"
  },
  "creator": {
    "signatureBye": "Kind regards,",
    "heroSubtitle": "The story behind PianoPlanner",
    "smartText": "The core of PianoPlanner is simple: I want to see at a glance whether I'm making money or wasting time. I also don't want to spend too much time in the car and want to use my time effectively. That's why we developed Smart Appointments.",
    "aboutPianoPlanner": "About PianoPlanner",
    "nlTitle": "Built by a piano tuner",
    "beginTitle": "The Beginning",
    "signatureTitle": "PianoPlanner & Fellow Piano Technician",
    "codeText2": "In my youthful enthusiasm, I then threw away his physical card file, much to my father's shock! Eventually, I printed everything neatly for him on the dot matrix printer, but the tone was set: I wanted to organize things more efficiently, faster, and better.",
    "ctaText": "Start for free today and discover how smart scheduling really works.",
    "signatureGreeting": "I warmly invite you to experience it yourself.",
    "signatureName": "Edward Meijer",
    "codeText1": "That love for technology started early. As a teenager, I was already programming BASIC late into the night on a ZX Spectrum. Later, armed with my first Tulip PC, I wrote my first 'real' software: a digital customer database for my father.",
    "colorRed": "Red = Inefficient, waste of your time",
    "whyTitle": "Why I built PianoPlanner",
    "whyText1": "In my own practice, I ran into walls for years. I worked with American software that didn't quite understand our market, or I was juggling three different apps for calendar, invoicing, and routes. I thought: \"This has to be smarter.\"",
    "whyText2": "I have a great interest in everything related to business figures (we all know how complex the margin scheme can be). I wanted software that not only schedules but also thinks along with my business operations.",
    "codeTitle": "From card file to code",
    "nlText2": "I'm proud of what we've built. A system for piano tuners, by a piano tuner.",
    "whyText3": "When I decided to build the ultimate calendar myself, I wasn't alone. I got to work with my skills and the advice of my children and stepchildren. One graduated as an IT specialist from HAN University. The other as a Game Developer & Sound Designer from HKU. With my experience in the field and their knowledge of the latest technology (and AI), we developed PianoPlanner.",
    "aboutCreator": "About the Creator",
    "pageTitle": "About the Creator - PianoPlanner",
    "heroIntro": "You probably know me as a fellow piano technician. Someone who visits clients with a tuning hammer and a listening ear. But what not everyone knows is that alongside piano technology, I've had a second great passion my whole life: automation and numbers.",
    "colorGreen": "Green = Fits perfectly in your route",
    "ctaTitle": "Try PianoPlanner yourself",
    "beginText": "PianoPlanner didn't just appear out of nowhere; it's the sum of years of frustration with existing software and a lifelong passion for programming.",
    "smartTitle": "Smart Appointments",
    "colorOrange": "Orange = Watch your travel time",
    "heroTitle": "Passion for Pianos, Precision in Planning",
    "nlText1": "Unlike the big American players, I believe in local strength. PianoPlanner is an independent initiative. Your data is stored safely and encrypted on European servers, fully compliant with privacy legislation.",
    "ctaButton": "Start for free",
    "footerMade": "Made with love in the Netherlands"
  },
  "why": {
    "routeRed": ">30 min travel - Consider rescheduling",
    "badgeUnique": "Unique Feature",
    "trial14": "14 day trial",
    "badgeSmart": "Smart",
    "featureRouteColors": "Route Efficiency Colors",
    "featureTuningReminders": "Automatic Tuning Reminders",
    "featureFree": "Free Tier",
    "navStart": "Get Started",
    "featurePianoLoc": "Piano Location Support",
    "serversUS": "USA",
    "featureTargetGZ": "Piano Technicians",
    "featureTargetSP": "HVAC Installers",
    "footerMadeBy": "Made with ♥ by a piano tuner",
    "personalLinkTitle": "Personal Booking Links",
    "theaterDesc": "Concert halls and theaters are available when you're normally off - evenings and weekends. PianoPlanner lets you set separate working hours for these special clients.",
    "trial30": "30 day trial",
    "featureTargetPP": "Piano Technicians",
    "ctaTitle": "Ready to Try PianoPlanner?",
    "tripleCalTitle": "Triple Calendar Sync",
    "uniqueTitle": "🏆 Features No One Else Has",
    "routeOrange": "15-30 min travel - Acceptable",
    "routeDemoTitle": "🚦 Route Efficiency at a Glance",
    "ctaButton": "Get Started Free →",
    "featureServers": "Data Location",
    "smartOriginDesc": "Route calculation starts from your PREVIOUS appointment, not your office. Combined with data from all your calendars (Google, Apple, Microsoft) for accurate travel times.",
    "ctaDesc": "Start free with up to 25 customers. No credit card required. Import your existing data from Gazelle or Excel in minutes.",
    "featurePersonalLinks": "Personal Customer Links",
    "navPricing": "Pricing",
    "featureMicrosoft": "Microsoft 365",
    "heroTitle": "Why Piano Technicians Choose PianoPlanner",
    "pianoLocTitle": "Piano ≠ Customer Location",
    "featureOffline": "Offline PWA App",
    "compareSubtitle": "See how PianoPlanner stacks up against other scheduling software for piano technicians.",
    "serversEU": "Europe (GDPR)",
    "badgeVisual": "Visual",
    "featureGoogle": "Google Calendar",
    "featurePrice": "Starting Price",
    "featureLanguages": "Languages",
    "routeColorsDesc": "See at a glance if your day is efficiently planned. Every appointment is color-coded based on travel time from the previous one.",
    "featureSmartOrigin": "Smart Origin (from previous apt)",
    "tableFeature": "Feature",
    "theaterTitle": "Theater Mode",
    "smartOriginTitle": "Smart Origin Routing",
    "featureTarget": "Target Audience",
    "personalLinkDesc": "Every customer gets their own unique booking link with pre-filled details: name, address, pianos, last tuning date, and service interval.",
    "free25": "25 customers",
    "routeGreen": "<15 min travel - Efficient",
    "tripleCalDesc": "The only piano scheduling app with two-way sync for Google Calendar, Microsoft 365, AND Apple Calendar - all at once. Your private appointments automatically block availability.",
    "routeColorsTitle": "Route Efficiency Colors",
    "ownOnly": "Own calendar only",
    "heroSubtitle": "Built by a piano technician who got tired of inefficient scheduling. Here's what makes PianoPlanner different from Gazelle and other software.",
    "featureApple": "Apple Calendar",
    "pianoLocDesc": "PianoPlanner understands that a piano can be somewhere else than where the customer lives. Route calculation uses the piano's actual location.",
    "compareTitle": "📊 Side-by-Side Comparison",
    "serversNL": "Netherlands",
    "nativeApp": "Native app",
    "featureTheater": "Theater/Venue Hours"
  },
  "footer": {
    "google": "Google Calendar",
    "microsoft": "Microsoft 365",
    "apple": "Apple Calendar",
    "offline": "Offline Mode",
    "push": "Push Notifications",
    "languages": "4 Languages",
    "smtp": "Own SMTP",
    "route": "Route Planning",
    "navFeatures": "Features",
    "navPricing": "Pricing",
    "navAbout": "About the Maker",
    "navLogin": "Login",
    "navPrivacy": "Privacy",
    "navTerms": "Terms",
    "navDpa": "DPA",
    "navWhy": "Why PianoPlanner",
    "navContact": "Contact"
  },
  "gazelleMigration": {
    "buttons": {
      "cleanupNotes": "Clean up Notes",
      "skipFinish": "Skip & Finish",
      "back": "← Back",
      "nextPianos": "Next: Pianos →",
      "skipStep": "Skip this step",
      "cancel": "Cancel",
      "importAppointments": "Import Appointments",
      "importPianos": "Import Pianos",
      "nextCleanup": "Next: Clean up →",
      "viewCustomers": "View Customers",
      "importCustomers": "Import Customers",
      "viewPianos": "View Pianos",
      "goToDashboard": "Go to Dashboard",
      "nextAppointments": "Next: Appointments →"
    },
    "step2": {
      "title": "Step 2: Import Pianos",
      "linkInfoDesc": "Pianos worden gekoppeld aan customers via het Originele ID in de customernotities.",
      "desc": "Upload je Gazelle \"Pianos.csv\" exportbestand. Pianos worden automatisch aan customers gekoppeld.",
      "linkInfoTitle": "Automatische Klantkoppeling",
      "dropHint": "of klik om te bladeren",
      "dropTitle": "Sleep Gazelle Export: Pianos.csv hierheen"
    },
    "step4": {
      "whatRemovedDesc": "Alleen deze specifieke import-markeringen worden verwijderd:",
      "markerBatch": "Import Batch: imp_xxx",
      "cleaningUp": "Bezig met opschonen...",
      "summaryTitle": "Import Samenvatting",
      "pending": "Wachtend",
      "markerEvent": "Original Event ID: evt_xxx",
      "done": "Klaar",
      "recordsWithMeta": "{{count}} records met import-metadata",
      "whatRemoved": "Wat wordt verwijderd?",
      "completeDesc": "Je gegevens zijn succesvol imported ofuit Gazelle.",
      "warningTitle": "Let op: Dit is permanent!",
      "desc": "Delete import-metadata uit je records voor een schone start.",
      "complete": "Migratie Voltooid!",
      "markerClient": "Original ID: cli_xxx",
      "warningDesc": "Na opschonen kun je geen nieuwe Gazelle imports meer koppelen aan deze customers. De Originele ID's zijn nodig om pianos en appointments aan customers te koppelen.",
      "title": "Step 4: Clean up",
      "warningNote": "Schoon alleen op als je 100% klaar bent met alle imports!",
      "markerPiano": "Original Piano ID: ins_xxx",
      "notesPreserved": "Je eigen notities en opmerkingen blijven behouden!"
    },
    "step3": {
      "dropHint": "of klik om te bladeren",
      "title": "Step 3: Import Appointments",
      "warningTitle": "Alleen Historische Data",
      "warningDesc": "Dit importeert oude appointments als referentie. Toekomstige appointments maak je vers in PianoPlanner.",
      "desc": "Upload je Gazelle \"Events.csv\" exportbestand om appointmentgeschiedenis te importeren.",
      "dropTitle": "Sleep Gazelle Export: Events.csv hierheen"
    },
    "stats": {
      "completed": "Voltooid",
      "active": "Actief",
      "canceled": "Geannuleerd",
      "withEmail": "Met E-mail",
      "total": "Totaal",
      "withCustomer": "Met Klant",
      "inactive": "Inactief"
    },
    "step1": {
      "dropTitle": "Sleep Gazelle Export: Clients.csv hierheen",
      "title": "Step 1: Import Customers",
      "dropHint": "of klik om te bladeren",
      "desc": "Upload je Gazelle \"Clients.csv\" exportbestand. Klant-ID's worden bewaard voor het koppelen of pianos."
    },
    "table": {
      "model": "Model",
      "name": "Naam",
      "type": "Type",
      "brand": "Merk",
      "city": "Plaats",
      "phone": "Telefoon",
      "title": "Titel",
      "date": "Datum",
      "email": "E-mail",
      "status": "Status",
      "customer": "Klant",
      "duration": "Dhour"
    },
    "results": {
      "customersSuccess": "Customers Successfully Geïmporteerd!",
      "importedSkipped": "{{imported}} imported, {{skipped}} skipped",
      "pianosSuccess": "Pianos Successfully Geïmporteerd!",
      "appointmentsSuccess": "Appointments Successfully Geïmporteerd!"
    },
    "options": {
      "activeOnlyPianos": "Import active pianos only",
      "skipDuplicates": "Duplicaten overslaan",
      "activeOnlyDesc": "Skip customers marked as inactive in Gazelle",
      "skipNoCustomer": "Overslaan als customer niet gevonden",
      "skipNoCustomerEvents": "Overslaan als customer niet gevonden",
      "cleanNotesDesc": "Delete dubbele regels en merge-artefacten uit notities",
      "activeOnly": "Import active customers only",
      "title": "Import Opties",
      "completedOnly": "Alleen voltooide appointments importeren",
      "skipNoCustomerDesc": "Importeer alleen pianos die aan een bestaande customer gekoppeld kunnen worden",
      "cleanNotes": "Notities opschonen",
      "skipDuplicatesDesc": "Sla customers over met e-mailadressen die al in je database staan",
      "skipNoCustomerEventsDesc": "Importeer alleen appointments die aan een bestaande customer gekoppeld kunnen worden",
      "activeOnlyPianosDesc": "Sla pianos over die als inactief zijn gemarkeerd in Gazelle",
      "completedOnlyDesc": "Sla geannuleerde en wachtende appointments over"
    },
    "status": {
      "finalStep": "Laatste stap",
      "notImported": "Niet imported",
      "waiting": "Wachten...",
      "imported": "{{count}} imported"
    },
    "progress": {
      "importingAppointments": "Appointments worden imported...",
      "importingCustomers": "Customers worden imported...",
      "importingPianos": "Pianos worden imported..."
    },
    "backToSettings": "← Back to Settings",
    "confirm": {
      "message": "After cleaning up, you can NO longer link new Gazelle importsn aan deze customers.\n\nGa alleen verder als je 100% klaar bent met ALLE Gazelle imports.\n\nDoorgaan met opschonen?",
      "title": "⚠️ IMPORTANT: This action is permanent!"
    },
    "step": {
      "appointments": "Appointments",
      "cleanup": "Clean up",
      "pianos": "Pianos",
      "customers": "Customers"
    },
    "subtitle": "Importeer al je gegevens of Gazelle naar PianoPlanner",
    "title": "Gazelle Migration"
  },
  "guide": {
    "dismiss": "Hide",
    "sidebar": {
      "smartFill": "Route Fill",
      "streamlineDay": "Streamline Day",
      "trafficPrediction": "Traffic Prediction",
      "pwaInstall": "Install App",
      "workshopPlanning": "Workshop",
      "mileageTracking": "Mileage Tracking",
      "microsoftCalendar": "Microsoft 365",
      "advancedSettings": "Advanced Settings",
      "googleCalendar": "Google Calendar",
      "slotDuration": "Slot Duration",
      "smartSuggestions": "Smart Suggestions",
      "customerFeatures": "Customer Features",
      "workingHours": "Working Hours",
      "teams": "Teams",
      "workshopSetup": "Workshop Planning",
      "servicesConfig": "Services",
      "reschedule": "Reschedule",
      "molliePayments": "Online Payments",
      "invoicingBtw": "VAT Handling",
      "serviceArea": "Service Area",
      "importData": "Import Data",
      "autoTuningReminders": "Automatic Reminders",
      "pushNotifications": "Push Notifications",
      "calendarIntegration": "Calendar integration",
      "dashboard": "Dashboard & Calendar",
      "customerLink": "Personal Links",
      "routeOptimizer": "Route Optimizer",
      "qrCode": "QR Code",
      "dailyUse": "Daily Use",
      "walkInTasks": "Walk-in & Tasks",
      "syncMethods": "Sync Methods",
      "pianosService": "Pianos & Service",
      "bookingLink": "Booking Link",
      "serviceHistory": "Service history",
      "routeAnalysis": "Route Analysis",
      "theaterAvailability": "Theater Availability",
      "onlineBooking": "Online booking",
      "calendarSync": "Calendar Sync",
      "tuningInvitations": "Tuning Invitations",
      "pianoService": "Piano Service History",
      "emailSetup": "Email settings",
      "dataManagement": "Data management",
      "accountingIntegration": "Accounting Integration",
      "pianos": "Piano Management",
      "mobileApp": "Mobile App",
      "invoicingSetup": "Invoice Setup",
      "invoicingMobile": "Invoicing on Mobile",
      "privateAppointments": "Private Appointments",
      "emailTemplates": "Email Templates",
      "subscription": "Subscription & Billing",
      "routeEfficiency": "Route Efficiency",
      "invoicing": "Invoicing",
      "firstSteps": "First Steps",
      "customDomain": "Custom Email Domain",
      "travelReport": "Travel Report",
      "accountSection": "Account",
      "businessDetails": "Business Details",
      "customers": "Customer Management",
      "otherFeatures": "Other Features",
      "projectPlanner": "Project Planner",
      "invoicingCreate": "Creating Invoices",
      "gettingStarted": "Getting Started",
      "appleCalendar": "Apple Calendar",
      "switchCalendar": "Switch Calendar Provider"
    },
    "smartFill": {
      "title": "Route Fill",
      "intro": "Got a gap in your schedule in a specific area? Route Fill helps you find nearby customers who are due for a tuning and lets you send them an invitation in one click.",
      "howItWorksTitle": "How does it work?",
      "step1Title": "1. Open Route Fill",
      "step1Text": "Go to Customers and click the green \"Route Fill\" button in the top right.",
      "step2Title": "2. Enter a location",
      "step2Text": "Type a city name or zip code and choose a search radius (10-50 km). Click Search.",
      "step3Title": "3. Review results",
      "step3Text": "You'll see a list of customers sorted by urgency. Each customer shows their distance, last tuning date, and an urgency badge.",
      "step4Title": "4. Select & send",
      "step4Text": "Select the customers you want to invite, then click \"Send invitations\". They'll receive a tuning invitation email with your booking link.",
      "urgencyTitle": "Urgency badges",
      "urgencyIntro": "Each customer gets a colored badge based on when they were last tuned:",
      "urgencyOverdue": "🔴 Overdue — Past the service interval",
      "urgencyDue": "🟠 Due — Within one month of the interval",
      "urgencySoon": "🟡 Soon — Within three months of the interval",
      "urgencyOk": "🟢 On schedule — Not yet due",
      "benefitsTitle": "Why use Route Fill?",
      "benefitsText": "• Fill gaps in your schedule proactively\n• Combine multiple appointments in the same area\n• Customers appreciate the personal reminder\n• Less driving, more earning",
      "tip": "Only customers with a configured service interval and an email address appear in results. Make sure your customer records are up to date for the best results."
    },
    "streamlineDay": {
      "title": "Streamline Day",
      "intro": "Have gaps between your appointments that waste time? The Streamline button automatically tightens your schedule by recalculating appointment times based on real travel times.",
      "availableFor": "Available for Solo & Pro",
      "availableForText": "Streamline Day is included in Solo and Pro subscriptions. It uses real-time travel calculations via Google Maps.",
      "howItWorksTitle": "How does it work?",
      "step1Title": "1. Open Route Analysis",
      "step1Text": "Go to the Dashboard and click the Analyse button in the toolbar.",
      "step2Title": "2. Click Streamline",
      "step2Text": "In the day analysis view, click the Streamline button. The system calculates real travel times between all appointments.",
      "step3Title": "3. Preview changes",
      "step3Text": "A preview shows the current vs. proposed schedule. You can see exactly how each appointment would shift, including the time saved.",
      "step4Title": "4. Apply or dismiss",
      "step4Text": "Click Apply to update all appointment times, or close the preview to keep your current schedule.",
      "whatItDoesTitle": "What does Streamline calculate?",
      "calc1": "Real travel time from your company address to the first appointment",
      "calc2": "Real travel time between each consecutive appointment",
      "calc3": "Your configured buffer time is added after each travel time",
      "calc4": "The first appointment starts at your working hours start + travel time",
      "previewTitle": "Understanding the preview",
      "previewText": "The preview shows each appointment with its current time and the proposed new time. Appointments that would move are highlighted, and you can see the total time saved at the top of the preview.",
      "benefitsTitle": "Benefits",
      "benefitsText": "Eliminates unnecessary gaps between appointments\nUses real Google Maps travel times - not estimates\nFrees up time at the end of your day\nOne click to optimize your entire schedule",
      "noteTitle": "Good to know",
      "noteText": "Streamline only adjusts appointments that are not yet confirmed by the customer. Private appointments and blocked time slots are kept in place. Always review the preview before applying."
    },
    "trafficPrediction": {
      "title": "Traffic Prediction",
      "intro": "PianoPlanner can factor in real traffic conditions when calculating travel times. Instead of just using the standard driving time, the system looks at expected traffic for the specific day and time of each appointment.",
      "howItWorksTitle": "How does it work?",
      "howItWorksText": "When traffic prediction is enabled, every travel time calculation considers the expected departure time. A Monday morning rush hour trip will show a longer travel time than the same trip on a quiet Sunday afternoon.",
      "whereUsedTitle": "Where is it used?",
      "usage1": "Smart Suggestions - Booking suggestions account for rush hour traffic",
      "usage2": "Route Colors - Calendar colors reflect realistic travel times",
      "usage3": "Route Analysis - Analysis uses traffic-aware durations",
      "usage4": "Streamline - Optimized schedules account for traffic patterns",
      "enableTitle": "How to enable",
      "step1Title": "1. Go to Settings",
      "step1Text": "Navigate to Settings - Travel Time.",
      "step2Title": "2. Enable Traffic Prediction",
      "step2Text": "Toggle Traffic Prediction on. Travel times will now factor in typical traffic patterns for the time of day.",
      "exampleTitle": "Example",
      "exampleText": "A trip from Brooklyn to Manhattan normally takes 40 minutes. With traffic prediction enabled, PianoPlanner might show 55 minutes for a Monday morning departure - preventing you from being late due to rush hour.",
      "noteTitle": "Good to know",
      "noteText": "Traffic predictions are based on Google Maps historical traffic data. They reflect typical conditions for that day and time, not live traffic incidents. Travel time caches refresh every 2 hours to stay current."
    },
    "smartSuggestions": {
      "afterSelecting": "After selecting a service, up to 10 optimal time slots appear, sorted with the best choice first:",
      "alternative": "Alternative - Good options on other days, sorted by date",
      "distantCustomersTitle": "Distant customers",
      "distantCustomersText": "For customers outside your normal service area, the system automatically searches further ahead (up to 6 months) to find the best options. Instead of blocking distant customers, longer travel times result in a slightly lower score - but good options are still shown. The system keeps searching until it finds at least 10 suggestions.",
      "trafficAwareTitle": "Traffic-aware suggestions",
      "trafficAwareText": "When Traffic Prediction is enabled in your settings, smart suggestions take rush hour and typical traffic patterns into account.",
      "recommended": "Recommended - The most efficient time (green badge)",
      "benefitsText": "• More efficient route planning - fewer miles driven\n• Customers choose faster - no doubt about availability\n• Better schedule - appointments cluster in the same area",
      "title": "Smart Booking Suggestions",
      "factor2": "Location - Minimal travel time between appointments",
      "factor1": "Existing appointments - Slots just before or after other appointments nearby",
      "factor3": "Working hours - Only within your available times",
      "howDoesItWorkText": "Instead of manually choosing a date and time, the customer sees a list of recommended times. These are calculated based on:",
      "howDoesItWork": "How does it work?",
      "whatCustomerSees": "What does the customer see?",
      "benefits": "Benefits",
      "pickAnother": "The customer can also choose \"Pick another time\" to manually select a date and time.",
      "intro": "When customers book via their personal link, they automatically see smart time suggestions. The system analyzes your existing appointments and suggests the most efficient time slots.",
      "factor4": "Theater hours - Separate hours for theaters if configured"
    },
    "routeAnalysis": {
      "tipsText": "Add addresses to all customers for accurate distance calculations\nUse Smart Suggestions when booking new appointments\nCheck the weekly analysis to find days worth reorganizing\nConsider moving appointments on days with D or F scores\nUse the Streamline button to automatically tighten your schedule",
      "step1Text": "Go to your calendar/agenda view in PianoPlanner.",
      "dayAnalysisTitle": "Day Analysis",
      "tipsTitle": "Tips for Better Routes",
      "economicTitle": "Economic Impact",
      "urgencyLow": "Optimization opportunity",
      "weekAnalysisIntro": "The week view gives you a broader perspective:",
      "urgencyAction": "Action",
      "dayFeature1": "📊 Efficiency Score (A-F grade) - How well your route is optimized",
      "weekFeature1": "📅 Daily Scores - See which days have efficient vs inefficient routes",
      "gradeF": "Very inefficient - significant optimization needed.",
      "urgencyMediumAction": "Consider",
      "dayFeature4": "📍 Trip List - Each journey with start, destination, km and minutes",
      "urgencyMedium": "Long trip (>30km) or zigzag",
      "step1Title": "1. Open the Dashboard",
      "dayFeature3": "⏱️ Travel Time - Estimated driving time for all trips",
      "economicText": "Each suggestion shows the potential savings in km, minutes, and fuel costs. For example: '42 km trip = ~€9 fuel costs' helps you understand the real cost of inefficient routes.",
      "howToAccessTitle": "How to Access",
      "urgencyHigh": "Risk of being late (<10 min buffer)",
      "gradeHeader": "Grade",
      "step2Text": "Find the 📊 Analyse button in the toolbar, next to Route and Sync.",
      "urgencyHighAction": "Fix today",
      "optimizationIntro": "When the system finds optimization opportunities, you'll see suggestions with an \"Apply\" button. Clicking it will:",
      "efficiencyScoresTitle": "Understanding Efficiency Scores",
      "optStep1": "Check for conflicts with existing appointments",
      "optStep2": "Show a confirmation with the proposed change",
      "title": "Route Analysis",
      "urgencyCriticalAction": "Act immediately",
      "scoreHeader": "Score",
      "gradeA": "Excellent! Your route is highly optimized.",
      "gradeB": "Good route with minor improvements possible.",
      "urgencyCritical": "You will be late!",
      "urgencyLowAction": "Nice to have",
      "step2Title": "2. Click \"Analyse\"",
      "urgencyIntro": "Each suggestion has a colored urgency level:",
      "intro": "Route Analysis helps you see how efficient your daily schedule is. View distances between appointments, get an efficiency score, and receive suggestions to optimize your route.",
      "urgencyWhen": "When",
      "step3Text": "Toggle between day view (detailed) and week view (overview).",
      "availableFor": "Available for Solo & Pro",
      "step3Title": "3. Choose Day or Week",
      "dayAnalysisIntro": "The day view shows you:",
      "gradeC": "Acceptable, but consider the suggestions.",
      "optimizationTitle": "1-Click Optimization",
      "meaningHeader": "What it means",
      "urgencyTitle": "Urgency Indicators",
      "weekAnalysisTitle": "Week Analysis",
      "weekFeature2": "📈 Weekly Average - Overall efficiency percentage",
      "gradeD": "Inefficient route - follow the optimization tips.",
      "dayFeature2": "🚗 Total Distance - Sum of all trips between appointments",
      "weekFeature3": "⚡ Cross-Day Opportunities - Suggestions to move appointments between days",
      "availableForText": "Route Analysis is included in Solo and Pro subscriptions. Free users can upgrade to unlock this powerful feature.",
      "optStep3": "Move the appointment if you confirm"
    },
    "serviceArea": {
      "settingTitle": "Setting up",
      "howToSet": "How to set your service area?",
      "step1Text": "Scroll to the \"Service Area\" section.",
      "step3Text": "You can also specify specific postal code areas where you work.",
      "tipText": "Start wide (e.g., 75 km) and restrict later if you get too many requests from far away.",
      "howItWorksText": "Set a maximum travel distance (e.g., 50 km). The system:",
      "step1Title": "Go to Settings → Company",
      "howItWorksTitle": "How does it work?",
      "step2Text": "Select how many kilometers you're willing to drive maximum. Default is 50 km.",
      "howItWorks2": "Prioritizes customers close to each other",
      "step3Title": "Optional: Set postal code areas",
      "step4Text": "Click Save. The system now takes your service area into account for bookings and suggestions.",
      "extraOption": "Extra option",
      "howItWorks1": "Filters booking requests outside your area",
      "step4Title": "4. Save",
      "howItWorks3": "Calculates travel time for route optimization",
      "extraOptionText": "You can also exclude specific postal code areas if you don't want to serve certain regions.",
      "title": "Setting Your Service Area",
      "step2Title": "Choose your maximum distance",
      "intro": "Your service area determines how far you're willing to drive for appointments. This helps the system make smart suggestions and prevents bookings that are too far away."
    },
    "invoicing": {
      "mobilePrefill3": "Choose the invoice status (draft, sent, paid)",
      "mobileFromCustomerTitle": "From a Customer Profile",
      "mobileIntro": "With PianoPlanner on your homescreen you can create and send invoices directly from your phone — even while you're still at the customer's location.",
      "footerStep": "Footer Text",
      "typeChurch": "Church",
      "prefill3": "Appointment date in the description",
      "mobileTitle": "Invoicing on Mobile",
      "createTip": "You can use 'Service Templates' in invoice settings to quickly add frequently used services to any invoice.",
      "mobilePrefill1": "Select a service — the price is automatically filled in",
      "nextNumberText": "Set the next invoice number. Useful when switching from another system mid-year — just enter the number where you left off. The counter auto-increments with each new invoice.",
      "setupTitle": "Invoice Setup",
      "btwPrivateText": "For private customers, the service price is the total amount they pay, inclusive of VAT. Example: your service costs €125. The invoice shows: Subtotal: €103.31 — VAT 21%: €21.69 — Total: €125.00",
      "prefill4": "Service price from your services configuration",
      "typeTheaterDesc": "Price exclusive VAT",
      "mobileStep1": "Finish the tuning",
      "btwTitle": "VAT Handling",
      "btwCustomerTypeTitle": "Setting the Customer Type",
      "prefill5": "Customer notes (as a separate text line)",
      "typeChurchDesc": "Price exclusive VAT",
      "mobileStep1Text": "Complete the appointment as usual.",
      "nextNumberStep": "Next Number",
      "mobileStep2Text": "Tap on the customer and hit \"Create Invoice\". Your service and price are pre-filled.",
      "btwPrivateTitle": "Private Customers",
      "typeSchool": "School",
      "prefixStep": "Prefix",
      "sendTitle": "Sending Invoices",
      "btwPrivateLabel": "Price = INCLUSIVE VAT",
      "setupIntro": "Before creating your first invoice, configure your invoicing settings. Go to Invoices and click the ⚙️ settings icon in the top bar.",
      "prefill2": "Service description with instrument (e.g. \"Tuning — Steinway & Sons D\")",
      "btwBusinessText": "For businesses, schools, churches, and theaters, the service price is exclusive of VAT. VAT is added on top. Example: your service costs €125 excl. The invoice shows: Subtotal: €125.00 — VAT 21%: €26.25 — Total: €151.25",
      "sendText": "Once your invoice is ready, save it as \"Sent\". You can then email it directly to the customer with a PDF attachment. If you have Mollie configured, a payment link is automatically included.",
      "typePrivateDesc": "Price inclusive VAT",
      "bankText": "Enter your IBAN, bank name, and BIC code. These appear on your invoices so customers know where to pay.",
      "mobilePrefill2": "Add a description or notes",
      "typePrivate": "Private",
      "mobileTip": "The piano tuner is still at the customer's home and the invoice is already sent — with a payment link. No bookkeeping software needed, no manual work at the end of the day.",
      "createIntro": "There are two ways to create an invoice: from the agenda or manually.",
      "typeTheater": "Theater",
      "prefixText": "Set a prefix for your invoice numbers (e.g. \"F2026-\", \"INV-\"). Your invoices will be numbered as prefix + sequence number, e.g. F2026-001, F2026-002, etc.",
      "btwBusinessTitle": "Business / Institutions",
      "btwCustomerTypeText": "To ensure correct VAT handling, set the customer type in each customer profile:",
      "mobileStep2": "Open customer → Create Invoice",
      "typeBusinessDesc": "Price exclusive VAT",
      "fromAgendaText": "After completing an appointment, create an invoice directly from the agenda. Click on the appointment → choose \"Create Invoice\". The invoice is automatically prefilled with:",
      "mobileStep3Text": "Save and send. The customer receives an email with a PDF invoice and a payment link.",
      "btwBusinessLabel": "Price = EXCLUSIVE VAT",
      "setupTip": "You can also upload your own letterhead (JPG/PNG) so your invoices match your corporate identity. If your letterhead already contains your company details, check \"Hide company info on invoice\".",
      "footerText": "Add your chamber of commerce number, VAT number, or any other legal text that should appear at the bottom of every invoice.",
      "mobileWorkflowTitle": "Typical Mobile Workflow",
      "typeBusiness": "Business",
      "typeSchoolDesc": "Price exclusive VAT",
      "createTitle": "Creating Invoices",
      "manualTitle": "Manual Invoice",
      "btwTip": "The default customer type is 'Private'. If you don't set a type, the price will be treated as inclusive VAT. You can always manually adjust the price on the invoice if needed.",
      "fromAgendaTitle": "From the Agenda (recommended)",
      "manualText": "Go to Invoices → New Invoice. Search and select a customer, then add invoice lines manually. You can add regular lines with prices, or text-only lines for additional notes.",
      "mobileStep3": "Send with payment link",
      "numberingTitle": "Invoice Numbering",
      "prefill1": "Customer name and details",
      "mobilePrefill4": "Send with payment link — the customer can pay via credit card or PayPal immediately",
      "mobileFromCustomerText": "Open a customer in the PWA, scroll down and tap \"Create Invoice\". A bottom sheet appears where you can:",
      "btwIntro": "PianoPlanner handles VAT differently depending on the customer type. This is determined automatically based on the customer type set in the customer profile.",
      "bankStep": "Bank Details"
    },
    "title": "User Guide",
    "travelReport": {
      "colTravelTime": "Travel time",
      "title": "Travel Report",
      "colRoute": "Route",
      "columnsTitle": "Report columns",
      "step1Text": "Click \"Travel Report\" in the navigation menu (car icon).",
      "colDateDesc": "Date of the appointment",
      "colDistance": "Distance",
      "tip": "Use the search field to filter trips by customer name or location. Combine this with a date range to quickly find specific trips.",
      "step4Title": "Export to CSV",
      "descriptionHeader": "Description",
      "howToTitle": "How to use",
      "intro": "The Travel Report gives you a detailed overview of all your trips over any period. Filter by date range, see totals and export a complete expense report.",
      "step2Title": "Set the date range",
      "step3Title": "Review the summary",
      "step4Text": "Click the CSV button to download the full report as a spreadsheet for your records or accountant.",
      "colLocation": "Location",
      "colCustomerDesc": "Customer name with link to detail page",
      "columnHeader": "Column",
      "step1Title": "Open Travel Report",
      "colRouteDesc": "Open in Google Maps for navigation",
      "step3Text": "At the top you see totals: number of trips, total km, average km per trip, travel time and expense claim.",
      "colLocationDesc": "Address of the appointment",
      "step2Text": "Use the 'From' and 'To' date pickers to select the period. The report updates automatically.",
      "colDistanceDesc": "One-way distance in km",
      "colDate": "Date",
      "colCustomer": "Customer",
      "colTravelTimeDesc": "Estimated driving time"
    },
    "projectPlanner": {
      "capacityTitle": "Capacity overview",
      "feature2": "Priority levels: Low, Normal, High, Urgent",
      "quoteIntro": "Turn your project task list into a professional quote. Each task can include pricing information that's automatically calculated and ready to share with your customer.",
      "createText": "Navigate to Projects in the main menu and click 'New project'. Give it a title, optionally link a customer and piano, set a priority and deadline, and estimate the total hours.",
      "taskTypeMaterial": "<strong>Material</strong> — Parts, strings, felt, etc. Track cost price for profit calculation",
      "exportQuoteTitle": "Export Quote",
      "feature4": "Visual progress bar based on completed tasks",
      "quoteTip": "Set your hourly rate in Settings → Workshop. New labor tasks will automatically use this rate. For materials, enter both the cost price (what you pay) and the selling price to track your margin.",
      "capacityText": "The capacity bar on the projects overview shows how many workshop hours you have used vs. available this week. This is based on your workshop hours configured in Settings → Workshop.",
      "task1": "Click the circle to cycle status: To do → In progress → Done",
      "task2": "Drag tasks by the handle to reorder them",
      "tip": "Use projects for any multi-day workshop job: full restorations, action rebuilds, soundboard repairs, or even instrument transport coordination. The task list keeps you on track and the hours overview helps with quoting future similar jobs.",
      "taskTypeLabor": "<strong>Labor</strong> — Work hours billed at your hourly rate (set in Settings → Workshop)",
      "quoteTitle": "Quotes & Pricing",
      "excelEditText": "The task list works like a spreadsheet. Click any cell to edit inline. Changes are saved automatically as you type. Press Enter to move to the next row, or Tab to move to the next column.",
      "feature3": "Status tracking: Planning → Active → Paused → Completed",
      "intro": "The Workshop Project Planner helps you manage larger workshop jobs — piano rebuilds, restorations, or any multi-step project. Track tasks, hours, deadlines, and link projects to customers and pianos.",
      "businessOnly": "Business plan",
      "featuresTitle": "Features",
      "createTitle": "Creating a project",
      "businessOnlyText": "The Project Planner is available exclusively with the Business subscription (€89,50/month). Upgrade via Settings → Subscription to unlock this feature.",
      "feature6": "Filter and search across all your projects",
      "excelEditTitle": "Excel-style Editing",
      "feature1": "Link projects to customers and pianos",
      "title": "Workshop Project Planner",
      "taskTypeOther": "<strong>Other</strong> — Transport, disposal, rental costs",
      "feature5": "Weekly capacity tracking based on your workshop hours",
      "task3": "Track estimated vs. actual hours per task",
      "tasksText": "Each project can have multiple tasks. Add tasks quickly with the inline input field at the bottom of the task list, or click a task to edit details like estimated/actual hours and due dates.",
      "costOverviewText": "The cost overview at the bottom shows real-time totals for labor, materials, and other costs. Only tasks marked as 'billable' (green checkbox) are included in the quote. Toggle billable off for internal tasks you don't want to charge for.",
      "task4": "Set due dates — overdue tasks are highlighted in red",
      "costOverviewTitle": "Cost Overview",
      "tasksTitle": "Managing tasks",
      "taskTypesTitle": "Task Types",
      "exportQuoteText": "Click 'Copy Quote' to copy a text version to your clipboard (perfect for pasting into emails), or click 'PDF' to open a professionally formatted quote ready for printing or saving as PDF."
    },
    "workshop": {
      "setupTitle": "Setting up workshop hours",
      "feature3": "Smart Pick respects workshop hours — no overlapping suggestions",
      "feature4": "Workshop appointments visible in your agenda with a dedicated icon",
      "intro": "PianoPlanner supports dedicated workshop time slots for work in your own workshop. Set your workshop availability hours and they will automatically be blocked in the online booking calendar.",
      "feature1": "Set workshop availability per day of the week",
      "smartPickTitle": "Smart Pick integration",
      "feature5": "Workshop statistics in your dashboard reports",
      "setupText": "Go to Settings → Workshop to configure your workshop availability. You can set different hours for each day of the week, just like your regular working hours.",
      "featuresTitle": "Features",
      "title": "Workshop Planning",
      "tip": "Use workshop planning for recurring in-house tasks like piano rebuilds, voicing work, or instrument repairs. This keeps your field schedule clean and your workshop time organized.",
      "smartPickText": "When you use Smart Pick to suggest appointment times, it automatically avoids your workshop hours. This ensures customers are never offered a time slot that conflicts with your workshop schedule.",
      "feature2": "Workshop hours are automatically blocked for online bookings"
    },
    "tuningInvitations": {
      "step1Title": "1. Go to Pianos",
      "step2Text": "Use the filter to only see pianos that are soon or overdue for tuning.",
      "option3MonthsDesc": "Concert grands, intensive use",
      "step1Text": "In the menu you'll see \"Pianos\" - this shows all pianos sorted by service status.",
      "optionCustomerDesc": "No automatic reminders",
      "autoTipText": "Don't want to manually send invitations each time? PianoPlanner can do this automatically! Read more in the next chapter: Automatic Tuning Reminders.",
      "whenToUseText": "The best time is 2-4 weeks before the piano is due for tuning. This gives the customer time to respond and lets you plan.",
      "howToSend": "How to send invitations?",
      "tipText": "Don't send invitations too often. One reminder is usually enough. Customers appreciate subtle service, not spam.",
      "varLastTuning": "{{lastTuningDate}}",
      "intro": "Automatically remind your customers when their piano is due for tuning. This is a powerful way to generate recurring appointments.",
      "varInterval": "{{serviceInterval}}",
      "varMonthsSince": "{{monthsSinceLastTuning}}",
      "sendingTitle": "Sending invitations",
      "whatCustomerSeesText": "The customer receives a friendly email with: A reminder that their piano is due for tuning, A link to book an appointment directly, Your contact details for questions",
      "intervalOptions": "Tuning interval options",
      "title": "Sending Tuning Invitations",
      "step3Title": "3. Select pianos",
      "safetyFeatureText": "The system prevents you from accidentally sending multiple invitations to the same customer within a short period.",
      "autoTip": "Prefer automatic?",
      "howItWorksText": "Each piano has a service interval (e.g., 6 months). When a piano is almost or over that time, you can send a reminder. The customer receives an email with a link to book an appointment directly.",
      "whatCustomerSeesTitle": "What does the customer receive?",
      "optionYearly": "12 months",
      "step4Text": "An email is sent to each selected customer.",
      "description": "Description",
      "varBookingLink": "{{bookingLink}}",
      "whenToUse": "When to send invitations?",
      "variables": "Available variables for invitations",
      "safetyFeature": "Safety feature",
      "option": "Option",
      "varDaysSince": "{{daysSinceLastTuning}}",
      "step2Title": "2. Filter by \"Due for tuning\"",
      "optionCustomer": "Customer initiates contact",
      "option6Months": "6 months",
      "option3Months": "3 months",
      "optionYearlyDesc": "Recreational use, hobby",
      "howItWorksTitle": "How does it work?",
      "step3Text": "Check the pianos you want to send an invitation to.",
      "option6MonthsDesc": "Standard for most pianos",
      "step4Title": "4. Click \"Send invitation\""
    },
    "syncMethods": {
      "oneWay": "One-way",
      "bothDirections": "Both directions",
      "icalStep1Text": "Go to Settings → Integrations. There you'll find a button to copy the calendar link. Click it — the link is now saved to your clipboard.",
      "readOnly": "Read only",
      "icalAppTipsTitle": "Instructions per app",
      "tableDirection": "Direction",
      "icalFeed": "iCal Feed",
      "recommendationTitle": "Recommendation",
      "icalHowText": "You copy a special 'digital key' (a link). You paste this once into your own calendar app. After that, all your appointments sync automatically.",
      "icalTipOutlook": "Choose 'New calendar' then select 'From network' or 'From Internet'.",
      "icalBestFor": "Simple read-only sync with any calendar app",
      "icalNote1": "View only — you can see your appointments in your own calendar, but changes are made in PianoPlanner.",
      "twoWay": "Two-way",
      "icalGoodToKnow": "Good to know",
      "icalTipGoogle": "Go to 'Add calendar' (preferably on your computer) and choose 'From URL'.",
      "googleBestFor": "Anyone with a Google account - most complete integration",
      "delayed": "Delayed (15-60 min)",
      "usingIcal": "Your tuning appointments in your own trusted calendar",
      "bestFor": "Best for",
      "intro": "Not all calendar synchronization is the same. Here you can see the differences between the methods.",
      "direction": "Direction",
      "tableCalendar": "Calendar",
      "every15to60": "Every 15-60 min",
      "whichMethodText": "This depends on which calendar you use. Google offers the best integration, Microsoft is ideal for business users, and iCal works everywhere.",
      "method": "Method",
      "icalNote2": "Automatic — as soon as you schedule an appointment, it appears in your other calendar automatically.",
      "near": "Nearly",
      "icalStep1Title": "Step 1: Copy the link",
      "recommendationText": "If you have a choice, use Google Calendar for the best experience. The two-way sync is the most complete and reliable.",
      "whichMethod": "Which method should I choose?",
      "appleBestFor": "Anyone using iCloud Calendar as primary calendar",
      "title": "Sync Methods Compared",
      "tableRealTime": "Real-time",
      "tableSyncType": "Sync type",
      "realtime": "Realtime",
      "icalStep2Title": "Step 2: Paste the link in your calendar",
      "icalHow": "How does it work?",
      "icalIntro": "Would you like your tuning appointments to automatically appear in the calendar you already use on your phone or computer (such as Samsung, Google, or Outlook)? That's easy — just connect the calendars.",
      "microsoftBestFor": "Microsoft 365 or Outlook users",
      "icalStep2Text": "Open your own calendar app and look for the option to add a calendar.",
      "toApple": "→ Only to Apple"
    },
    "routeEfficiency": {
      "orangeTitle": "🟠 Orange",
      "customizeLimits": "Customize limits",
      "whereToSeeText": "On the dashboard you'll see a small color indicator with each appointment. Check your day or week view to recognize patterns.",
      "colorLegend": "Color legend",
      "blueText": "No travel data available - travel time has not been calculated",
      "redText": "Long travel time - consider rescheduling",
      "greenTitle": "🟢 Green",
      "tip2": "Use smart suggestions - they take your existing appointments into account",
      "tip1": "Plan appointments in the same region on the same day",
      "colorRed": "Red - Long travel time, consider rescheduling",
      "greenText": "Short travel time - efficient planning!",
      "redTitle": "🔴 Red",
      "tipsTitle": "Tips for better routes",
      "calcStep1Text": "When creating an appointment, PianoPlanner automatically calculates travel time from your previous location.",
      "colorGreen": "Green - Excellent! Short travel time, efficient route",
      "orangeText": "Average travel time - acceptable but could be better",
      "intro": "PianoPlanner shows you how efficient your schedule is with a color system. This way you can see at a glance whether your day is well planned.",
      "calcStep2Title": "Color coding",
      "customizeLimitsText": "You can adjust the travel time thresholds in Settings → Company. Set what 'short', 'medium' and 'long' means for you.",
      "colorsTitle": "The colors",
      "whereToSeeTitle": "Where do you see this?",
      "title": "Understanding Route Efficiency",
      "blueTitle": "🔵 Default",
      "calcStep1Title": "Automatic calculation",
      "colorOrange": "Orange - Acceptable, but there's room for improvement",
      "tip3": "Check the map view to see your appointments geographically",
      "calculateTravel": "How is travel time calculated?",
      "calcStep2Text": "The color indicates how efficient the trip is compared to your set limits."
    },
    "theaterAvailability": {
      "step3Text": "Click the switch to enable theater hours. It turns green.",
      "benefit1": "🎭 Separate availability - Theaters don't see your 9-5 private slots",
      "whyTitle": "Why Theater Hours?",
      "bookingWindowIntro": "Theaters often need to book on short notice - a piano might need tuning before tonight's concert! You can set how far ahead theaters must/can book:",
      "benefit3": "📅 Shorter booking window - Theaters often can't plan far ahead",
      "benefit2": "⚡ Last-minute bookings - Theaters can book with just 2 hours notice (you set this)",
      "markStep2Text": "Click on their name, then click Edit.",
      "markingIntro": "Now tell PianoPlanner which customers should use theater hours:",
      "markStep3Text": "You'll see a checkbox ☑️ near the bottom. Check it!",
      "markStep2Title": "2. Edit the customer",
      "step4Text": "For each day, set when you're available for theaters:\nExample:\n• Monday-Friday: 18:00 - 22:00 (after your regular work)\n• Saturday: 10:00 - 18:00 (whole day available)\n• Sunday: OFF",
      "step1Text": "Click the gear icon ⚙️ and scroll to find \"Company Settings\"",
      "step2Text": "Scroll down past your normal working hours. You'll see a separate section for theaters.",
      "realExampleText": "Your normal working hours:\nMonday - Friday: 09:00 - 17:00\n\nYour theater hours:\nMonday - Friday: 18:00 - 22:00\nSaturday: 10:00 - 18:00\n\nResult:\n• Mrs. Johnson (private customer) → sees Mon-Fri 09:00-17:00 slots\n• Theater \"The Playhouse\" → sees Mon-Fri 18:00-22:00 + Saturday slots\n\nNo overlap, no confusion, perfect separation!",
      "comparisonText": "Regular customers:\n• Must book 2 days ahead (you have planning time)\n• Can book up to 3 months in advance\n\nTheater customers:\n• Can book just 2 hours ahead (emergency tunings!)\n• Can book up to 1 month in advance\n\nTheaters get flexibility for urgent needs, while private customers give you planning time.",
      "maxAdvanceTitle": "Maximum advance time",
      "minAdvanceTitle": "Minimum advance time",
      "step5Title": "5. Save",
      "step2Title": "2. Find \"Theater Availability\"",
      "step1Title": "1. Go to Settings → Company",
      "markStep3Title": "3. Check \"Use theater availability\"",
      "markStep1Title": "1. Go to Customers",
      "benefitsTitle": "Benefits of Theater Mode",
      "benefit4": "🎹 Concert-ready tuning - They book when they need it, before performances",
      "markingTitle": "Marking a Customer as \"Theater\"",
      "intro": "Theaters, concert halls, and other venues often have different availability than private customers. They're mainly available evenings and weekends - exactly when you're normally off! With Theater Availability you can set separate working hours for these special customers.",
      "realExample": "Real Example",
      "markStep4Text": "Click Save Customer. Done!",
      "markStep1Text": "Open your customer list and find the theater/venue.",
      "minAdvanceText": "How far ahead must theaters book at minimum?\nOptions: No minimum, 2 hours, 4 hours, 1 day, 2 days\nRecommended: 2 hours - allows last-minute emergency calls",
      "step5Text": "Click Save at the bottom of the page.",
      "comparisonTitle": "Comparison: Regular vs Theater Booking",
      "setupTitle": "Step-by-Step: Setting Up Theater Hours",
      "whyText": "The problem: Theaters have rehearsals and performances during the day. They can only let you in before opening (mornings) or after closing (evenings). The solution: Set different hours for theater customers. They only see evening/weekend slots. Private customers only see daytime slots. Everyone books at the right time!",
      "bookingWindowTitle": "Theater Booking Window",
      "title": "Theater Availability",
      "step4Title": "4. Set the times per day",
      "step3Title": "3. Turn it ON",
      "markStep4Title": "4. Save",
      "maxAdvanceText": "How far ahead can theaters book?\nOptions: 1 week, 2 weeks, 1 month, 2 months, 3 months, 6 months\nRecommended: 1 month - theaters rarely plan further ahead",
      "benefit5": "💼 Extra income - Fill your evenings with well-paying theater work"
    },
    "bookingLink": {
      "step5Title": "5. Set availability",
      "intro": "Every PianoPlanner user has a unique booking link. Share this with potential customers so they can book an appointment themselves.",
      "step1Title": "1. Go to Settings",
      "step1Text": "Open the settings menu via the gear icon ⚙️.",
      "share1": "Your website - Add a \"Book appointment\" button",
      "use1": "Your website - 'Book now' button",
      "step2Text": "Find the 'Booking Page' or 'Online Booking' section.",
      "share3": "Business cards - Print a QR code of your link",
      "customize4": "Maximum advance booking - How far ahead customers can book",
      "customize2": "Welcome text - A personal greeting for customers",
      "step3Text": "You'll see your personal booking link. Click 'Copy'.",
      "use6": "WhatsApp status",
      "whereToShareTitle": "Where to share?",
      "addToWebsite": "Add to your website",
      "asSimpleLink": "As simple link",
      "title": "Sharing Your Booking Link",
      "shareEverywhere": "Share everywhere",
      "share2": "Email signature - Add the link to every email",
      "addToWebsiteText": "Copy this code and paste it on your website where you want the booking button to appear.",
      "step4Text": "Add your logo, customize the welcome text, and choose which services are visible.",
      "use2": "Email signature",
      "step5Text": "Determine how far in advance customers can book.",
      "use5": "Google My Business",
      "whyUse": "Why a booking link?",
      "findingTitle": "Finding your link",
      "step3Title": "3. Copy your link",
      "customize1": "Add logo - Your company logo at the top of the page",
      "stepByStep": "Step by step",
      "tipText": "Make it as easy as possible for customers. The fewer clicks to a booking, the more appointments you'll get.",
      "share4": "Google My Business - Add as booking link",
      "findingText": "Go to Settings → Booking page. Here you'll see your personal booking URL. You can copy or share it.",
      "tipQrCode": "QR code tip",
      "step2Title": "2. Click Booking Page",
      "share5": "Social media - Share in your bio or posts",
      "tipQrCodeText": "Generate a QR code of your booking link for business cards or flyers. Customers can then scan and book directly!",
      "customizingText": "In the settings you can customize your booking page:",
      "use3": "Business cards (as QR code)",
      "use4": "Social media bio",
      "customizingTitle": "Customizing",
      "whyUseText": "With your own booking link, customers can make an appointment 24/7, without you having to answer the phone. You automatically receive a confirmation and the appointment is immediately in your calendar.",
      "whereToUse": "Where can you use the link?",
      "step4Title": "4. Customize the page (optional)",
      "asButton": "As button",
      "step6Text": "Enable the booking page so customers can book.",
      "customize3": "Choose services - Which services can be booked",
      "step6Title": "6. Activate"
    },
    "customers": {
      "tip": "You can also add new customers directly when creating an appointment. Just type the name in the customer field and click '+ Create new customer'.",
      "intro": "Keep all your customer data in one place. Add customers, link their pianos, track service history and send professional emails — all from a single overview.",
      "detailInvite": "Send tuning invitations directly",
      "detailHistory": "Complete appointment history",
      "addTitle": "Adding a customer",
      "addStep1Text": "Click \"Customers\" in the navigation menu to open the customer overview.",
      "detailBooking": "Personal booking link to share with the customer",
      "addStep3Text": "Add parking instructions, gate codes or special requests. These notes appear when creating appointments.",
      "detailPianos": "All linked pianos with service status",
      "detailText": "Click on a customer to see their full profile. Here you'll find:",
      "detailTitle": "Customer detail page",
      "detailNotes": "Contact information and notes",
      "addStep2Title": "Click + New Customer",
      "title": "Customer Management",
      "searchTitle": "Search & filter",
      "searchText": "Use the search bar to quickly find customers by name, email, city or phone number. The list updates as you type.",
      "addStep3Title": "Add notes (optional)",
      "addStep2Text": "Fill in name, address, email and phone. The address is used for travel time calculations.",
      "addStep1Title": "Go to Customers"
    },
    "dashboard": {
      "createStep1Title": "Click a time slot or press +",
      "smartPickText": "Pianos highlighted with a yellow glow are recommended by Smart Pick. It considers the tuning interval, last service date and season to suggest which pianos need attention.",
      "calendarResize": "Resize — drag the bottom edge of an appointment to change the duration",
      "leftTrafficLights": "Traffic lights — see the day status at a glance (done, in progress, to do)",
      "createStep4Text": "Smart Pick highlights pianos that are due for maintenance with a yellow glow. Click to select.",
      "createStep5Text": "Adjust the time and duration if needed. Click Save — the appointment appears in your calendar.",
      "createStep1Text": "Click on a time in the calendar, or use the + button in the bottom right.",
      "rightMileage": "Mileage widget — current month km overview and quick-add trips (Pro)",
      "smartPickTitle": "Smart Pick",
      "leftUpcoming": "Coming up today — quick list of remaining appointments",
      "rightPanelTitle": "Right panel",
      "rightWorkshop": "Workshop / field service statistics for the day",
      "leftPanelTitle": "Left panel",
      "leftCurrentAppt": "Current appointment — shows the appointment you're working on right now",
      "calendarRoute": "Route button — calculate travel times and color-code your appointments",
      "calendarFilters": "Filters — show/hide appointment types (field, workshop, private)",
      "sectionTitle": "Dashboard & Calendar",
      "createStep2Text": "Search for an existing customer or create a new one on-the-fly.",
      "leftMiniCal": "Mini calendar — quickly navigate between dates",
      "leftPending": "To process — appointments that still need follow-up",
      "tipText": "Use week view for planning efficiency and day view for detailed scheduling. The calendar remembers your preferred view.",
      "createStep2Title": "Select a customer",
      "createStep3Title": "Choose location type",
      "createApptTitle": "Creating an appointment",
      "createStep4Title": "Pick a piano (optional)",
      "layoutTitle": "Dashboard layout",
      "rightUpcoming": "Upcoming appointments for the next days",
      "createStep5Title": "Set time & duration, then save",
      "calendarTitle": "Calendar",
      "calendarDrag": "Drag & drop — move appointments to a different time or day",
      "layoutText": "Your dashboard is divided into three columns: a left panel with quick overviews, the calendar in the center, and a right panel with statistics and widgets.",
      "calendarText": "Switch between day, week and month views. Click on a time slot to create a new appointment. Drag appointments to move them. Double-click to edit.",
      "intro": "The dashboard is your central workspace. Here you find your calendar, daily overview, quick actions and useful widgets — everything you need for a productive workday.",
      "rightToday": "Today's appointments list with customer details",
      "createStep3Text": "Select 'At customer' for on-site visits or 'Workshop' for in-house work."
    },
    "emailTemplates": {
      "typeConfirmation": "Confirmation - Sent as soon as an appointment is booked",
      "step4Title": "4. Edit the content",
      "step5Text": "On the right you see a live preview of how the email looks. Click \"Refresh\" to update the preview after changes.",
      "varCompanyName": "Your company name",
      "varCompanyEmail": "Your email address",
      "step1Text": "Go to Settings → Email Templates → Open Template Editor. Or click directly on a template in the overview.",
      "variablesExplanation": "Variables are special codes that are automatically replaced with real data. Type them exactly as shown (including the double curly braces) or click them in the editor.",
      "typesTitle": "Available templates",
      "template2": "Reminder email — Sent 24/48 hours before the appointment",
      "editingTemplate": "Editing template",
      "varPianoBrand": "Piano brand (e.g., \"Steinway\")",
      "variablesTitle": "Available variables",
      "title": "Customize Email Templates",
      "variable": "Variable",
      "varPianoModel": "Piano model",
      "availableTemplates": "Available templates",
      "editorModes": "The Template Editor — Two Modes",
      "template4": "Modification email — Sent when date/time changes",
      "varCustomerName": "Customer's name, e.g. \"John Smith\"",
      "step2Title": "2. Choose a template",
      "varDate": "Appointment date",
      "template3": "Cancellation email — Sent when you cancel an appointment",
      "varReminderNumber": "Sequential reminder number (1, 2, 3...) — only for automatic reminders",
      "step6Title": "6. Test and save",
      "editingTitle": "Editing templates",
      "typeReminder": "Reminder - Sent 24 hours before the appointment",
      "advancedMode": "Advanced Mode (for experienced users)",
      "advancedModeText": "Write your own HTML code for full control over the layout. Useful if you are a designer or want to implement a specific design. You see the raw HTML and can use tags directly for colors, fonts, tables, etc.",
      "step5Title": "5. Preview",
      "tipText": "All variables are available in the \"Variables\" panel on the right side of the editor. They are grouped by category: Customer, Appointment, Piano, Invitation, and Company. Click a variable to insert it directly.",
      "template5": "Tuning Invitation — For inviting customers who are due for a tuning (manual and automatic)",
      "availableVariables": "Available variables",
      "step3Text": "At the top you see the email subject line. This is what the customer sees in their inbox. You can also use variables here.",
      "varBookingLink": "Customer's personal booking link",
      "tipTitle": "Tip",
      "step2Text": "On the left you see all available templates. Click the template you want to customize.",
      "step3Title": "3. Customize the subject",
      "varUnsubscribeLink": "Unsubscribe link for the customer — only for automatic reminders",
      "step4Text": "Choose \"Simple\" for plain text or \"Advanced\" for HTML. Use the variables list on the right — click a variable to insert it at cursor position.",
      "step1Title": "1. Open the Template Editor",
      "varCompanyPhone": "Your phone number",
      "simpleModeText": "Type plain text like in an email. Each new line automatically becomes a paragraph. Variables (like {{customerName}}) can be typed directly or click a variable from the list on the right to insert it. PianoPlanner automatically creates a beautifully formatted email with your company logo and branding.",
      "varService": "Service type (e.g., \"Tuning\")",
      "varTime": "Appointment start time",
      "intro": "PianoPlanner automatically sends emails to your customers for appointments. You can fully customize these emails with your own text, branding, and logo. There are two editing modes: a simple mode for plain text and an advanced mode for HTML formatting.",
      "typeInvitation": "Tuning invitation - For inviting customers to book an appointment",
      "variablesText": "You can use these variables in your templates:",
      "replacedBy": "Replaced by",
      "template1": "Confirmation email — Sent automatically when a customer books an appointment",
      "varAddress": "{{address}} - Customer's address",
      "simpleMode": "Simple Mode (recommended for beginners)",
      "typeCancellation": "Cancellation - Sent if you cancel an appointment",
      "step6Text": "Click \"Send Test\" to send a sample to your own email address. Satisfied? Click \"Save\". You can always revert to the default template via \"Reset to Default\"."
    },
    "pianoService": {
      "whyTrackTitle": "Why Track Service Intervals?",
      "statusOrangeMeaning": "⚠️ Service coming up - time to contact customer!",
      "manualStep2Text": "Look for the date picker field",
      "statusRed": "30 days overdue",
      "automatic": "You don't have to do anything! Just complete your appointments as normal, and PianoPlanner keeps track.",
      "manualStep2Title": "2. Find \"Last service date\"",
      "manualStep4Text": "The piano's status will now be calculated correctly!",
      "changeStep2Title": "2. Click Edit",
      "changeStep2Text": "Click the Edit button (pencil icon ✏️)",
      "changeStep1Title": "1. Go to the piano",
      "changeStep5Title": "5. Save",
      "statusGrayMeaning": "ℹ️ New piano - no history recorded yet",
      "manualStep3Title": "3. Enter the date",
      "changeIntervalTitle": "Step-by-Step: Changing a Piano's Interval",
      "source1": "✅ Completed appointments - When you finish a tuning, the piano record updates",
      "changeStep5Text": "Click Save Piano. The status will now calculate from this interval!",
      "statusColorsIntro": "Each piano shows a status so you can see at a glance who needs attention:",
      "recommendedText": "3-4 months: Concert grands, conservatory pianos, music schools\n6 months: Churches, professional musicians, serious hobbyists (default)\n12 months: Home pianos, occasional players\n18-24 months: Rarely used pianos, vacation homes",
      "changeStep1Text": "Open Customers → click on a customer → click on their piano",
      "statusRedMeaning": "🔴 Past due date - definitely time to call!",
      "proTipText": "Go to Pianos in the menu. You'll see all pianos sorted by status. Orange and red pianos appear first - these are your opportunities!\nEvery week, check this list and send reminders to customers with overdue pianos. Easy way to fill your calendar! 📅",
      "statusGreen": "Last: 15 Jan 2026",
      "changeStep3Text": "Look for the dropdown that says \"Service interval (months)\"",
      "statusGreenMeaning": "✅ Recently tuned - no action needed yet",
      "manualRecordTitle": "Manually Recording a Past Tuning",
      "manualStep3Text": "Click the field and select the date of the last tuning",
      "whyTrackText": "Without tracking: You rely on customers calling you, or you forget who needs service.\nWith PianoPlanner: You see exactly which pianos are due for tuning. Send a reminder, book the appointment, keep customers happy. More repeat business, less effort!",
      "intervalIntro": "Different pianos need different care. A concert grand in a theater needs tuning every few months, while a hobby piano at home might only need yearly service. You set the interval per piano!",
      "manualStep1Title": "1. Edit the piano",
      "title": "Piano Service History & Tuning Intervals",
      "statusOrange": "Due in 14 days",
      "statusColorsTitle": "Understanding the Status Colors",
      "changeStep4Title": "4. Choose the interval",
      "intro": "PianoPlanner automatically tracks the service history of every piano. This helps you remember when pianos need tuning - no more forgetting customers or guessing when you last visited!",
      "changeStep4Text": "Select how many months between tunings:\n3, 4, 6, 9, 12, 18, or 24 months",
      "howItWorksTitle": "How It Works (Automatically!)",
      "statusGray": "Not yet tuned",
      "tableHeader2": "What It Means",
      "proTipTitle": "Pro Tip: Finding Pianos Due for Service",
      "howItWorksIntro": "PianoPlanner automatically updates \"Last tuning\" based on:",
      "manualStep1Text": "Go to the piano and click Edit",
      "manualRecordIntro": "Did you tune a piano before using PianoPlanner? You can enter the date manually:",
      "intervalTitle": "Setting the Right Tuning Interval",
      "manualStep4Title": "4. Save",
      "recommendedTitle": "Recommended Intervals",
      "changeStep3Title": "3. Find \"Service interval\"",
      "source2": "✅ Service records - Notes you add to the piano's history",
      "tableHeader1": "What You See",
      "source3": "✅ Manual date entry - If you enter a past tuning date yourself"
    },
    "slotDuration": {
      "title": "Calendar Slot Duration",
      "intro": "You can customize how the calendar displays time slots. Choose between 1-hour slots or 1.5-hour slots depending on your typical appointment length.",
      "savedAutomatically": "Your preference is saved automatically and will be remembered next time you visit.",
      "whenToUseTitle": "When to use which?",
      "step2Text": "In the toolbar next to the view selector (Day/Week/Month), you'll see a dropdown.",
      "step3Title": "Choose your duration",
      "step1Title": "Go to the Dashboard",
      "step1Text": "Open your calendar view.",
      "step2Title": "Find the slot selector",
      "whenToUseText": "1 hour slots: Standard tuning appointments, quick services\n1.5 hour slots: Regulation, voicing, or when tunings typically take longer",
      "step3Text": "Select \"1 hour\" or \"1½ hour\" from the dropdown.",
      "changingTitle": "Changing Slot Duration"
    },
    "routeOptimizer": {
      "step2Title": "Review the suggested order",
      "step1Text": "On the dashboard, click the route icon on a day with multiple appointments. The optimizer opens with a map view.",
      "title": "Route Optimization",
      "step3Text": "Click \"Apply optimized route\" to automatically reorder your appointments. Calendar sync is automatically updated.",
      "tip": "The optimizer works best when your customers have accurate addresses. Use Google Maps suggestions when adding customer addresses.",
      "intro": "The Route Optimizer uses Google Maps to calculate the most efficient order for your appointments. It can automatically reorder your day to minimize total travel time.",
      "step2Text": "You see your appointments plotted on the map with the optimized route. The total travel time savings are shown.",
      "step1Title": "Open the optimizer",
      "step3Title": "Apply with one click"
    },
    "workingHours": {
      "bufferBefore": "Buffer before appointment",
      "daysAndTimesText": "Select the days you work and set the start and end time for each day.",
      "daysAndTimes": "Days and times",
      "option2": "Option 2: Different times per day",
      "option3": "Option 3: Some days off",
      "intro": "Your working hours determine when customers can book appointments. The system only shows time slots within these hours.",
      "bufferAfterDesc": "Extra time after an appointment for notes or unexpected delays",
      "importantItem1": "Account for travel time - don't plan too tight",
      "bufferBeforeRec": "2 days recommended for planning",
      "importantItem2": "Lunch break? The system automatically avoids times around 12:00-13:00 unless you disable this",
      "title": "Setting Working Hours",
      "bufferAfter": "Buffer after appointment",
      "howToSetItem1": "Click on a day to turn it on or off",
      "buffersText": "Buffers help you keep time between appointments and prevent customers from booking too last-minute.",
      "settingBuffers": "Setting buffers",
      "option1": "Option 1: Fixed times every day",
      "bufferType": "Buffer type",
      "whatDoesItDo": "What does this do?",
      "importantItem3": "Theaters? Set separate \"Theater availability\" (see section below)",
      "howToSetItem3": "Use different times for different days (e.g., Wednesday shorter)",
      "minBookingTimeDesc": "How far in advance must customers book?",
      "whereToFindText": "Go to Settings → Company and scroll to \"Availability\".",
      "bufferBeforeDesc": "Minimum time between booking and the appointment",
      "importantTitle": "Important tips",
      "exampleText": "Most piano technicians work Monday-Friday from 9:00 to 17:00. Saturday is optional. Sunday usually off.",
      "minBookingTimeRec": "2 days gives you time to plan",
      "exampleTitle": "Example",
      "howToSetItem2": "Set the start and end time per day",
      "howToSetTitle": "How to set it up?",
      "minBookingTime": "Minimum booking time",
      "bufferAfterRec": "15 minutes recommended",
      "whereToFindTitle": "Where to find this?",
      "recommended": "Recommended",
      "tipText": "Start with wide working hours and narrow down later if certain times don't work."
    },
    "servicesConfig": {
      "step3Text": "Add buffer time before and/or after the appointment. This gives you travel time or preparation time between appointments.",
      "colorTitle": "Calendar colors",
      "colorText": "Service colors help you visually distinguish between appointment types in your calendar. Choose from preset colors like blue, green, red, purple, etc. The color is also used when syncing with Google Calendar.",
      "step1Text": "Here you'll find an overview of all your services. Click \"Add Service\" to create a new one.",
      "step2Title": "Fill in the details",
      "intro": "Services define what you offer to customers — such as tuning, regulation, or repair. Each service has its own duration, price, and calendar color. Customers see these when booking online.",
      "step5Text": "Only active services appear on the booking page. Deactivate a service to temporarily hide it without deleting it.",
      "step4Title": "Choose a calendar color",
      "howToTitle": "Setting up services",
      "title": "Services",
      "tip": "Create different services for different durations. For example: \"Piano tuning\" (90 min), \"Grand piano tuning\" (120 min), and \"Quick check\" (45 min). This way customers always book the right amount of time.",
      "step1Title": "Go to Settings → Services",
      "step4Text": "Each service can have its own color. This color appears in your PianoPlanner calendar and is synced to Google Calendar. This way you can see at a glance what type of appointment you have.",
      "step5Title": "Activate or deactivate",
      "step2Text": "Name, duration (in minutes), price, and optionally a description that customers see on the booking page.",
      "step3Title": "Set buffer times"
    },
    "subscription": {
      "step2Text": "Click \"Change Plan\" to switch between plans. Changes take effect on your next billing date. Upgrading gives immediate access to new features.",
      "planHeader": "Plan",
      "businessName": "Business",
      "businessFeatures": "Everything in Pro + team management, shared customer database",
      "title": "Subscription & Billing",
      "step3Title": "Payment management",
      "soloFeatures": "Unlimited customers, calendar sync, route optimization, invoicing",
      "intro": "PianoPlanner offers flexible subscription plans to fit your needs. Manage your subscription, upgrade, downgrade, or update your payment details at any time.",
      "step3Text": "Click \"Manage Payment\" to update your credit card, view invoices, or cancel your subscription via the Stripe customer portal.",
      "plansTitle": "Available Plans",
      "step1Title": "Go to Billing",
      "step1Text": "Click your profile icon → Billing, or go directly to the billing page.",
      "starterPrice": "Free",
      "step2Title": "Upgrade or downgrade",
      "featuresHeader": "Key Features",
      "starterFeatures": "Basic scheduling, up to 25 customers",
      "priceHeader": "Price",
      "proFeatures": "Everything in Solo + automatic reminders, accounting integrations, priority support",
      "manageTitle": "Manage Subscription"
    },
    "accountingIntegration": {
      "moneybirdStep2Text": "Go to Settings → Integrations → Moneybird. Enter your API token and administration ID, then click Connect.",
      "odooStep2Title": "Connect in PianoPlanner",
      "odooWarning": "Odoo API access requires a Custom or Enterprise plan. The free Odoo Online plan does not include external API access.",
      "odooStep3Title": "Sync Invoices",
      "moneybirdStep3Text": "Once connected, you can push invoices directly to Moneybird. Customers are automatically created if they don't exist yet.",
      "jorttStep1Text": "Log in to your QuickBooks account and go to <strong>Developer → My Apps</strong>. Create a new app to get your Client ID and Client Secret.",
      "moneybirdTitle": "Moneybird (EU)",
      "availableText": "Currently three integrations are fully operational. More are being developed to support piano technicians worldwide.",
      "moneybirdStep1Title": "Get API Token",
      "moneybirdIntro": "Moneybird is a popular European online accounting package. PianoPlanner connects via the Moneybird API for automatic invoice synchronization.",
      "comingSoonEboekhouden": "Cloud bookkeeping platform",
      "jorttStep2Text": "Navigate to <strong>Settings → Integrations</strong>, find the QuickBooks card, enter your Client ID and Client Secret, then click <strong>Connect</strong>.",
      "moneybirdStep1Text": "Log in to your Moneybird account and go to Settings → Developers → Personal API Tokens. Create a new token.",
      "odooTitle": "Odoo (International)",
      "jorttStep1Title": "Get API Credentials",
      "syncLogText": "Every sync action is logged. You can view the sync history in the integration settings to see which invoices have been sent successfully and which ones encountered errors. This helps you quickly spot and resolve any issues.",
      "comingSoonLexoffice": "Popular German cloud accounting",
      "moneybirdStep2Title": "Connect in PianoPlanner",
      "comingSoonDatev": "German market leader for tax advisors",
      "syncLogTitle": "Sync Log",
      "jorttStep3Title": "Configure Sync Settings",
      "jorttIntro": "QuickBooks is the leading US accounting platform for small businesses. PianoPlanner connects via OAuth2 for secure, automatic invoice syncing.",
      "intro": "PianoPlanner can sync your invoices directly to your accounting software, saving you from manual entry. Go to <strong>Settings → Integrations</strong> to connect your accounting package.",
      "comingSoonBillit": "Belgian invoicing platform",
      "comingSoonYuki": "Accounting with document processing",
      "odooStep2Text": "Go to <strong>Settings → Integrations</strong>, find the Odoo card, fill in all four fields, and click <strong>Connect</strong>. PianoPlanner will verify your credentials immediately.",
      "odooIntro": "Odoo is an international open-source ERP system with a powerful accounting module. PianoPlanner connects via Odoo's JSON-RPC API.",
      "jorttStep3Text": "Choose whether to sync invoices automatically when created, or manually via the sync button. You can also enable automatic syncing when an invoice is marked as sent.",
      "odooStep3Text": "Once connected, use the <strong>Sync</strong> button to push invoices to Odoo. Each invoice creates a customer invoice (account.move) in Odoo, and missing contacts are automatically created.",
      "jorttStep2Title": "Connect in PianoPlanner",
      "comingSoonSevdesk": "Cloud accounting popular in Germany",
      "comingSoonText": "We are actively working on integrations with more accounting packages used by piano technicians worldwide:",
      "odooStep1Text": "You need four things: your Odoo URL (e.g. https://mycompany.odoo.com), your database name, your username (email), and an API key. Generate an API key in Odoo via <strong>Settings → Users → API Keys</strong>.",
      "title": "Accounting Integration",
      "tip": "Missing your accounting package? Let us know via support and we'll prioritize it. All credentials are encrypted and stored securely — your API keys are never visible after saving.",
      "comingSoonTitle": "Coming Soon",
      "moneybirdStep3Title": "Sync Invoices",
      "jorttTitle": "QuickBooks (US)",
      "odooStep1Title": "Gather Your Odoo Details",
      "comingSoonExact": "International ERP system",
      "availableTitle": "Available Integrations"
    },
    "teams": {
      "step2Title": "Invite members",
      "step2Text": "Invite technicians by email. They'll receive an invitation to join your team.",
      "step3Text": "Your team gets a shared booking page where customers can choose their preferred technician, or let the system determine the best match based on availability and location.",
      "intro": "Working with multiple technicians? The Teams feature lets you manage a shared customer database, coordinated scheduling, and team booking pages.",
      "availabilityNote": "Teams is available on the Business plan. Features include: team member invitations, shared customer and piano database, coordinated calendar, and a team booking page where customers can choose a technician.",
      "step1Text": "Go to Settings → Teams and click \"Create Team\". Name your team and set it up.",
      "step3Title": "Share the team booking page",
      "title": "Teams",
      "step1Title": "Create a team",
      "setupTitle": "Getting started with Teams"
    },
    "reschedule": {
      "howItWorksTitle": "How does it work?",
      "step3Text": "They select a new time slot and confirm. The appointment is automatically rescheduled.",
      "step4Text": "The customer receives a confirmation email with the new time. You (the technician) also receive a notification that the appointment has been rescheduled.",
      "rule2": "Past appointments cannot be rescheduled",
      "rule4": "Calendar sync (Google/Apple/Microsoft) is automatically triggered",
      "step2Text": "They see their current appointment and a list of available alternative times, powered by Smart Suggestions with route optimization.",
      "rule3": "The link is unique per appointment and works only once",
      "intro": "Customers can reschedule their own appointment through a secure link in the confirmation email. No phone call or email needed — they choose a new time from smart suggestions and confirm with one click.",
      "step4Title": "Both parties are notified",
      "step1Title": "Customer receives confirmation email",
      "step3Title": "Customer chooses a new time",
      "step1Text": "Every booking confirmation contains a \"Reschedule Appointment\" button with a unique, secure link.",
      "rule1": "Rescheduling is only possible up to 24 hours before the appointment",
      "step2Title": "Customer clicks the link",
      "tip": "The reschedule page uses the same Smart Suggestions engine as the booking page — the current appointment is excluded and only times that fit your schedule and route are shown.",
      "title": "Reschedule Appointment",
      "rulesTitle": "Rules"
    },
    "googleCalendar": {
      "whatSyncsText": "New appointments in PianoPlanner → Google Calendar, Changes in time/date, Cancellations (appointment is deleted/marked), Google Calendar events → PianoPlanner (blocking)",
      "title": "Connecting Google Calendar",
      "includeTravelTime": "Include travel time",
      "step1Title": "1. Go to Settings → Integrations",
      "creatingConnection": "Creating connection",
      "step3Title": "3. Log in to Google",
      "step4Text": "Choose which Google Calendar you want to sync (usually your main calendar).",
      "step1Text": "Open the settings menu and click on \"Integrations\" or \"Calendar Sync\".",
      "twoWaySyncDesc": "Changes in both calendars are synchronized",
      "step2Text": "You'll be redirected to Google to log in.",
      "whatSyncsTitle": "What gets synchronized?",
      "step5Title": "5. Done!",
      "intro": "Sync PianoPlanner with your Google Calendar for two-way sync. Appointments appear in both calendars and updates are automatically synchronized.",
      "description": "Description",
      "step2Title": "2. Click \"Connect Google Calendar\"",
      "toGoogleOnlyDesc": "Appointments are only sent from PianoPlanner to Google",
      "step3Text": "Use the Google account you want to connect. Allow the requested permissions.",
      "twoWaySync": "Two-way sync",
      "step5Text": "New appointments now automatically appear in your Google Calendar.",
      "syncOptions": "Sync options",
      "toGoogleOnly": "To Google only",
      "tipText": "Two-way sync means if you block something in Google, PianoPlanner also takes this into account when showing available time slots.",
      "step4Title": "4. Select your calendar",
      "includeTravelTimeDesc": "Automatically add travel time to calendar events",
      "option": "Option"
    },
    "common": {
      "important": "Important",
      "tip": "Tip",
      "yes": "Yes"
    },
    "pwaInstall": {
      "intro": "PianoPlanner works as a Progressive Web App (PWA) — you can install it on your phone or tablet and use it like a native app. No App Store needed.",
      "feature5": "Push notifications for new bookings",
      "featuresTitle": "What you get on mobile",
      "iosStep1Title": "Open PianoPlanner in Safari",
      "iosStep2Text": "Tap the share icon (square with arrow) at the bottom of the screen.",
      "iosStep1Text": "Go to pianoplanner.com and log in. Make sure you're using Safari (not Chrome or Firefox).",
      "feature2": "Quickly look up customers and pianos",
      "iosTitle": "Install on iPhone / iPad",
      "androidStep2Text": "You may see an \"Install\" banner at the bottom. Otherwise tap the three dots (⋮) and choose \"Install App\" or \"Add to Home Screen\".",
      "androidStep1Text": "Go to pianoplanner.com and log in via Chrome.",
      "iosStep2Title": "Tap the Share button",
      "iosStep3Text": "Scroll down and tap \"Add to Home Screen\". PianoPlanner will now appear as an app icon on your home screen.",
      "androidStep2Title": "Tap \"Install\" or the menu",
      "feature1": "Full calendar view optimized for touch",
      "androidStep1Title": "Open PianoPlanner in Chrome",
      "iosStep3Title": "Choose \"Add to Home Screen\"",
      "title": "Mobile App (PWA)",
      "androidTitle": "Install on Android",
      "feature4": "Create and send invoices from your phone",
      "feature3": "Create and edit appointments on the go"
    },
    "pianos": {
      "addStep1Title": "Go to Pianos",
      "interval0": "Customer initiates contact — no automatic reminders",
      "addStep4Text": "Choose how often this piano should be tuned: every 3, 6 or 12 months, or 0 if the customer initiates contact.",
      "smartPickText": "When creating an appointment, Smart Pick automatically highlights pianos that are due for maintenance based on the configured interval and last service date.",
      "interval3": "Every 3 months — for concert pianos or intensive use",
      "interval12": "Yearly — for pianos with light use",
      "intro": "Track every piano you service. Record brand, model, serial number, year and condition. Link pianos to customers and keep a complete service history.",
      "detailStatus": "Service status indicator: on time, coming due, or overdue",
      "addStep2Text": "Select the customer who owns this piano. The piano appears on their detail page.",
      "addStep3Title": "Fill in piano details",
      "addStep1Text": "Click \"Pianos\" in the navigation menu, then click \"+ New Piano\".",
      "addTitle": "Adding a piano",
      "detailService": "Service history — all past appointments and tunings",
      "serviceIntervalTitle": "Tuning intervals explained",
      "title": "Piano Management",
      "addStep3Text": "Brand, model, serial number, year of manufacture, type (grand/upright/digital) and location in the house.",
      "addStep4Title": "Set the tuning interval",
      "smartPickTitle": "Smart Pick uses these intervals",
      "interval6": "Every 6 months — standard for most pianos",
      "detailPhotos": "Photos — upload images of the piano for reference",
      "detailInfo": "Full piano specifications and condition notes",
      "detailTitle": "Piano detail page",
      "addStep2Title": "Link to a customer",
      "intervalHeader": "Interval",
      "meaningHeader": "Meaning"
    },
    "autoReminders": {
      "setupTitle": "Setup — Step by Step",
      "dashboardText": "Once you enable automatic reminders, a widget appears on your dashboard with three numbers: total reminders sent, this month's count, and unsubscribed customers.",
      "step1Text": "Reminders are only sent for pianos that have a service interval set (3, 6, or 12 months). Pianos set to \"Customer initiates contact\" (interval 0) are skipped.",
      "tipText": "Before enabling automatic reminders, check that your customers have an email address and that pianos have a service interval and last tuning date filled in.",
      "settingAdvance": "How many days before the tuning is due the first email is sent. For example: 30 days = about 1 month in advance.",
      "title": "Automatic Tuning Reminders",
      "unsubscribeStats": "In the statistics in settings you can see how many customers have unsubscribed. Want to re-subscribe a customer? Contact the helpdesk.",
      "settingFollowup": "How many days between the first and second reminder. After that it becomes monthly.",
      "setup3Text": "Adjust the following settings to your preference:",
      "setup3": "3. Configure the schedule",
      "dashboardTitle": "Dashboard Widget",
      "prereqTitle": "Requirements",
      "varReminderNumber": "The sequential number of the reminder (1, 2, 3...). Useful to mention in the text.",
      "setup2Text": "Turn on the toggle \"Enable automatic reminders\". Additional options will appear.",
      "template2Text": "In addition to the standard variables, two extra variables are available for automatic reminders:",
      "settingMax": "Maximum number of emails per piano per tuning cycle. After reaching this number, the system stops.",
      "whatIsItText": "Manual invitation: You click the email icon for each customer yourself. Automatic reminder: PianoPlanner does it for you. You set it up once, and all customers are automatically reminded at the right time.",
      "whatIsIt": "What's the difference with manual invitations?",
      "setup2": "2. Enable the feature",
      "varUnsubscribeLink": "A link that allows the customer to unsubscribe from reminders. Automatically placed at the bottom of the email.",
      "step2Text": "For example, a piano has a 6-month service interval and the last tuning was on January 1st. The next tuning is around July 1st. With the default setting (30 days advance), the customer receives the first reminder around June 1st.",
      "template1": "Via Settings",
      "prereqCalloutText": "Automatic reminders are only sent when all conditions are met: the feature is enabled, the piano has a service interval, the piano has a known last tuning date, the customer has an email address, and the customer hasn't unsubscribed.",
      "step1": "1. Piano has a service interval",
      "template1Text": "Click \"Edit Template\" in the tuning reminder settings. You'll be redirected to the Template Editor.",
      "step3": "3. Follow-up if no response",
      "templateTitle": "Customize Email Template",
      "setup1": "1. Go to Settings",
      "unsubscribeTitle": "Customer Unsubscribe",
      "setup4": "4. Send a test",
      "setup1Text": "Open Settings and scroll to the \"Automatic Tuning Reminders\" card (with the bell icon). Click to expand it.",
      "setup5Text": "Don't forget to click \"Save\"! From now on, your customers will be automatically reminded.",
      "templateText": "Automatic reminders use the same template as manual tuning invitations. You can customize this template via:",
      "setting": "Setting",
      "setup5": "5. Click Save",
      "setup4Text": "Click \"Send Test\" to send a sample reminder to your own email address.",
      "settingDefault": "Default",
      "tipTitle": "Tip: Check your customer data",
      "howItWorks": "How does it work?",
      "settingTime": "Around what time emails are sent. Choose a time when your customers are likely online.",
      "step3Text": "If the customer doesn't respond, a second reminder is sent automatically after 14 days. After that, a reminder follows every month until the maximum is reached (default 4 reminders per cycle).",
      "settingExplanation": "Explanation",
      "template2": "Extra variables",
      "prereqCalloutTitle": "Important to know",
      "step4Text": "Reminders stop automatically when the customer books an appointment, the maximum number of reminders is reached, or the customer unsubscribes.",
      "intro": "PianoPlanner can automatically send tuning reminders to customers when their piano is due for a tuning. You don't have to do anything — the system checks for each piano when the last tuning was, adds the service interval, and sends a reminder at the right time.",
      "step4": "4. Cycle stops automatically",
      "step2": "2. First reminder goes out",
      "unsubscribeText": "At the bottom of every automatic reminder is an unsubscribe link. When a customer clicks it, a clean page confirms they've been unsubscribed."
    },
    "customDomain": {
      "portDesc": "Usually 587 (TLS) or 465 (SSL)",
      "tipText": "No technical knowledge? Ask your web host or IT administrator for the SMTP details. Most hosting packages include email.",
      "password": "Password",
      "fromAddressDesc": "The email address shown as sender",
      "smtpSetup": "SMTP Configuration",
      "step1Text": "You need: SMTP server (e.g., smtp.yourprovider.com), Port (usually 587 or 465), Username (often your full email address), Password",
      "providersList": "Gmail (with app password), Microsoft 365, Transip, Antagonist, Hostnet",
      "example": "Example",
      "reason1": "Emails come from your own domain (info@yourcompany.com)",
      "step4Title": "4. Test the connection",
      "popularProvidersTitle": "Popular providers",
      "step5Text": "Toggle the switch to \"On\" to use your own SMTP.",
      "testSettings": "Test your settings",
      "smtpHost": "SMTP Host",
      "step4Text": "Click \"Test send\" to check if everything works.",
      "whatIsSmtpText": "SMTP (Simple Mail Transfer Protocol) is the standard for sending email. If you have your own email address (e.g., via your web hosting provider), you probably also have SMTP credentials.",
      "usernameDesc": "Usually your full email address",
      "title": "Using Your Own Email Domain",
      "passwordDesc": "Your email password or app-specific password",
      "field": "Field",
      "reason3": "Less likely to be caught by spam filters",
      "port": "Port",
      "commonSettings": "Common settings",
      "reason2": "More professional appearance",
      "step1Title": "1. Gather your SMTP details",
      "intro": "Want confirmation emails to come from info@yourbusiness.com instead of noreply@pianoplanner.com? You can! With your own SMTP server.",
      "fromAddress": "From address",
      "host": "Host",
      "step3Title": "3. Fill in your details",
      "provider": "Provider",
      "whatIsSmtpTitle": "What is SMTP?",
      "explanation": "Explanation",
      "reason4": "Full control over your email communication",
      "smtpHostDesc": "Your mail server address (e.g. smtp.gmail.com)",
      "testSettingsText": "After filling in, click 'Send Test' to verify everything works before activating.",
      "step5Title": "5. Activate",
      "step3Text": "Enter the server details, port, username, and password.",
      "username": "Username",
      "whySmtp": "Why use your own SMTP?",
      "step2Text": "Scroll to the \"Custom SMTP\" section.",
      "step2Title": "2. Go to Settings → Email"
    },
    "mileageTracking": {
      "feature1": "Year-by-year overview with monthly breakdown chart",
      "taxTip": "Tax authorities require a complete mileage administration if you claim business travel expenses. Register your odometer readings at least at the start and end of each year.",
      "manualStep1Text": "Enter km, purpose and click +. Check 'Private' for non-business trips, 'Round trip' to double the distance.",
      "manualStep2Text": "Go to Settings → Mileage Tracking → Manual trip form. Here you can also set the exact date, from/to locations and delete trips.",
      "accessTravelReport": "Travel Report — Detailed trip list with route information and CSV export",
      "oneWay": "Other appointments during the day → One-way only (you continue to the next location)",
      "exportTitle": "Export & reports",
      "title": "Mileage Tracking",
      "introNew": "Keep a tax-proof mileage administration. PianoPlanner automatically tracks kilometers from appointments, and you can add manual trips, register odometer readings and export everything for your tax return.",
      "intro": "PianoPlanner automatically tracks your traveled kilometers based on appointment locations. View a complete overview split by business and private trips.",
      "odometerText": "Register your odometer readings periodically (e.g. at the start and end of the year). This serves as proof for the tax authorities and helps verify your trip records.",
      "exportCSV": "CSV export — Download all trips as a spreadsheet for your accountant",
      "autoTrackText": "Every appointment with a customer address automatically generates a trip record. The system calculates the distance from your business address to the customer location.",
      "manualTitle": "Manual trips",
      "manualStep1Title": "Quick method: Dashboard widget",
      "accessSettings": "Settings → Business → Mileage Tracking — Full overview with vehicle info, odometer readings, chart and exports",
      "accessTitle": "Where to find it",
      "feature2": "Separate totals for business (green) and private (purple) trips",
      "odometerTitle": "Odometer readings",
      "smartCalcText": "The system automatically determines if a trip is one-way or round-trip:",
      "smartCalcTitle": "Smart round-trip calculation",
      "manualStep2Title": "Detailed method: Settings",
      "exportPDF": "PDF export — Generate a tax-proof report with vehicle details, odometer readings and trip list",
      "accessDashboard": "Dashboard — The mileage widget in the right panel shows your current month and lets you quickly add trips",
      "feature3": "Smart round-trip calculation: real km from last customer back home via Google Maps",
      "manualText": "For trips not linked to an appointment (e.g. picking up parts, visiting a supplier), add manual trips via the dashboard mileage widget or via Settings.",
      "proFeatureText": "Mileage tracking is available with the Pro subscription (€39.50/month) and higher.",
      "feature4": "Export to CSV for accounting or tax purposes",
      "proFeature": "Pro feature",
      "roundTrip": "Last appointment of the day → Return trip (real km home via Google Maps)",
      "vehicleText": "Go to Settings → Business → Mileage Tracking and fill in your license plate and vehicle name. This appears on your mileage reports and PDF exports.",
      "accessText": "Go to Settings → Business → Mileage Tracking to view your kilometer overview.",
      "exportChart": "Monthly chart — Visual overview of business vs. private km per month",
      "exportTip": "Export your mileage data as CSV at the end of each year for your tax records. The export includes date, type, location, one-way distance, round-trip indicator, and total kilometers.",
      "vehicleTitle": "Vehicle setup",
      "featuresTitle": "Features",
      "autoTrackTitle": "Automatic tracking"
    },
    "switchCalendar": {
      "dataApple": "Europe (Apple iCloud)",
      "noDataLossText": "All appointments are always safely stored in PianoPlanner. Calendar sync is just a copy to your calendar app. If you stop a sync, all appointments remain — both in PianoPlanner and in your old calendar.",
      "howTo": "Step-by-step switching",
      "comparisonTitle": "Comparison: Google vs Apple",
      "intro": "Want to switch from Google Calendar to Apple Calendar (or vice versa)? You can do this without losing any appointments. This is also relevant if you want to move away from US cloud services and have more control over your data.",
      "syncType": "Sync method",
      "dataLocation": "Data location",
      "step2Title": "2. Disconnect your current calendar",
      "step1Text": "Go to your calendar in PianoPlanner and verify all your appointments are there. All data is stored centrally — the calendar sync is just a copy.",
      "step3Title": "3. Create an app-specific password (Apple)",
      "step3Text": "Go to appleid.apple.com → Sign-In and Security → App-Specific Passwords. Create a new password named 'PianoPlanner'.",
      "step4Text": "Go to Settings → Calendar → Apple. Enter your Apple ID email and the app-specific password. Choose the right calendar.",
      "whySwitch": "Why switch?",
      "privacy": "Privacy (GDPR)",
      "direction": "Direction",
      "reason2": "Less Big Tech dependency: No Google account needed for your calendar",
      "step1Title": "1. Check your appointments",
      "step5Title": "5. Synchronize",
      "tipText": "After switching, your appointments still exist in your old calendar (e.g. Google). You can leave them as an archive, or manually delete them later. They will no longer be synchronized.",
      "noDataLoss": "No data loss",
      "step5Text": "PianoPlanner automatically sends all existing appointments (up to 1 year back and 1 year ahead) to your new Apple Calendar. No manual transfer needed.",
      "dataGoogle": "US (Google Cloud)",
      "reason3": "Better integration: Apple Calendar works seamlessly on iPhone, iPad and Mac",
      "tipTitle": "Tip: Clean up old calendar",
      "title": "Switch Calendar Provider",
      "step4Title": "4. Connect Apple Calendar",
      "step2Text": "Go to Settings → Calendar and click 'Disconnect' for your current provider (e.g. Google). Your appointments in PianoPlanner and your old calendar will remain intact.",
      "dirBoth": "Two-way",
      "reason1": "Privacy: Apple processes data in Europe (GDPR), Google in the US",
      "reason4": "Digital sovereignty: Your data, your choice where it's stored"
    },
    "microsoftCalendar": {
      "title": "Connecting Microsoft 365",
      "step5Title": "5. Sync active",
      "need2": "Access to your calendar",
      "tipText": "Microsoft 365 Business accounts may require additional approval from your IT administrator.",
      "intro": "Do you use Outlook or Microsoft 365? Connect your calendar for seamless synchronization with PianoPlanner.",
      "step2Title": "2. Click \"Connect Microsoft 365\"",
      "step2Text": "You'll be redirected to Microsoft to log in.",
      "connecting": "Connecting",
      "worksWithBothText": "Both personal (Outlook.com) and business (Microsoft 365) accounts are supported.",
      "whatGetsSynced": "What gets synced?",
      "sync3": "Cancellations",
      "sync1": "New appointments in PianoPlanner",
      "step3Title": "3. Log in with your Microsoft account",
      "step4Title": "4. Select your calendar",
      "whatYouNeed": "What do you need?",
      "step5Text": "Your appointments are now being synchronized.",
      "sync2": "Changes to time and date",
      "step3Text": "This can be a personal or business account. Allow the permissions.",
      "need1": "A Microsoft 365 or Outlook.com account",
      "worksWithBoth": "Works with both",
      "step4Text": "Choose which Outlook calendar you want to use.",
      "step1Title": "1. Go to Settings → Integrations",
      "step1Text": "Open the settings menu."
    },
    "importData": {
      "importOrderTip": "Always import customers first, then pianos. This way pianos are automatically linked to the correct customer.",
      "whatDoesItDoHeader": "What does it do?",
      "icsTitle": "Calendar (.ics) Import",
      "optionHeader": "Option",
      "step6Title": "Start import",
      "whatCanImportTitle": "What can you import?",
      "importCustomers": "Customers - Names, addresses, phone numbers, email addresses",
      "otherFormatsText": "In addition to CSV, PianoPlanner also supports the following import formats:",
      "step5Title": "Preview and configure",
      "vcardTitle": "vCard (.vcf) Import",
      "undoImportText": "Made a mistake? After importing, you'll see an \"Undo Import\" button that lets you remove all records from that import batch at once.",
      "icsDesc": "Import appointments from your existing calendar (Google, Apple, Outlook). Export as an .ics file and upload it to transfer your existing appointments.",
      "step2Text": "Navigate to Settings → Import Data or go directly to the import page.",
      "includeCompany": "Include company name",
      "undoImportTitle": "Undo Import",
      "intro": "Switching from another piano service management system? PianoPlanner makes it easy to import your existing customers and pianos.",
      "step4Title": "Upload the CSV file",
      "gazelleTitle": "Gazelle Import",
      "includeCompanyDesc": "Add company name to customer name",
      "importPianos": "Pianos - Brand, model, serial number, year, type, location",
      "gazelleDesc": "Switching from Gazelle (piano management software)? Use the dedicated Gazelle Import Wizard under Settings → Import → Gazelle. It automatically recognizes the Gazelle export format.",
      "howToImportTitle": "How to import",
      "step1Text": "Export your clients and/or pianos as CSV files from your current software.",
      "title": "Import Data",
      "vcardDesc": "Import contacts directly from your phone or email client. Export your contacts as a .vcf file and upload it to PianoPlanner.",
      "step2Title": "Go to Import",
      "step1Title": "Export from your current system",
      "step6Text": "Click \"Start Import\" and wait for the process to complete.",
      "optionsTitle": "Import options",
      "skipDuplicatesDesc": "Skip customers that already exist (based on email)",
      "activeOnly": "Active only",
      "step3Text": "Choose whether you want to import Customers or Pianos.",
      "skipDuplicates": "Skip duplicates",
      "activeOnlyDesc": "Only import customers/pianos marked as active",
      "step4Text": "Drag and drop your file or click to browse. The system will automatically detect the columns.",
      "step3Title": "Select what to import",
      "importHistory": "Service history - Last tuning dates are preserved",
      "step5Text": "Check the preview table and set options like \"Skip duplicates\" or \"Active clients only\".",
      "otherFormatsTitle": "Other Import Formats"
    },
    "businessDetails": {
      "whatToFillText": "In Settings → Company you'll find the following fields:",
      "whyImportantText": "Your address is used as the starting point for route calculations. If a customer lives nearby, the system sees this and can make smarter suggestions. Your company name and logo appear on every email you send.",
      "step3Text": "Your logo appears on the booking page and in emails.",
      "step2Text": "Company name, your name, email, phone and full address. Use Google Maps suggestions for an exact address.",
      "field5": "Logo - Upload your logo for a professional appearance",
      "tipText": "You can always adjust your details later. Start with the basics and refine as you gain more experience.",
      "intro": "Your business details appear in email confirmations and on your booking page. Fill these in correctly so customers know exactly who you are.",
      "step5Title": "Save",
      "whyImportantTitle": "Why is this important?",
      "step5Text": "Click Save to store your details.",
      "whatToFillTitle": "What to fill in?",
      "step1Text": "Click on Settings in the menu, or go directly to the 'Company' tab.",
      "field2": "Address - Your business address (used for route calculations)",
      "warning": "Without a correct address, travel times cannot be calculated. Fill this in first!",
      "howToSetup": "How to set up your business details?",
      "step1Title": "Go to Settings",
      "title": "Business Details",
      "step4Title": "Verify your address",
      "step4Text": "Make sure your address is correct - it's used for travel time calculations.",
      "step3Title": "Upload your logo (optional)",
      "field3": "Phone number - Where customers can reach you",
      "field1": "Company name - Your official business name",
      "field4": "Email address - For confirmations (can later be your own domain)",
      "step2Title": "Fill in your details"
    },
    "walkIn": {
      "tasksTitle": "Tasks without customer",
      "howTo3": "Task: add a description and time — no customer needed",
      "howTo2": "Walk-in: enter a name, choose a service, and pick a time",
      "howToTitle": "How to create",
      "walkInTitle": "Walk-in appointments",
      "howTo1": "From the dashboard: tap the + button and choose 'Walk-in' or 'Task'",
      "title": "Walk-in Appointments & Tasks",
      "intro": "Not every appointment needs a customer record. PianoPlanner lets you quickly create walk-in appointments and internal workshop tasks directly from your dashboard.",
      "walkInText": "When a customer walks in unexpectedly, use the quick walk-in button on your dashboard action sheet. Enter a name and service — no need to create a full customer record first.",
      "tip": "Walk-in appointments can be converted to full customer records later. If a walk-in customer returns, you can create a proper customer profile and link the previous appointment.",
      "howTo4": "Both types appear in your agenda and respect your availability",
      "tasksText": "Need to block time for internal work? Create a task without linking it to a customer. Perfect for workshop maintenance, administrative work, or personal time blocks."
    },
    "molliePayments": {
      "setupTitle": "Setting up Stripe",
      "step2Title": "Get your API key",
      "step2Text": "In your Stripe dashboard, go to Developers → API Keys. Copy your Secret key.",
      "title": "Online Payments (Stripe)",
      "tip": "Stripe charges per transaction (e.g., 2.9% + $0.30 per card payment). The invoice status is automatically updated when the customer pays.",
      "step3Title": "Connect in PianoPlanner",
      "intro": "Accept credit card, PayPal, and other payments directly on your invoices via Stripe. Customers click the payment link in the invoice email and pay instantly.",
      "step1Title": "Create a Stripe account",
      "step4Text": "When you send an invoice by email, a payment link is automatically added. Customers can pay directly via credit card, PayPal, or Apple Pay.",
      "step3Text": "Go to Settings → Integrations → Stripe. Paste your API key and click Connect. PianoPlanner will verify the connection.",
      "step4Title": "Send invoices with payment link",
      "step1Text": "Go to stripe.com and create a free account. Complete the verification process (identity check and bank account)."
    },
    "appleCalendar": {
      "connStep5Text": "Click Subscribe or OK. Your appointments now appear in Apple Calendar!",
      "connStep2Title": "2. Open Apple Calendar",
      "howItWorksTitle": "How does it work?",
      "limitationTitle": "Limitation",
      "passStep3Title": "3. Generate password",
      "requiredPasswordText": "Apple requires an app-specific password for third-party app access. This is an extra security layer.",
      "passStep4Text": "Copy the generated password - you'll only see it once!",
      "connStep3Text": "Paste the copied feed URL in the URL field.",
      "passStep1Title": "1. Go to Apple ID",
      "connStep1Title": "1. Copy your calendar feed URL",
      "passStep2Text": "Scroll to the 'App-Specific Passwords' section.",
      "step4Title": "4. Set refresh interval",
      "step3Title": "3. Paste the URL",
      "step2Title": "2. Open Apple Calendar",
      "howItWorksText": "PianoPlanner provides a calendar feed (ICS URL) that you can add to Apple Calendar. The calendar refreshes periodically (every 15-60 minutes).",
      "creatingPassword": "Creating an app-specific password",
      "passStep1Text": "Open appleid.apple.com and sign in with your Apple ID.",
      "step2Text": "On Mac: Calendar → File → New Calendar Subscription, On iPhone: Settings → Calendar → Accounts → Add Account → Other",
      "connStep4Title": "4. Configure settings",
      "step3Text": "Paste the copied link and confirm.",
      "connStep1Text": "Go to Settings → Integrations and copy the iCal feed URL.",
      "title": "Apple Calendar (iCloud)",
      "passStep2Title": "2. Go to Security",
      "connStep3Title": "3. Paste the URL",
      "requiredPassword": "Required: App-specific password",
      "passStep4Title": "4. Copy the password",
      "passStep3Text": "Click 'Generate Password' and give it a name (e.g. 'PianoPlanner').",
      "connectionInPP": "Connecting in PianoPlanner",
      "limitationText": "This is read-only. Changes in Apple Calendar will NOT be sent back to PianoPlanner. Always make changes in PianoPlanner itself.",
      "step1Text": "Go to Settings → Integrations and copy your personal ICS link.",
      "intro": "Apple Calendar works slightly differently than Google and Microsoft. You can subscribe your PianoPlanner calendar in Apple Calendar, but this is one-way synchronization.",
      "step4Text": "Choose how often the calendar should refresh (default: every 15 minutes).",
      "step1Title": "1. Copy your feed URL",
      "connStep2Text": "On Mac: File → New Calendar Subscription. On iPhone/iPad: Settings → Calendar → Accounts → Add Account.",
      "connStep5Title": "5. Subscribe",
      "connStep4Text": "Choose a name for the calendar and set the refresh interval."
    },
    "privateAppointments": {
      "step2Title": "Toggle \"Private Appointment\"",
      "title": "Private Appointments",
      "visualText": "Private appointments appear in purple with a 🔒 icon in your calendar, making them easy to distinguish from business appointments.",
      "howToTitle": "How to create a private appointment",
      "step3Title": "Add a purpose (optional)",
      "syncText": "When synced to Google, Apple, or Microsoft calendars, private appointments appear as \"Busy\" without showing any details, location, or description. Your privacy is protected!",
      "visualTitle": "Visual distinction",
      "step1Text": "Open the appointment form on the dashboard.",
      "syncTitle": "Calendar sync",
      "taxTip": "Private kilometers are tracked separately and can be exported for tax purposes. This helps maintain a clear split between business and personal travel.",
      "step3Text": "Enter a description like \"Doctor\", \"Shopping\", or \"Family visit\".",
      "step2Text": "Enable the purple toggle to mark this as a private trip.",
      "step1Title": "Create or edit an appointment",
      "intro": "Need to track personal trips separately from business appointments? Mark appointments as private to keep them separate in your mileage records and sync them to external calendars without revealing details."
    },
    "qrCode": {
      "step1Text": "Navigate to Settings → Booking Link and click the QR code button, or open the QR page directly.",
      "title": "QR Code",
      "step2Title": "Download or print",
      "step1Title": "Go to the QR code page",
      "step2Text": "The QR code links to your personal booking page. Download it as an image and use it on your marketing materials.",
      "intro": "PianoPlanner has a built-in QR code generator for your booking page. Print it on business cards, flyers, or place it in your workshop — customers scan it and go directly to your booking page."
    },
    "customerLink": {
      "sees2": "Their piano(s) to choose from",
      "title": "Personal Links for Regular Customers",
      "step2Text": "Open the customer details.",
      "step3Title": "3. See \"Booking link\"",
      "stepByStep": "Step by step: Finding and sharing the link",
      "needNewLinkTitle": "Need a new link?",
      "step1Title": "1. Go to Customers",
      "defaultServiceText": "You can set a default service per customer so it's automatically selected when they open their link.",
      "defaultStep4Text": "The service will now be automatically selected on their booking link.",
      "sees3": "Smart time suggestions based on their location",
      "defaultService": "Set default service",
      "defaultStep4Title": "4. Save",
      "step5Text": "Copy the link or share it directly via email or WhatsApp.",
      "perfectForText": "Regular customers who come back regularly, customers with multiple pianos, theaters and businesses with complex bookings.",
      "defaultStep3Title": "3. Select default service",
      "findingTitle": "Finding the link",
      "howItWorksTitle": "How does it work?",
      "step1Text": "Open the customer list.",
      "whenOpensLink": "When the customer opens the link:",
      "step5Title": "5. Copy or share",
      "step3Text": "Copy this customer's personal link.",
      "step2Title": "2. Click on a customer",
      "defaultStep2Text": "Open the edit form.",
      "needNewLink": "Need a new link?",
      "needNewLinkText": "If a link no longer works or you want to reset it, you can generate a new link in the customer details.",
      "intro": "Regular customers don't have to fill in their details every time. Every customer in PianoPlanner has a unique link with pre-filled details.",
      "defaultStep1Title": "1. Go to the customer",
      "defaultStep3Text": "Choose the service this customer usually books.",
      "sees4": "Only relevant services",
      "whatCustomerSees": "What does the customer see?",
      "realExampleText": "You send Mrs. Johnson a reminder every year. Instead of \"call me for an appointment\" you send her personal link. She clicks, chooses a time, and done. No phone calls, no hassle.",
      "realExampleTitle": "Real-world example",
      "sees1": "Their name and address already filled in",
      "defaultStep2Title": "2. Click Edit",
      "howItWorksText": "When a customer opens their personal link, they see:",
      "defaultStep1Text": "Open the customer details.",
      "perfectFor": "Perfect for:",
      "realExample": "Practical example",
      "step4Title": "4. Share the link",
      "step4Text": "Send the link via email or save it for later use.",
      "sees5": "Can book directly without an account"
    },
    "firstSteps": {
      "quickStart4": "Your first customer - Add one and try it yourself",
      "quickStartTitle": "Quick Start (5 minutes)",
      "benefit1": "Travel times are calculated correctly",
      "quickStart1": "Business details - Your name and address for confirmations",
      "settingsTitle": "Find the settings",
      "orderList": "1. Business Details → 2. Working Hours → 3. Service Area → 4. Calendar → 5. Email → 6. Booking Link",
      "intro": "Welcome to PianoPlanner! This guide will help you get started quickly. Begin with these essential settings and you'll be ready to book your first appointment within minutes.",
      "benefit2": "Customers can only book when you're available",
      "configureText": "Take some time to configure everything properly. This saves you work later and ensures that:",
      "quickStart3": "Services - What do you offer? (Tuning, regulation, etc.)",
      "quickStart2": "Working hours - When can customers book?",
      "settingsText": "Everything you need to configure can be found in Settings (the gear ⚙️ in the menu). Below we'll help you step by step.",
      "benefit4": "Appointments automatically appear in your calendar",
      "benefit3": "Emails look professional with your own details",
      "recommendedOrder": "Recommended Order",
      "title": "First Steps",
      "onboardingTip": "Use the Onboarding Wizard (Settings → Onboarding) to be guided through the most important settings step by step."
    },
    "pushNotifications": {
      "tip": "For the best experience, install the PWA on your phone and enable notifications. This way you'll be instantly notified when a customer books, even when you're not actively using PianoPlanner.",
      "intro": "Receive instant push notifications when a customer books an appointment online. Works on desktop and mobile (when the PWA is installed).",
      "step1Text": "Go to Settings → Notifications and enable push notifications. Your browser will ask for permission — click \"Allow\".",
      "step2Title": "Test",
      "step2Text": "Click \"Send test notification\" to check if it works. You should see a notification within a few seconds.",
      "step1Title": "Enable notifications",
      "title": "Push Notifications"
    },
    "subtitle": "Everything you need to know to get the most out of PianoPlanner",
    "needHelp": {
      "contactButton": "Contact Support",
      "text": "Can't figure it out? Feel free to contact us.",
      "title": "Need Help?"
    }
  },
  "travelReport": {
    "notes": "Notes",
    "time": "Time",
    "subtitle": "Overview of all travel distances for invoicing",
    "distance": "Distance",
    "avgKm": "Avg. km",
    "errorExport": "Generate a report first",
    "location": "Location",
    "searchPlaceholder": "Search customer...",
    "endDate": "To",
    "startDate": "From",
    "export": "CSV",
    "emptyHint": "The report will be generated automatically",
    "loading": "Loading...",
    "travelTime": "Travel Time",
    "customer": "Customer",
    "generate": "Generate Report",
    "selectDates": "Select a start and end date",
    "noDataFound": "No travel data found",
    "route": "Route",
    "totalTime": "Travel Time",
    "totalKm": "Kilometers",
    "errorLoading": "Could not load report",
    "customerFilter": "Customer (optional)",
    "service": "Service",
    "date": "Date",
    "title": "Travel Expenses Report - PianoPlanner",
    "heading": "Travel Expenses",
    "emptyState": "Select a period",
    "costLabel": "Expenses",
    "totalAppointments": "Trips"
  },
  "onboarding": {
    "postalCode": "Zip code",
    "postalCodePlaceholder": "10001",
    "cityPlaceholder": "Chicago",
    "noServices": "No services yet. Add one!",
    "minutes25": "25 minutes",
    "modalEditService": "Edit service",
    "cancel": "Cancel",
    "created": "Created!",
    "calendarWhy1": "PianoPlanner sees when you already have an appointment",
    "phone": "Phone number",
    "country": "Country",
    "testCardTitle": "Create test customer",
    "travelDescription": "Set your travel time preferences for the smart scheduler.",
    "next": "Next",
    "minutes20": "20 minutes",
    "errorServiceDelete": "Could not delete service.",
    "serviceDuration": "Duration (minutes) *",
    "tipRedText": "A piano hasn't been tuned for too long — urgent to schedule!",
    "calendarOptionIcalBtn": "View iCal instructions",
    "errorGeneric": "Something went wrong.",
    "stepCompany": "Company",
    "companyNamePlaceholder": "e.g. Piano Service Toronto",
    "servicesDescription": "Configure the services you offer. You can always add more later.",
    "companyDescription": "Enter your company information. This will be used for invoices and customer communications.",
    "calendarIcalHowText": "You'll copy a special 'digital key' (a link) and paste it once into your own calendar app. After that, all your appointments sync automatically.",
    "calendarOptionOutlookBtn": "Connect Outlook",
    "serviceDescription": "Description",
    "tipRedTitle": "Red dates",
    "calendarIcalNote2": "Automatic — as soon as you schedule an appointment, it appears in your other calendar automatically.",
    "serviceName": "Name *",
    "calendarDescription": "Link your existing calendar so PianoPlanner knows when you're already busy. This prevents the smart scheduler from creating double bookings.",
    "finishBtn": "Start PianoPlanner",
    "tryAgain": "Try again",
    "calendarIcalHow": "How does it work?",
    "welcome": "Welcome to PianoPlanner",
    "modalAddService": "Add service",
    "calendarWhy2": "The smart planner only suggests available time slots",
    "errorSaving": "Something went wrong while saving. Please try again.",
    "testTitle": "Try it out",
    "addressAutoFill": "Address is automatically filled in via Google",
    "errorCompanyName": "Please enter a company name.",
    "stepTest": "Test",
    "stepServices": "Services",
    "stepTravel": "Travel",
    "companyTitle": "Company details",
    "previous": "Previous",
    "maxBookingTravelTime": "Max. travel time for bookings (minutes)",
    "hours1_5": "1.5 hours",
    "calendarIcalGoodToKnow": "Good to know",
    "calendarWhyTitle": "Why connect your calendar?",
    "pleaseWait": "Please wait...",
    "errorServiceSave": "Could not save service.",
    "minutes45": "45 minutes",
    "calendarOptionIcalDesc": "Works with Samsung Calendar, Thunderbird, and any other app that supports iCal. Read-only.",
    "calendarConnected": "Calendar connected!",
    "hour1": "1 hour",
    "confirmDeleteService": "Are you sure you want to delete this service?",
    "testDescription": "Create a test customer to explore the app.",
    "calendarOptionAppleBtn": "Connect Apple Calendar",
    "minutes10": "10 minutes",
    "calendarIcalStep1": "After setup, go to Settings → Integrations where you'll find a button to copy the calendar link.",
    "minutes40": "40 minutes",
    "calendarWhy3": "Customers cannot book at times when you're busy",
    "calendarIcalStep2Title": "Paste the link in your calendar",
    "skip": "Skip and configure later",
    "findAddress": "Find address",
    "calendarIcalStep2": "Open your calendar app and look for the option to add a calendar.",
    "calendarIcalStep1Title": "Copy the link",
    "hours2": "2 hours",
    "calendarIcalIntro": "Would you like your tuning appointments to automatically appear in the calendar you already use on your phone or computer (such as Samsung, Google, or Outlook)? That's easy — just connect the calendars.",
    "testCardDescription": "We'll create an example customer \"Test Customer\" with a piano \"Yamaha U1\". This way you can see how everything works!",
    "calendarOptionApple": "Apple Calendar (iCloud)",
    "minutes35": "35 minutes",
    "serviceOptional": "Optional",
    "testResult": "✅ Test customer and piano created!",
    "calendarOptionOutlook": "Microsoft Outlook",
    "servicePrice": "Price",
    "minutes30": "30 minutes",
    "serviceNamePlaceholder": "e.g. Tuning",
    "travelTitle": "Travel Time & Preferences",
    "companyName": "Company name *",
    "calendarIcalTitle": "Your tuning appointments in your own trusted calendar",
    "calendarTitle": "Connect Your Calendar",
    "city": "City",
    "testButton": "Create test customer",
    "maxTravelTime": "Max. travel time between appointments (minutes)",
    "calendarIcalNote1": "View only — you can see your appointments in your own calendar, but changes are made in PianoPlanner.",
    "findAddressPlaceholder": "e.g. 123 Main Street, Toronto",
    "doneDescription": "Here are some tips to get started:",
    "calendarIcalStep3": "Open your calendar app and look for 'Add Calendar' or 'Subscribe'",
    "stepCalendar": "Calendar",
    "minutes15": "15 minutes",
    "doneTitle": "You're all set!",
    "calendarSkip": "Skip, I'll do this later",
    "calendarOptionIcal": "Other calendar (iCal)",
    "stepDone": "Done!",
    "addService": "Add service",
    "subtitle": "Let's configure your account in a few steps",
    "calendarIcalStep4": "Paste the URL and save — your appointments will appear within an hour",
    "calendarOptionGoogle": "Google Calendar",
    "calendarIcalTipOutlook": "Choose 'New calendar' then select 'From network' or 'From Internet'.",
    "maxBookingTravelTimeHint": "Customers outside this range will see a contact message.",
    "calendarIcalExplain": "iCal is a universal format that lets calendar apps talk to each other. PianoPlanner gives you a special link (URL) that you paste into your own calendar app. Your appointments will then appear automatically.",
    "tipSmartTitle": "Smart Appointment",
    "skipConfirm": "Are you sure you want to skip the setup? You can always adjust these settings later in Settings.",
    "calendarSkipNote": "No worries — you can always set this up later via Settings → Integrations.",
    "calendarOptionGoogleDesc": "Best choice if you use Gmail or a Google account. Full two-way sync.",
    "creating": "Creating...",
    "tipGreenTitle": "Green dates",
    "street": "Street and house number",
    "calendarIcalWhat": "What is iCal?",
    "calendarOptionAppleDesc": "Ideal if you use an iPhone or Mac. Two-way sync via iCloud.",
    "servicesTitle": "Configure Services",
    "tipGreenText": "A piano needs tuning soon and fits well in your schedule.",
    "save": "Save",
    "tipSmartText": "Get automatic appointment suggestions based on location and urgency.",
    "calendarOptionGoogleBtn": "Connect Google Calendar",
    "calendarIcalTipGoogle": "Go to 'Add calendar' (preferably on your computer) and choose 'From URL'.",
    "calendarOptionOutlookDesc": "For users of Outlook, Hotmail, or a Microsoft 365 work account.",
    "maxTravelTimeHint": "Smart Appointment prioritizes appointments within this range."
  },
  "projects": {
    "duplicateTitle": "Duplicate project",
    "pdf": "PDF",
    "hoursPlanned": "Planned",
    "materialArticleNumber": "Article number",
    "filterAll": "All",
    "priorityLow": "Low",
    "weekFull": "Week is fully scheduled",
    "materialsCatalog": "Materials catalog",
    "statusPlanning": "Planning",
    "typeLabor": "Labor",
    "materialCostPrice": "Cost price",
    "costPrice": "Cost price",
    "projectTitle": "Project title",
    "capacity": "Capacity this week",
    "dayTue": "Tue",
    "hours": "hours",
    "projectCreated": "Project created",
    "guideTheaterDesc": "Theaters and regular customers get a personal booking link. They can view their own appointments (upcoming + history) and book new appointments directly. Find the link in the customer profile.",
    "materialCategory": "Category",
    "notesPlaceholder": "Internal notes...",
    "descriptionPlaceholder": "What needs to be done?",
    "weekCapacity": "Week capacity",
    "typeMaterial": "Material",
    "description": "Description",
    "workshopHourlyRate": "Workshop hourly rate",
    "guideCreateDesc": "Click 'New project' to create a workshop job. Add a title, optionally link a customer/piano, and set an estimated hours budget.",
    "titlePlaceholder": "E.g. Steinway B restoration",
    "unit": "Unit",
    "hoursUsed": "hours used",
    "taskUpdated": "Task updated",
    "unitLiter": "Liter",
    "noProjectsFilter": "No projects match this filter",
    "unitSet": "Set",
    "dayThu": "Thu",
    "hoursAvailableWeek": "hours available this week",
    "confirmDeleteTaskText": "This action cannot be undone.",
    "workHistory": "Work History",
    "quoteSummary": "Cost overview",
    "status": "Status",
    "timelineTitle": "Project Timeline",
    "priority": "Priority",
    "deadline": "Deadline",
    "materialDeleted": "Material deleted",
    "upgradeCta": "Upgrade to Business",
    "unitPrice": "Price",
    "projectDuplicated": "Project duplicated",
    "taskTitle": "Task",
    "selectFromCatalog": "Select from catalog",
    "statusCompleted": "Completed",
    "selectCustomer": "Select customer",
    "materialSaved": "Material saved",
    "priorityHigh": "High",
    "selectCustomerFirst": "Select a customer first",
    "dayFri": "Fri",
    "addMaterial": "Add material",
    "hoursWorked": "Hours worked",
    "typeOther": "Other",
    "confirmDelete": "Delete project?",
    "noProjects": "No projects yet",
    "priorityNormal": "Normal",
    "hoursEstimated": "Estimated",
    "taskInProgress": "In progress",
    "guideProgressDesc": "See at a glance: tasks completed, hours worked vs. planned, and remaining budget. The week capacity shows how much room you have left.",
    "noProjectsText": "Get started by clicking 'New project' to create your first project.",
    "guideTip": "<strong>Tip:</strong> Use status filters to stay focused. Set completed projects to 'Completed' to keep your overview clean. Projects with deadlines turn red when they're approaching!",
    "noCustomer": "-- No customer --",
    "overbookedWarning": "Warning: {hours} hours overbooked this week!",
    "project": "Project",
    "viewAll": "View all",
    "editTask": "Edit task",
    "notFound": "Project not found",
    "tasksCompleted": "Tasks completed",
    "confirmDeleteTask": "Delete task?",
    "totalToBill": "To invoice",
    "filterCompleted": "Completed",
    "duplicate": "Duplicate",
    "copyQuote": "Copy quote",
    "detailTitle": "Project - PianoPlanner",
    "upgradeTitle": "Workshop Project Planner",
    "lineTotal": "Total",
    "estimatedHours": "Estimated hours",
    "duplicating": "Duplicating project...",
    "confirmDeleteText": "This will delete the project and all tasks. This cannot be undone.",
    "noProjectsHint": "Create your first workshop project.",
    "guideLink": "Link appointments",
    "filterPlanning": "Planning",
    "statusCancelled": "Cancelled",
    "guideTheater": "Theaters & regular customers",
    "projectUpdated": "Project updated",
    "taskDone": "Done",
    "tasks": "Tasks",
    "addTask": "Add",
    "pricing": "Pricing",
    "guideTasks": "Manage tasks",
    "materialDefaultPrice": "Default selling price",
    "runningProjects": "Running projects",
    "itemType": "Type",
    "addTaskPlaceholder": "Add a new task...",
    "taskTodo": "To do",
    "statusPaused": "Paused",
    "title": "Projects",
    "duplicateError": "Could not duplicate project",
    "dueDate": "Due date",
    "daySun": "Sun",
    "taskTitleRequired": "Task title is required",
    "actualHours": "Actual hours",
    "viewAgenda": "View agenda",
    "newProject": "New project",
    "piano": "Piano",
    "customer": "Customer",
    "projectSaved": "Project saved",
    "quoteCopied": "Quote copied to clipboard",
    "noWorkHistory": "No workshop appointments linked yet",
    "guideCreate": "Create a project",
    "dayMon": "Mon",
    "subtitle": "Workshop project planner",
    "viewGrid": "Cards",
    "materialName": "Name",
    "statusActive": "Active",
    "completedTasks": "Completed",
    "appointment": "Appointment",
    "hoursAvailable": "available",
    "howToUse": "How does it work?",
    "unitMeter": "Meter",
    "taskAdded": "Task added",
    "projectDeleted": "Project deleted",
    "upgradeBtn": "Upgrade to Business",
    "notes": "Notes",
    "guideLinkDesc": "Create workshop appointments in the agenda and select the project under 'Workshop'. Hours worked are automatically tracked and deducted from the budget.",
    "searchPlaceholder": "Search projects...",
    "upgradeText": "The project planner is available with the Business plan. Upgrade to manage projects and tasks.",
    "materialSupplier": "Supplier",
    "filterActive": "Active",
    "dayWed": "Wed",
    "isBillable": "Billable",
    "unitHour": "Hour",
    "editProject": "Edit project",
    "priorityUrgent": "Urgent",
    "titleRequired": "Project title is required",
    "progress": "Progress",
    "guideTasksDesc": "Add tasks as a checklist: order materials, pick up parts, call customer, etc. Check off what's done to track progress.",
    "taskDeleted": "Task deleted",
    "taskDescription": "Description",
    "quantity": "Quantity",
    "selectPiano": "Select piano",
    "viewTimeline": "Timeline",
    "noPiano": "-- No piano --",
    "unitPiece": "Piece",
    "guideProgress": "Track progress",
    "backToProjects": "Back to projects",
    "guideTitle": "Workshop Project Planner - Guide",
    "daySat": "Sat",
    "addRowError": "Could not add row"
  },
  "privacy": {
    "title": "Privacy Policy",
    "subtitle": "How we collect, use and protect your data",
    "h1": "1. What data do we collect?",
    "p1": "We process data in two categories:",
    "h2": "2. Purpose of data processing",
    "p2": "We process this data exclusively to:",
    "h3": "3. Sharing data and Synchronization",
    "p3a": "<strong>3.1. External Calendar Services:</strong> If you activate two-way synchronization, appointment data is exchanged with external parties such as Google (Google Calendar), Apple (iCloud) or Microsoft (Outlook). We have no control over the privacy policies of these third parties.",
    "p3b": "<strong>3.2. Processors:</strong> We use trusted sub-processors for hosting (cloud infrastructure), email delivery and payments. Data processing agreements compliant with the GDPR have been concluded with these parties.",
    "p3c": "<strong>3.3. No selling:</strong> We will never sell or rent your data or your customers' data to third parties for marketing purposes.",
    "h4": "4. Security and Storage",
    "p4a": "<strong>4.1. Security:</strong> We take appropriate technical and organizational measures to protect data against loss or unlawful processing, including SSL encryption and secured databases.",
    "p4b": "<strong>4.2. Local storage (PWA):</strong> When using the Progressive Web App, certain data may be stored locally on your device to enable offline use and fast synchronization. You are responsible for the physical security of your devices.",
    "h5": "5. Retention period",
    "p5": "We retain your data as long as your account is active. After termination of your subscription, we retain your data for a maximum of 30 days to enable export. After that, all customer data is permanently deleted, unless legal retention obligations require us to retain it longer.",
    "h6": "6. Your rights",
    "p6": "Under the GDPR, you have the following rights regarding your personal data:",
    "p6outro": "You can exercise these rights through the settings in your account or by contacting us at info@pianoplanner.com.",
    "h7": "7. Contact details",
    "lastUpdated": "Last updated: February 23, 2026",
    "tldr": "We never sell your data. Your information is stored securely on European servers. You are and remain the owner of your customer data.",
    "toc4": "Security",
    "toc3": "Sharing",
    "toc7": "Contact",
    "toc1": "Data",
    "toc2": "Purpose",
    "toc5": "Retention",
    "toc6": "Your rights",
    "intro": "Introduction",
    "catA": "Category A",
    "catA1": "First and last name",
    "catA2": "Address data",
    "catA3": "Phone number",
    "catB": "Category B",
    "catB1": "Email address",
    "catB2": "IP address",
    "catB3": "Browser information",
    "p2a": "Delivering products/services",
    "p2b": "Customer service",
    "p2c": "Improving our website",
    "p2d": "Legal obligations",
    "p6a": "Right of access",
    "p6b": "Right to rectification",
    "p6c": "Right to erasure"
  },
  "terms": {
    "title": "Terms and Conditions",
    "subtitle": "Terms of use for PianoPlanner",
    "h1": "1. Identity of the Entrepreneur",
    "p1": "PianoPlanner is a service of Edward Meijer, operating under the name Edan Creative (also trading as Edward Meijer Piano & Grand Piano Maintenance). Located in Tilburg, The Netherlands. Chamber of Commerce: 18073263.",
    "p1b": "By creating an account or using PianoPlanner, you agree to these terms and conditions.",
    "h2": "2. Description of the Service",
    "p2": "PianoPlanner is an online planning and customer management service (SaaS) for piano technicians, available via a web browser and as a Progressive Web App (PWA). The service includes calendar, customer management, instrument registration, invoicing and optional two-way synchronization with external calendar services.",
    "h3": "3. Intellectual Property",
    "p3a": "<strong>3.1. Ownership:</strong> The PianoPlanner service, including source code, design, algorithms, graphic elements and all content, is the exclusive intellectual property of Edward Meijer.",
    "p3b": "<strong>3.2. Trademark:</strong> The name \"PianoPlanner\" and associated logos are protected trademarks (applied for/registered at BOIP). Use of these marks without prior written consent is prohibited.",
    "p3c": "<strong>3.3. License:</strong> Users receive a non-exclusive, non-transferable right to use the software for the duration of their subscription. Copying, decompiling or selling the software to third parties is prohibited.",
    "h4": "4. Use of the Service and PWA",
    "p4a": "<strong>4.1. Account:</strong> The user is responsible for keeping login credentials confidential and for all activities under their account.",
    "p4b": "<strong>4.2. Synchronization:</strong> PianoPlanner uses technology for two-way synchronization between devices and external calendar services. The user is responsible for correct browser settings and internet connection to enable this synchronization.",
    "p4c": "<strong>4.3. Acceptable Use:</strong> It is prohibited to use the service for illegal purposes or in a way that compromises system integrity.",
    "h5": "5. Subscriptions and Payment",
    "p5a": "<strong>5.1. Pricing:</strong> Current prices for the various plans (Solo, Pro, Business) are listed on the website.",
    "p5b": "<strong>5.2. Payment:</strong> Payments are processed via Mollie. Subscriptions are automatically renewed unless cancelled before the end of the billing period.",
    "p5c": "<strong>5.3. Cancellation:</strong> After cancellation, the user retains access to data until the end of the paid period.",
    "h6": "6. Data and Privacy",
    "p6a": "<strong>6.1. Data Ownership:</strong> The user remains the owner of all entered customer and instrument data.",
    "p6b": "<strong>6.2. Processing:</strong> We process personal data in accordance with our Privacy Policy and the GDPR.",
    "p6c": "<strong>6.3. Export:</strong> After termination of the service, the user has 30 days to export data, after which it may be permanently deleted.",
    "h7": "7. Limitation of Liability",
    "p7a": "<strong>7.1. Availability:</strong> We strive for high availability but do not guarantee 100% uptime.",
    "p7b": "<strong>7.2. External Services:</strong> We are not liable for disruptions or changes in linked external services (Google, Apple, Microsoft).",
    "p7c": "<strong>7.3. Data Loss:</strong> Although we make daily backups, we accept no liability for data loss beyond our direct fault.",
    "p7d": "<strong>7.4. Maximum Liability:</strong> Our total liability is limited to the amount the user has paid in the 12 months preceding the damage event.",
    "h8": "8. Maintenance and Backup",
    "p8a": "<strong>8.1. Maintenance:</strong> We may temporarily interrupt the service for necessary maintenance.",
    "p8b": "<strong>8.2. Backup:</strong> Although we make daily backups, we advise users to regularly create their own exports of critical business data.",
    "h9": "9. Changes and Applicable Law",
    "p9a": "<strong>9.1. Changes:</strong> We may modify these terms. Major changes will be communicated at least 30 days in advance.",
    "p9b": "<strong>9.2. Law:</strong> These terms are exclusively governed by Dutch law.",
    "p9c": "<strong>9.3. Disputes:</strong> Any disputes shall be submitted to the competent court in Breda.",
    "lastUpdated": "Last updated: February 23, 2026",
    "toc7": "Liability",
    "toc2": "Service",
    "toc9": "Changes",
    "toc6": "Privacy",
    "toc4": "Usage & PWA",
    "toc8": "Maintenance",
    "tldr": "You remain the owner of your data. You can cancel anytime — you keep access until the end of the billing period. After cancellation, you have 30 days to export your data. Dutch law applies.",
    "toc1": "Identity",
    "toc5": "Payment",
    "toc3": "Ownership"
  },
  "travelV2": {
    "pageTitle": "Trips & Travel Expenses - PianoPlanner",
    "heading": "Trips & Travel Expenses",
    "tabOverview": "Overview",
    "tabTrips": "Trip List",
    "tabVehicle": "Vehicle",
    "year": "Year:",
    "totalKm": "Total km",
    "businessKm": "Business km",
    "privateKm": "Private km",
    "declaration": "Declaration",
    "manualTrips": "Manual",
    "odometerDiff": "Odometer diff",
    "monthlyChart": "Monthly Overview",
    "business": "Business",
    "private": "Private",
    "filterAll": "All",
    "filterBusiness": "Business",
    "filterPrivate": "Private",
    "filterManual": "Manual",
    "searchTrips": "Search trip...",
    "addTrip": "Add trip",
    "colDate": "Date",
    "colPurpose": "Purpose",
    "colRoute": "Route",
    "colType": "Type",
    "colSource": "Source",
    "colDistance": "Distance",
    "noTrips": "No trips found",
    "noTripsHint": "Select a different year or change the filter",
    "loading": "Loading...",
    "purposePlaceholder": "Trip purpose",
    "fromPlaceholder": "From",
    "toPlaceholder": "To",
    "roundTrip": "Round trip",
    "vehicleInfo": "Vehicle information",
    "licensePlate": "License plate",
    "vehicleName": "Vehicle name",
    "save": "Save",
    "odometerTitle": "Odometer readings",
    "odometerDate": "Date",
    "odometerReading": "Reading (km)",
    "period": "Period:",
    "periodWeek": "Week",
    "periodMonth": "Month",
    "periodQuarter": "Quarter",
    "periodYear": "Year",
    "periodCustom": "Custom",
    "periodTo": "to",
    "tripsCount": "{count} trips",
    "exportCsv": "CSV",
    "exportPdf": "PDF",
    "exportCsvTitle": "Export as CSV",
    "exportPdfTitle": "Export as PDF",
    "loadError": "Error loading data",
    "tripSaveError": "Error saving trip",
    "tripUpdateError": "Error updating trip",
    "confirmDeleteTrip": "Are you sure you want to delete this trip?",
    "deleteError": "Error deleting",
    "kmOverrideError": "Error adjusting km",
    "vehicleSaved": "Vehicle saved",
    "vehicleSaveError": "Error saving vehicle",
    "noOdometerReadings": "No odometer readings yet",
    "odometerSaveError": "Error saving reading",
    "noDataExport": "No data to export",
    "csvHeader": "Date,Purpose,From,To,Type,Source,Distance (km),Return",
    "pdfError": "Error exporting PDF"
  },
  "invoices": {
    "sampleLine1": "1 x Piano tuning grand piano",
    "sampleLine2": "1 x Travel costs",
    "sampleCompany": "My Company",
    "vatExempt": "Exempt",
    "selectCustomerError": "Select a customer",
    "invoiceSaved": "Invoice saved",
    "confirmDismiss": "Mark {count} item(s) as handled? They will be removed from the list.",
    "logoPosition": "Logo position",
    "guideStatusDesc": "Track invoices via status cards: Draft, Outstanding, Paid and Overdue. Click a card to filter. Overdue invoices are marked in red.",
    "ublHint": "Sends a machine-readable e-invoice (UBL 2.1) as attachment alongside the PDF. Enabled by default for EU countries.",
    "paid": "Paid",
    "internalNotes": "Internal notes",
    "searchPiano": "Search piano...",
    "loading": "Loading...",
    "logoDeleted": "Logo deleted",
    "fsVoettekst": "Footer text",
    "creditNote": "Credit note",
    "lineTotal": "Total",
    "nextInvoicePreview": "Next invoice:",
    "searchPlaceholder": "Search by number or customer...",
    "paymentTermsDays": "Payment terms (days)",
    "statusCancelled": "Cancelled",
    "statusSent": "Sent",
    "vatRegion": "VAT region",
    "creditCreated": "Credit note created",
    "issueDateError": "Enter an invoice date",
    "duplicate": "Duplicate",
    "layoutEditor": "Invoice Layout Editor",
    "mollieHint": "Enter your Mollie Live API key to enable online payment links on invoices.",
    "dueDate": "Due date",
    "customerOffsetY": "Customer address vertical (mm)",
    "defaultVat": "Default VAT %",
    "selectFileFirst": "Please select a file first",
    "bankDetails": "Bank details",
    "guideVat": "VAT calculation",
    "paymentTermsCash": "Cash / Card",
    "pageTitle": "Invoices - PianoPlanner",
    "emailSent": "Invoice sent by email",
    "eInvoicing": "E-invoicing",
    "preview": "Preview",
    "colNumber": "Number",
    "subtotal": "Subtotal",
    "createFirst": "Create first invoice",
    "contactPosition": "Customer info position",
    "totalInvoices": "Total",
    "fromTemplate": "From template",
    "openTasks": "To invoice",
    "markSent": "Mark as sent",
    "markConfirmed": "Confirm without email",
    "confirmNoEmail": "Confirm without email",
    "invoiceConfirmed": "Invoice confirmed (no email sent)",
    "notes": "Notes",
    "emailTemplate": "Accompanying email",
    "dismissError": "Error dismissing task",
    "defaultCreditBody": "Dear {{firstName}},\n\nPlease find attached credit note {{invoiceNumber}}.\nThe total amount is {{amount}}.\n\nThe credit note is included as an attachment.\n\nKind regards",
    "numberOnSend": "Invoice number will be assigned automatically when sent",
    "downloadUbl": "UBL XML",
    "deleteLetterheadConfirm": "Delete letterhead?",
    "marginSize": "Page margin",
    "errorCredit": "Error creating credit note",
    "multiCustomerSelected": "{count} items from {customers} customers selected",
    "desktopHint": "Adjust layout details like logo position, font sizes and margins on desktop with the live preview.",
    "guideSend": "Send by email",
    "markPaidError": "Error marking as paid",
    "stripeApiKey": "Stripe API key",
    "paymentTerms": "Payment terms",
    "fromPiano": "Add piano...",
    "savePaymentTermsToCustomer": "Save payment terms \"{terms}\" to {name}?",
    "nextNumber": "Next number",
    "delete": "Delete",
    "customer": "Customer",
    "unitPrice": "Price",
    "hideCompanyInfo": "Hide company info on invoice (already on letterhead)",
    "onlinePayment": "Online payment",
    "noLetterhead": "No letterhead yet",
    "colAmount": "Amount",
    "selectCustomer": "Select customer...",
    "contactRight": "Right",
    "fontSizes": "Font sizes",
    "posLeft": "Left",
    "companyBlockPosition": "Company info position",
    "emailSubject": "Subject",
    "deletedMsg": "Invoice deleted",
    "customerOffsetX": "Customer address horizontal (mm)",
    "ublAttach": "Attach UBL XML",
    "addLine": "Add line",
    "bankName": "Bank name",
    "alreadyCredited": "This invoice has already been credited",
    "overdue": "Overdue",
    "senderAlign": "Sender alignment",
    "invoiceDetail": "Invoice",
    "contactBlockHint": "Use variables to automatically fill in your details. Leave empty for default layout.",
    "fsFactuurtitel": "Invoice title",
    "invoiceNumber": "Invoice number",
    "guideSendDesc": "Send invoices as PDF by email directly from PianoPlanner. Customize the email template in settings with variables like customer and amount.",
    "emailBodyTemplate": "Message",
    "posCenter": "Center",
    "layout": "Layout",
    "statusOverdue": "Overdue",
    "save": "Save",
    "errorDuplicate": "Error duplicating",
    "numbering": "Numbering",
    "description": "Description",
    "defaultCreditSubject": "Credit Note {{invoiceNumber}}",
    "confirmDeleteLogo": "Are you sure you want to delete the logo?",
    "creditedBy": "Credited with",
    "includePaymentLink": "Include payment link",
    "internalNotesPlaceholder": "Only visible to you, not on the invoice...",
    "guideTip": "<strong>Tip:</strong> Use the search bar to quickly find an invoice by number or customer name. Download invoices as PDF or send them directly — all from one screen.",
    "settingsTitle": "Invoice settings",
    "customerPosition": "Customer info position",
    "companyLogo": "Company logo",
    "footerText": "Invoice footer text",
    "emailBcc": "BCC (copy to)",
    "changesSaved": "Changes saved",
    "statusPaid": "Paid",
    "guideVatDesc": "For private customers, the service price is <strong>VAT inclusive</strong> — VAT is calculated from the amount. For business customers, the price is <strong>VAT exclusive</strong> — VAT is added on top of the amount.",
    "fsKlantnaam": "Customer name",
    "statusUpdated": "Status updated",
    "colDueDate": "Due date",
    "emailTemplateHint": "Set your default email text. Variables are automatically filled in per invoice.",
    "serviceAdded": "Service added",
    "guideCreate": "Create invoice",
    "letterheadOnlyImages": "Only JPG or PNG files are allowed.",
    "attachmentHint": "The invoice will be attached to the email",
    "errorDeleting": "Error deleting",
    "colCustomer": "Customer",
    "sendEmailTitle": "Send invoice",
    "guideCreateDesc": "Click + to create a new invoice. Select a customer, add lines with description and amount. The invoice number is automatically incremented.",
    "posRight": "Right",
    "fsTotalen": "Totals",
    "emailTo": "To",
    "quantity": "Quantity",
    "noCustomerEmail": "Customer has no email address",
    "colStatus": "Status",
    "guidePayment": "Online payment",
    "total": "Total",
    "prefix": "Invoice prefix",
    "issueDate": "Invoice date",
    "settings": "Settings",
    "dismissedSuccess": "Item(s) marked as handled",
    "editInvoice": "Edit",
    "cancel": "Cancel",
    "defaultBody": "Dear {{firstName}},\n\nPlease find attached invoice {{invoiceNumber}} for services rendered.\nThe total amount is {{amount}}.\n\nPlease pay this invoice before {{dueDate}}.\n\nThe invoice is included as an attachment.\n\nKind regards",
    "resetToDefault": "Reset to default",
    "letterhead": "Letterhead",
    "statusCredited": "Credited",
    "statusConfirmed": "Confirmed",
    "guidePaymentDesc": "Connect your Mollie API key in settings to add online payment links to invoice emails. Payments are processed automatically.",
    "serviceDeleted": "Service deleted",
    "logoScale": "Logo size",
    "confirmDelete": "Are you sure you want to delete this draft invoice?",
    "serviceTemplates": "Service templates",
    "multiCustomerInvoice": "You have selected items from multiple customers. One invoice per customer will be created. Continue?",
    "noLogo": "No logo uploaded yet",
    "saveDraft": "📝 Save draft",
    "ublEuNote": "E-invoicing is standard or mandatory in your country.",
    "statusDraft": "Draft",
    "confirmMarkPaid": "Mark {count} item(s) as paid?",
    "addLineError": "Add at least one line",
    "vatAmount": "VAT",
    "backToList": "Back to overview",
    "drafts": "Drafts",
    "viewPdf": "View PDF",
    "defaultSubject": "Invoice {{invoiceNumber}}",
    "sendEmail": "Send email",
    "guideStatus": "Track status",
    "newInvoice": "New invoice",
    "contactBlock": "Company info contact block",
    "letterheadHint": "JPG or PNG only. PDF is not supported.",
    "sendError": "Error sending invoice",
    "creditForRef": "Regarding",
    "addTextLine": "Text line",
    "mollieApiKey": "Mollie API key",
    "outstanding": "Outstanding",
    "fsBedrijfsinfo": "Company info",
    "paymentLinkHint": "Adds a payment button to the email (via Mollie or Stripe)",
    "fsTabelinhoud": "Table content",
    "paymentTerms30": "30 days",
    "letterheadNoPdf": "PDF is not supported as letterhead. Use JPG or PNG.",
    "paymentTerms14": "14 days",
    "contactLeft": "Left (default)",
    "guideLayoutDesc": "Open settings to customize your invoice layout: logo, company details, font sizes and colors. The live preview shows changes instantly.",
    "errorLoading": "Error loading invoice",
    "title": "Invoices",
    "guideLayout": "Customize layout",
    "confirmCredit": "Are you sure you want to create a credit note?",
    "paymentTerms7": "7 days",
    "paymentMarkedPaid": "Payment(s) marked as paid",
    "emailMessage": "Message",
    "ublNonEuNote": "E-invoicing is not required for your country. You can enable it optionally.",
    "fsBedrijfsnaam": "Company name",
    "letterheadUploaded": "Letterhead uploaded",
    "logoUploaded": "Logo uploaded",
    "metaPosition": "Invoice details position",
    "vatRate": "VAT %",
    "savedMsg": "Settings saved",
    "draft": "Draft",
    "paymentTermsSaved": "Payment terms saved to customer",
    "fsTabelkop": "Table header",
    "letterheadDeleted": "Letterhead deleted",
    "emailSubjectTemplate": "Subject",
    "dismissTask": "✕ Handled",
    "howToUse": "How does it work?",
    "errorStatus": "Error changing status",
    "days": "days",
    "saveAndSend": "✉️ Save & send",
    "markPaid": "Mark as paid",
    "guideTitle": "Invoices - Guide",
    "createFromTasks": "📄 Create invoice",
    "noInvoices": "No invoices yet. Create your first invoice!",
    "colDate": "Date",
    "itemsSelected": "{count} item(s) selected",
    "stripeHint": "Alternative: enter your Stripe Secret key for payment links via Stripe Checkout.",
    "duplicatedMsg": "Invoice duplicated",
    "errorLoadingInvoices": "Error loading invoices",
    "billingRedirectNote": "Invoice goes to accounting instead of customer",
    "molliePaymentLinkError": "Mollie payment link could not be created",
    "unknownError": "Unknown error",
    "errorGeneric": "Error",
    "mollieKeyNotSet": "No Mollie key configured",
    "stripeKeyNotSet": "No Stripe key configured",
    "mollieConnectFailed": "Could not connect to Mollie",
    "stripeConnectFailed": "Could not connect to Stripe",
    "errorSaving": "Error saving",
    "mollieKeyVerified": "Mollie API key verified and saved",
    "stripeKeyVerified": "Stripe API key verified and saved",
    "uploadFailed": "Upload failed",
    "errorDeletingLogo": "Error deleting logo",
    "noServicesYet": "No services configured yet",
    "errorAddingService": "Error adding service",
    "pushToAccounting": "Push to",
    "confirmPushAccounting": "Push this invoice to {provider}?",
    "pushingToAccounting": "Pushing to {provider}...",
    "pushedToAccounting": "Invoice pushed to {provider}",
    "pushFailed": "Push failed"
  },
  "importCalendar": {
    "importError": "Error importing",
    "googleViewAgenda": "View calendar",
    "googleSessionExpired": "Your Google session has expired. Go to Settings to reconnect.",
    "googleNotConnected": "Your Google Calendar is not connected yet. Go to Settings → Calendar Sync to connect your Google account.",
    "googlePreviewBtn": "🔍 See what's available",
    "googleNewEvents": "New to import:",
    "microsoftPreviewBtn": "🔍 See what's available",
    "microsoftImporting": "Importing...",
    "noEventsToImport": "No appointments to import",
    "microsoftPeriod": "Period:",
    "uploadTitle": "Upload your calendar file",
    "googleConfirmImport": "Import {count} appointments from Google Calendar? This cannot be undone.",
    "googleAlreadyImported": "Already imported:",
    "googleImportBtn": "📥 Import appointments",
    "microsoftViewAgenda": "View calendar",
    "microsoftFoundInMs": "Found in Microsoft:",
    "googlePeriod": "Period:",
    "microsoftDesc": "Import appointments directly from your Microsoft 365 / Outlook calendar — up to 3 years back.",
    "previewFailed": "Preview failed",
    "googleTitle": "Import Google Calendar",
    "microsoftImportBtn": "📥 Import appointments",
    "appleStep1": "Open Calendar on your Mac",
    "microsoftAlreadyImported": "Already imported:",
    "googleDesc": "Import appointments directly from your Google Calendar — up to 3 years back.",
    "microsoftConfirmImport": "Import {count} appointments from Microsoft? This cannot be undone.",
    "appleStep3": "Go to File → Export → Export...",
    "errors": "errors",
    "appleExplanation": "Apple does not offer an open API for calendar access, unlike Google and Microsoft. Therefore, a direct import is not possible.",
    "microsoftSessionExpired": "Your Microsoft session has expired. Go to Settings to reconnect.",
    "error": "Error",
    "appleStep4": "Save as .ics file and upload it below ↓",
    "appleTitle": "Apple Calendar",
    "importFailed": "Import failed",
    "appleHowTo": "You can still import your Apple Calendar via an .ics file:",
    "processing": "Processing...",
    "importedCount": "{count} appointments imported!",
    "googleFoundInGoogle": "Found in Google Calendar:",
    "microsoftTitle": "Import Microsoft / Outlook",
    "microsoftFetching": "Fetching appointments from Microsoft...",
    "skippedCount": "{count} skipped (already present)",
    "microsoftNewEvents": "New to import:",
    "googleImporting": "Importing...",
    "microsoftNotConnected": "Your Microsoft calendar is not connected yet. Go to Settings → Calendar Sync to connect your Microsoft account.",
    "googleFetching": "Fetching appointments from Google...",
    "appleStep2": "Select your calendar in the sidebar",
    "importOf": "Import of",
    "batchLoadError": "Error loading import batches.",
    "confirmDeleteBatch": "Are you sure you want to delete this import?\\n\\nThis permanently removes {count} items.",
    "deleteError": "Error deleting: ",
    "unknownError": "Unknown error",
    "invalidFileType": "Please upload a .ics or .ical file",
    "fileReadError": "Error reading file: ",
    "andMore": "... and {count} more",
    "batchCustomers": "customers",
    "batchPianos": "pianos",
    "batchAppointments": "appointments",
    "deletedResult": "Deleted:\\n\\u2022 {customers} customers\\n\\u2022 {pianos} pianos\\n\\u2022 {appointments} appointments"
  },
  "accounting": {
    "fiken": {
      "credentialHint": "Your token is stored encrypted.",
      "step2Text": "Click 'Create new key' and copy the token",
      "companySlug": "Company Slug",
      "apiInfo": "Connect your Fiken account with a Personal API Token and your Company Slug. The API costs 99 NOK/month in Fiken.",
      "step1Text": "Go to Edit account → API → Personal API keys",
      "step3Text": "Your Company Slug is in the URL: fiken.no/foretak/your-company-slug",
      "fillBothFields": "Please fill in both the Company Slug and API Token",
      "step2Title": "Create a Personal API Token",
      "token": "Personal API Token",
      "step1Title": "Log in to Fiken",
      "desc": "Super simple accounting software for Norwegian businesses — invoices, bookkeeping and VAT",
      "step3Title": "Find your Company Slug"
    },
    "logProvider": "Provider",
    "eboekhouden": {
      "desc": "Simple and affordable online bookkeeping"
    },
    "quickbooks": {
      "apiInfo": "Connect your QuickBooks Online account via the API. You need an Access Token and your Company ID (Realm ID) from the Intuit Developer Portal.",
      "token": "Access Token",
      "step1Title": "Go to the Intuit Developer Portal",
      "step2Text": "Create an OAuth 2.0 app and use the API Explorer to generate an Access Token",
      "step2Title": "Create an app and generate tokens",
      "fillBothFields": "Please fill in both the Company ID and Access Token",
      "desc": "Globally popular accounting software by Intuit — market leader in the US and UK",
      "step1Text": "Sign in with your Intuit account",
      "step3Title": "Find your Company ID (Realm ID)",
      "step3Text": "Your Company ID is in the URL of your QuickBooks account: app.qbo.intuit.com/app/homepage?companyId={ID}",
      "realmId": "Company ID (Realm ID)",
      "credentialHint": "Your token is stored encrypted."
    },
    "title": "Accounting Integration",
    "zoho": {
      "apiInfo": "Connect your Zoho Books account via OAuth. You need an OAuth Token and your Organization ID from the Zoho API Console.",
      "step2Title": "Generate an OAuth Token",
      "step1Title": "Go to the Zoho API Console",
      "step2Text": "Use scope ZohoBooks.fullaccess.all and generate a token via the Self Client",
      "regionLabel": "Zoho Region",
      "credentialHint": "Your token is stored encrypted.",
      "token": "OAuth Token",
      "step3Text": "Go to Zoho Books → Settings → Organization → the ID is at the top",
      "fillBothFields": "Please fill in both the Organization ID and OAuth Token",
      "orgId": "Organization ID",
      "desc": "Complete cloud accounting by Zoho — popular in India, US, UK and worldwide",
      "step3Title": "Find your Organization ID",
      "step1Text": "Create a Self Client for OAuth tokens"
    },
    "networkError": "Network error — please try again",
    "jortt": {
      "step3Title": "Copy the credentials",
      "desc": "Leading US accounting, invoicing and tax filing for small businesses",
      "step2Text": "Click \"New app\" and name it \"PianoPlanner\"",
      "step1Text": "Log in with your QuickBooks account",
      "apiInfo": "Connect your QuickBooks account via API. You need a Client ID and Client Secret from the QuickBooks Developer Portal.",
      "clientSecret": "Client Secret",
      "credentialHint": "Your credentials are stored encrypted.",
      "viewInvoices": "View invoices in QuickBooks",
      "syncPayments": "Fetch payments",
      "clientId": "Client ID",
      "noInvoices": "No invoices found in QuickBooks",
      "step1Title": "Go to QuickBooks Developer Portal",
      "step2Title": "Create a new API connection",
      "step3Text": "Copy the Client ID and Client Secret and paste them below",
      "goToSetup": "Set up connection",
      "manage": "Manage"
    },
    "odoo": {
      "planNote": "Note:",
      "step2Text": "Go to Preferences → Account Security → New API Key. Store the key safely!",
      "step1Title": "Note your Odoo URL and database",
      "fillAllFields": "Please fill in all fields: URL, database, username and API key",
      "step2Title": "Create an API key",
      "step3Text": "Your URL, database name, email address and API key",
      "url": "Odoo URL",
      "desc": "Open-source ERP and accounting — popular in Belgium and internationally",
      "credentialHint": "Your credentials are stored encrypted. The API key is equivalent to a password.",
      "step1Text": "For example https://mycompany.odoo.com — the database name is usually your company name",
      "planNoteText": "The Odoo External API is only available on Custom/Enterprise plans. Standard and One App Free plans are not supported.",
      "apiKey": "API Key",
      "username": "Username (email)",
      "dbName": "Database name",
      "step3Title": "Fill in the details below",
      "apiInfo": "Connect your Odoo account via the External API. You need your Odoo URL, database name, username and an API key.",
      "goToSetup": "Set up connection",
      "manage": "Manage"
    },
    "noSyncHistory": "No syncs performed yet",
    "autoSync": "Auto-sync daily",
    "moneybird": {
      "connectedTitle": "Moneybird is connected",
      "step3Text": "Paste your token and administration ID below",
      "fillBothFields": "Please fill in both the token and the administration ID",
      "step2Text": "Go to your administration in Moneybird. The ID is in the URL: moneybird.com/{administration-id}/...",
      "syncInvoices": "Sync invoices",
      "syncContacts": "Sync customers",
      "step1Title": "Create a Personal Access Token",
      "step1Text": "Create a new token named \"PianoPlanner\"",
      "apiInfo": "Connect your Moneybird account via a Personal Access Token. You need a token and your administration ID.",
      "step2Title": "Find your Administration ID",
      "adminId": "Administration ID",
      "desc": "Popular Dutch accounting software for freelancers and SMBs",
      "manage": "Manage",
      "token": "Personal Access Token",
      "step3Title": "Fill in the details below",
      "goToSetup": "Set up connection",
      "syncPayments": "Sync payments",
      "credentialHint": "Your token is stored encrypted."
    },
    "sevdesk": {
      "desc": "Smart online accounting with excellent API — fast-growing in Germany"
    },
    "requestSection": "Can't find your package?",
    "noNewPayments": "No new payments found",
    "requestPackageName": "Accounting package name *",
    "confirmDisconnect": "Are you sure you want to disconnect? Existing syncs will be preserved.",
    "comingSoonText": "This integration will be available soon. Contact us if you'd like to use this.",
    "odooConnected": "Odoo connected successfully!",
    "jorttConnected": "QuickBooks connected successfully!",
    "syncingPayments": "Fetching payment status...",
    "country": {
      "de": "Germany",
      "intl": "International",
      "be": "Belgium",
      "nl": "Netherlands"
    },
    "requestNotes": "Notes (optional)",
    "connectFailed": "Connection failed",
    "testConnection": "Test connection",
    "requestTitle": "Request another accounting package",
    "yuki": {
      "desc": "Automated accounting for accountants — popular in Belgium and the Netherlands"
    },
    "region": {
      "international": "International",
      "payments": "Payments",
      "europa": "Europe"
    },
    "notConnected": "Not connected",
    "vipps": {
      "desc": "Mobile payments in Scandinavia — invoice and receive payments via Vipps directly on the phone"
    },
    "disconnect": "Disconnect",
    "requestFailed": "Request failed",
    "connectionOk": "Connection OK",
    "visma": {
      "desc": "Scandinavian accounting platform — Visma eAccounting, e-conomic, Netvisor and more"
    },
    "requestSubmit": "Submit request",
    "moneybirdConnected": "Moneybird connected successfully!",
    "subtitle": "Connect PianoPlanner with your accounting software to automatically sync invoices.",
    "requestCountry": "Country",
    "lastSyncAt": "Last sync:",
    "requestDesc": "Using a different accounting package? Let us know! We'll look into adding support for it.",
    "exact": {
      "desc": "Comprehensive business software for accounting and ERP"
    },
    "syncFailed": "Sync failed",
    "connected": "Connected",
    "requestSent": "Thank you! Your request has been submitted. We'll review it and get back to you.",
    "datev": {
      "desc": "The standard for German tax advisors and businesses — market leader in Germany"
    },
    "syncLog": "Sync log",
    "requestFillName": "Please enter the accounting package name",
    "disconnectFailed": "Disconnect failed",
    "requestSending": "Sending...",
    "logStatus": "Status",
    "logDate": "Date",
    "syncLogDesc": "Overview of recent syncs",
    "requestSentShort": "Request submitted!",
    "zohoConnected": "Zoho Books successfully connected!",
    "disconnected": "Disconnected",
    "quickbooksConnected": "QuickBooks successfully connected!",
    "connectionFailed": "Connection failed",
    "lexoffice": {
      "desc": "Most popular cloud accounting in Germany — by Haufe/Lexware"
    },
    "requestPackageUrl": "Website (optional)",
    "neverSynced": "Not yet synced",
    "connecting": "Connecting...",
    "syncSettings": "Sync settings",
    "fikenConnected": "Fiken successfully connected!",
    "fillBothFields": "Please fill in both Client ID and Client Secret",
    "comingSoon": "Coming soon",
    "logInvoice": "Invoice",
    "syncNow": "Sync now",
    "billit": {
      "desc": "Belgian invoicing platform with e-invoicing and accounting"
    },
    "syncInvoices": "Sync invoices",
    "administration": "Administration:",
    "connect": "Connect",
    "syncContacts": "Sync contacts",
    "syncing": "Syncing started...",
    "loadFailed": "Loading failed",
    "fetchFailed": "Fetch failed",
    "statusConfirmed": "Confirmed",
    "syncAsDraft": "Sync as draft (concept)",
    "syncAsDraftHint": "Invoices are synced as draft so you can review and send them from your accounting software."
  },
  "dpa": {
    "title": "Data Processing Agreement",
    "subtitle": "Data Processing Agreement in accordance with the GDPR",
    "intro": "This Data Processing Agreement is an integral part of the General Terms and Conditions of PianoPlanner and governs the processing of personal data by Edward Meijer (Edan Creative), hereinafter referred to as ‘Processor’, on behalf of the user of the software, hereinafter referred to as ‘Controller’.",
    "h1": "1. Subject of Processing",
    "p1a": "1.1. The Processor commits, under the conditions of this agreement, to process personal data on behalf of the Controller.",
    "p1b": "1.2. The processing exclusively concerns the data of the Controller’s customers (such as name, address, instrument details and appointment history) entered into the PianoPlanner software for planning and administration purposes.",
    "h2": "2. Obligations of the Processor",
    "p2a": "2.1. The Processor shall process personal data solely based on written instructions from the Controller, including those instructions arising from the normal use of the software.",
    "p2b": "2.2. The Processor shall not use the data for its own purposes or share it with third parties, unless required by law.",
    "p2c": "2.3. The Processor guarantees that persons authorized to process personal data have committed to confidentiality.",
    "h3": "3. Security and Synchronization",
    "p3a": "3.1. The Processor shall take appropriate technical and organizational measures to protect personal data against loss or any form of unlawful processing.",
    "p3b": "3.2. These measures include, among others, SSL encryption, secure cloud storage and monitoring of system integrity.",
    "p3c": "3.3. The Controller acknowledges that when two-way synchronization is activated (such as with Google or iCloud), data is transferred outside the direct control of the Processor. The Processor is not responsible for processing by these external parties.",
    "h4": "4. Sub-processors",
    "p4a": "4.1. The Controller hereby grants permission to the Processor to use sub-processors (such as hosting providers and payment processors) for the processing.",
    "p4b": "4.2. The Processor ensures that these sub-processors are bound by at least equivalent obligations as set out in this agreement.",
    "h5": "5. Rights of Data Subjects",
    "p5a": "5.1. If an end customer of the Controller submits a request for access, correction or deletion of their personal data, the Processor shall forward this request to the Controller.",
    "p5b": "5.2. The Processor shall, insofar as reasonably possible, assist the Controller in fulfilling obligations regarding the rights of data subjects.",
    "h6": "6. Duration and Termination",
    "p6a": "6.1. This agreement shall remain in force as long as the PianoPlanner subscription is active.",
    "p6b": "6.2. Upon termination of the service, the Processor shall delete all personal data within 30 days, unless a legal obligation to retain the data exists.",
    "lastUpdated": "Last updated: February 23, 2026",
    "toc6": "Duration",
    "tldr": "We process your customer data solely on your behalf. Your data is encrypted and stored in Europe and never shared with third parties.",
    "toc3": "Security",
    "toc4": "Sub-processors",
    "toc5": "Rights",
    "toc2": "Obligations",
    "toc1": "Subject"
  },
  "smartFill": {
    "badgeNew": "New",
    "buttonLabel": "Fill Route",
    "title": "Fill Route",
    "description": "Enter a city or zip code to find nearby customers who are due for a tuning.",
    "locationLabel": "City or zip code",
    "radiusLabel": "Radius (km)",
    "searchBtn": "Search",
    "searching": "Searching for nearby customers...",
    "errorEmpty": "Enter a city or zip code",
    "noResults": "No customers found in this area with a pending tuning.",
    "customersFound": "customers found near",
    "selectAll": "Select all",
    "changeLocation": "Change location",
    "selected": "selected",
    "sendInvitations": "Send invitations",
    "sending": "Sending...",
    "successTitle": "Invitations sent!",
    "successMessage": "{count} invitations sent successfully.",
    "close": "Close",
    "urgencyOverdue": "Overdue",
    "urgencyDue": "Due",
    "urgencySoon": "Soon",
    "urgencyOk": "On schedule",
    "urgencyUnknown": "Unknown",
    "noCoordinates": "No coordinates",
    "neverTuned": "Never tuned",
    "monthsOverdue": "months overdue",
    "monthsLeft": "months left",
    "invitationsSent": "invitations sent!",
    "neverVisited": "Never visited",
    "lastVisited": "Last visited",
    "monthsAgo": "months ago"
  },
  "reschedule": {
    "noSlots": "No available times on this day. Please choose a different date.",
    "nearby": "Nearby",
    "currentLabel": "Current appointment",
    "currentAppointment": "Current appointment",
    "chooseNewDate": "Choose a new date",
    "errorTitle": "Oops!",
    "chooseNewTime": "Choose a new time",
    "expiredTitle": "Link expired",
    "title": "Reschedule appointment",
    "routeOptimized": "Route-optimized",
    "loadingSuggestions": "Finding optimal times...",
    "confirmCancel": "Cancel",
    "newAppointment": "New time slot",
    "confirmButton": "Reschedule appointment",
    "successText": "Your appointment has been successfully rescheduled. You will receive a confirmation by email.",
    "loading": "Loading appointment...",
    "recommended": "Recommended",
    "suggestionsTitle": "Available times",
    "bestChoice": "Best choice",
    "invalidLink": "Invalid link",
    "errorGeneric": "Something went wrong.",
    "keptText": "Your current appointment remains unchanged.",
    "keepCurrent": "Keep current appointment",
    "expiredText": "This rescheduling link is no longer valid. The appointment may have already passed or been cancelled.",
    "confirmDialogText": "Your appointment will be moved to:",
    "noSuggestionsTitle": "No times available",
    "noSuggestionsText": "Unfortunately, no available times were found in the coming period. Please contact us to arrange another time.",
    "processing": "Rescheduling...",
    "keptTitle": "Appointment kept",
    "successTitle": "Appointment rescheduled!",
    "confirmSubmit": "Confirm",
    "pageTitle": "Reschedule appointment",
    "confirmDialogTitle": "Reschedule appointment?",
    "loadingTimes": "Loading times...",
    "until": "until"
  },
  "invoiceApi": {
    "invoiceNotFound": "Invoice not found",
    "invoiceLoadError": "Could not load invoice",
    "invoicesLoadError": "Could not load invoices",
    "invoiceCreateError": "Could not create invoice",
    "invoiceUpdateError": "Could not update invoice",
    "invoiceDeleteError": "Could not delete invoice",
    "invoiceDuplicateError": "Could not duplicate invoice",
    "invoiceSent": "Invoice sent by email",
    "invoiceSendError": "Error sending invoice",
    "invoice": "Invoice",
    "creditNote": "Credit Note",
    "creditNoteFor": "Credit note for",
    "creditNoteCreateError": "Could not create credit note",
    "alreadyCredited": "This invoice has already been credited",
    "deleteOnlyDraft": "Only draft and cancelled invoices can be deleted. Create a credit note first.",
    "invalidStatus": "Invalid status",
    "statusChangeError": "Could not change status",
    "notesUpdated": "Notes and invoice number updated",
    "settingsLoadError": "Could not load settings",
    "settingsSaveError": "Could not save settings",
    "mollieNoKey": "No Mollie API key set. Enter a key starting with live_",
    "mollieKeyFormat": "Key must start with live_ (production) or test_ (test)",
    "mollieKeyInvalid": "Invalid Mollie API key. The key must start with live_ (production) or test_ (test).",
    "mollieKeyVerifyFailed": "Mollie API key is invalid",
    "stripeNoKey": "No Stripe API key set. Enter a key starting with sk_live_ or sk_test_",
    "stripeKeyFormat": "Key must start with sk_live_ (production) or sk_test_ (test)",
    "stripeKeyInvalid": "Invalid Stripe API key. The key must start with sk_live_ or sk_test_.",
    "stripeKeyVerifyFailed": "Stripe API key is invalid",
    "keyInvalid": "Key is invalid",
    "internalTestError": "Internal error during test",
    "noFileUploaded": "No file uploaded",
    "letterheadUploadError": "Could not upload letterhead",
    "letterheadDeleteError": "Could not delete letterhead",
    "servicesLoadError": "Could not load services",
    "serviceNotFound": "Service not found",
    "serviceCreateError": "Could not create service",
    "serviceUpdateError": "Could not update service",
    "serviceDeleteError": "Could not delete service",
    "nameRequired": "Name is required",
    "openTasksError": "Could not load open tasks",
    "pdfGenerateError": "Could not generate PDF",
    "ublGenerateError": "Could not generate UBL XML",
    "numberAssignError": "Could not assign invoice number",
    "customerNotFound": "Customer not found",
    "customerNoEmail": "Customer has no email address",
    "adminNoEmail": "Billing admin has no email address",
    "emailSendFailed": "Email could not be sent"
  },
  "sidebar": {
    "planning": "Planning",
    "agenda": "Agenda",
    "customers": "Customers",
    "pianos": "Pianos",
    "reminders": "Reminders",
    "work": "Work",
    "projects": "Projects",
    "travel": "Mileage",
    "invoices": "Invoices",
    "inventory": "Inventory",
    "management": "Management",
    "settings": "Settings",
    "emailTemplates": "Email Templates",
    "accounting": "Accounting",
    "import": "Import",
    "billing": "Subscription",
    "teams": "Teams",
    "help": "Help",
    "guide": "Guide",
    "support": "Support",
    "logout": "Log out",
    "logoutConfirm": "Are you sure you want to log out?",
    "menuToggle": "Menu",
    "emailQuota": "Email credits",
    "aiSearch": "AI Search"
  },
  "contact": {
    "companyName": "Company",
    "email": "Email",
    "error": "Something went wrong. Please try again later.",
    "success": "Your message has been sent successfully!",
    "selectSubject": "Select a subject...",
    "login": "Login",
    "subjectOther": "Other",
    "formTitle": "Send us a message",
    "send": "Send Message",
    "subjectFeedback": "Feedback",
    "emailField": "Email",
    "vat": "VAT Number",
    "subject": "Subject",
    "companyTitle": "About Us",
    "kvk": "Chamber of Commerce (KvK)",
    "message": "Message",
    "about": "About",
    "businessDetails": "Business Details",
    "formDesc": "Fill out the form below and we'll get back to you within 24 hours.",
    "sending": "Sending...",
    "location": "Location",
    "subjectGeneral": "General question",
    "name": "Name",
    "heroTitle": "Get in touch",
    "subjectSupport": "Technical support",
    "heroDesc": "Have questions about PianoPlanner? We'd love to hear from you. Send us a message and we'll respond as soon as possible.",
    "subjectFeature": "Feature request",
    "subjectBilling": "Billing & Subscription"
  },
  "teamDashboard": {
    "appointment": "Appointment",
    "noActiveMembersAvailable": "No active team members available",
    "bookingLinkTitle": "Copy public booking link",
    "sendInvitationsBtn": "Send invitations",
    "activateMembersVia": "Activate team members via",
    "errorSavingPiano": "Error saving piano",
    "stepAppointment": "Appointment",
    "sendConfirmation": "Send confirmation email",
    "addressLabel": "Address",
    "monthsAgoTuned": "months ago tuned",
    "searchCustomerPlaceholder": "Search customer by name or email...",
    "nameLabel": "Name",
    "aiSuggestions": "AI Suggestions",
    "searchExistingCustomer": "Search existing customer",
    "months": "months",
    "noTeamsCreate": "to create a team.",
    "addNewPiano": "Add new piano",
    "stepCustomer": "Customer",
    "selectTeamFirst": "Select a team first",
    "confirmCreateAnyway": "Do you want to create this appointment anyway?",
    "selectAll": "Select all",
    "appointmentCreated": "Appointment created and assigned to {name}",
    "preferOtherChoose": "Prefer another moment? Choose yourself",
    "teamMembers": "Team Members",
    "emailPlaceholder": "email@example.com",
    "teamLoading": "Loading team...",
    "model": "Model",
    "smartMomentsEmpty": "Select a service to see the best moments",
    "pianoOverdue": "This piano has not been tuned for",
    "confirmationSentTo": "Confirmation email sent to",
    "sending": "Sending...",
    "next": "Next",
    "smartMomentsLoading": "Looking for the best options...",
    "grand": "Grand",
    "bookingLinkCopied": "Booking link copied!",
    "saveCustomer": "Save customer",
    "deselectAll": "Deselect all",
    "errorCreatingAppointment": "Error creating appointment",
    "selectAllFieldsAndMember": "Select all fields and a team member",
    "selectCustomer": "Select or add customer",
    "customersLoading": "Loading customers...",
    "customersSelected": "customer(s) selected",
    "selected": "selected",
    "weekView": "Week",
    "noTeams": "No teams — create one first",
    "errorRemovingAssignment": "Error removing assignment",
    "errorSearchingMoments": "Error searching for available moments.",
    "selectService": "Choose service",
    "selectCustomerFirst": "Select a customer first",
    "backToBest": "Back to best choice",
    "assignmentRemoved": "Assignment removed",
    "sendConfirmationTo": "Send confirmation email to",
    "enterBrand": "Enter the brand",
    "copyThisLink": "Copy this link:",
    "smartAppointment": "Smart Appointment",
    "noAddressKnown": "No address known",
    "assign": "Assign",
    "phonePlaceholder": "+1 234 567 8900",
    "previous": "Previous",
    "upright": "Upright",
    "postalCodePlaceholder": "12345",
    "loadMoreOptions": "Load more options",
    "buildYearPlaceholder": "e.g. 1985",
    "noCustomersFound": "No customers found",
    "errorSavingCustomer": "Error saving customer",
    "selectPianoFirst": "Select a piano first",
    "buildYear": "Build Year",
    "errorLoadingMembers": "Error loading team members",
    "noTuningKnown": "No tuning history known",
    "noTeamsDesc": "Go to Team Management to create a team.",
    "recommended": "Recommended",
    "modelPlaceholder": "e.g. Model D, U1",
    "moment": "Moment",
    "chosenMoment": "Chosen moment",
    "savePiano": "Save piano",
    "bestChoice": "Best choice",
    "teamView": "Team",
    "errorLoadingPianos": "Error loading pianos",
    "teamInvitationsSent": "team invitation(s) sent",
    "sent": "sent",
    "selectTimeslotFirst": "Select a time slot first",
    "errorLoadingCalendar": "Error loading team calendar",
    "preferOther": "Prefer another moment?",
    "viaTeamBookingLink": "Via team booking link",
    "unassigned": "Unassigned",
    "everyone": "Everyone",
    "phoneLabel": "Phone",
    "loading": "Loading...",
    "smartestMoments": "Smartest moments",
    "cityLabel": "City",
    "selectServicePlaceholder": "-- Select service --",
    "icalHowItWorks": "How does it work?",
    "smartMomentsDesc": "Automatically calculated based on your calendar and travel time",
    "today": "Today",
    "icalOutlook": "Outlook: Add calendar → Subscribe from web",
    "teamManagement": "Team Management",
    "invitations": "Invitations",
    "pageTitle": "Team Dashboard - PianoPlanner",
    "errorAssigning": "Error assigning",
    "brand": "Brand",
    "chooseMember": "Choose a team member",
    "createAnyway": "Do you want to create this appointment anyway?",
    "copied": "Copied!",
    "addressPlaceholder": "Street and house number",
    "cityPlaceholder": "City",
    "copy": "Copy",
    "customer": "Customer",
    "searchCustomer": "Search customer by name or email...",
    "or": "or",
    "bookingLink": "Booking Link",
    "none": "None",
    "errorLoadingCustomers": "Error loading customers",
    "clickToCopy": "Click to copy",
    "noActiveMembers": "No active team members",
    "createAndAssign": "Create & assign appointment",
    "nextStep": "Next",
    "assignMemberDesc": "Who will handle this appointment?",
    "piano": "Piano",
    "selectPiano": "Select or add a piano",
    "brandPlaceholder": "e.g. Steinway, Yamaha",
    "alternativesAvailable": "alternatives available",
    "icalCopyLink": "Copy the iCal link and add as subscription in:",
    "icalFeeds": "iCal Feeds",
    "workload": "Workload this week",
    "noTeamsTitle": "No teams",
    "customerPianos": "Customer's pianos",
    "noTuningKnownPiano": "No tuning history known for this piano.",
    "done": "Done",
    "cancel": "Cancel",
    "createNewCustomer": "Create new customer",
    "searchCustomerInputPlaceholder": "Type name, email or phone number...",
    "selectPianoDesc": "Choose an existing piano or register a new one",
    "noAvailableMoments": "No available moments found.",
    "invitationsTitle": "Send tuning invitations via Teams",
    "assignmentSaved": "Assignment saved",
    "noPianosYet": "This customer has no pianos yet. Add one!",
    "loadingCustomers": "Loading customers...",
    "type": "Type",
    "sendingFailed": "Sending failed",
    "icalApple": "Apple Calendar: File → New Calendar Subscription",
    "assignMember": "Assign team member",
    "chooseMemberLoading": "Calculating best team member...",
    "icalGoogle": "Google Calendar: Settings → Other calendars → From URL",
    "removeAssignment": "Remove assignment",
    "appointmentCreatedAssigned": "Appointment created and assigned to",
    "errorLoadingTeams": "Error loading teams",
    "emailLabel": "Email",
    "dayView": "Day",
    "invitationsSent": "{count} team invitation(s) sent",
    "chooseMemberDesc": "Sorted by smart score (availability, location, workload)",
    "noCustomersWithEmail": "No customers with email found",
    "sendInvitations": "Send tuning invitations",
    "fullNamePlaceholder": "Full name",
    "members": "members",
    "selectMember": "Select a team member",
    "selectCustomerDesc": "Search an existing customer or create a new one",
    "postalCodeLabel": "Postal code",
    "stepMember": "Member",
    "noTeamMembers": "No team members",
    "available": "Available",
    "aiSuggestionsDesc": "Smart recommendations based on location and calendar",
    "loadingPianos": "Loading pianos...",
    "prevStep": "Previous",
    "error": "Error",
    "saved": "saved",
    "skipped": "skipped",
    "unnamed": "Unnamed",
    "enterName": "Enter a name",
    "stepPiano": "Piano",
    "busy": "Working...",
    "timelineView": "Timeline",
    "fromHome": "from home",
    "travelTimeLbl": "travel time",
    "toHome": "to home",
    "newAppointment": "New appointment",
    "smartSelectService": "Select a customer and service to see smart suggestions",
    "smartSelectServiceWorkshop": "Select a service to see smart suggestions",
    "createAppointment": "Create appointment",
    "errorLoadingAppointment": "Could not load appointment",
    "editAppointmentTitle": "Edit appointment",
    "saveButton": "Save",
    "noServiceOption": "— No service —",
    "noMember": "None",
    "saveFailed": "Save failed",
    "appointmentSaved": "Appointment saved",
    "errorSaving": "Error saving",
    "selectProjectFirst": "Select a project for workshop work",
    "selectSuggestionOrManual": "Select a suggestion or plan manually",
    "createFailed": "Creation failed",
    "errorCreating": "Error creating",
    "confirmDelete": "Are you sure you want to delete this appointment?",
    "deleteFailed": "Delete failed",
    "appointmentDeleted": "Appointment deleted",
    "errorDeleting": "Error deleting",
    "noSmartSuggestions": "No smart suggestions available",
    "smartError": "Could not load suggestions",
    "smartSearching": "Searching best times...",
    "routeOptimized": "Route-optimized",
    "backToSmart": "Back to smart suggestions ▴",
    "planManually": "Prefer to plan manually? ▾",
    "noProject": "— No project (loose hours) —",
    "daysOverdue": "days overdue!",
    "deadlineToday": "today!",
    "daysRemaining": "{{n}} days remaining",
    "wizardCustomer": "Customer",
    "wizardServiceTime": "Service & Time",
    "wizardDetails": "Details",
    "searchHint": "Search by name, or",
    "addNewCustomer": "create a new customer",
    "newCustomer": "New customer",
    "nameRequired": "Name *",
    "phone": "Phone",
    "streetHouseNr": "Street + house no.",
    "postalCode": "Postal code",
    "city": "City",
    "addCustomer": "Add customer",
    "titleHint": "Leave empty for automatic title based on customer + service",
    "customerCreated": "Customer added",
    "errorCreatingCustomer": "Error creating customer"
  },
  "notifications": {
    "invoiceLater": "Invoice later",
    "pinPaid": "Pin paid",
    "updated": "updated",
    "appointmentCompleted": "Appointment completed",
    "cashPaid": "Cash paid"
  },
  "legal": {
    "tldrLabel": "In short",
    "tocTitle": "Table of Contents"
  },
  "about": {
    "heroTitle": "Software for piano tuners,<br>built by a piano tuner.",
    "heroSubtitle": "With 46 years of hands-on experience, I know what you need. I built the app I always wanted.",
    "storyOriginTitle": "From card box to code",
    "storyOriginP1": "My love for technology started early. As a teenager, I programmed BASIC late at night on a ZX Spectrum. Later, armed with my first Tulip PC, I wrote my first 'real' software: a digital customer database for my father.",
    "storyOriginP2": "In my youthful enthusiasm, I then threw away his physical card box — to his great dismay! Eventually I printed everything neatly for him on the dot-matrix printer, but the tone was set: I wanted to organize things faster, more efficiently, and better.",
    "storyFrustrationTitle": "What I tried",
    "storyFrustrationP1": "Every morning the same ritual: check Google Calendar, look up customer addresses, open Google Maps, figure out if another appointment fits between two others... And in the evening: manually send confirmation emails, update my Excel sheet with serial numbers, note when each piano needs tuning again.",
    "storyFrustrationP2": "After years of thinking \"there must be a better way\" I decided to build it myself.",
    "triedExcel": "No reminders",
    "triedGCal": "No customer info",
    "triedGazelle": "Expensive, US servers",
    "triedCalendly": "Not for our profession",
    "triedServiceP": "For HVAC technicians",
    "triedPaperName": "Paper diary",
    "triedPaper": "No backup, sync",
    "storyTeamTitle": "The collaboration",
    "storyTeamP1": "In my own practice, I hit walls for years. I worked with American software that didn't fully understand our market, or I juggled three different apps for calendar, invoicing, and routes. I thought: \"This has to be smarter.\"",
    "storyTeamP2": "I have great interest in everything around business figures — we all know how complex the margin scheme can be. I wanted software that not only plans but also thinks along with my business operations.",
    "storyTeamP3": "When I decided to build the ultimate planner myself, I wasn't alone. I got to work with my skills and the advice of my children and stepchildren. One graduated as an IT specialist from HAN University. The other as a Game Developer & Sound Designer from HKU. With my hands-on experience and their knowledge of the latest technology and AI, we developed PianoPlanner together.",
    "storySmartTitle": "Smart appointments",
    "storySmartP1": "The core of PianoPlanner is simple: I want to see at a glance whether I'm making money or wasting time. I also don't want to spend too much time driving. That's why we developed Smart Appointments — each appointment automatically gets a color based on travel time:",
    "colorGreen": "Fits perfectly in your route",
    "colorOrange": "Watch your travel time",
    "colorRed": "Inefficient, costs you time",
    "storyNLTitle": "Built by a piano tuner",
    "storyNLP1": "Unlike the big corporate players, I believe in independent craftsmanship. PianoPlanner is an independent initiative. Your data is securely encrypted and stored on European servers, fully compliant with GDPR privacy regulations.",
    "storyNLP2": "I'm proud of what we've built. A system for piano tuners, by a piano tuner.",
    "compareTitle": "PianoPlanner vs Gazelle",
    "compareSubtitle": "Two platforms for piano technicians — which fits your workflow?",
    "ppOrigin": "�🇺 Europe · Made by a piano tuner",
    "pp1": "Automatic route clustering with Smart Suggestions",
    "pp2": "Google + Microsoft + Apple calendar sync (two-way)",
    "pp3": "Online booking links for customers",
    "pp4": "Secure cloud servers — GDPR compliant",
    "pp5": "9 languages: EN, NL, DE, FR, ES, IT",
    "gzOrigin": "🇺🇸 USA · Founded in 2015",
    "gz1": "Native iOS & Android apps",
    "gz2": "Invoicing with QuickBooks integration",
    "gz3": "Condition Reports (PDF piano reports)",
    "gz4": "Large established customer base in the US",
    "gz5": "Multiple languages available",
    "thFeature": "Feature",
    "catPlanning": "📅 Planning & Routing",
    "fRouteOpt": "Route optimization",
    "fRouteOptPP": "✅ Smart Suggestions — AI automatically picks the best time slot based on travel time + existing appointments",
    "fRouteOptGZ": "Manual scheduling with map view + routing algorithm",
    "fRouteFill": "Route Filling",
    "fRouteFillPP": "✅ Find customers near existing appointments who are due for tuning. Send invitations.",
    "fCustAnalysis": "Customer Database Analysis",
    "fCustAnalysisPP": "✅ Scan your customer database, calculate distances, receive optimal travel time recommendation — one click",
    "fTheater": "Theater mode",
    "fTheaterPP": "✅ Separate hours for theaters & concert halls",
    "catCalendar": "📆 Calendar & Sync",
    "fGooglePP": "✅ Two-way sync (real-time)",
    "fGoogleGZ": "One-way sync",
    "catBooking": "🌐 Online Booking",
    "fBookingLink": "Public booking link",
    "fBookingLinkPP": "✅ pianoplanner.com/book/your-name",
    "fSmartSugg": "Smart Suggestions",
    "fSmartSuggPP": "✅ 3 strategies: route, gap-filler, proximity",
    "fConfirm": "Confirmation",
    "fConfirmPP": "✅ Instantly confirmed — customer knows right away",
    "fConfirmGZ": "Approval required",
    "catPianos": "🎹 Pianos & Customers",
    "fPhotos": "Photos per piano",
    "fPhotosPP": "✅ Up to 5 photos per piano — optimized with thumbnails",
    "fPhotosGZ": "✅ Photos with piano + condition reports",
    "fWorkshop": "Workshop project planner",
    "fWorkshopPP": "✅ Projects, tasks, hour estimates, progress tracking",
    "catBilling": "💰 Billing",
    "fInvoicing": "Invoicing",
    "fInvoicingPP": "✅ Included",
    "fInvoicingGZ": "Paid add-on",
    "fAccounting": "Accounting integration",
    "fAccountingPP": "✅ QuickBooks, Xero, Moneybird, Odoo",
    "fAccountingGZ": "QuickBooks / Xero (US-focused)",
    "fMileage": "Mileage tracking",
    "fMileagePP": "✅ Automatically per appointment based on route",
    "catTechnical": "⚙️ Technical",
    "fPrivacy": "Privacy & data",
    "fPrivacyPP": "✅ Secure cloud · GDPR compliant · encrypted",
    "fPrivacyGZ": "US servers",
    "fSmtp": "Custom email domain",
    "fSmtpPP": "✅ Custom SMTP + editable templates",
    "fLanguages": "Languages",
    "fLanguagesPP": "✅ NL, EN, DE, FR, IT, ES",
    "fLanguagesGZ": "EN + multiple languages",
    "catPricing": "💳 Pricing",
    "fFree": "Free version",
    "fFreePP": "✅ Permanent — up to 25 customers",
    "fFreeGZ": "30-day trial",
    "fStartPrice": "Starting price",
    "fStartPricePP": "From €24.50/month (unlimited)",
    "fStartPriceGZ": "€67/mo (250 pianos) · €89 (350) · €115 (500)",
    "fLimits": "Limits",
    "fLimitsPP": "✅ Unlimited customers & pianos",
    "fLimitsGZ": "Pay per 50 pianos + extra costs",
    "catTeams": "👥 Teams",
    "fTeams": "Teams version",
    "fTeamsPP": "✅ Multiple tuners per company · shared calendar · Smart Pick · iCal per tuner · €49,50/month",
    "honestTitle": "🤝 Honestly: where Gazelle is stronger",
    "honest1": "<strong>Condition Reports</strong> — Send customers detailed PDF reports about their piano's condition. PianoPlanner doesn't have this (yet).",
    "honest2": "<strong>Native apps</strong> — Gazelle's iOS/Android apps may feel smoother than a PWA, especially on older devices.",
    "honest3": "<strong>US market presence</strong> — Gazelle has been active longer and has a large network in North America.",
    "diffTitle": "The fundamental difference",
    "diffSubtitle": "Why tuners switch to PianoPlanner",
    "diffSmartTitle": "Automatically smart scheduling",
    "diffSmartDesc": "Smart Suggestions analyzes your schedule, calculates travel times and automatically suggests the most efficient time slots. The system clusters on its own.",
    "diffSyncTitle": "Triple calendar sync",
    "diffSyncDesc": "As the only piano platform, PianoPlanner syncs two-way with Google Calendar, Microsoft 365 and Apple Calendar.",
    "diffBookingTitle": "Customers book themselves",
    "diffBookingDesc": "Each customer gets a personal booking link. They see their pianos, previous appointments and can pick a new time slot directly.",
    "diffPrivacyTitle": "Enterprise-grade privacy",
    "diffPrivacyDesc": "All data is encrypted and stored securely. Fully GDPR compliant. Bank-level security for your business data.",
    "priceTitle": "Pricing comparison",
    "priceSubtitle": "What do you pay per month?",
    "priceAmountPP": "€0 – €89,50",
    "pricePerMonth": "per month",
    "pricePP1": "Starter: free (up to 25 customers)",
    "pricePP2": "Start: €24.50/month — unlimited",
    "pricePP3": "Pro: €39.50/month — with calendar sync + invoicing",
    "pricePP4": "No limit on pianos or customers",
    "pricePP5": "1 month free trial",
    "priceAmountGZ": "€67 – €115+",
    "priceSubGZ": "per month (250–500 pianos, base plan only)",
    "priceGZ1": "30-day free trial",
    "priceGZ2": "250 pianos = €67/mo · 350 = €89 · 500 = €115",
    "priceGZ3": "Price per 50 active pianos — scales up fast",
    "priceGZ4": "Reminders, invoicing, SMS cost extra",
    "priceGZ5": "QuickBooks integration (add-on)",
    "migTitle": "Switching? Takes just 5 minutes.",
    "migSubtitle": "Export your customers, pianos and appointments from Gazelle as CSV. Upload to PianoPlanner — done.",
    "migStep1": "1. Export from Gazelle",
    "migStep2": "2. Upload to PianoPlanner",
    "migStep3": "3. Done!",
    "signatureGreeting": "I warmly invite you to experience it yourself.",
    "signatureTitle": "Piano Technician & Creator of PianoPlanner",
    "ctaTitle": "Ready to work smarter?",
    "ctaDesc": "Start free with up to 25 customers. No credit card needed.",
    "ctaBtn": "Start free →"
  },
  "seo": {
    "guideTitle": "Getting Started — PianoPlanner",
    "contactTitle": "Contact — PianoPlanner",
    "homeDescription": "The smartest business software for piano technicians. AI-powered scheduling, route optimization, invoicing, and a booking page your customers will love.",
    "pricingTitle": "Pricing — PianoPlanner",
    "contactDescription": "Get in touch with the PianoPlanner team. Questions, feedback, or partnership inquiries — we'd love to hear from you.",
    "aboutTitle": "About PianoPlanner — Built by a Piano Technician",
    "bookTitle": "Book a Demo — PianoPlanner",
    "pricingDescription": "Simple pricing for piano technicians. Start free with up to 25 customers. No credit card needed.",
    "bookDescription": "Book a free demo of PianoPlanner. See how smart scheduling can transform your piano tuning business.",
    "homeTitle": "PianoPlanner — Smart Scheduling for Piano Technicians",
    "aboutDescription": "The story behind PianoPlanner. Built by piano technician Edward Meijer to help fellow tuners work smarter.",
    "guideDescription": "Learn how to get started with PianoPlanner. Set up your account, import customers, and schedule your first appointment.",
    "teamsInfoTitle": "PianoPlanner Teams — Complete operations under control",
    "teamsInfoDescription": "AI-powered route planning, mobile technician app and airtight security. PianoPlanner Teams automates the logistics of your piano service business."
  },
  "languagePicker": {
    "chooseLanguage": "Choose your language",
    "searchLanguage": "Search language..."
  },
  "portal": {
    "pageTitle": "My Route — PianoPlanner",
    "title": "My Route",
    "logout": "Log out",
    "loading": "Loading schedule...",
    "noAppointments": "No appointments",
    "noAppointmentsDesc": "You have no tuning appointments today.",
    "completeTitle": "Complete appointment",
    "updateTuning": "Update tuning",
    "updateTuningDesc": "Last tuning date → today",
    "payment": "Payment",
    "customerPreference": "This customer's preference",
    "paidByCard": "Paid by card",
    "paidByCash": "Paid in cash",
    "createInvoice": "Create invoice",
    "invoiceLater": "Invoice later",
    "noPayment": "No payment",
    "notes": "Notes",
    "optionalNote": "Optional note...",
    "cancel": "Cancel",
    "complete": "Complete",
    "navigate": "Navigate",
    "note": "Note",
    "history": "History",
    "done": "Done",
    "save": "Save",
    "loadingText": "Loading...",
    "noCustomerNotes": "No notes for this customer yet.",
    "loadError": "Could not load history.",
    "unknownCustomer": "Unknown customer",
    "notePlaceholder": "Note about this tuning...",
    "appointmentCompleted": "Appointment completed",
    "pianoUpdated": "piano updated",
    "cardPaid": "Card paid",
    "cashPaid": "Cash paid",
    "invoiceRequested": "Invoice requested",
    "connectionError": "Connection error",
    "couldNotComplete": "Could not complete",
    "saved": "Saved",
    "dayMon": "Mon",
    "dayTue": "Tue",
    "dayWed": "Wed",
    "dayThu": "Thu",
    "dayFri": "Fri",
    "daySat": "Sat",
    "daySun": "Sun",
    "statusPending": "Scheduled",
    "statusConfirmed": "Confirmed",
    "statusEnRoute": "En route",
    "statusCompleted": "Completed",
    "expiredTitle": "Session Expired",
    "expiredHeading": "Link has expired",
    "expiredMessage": "This secure access link is no longer valid or your session has ended. Ask your planner to send you a new link.",
    "workshopTasks": "Workshop",
    "estimated": "estimated",
    "actual": "worked",
    "taskCompleted": "Task completed",
    "reportAbsence": "Report absence",
    "startDate": "Start date",
    "endDate": "End date",
    "reason": "Reason (optional)",
    "reasonPlaceholder": "E.g. holiday, sick...",
    "send": "Submit",
    "datesRequired": "Please fill in start and end date",
    "endAfterStart": "End date must be after start date",
    "absenceRegistered": "Absence registered"
  },
  "teamsInfo": {
    "heroTitle": "PianoPlanner Teams: Complete operations under control",
    "heroSubtitle": "Managing a team of piano technicians is a complex logistical puzzle. How do you prevent two tuners from crossing paths on the highway? How do you give employees access to their route without exposing financial business data? PianoPlanner Teams is purpose-built to fully automate these challenges.",
    "smartTitle": "AI-powered route planning",
    "smartIntro": "Stop manually comparing five different calendars. The built-in algorithms do the calculations in milliseconds.",
    "smartLocationLabel": "Location-first",
    "smartLocationDesc": "Got a customer on the line? Enter the zip code and the system instantly scans every calendar across your entire team.",
    "smartMatchLabel": "The perfect match",
    "smartMatchDesc": "You get a ranked list of the best technicians for the job. The algorithm calculates travel time from their previous appointment and factors in a fair workload distribution.",
    "smartSpeedLabel": "Time saved",
    "smartSpeedDesc": "What takes a human planner ten minutes of puzzling, PianoPlanner does in a single click.",
    "appTitle": "The mobile technician app",
    "appIntro": "Every piano technician gets their own secure portal on the go — optimized for mobile.",
    "appMagicLabel": "Magic Links",
    "appMagicDesc": "No more forgotten passwords. You send your technician a secure login link by email. One click and they're logged in on their own phone.",
    "appFocusLabel": "Focus on the day",
    "appFocusDesc": "The technician sees a clear timeline: where to go, what type of piano, and any customer-specific notes — with a direct navigation button.",
    "appRealtimeLabel": "Real-time completion",
    "appRealtimeDesc": "As soon as the technician marks a job as done, it's instantly updated on your central dashboard.",
    "securityTitle": "Airtight security and privacy",
    "securityIntro": "As an owner, you want to empower your team while shielding financial and strategic data. PianoPlanner operates on the need-to-know principle.",
    "securitySepLabel": "Strict data separation",
    "securitySepDesc": "A technician sees only their own appointments. Colleagues' calendars, revenue, invoices and the general customer database are completely invisible.",
    "securityRevokeLabel": "The kill switch",
    "securityRevokeDesc": "An employee leaving the company? One click sets them to inactive and their access is revoked immediately — even if they're currently logged in. Your data stays yours.",
    "bookingTitle": "Smart booking widget for customers",
    "bookingIntro": "Let your online booking system work for you, not against you.",
    "bookingRouteLabel": "Route-optimized booking",
    "bookingRouteDesc": "Customers enter their address online. The system automatically shows only the time slots that result in the shortest travel time for your team. The customer picks a time, the system picks the technician.",
    "bookingFixedLabel": "The preferred-technician link",
    "bookingFixedDesc": "Does a customer have a relationship with one specific technician? Send them a personal link. The system gives that technician priority, unless they're booked up for weeks — then colleagues are suggested as alternatives.",
    "summary": "With PianoPlanner Teams you minimize travel time, eliminate scheduling errors and give both customers and employees an ultra-professional experience. The system takes over the heavy logistical thinking, so you can focus on growing the business.",
    "ctaTry": "Try for free",
    "ctaPricing": "View pricing"
  },
  "api": {
    "portal": {
      "rateLimitExceeded": "Too many attempts. Please try again in a minute.",
      "fetchScheduleFailed": "Could not fetch the schedule.",
      "fetchWeekScheduleFailed": "Could not fetch the weekly schedule.",
      "invalidStatus": "Invalid status.",
      "appointmentNotFound": "Appointment not found.",
      "updateStatusFailed": "Could not update status.",
      "noteRequired": "Note is required.",
      "saveNoteFailed": "Could not save note.",
      "fetchHistoryFailed": "Could not load history.",
      "profileNotFound": "Profile not found.",
      "fetchProfileFailed": "Could not fetch profile.",
      "completeAppointmentFailed": "Could not complete appointment.",
      "batchAppointmentNotFound": "Batch appointment not found.",
      "pianoNotFoundInBatch": "Piano not found in this batch.",
      "fetchTasksFailed": "Could not fetch tasks.",
      "taskNotFound": "Task not found.",
      "invalidHours": "Invalid number of hours.",
      "updateHoursFailed": "Could not update hours."
    },
    "inventory": {
      "fetchShowroomPianosFailed": "Could not fetch showroom pianos",
      "brandRequired": "Brand is required",
      "addPianoFailed": "Could not add piano",
      "customerIdRequired": "Customer ID is required",
      "showroomPianoNotFound": "Showroom piano not found",
      "customerNotFound": "Customer not found",
      "pianoMarkedAsSold": "Piano marked as sold",
      "markAsSoldFailed": "Could not mark piano as sold",
      "locationRequired": "Location is required",
      "startEndTimeRequired": "Start and end time are required",
      "selectAtLeastOnePiano": "Select at least one piano",
      "batchCreated": "Batch appointment created",
      "createBatchFailed": "Could not create batch appointment",
      "batchNotFound": "Batch appointment not found",
      "fetchBatchFailed": "Could not fetch batch appointment",
      "invalidStatus": "Invalid status",
      "noUpdatesProvided": "No updates provided",
      "subtaskNotFound": "Subtask not found",
      "subtaskUpdated": "Subtask updated",
      "updateSubtaskFailed": "Could not update subtask",
      "noCsvFileReceived": "No CSV file received",
      "csvFileEmpty": "CSV file is empty",
      "requiredColumnMissing": "Required column \"Brand\" (or \"Merk\") is missing in CSV headers",
      "importFailed": "Import failed"
    },
    "uploads": {
      "noFileUploaded": "No file uploaded",
      "logoUploaded": "Logo uploaded successfully",
      "uploadFailed": "Upload failed",
      "logoDeleted": "Logo deleted",
      "deleteFailed": "Delete failed",
      "invalidFilename": "Invalid filename",
      "logoNotFound": "Logo not found"
    },
    "onboarding": {
      "statusFailed": "Could not retrieve onboarding status",
      "companyLoadFailed": "Could not retrieve company details",
      "servicesLoadFailed": "Could not retrieve services",
      "nameAndDurationRequired": "Name and duration are required",
      "serviceCreateFailed": "Could not create service",
      "serviceNotFound": "Service not found",
      "serviceUpdateFailed": "Could not update service",
      "serviceDeleteFailed": "Could not delete service",
      "settingsLoadFailed": "Could not retrieve settings",
      "settingsSaveFailed": "Could not save settings"
    },
    "services": {
      "loadFailed": "Could not retrieve services",
      "notFound": "Service not found",
      "loadOneFailed": "Could not retrieve service",
      "nameAndDurationRequired": "Name and duration are required",
      "createFailed": "Could not create service",
      "updateFailed": "Could not update service",
      "deleteFailed": "Could not delete service"
    },
    "smtp": {
      "connectionFailed": "Could not connect",
      "invalidCredentials": "Invalid credentials. Tips:\n• Use your full email address as username\n• Use an App password (NOT your regular password)\n• Copy the app password WITHOUT spaces (16 characters)\n• Make sure 2-factor authentication is ON",
      "connectionRefused": "Connection refused. The SMTP port is likely blocked on the server. Contact support.",
      "sslError": "SSL/TLS certificate problem. Try a different port.",
      "connectionTimeout": "Connection timeout — the SMTP port is likely blocked on the server. Gmail tip: we automatically tried port 465 (SSL). Contact support if it doesn't work.",
      "serverNotFound": "SMTP server not found. Check the hostname.",
      "authFailed": "Authentication failed. Check:\n• App password without spaces\n• 2FA must be enabled\n• Correct email address as username"
    },
    "accounting": {
      "dbNameNotUrl": "The database name must not be a URL. Enter the Odoo database name (e.g. \"my-company-main-12345\"), not the website URL."
    },
    "teamBooking": {
      "outOfZone": "Unfortunately, this address is outside our service area."
    }
  },
  "smartReason": {
    "sameLocation": "Same location - no travel time",
    "afterNearby": "Right after nearby appointment",
    "afterPrevious": "After previous appointment",
    "remoteAvailable": "Available for remote appointment",
    "adjacentWorkshop": "Adjacent to workshop",
    "beforeNearby": "Right before nearby appointment",
    "beforeNext": "Before next appointment",
    "beforeWorkshop": "Before workshop appointment",
    "availableSlot": "Available time slot",
    "workshopAvailable": "Available in workshop",
    "fartherAway": "(farther away)",
    "regionDay": "(region day)",
    "noMembers": "No team members available",
    "noSlots": "No available time slots"
  },
  "customerDetail": {
    "customerDataUnavailable": "Customer data unavailable",
    "customerCreated": "Customer created",
    "couldNotSaveCustomer": "Could not save customer",
    "confirmDeleteCustomer": "Are you sure you want to delete this customer? This cannot be undone.",
    "customerDeleted": "Customer deleted",
    "couldNotDeleteCustomer": "Could not delete customer",
    "pianoNotFound": "Piano not found",
    "confirmDeletePiano": "Are you sure you want to delete ",
    "pianoDeleted": "Piano deleted",
    "couldNotDeletePiano": "Could not delete piano",
    "linkCopied": "Link copied!",
    "emailStatusFailed": "Failed",
    "emailStatusSent": "Sent",
    "emailTypeConfirmation": "Confirmation",
    "emailTypeReminder": "Reminder",
    "emailTypeCancellation": "Cancellation",
    "emailTypeBooking": "Booking",
    "emailTypeInvitation": "Tuning invitation",
    "emailTypeWelcome": "Welcome email",
    "emailTypeReschedule": "Reschedule",
    "noSubject": "(no subject)",
    "emailLoadError": "Error loading email log",
    "projectStatusPlanning": "Planning",
    "projectStatusActive": "Active",
    "projectStatusPaused": "Paused",
    "projectStatusCompleted": "Completed",
    "projectStatusCancelled": "Cancelled"
  },
  "importContactsPage": {
    "importOf": "Import of",
    "batchLoadError": "Error loading import batches.",
    "confirmDeleteBatch": "Are you sure you want to delete this import?\\n\\nThis permanently removes {count} items.",
    "deleteError": "Error deleting: ",
    "unknownError": "Unknown error",
    "invalidFileType": "Please upload a .vcf or .csv file",
    "fileReadError": "Error reading file: ",
    "andMore": "... and {count} more",
    "noContactsToImport": "No contacts to import"
  },
  "inventory": {
    "loading": "Loading...",
    "errorLoadingInventory": "Error loading inventory",
    "noInventoryYet": "No pianos in inventory yet",
    "noInventoryDesc": "Import a CSV file or add pianos manually",
    "selectCsvFirst": "Please select a CSV file first",
    "importFailed": "Batch creation failed",
    "addFailed": "Add failed",
    "smartFillLocation": "Enter a location to see smart suggestions",
    "smartError": "Could not load suggestions",
    "noSmartSuggestions": "No smart suggestions available",
    "backToSmart": "Back to smart suggestions ▴",
    "enterLocation": "Enter a location",
    "selectSlotFirst": "Select a suggestion or plan manually",
    "chooseDate": "Choose a date",
    "chooseStartTime": "Choose a start time",
    "tunerLabel": "Tuner"
  },
  "reminders": {
    "confirmNoPianos": "There are currently <strong>no pianos",
    "confirmActivateIntro": "When activated, reminders will be scheduled for",
    "confirmOf": "of",
    "confirmSkipped": "will be skipped (already have an appointment).",
    "confirmEmailTiming": "Emails won't be sent immediately but at the configured time",
    "andMoreOthers": "and",
    "previewLoadFailed": "Could not load preview. Please try again.",
    "toastSaveError": "Error saving",
    "toggleDescActive": "Active — reminders are sent automatically",
    "toggleDesc": "Customers are automatically reminded when their piano is due for tuning",
    "upcomingEmpty": "No pianos due for tuning",
    "sentNone": "None yet",
    "loadError": "Could not load data",
    "historyEmpty": "No reminders sent yet",
    "historyLoadError": "Could not load history",
    "toastSettingsSaved": "Settings saved",
    "toastSaveFailed": "Save failed",
    "toastTestSent": "Test reminder sent to your email",
    "toastTestFailed": "Could not send test",
    "toastSendError": "Error sending",
    "confirmOptedOut": "customer(s) have opted out.",
    "confirmReviewHint": "Click \"Review first\" to see the full list.",
    "confirmCustomers": "customers"
  }
}
