{
  "common": {
    "welcome": "Welcome",
    "loading": "Loading...",
    "error": "An error occurred",
    "save": "Save",
    "cancel": "Cancel",
    "confirm": "Confirm",
    "search": "Search",
    "back": "Back",
    "backToLogin": "Back to Login",
    "backToHome": "Back to Home",
    "or": "or",
    "comingSoon": "Coming Soon",
    "menu": "Menu",
    "language": "Language",
    "currencySAR": "SAR",
    "remove": "Remove"
  },
  "home": {
    "tagline": "Mobile Car Wash Marketplace",
    "nav": {
      "home": "Home",
      "services": "Services",
      "howItWorks": "How It Works",
      "becomeProvider": "Become a Provider",
      "downloadApp": "Download App",
      "contact": "Contact Us",
      "providerLogin": "Provider Login",
      "registerProvider": "Register Provider",
      "openMenu": "Open menu",
      "closeMenu": "Close menu"
    },
    "hero": {
      "eyebrow": "On-demand car care",
      "title": "Professional Car Wash at Your Doorstep",
      "description": "Book trusted car wash professionals in just a few taps. Choose your service, pick a nearby provider, schedule your appointment, track your booking in real time, and enjoy a spotless vehicle without leaving home or the office.",
      "downloadCta": "Download App"
    },
    "stats": {
      "services": { "value": "20,000+", "label": "Completed Services" },
      "providers": { "value": "500+", "label": "Verified Providers" },
      "cities": { "value": "50+", "label": "Cities Covered" },
      "rating": { "value": "4.9★", "label": "Customer Rating" }
    },
    "services": {
      "eyebrow": "Our Services",
      "title": "Car care for every need",
      "subtitle": "From a quick exterior rinse to full ceramic protection — pick the service that fits your car.",
      "learnMore": "Learn More",
      "items": {
        "exteriorWash": {
          "name": "Exterior Wash",
          "description": "A thorough hand wash and rinse that leaves the bodywork clean and streak-free."
        },
        "interiorCleaning": {
          "name": "Interior Cleaning",
          "description": "Vacuum, wipe-down, and dashboard care for a fresh, spotless cabin."
        },
        "fullDetailing": {
          "name": "Full Car Detailing",
          "description": "Inside-and-out deep clean that restores your car to showroom condition."
        },
        "premiumWash": {
          "name": "Premium Wash",
          "description": "Our signature wash with premium foam, tyre shine, and a protective finish."
        },
        "ceramicCoating": {
          "name": "Ceramic Coating",
          "description": "Long-lasting ceramic protection for a deep gloss and easy maintenance."
        },
        "engineCleaning": {
          "name": "Engine Cleaning",
          "description": "Careful degreasing and cleaning of the engine bay for a like-new look."
        },
        "waxPolish": {
          "name": "Wax & Polish",
          "description": "Hand wax and polish that brings back shine and shields the paint."
        },
        "addOn": {
          "name": "Add-On Services",
          "description": "Extras like pet-hair removal, odour treatment, and headlight restoration."
        }
      }
    },
    "why": {
      "eyebrow": "Why Choose WASHY",
      "title": "A cleaner car, the easy way",
      "subtitle": "Everything is built around trust, convenience, and a spotless result.",
      "items": {
        "verifiedPros": {
          "title": "Verified Professionals",
          "description": "Every provider is vetted and verified before they take a booking."
        },
        "doorstep": {
          "title": "Doorstep Service",
          "description": "Professionals come to your home or office — no queues, no driving."
        },
        "gpsTracking": {
          "title": "Real-Time GPS Tracking",
          "description": "Follow your provider on the map from booking to arrival."
        },
        "securePayments": {
          "title": "Secure Online Payments",
          "description": "Pay safely in-app with fully encrypted transactions."
        },
        "beforeAfter": {
          "title": "Before & After Photos",
          "description": "See proof of the work with photos on every completed job."
        },
        "instantScheduled": {
          "title": "Instant & Scheduled Booking",
          "description": "Book on demand now or schedule for a time that suits you."
        },
        "digitalInvoice": {
          "title": "Digital Invoice",
          "description": "Get an itemised digital receipt for every service."
        },
        "ratings": {
          "title": "Customer Ratings",
          "description": "Real ratings and reviews help you pick the best provider."
        },
        "support247": {
          "title": "24×7 Customer Support",
          "description": "Our team is here around the clock whenever you need help."
        }
      }
    },
    "how": {
      "eyebrow": "How WASHY Works",
      "title": "Sparkling clean in five steps",
      "subtitle": "From your location to a spotless car — here's how simple it is.",
      "stepLabel": "Step {number}",
      "steps": {
        "detectLocation": {
          "title": "Detect Your Location",
          "description": "We find where you are so we can match nearby providers."
        },
        "selectService": {
          "title": "Select Your Car Wash Service",
          "description": "Choose the wash or detailing package you need."
        },
        "chooseProvider": {
          "title": "Choose a Nearby Service Provider",
          "description": "Compare providers by rating, distance, and arrival time."
        },
        "bookDateTime": {
          "title": "Book Your Preferred Date & Time",
          "description": "Pick an instant slot or schedule it for later."
        },
        "trackEnjoy": {
          "title": "Track Live and Enjoy a Sparkling Clean Car",
          "description": "Follow your booking in real time and enjoy the result."
        }
      }
    },
    "app": {
      "eyebrow": "Mobile App",
      "title": "Everything you need in one app",
      "subtitle": "The WASHY app puts booking, tracking, and payments in your pocket.",
      "features": {
        "otpLogin": "Mobile OTP Login",
        "gpsDetection": "GPS Location Detection",
        "smartSelection": "Smart Service Selection",
        "nearbyProviders": "Nearby Provider Listing",
        "liveTracking": "Live Order Tracking",
        "onlinePayments": "Online Payments",
        "bookingHistory": "Booking History",
        "pushNotifications": "Push Notifications",
        "digitalInvoices": "Digital Invoices",
        "ratingsReviews": "Ratings & Reviews"
      }
    },
    "partner": {
      "eyebrow": "Become a WASHY Partner",
      "title": "Grow Your Car Wash Business with WASHY",
      "description": "Join hundreds of verified professionals, receive daily customer bookings, manage appointments, track earnings, and grow your business with the WASHY Provider App.",
      "benefits": {
        "moreBookings": {
          "title": "More Customer Bookings",
          "description": "Reach new customers looking for car care nearby."
        },
        "dashboard": {
          "title": "Business Dashboard",
          "description": "Manage jobs, staff, and services from one place."
        },
        "securePayments": {
          "title": "Secure Payments",
          "description": "Get paid on time with safe, tracked payouts."
        },
        "scheduleMgmt": {
          "title": "Schedule Management",
          "description": "Set availability and control your working hours."
        },
        "ratingsReviews": {
          "title": "Ratings & Reviews",
          "description": "Build trust with verified customer feedback."
        },
        "analytics": {
          "title": "Business Analytics",
          "description": "Track earnings and performance with clear insights."
        }
      },
      "registerCta": "Register as Provider",
      "loginCta": "Provider Login"
    },
    "testimonials": {
      "eyebrow": "Customer Reviews",
      "title": "Loved by drivers everywhere",
      "subtitle": "Thousands of clean cars and happy customers — here's what they say.",
      "items": {
        "one": {
          "name": "Ahmed Al-Otaibi",
          "role": "Riyadh",
          "quote": "Booked a full detailing in minutes and the car looked brand new. The live tracking is a game changer."
        },
        "two": {
          "name": "Sara Al-Ghamdi",
          "role": "Jeddah",
          "quote": "So convenient — they came to my office and I didn't lift a finger. The before-and-after photos were a lovely touch."
        },
        "three": {
          "name": "Mohammed Al-Harbi",
          "role": "Dammam",
          "quote": "Transparent pricing and a verified professional at my door. Easily the best car wash experience I've had."
        },
        "four": {
          "name": "Layla Al-Qahtani",
          "role": "Mecca",
          "quote": "The app is beautiful and simple. Scheduled a weekly wash and it just works every time."
        }
      }
    },
    "download": {
      "eyebrow": "Get the App",
      "title": "Download WASHY Today",
      "description": "Book professional car wash services anytime, anywhere.",
      "appStore": "Download on the App Store",
      "googlePlay": "Get it on Google Play",
      "qrHint": "Scan to download"
    },
    "contact": {
      "eyebrow": "Contact Us",
      "title": "We'd love to hear from you",
      "subtitle": "Questions, feedback, or partnership ideas — reach out and we'll get back to you.",
      "infoTitle": "Contact Information",
      "addressLabel": "Address",
      "addressValue": "Jeddah, Saudi Arabia",
      "emailLabel": "Email",
      "emailValue": "hello@washy.sa",
      "phoneLabel": "Phone",
      "phoneValue": "+966 12 000 0000",
      "hoursLabel": "Working Hours",
      "hoursValue": "Sun–Thu, 9:00 AM – 6:00 PM",
      "form": {
        "fullName": "Full Name",
        "fullNamePlaceholder": "Your full name",
        "email": "Email",
        "emailPlaceholder": "you@example.com",
        "phone": "Phone Number",
        "subject": "Subject",
        "subjectPlaceholder": "How can we help?",
        "message": "Message",
        "messagePlaceholder": "Write your message...",
        "submit": "Send Message",
        "success": "Thanks! Your message has been sent."
      },
      "validation": {
        "fullNameRequired": "Please enter your full name.",
        "emailRequired": "Please enter your email.",
        "emailInvalid": "Please enter a valid email.",
        "phoneInvalid": "Please enter a valid phone number.",
        "subjectRequired": "Please enter a subject.",
        "messageRequired": "Please enter a message.",
        "messageMin": "Message must be at least 10 characters."
      }
    },
    "footer": {
      "tagline": "Professional car wash and auto detailing, on demand.",
      "company": {
        "title": "Company",
        "about": "About",
        "services": "Services",
        "careers": "Careers",
        "contact": "Contact"
      },
      "providers": {
        "title": "For Providers",
        "login": "Provider Login",
        "register": "Register",
        "dashboard": "Dashboard"
      },
      "support": {
        "title": "Support",
        "faqs": "FAQs",
        "helpCenter": "Help Center",
        "privacy": "Privacy Policy",
        "terms": "Terms & Conditions",
        "refund": "Refund Policy"
      },
      "followUs": "Follow Us",
      "rights": "© 2026 WASHY. All Rights Reserved."
    }
  },
  "auth": {
    "login": {
      "title": "Sign in to your account",
      "subtitle": "Enter your details to continue",
      "identifier": "Email address or mobile number",
      "identifierPlaceholder": "Enter email or mobile number",
      "chooseSignInMethod": "Choose sign-in method",
      "authType": {
        "password": "Password",
        "otp": "OTP"
      },
      "password": "Password",
      "passwordPlaceholder": "Enter your password",
      "showPassword": "Show password",
      "hidePassword": "Hide password",
      "otpCode": "OTP Code",
      "sendOtp": "Send OTP",
      "otpSent": "OTP sent — enter the code below",
      "resendOtp": "Resend OTP",
      "forgotPassword": "Forgot Password?",
      "submit": "Sign In",
      "providerPrompt": "Own a car wash business?",
      "registerAsProvider": "Register as a provider"
    },
    "registerProvider": {
      "title": "Register as a Provider",
      "subtitle": "Join Washy and start receiving car wash orders",
      "comingSoonBody": "Provider self-registration will be available soon. In the meantime, contact the Washy team to get your business onboarded.",
      "steps": {
        "account": "Account",
        "business": "Business",
        "location": "Location",
        "documents": "Documents",
        "review": "Review"
      },
      "nav": {
        "back": "Back",
        "next": "Next",
        "submit": "Submit application"
      },
      "account": {
        "title": "Owner account",
        "subtitle": "Create your login and verify your mobile number",
        "firstName": "First name",
        "firstNamePlaceholder": "Enter first name",
        "lastName": "Last name",
        "lastNamePlaceholder": "Enter last name",
        "email": "Email address",
        "emailPlaceholder": "you@business.com",
        "phone": "Mobile number",
        "password": "Password",
        "passwordPlaceholder": "At least 8 characters",
        "confirmPassword": "Confirm password",
        "confirmPasswordPlaceholder": "Re-enter your password",
        "sendOtp": "Send code",
        "otpSent": "We sent a 6-digit code to {phone}",
        "otpLabel": "Verification code",
        "verify": "Verify",
        "resendOtp": "Resend code",
        "resendIn": "Resend in {seconds}s",
        "verified": "Mobile number verified",
        "changeNumber": "Change number",
        "alreadyRegistered": "This number is already registered. Please sign in instead.",
        "verifyRequired": "Please verify your mobile number to continue."
      },
      "business": {
        "title": "Business details",
        "subtitle": "Tell customers who you are",
        "businessName": "Business name",
        "businessNamePlaceholder": "e.g. Clean Wash Co.",
        "logo": "Business logo",
        "logoHint": "Optional. PNG, JPG or WebP, up to 5 MB."
      },
      "location": {
        "title": "Service station & coverage",
        "subtitle": "Set where you operate from and how far you travel",
        "address": "Station address",
        "addressPlaceholder": "Street, district",
        "city": "City",
        "cityPlaceholder": "e.g. Jeddah",
        "state": "State / province",
        "statePlaceholder": "Optional",
        "zip": "Postal code",
        "zipPlaceholder": "Optional",
        "pinHint": "Drag the pin or tap the map to set your exact station location.",
        "coordinates": "Selected location",
        "radius": "Service radius",
        "radiusValue": "{km} km",
        "radiusHint": "How far you are willing to travel from the station.",
        "kmUnit": "km",
        "searchPlaceholder": "Search for a place or address",
        "search": "Search",
        "searching": "Searching…",
        "clearSearch": "Clear search",
        "useEnteredAddress": "Use address entered above",
        "noResults": "No matching places found. Try a different search or drop the pin manually.",
        "searchError": "Couldn't search right now. Please drop the pin manually.",
        "enterAddressFirst": "Fill in the address fields above first."
      },
      "documents": {
        "title": "Verification documents",
        "subtitle": "Upload your business documents for review",
        "optionalHint": "All documents are optional now, but your account can't be activated until an admin verifies them.",
        "docHint": "PDF, JPG or PNG, up to 10 MB.",
        "types": {
          "BUSINESS_REGISTRATION": "Commercial registration",
          "TRADE_LICENSE": "Trade license",
          "NATIONAL_ID": "National ID",
          "TAX_CERTIFICATE": "Tax certificate"
        }
      },
      "review": {
        "title": "Review & submit",
        "subtitle": "Check your details before submitting",
        "account": "Account",
        "business": "Business",
        "location": "Location & coverage",
        "documents": "Documents",
        "noDocuments": "No documents uploaded",
        "edit": "Edit"
      },
      "success": {
        "title": "Application submitted",
        "body": "Your business is now pending verification. Our team will review your details and documents, and you'll be notified once your account is activated.",
        "goToDashboard": "Go to dashboard",
        "backToLogin": "Back to login"
      },
      "errors": {
        "phoneTaken": "This mobile number is already registered.",
        "emailTaken": "This email address is already registered.",
        "businessNameTaken": "This business name is already taken.",
        "generic": "Registration failed. Please try again.",
        "fixHighlighted": "Please fix the highlighted fields before submitting."
      }
    },
    "forgotPassword": {
      "title": "Forgot Password",
      "subtitle": "Reset your password",
      "identifierLabel": "Email or mobile number",
      "identifierPlaceholder": "Enter your registered email or mobile number",
      "submit": "Continue",
      "step1Title": "Enter Email or Mobile",
      "step1Subtitle": "Enter your registered email address or mobile number",
      "step2Title": "Verify & Reset Password",
      "step2Subtitle": "Enter the OTP sent to you and choose a new password",
      "otpLabel": "Verification Code",
      "newPasswordLabel": "New Password",
      "newPasswordPlaceholder": "Enter new password",
      "confirmPasswordLabel": "Confirm Password",
      "confirmPasswordPlaceholder": "Confirm new password",
      "resetSubmit": "Reset Password",
      "successTitle": "Password Updated!",
      "successSubtitle": "Your password has been reset successfully. You can now sign in.",
      "backToLogin": "Back to Login"
    },
    "validation": {
      "identifierRequired": "Email or phone number is required",
      "passwordRequired": "Password is required",
      "passwordMin": "Password must be at least 6 characters",
      "otpRequired": "OTP code is required",
      "otpLength": "OTP code must be exactly 6 digits",
      "confirmPasswordRequired": "Please confirm your password",
      "passwordMismatch": "Passwords do not match",
      "firstNameRequired": "First name is required",
      "lastNameRequired": "Last name is required",
      "emailRequired": "Email address is required",
      "emailInvalid": "Enter a valid email address",
      "phoneRequired": "Mobile number is required",
      "phoneInvalid": "Enter a valid Saudi mobile number",
      "passwordMin8": "Password must be at least 8 characters",
      "passwordMax": "Password must not exceed 72 characters",
      "businessNameLength": "Business name must be between 2 and 100 characters",
      "addressRequired": "Station address is required",
      "cityRequired": "City is required",
      "locationRequired": "Drop a pin to set your station location",
      "radiusRange": "Service radius must be between 1 and 200 km"
    },
    "logout": "Logout",
    "logoutConfirm": {
      "title": "Log out?",
      "description": "Are you sure you want to log out of your account?"
    }
  },
  "legal": {
    "consent": "By signing in, you agree to our {terms} and {privacy}.",
    "signupConsent": "By submitting, you agree to our {terms} and {privacy}.",
    "termsLinkLabel": "Terms & Conditions",
    "privacyLinkLabel": "Privacy Policy",
    "lastUpdated": "Last updated: {date}"
  },
  "dashboard": {
    "title": "Dashboard",
    "stats": "Statistics",
    "recentActivity": "Recent Activity"
  },
  "calendar": {
    "today": "Today",
    "month": "Month",
    "week": "Week",
    "day": "Day",
    "allDay": "All day",
    "moreEvents": "+{count} more",
    "previousPeriod": "Previous",
    "nextPeriod": "Next",
    "viewLabel": "View",
    "viewDay": "View day",
    "noEvents": "No bookings",
    "bookingsCount": "{count} bookings",
    "options": "View & filters"
  },
  "schedule": {
    "title": "Schedule"
  },
  "providers": {
    "title": "Providers",
    "searchPlaceholder": "Search by business name...",
    "emptyTitle": "No providers yet",
    "emptyDescription": "Registered service providers will appear here.",
    "emptyPendingTitle": "No applications to review",
    "emptyPendingDescription": "New provider registrations will appear here for review.",
    "status": {
      "PENDING_VERIFICATION": "Pending review",
      "ACTIVE": "Active",
      "SUSPENDED": "Inactive",
      "REJECTED": "Rejected"
    },
    "documentStatus": {
      "PENDING": "Pending",
      "APPROVED": "Approved",
      "REJECTED": "Rejected"
    },
    "documentType": {
      "BUSINESS_REGISTRATION": "Business registration",
      "TRADE_LICENSE": "Trade license",
      "NATIONAL_ID": "National ID",
      "TAX_CERTIFICATE": "Tax certificate"
    },
    "filters": {
      "all": "All"
    },
    "columns": {
      "business": "Business",
      "status": "Status",
      "rating": "Rating",
      "team": "Team",
      "documents": "Documents",
      "commission": "Commission",
      "joined": "Registered"
    },
    "actions": {
      "view": "View details",
      "approve": "Approve",
      "activate": "Activate",
      "deactivate": "Deactivate",
      "reject": "Reject",
      "editCommission": "Set commission rate"
    },
    "confirm": {
      "approveTitle": "Approve this provider?",
      "approveDescription": "{name} will be activated and can receive and accept orders immediately.",
      "activateTitle": "Activate this provider?",
      "activateDescription": "{name} will be able to receive and accept orders immediately.",
      "deactivateTitle": "Deactivate this provider?",
      "deactivateDescription": "{name} will be set to inactive and stop receiving new orders until reactivated. Existing orders are not cancelled.",
      "rejectTitle": "Reject this provider?",
      "rejectDescription": "{name}'s application will be rejected and they will not be able to operate on the platform.",
      "noteNotRecorded": "Note: the platform does not store a reason for account status changes."
    },
    "commission": {
      "title": "Platform commission rate",
      "description": "Percentage the platform takes from each order for this provider.",
      "label": "Commission rate (%)",
      "placeholder": "e.g. 15",
      "platformDefault": "Platform default",
      "cannotClear": "A rate cannot be removed once set — only changed.",
      "save": "Save rate"
    },
    "detail": {
      "notFoundTitle": "Provider not found",
      "notFoundDescription": "This provider does not exist or has been removed.",
      "backToList": "Back to providers",
      "tabs": {
        "overview": "Overview",
        "documents": "Documents",
        "team": "Team",
        "services": "Services",
        "coverage": "Coverage",
        "activity": "Activity"
      },
      "overview": {
        "accountTitle": "Account",
        "businessName": "Business name",
        "status": "Status",
        "commission": "Commission rate",
        "registered": "Registered",
        "verifiedAt": "Verified",
        "lastUpdated": "Last updated",
        "notVerified": "Not verified yet",
        "ratingTitle": "Rating",
        "reviewsCount": "{count} reviews",
        "noReviews": "No reviews yet",
        "kycTitle": "Document verification",
        "kycProgress": "{approved} of {total} approved",
        "kycNoDocuments": "No documents submitted",
        "teamSize": "Team members",
        "servicesCount": "Services offered"
      },
      "documents": {
        "title": "KYC documents",
        "description": "Verify each submitted document before activating the account.",
        "emptyTitle": "No documents submitted",
        "emptyDescription": "This provider has not uploaded any KYC documents yet.",
        "uploaded": "Uploaded {date}",
        "verifiedBy": "Reviewed by {name}",
        "rejectionReason": "Reason: {reason}",
        "review": "Review",
        "openOriginal": "Open original"
      },
      "team": {
        "emptyTitle": "No team members",
        "emptyDescription": "No users are linked to this provider account.",
        "name": "Name",
        "contact": "Contact",
        "role": "Role",
        "accountStatus": "Account",
        "joined": "Joined",
        "active": "Active",
        "inactive": "Inactive",
        "noContact": "No contact details"
      },
      "services": {
        "emptyTitle": "No services offered",
        "emptyDescription": "This provider has not selected any services yet.",
        "service": "Service",
        "duration": "Duration",
        "price": "Price",
        "priceRange": "Platform range",
        "minutes": "{count} min",
        "inactivePackage": "Inactive"
      },
      "coverage": {
        "title": "Coverage area",
        "description": "The area this provider serves, as submitted with their profile.",
        "emptyTitle": "No coverage area set",
        "emptyDescription": "This provider has not defined a service coverage area yet.",
        "loadingMap": "Loading map...",
        "areaLabel": "Approximate area",
        "areaValue": "{value} km²",
        "pointsLabel": "Boundary points",
        "centerLabel": "Center"
      },
      "activity": {
        "title": "Activity history",
        "description": "Derived from account, document, and team records.",
        "emptyTitle": "No activity yet",
        "emptyDescription": "Account events will appear here as they happen.",
        "registered": "Provider registered",
        "verified": "Account verified",
        "documentUploaded": "{document} uploaded",
        "documentApproved": "{document} approved",
        "documentRejected": "{document} rejected",
        "memberJoined": "{name} joined the team"
      }
    },
    "review": {
      "title": "Review document",
      "approve": "Approve",
      "reject": "Reject",
      "approveTitle": "Approve this document?",
      "approveDescription": "{document} will be marked as verified.",
      "rejectTitle": "Reject this document?",
      "rejectDescription": "The provider will need to re-upload {document}.",
      "rejectReasonLabel": "Rejection reason",
      "rejectReasonPlaceholder": "Explain what is wrong with the document...",
      "previewUnavailable": "Preview not available",
      "previewUnavailableDescription": "This file type cannot be shown here. Open the original to review it.",
      "previewFailed": "The document could not be loaded",
      "previewFailedDescription": "The file may have moved or the link may have expired. Try opening the original.",
      "alreadyApproved": "This document is already approved.",
      "alreadyRejected": "This document was rejected."
    },
    "toast": {
      "statusUpdated": "Provider status updated",
      "statusFailed": "Could not update the provider status. Please try again.",
      "commissionUpdated": "Commission rate updated",
      "documentApproved": "Document approved",
      "documentRejected": "Document rejected",
      "documentFailed": "Could not update the document. Please try again."
    },
    "validation": {
      "commissionRequired": "Commission rate is required",
      "commissionRange": "Commission rate must be between 0 and 100",
      "rejectionReasonMin": "Rejection reason must be at least 3 characters"
    },
    "packages": {
      "title": "Service Packages",
      "emptyTitle": "No packages yet",
      "emptyDescription": "Create the wash packages providers will offer, each with its own price range.",
      "columns": {
        "package": "Package",
        "duration": "Duration",
        "priceRange": "Price range",
        "features": "Includes"
      },
      "actions": {
        "new": "New package",
        "edit": "Edit",
        "delete": "Delete"
      },
      "form": {
        "newTitle": "New package",
        "editTitle": "Edit package",
        "name": "Package name",
        "namePlaceholder": "e.g. Exterior Wash",
        "descriptionLabel": "Description",
        "descriptionPlaceholder": "What this package includes...",
        "duration": "Estimated duration (minutes)",
        "minPrice": "Minimum price",
        "maxPrice": "Maximum price",
        "features": "Includes",
        "featuresHint": "Press Enter after each item.",
        "featuresPlaceholder": "e.g. Wheel cleaning",
        "create": "Create package"
      }
    }
  },
  "catalog": {
    "title": "Service Catalog",
    "searchPlaceholder": "Search by service name...",
    "emptyTitle": "No services yet",
    "emptyDescription": "Create the wash packages providers will offer, each with its own price range.",
    "minutes": "{count} min",
    "status": {
      "active": "Active",
      "inactive": "Inactive"
    },
    "filters": {
      "ALL": "All",
      "ACTIVE": "Active",
      "INACTIVE": "Inactive"
    },
    "columns": {
      "package": "Service",
      "duration": "Duration",
      "priceRange": "Price range",
      "features": "Includes",
      "status": "Status"
    },
    "actions": {
      "new": "New service",
      "edit": "Edit",
      "delete": "Delete"
    },
    "form": {
      "newTitle": "New service",
      "editTitle": "Edit service",
      "description": "Providers pick from these services and set their own price inside the range you define.",
      "name": "Service name",
      "nameHint": "Shown to customers exactly as typed, and must be unique.",
      "namePlaceholder": "e.g. Exterior Wash",
      "descriptionLabel": "Description",
      "descriptionPlaceholder": "What this service includes...",
      "duration": "Estimated duration",
      "durationUnit": "min",
      "minPrice": "Minimum price",
      "maxPrice": "Maximum price",
      "features": "Includes",
      "featuresHint": "Press Enter after each item.",
      "featuresPlaceholder": "e.g. Wheel cleaning",
      "icon": "Icon",
      "iconHint": "Shown next to the service name. Tap the selected icon again to clear it.",
      "create": "Create service"
    },
    "icons": {
      "external_wash": "Exterior wash",
      "interior_wash": "Interior wash",
      "internal_external_wash": "Interior & exterior wash",
      "full_detail": "Full detail",
      "polish": "Polish",
      "wax_coating": "Wax & coating",
      "engine_wash": "Engine wash",
      "steam_wash": "Steam wash",
      "dry_wash": "Dry wash",
      "upholstery": "Upholstery cleaning",
      "add_on": "Add-on"
    },
    "confirm": {
      "deleteTitle": "Delete this service?",
      "deleteDescription": "{name} will be removed from the catalog and customers will no longer be able to book it.",
      "deleteNote": "Providers who offer it keep their records, but the service disappears from every listing."
    },
    "toast": {
      "created": "Service created",
      "updated": "Service updated",
      "saveFailed": "Could not save the service. Please try again.",
      "deleted": "Service deleted",
      "deleteFailed": "Could not delete the service. Please try again.",
      "serviceEnabled": "Service updated",
      "serviceDisabled": "Service removed from your list",
      "toggleFailed": "Could not update the service. Please try again."
    },
    "validation": {
      "nameRequired": "Service name is required",
      "durationRequired": "Duration is required",
      "durationInvalid": "Duration must be a whole number of minutes, at least 1",
      "minPriceRequired": "Minimum price is required",
      "maxPriceRequired": "Maximum price is required",
      "priceInvalid": "Enter a valid amount",
      "maxBelowMin": "Maximum price cannot be less than the minimum",
      "priceRequired": "Price is required",
      "priceOutOfRange": "Price must be within the range set by the platform"
    },
    "myServices": {
      "title": "My Services",
      "emptyTitle": "No services available yet",
      "emptyDescription": "The platform has not published any wash packages yet. Check back soon.",
      "notSet": "Not set",
      "filters": {
        "ALL": "All",
        "OFFERED": "Offering",
        "AVAILABLE": "Not offering"
      },
      "columns": {
        "allowedRange": "Platform range",
        "myPrice": "My price",
        "offering": "Offering"
      },
      "actions": {
        "startOffering": "Offer this service",
        "changePrice": "Change price",
        "stopOffering": "Stop offering"
      },
      "priceDialog": {
        "enableTitle": "Offer this service",
        "editTitle": "Change your price",
        "description": "Set what you charge for {name}.",
        "label": "Your price",
        "rangeHint": "Allowed price: {range}",
        "enable": "Start offering"
      },
      "confirm": {
        "optOutTitle": "Stop offering this service?",
        "optOutDescription": "{name} will no longer be bookable from your profile.",
        "optOutNote": "Your price is not kept — you'll need to set it again if you offer this service later."
      }
    }
  },
  "customers": {
    "title": "Customers",
    "searchPlaceholder": "Search by name or email...",
    "emptyTitle": "No customers yet",
    "emptyDescription": "Registered customers will appear here.",
    "columns": {
      "name": "Name",
      "email": "Email",
      "phone": "Phone",
      "joined": "Joined",
      "status": "Status"
    },
    "status": {
      "active": "Active",
      "inactive": "Inactive"
    },
    "actions": {
      "view": "View details"
    },
    "detail": {
      "notFoundTitle": "Customer not found",
      "notFoundDescription": "This customer does not exist or has been removed.",
      "backToList": "Back to customers",
      "tabs": {
        "overview": "Overview",
        "activity": "Activity"
      },
      "overview": {
        "accountTitle": "Account",
        "name": "Name",
        "email": "Email",
        "phone": "Phone",
        "joined": "Joined"
      },
      "activity": {
        "title": "Activity history",
        "description": "Derived from account and order records.",
        "emptyTitle": "No activity yet",
        "emptyDescription": "Account events will appear here as they happen.",
        "registered": "Customer registered"
      }
    }
  },
  "roles": {
    "ADMIN_SUPER": "Super Admin",
    "ADMIN_SUPPORT": "Support Admin",
    "PROVIDER_OWNER": "Provider Owner",
    "PROVIDER_MANAGER": "Provider Manager",
    "PROVIDER_TECHNICIAN": "Technician",
    "CUSTOMER": "Customer"
  },
  "rbac": {
    "noAccess": {
      "title": "No access",
      "description": "You don't have permission to view this page."
    }
  },
  "errors": {
    "title": "Something went wrong",
    "description": "An unexpected error occurred. Please try again.",
    "retry": "Try Again",
    "notFoundTitle": "Page not found",
    "notFoundDescription": "The page you're looking for doesn't exist or has been moved."
  },
  "fileUpload": {
    "browse": "Click to upload",
    "dropHint": "or drag and drop",
    "uploading": "Uploading…",
    "view": "View",
    "remove": "Remove",
    "retry": "Retry",
    "errors": {
      "tooLarge": "File is too large",
      "invalidType": "Unsupported file type",
      "failed": "Upload failed. Please try again."
    }
  },
  "confirmDialog": {
    "reasonLabel": "Reason",
    "reasonPlaceholder": "Enter the reason...",
    "reasonRequired": "Reason is required"
  },
  "dataTable": {
    "searchPlaceholder": "Search...",
    "emptyTitle": "No data yet",
    "emptyDescription": "There is nothing to show here yet.",
    "noResultsTitle": "No results found",
    "noResultsDescription": "Try adjusting your search or filters.",
    "rowsPerPage": "Rows per page",
    "pageOf": "Page {current} of {total}",
    "selectedCount": "{count} selected",
    "previous": "Previous",
    "next": "Next",
    "actions": "Actions",
    "selectAll": "Select all",
    "selectRow": "Select row",
    "clearSelection": "Clear selection"
  }
}
