{
  "common": {
    "actions": {
      "save": "Save",
      "cancel": "Cancel",
      "delete": "Delete",
      "edit": "Edit",
      "create": "Create",
      "search": "Search",
      "export": "Export",
      "back": "Back",
      "previous": "Previous",
      "next": "Next"
    },
    "states": {
      "loading": "Loading…",
      "empty": "Nothing to show yet",
      "error": "Something went wrong. Please try again."
    },
    "pagination": {
      "page": "Page {page} of {totalPages}"
    }
  },
  "auth": {
    "login": {
      "heading": "Welcome back",
      "subheading": "Sign in to your DentalERP account",
      "email": "Email",
      "password": "Password",
      "emailPlaceholder": "admin@demo-dental.com",
      "passwordPlaceholder": "Enter your password",
      "submit": "Sign in",
      "ssoButton": "Sign in with SSO",
      "loading": "Loading…",
      "noAccount": "Don't have an account?",
      "signUp": "Sign up for free",
      "demoCredentials": "Demo credentials:",
      "loginFailed": "Login failed",
      "invalidCredentials": "Invalid email or password. Please try again.",
      "errorTitle": "Error"
    },
    "verifyEmail": {
      "loading": "Loading...",
      "titleLoading": "Verifying...",
      "titleSuccess": "Email Verified!",
      "titleError": "Verification Failed",
      "titlePending": "Check Your Email",
      "pendingMsg": "We've sent a verification email to {email}. Please check your inbox and click the verification link.",
      "noToken": "No verification token or email provided.",
      "successMsg": "Your email has been verified successfully!",
      "toastVerifiedTitle": "Email verified!",
      "toastVerifiedDesc": "You can now log in to your account.",
      "failMsg": "Verification failed. Please try again.",
      "errorMsg": "An error occurred during verification. Please try again.",
      "resendToastTitle": "Verification email sent",
      "resendToastDesc": "Please check your inbox for the verification link.",
      "continueToLogin": "Continue to Login",
      "trySignup": "Try signing up again",
      "backToLogin": "Back to Login",
      "noEmailQ": "Didn't receive the email?",
      "checkSpam": "Check your spam folder or click below to resend.",
      "resendButton": "Resend Verification Email"
    },
    "signup": {
      "vHospitalName": "Hospital name must be at least 2 characters",
      "vAdminName": "Your name must be at least 2 characters",
      "vEmail": "Please enter a valid email address",
      "vPhone": "Phone number must be at least 10 digits",
      "vPassword": "Password must be at least 8 characters",
      "vPasswordMatch": "Passwords do not match",
      "signupFailed": "Signup failed",
      "somethingWrong": "Something went wrong. Please try again.",
      "accountCreated": "Account created!",
      "checkEmail": "Please check your email to verify your account.",
      "errorTitle": "Error",
      "title": "Create your clinic",
      "subtitle": "Start your free trial with up to 100 patients",
      "hospitalNameLabel": "Hospital/Clinic Name",
      "hospitalNamePlaceholder": "Dr. Smith's Dental Clinic",
      "yourNameLabel": "Your Name",
      "yourNamePlaceholder": "Dr. John Smith",
      "emailLabel": "Email",
      "emailPlaceholder": "doctor@clinic.com",
      "phoneLabel": "Phone Number",
      "passwordLabel": "Password",
      "passwordPlaceholder": "At least 8 characters",
      "confirmPasswordLabel": "Confirm Password",
      "confirmPasswordPlaceholder": "Confirm your password",
      "createAccount": "Create Account",
      "haveAccount": "Already have an account? Sign in",
      "terms": "By signing up, you agree to our Terms of Service and Privacy Policy."
    },
    "invite": {
      "vPassword": "Password must be at least 8 characters",
      "vPasswordMatch": "Passwords do not match",
      "vPhone": "Phone number must be at least 10 digits",
      "noToken": "No invite token provided.",
      "invalidLink": "Invalid invite link.",
      "errorOccurred": "An error occurred. Please try again.",
      "accountCreated": "Account created!",
      "canLogin": "You can now log in to your account.",
      "errorTitle": "Error",
      "somethingWrong": "Something went wrong. Please try again.",
      "loading": "Loading...",
      "validatingTitle": "Validating Invite",
      "pleaseWait": "Please wait...",
      "invalidTitle": "Invalid Invite",
      "goToLogin": "Go to Login",
      "welcomeTitle": "Welcome Aboard!",
      "welcomeBody": "Your account has been created successfully. You can now log in to {hospital}.",
      "continueToLogin": "Continue to Login",
      "joinTitle": "Join {hospital}",
      "invitedAs": "You've been invited to join as a",
      "nameLabel": "Name:",
      "emailLabel": "Email:",
      "phoneLabel": "Phone Number",
      "createPassword": "Create Password",
      "passwordPlaceholder": "At least 8 characters",
      "confirmPassword": "Confirm Password",
      "confirmPlaceholder": "Confirm your password",
      "createAccount": "Create Account",
      "terms": "By creating an account, you agree to our Terms of Service and Privacy Policy."
    }
  },
  "billing": {
    "invoice": {
      "title": "Invoice",
      "subtotal": "Subtotal",
      "discount": "Discount",
      "taxableAmount": "Taxable amount",
      "total": "Total",
      "amountInWords": "Amount in words",
      "cgst": "CGST",
      "sgst": "SGST",
      "igst": "IGST",
      "vat": "VAT"
    },
    "status": {
      "all": "All Status",
      "DRAFT": "Draft",
      "PENDING": "Pending",
      "PARTIALLY_PAID": "Partially Paid",
      "PAID": "Paid",
      "OVERDUE": "Overdue",
      "CANCELLED": "Cancelled",
      "REFUNDED": "Refunded"
    },
    "paymentStatus": {
      "all": "All Status",
      "PENDING": "Pending",
      "COMPLETED": "Completed",
      "FAILED": "Failed",
      "REFUNDED": "Refunded",
      "CANCELLED": "Cancelled"
    },
    "payments": {
      "title": "Payments",
      "subtitle": "View and manage all payment transactions",
      "totalReceived": "Total Received",
      "totalRefunded": "Total Refunded",
      "netCollection": "Net Collection",
      "searchPlaceholder": "Search by payment number, invoice, or patient…",
      "status": "Status",
      "method": "Method",
      "allMethods": "All Methods",
      "cols": {
        "payment": "Payment",
        "patient": "Patient",
        "invoice": "Invoice",
        "date": "Date",
        "method": "Method",
        "amount": "Amount",
        "status": "Status",
        "actions": "Actions"
      },
      "empty": "No payments found",
      "txn": "TXN: {id}",
      "refund": "Refund: {amount}",
      "viewInvoice": "View Invoice",
      "processRefund": "Process Refund",
      "showing": "Showing {from} to {to} of {total} payments"
    },
    "planStatus": {
      "all": "All",
      "ACTIVE": "Active",
      "COMPLETED": "Completed",
      "DEFAULTED": "Defaulted",
      "CANCELLED": "Cancelled"
    },
    "frequency": {
      "WEEKLY": "Weekly",
      "BIWEEKLY": "Bi-weekly",
      "MONTHLY": "Monthly"
    },
    "paymentPlans": {
      "title": "Payment Plans",
      "subtitle": "Manage installment payment plans for invoices",
      "new": "New Payment Plan",
      "activePlans": "Active Plans",
      "completed": "Completed",
      "defaulted": "Defaulted",
      "outstanding": "Outstanding",
      "loadError": "Failed to load payment plans",
      "cols": {
        "patient": "Patient",
        "invoice": "Invoice",
        "totalAmount": "Total Amount",
        "installments": "Installments",
        "frequency": "Frequency",
        "progress": "Progress",
        "nextDue": "Next Due",
        "status": "Status",
        "actions": "Actions"
      },
      "empty": "No payment plans found",
      "overdue": "{count} overdue"
    },
    "planNew": {
      "title": "Create Payment Plan",
      "subtitle": "Set up an installment plan for an outstanding invoice",
      "selectInvoice": "Select Invoice",
      "selectInvoiceDesc": "Choose an unpaid or partially paid invoice",
      "searchPlaceholder": "Search by invoice number or patient name…",
      "searching": "Searching…",
      "of": "of {amount}",
      "change": "Change",
      "total": "Total",
      "paid": "Paid",
      "balance": "Balance",
      "config": "Plan Configuration",
      "configDesc": "Configure installment frequency, count, and terms",
      "numInstallments": "Number of Installments",
      "frequency": "Frequency",
      "downPayment": "Down Payment",
      "interestRate": "Interest Rate (%)",
      "startDate": "Start Date",
      "notesOptional": "Notes (Optional)",
      "notesPlaceholder": "Any additional terms or notes…",
      "summary": "Plan Summary",
      "invoiceBalance": "Invoice Balance",
      "interestAmount": "Interest Amount",
      "totalPlanAmount": "Total Plan Amount",
      "emiAmount": "EMI Amount",
      "lastPaymentDate": "Last Payment Date",
      "schedule": "Installment Schedule",
      "schedulePreview": "Preview of {count} installments",
      "dueDate": "Due Date",
      "amount": "Amount",
      "creating": "Creating Plan…",
      "create": "Create Payment Plan",
      "errSelectInvoice": "Please select an invoice",
      "created": "Payment plan created successfully",
      "errorTitle": "Error",
      "errCreate": "Failed to create plan"
    },
    "installmentStatus": {
      "PAID": "Paid",
      "PENDING": "Pending",
      "OVERDUE": "Overdue",
      "WAIVED": "Waived"
    },
    "planDetail": {
      "loadError": "Failed to load payment plan",
      "waiveTitle": "Waive installment?",
      "waiveDesc": "Waive this installment? The patient won't need to pay it.",
      "waiveConfirm": "Yes, proceed",
      "waived": "Installment waived",
      "paymentFailed": "Payment Failed",
      "cancelled": "Payment plan cancelled",
      "errorTitle": "Error",
      "title": "Payment Plan",
      "invoiceLabel": "Invoice",
      "cancelPlan": "Cancel Plan",
      "notFound": "Payment plan not found",
      "backToPlans": "Back to Payment Plans",
      "totalAmount": "Total Amount",
      "includesInterest": "Includes {rate}% interest",
      "totalPaid": "Total Paid",
      "installmentsOf": "{paid} of {total} installments",
      "remaining": "Remaining",
      "remainingCount": "{count} remaining",
      "nextDue": "Next Due",
      "overdue": "{count} overdue",
      "paymentProgress": "Payment Progress",
      "downPaymentLabel": "Down payment: {amount}",
      "startedOn": "{frequency} — Started {date}",
      "patientDetails": "Patient Details",
      "name": "Name",
      "patientId": "Patient ID",
      "phone": "Phone",
      "email": "Email",
      "invoiceDetails": "Invoice Details",
      "invoiceNo": "Invoice No",
      "invoiceTotal": "Invoice Total",
      "balance": "Balance",
      "planTerms": "Plan Terms",
      "frequency": "Frequency",
      "installments": "Installments",
      "interestRate": "Interest Rate",
      "downPayment": "Down Payment",
      "created": "Created",
      "notes": "Notes",
      "schedule": "Installment Schedule",
      "scheduleDesc": "Track and manage each installment payment",
      "cols": {
        "dueDate": "Due Date",
        "amount": "Amount",
        "status": "Status",
        "paidDate": "Paid Date",
        "paidAmount": "Paid Amount",
        "paymentMethod": "Payment Method",
        "actions": "Actions"
      },
      "pay": "Pay",
      "waive": "Waive",
      "recordPaymentTitle": "Record Installment Payment",
      "recordPaymentDesc": "Record a payment for this installment",
      "amount": "Amount",
      "paymentMethod": "Payment Method",
      "transactionId": "Transaction ID (Optional)",
      "transactionPlaceholder": "Reference number…",
      "processing": "Processing…",
      "recordPaymentBtn": "Record Payment — {amount}",
      "cancelPlanTitle": "Cancel Payment Plan",
      "cancelPlanDesc": "This will cancel the payment plan and waive all remaining installments. Payments already made will not be refunded.",
      "keepPlan": "Keep Plan",
      "cancelling": "Cancelling…"
    },
    "claimStatus": {
      "all": "All Status",
      "DRAFT": "Draft",
      "SUBMITTED": "Submitted",
      "UNDER_REVIEW": "Under Review",
      "APPROVED": "Approved",
      "PARTIALLY_APPROVED": "Partially Approved",
      "REJECTED": "Rejected",
      "SETTLED": "Settled"
    },
    "appealStatus": {
      "PREPARING": "Preparing Appeal",
      "SUBMITTED": "Appeal Submitted",
      "UNDER_REVIEW": "Under Review",
      "WON": "Appeal Won",
      "LOST": "Appeal Lost",
      "ABANDONED": "Abandoned"
    },
    "insurance": {
      "title": "Insurance Claims",
      "subtitle": "Manage insurance claims and track settlements",
      "providers": "Providers",
      "preAuth": "Pre-Auth",
      "newClaim": "New Claim",
      "totalClaimed": "Total Claimed",
      "totalApproved": "Total Approved",
      "totalSettled": "Total Settled",
      "searchPlaceholder": "Search by claim number, patient, or provider…",
      "status": "Status",
      "cols": {
        "claim": "Claim",
        "patient": "Patient",
        "provider": "Provider",
        "claimed": "Claimed",
        "approved": "Approved",
        "submitted": "Submitted",
        "status": "Status",
        "actions": "Actions"
      },
      "empty": "No insurance claims found",
      "createNew": "Create New Claim",
      "policy": "Policy: {number}",
      "notSubmitted": "Not submitted",
      "viewDetails": "View Details",
      "edit": "Edit",
      "submitClaim": "Submit Claim",
      "denialAppeal": "Denial / Appeal",
      "aiAnalyze": "AI Analyze",
      "viewInvoice": "View Invoice {no}",
      "showing": "Showing {from} to {to} of {total} claims",
      "denialTitle": "Denial & Appeal Management",
      "rejection": "Rejection: {reason}",
      "denialCode": "Denial Code",
      "denialCodePlaceholder": "e.g., CO-4, PR-96",
      "appealDeadline": "Appeal Deadline",
      "appealStatusLabel": "Appeal Status",
      "selectStatus": "Select status",
      "appealNotes": "Appeal Notes",
      "appealNotesPlaceholder": "Notes about the denial reason, appeal strategy…",
      "save": "Save",
      "aiTitle": "AI Claim Analysis",
      "amount": "Amount: {amount}",
      "analyzing": "Analyzing claim…",
      "analysisHeading": "Analysis",
      "likelyCause": "Likely Cause:",
      "category": "Category:",
      "recoveryLikelihood": "Recovery Likelihood:",
      "suggestions": "Suggestions",
      "draftAppeal": "Draft Appeal Letter",
      "copyClipboard": "Copy to Clipboard",
      "preventionTips": "Prevention Tips",
      "close": "Close",
      "analyzeFailed": "Failed to analyze claim"
    },
    "preAuthStatus": {
      "PENDING": "Pending",
      "SUBMITTED": "Submitted",
      "APPROVED": "Approved",
      "DENIED": "Denied",
      "EXPIRED": "Expired"
    },
    "preAuth": {
      "title": "Pre-Authorizations",
      "subtitle": "Manage insurance pre-authorization requests",
      "new": "New Pre-Auth",
      "searchPlaceholder": "Search by auth number or patient…",
      "allStatuses": "All Statuses",
      "empty": "No pre-authorizations found",
      "cols": {
        "authNo": "Auth #",
        "patient": "Patient",
        "provider": "Provider",
        "procedures": "Procedures",
        "estCost": "Est. Cost",
        "approved": "Approved",
        "status": "Status",
        "date": "Date"
      },
      "showing": "Showing {from}–{to} of {total}",
      "detailsTitle": "Pre-Authorization Details",
      "authNumber": "Auth Number",
      "notAssigned": "Not assigned",
      "patient": "Patient",
      "provider": "Provider",
      "policy": "Policy",
      "estimatedCost": "Estimated Cost",
      "approvedAmount": "Approved Amount",
      "expires": "Expires",
      "procedures": "Procedures",
      "denialReason": "Denial Reason",
      "notes": "Notes",
      "markSubmitted": "Mark Submitted",
      "approve": "Approve",
      "deny": "Deny",
      "approvedPrompt": "Approved amount:",
      "denialPrompt": "Denial reason:",
      "loadError": "Failed to load pre-authorizations",
      "updateError": "Failed to update",
      "statusUpdated": "Pre-authorization {status}"
    },
    "providers": {
      "title": "Insurance Providers",
      "subtitle": "Manage insurance companies your hospital works with",
      "add": "Add Provider",
      "searchPlaceholder": "Search providers…",
      "empty": "No insurance providers found",
      "emptyHint": "Add your first insurance provider to get started",
      "cols": {
        "provider": "Provider",
        "code": "Code",
        "contact": "Contact",
        "policies": "Policies",
        "status": "Status"
      },
      "active": "Active",
      "inactive": "Inactive",
      "edit": "Edit",
      "delete": "Delete",
      "editTitle": "Edit Provider",
      "addTitle": "Add Insurance Provider",
      "name": "Provider Name *",
      "namePlaceholder": "e.g., Star Health Insurance",
      "code": "Code",
      "codePlaceholder": "e.g., STARHI",
      "contactPhone": "Contact Phone",
      "phonePlaceholder": "Phone number",
      "contactEmail": "Contact Email",
      "emailPlaceholder": "claims@provider.com",
      "website": "Website",
      "websitePlaceholder": "https://provider.com",
      "claimUrl": "Claim Submission URL",
      "claimUrlPlaceholder": "https://provider.com/claims/submit",
      "portalUsername": "Portal Username",
      "usernamePlaceholder": "Username",
      "portalPassword": "Portal Password",
      "passwordKeep": "Leave blank to keep",
      "passwordPlaceholder": "Password",
      "saving": "Saving…",
      "update": "Update",
      "create": "Create",
      "nameRequired": "Provider name is required",
      "updated": "Provider updated",
      "created": "Provider created",
      "deleteTitle": "Delete Provider",
      "deleteDesc": "Are you sure you want to delete this provider?",
      "removed": "Provider removed",
      "loadError": "Failed to load providers",
      "deleteError": "Failed to delete provider"
    },
    "preAuthNew": {
      "title": "New Pre-Authorization",
      "subtitle": "Request insurance pre-approval for treatment",
      "step1": "1. Select Patient",
      "change": "Change",
      "searchPlaceholder": "Search patient by name, ID, or phone…",
      "step2": "2. Select Insurance Policy",
      "noPolicies": "No active insurance policies found for this patient.",
      "selectPolicy": "Select policy",
      "memberId": "Member ID",
      "subscriber": "Subscriber",
      "annualMaximum": "Annual Maximum",
      "remaining": "Remaining",
      "step3": "3. Procedures",
      "addProcedure": "Add Procedure",
      "procedureName": "Procedure Name *",
      "procedureNamePlaceholder": "e.g., Root Canal Treatment",
      "code": "Code",
      "codePlaceholder": "e.g., D3310",
      "cost": "Cost *",
      "totalEstimated": "Total Estimated Cost:",
      "step4": "4. Additional Notes",
      "notesPlaceholder": "Any additional notes for the pre-authorization request…",
      "creating": "Creating…",
      "create": "Create Pre-Authorization",
      "errSelectPolicy": "Please select a patient and insurance policy",
      "errProcedure": "Add at least one procedure",
      "errCost": "Total estimated cost must be greater than 0",
      "created": "Pre-authorization request created"
    },
    "reports": {
      "title": "Financial Reports",
      "subtitle": "View detailed financial analytics and reports",
      "selectPeriod": "Select period",
      "export": "Export",
      "tabOutstanding": "Outstanding",
      "tabByProcedure": "By Procedure",
      "tabByDoctor": "By Doctor",
      "tabDaily": "Daily Collection",
      "current": "Current",
      "notYetDue": "Not yet due",
      "days1_30": "1-30 Days",
      "days31_60": "31-60 Days",
      "days61_90": "61-90 Days",
      "days90": "90+ Days",
      "overdue": "Overdue",
      "critical": "Critical",
      "invoices": "{count} invoices",
      "outstandingInvoices": "Outstanding Invoices",
      "outstandingTotal": "Total: {amount} from {count} invoices",
      "cols": {
        "invoice": "Invoice",
        "patient": "Patient",
        "invoiceDate": "Invoice Date",
        "dueDate": "Due Date",
        "total": "Total",
        "balance": "Balance"
      },
      "noOutstanding": "No outstanding invoices",
      "totalRevenue": "Total Revenue",
      "totalTreatments": "Total Treatments",
      "revenueByProcedure": "Revenue by Procedure",
      "procCols": {
        "procedure": "Procedure",
        "category": "Category",
        "count": "Count",
        "avgRevenue": "Avg. Revenue",
        "totalRevenue": "Total Revenue"
      },
      "noProcedure": "No procedure data available",
      "activeDoctors": "Active Doctors",
      "revenueByDoctor": "Revenue by Doctor",
      "docCols": {
        "doctor": "Doctor",
        "treatments": "Treatments",
        "avgPerTreatment": "Avg. per Treatment",
        "totalRevenue": "Total Revenue"
      },
      "noDoctor": "No doctor data available",
      "totalCollection": "Total Collection",
      "totalPayments": "Total Payments",
      "dailyBreakdown": "Daily Collection Breakdown",
      "date": "Date",
      "total": "Total",
      "count": "Count",
      "noCollection": "No collection data available",
      "exportEmpty": "No data to export",
      "exportSuccess": "Export complete"
    },
    "checkout": {
      "payOnline": "Pay Online",
      "paymentSuccessful": "Payment Successful",
      "successDesc": "Your payment has been processed successfully.",
      "invoiceFor": "Invoice {no} for {name}",
      "amount": "Amount",
      "pay": "Pay {amount}",
      "secured": "Secured payment via your clinic's payment gateway",
      "preparing": "Preparing payment…",
      "waiting": "Waiting for payment…",
      "verifying": "Verifying payment…",
      "received": "Payment of {amount} received",
      "invoiceUpdated": "Invoice {no} updated",
      "paymentFailed": "Payment Failed",
      "tryAgain": "Try Again",
      "errFailed": "Payment failed. Please try again.",
      "errGeneric": "Payment failed",
      "errVerify": "Payment verification failed"
    },
    "gateway": {
      "title": "Payment Gateway",
      "description": "Connect your own Razorpay, PhonePe, or Paytm merchant account to accept online payments",
      "active": "Active",
      "live": "Live",
      "testMode": "Test Mode",
      "provider": "Payment Provider",
      "selectProvider": "Select a provider",
      "providerHint": "Use your own merchant account credentials",
      "enablePayments": "Enable Online Payments",
      "liveMode": "Live Mode",
      "liveModeHint": "(uncheck for test/sandbox)",
      "razorpayCreds": "Razorpay Credentials",
      "getFrom": "Get these from your",
      "razorpayDashboard": "Razorpay Dashboard",
      "keyId": "Key ID",
      "keySecret": "Key Secret",
      "enterKeySecret": "Enter key secret",
      "encryptedNote": "Stored encrypted. Leave unchanged to keep existing.",
      "phonepeCreds": "PhonePe PG Credentials",
      "phonepeDashboard": "PhonePe Business Dashboard",
      "merchantId": "Merchant ID",
      "saltKey": "Salt Key",
      "enterSaltKey": "Enter salt key",
      "saltIndex": "Salt Index",
      "paytmCreds": "Paytm PG Credentials",
      "paytmDashboard": "Paytm Business Dashboard",
      "paytmMid": "Merchant ID (MID)",
      "merchantKey": "Merchant Key",
      "enterMerchantKey": "Enter merchant key",
      "website": "Website",
      "webstaging": "WEBSTAGING (Test)",
      "default": "DEFAULT (Live)",
      "webhookUrl": "Webhook URL",
      "webhookHint": "Configure this URL in your {provider} dashboard to receive payment notifications",
      "saving": "Saving…",
      "save": "Save Gateway Settings",
      "errSelectProvider": "Please select a payment provider",
      "errorTitle": "Error",
      "successTitle": "Success",
      "saved": "Payment gateway settings saved",
      "saveError": "Failed to save settings"
    },
    "invoices": {
      "title": "Invoices",
      "subtitle": "Manage patient invoices and billing",
      "new": "New Invoice",
      "searchPlaceholder": "Search by invoice number, patient name, or phone…",
      "overdueOnly": "Overdue Only",
      "empty": "No invoices found",
      "createNew": "Create New Invoice",
      "columns": {
        "invoice": "Invoice",
        "patient": "Patient",
        "amount": "Amount",
        "paid": "Paid",
        "balance": "Balance",
        "dueDate": "Due Date",
        "status": "Status",
        "actions": "Actions"
      },
      "actions": {
        "view": "View Details",
        "edit": "Edit",
        "recordPayment": "Record Payment",
        "print": "Print Invoice",
        "sendEmail": "Send via Email",
        "cancel": "Cancel Invoice"
      },
      "cancelDialog": {
        "title": "Cancel Invoice",
        "description": "Are you sure you want to delete/cancel this invoice?",
        "confirm": "Cancel Invoice"
      },
      "pagination": {
        "showing": "Showing {from} to {to} of {total} invoices",
        "page": "Page {page} of {totalPages}"
      }
    },
    "paymentMethods": {
      "CASH": "Cash",
      "CARD": "Card",
      "UPI": "UPI",
      "BANK_TRANSFER": "Bank Transfer",
      "CHEQUE": "Cheque",
      "INSURANCE": "Insurance",
      "WALLET": "Wallet",
      "ONLINE": "Online"
    },
    "invoiceDetail": {
      "createdOn": "Created on {date}",
      "print": "Print",
      "recordPayment": "Record Payment",
      "notFound": "Invoice not found",
      "backToInvoices": "Back to Invoices",
      "billTo": "Bill To",
      "patientId": "Patient ID: {id}",
      "items": "Invoice Items",
      "cols": {
        "description": "Description",
        "qty": "Qty",
        "unitPrice": "Unit Price",
        "amount": "Amount"
      },
      "paid": "Paid",
      "balanceDue": "Balance Due",
      "paymentHistory": "Payment History",
      "payCols": {
        "payment": "Payment",
        "date": "Date",
        "method": "Method",
        "amount": "Amount",
        "status": "Status"
      },
      "txn": "TXN: {id}",
      "notes": "Notes",
      "terms": "Terms & Conditions",
      "invoiceStatus": "Invoice Status",
      "status": "Status",
      "invoiceDate": "Invoice Date",
      "dueDate": "Due Date",
      "totalAmount": "Total Amount",
      "amountPaid": "Amount Paid",
      "insuranceClaim": "Insurance Claim",
      "claimNumber": "Claim Number",
      "approved": "Approved",
      "actionsTitle": "Actions",
      "sharePaymentLink": "Share Payment Link",
      "linkCopied": "Link Copied!",
      "printInvoice": "Print Invoice",
      "sendEmail": "Send via Email",
      "viewPatient": "View Patient",
      "recordPaymentDesc": "Record a payment for invoice {invoiceNo}",
      "amount": "Amount",
      "balanceDueAmount": "Balance due: {amount}",
      "paymentMethod": "Payment Method",
      "selectMethod": "Select method",
      "paymentDate": "Payment Date",
      "transactionId": "Transaction ID (Optional)",
      "transactionPlaceholder": "Transaction reference number",
      "notesOptional": "Notes (Optional)",
      "notesPlaceholder": "Any additional notes…",
      "recording": "Recording…",
      "errAmount": "Please enter a valid payment amount",
      "errMethod": "Please select a payment method",
      "errLoad": "Failed to load invoice"
    },
    "invoiceNew": {
      "title": "New Invoice",
      "subtitle": "Create a new invoice for a patient",
      "patientDetails": "Patient Details",
      "patientDetailsDesc": "Search and select a patient",
      "change": "Change",
      "searchPlaceholder": "Search by name, ID, or phone…",
      "unbilled": "Unbilled Treatments",
      "unbilledDesc": "Select treatments to add to the invoice",
      "loadingTreatments": "Loading treatments…",
      "noUnbilled": "No unbilled treatments found",
      "added": "Added",
      "add": "Add",
      "items": "Invoice Items",
      "itemsDesc": "Items to be included in the invoice",
      "addCustom": "Add Custom Item",
      "noItems": "No items added yet",
      "noItemsHint": "Add treatments from above or add a custom item",
      "cols": {
        "description": "Description",
        "qty": "Qty",
        "unitPrice": "Unit Price",
        "amount": "Amount",
        "taxable": "Taxable"
      },
      "itemDescPlaceholder": "Item description",
      "additionalInfo": "Additional Information",
      "notesLabel": "Notes (visible on invoice)",
      "notesPlaceholder": "Any additional notes for the patient…",
      "terms": "Terms & Conditions",
      "summary": "Invoice Summary",
      "discountFixed": "Fixed",
      "discountPercent": "Percent",
      "paymentTerms": "Payment Terms",
      "creating": "Creating…",
      "createSend": "Create & Send Invoice",
      "saveDraft": "Save as Draft",
      "errPatient": "Please select a patient",
      "errNoItems": "Please add at least one item to the invoice",
      "errDescription": "All items must have a description",
      "errQuantity": "Quantity must be greater than 0",
      "errUnitPrice": "Unit price cannot be negative"
    },
    "dashboard": {
      "title": "Billing & Finance",
      "subtitle": "Manage invoices, payments, and financial reports",
      "selectPeriod": "Select period",
      "newInvoice": "New Invoice",
      "errorTitle": "Error loading billing data",
      "permissionHint": "Your account needs ADMIN or ACCOUNTANT role to view billing reports.",
      "totalBilled": "Total Billed",
      "invoicesCount": "{count} invoices",
      "totalCollected": "Total Collected",
      "paymentsReceived": "{count} payments received",
      "outstanding": "Outstanding",
      "pendingInvoices": "{count} pending invoices",
      "insuranceClaims": "Insurance Claims",
      "settled": "{amount} settled",
      "quickActions": "Quick Actions",
      "quickActionsDesc": "Common billing tasks",
      "viewAllInvoices": "View All Invoices",
      "viewAllPayments": "View All Payments",
      "paymentPlans": "Payment Plans",
      "insuranceProviders": "Insurance Providers",
      "preAuth": "Pre-Authorizations",
      "financialReports": "Financial Reports",
      "paymentMethodsTitle": "Payment Methods",
      "paymentMethodsDesc": "Collection by payment type",
      "noPayments": "No payments recorded",
      "paymentsCount": "{count} payments",
      "invoiceStatusTitle": "Invoice Status",
      "invoiceStatusDesc": "Invoices by current status",
      "noInvoices": "No invoices created",
      "collectionRate": "Collection Rate",
      "collectionRateDesc": "Percentage of billed amount collected",
      "collectionProgress": "Collection Progress",
      "billed": "Billed",
      "collected": "Collected",
      "discounts": "Discounts",
      "cashFlowForecast": "Cash Flow Forecast",
      "cashFlowDesc": "AI-projected income for the next 30 days",
      "refresh": "Refresh",
      "generateForecast": "Generate Forecast",
      "generateHint": "Click \"Generate Forecast\" to project cash flow using AI analysis",
      "projected30": "30-Day Projected",
      "avgDaily": "Avg Daily",
      "bestDay": "Best Day",
      "trend": "Trend",
      "weeklyBreakdown": "Weekly Breakdown",
      "weekRange": "Week {week}: {start} — {end}",
      "potentialShortfalls": "Potential Shortfalls",
      "claimsAging": "Claims Aging",
      "claimsAgingDesc": "Outstanding invoices by overdue period",
      "agingCurrent": "Current",
      "aging1_30": "1–30 days",
      "aging31_60": "31–60 days",
      "aging61_90": "61–90 days",
      "aging90": "90+ days",
      "totalOutstanding": "Total Outstanding",
      "plansDesc": "Installment plan overview",
      "viewAll": "View All",
      "activePlans": "Active Plans",
      "completed": "Completed",
      "defaulted": "Defaulted",
      "outstandingEmi": "Outstanding EMI",
      "createPlan": "Create New Payment Plan"
    }
  },
  "patients": {
    "gender": {
      "all": "All Genders",
      "MALE": "Male",
      "FEMALE": "Female",
      "OTHER": "Other"
    },
    "list": {
      "title": "Patients",
      "subtitle": "Manage patient records and information",
      "new": "New Patient",
      "searchPlaceholder": "Search by name, patient ID, phone, or email…",
      "genderFilter": "Gender",
      "bloodGroupFilter": "Blood Group",
      "allBloodGroups": "All Blood Groups",
      "cols": {
        "patientId": "Patient ID",
        "name": "Name",
        "contact": "Contact",
        "gender": "Gender",
        "age": "Age",
        "bloodGroup": "Blood Group",
        "location": "Location",
        "actions": "Actions"
      },
      "empty": "No patients found",
      "add": "Add Patient",
      "ageYears": "{age} years",
      "na": "N/A",
      "viewDetails": "View Details",
      "edit": "Edit",
      "medicalHistory": "Medical History",
      "showing": "Showing {from} to {to} of {total} patients"
    },
    "new": {
      "title": "New Patient",
      "subtitle": "Register a new patient",
      "personalInfo": "Personal Information",
      "personalInfoDesc": "Basic details of the patient",
      "firstName": "First Name *",
      "firstNamePlaceholder": "Enter first name",
      "lastName": "Last Name *",
      "lastNamePlaceholder": "Enter last name",
      "dateOfBirth": "Date of Birth",
      "age": "Age",
      "agePlaceholder": "Age",
      "gender": "Gender",
      "selectGender": "Select gender",
      "bloodGroup": "Blood Group",
      "selectBloodGroup": "Select blood group",
      "contactInfo": "Contact Information",
      "contactInfoDesc": "Phone, email, and address details",
      "phone": "Phone *",
      "phonePlaceholder": "Enter phone number",
      "alternatePhone": "Alternate Phone",
      "alternatePhonePlaceholder": "Alternate phone number",
      "email": "Email",
      "emailPlaceholder": "Enter email address",
      "address": "Address",
      "addressPlaceholder": "Enter full address",
      "city": "City",
      "cityPlaceholder": "City",
      "state": "State",
      "statePlaceholder": "State",
      "pincode": "Pincode",
      "pincodePlaceholder": "Pincode",
      "additionalDetails": "Additional Details",
      "additionalDetailsDesc": "ID, occupation, and referral information",
      "aadharNumber": "Aadhar Number",
      "aadharPlaceholder": "Enter Aadhar number",
      "occupation": "Occupation",
      "occupationPlaceholder": "Enter occupation",
      "referredBy": "Referred By",
      "referredByPlaceholder": "Referral source",
      "referralCode": "Referral Code",
      "referralCodePlaceholder": "e.g. REF-A3B2K9",
      "emergencyContact": "Emergency Contact",
      "emergencyContactDesc": "Emergency contact information",
      "contactName": "Contact Name",
      "contactNamePlaceholder": "Emergency contact name",
      "contactPhone": "Contact Phone",
      "contactPhonePlaceholder": "Emergency contact phone",
      "relation": "Relation",
      "relationPlaceholder": "e.g. Spouse, Parent",
      "creating": "Creating…",
      "create": "Create Patient",
      "validationError": "Validation Error",
      "requiredFields": "First name, last name, and phone are required.",
      "created": "Patient Created",
      "createdDesc": "Patient {name} has been registered successfully.",
      "errorTitle": "Error",
      "createError": "Failed to create patient",
      "createErrorStatus": "Failed to create patient ({status})",
      "unknownError": "Unknown error"
    },
    "edit": {
      "title": "Edit Patient",
      "subtitle": "Update patient information",
      "loadError": "Failed to load patient data.",
      "updated": "Patient Updated",
      "updatedDesc": "Patient {name} has been updated successfully.",
      "saving": "Saving…",
      "saveChanges": "Save Changes",
      "updateError": "Failed to update patient",
      "updateErrorStatus": "Failed to update patient ({status})"
    },
    "detail": {
      "error": "Error",
      "success": "Success",
      "unknownError": "Unknown error",
      "fetchErrorStatus": "Failed to fetch patient ({status})",
      "loadFailed": "Failed to load patient details",
      "notFound": "Patient not found",
      "backToPatients": "Back to Patients",
      "patientId": "Patient ID: {id}",
      "edit": "Edit",
      "bookAppointment": "Book Appointment",
      "tabs": {
        "overview": "Overview",
        "dentalChart": "Dental Chart",
        "timeline": "Timeline",
        "documents": "Documents",
        "appointments": "Appointments",
        "treatments": "Treatments",
        "billing": "Billing",
        "forms": "Forms",
        "insurance": "Insurance"
      },
      "contactInfo": "Contact Information",
      "phone": "Phone",
      "email": "Email",
      "address": "Address",
      "personalDetails": "Personal Details",
      "dateOfBirth": "Date of Birth",
      "gender": "Gender",
      "bloodGroup": "Blood Group",
      "occupation": "Occupation",
      "na": "N/A",
      "emergencyContact": "Emergency Contact",
      "name": "Name",
      "relation": "Relation",
      "noEmergencyContact": "No emergency contact on file",
      "medicalHistory": "Medical History",
      "allergies": "Allergies",
      "chronicConditions": "Chronic Conditions",
      "currentMedications": "Current Medications",
      "noMedicalHistory": "No medical history recorded",
      "timelineTitle": "Patient Timeline",
      "timelineDesc": "Complete history of appointments, treatments, payments, and documents",
      "filterByType": "Filter by type",
      "filter": {
        "all": "All Events",
        "appointment": "Appointments",
        "treatment": "Treatments",
        "payment": "Payments",
        "document": "Documents",
        "prescription": "Prescriptions",
        "labOrder": "Lab Orders"
      },
      "noEvents": "No events found",
      "teeth": "Teeth: {teeth}",
      "documentsTitle": "Documents",
      "documentsDesc": "X-rays, photos, consent forms, and other patient documents",
      "cancelCompare": "Cancel Compare",
      "compare": "Compare",
      "compareSelected": "Compare Selected",
      "uploadDocument": "Upload Document",
      "uploadDialogDesc": "Upload a new document for this patient",
      "file": "File",
      "supportedFormats": "Supported: JPEG, PNG, GIF, WebP, PDF, DOC, DOCX (max 10MB)",
      "documentType": "Document Type",
      "selectType": "Select type",
      "descriptionOptional": "Description (optional)",
      "descriptionPlaceholder": "Enter a description…",
      "upload": "Upload",
      "selectFileType": "Please select a file and document type",
      "uploadSuccess": "Document uploaded successfully",
      "uploadFailed": "Failed to upload document",
      "downloadFailed": "Failed to download document",
      "deleteConfirmTitle": "Delete document?",
      "deleteConfirmDesc": "Are you sure you want to delete this document?",
      "deleteSuccess": "Document deleted successfully",
      "deleteFailed": "Failed to delete document",
      "annotationsSaved": "Annotations saved",
      "saveAnnotationsFailed": "Failed to save annotations",
      "noDocuments": "No documents uploaded yet",
      "noDocumentsHint": "Upload X-rays, photos, or other documents",
      "colDocument": "Document",
      "colType": "Type",
      "colSize": "Size",
      "colDate": "Date",
      "colActions": "Actions",
      "annotations": "{count, plural, one {# annotation} other {# annotations}}",
      "view": "View",
      "annotate": "Annotate",
      "download": "Download",
      "delete": "Delete",
      "docTypes": {
        "XRAY": "X-Ray",
        "CT_SCAN": "CT Scan",
        "PHOTO": "Photo",
        "CONSENT_FORM": "Consent Form",
        "PRESCRIPTION": "Prescription",
        "LAB_REPORT": "Lab Report",
        "INSURANCE": "Insurance",
        "ID_PROOF": "ID Proof",
        "OTHER": "Other"
      },
      "appointmentsTitle": "Appointments",
      "appointmentsDesc": "Recent and upcoming appointments",
      "newAppointment": "New Appointment",
      "noAppointments": "No appointments found",
      "colDateTime": "Date & Time",
      "colDoctor": "Doctor",
      "colStatus": "Status",
      "notAssigned": "Not assigned",
      "doctorName": "Dr. {name}",
      "treatmentHistory": "Treatment History",
      "treatmentHistoryDesc": "Past procedures and treatments",
      "noTreatments": "No treatments recorded",
      "colProcedure": "Procedure",
      "colCategory": "Category",
      "billingHistory": "Billing History",
      "billingHistoryDesc": "Invoices and payment records",
      "noInvoices": "No invoices found",
      "colInvoice": "Invoice #",
      "colAmount": "Amount",
      "colPaid": "Paid"
    }
  },
  "appointments": {
    "status": {
      "SCHEDULED": "Scheduled",
      "CONFIRMED": "Confirmed",
      "CHECKED_IN": "Checked In",
      "IN_PROGRESS": "In Progress",
      "COMPLETED": "Completed",
      "CANCELLED": "Cancelled",
      "NO_SHOW": "No Show",
      "RESCHEDULED": "Rescheduled"
    },
    "type": {
      "CONSULTATION": "Consultation",
      "PROCEDURE": "Procedure",
      "FOLLOW_UP": "Follow Up",
      "EMERGENCY": "Emergency",
      "CHECK_UP": "Check Up"
    },
    "priority": {
      "LOW": "Low",
      "NORMAL": "Normal",
      "HIGH": "High",
      "URGENT": "Urgent"
    },
    "list": {
      "title": "Appointments",
      "subtitle": "Manage and schedule patient appointments",
      "viewList": "List",
      "viewCalendar": "Calendar",
      "aiRisk": "AI Risk",
      "refreshRisk": "Refresh Risk",
      "newAppointment": "New Appointment",
      "searchPlaceholder": "Search by patient name, phone, or appointment number…",
      "statusPlaceholder": "Status",
      "allStatus": "All Status",
      "typePlaceholder": "Type",
      "allTypes": "All Types",
      "colAppointment": "Appointment",
      "colPatient": "Patient",
      "colDoctor": "Doctor",
      "colDateTime": "Date & Time",
      "colType": "Type",
      "colStatus": "Status",
      "colRisk": "Risk",
      "colActions": "Actions",
      "noAppointments": "No appointments found",
      "bookNew": "Book New Appointment",
      "chair": "Chair {number}",
      "duration": "({minutes} min)",
      "na": "N/A",
      "viewDetails": "View Details",
      "edit": "Edit",
      "checkIn": "Check In",
      "checkOut": "Check Out",
      "confirm": "Confirm",
      "markNoShow": "Mark No Show",
      "cancel": "Cancel",
      "noShowRisk": "No-Show Risk: {level}",
      "showing": "Showing {from} to {to} of {total} appointments",
      "previous": "Previous",
      "next": "Next",
      "pageOf": "Page {page} of {total}"
    },
    "new": {
      "title": "New Appointment",
      "subtitle": "Schedule a new appointment for a patient",
      "patient": "Patient",
      "patientDesc": "Select the patient for this appointment",
      "change": "Change",
      "searchPatient": "Search patient by name, phone, or ID…",
      "noPatients": "No patients found",
      "addPatient": "Add New Patient",
      "schedule": "Schedule",
      "scheduleDesc": "Select doctor, date, and time for the appointment",
      "doctor": "Doctor *",
      "selectDoctor": "Select a doctor",
      "doctorName": "Dr. {name}",
      "doctorNameSpec": "Dr. {name} ({spec})",
      "date": "Date *",
      "duration": "Duration",
      "durations": {
        "15": "15 minutes",
        "30": "30 minutes",
        "45": "45 minutes",
        "60": "1 hour",
        "90": "1.5 hours",
        "120": "2 hours"
      },
      "timeSlot": "Time Slot *",
      "loadingSlots": "Loading available slots…",
      "selectDoctorDate": "Select doctor and date to see available slots",
      "noSlots": "No available slots for this date",
      "appointmentDetails": "Appointment Details",
      "appointmentDetailsDesc": "Additional information about the appointment",
      "appointmentType": "Appointment Type",
      "priority": "Priority",
      "chairNumber": "Chair Number",
      "selectChair": "Select chair",
      "chair": "Chair {number}",
      "virtualVisit": "Virtual Visit (Video Consultation)",
      "virtualVisitDesc": "Enable to create a tele-dentistry video consultation for this appointment",
      "chiefComplaint": "Chief Complaint",
      "chiefComplaintPlaceholder": "Patient's main concern or reason for visit",
      "notes": "Notes",
      "notesPlaceholder": "Additional notes about the appointment",
      "cancel": "Cancel",
      "creating": "Creating…",
      "bookAppointment": "Book Appointment",
      "selectPatientError": "Please select a patient",
      "selectDoctorError": "Please select a doctor",
      "selectDateError": "Please select a date",
      "selectTimeError": "Please select a time slot",
      "noSlotsAvailable": "No slots available",
      "createFailed": "Failed to create appointment"
    },
    "detail": {
      "notFound": "Appointment not found",
      "notFoundDesc": "The appointment you're looking for doesn't exist.",
      "backToAppointments": "Back to Appointments",
      "virtual": "Virtual",
      "createdOn": "Created on {date}",
      "joinVideo": "Join Video Call",
      "checkIn": "Check In",
      "checkOut": "Check Out",
      "confirm": "Confirm",
      "edit": "Edit",
      "cancel": "Cancel",
      "appointmentDetails": "Appointment Details",
      "date": "Date",
      "time": "Time",
      "duration": "Duration",
      "minutes": "{minutes} minutes",
      "chair": "Chair",
      "chairNumber": "Chair {number}",
      "notAssigned": "Not assigned",
      "type": "Type",
      "priority": "Priority",
      "checkedIn": "Checked In",
      "checkedOut": "Checked Out",
      "waitTime": "Wait Time",
      "chiefComplaint": "Chief Complaint",
      "notes": "Notes",
      "cancelledOn": "Cancelled on {date}",
      "reason": "Reason: {reason}",
      "patientInfo": "Patient Information",
      "medicalAlerts": "Medical Alerts",
      "allergies": "Allergies",
      "diabetes": "Diabetes",
      "hypertension": "Hypertension",
      "heartDisease": "Heart Disease",
      "drugAllergies": "Drug Allergies: {allergies}",
      "currentMedications": "Current Medications: {medications}",
      "viewProfile": "View Full Patient Profile",
      "doctor": "Doctor",
      "treatments": "Treatments",
      "noTreatments": "No treatments recorded yet.",
      "cancelTitle": "Cancel Appointment",
      "cancelDesc": "Are you sure you want to cancel this appointment? This action cannot be undone.",
      "cancellationReason": "Cancellation Reason",
      "cancellationPlaceholder": "Enter reason for cancellation",
      "keepAppointment": "Keep Appointment",
      "cancelAppointment": "Cancel Appointment"
    },
    "edit": {
      "title": "Edit Appointment",
      "patient": "Patient",
      "patientReadonly": "Patient cannot be changed for an existing appointment",
      "schedule": "Schedule",
      "scheduleDesc": "Update the doctor, date, or time",
      "appointmentDetails": "Appointment Details",
      "notAssigned": "Not assigned",
      "cancel": "Cancel",
      "saving": "Saving…",
      "saveChanges": "Save Changes",
      "notFound": "Appointment not found",
      "backToAppointments": "Back to Appointments",
      "updateFailed": "Failed to update appointment"
    },
    "queue": {
      "title": "Today's Queue",
      "allDoctors": "All Doctors",
      "doctorName": "Dr. {name}",
      "refresh": "Refresh",
      "newAppointment": "New Appointment",
      "total": "Total",
      "waiting": "Waiting",
      "inProgress": "In Progress",
      "upcoming": "Upcoming",
      "completed": "Completed",
      "noShow": "No Show",
      "avgWait": "Avg Wait",
      "minutes": "{minutes} min",
      "minWait": "{minutes} min wait",
      "chair": "Chair {number}",
      "loading": "Loading queue…",
      "waitingCount": "Waiting ({count})",
      "waitingDesc": "Patients checked in and waiting",
      "noWaiting": "No patients waiting",
      "inProgressCount": "In Progress ({count})",
      "inProgressDesc": "Currently being attended",
      "noInProgress": "No treatments in progress",
      "upcomingCount": "Upcoming ({count})",
      "upcomingDesc": "Scheduled appointments today",
      "noUpcoming": "No more appointments today",
      "completedToday": "Completed Today ({count})",
      "viewAllCompleted": "View All Completed ({count})",
      "checkIn": "Check In",
      "noShowAction": "No Show",
      "start": "Start",
      "complete": "Complete",
      "view": "View"
    },
    "waitlist": {
      "title": "Waitlist",
      "subtitle": "Manage patients waiting for appointment slots",
      "addToWaitlist": "Add to Waitlist",
      "addDialogDesc": "Add a patient to the waitlist for the next available slot",
      "patient": "Patient *",
      "change": "Change",
      "searchPatient": "Search patient by name or ID…",
      "preferredDoctor": "Preferred Doctor (optional)",
      "anyDoctor": "Any doctor",
      "doctorName": "Dr. {name}",
      "preferredDays": "Preferred Days (optional)",
      "preferredTime": "Preferred Time (optional)",
      "anyTime": "Any time",
      "notesOptional": "Notes (optional)",
      "notesPlaceholder": "Any additional notes…",
      "cancel": "Cancel",
      "error": "Error",
      "loadFailed": "Failed to load waitlist",
      "selectPatient": "Please select a patient",
      "addFailed": "Failed to add",
      "added": "Added to waitlist",
      "removeConfirmTitle": "Remove from waitlist?",
      "removeConfirmDesc": "Remove this patient from the waitlist?",
      "delete": "Delete",
      "removed": "Removed from waitlist",
      "removeFailed": "Failed to remove",
      "waiting": "Waiting",
      "notified": "Notified",
      "booked": "Booked",
      "entriesTitle": "Waitlist Entries",
      "entriesDesc": "Patients are automatically notified when matching slots open up",
      "noEntries": "No waitlist entries",
      "colPatient": "Patient",
      "colDoctorPref": "Doctor Preference",
      "colPreferredDays": "Preferred Days",
      "colTime": "Time",
      "colStatus": "Status",
      "colAdded": "Added",
      "colActions": "Actions",
      "unknown": "Unknown",
      "any": "Any",
      "notifiedOn": "Notified {date}",
      "bookedOn": "Booked {date}",
      "status": {
        "ACTIVE": "Active",
        "NOTIFIED": "Notified",
        "BOOKED": "Booked",
        "CANCELLED": "Cancelled",
        "EXPIRED": "Expired"
      },
      "timeSlots": {
        "MORNING": "Morning (Before 12 PM)",
        "AFTERNOON": "Afternoon (12-5 PM)",
        "EVENING": "Evening (After 5 PM)"
      },
      "timeShort": {
        "MORNING": "Morning",
        "AFTERNOON": "Afternoon",
        "EVENING": "Evening"
      },
      "days": {
        "MONDAY": "Mon",
        "TUESDAY": "Tue",
        "WEDNESDAY": "Wed",
        "THURSDAY": "Thu",
        "FRIDAY": "Fri",
        "SATURDAY": "Sat",
        "SUNDAY": "Sun"
      }
    },
    "calendar": {
      "today": "Today",
      "day": "Day",
      "week": "Week",
      "month": "Month",
      "loading": "Loading calendar…",
      "moreCount": "+{count} more",
      "weekdays": {
        "sun": "Sun",
        "mon": "Mon",
        "tue": "Tue",
        "wed": "Wed",
        "thu": "Thu",
        "fri": "Fri",
        "sat": "Sat"
      }
    }
  },
  "treatments": {
    "status": {
      "PLANNED": "Planned",
      "IN_PROGRESS": "In Progress",
      "COMPLETED": "Completed",
      "CANCELLED": "Cancelled"
    },
    "planStatus": {
      "DRAFT": "Draft",
      "PROPOSED": "Proposed",
      "ACCEPTED": "Accepted",
      "IN_PROGRESS": "In Progress",
      "COMPLETED": "Completed",
      "CANCELLED": "Cancelled"
    },
    "itemStatus": {
      "PENDING": "Pending",
      "SCHEDULED": "Scheduled",
      "IN_PROGRESS": "In Progress",
      "COMPLETED": "Completed",
      "CANCELLED": "Cancelled"
    },
    "category": {
      "PREVENTIVE": "Preventive",
      "RESTORATIVE": "Restorative",
      "ENDODONTIC": "Endodontic",
      "PERIODONTIC": "Periodontic",
      "PROSTHODONTIC": "Prosthodontic",
      "ORTHODONTIC": "Orthodontic",
      "ORAL_SURGERY": "Oral Surgery",
      "COSMETIC": "Cosmetic",
      "DIAGNOSTIC": "Diagnostic",
      "EMERGENCY": "Emergency"
    },
    "list": {
      "title": "Treatments",
      "subtitle": "Manage patient treatments and clinical records",
      "treatmentPlans": "Treatment Plans",
      "newTreatment": "New Treatment",
      "searchPlaceholder": "Search by patient name, treatment number, or diagnosis…",
      "statusPlaceholder": "Status",
      "allStatus": "All Status",
      "followUpPlaceholder": "Follow-up",
      "allTreatments": "All Treatments",
      "followUpRequired": "Follow-up Required",
      "colTreatment": "Treatment",
      "colPatient": "Patient",
      "colProcedure": "Procedure",
      "colDoctor": "Doctor",
      "colTeeth": "Teeth",
      "colCost": "Cost",
      "colStatus": "Status",
      "colActions": "Actions",
      "noTreatments": "No treatments found",
      "createNew": "Create New Treatment",
      "doctorName": "Dr. {name}",
      "followUp": "Follow-up",
      "viewDetails": "View Details",
      "edit": "Edit",
      "startTreatment": "Start Treatment",
      "completeTreatment": "Complete Treatment",
      "viewAppointment": "View Appointment",
      "showing": "Showing {from} to {to} of {total} treatments",
      "previous": "Previous",
      "next": "Next",
      "pageOf": "Page {page} of {total}"
    },
    "new": {
      "title": "New Treatment",
      "subtitle": "Record a new treatment for a patient",
      "patientInfo": "Patient Information",
      "patientInfoDesc": "Select the patient for this treatment",
      "change": "Change",
      "searchPatients": "Search patients by name, phone, or ID…",
      "noPatients": "No patients found",
      "treatmentDetails": "Treatment Details",
      "treatmentDetailsDesc": "Select the doctor and procedure",
      "doctor": "Doctor *",
      "selectDoctor": "Select doctor",
      "doctorName": "Dr. {name}",
      "doctorNameSpec": "Dr. {name} - {spec}",
      "procedure": "Procedure *",
      "selectProcedure": "Select procedure",
      "procedureOption": "{code} - {name} ({price})",
      "duration": "Duration: {minutes} min",
      "basePrice": "Base Price: {price}",
      "treatmentCost": "Treatment Cost",
      "costPlaceholder": "Enter treatment cost",
      "clinicalNotes": "Clinical Notes",
      "clinicalNotesDesc": "Document the clinical findings and treatment notes",
      "chiefComplaint": "Chief Complaint",
      "chiefComplaintPlaceholder": "Patient's main concern or reason for visit…",
      "diagnosis": "Diagnosis",
      "diagnosisPlaceholder": "Clinical diagnosis…",
      "findings": "Clinical Findings",
      "findingsPlaceholder": "Examination findings…",
      "procedureNotes": "Procedure Notes",
      "procedureNotesPlaceholder": "Details of the procedure performed… (use mic for voice dictation)",
      "materialsUsed": "Materials Used",
      "materialsUsedPlaceholder": "List of materials and supplies used…",
      "followUp": "Follow-up",
      "followUpRequired": "Follow-up required",
      "followUpDate": "Follow-up Date",
      "cancel": "Cancel",
      "creating": "Creating…",
      "createTreatment": "Create Treatment",
      "selectPatientError": "Please select a patient",
      "selectDoctorError": "Please select a doctor",
      "selectProcedureError": "Please select a procedure",
      "createFailed": "Failed to create treatment"
    },
    "detail": {
      "notFound": "Treatment not found",
      "backToTreatments": "Back to Treatments",
      "createdOn": "Created on {date}",
      "startTreatment": "Start Treatment",
      "completeTreatment": "Complete Treatment",
      "edit": "Edit",
      "cancel": "Cancel",
      "print": "Print",
      "procedureDetails": "Procedure Details",
      "code": "Code: {code}",
      "treatmentCost": "Treatment Cost",
      "basePrice": "Base Price",
      "started": "Started: {datetime}",
      "completed": "Completed: {datetime}",
      "teethAffected": "Teeth Affected",
      "clinicalNotes": "Clinical Notes",
      "chiefComplaint": "Chief Complaint",
      "diagnosis": "Diagnosis",
      "findings": "Clinical Findings",
      "procedureNotes": "Procedure Notes",
      "materialsUsed": "Materials Used",
      "complications": "Complications",
      "noNotes": "No clinical notes recorded",
      "instructions": "Instructions",
      "preInstructions": "Pre-procedure Instructions",
      "postInstructions": "Post-procedure Instructions",
      "patient": "Patient",
      "bloodGroup": "Blood Group:",
      "viewProfile": "View Patient Profile",
      "doctor": "Doctor",
      "doctorName": "Dr. {name}",
      "appointment": "Appointment",
      "appointmentAt": "{date} at {time}",
      "viewAppointment": "View Appointment",
      "followUpRequiredTitle": "Follow-up Required",
      "dateNotScheduled": "Date not scheduled",
      "scheduleFollowUp": "Schedule Follow-up",
      "prescriptions": "Prescriptions",
      "prescriptionsIssued": "{count, plural, one {# prescription issued} other {# prescriptions issued}}",
      "viewPrescriptions": "View Prescriptions",
      "billing": "Billing",
      "invoiceItems": "{count, plural, one {# invoice item} other {# invoice items}}",
      "viewInvoices": "View Invoices",
      "completeTitle": "Complete Treatment",
      "completeDesc": "Add final notes and complete this treatment.",
      "procedureNotesPlaceholder": "Final procedure notes… (use mic for voice dictation)",
      "materialsUsedPlaceholder": "List materials used…",
      "complicationsLabel": "Complications (if any)",
      "complicationsPlaceholder": "Document any complications…",
      "followUpRequired": "Follow-up required",
      "followUpDate": "Follow-up Date",
      "completing": "Completing…",
      "cancelTitle": "Cancel Treatment",
      "cancelDesc": "Are you sure you want to cancel this treatment? This action cannot be undone.",
      "keepTreatment": "Keep Treatment",
      "cancelling": "Cancelling…"
    },
    "plans": {
      "title": "Treatment Plans",
      "subtitle": "Create and manage comprehensive treatment plans",
      "newPlan": "New Treatment Plan",
      "searchPlaceholder": "Search by patient name, plan number, or title…",
      "statusPlaceholder": "Status",
      "allStatus": "All Status",
      "consentPlaceholder": "Consent",
      "allPlans": "All Plans",
      "consentGiven": "Consent Given",
      "pendingConsent": "Pending Consent",
      "colPlan": "Plan",
      "colPatient": "Patient",
      "colProcedures": "Procedures",
      "colProgress": "Progress",
      "colEstimatedCost": "Estimated Cost",
      "colStatus": "Status",
      "colActions": "Actions",
      "noPlans": "No treatment plans found",
      "createPlan": "Create Treatment Plan",
      "procedures": "{count, plural, one {# procedure} other {# procedures}}",
      "percentComplete": "{percent}% complete",
      "consent": "Consent",
      "viewDetails": "View Details",
      "edit": "Edit",
      "showing": "Showing {from} to {to} of {total} plans",
      "previous": "Previous",
      "next": "Next",
      "pageOf": "Page {page} of {total}"
    },
    "planNew": {
      "title": "New Treatment Plan",
      "subtitle": "Create a comprehensive treatment plan for a patient",
      "patient": "Patient",
      "change": "Change",
      "searchPatients": "Search patients…",
      "planDetails": "Plan Details",
      "planTitle": "Title *",
      "titlePlaceholder": "e.g., Full Mouth Rehabilitation, Orthodontic Treatment",
      "notes": "Notes",
      "notesPlaceholder": "Additional notes about the treatment plan…",
      "startDate": "Expected Start Date",
      "endDate": "Expected End Date",
      "procedures": "Procedures",
      "proceduresDesc": "Add procedures to the treatment plan in order of priority",
      "procedure": "Procedure",
      "selectProcedure": "Select procedure",
      "procedureOption": "{code} - {name}",
      "toothNumbers": "Tooth Numbers",
      "toothPlaceholder": "e.g., 11,12,13 or 11-13",
      "estimatedCost": "Estimated Cost",
      "costDefault": "Default: {price}",
      "costPlaceholder": "Enter cost",
      "itemNotes": "Notes",
      "itemNotesPlaceholder": "Procedure notes…",
      "addProcedure": "Add Procedure",
      "colProcedure": "Procedure",
      "colTeeth": "Teeth",
      "colCost": "Cost",
      "totalCost": "Total Estimated Cost:",
      "cancel": "Cancel",
      "creating": "Creating…",
      "createPlan": "Create Treatment Plan",
      "selectPatientError": "Please select a patient",
      "titleError": "Please enter a title for the treatment plan",
      "itemsError": "Please add at least one procedure to the plan",
      "createFailed": "Failed to create treatment plan"
    },
    "planDetail": {
      "notFound": "Treatment plan not found",
      "backToPlans": "Back to Treatment Plans",
      "consentGiven": "Consent Given",
      "proposeToPatient": "Propose to Patient",
      "recordConsent": "Record Consent",
      "startTreatment": "Start Treatment",
      "edit": "Edit",
      "cancelPlan": "Cancel Plan",
      "print": "Print",
      "treatmentProgress": "Treatment Progress",
      "proceduresCompleted": "{completed} of {total} procedures completed",
      "treatmentProcedures": "Treatment Procedures",
      "treatmentProceduresDesc": "Procedures in this treatment plan, ordered by priority",
      "colProcedure": "Procedure",
      "colTeeth": "Teeth",
      "colCost": "Cost",
      "colStatus": "Status",
      "start": "Start",
      "totalCost": "Total Estimated Cost:",
      "notes": "Notes",
      "patient": "Patient",
      "viewProfile": "View Patient Profile",
      "planSummary": "Plan Summary",
      "totalCostLabel": "Total Cost",
      "procedures": "Procedures",
      "estDuration": "Est. Duration",
      "durationHours": "{hours} hours",
      "created": "Created",
      "startDate": "Start Date",
      "expectedEnd": "Expected End",
      "completed": "Completed",
      "consentTitle": "Record Patient Consent",
      "consentDesc": "Confirm that the patient has given consent to proceed with this treatment plan.",
      "consentIntro": "By recording consent, you confirm that:",
      "consentItem1": "The treatment plan has been explained to the patient",
      "consentItem2": "All questions have been answered",
      "consentItem3": "The patient understands the costs and procedures involved",
      "consentItem4": "The patient has agreed to proceed",
      "cancel": "Cancel",
      "recording": "Recording…",
      "confirmConsent": "Confirm Consent",
      "cancelTitle": "Cancel Treatment Plan",
      "cancelDesc": "Are you sure you want to cancel this treatment plan? This action cannot be undone.",
      "keepPlan": "Keep Plan",
      "cancelling": "Cancelling…"
    },
    "toothCondition": {
      "HEALTHY": "Healthy",
      "CARIES": "Caries",
      "FILLED": "Filled",
      "CROWN": "Crown",
      "BRIDGE": "Bridge",
      "MISSING": "Missing",
      "IMPLANT": "Implant",
      "ROOT_CANAL": "Root Canal",
      "EXTRACTION_NEEDED": "Extraction Needed",
      "VENEER": "Veneer"
    },
    "toothSurface": {
      "M": "Mesial",
      "D": "Distal",
      "O": "Occlusal",
      "B": "Buccal",
      "L": "Lingual",
      "I": "Incisal",
      "F": "Facial",
      "P": "Palatal"
    },
    "assist": {
      "title": "AI Treatment Assistant",
      "tabDrugCheck": "Drug Check",
      "tabCostEstimate": "Cost Estimate",
      "tabConsentForm": "Consent Form",
      "tabNotes": "Notes",
      "analyzing": "Analyzing…",
      "requestFailed": "Request failed",
      "networkError": "Network error",
      "drugPrompt": "Enter a medication to check against the patient's history.",
      "drugPlaceholder": "e.g. Amoxicillin 500 mg",
      "check": "Check",
      "noInteractions": "✓ No interactions detected",
      "interactionsDetected": "⚠ Interactions detected",
      "allergyLine": "🚫 Allergy: {allergen} — {reaction}",
      "recommendations": "Recommendations: {list}",
      "drugDisclaimer": "⚠ AI-generated — for doctor review only.",
      "generateEstimate": "Generate cost estimate",
      "quantity": "×{quantity}",
      "subtotal": "Subtotal",
      "gst": "GST (12%)",
      "total": "Total",
      "costDisclaimer": "⚠ AI estimate — subject to change at billing.",
      "language": "Language:",
      "langEnglish": "English",
      "langTamil": "Tamil",
      "langHindi": "Hindi",
      "regenerate": "Regenerate",
      "generate": "Generate",
      "consentFormDefault": "Consent Form",
      "patient": "Patient:",
      "hospital": "Hospital:",
      "procedure": "Procedure:",
      "risks": "Risks:",
      "benefits": "Benefits:",
      "alternatives": "Alternatives:",
      "download": "⬇ Download",
      "notesPrompt": "Expand brief notes into structured clinical documentation.",
      "reExpand": "Re-expand",
      "expandNotes": "Expand notes",
      "diagnosis": "Diagnosis",
      "findings": "Findings",
      "procedureNotes": "Procedure Notes",
      "recommendationsTitle": "Recommendations",
      "notesDisclaimer": "⚠ AI-assisted — review and edit before saving."
    },
    "chart": {
      "title": "Dental Chart",
      "upperJaw": "Upper Jaw",
      "lowerJaw": "Lower Jaw",
      "selectedTeeth": "Selected Teeth:",
      "toothTitle": "Tooth {number} - {name}",
      "viewDesc": "View tooth condition and history",
      "addDesc": "Add new condition record",
      "editDesc": "Update tooth condition",
      "noConditions": "No conditions recorded for this tooth",
      "surfacesLabel": "Surfaces:",
      "recordedBy": "Recorded by Dr. {name}",
      "condition": "Condition",
      "selectCondition": "Select condition",
      "affectedSurfaces": "Affected Surfaces",
      "surfaceOption": "{code} ({label})",
      "notes": "Notes",
      "notesPlaceholder": "Add any observations or notes…",
      "close": "Close",
      "cancel": "Cancel",
      "saving": "Saving…",
      "save": "Save"
    }
  },
  "clinical": {
    "voice": {
      "startDictation": "Start voice dictation",
      "stopDictation": "Stop dictation",
      "listening": "Listening…"
    },
    "chart": {
      "title": "Interactive Dental Chart",
      "description": "Click on a tooth to view or update its condition. FDI notation is used.",
      "upperJaw": "Upper Jaw (Maxilla)",
      "lowerJaw": "Lower Jaw (Mandible)",
      "midline": "Midline",
      "q1": "Q1 (UR)",
      "q2": "Q2 (UL)",
      "q3": "Q3 (LL)",
      "q4": "Q4 (LR)",
      "summary": {
        "present": "Present Teeth",
        "caries": "Caries",
        "filled": "Filled",
        "missing": "Missing"
      },
      "dialog": {
        "title": "Tooth {number} - {name}",
        "description": "View or update the condition of this tooth",
        "conditionLabel": "Condition",
        "severityLabel": "Severity",
        "surfacesLabel": "Surfaces Affected",
        "notesLabel": "Notes",
        "notesPlaceholder": "Add any additional notes...",
        "historyLabel": "History",
        "cancel": "Cancel",
        "save": "Save Changes"
      },
      "condition": {
        "HEALTHY": "Healthy",
        "CARIES": "Caries",
        "FILLED": "Filled",
        "CROWN": "Crown",
        "BRIDGE": "Bridge",
        "IMPLANT": "Implant",
        "ROOT_CANAL": "Root Canal",
        "EXTRACTION": "Extraction",
        "MISSING": "Missing",
        "FRACTURED": "Fractured",
        "SENSITIVE": "Sensitive",
        "MOBILITY": "Mobility"
      },
      "severity": {
        "MILD": "Mild",
        "MODERATE": "Moderate",
        "SEVERE": "Severe"
      },
      "surfaces": {
        "mesial": "Mesial",
        "distal": "Distal",
        "occlusal": "Occlusal",
        "buccal": "Buccal",
        "lingual": "Lingual"
      },
      "toothName": {
        "thirdMolar": "Third Molar",
        "secondMolar": "Second Molar",
        "firstMolar": "First Molar",
        "secondPremolar": "Second Premolar",
        "firstPremolar": "First Premolar",
        "canine": "Canine",
        "lateralIncisor": "Lateral Incisor",
        "centralIncisor": "Central Incisor"
      },
      "toast": {
        "error": "Error",
        "loadError": "Failed to load dental chart",
        "saveError": "Failed to save entry",
        "successTitle": "Success",
        "toothUpdated": "Tooth {number} updated successfully"
      }
    }
  },
  "prescriptions": {
    "list": {
      "title": "Prescriptions",
      "subtitle": "Create and manage patient prescriptions",
      "newPrescription": "New Prescription",
      "searchPlaceholder": "Search by prescription #, patient name...",
      "noPrescriptions": "No prescriptions found",
      "noPrescriptionsHint": "Create your first prescription to get started.",
      "colRx": "Rx #",
      "colPatient": "Patient",
      "colDoctor": "Doctor",
      "colDiagnosis": "Diagnosis",
      "colMedications": "Medications",
      "colDate": "Date",
      "colActions": "Actions",
      "previous": "Previous",
      "next": "Next",
      "pageOf": "Page {page} of {pages}",
      "deleteTitle": "Delete Prescription",
      "deleteDesc": "Delete prescription {no}?",
      "deleteConfirm": "Delete",
      "deletedTitle": "Deleted",
      "deletedDesc": "Prescription {no} removed",
      "errorTitle": "Error",
      "loadFailed": "Failed to load prescriptions",
      "deleteFailed": "Failed to delete prescription",
      "exportPatientId": "Patient ID",
      "exportValidUntil": "Valid Until"
    },
    "route": {
      "Oral": "Oral",
      "Topical": "Topical",
      "Sublingual": "Sublingual",
      "Buccal": "Buccal",
      "IV": "IV",
      "IM": "IM",
      "Subcutaneous": "Subcutaneous",
      "Inhalation": "Inhalation",
      "Nasal": "Nasal",
      "Otic": "Otic",
      "Ophthalmic": "Ophthalmic",
      "Rectal": "Rectal",
      "Vaginal": "Vaginal"
    },
    "timing": {
      "Before food": "Before food",
      "After food": "After food",
      "With food": "With food",
      "Empty stomach": "Empty stomach",
      "At bedtime": "At bedtime",
      "As needed": "As needed",
      "Morning": "Morning",
      "Evening": "Evening",
      "Morning & Evening": "Morning & Evening"
    },
    "new": {
      "back": "Back to Prescriptions",
      "title": "New Prescription",
      "subtitle": "Create a new e-prescription for a patient",
      "patient": "Patient",
      "patientDesc": "Select the patient for this prescription",
      "allergiesLabel": "Allergies: {allergies}",
      "change": "Change",
      "patientSearchPlaceholder": "Search patient by name, ID, or phone...",
      "searching": "Searching...",
      "diagnosis": "Diagnosis",
      "diagnosisLabel": "Diagnosis / Condition",
      "diagnosisPlaceholder": "e.g., Dental caries, Periodontal disease",
      "validUntil": "Valid Until",
      "medications": "Medications",
      "medicationsDesc": "Add medications from your drug catalog or type manually",
      "medicationN": "Medication {n}",
      "medNameLabel": "Medication Name *",
      "medNamePlaceholder": "Search from catalog or type name...",
      "dosageLabel": "Dosage *",
      "dosagePlaceholder": "1 tablet",
      "frequencyLabel": "Frequency *",
      "frequencyPlaceholder": "3 times a day",
      "durationLabel": "Duration *",
      "durationPlaceholder": "5 days",
      "routeLabel": "Route",
      "timingLabel": "Timing",
      "timingPlaceholder": "Select",
      "quantityLabel": "Quantity",
      "quantityPlaceholder": "10",
      "instructionsLabel": "Special Instructions",
      "instructionsPlaceholder": "Take with warm water, avoid dairy...",
      "addAnother": "Add Another Medication",
      "additionalNotes": "Additional Notes",
      "notesPlaceholder": "General advice, follow-up instructions...",
      "cancel": "Cancel",
      "createPrescription": "Create Prescription",
      "errorTitle": "Error",
      "selectPatient": "Please select a patient",
      "addMedError": "Add at least one medication with dosage, frequency, and duration",
      "createdTitle": "Prescription created",
      "createdDesc": "{no} saved successfully"
    },
    "detail": {
      "back": "Back",
      "delete": "Delete",
      "print": "Print",
      "notFound": "Prescription not found",
      "defaultClinic": "Dental Clinic",
      "phPrefix": "Ph: {phone}",
      "patientLabel": "Patient: ",
      "idLabel": "ID: ",
      "ageGenderLabel": "Age/Gender: ",
      "ageOnly": "{age} yrs",
      "ageGender": "{age} yrs / {gender}",
      "phoneLabel": "Phone: ",
      "allergiesLabel": "Allergies: {allergies}",
      "diagnosisLabel": "Diagnosis: ",
      "colNum": "#",
      "colMedication": "Medication",
      "colDosage": "Dosage",
      "colFrequency": "Frequency",
      "colDuration": "Duration",
      "colQty": "Qty",
      "notesLabel": "Notes: ",
      "validUntil": "Valid until: {date}",
      "regNo": "Reg. No: {no}",
      "deleteTitle": "Delete Prescription",
      "deleteDesc": "Delete this prescription? This action cannot be undone.",
      "deleteConfirm": "Delete",
      "deletedTitle": "Deleted",
      "errorTitle": "Error",
      "loadFailed": "Failed to load prescription",
      "deleteFailed": "Failed to delete"
    }
  },
  "medications": {
    "title": "Drug Catalog",
    "subtitle": "Manage your medication database",
    "addMedication": "Add Medication",
    "searchPlaceholder": "Search medications...",
    "allCategories": "All Categories",
    "noMedications": "No medications found",
    "noMedicationsHint": "Add your first medication to build your drug catalog.",
    "colName": "Name",
    "colGeneric": "Generic Name",
    "colCategory": "Category",
    "colFormStrength": "Form / Strength",
    "colDefaultDosage": "Default Dosage",
    "colActions": "Actions",
    "previous": "Previous",
    "next": "Next",
    "pageOf": "Page {page} of {pages}",
    "editTitle": "Edit Medication",
    "addTitle": "Add Medication",
    "editDesc": "Update medication details",
    "addDesc": "Add a new medication to your catalog",
    "nameLabel": "Medication Name *",
    "namePlaceholder": "Amoxicillin",
    "genericLabel": "Generic Name",
    "genericPlaceholder": "Amoxicillin Trihydrate",
    "categoryLabel": "Category",
    "selectCategory": "Select category",
    "formLabel": "Form",
    "selectForm": "Select form",
    "strengthLabel": "Strength",
    "strengthPlaceholder": "500mg",
    "manufacturerLabel": "Manufacturer",
    "manufacturerPlaceholder": "Cipla",
    "defaultValues": "Default Prescription Values",
    "dosageLabel": "Dosage",
    "dosagePlaceholder": "1 tablet",
    "frequencyLabel": "Frequency",
    "frequencyPlaceholder": "3 times a day",
    "durationLabel": "Duration",
    "durationPlaceholder": "5 days",
    "contraindicationsLabel": "Contraindications",
    "contraindicationsPlaceholder": "Known allergies, drug interactions...",
    "sideEffectsLabel": "Side Effects",
    "sideEffectsPlaceholder": "Nausea, dizziness...",
    "cancel": "Cancel",
    "update": "Update",
    "errorTitle": "Error",
    "loadFailed": "Failed to load medications",
    "nameRequired": "Medication name is required",
    "updatedTitle": "Updated",
    "createdTitle": "Created",
    "savedDesc": "{name} saved successfully",
    "deactivateTitle": "Deactivate Medication",
    "deactivateDesc": "Deactivate \"{name}\"? It will no longer appear in prescription search.",
    "deactivateConfirm": "Deactivate",
    "deactivatedTitle": "Deactivated",
    "deactivatedDesc": "{name} has been deactivated",
    "deactivateFailed": "Failed to deactivate medication",
    "form": {
      "Tablet": "Tablet",
      "Capsule": "Capsule",
      "Syrup": "Syrup",
      "Injection": "Injection",
      "Cream": "Cream",
      "Ointment": "Ointment",
      "Gel": "Gel",
      "Drops": "Drops",
      "Inhaler": "Inhaler",
      "Powder": "Powder",
      "Suspension": "Suspension",
      "Spray": "Spray"
    }
  },
  "dashboard": {
    "title": "Dashboard",
    "loadingSubtitle": "Loading your practice data...",
    "failedSubtitle": "Failed to load dashboard data",
    "genericError": "An error occurred",
    "retry": "Retry",
    "welcomeSubtitle": "Here's what's happening at your dental practice today.",
    "totalPatients": "Total Patients",
    "fromLastMonth": "from last month",
    "todayAppointments": "Today's Appointments",
    "completedPending": "{completed} completed, {pending} pending",
    "thisMonthRevenue": "This Month Revenue",
    "pendingPayments": "Pending Payments",
    "outstandingReceivables": "Outstanding receivables",
    "revenueOverview": "Revenue Overview",
    "last7Days": "Last 7 days revenue trend",
    "noRevenueData": "No revenue data available",
    "revenue": "Revenue",
    "upcomingAppointments": "Upcoming Appointments",
    "next5": "Next 5 scheduled appointments",
    "noUpcoming": "No upcoming appointments",
    "viewAllAppointments": "View All Appointments",
    "appointmentsByStatus": "Appointments by Status",
    "thisMonthDistribution": "This month's appointment distribution",
    "noAppointmentData": "No appointment data available",
    "monthlyRevenueTrend": "Monthly Revenue Trend",
    "last6Months": "Last 6 months revenue comparison",
    "topProcedures": "Top Procedures",
    "mostCommon": "Most common procedures this month",
    "noProcedureData": "No procedure data available",
    "count": "Count",
    "revenueWithCurrency": "Revenue ({currency})",
    "lowStockAlerts": "Low Stock Alerts",
    "belowMinimum": "Items below minimum stock level",
    "minStock": "Min: {min} {unit}",
    "allInStock": "All items in stock",
    "viewInventory": "View Inventory",
    "quickActions": "Quick Actions",
    "commonTasks": "Common tasks you can do right now",
    "addPatient": "Add Patient",
    "registerNew": "Register new",
    "bookAppointment": "Book Appointment",
    "scheduleVisit": "Schedule visit",
    "createInvoice": "Create Invoice",
    "billPatient": "Bill patient",
    "viewReports": "View Reports",
    "analytics": "Analytics"
  },
  "pay": {
    "createFailed": "Failed to create payment",
    "paymentFailedGeneric": "Payment failed",
    "unsupportedProvider": "Unsupported provider",
    "razorpayFailed": "Payment failed. Please try again.",
    "redirectUnavailable": "Redirect URL not available",
    "verifyFailed": "Verification failed",
    "descriptionFor": "Payment for {invoiceNo}",
    "expired": "This payment link has expired. Please contact the clinic for a new link.",
    "used": "This payment link has already been used.",
    "paid": "This invoice has been fully paid. Thank you!",
    "invoice": "Invoice",
    "patient": "Patient",
    "totalAmount": "Total Amount",
    "paidLabel": "Paid",
    "amountDue": "Amount Due",
    "pay": "Pay {amount}",
    "preparing": "Preparing payment...",
    "waiting": "Waiting for payment...",
    "verifying": "Verifying payment...",
    "successTitle": "Payment Successful!",
    "successBody": "{amount} has been received for invoice {invoiceNo}. Thank you!",
    "failedTitle": "Payment Failed",
    "tryAgain": "Try Again",
    "securedBy": "Secure payment powered by your clinic's payment gateway"
  },
  "portal": {
    "dashboard": {
      "title": "Dashboard",
      "bookAppointment": "Book Appointment",
      "upcoming": "Upcoming",
      "totalVisits": "Total Visits",
      "pendingBills": "Pending Bills",
      "balanceDue": "Balance Due",
      "upcomingAppointments": "Upcoming Appointments",
      "viewAll": "View All",
      "noUpcoming": "No upcoming appointments",
      "doctorPrefix": "Dr. {name}",
      "aptWhen": "{date} at {time}",
      "outstandingBills": "Outstanding Bills",
      "allPaid": "All bills are paid!",
      "due": "Due: {date}",
      "recentTreatments": "Recent Treatments",
      "noTreatments": "No treatment records yet",
      "treatmentMeta": "Dr. {name} · {date}"
    },
    "bills": {
      "title": "Bills & Payments",
      "tabAll": "All",
      "tabPending": "Pending",
      "tabPartial": "Partial",
      "tabPaid": "Paid",
      "noBills": "No bills found",
      "dueSuffix": " · Due: {date}",
      "ofTotal": "of {total}",
      "items": "Items",
      "itemLine": "{description} x{quantity}",
      "paymentHistory": "Payment History",
      "paymentLine": "{no} — {method} — {date}",
      "payOnline": "Pay {amount} Online",
      "pageOf": "Page {page} of {total}"
    },
    "appointments": {
      "title": "Appointments",
      "bookNew": "Book New",
      "tabUpcoming": "Upcoming",
      "tabPast": "Past",
      "tabAll": "All",
      "noAppointments": "No appointments found",
      "aptWhen": "{date} at {time}",
      "doctor": "Dr. {name}",
      "doctorWithSpec": "Dr. {name} ({spec})",
      "reason": "Reason: {complaint}",
      "meta": "{no} · {duration} min · {type}",
      "pageOf": "Page {page} of {total}"
    },
    "records": {
      "title": "Medical Records",
      "tabTreatments": "Treatments",
      "tabChart": "Dental Chart",
      "tabDocuments": "Documents",
      "noTreatments": "No treatment records",
      "code": "Code: {code}",
      "doctor": "Dr. {name}",
      "noChart": "No dental chart entries",
      "tooth": "Tooth #{number}",
      "conditionSurface": "{condition} ({surface})",
      "noDocuments": "No documents uploaded",
      "docMeta": "{type} · {date}"
    },
    "prescriptions": {
      "title": "Prescriptions",
      "noPrescriptions": "No prescriptions yet",
      "doctor": "Dr. {name}",
      "diagnosis": "Diagnosis: {diagnosis}",
      "medsCount": "{count} meds",
      "qty": "Qty: {quantity}",
      "medNameStrength": "{name} {strength}",
      "generic": "({name})",
      "dosageLine": "{dosage} · {frequency} · {duration}",
      "notesLabel": "Notes:"
    },
    "profile": {
      "title": "My Preferences",
      "subtitle": "These apply to your portal only. Your clinic does not see them.",
      "description": "Choose how dates and amounts are shown to you in the portal."
    },
    "forms": {
      "title": "My Forms",
      "subtitle": "Complete forms and consent documents required by your clinic",
      "toComplete": "Forms to Complete",
      "fillOut": "Fill Out",
      "submittedForms": "Submitted Forms",
      "noSubmitted": "No forms submitted yet",
      "submittedOn": "Submitted: {date}",
      "allComplete": "All forms are complete. Your clinic will review the submissions.",
      "loadFailed": "Failed to load forms",
      "status": {
        "SUBMITTED": "Submitted",
        "REVIEWED": "Reviewed",
        "APPROVED": "Approved",
        "REJECTED": "Rejected"
      }
    },
    "formFill": {
      "notFound": "Form not found",
      "loadFailed": "Failed to load form",
      "submitSuccess": "Form submitted successfully",
      "submitFailed": "Failed to submit form",
      "submittedTitle": "Form Submitted",
      "submittedBody": "Your {name} has been submitted successfully. The clinic team will review it shortly.",
      "backToForms": "Back to Forms",
      "submittedOn": "Submitted on {date}",
      "submitFormLabel": "Submit Form"
    },
    "uploadPhoto": {
      "selectImageError": "Please select a JPEG, PNG, or WebP image",
      "fileTooLarge": "File size must be under 10MB",
      "uploadFailed": "Upload failed",
      "successTitle": "Photo Uploaded Successfully",
      "successBody": "Your photo has been sent to your dentist for review. They will get back to you if an in-person visit is needed.",
      "uploadAnother": "Upload Another",
      "backToPortal": "Back to Portal",
      "back": "Back",
      "title": "Upload Photo",
      "subtitle": "Send a dental photo to your doctor for triage",
      "cardTitle": "Photo for Triage",
      "cardDesc": "Take a clear photo of the area of concern. Your dentist will review it and advise whether an in-person visit is needed.",
      "tapToTake": "Tap to take or select a photo",
      "fileHint": "JPEG, PNG, or WebP (max 10MB)",
      "concernLabel": "What is the concern?",
      "selectCategory": "Select category",
      "category": {
        "pain": "Pain / Toothache",
        "swelling": "Swelling",
        "bleeding": "Bleeding Gums",
        "broken": "Broken / Chipped Tooth",
        "discoloration": "Discoloration",
        "sensitivity": "Sensitivity",
        "other": "Other"
      },
      "descLabel": "Description (optional)",
      "descPlaceholder": "Describe your symptoms, when they started, and any other details...",
      "uploading": "Uploading...",
      "uploadPhoto": "Upload Photo",
      "tipsTitle": "Tips for a good photo",
      "tip1": "Use good lighting — natural light works best",
      "tip2": "Keep the camera steady and in focus",
      "tip3": "Show the affected area clearly",
      "tip4": "Include surrounding teeth for context",
      "tip5": "Use a mirror if photographing the inside of your mouth"
    },
    "video": {
      "loadFailed": "Failed to load consultation",
      "notFound": "Consultation not found",
      "backToAppointments": "Back to Appointments",
      "live": "LIVE",
      "doctor": "Dr. {name}",
      "leaveCall": "Leave Call",
      "back": "Back",
      "videoConsultation": "Video Consultation",
      "reasonLabel": "Reason: ",
      "durationMinutes": "Duration: {minutes} minutes",
      "joinCall": "Join Call",
      "joinWhenReady": "Join When Ready",
      "ended": "This consultation has ended.",
      "notAvailable": "This consultation is not available.",
      "permissionsNote": "Please ensure you have a stable internet connection and have granted camera and microphone permissions in your browser."
    },
    "login": {
      "invalidPhone": "Please enter a valid 10-digit phone number",
      "enterClinic": "Please enter your clinic identifier",
      "sendFailed": "Failed to send OTP",
      "networkError": "Network error. Please try again.",
      "enterOtp": "Please enter the 6-digit OTP",
      "verifyFailed": "Verification failed",
      "title": "Patient Portal",
      "subtitlePhone": "Enter your phone number to receive a login code",
      "subtitleOtp": "Enter the 6-digit code sent to your phone",
      "clinicId": "Clinic ID",
      "clinicPlaceholder": "e.g. smile-dental",
      "clinicHint": "Your clinic will provide this identifier",
      "phoneLabel": "Phone Number",
      "phonePlaceholder": "Enter your 10-digit number",
      "sendOtp": "Send OTP",
      "verificationCode": "Verification Code",
      "otpPlaceholder": "Enter 6-digit OTP",
      "sentTo": "Sent to {phone}",
      "verifyLogin": "Verify & Login",
      "changePhone": "Change Phone Number",
      "securedBy": "Secure login powered by your clinic's patient portal"
    },
    "book": {
      "title": "Book Appointment",
      "step1Title": "Select Doctor",
      "step1Desc": "Choose your preferred doctor",
      "noDoctors": "No doctors available for booking",
      "doctor": "Dr. {name}",
      "continue": "Continue",
      "step2Title": "Select Date & Time",
      "fieldDate": "Date",
      "availableSlots": "Available Time Slots",
      "noSlots": "No slots available on this date",
      "back": "Back",
      "step3Title": "Confirm Booking",
      "bookingFailed": "Booking failed",
      "networkError": "Network error. Please try again.",
      "fieldDoctor": "Doctor",
      "fieldTime": "Time",
      "reasonLabel": "Reason for visit (optional)",
      "reasonPlaceholder": "Describe your dental concern...",
      "confirmBooking": "Confirm Booking",
      "confirmedTitle": "Booking Confirmed!",
      "fieldAppointment": "Appointment",
      "viewMyAppointments": "View My Appointments"
    }
  },
  "settings": {
    "home": {
      "title": "Settings & Configuration",
      "subtitle": "Manage all system settings and configurations",
      "cat": {
        "setupGuide": {
          "title": "Setup Guide",
          "desc": "Step-by-step instructions to set up everything — start here!"
        },
        "clinic": {
          "title": "Clinic Information",
          "desc": "Manage clinic details, contact information, and branding"
        },
        "appointments": {
          "title": "Appointment Settings",
          "desc": "Configure time slots, working hours, and holiday calendar"
        },
        "billing": {
          "title": "Billing Settings",
          "desc": "Set up tax rates, invoice format, and payment terms"
        },
        "communications": {
          "title": "Communication Settings",
          "desc": "Configure SMS gateways, email SMTP, and notifications"
        },
        "procedures": {
          "title": "Procedure Settings",
          "desc": "Manage dental procedures and default pricing"
        },
        "users": {
          "title": "User Management",
          "desc": "Manage staff accounts, roles, and permissions"
        },
        "system": {
          "title": "System Settings",
          "desc": "Backup, export data, and view audit logs"
        },
        "security": {
          "title": "Security Settings",
          "desc": "Password policies, session timeout, and security logs"
        },
        "integrations": {
          "title": "Integrations",
          "desc": "Connect Google Calendar and other external services"
        },
        "import": {
          "title": "Data Import",
          "desc": "Import data from CSV, Excel, or PDF files from your previous ERP"
        },
        "profile": {
          "title": "My Profile",
          "desc": "Your own language and formatting preferences — affects nobody else"
        }
      },
      "appearance": "Appearance",
      "appearanceDesc": "Choose how the application looks for you",
      "light": "Light",
      "dark": "Dark",
      "system": "System",
      "systemInformation": "System Information",
      "version": "Version:",
      "database": "Database:",
      "environment": "Environment:",
      "environmentProduction": "Production",
      "quickTips": "Quick Tips",
      "tip1": "Regular backups are crucial for data safety",
      "tip2": "Review audit logs periodically for security",
      "tip3": "Keep clinic information updated",
      "tip4": "Configure SMS/Email for automated reminders"
    },
    "profile": {
      "title": "My Profile",
      "subtitle": "Preferences that apply to your account only — {name} ({email})"
    },
    "billing": {
      "title": "Billing Settings",
      "subtitle": "Configure invoicing, tax rates, and payment settings",
      "taxConfig": "Tax Configuration",
      "taxConfigDesc": "GST and tax rates for invoicing",
      "cgstRate": "CGST Rate (%)",
      "cgstHint": "Central Goods and Services Tax",
      "sgstRate": "SGST Rate (%)",
      "sgstHint": "State Goods and Services Tax",
      "totalGstLabel": "Total GST:",
      "totalGstValue": "{total}% (CGST {cgst}% + SGST {sgst}%)",
      "invoiceFormat": "Invoice Format",
      "invoiceFormatDesc": "Customize invoice and receipt numbering",
      "invoicePrefix": "Invoice Prefix",
      "receiptPrefix": "Receipt Prefix",
      "startingNumber": "Starting Number",
      "previewLabel": "Preview:",
      "paymentTerms": "Payment Terms",
      "paymentTermsDesc": "Default payment policies",
      "paymentDue": "Payment Due (days)",
      "paymentDueHint": "Days until payment is due",
      "lateFee": "Late Fee (%)",
      "lateFeeHint": "Late payment penalty",
      "minimumDue": "Minimum Due Amount",
      "minimumDueHint": "Minimum invoice amount",
      "currencySettings": "Currency Settings",
      "currencySettingsDesc": "Configure currency display",
      "currencyCode": "Currency Code",
      "currencySymbol": "Currency Symbol",
      "invoiceFooter": "Invoice Footer",
      "invoiceFooterDesc": "Default notes and terms for invoices",
      "invoiceNotes": "Invoice Notes",
      "invoiceNotesPlaceholder": "Thank you for choosing our services.",
      "invoiceNotesHint": "Appears at the bottom of invoices",
      "termsAndConditions": "Terms and Conditions",
      "termsPlaceholder": "Payment is due within 30 days...",
      "termsHint": "Payment terms and conditions",
      "saving": "Saving...",
      "saveBillingSettings": "Save Billing Settings",
      "success": "Success",
      "savedSuccess": "Billing settings saved successfully",
      "error": "Error"
    },
    "appointments": {
      "title": "Appointment Settings",
      "subtitle": "Configure appointment scheduling and timing",
      "slotConfig": "Time Slot Configuration",
      "slotConfigDesc": "Set default appointment duration and buffer time",
      "slotDuration": "Default Slot Duration (minutes)",
      "bufferTime": "Buffer Time Between Appointments (minutes)",
      "workingHours": "Working Hours",
      "workingHoursDesc": "Set clinic operating hours",
      "startTime": "Clinic Start Time",
      "endTime": "Clinic End Time",
      "lunchStart": "Lunch Break Start",
      "lunchEnd": "Lunch Break End",
      "bookingSettings": "Booking Settings",
      "bookingSettingsDesc": "Configure booking restrictions and reminders",
      "maxAdvance": "Maximum Advance Booking (days)",
      "maxAdvanceHint": "How far in advance patients can book appointments",
      "reminderTime": "Reminder Time (hours before)",
      "reminderTimeHint": "When to send appointment reminders",
      "holidayCalendar": "Holiday Calendar",
      "holidayCalendarDesc": "Manage clinic holidays and closures",
      "addNewHoliday": "Add New Holiday",
      "holidayNamePlaceholder": "Holiday name",
      "addHoliday": "Add Holiday",
      "upcomingHolidays": "Upcoming Holidays",
      "noHolidays": "No holidays configured",
      "saving": "Saving...",
      "saveAppointmentSettings": "Save Appointment Settings",
      "success": "Success",
      "error": "Error",
      "savedSuccess": "Appointment settings saved successfully",
      "saveFailed": "Failed to save settings",
      "holidayFieldsError": "Please enter holiday name and date",
      "holidayAdded": "Holiday added successfully",
      "addHolidayFailed": "Failed to add holiday",
      "holidayDeleted": "Holiday deleted successfully",
      "deleteHolidayFailed": "Failed to delete holiday"
    },
    "clinic": {
      "loading": "Loading...",
      "title": "Clinic Information",
      "subtitle": "Manage your clinic details and contact information",
      "logoTitle": "Clinic Logo",
      "logoDesc": "Upload your clinic logo to display in the sidebar and invoices",
      "logoAlt": "Clinic logo",
      "changeLogo": "Change Logo",
      "uploadLogo": "Upload Logo",
      "remove": "Remove",
      "logoFormats": "JPEG, PNG, WebP, GIF or SVG. Max 2 MB.",
      "basicInfo": "Basic Information",
      "basicInfoDesc": "Primary clinic details",
      "clinicName": "Clinic Name *",
      "clinicNamePlaceholder": "Your Dental Clinic",
      "tagline": "Tagline / Motto",
      "taglinePlaceholder": "Your Smile, Our Priority",
      "contactInfo": "Contact Information",
      "contactInfoDesc": "How patients can reach you",
      "primaryPhone": "Primary Phone *",
      "primaryPhonePlaceholder": "044-12345678",
      "alternatePhone": "Alternate Phone",
      "alternatePhonePlaceholder": "9876543210",
      "email": "Email",
      "emailPlaceholder": "info@yourclinic.com",
      "website": "Website",
      "websitePlaceholder": "https://www.yourclinic.com",
      "addressTitle": "Address",
      "addressDesc": "Clinic location details",
      "streetAddress": "Street Address *",
      "streetAddressPlaceholder": "123, Main Street, Ayanavaram",
      "city": "City *",
      "cityPlaceholder": "Chennai",
      "state": "State *",
      "pincode": "Pincode *",
      "pincodePlaceholder": "600023",
      "regionalSettings": "Regional Settings",
      "regionalSettingsDesc": "Language, currency and time zone for this clinic. These control how dates and amounts are formatted and which currency you bill in.",
      "languageLocale": "Language / Locale",
      "localeOption": "{label} ({code})",
      "currency": "Currency",
      "country": "Country",
      "countryOption": "{name} ({code})",
      "timeZone": "Time Zone",
      "regionalHint": "The interface language itself does not switch yet — only number, date and currency formatting. Staff and patients can override the language for themselves in their own profile.",
      "registrationTax": "Registration & Tax Information",
      "registrationTaxDesc": "Legal and tax registration details",
      "registrationNumber": "Registration Number",
      "registrationPlaceholder": "REG123456",
      "gstNumber": "GST Number",
      "gstPlaceholder": "29XXXXX1234X1ZX",
      "panNumber": "PAN Number",
      "panPlaceholder": "ABCDE1234F",
      "workingHours": "Working Hours",
      "workingHoursDesc": "Clinic operating schedule",
      "colDay": "Day",
      "colOpensAt": "Opens at",
      "colClosesAt": "Closes at",
      "colOpen": "Open",
      "copyToAll": "Copy to all days",
      "days": {
        "monday": "Monday",
        "tuesday": "Tuesday",
        "wednesday": "Wednesday",
        "thursday": "Thursday",
        "friday": "Friday",
        "saturday": "Saturday",
        "sunday": "Sunday"
      },
      "bankTitle": "Bank & Payment Details",
      "bankDesc": "For invoicing and payment collection",
      "bankName": "Bank Name",
      "bankNamePlaceholder": "State Bank of India",
      "accountNumber": "Account Number",
      "accountNumberPlaceholder": "1234567890",
      "ifscCode": "IFSC Code",
      "ifscPlaceholder": "SBIN0001234",
      "upiId": "UPI ID",
      "upiPlaceholder": "clinic@upi",
      "portalTitle": "Patient Portal",
      "portalDesc": "Allow patients to log in, view records, book appointments, and pay bills online",
      "enablePortal": "Enable Patient Portal",
      "enablePortalHint": "Patients can access the portal via OTP login",
      "portalLoginUrl": "Portal Login URL",
      "portalUrlHint": "Share this URL with patients so they can log in with their registered phone number",
      "saving": "Saving...",
      "saveClinicInfo": "Save Clinic Information",
      "error": "Error",
      "loadFailed": "Failed to load clinic information",
      "logoUploaded": "Logo uploaded",
      "logoUploadedDesc": "Your clinic logo has been updated.",
      "uploadFailed": "Upload failed",
      "logoRemoved": "Logo removed",
      "success": "Success",
      "savedSuccess": "Clinic information saved successfully",
      "copied": "Copied",
      "copiedDesc": "Portal URL copied to clipboard"
    },
    "ai": {
      "title": "AI Settings",
      "subtitle": "Configure AI features (OpenRouter, Anthropic, or Amazon Bedrock)",
      "apiKeyTitle": "AI Provider API Key",
      "apiKeyDesc": "Choose the backend with AI_PROVIDER (openrouter by default, or anthropic / bedrock) and set its credentials: OPENROUTER_API_KEY, ANTHROPIC_API_KEY, or AWS credentials for Bedrock. Restart the app after changes.",
      "checkEnv": "Check .env",
      "masterTitle": "AI Features Master Switch",
      "masterDesc": "Enable or disable all AI features at once",
      "featuresHeading": "Features",
      "feat": {
        "chatLabel": "AI Chat Widget",
        "chatDesc": "Floating chat assistant on all pages",
        "commandLabel": "Command Bar (Ctrl+K)",
        "commandDesc": "Natural-language command execution",
        "remindersLabel": "Auto Appointment Reminders",
        "remindersDesc": "AI-triggered reminders before appointments",
        "briefingLabel": "Morning Briefing",
        "briefingDesc": "Daily clinic summary sent to admins",
        "riskLabel": "Patient Risk Scoring",
        "riskDesc": "Automatic risk calculation on intake"
      },
      "modelPreference": "Model Preference",
      "model": {
        "economy": "Economy",
        "balanced": "Balanced",
        "quality": "Quality",
        "economyDesc": "Fastest, lowest cost",
        "balancedDesc": "Best speed/quality mix",
        "qualityDesc": "Highest accuracy"
      },
      "limitsHeading": "Limits & Guardrails",
      "financialLimit": "Financial Approval Limit ({currency})",
      "financialLimitHint": "Transactions above this amount need manual approval",
      "monthlyBudget": "Monthly AI Budget ({currency})",
      "monthlyBudgetHint": "Estimated OpenRouter cost cap per month",
      "saving": "Saving…",
      "saveSettings": "Save Settings",
      "savedCheck": "Saved ✓"
    },
    "security": {
      "title": "Security Settings",
      "subtitle": "Configure security policies and access controls",
      "loading": "Loading settings...",
      "passwordPolicy": "Password Policy",
      "passwordPolicyDesc": "Configure password requirements for all users",
      "minLength": "Minimum Password Length",
      "minLengthHint": "Minimum: 6 characters, Maximum: 32 characters",
      "requireUppercase": "Require Uppercase Letters",
      "requireUppercaseHint": "At least one uppercase letter (A-Z)",
      "requireLowercase": "Require Lowercase Letters",
      "requireLowercaseHint": "At least one lowercase letter (a-z)",
      "requireNumbers": "Require Numbers",
      "requireNumbersHint": "At least one number (0-9)",
      "requireSpecial": "Require Special Characters",
      "requireSpecialHint": "At least one special character (!@#$%)",
      "passwordExpiry": "Password Expiry (days)",
      "passwordExpiryHint": "Set to 0 to disable password expiry",
      "sessionManagement": "Session Management",
      "sessionManagementDesc": "Configure user session timeout and security",
      "sessionTimeout": "Session Timeout (minutes)",
      "sessionTimeoutHint": "Users will be logged out after this period of inactivity",
      "loginSecurity": "Login Security",
      "loginSecurityDesc": "Protect against brute force attacks",
      "maxAttempts": "Maximum Login Attempts",
      "maxAttemptsHint": "Account will be locked after this many failed attempts",
      "lockoutDuration": "Lockout Duration (minutes)",
      "lockoutDurationHint": "How long the account remains locked",
      "twoFactor": "Two-Factor Authentication",
      "twoFactorDesc": "Add an extra layer of security to user accounts",
      "requireTwoFactor": "Require Two-Factor Authentication",
      "requireTwoFactorHint": "Force all users to enable 2FA for their accounts",
      "ipManagement": "IP Address Management",
      "ipManagementDesc": "Control access based on IP addresses (optional)",
      "allowedIps": "Allowed IP Addresses",
      "allowedIpsHint": "Enter one IP address or CIDR range per line. Leave empty to allow all IPs.",
      "blockedIps": "Blocked IP Addresses",
      "blockedIpsHint": "Enter one IP address or CIDR range per line. These IPs will be denied access.",
      "noticeTitle": "Important Security Notice",
      "notice1": "Changes to security settings affect all users immediately",
      "notice2": "Stricter password policies may require users to reset their passwords",
      "notice3": "Be careful with IP restrictions to avoid locking yourself out",
      "notice4": "Always test security changes in a non-production environment first",
      "notice5": "Enabling 2FA is highly recommended for admin accounts",
      "saving": "Saving...",
      "saveSecuritySettings": "Save Security Settings",
      "error": "Error",
      "loadFailed": "Failed to load security settings",
      "success": "Success",
      "savedSuccess": "Security settings saved successfully",
      "saveFailed": "Failed to save security settings"
    },
    "system": {
      "title": "System Settings",
      "subtitle": "Backup, audit logs, and system management",
      "backupTab": "Backup & Export",
      "auditTab": "Audit Logs",
      "dbStats": "Database Statistics",
      "dbStatsDesc": "Current data in the system",
      "patients": "Patients",
      "appointments": "Appointments",
      "treatments": "Treatments",
      "invoices": "Invoices",
      "payments": "Payments",
      "inventoryItems": "Inventory Items",
      "staffMembers": "Staff Members",
      "labOrders": "Lab Orders",
      "loadingStats": "Loading statistics...",
      "dataExport": "Data Export",
      "dataExportDesc": "Download data backups in JSON format",
      "fullBackup": "Full Database Backup",
      "patientsOnly": "Patients Only",
      "appointmentsOnly": "Appointments Only",
      "treatmentsOnly": "Treatments Only",
      "billingData": "Billing Data",
      "inventoryData": "Inventory Data",
      "settingsOnly": "Settings Only",
      "importantLabel": "Important:",
      "importantNote": "Backups should be stored securely and regularly. Consider setting up automated backups using cron jobs or scheduled tasks.",
      "bestPractices": "Backup Best Practices",
      "practice1": "Take full backups daily, preferably at night when system usage is low",
      "practice2": "Store backups in multiple locations (local + cloud storage)",
      "practice3": "Test backup restoration periodically to ensure data integrity",
      "practice4": "Keep backups for at least 90 days for compliance",
      "practice5": "Encrypt backup files before storing them externally",
      "auditTitle": "System Audit Logs",
      "auditDesc": "Track all system activities and changes",
      "noAuditLogs": "No audit logs available",
      "onEntity": "on {entityType}",
      "byUser": "By: {name} ({email})",
      "systemUser": "System",
      "naValue": "N/A",
      "ipLabel": "IP: {ip}",
      "success": "Success",
      "error": "Error",
      "backupSuccess": "Backup downloaded successfully",
      "exportFailed": "Failed to export backup"
    },
    "integrations": {
      "title": "Integrations",
      "subtitle": "Connect external services to enhance your workflow",
      "connectedToast": "Calendar connected successfully",
      "errDenied": "Calendar access was denied",
      "errMissingParams": "Missing parameters from the calendar provider",
      "errInvalidState": "Invalid session state",
      "errTokenExchange": "Failed to exchange authentication token",
      "connectionFailed": "Connection Failed",
      "genericError": "An error occurred",
      "startConnectionFailed": "Failed to start connection",
      "error": "Error",
      "syncComplete": "Sync Complete",
      "syncFailed": "Sync Failed",
      "disconnectTitle": "Disconnect {provider}?",
      "disconnectDesc": "Your synced events won't be removed from {provider}.",
      "disconnectConfirm": "Yes, proceed",
      "disconnectFailed": "Failed to disconnect",
      "disconnectedToast": "{provider} disconnected",
      "gcalDesc": "Sync your appointments to Google Calendar automatically",
      "connected": "Connected",
      "notConnected": "Not Connected",
      "loading": "Loading...",
      "calendarId": "Calendar ID",
      "connectedSince": "Connected Since",
      "lastSync": "Last Sync",
      "never": "Never",
      "statusLabel": "Status",
      "syncEnabled": "Sync Enabled",
      "syncDisabled": "Sync Disabled",
      "syncNow": "Sync Now",
      "disconnect": "Disconnect",
      "connectIntro": "Connect your {provider} to automatically sync appointments. When you create or update appointments in the system, they'll appear on your {provider}.",
      "credentialsNote": "Requires calendar API credentials configured by the system administrator ({envVars} environment variables).",
      "connectButton": "Connect {provider}",
      "outlookDesc": "Sync your appointments to Outlook Calendar automatically"
    },
    "pricing": {
      "title": "Dynamic Pricing Advisor",
      "subtitle": "AI-powered pricing recommendations based on demand patterns",
      "analyzing": "Analyzing...",
      "generate": "Generate Analysis",
      "advisoryTitle": "Advisory Only",
      "advisoryBody": "These are AI-generated recommendations. No pricing changes are applied automatically. Review each suggestion and implement manually if appropriate.",
      "noAnalysisTitle": "No Analysis Generated",
      "noAnalysisBody": "Click \"Generate Analysis\" to get AI-powered pricing recommendations based on your clinic's appointment and revenue data.",
      "overallDemand": "Overall Demand",
      "revenueOpportunity": "Revenue Opportunity",
      "perMonth": "/mo",
      "topRecommendation": "Top Recommendation",
      "peakTitle": "Peak & Off-Peak Analysis",
      "busiestDays": "Busiest Days",
      "quietestDays": "Quietest Days",
      "peakHours": "Peak Hours",
      "offPeakHours": "Off-Peak Hours",
      "avgUtilization": "Avg Utilization",
      "peakUtilization": "Peak Utilization",
      "pricingSuggestions": "Pricing Suggestions",
      "estImpact": "Est. Impact: {impact}",
      "doctorUtilization": "Doctor Utilization",
      "procedureDemand": "Procedure Demand",
      "bookingLabel": "Booking:",
      "avgWait": "Avg wait: {days}d",
      "generatedAt": "Generated at {time}",
      "success": "Success",
      "error": "Error",
      "analysisGenerated": "Pricing analysis generated",
      "generateFailed": "Failed to generate suggestions",
      "toastFailed": "Failed to generate pricing suggestions"
    },
    "import": {
      "title": "Data Import",
      "subtitle": "Import data from your previous ERP system using CSV, Excel, or PDF files",
      "step": {
        "upload": "Upload File",
        "map": "Map Columns",
        "preview": "Preview & Edit",
        "validate": "Validate",
        "confirm": "Confirm Import"
      },
      "entity": {
        "patients": {
          "label": "Patients",
          "desc": "Demographics, contact info"
        },
        "staff": {
          "label": "Staff",
          "desc": "Doctors, nurses, admin"
        },
        "appointments": {
          "label": "Appointments",
          "desc": "Scheduled visits"
        },
        "treatments": {
          "label": "Treatments",
          "desc": "Procedures & records"
        },
        "invoices": {
          "label": "Invoices",
          "desc": "Bills & amounts"
        },
        "payments": {
          "label": "Payments",
          "desc": "Payment transactions"
        },
        "inventory": {
          "label": "Inventory",
          "desc": "Stock items & levels"
        }
      },
      "unsupportedTitle": "Unsupported file",
      "unsupportedDesc": "Please use CSV, Excel, or PDF files.",
      "tooLargeTitle": "File too large",
      "tooLargeDesc": "Maximum file size is 20MB.",
      "uploadFailed": "Upload failed",
      "uploadFailedTitle": "Upload Failed",
      "mappingFailed": "Mapping failed",
      "validationFailedTitle": "Validation Failed",
      "validationFailed": "Validation failed",
      "importFailedTitle": "Import Failed",
      "importFailedError": "Import failed",
      "step1Heading": "Select data type and upload file",
      "step1Sub": "Choose what type of data you're importing, then upload your file.",
      "whatImporting": "What are you importing?",
      "uploadFileLabel": "Upload file",
      "kbChange": "{kb} KB — Click to change",
      "dropHere": "Drop your file here or click to browse",
      "supports": "Supports CSV, Excel (.xlsx/.xls), and PDF — Max 20MB",
      "pdfWarning": "PDF table extraction is best-effort. For most reliable results, export your data as CSV or Excel from your old system.",
      "uploadContinue": "Upload & Continue",
      "step2Heading": "Map columns to {label} fields",
      "step2Sub": "AI has suggested mappings below. Review and adjust as needed.",
      "requiredNotMapped": "Required fields not yet mapped:",
      "splitDetected": "AI detected columns that may need splitting: {list}. Name splitting will be handled automatically during import.",
      "analyzing": "AI is analyzing your columns...",
      "colSource": "Source Column",
      "colSample": "Sample Value",
      "colMapsTo": "Maps To",
      "colConfidence": "Confidence",
      "skipColumn": "— Skip this column —",
      "confidenceTitle": "{pct}% confidence",
      "back": "Back",
      "previewDataBtn": "Preview Data",
      "step3Heading": "Preview mapped data",
      "step3Sub": "Showing first {shown} of {total} rows. Click any cell to edit.",
      "backToMapping": "Back to Mapping",
      "validateAll": "Validate All",
      "step4Heading": "Validation Results",
      "step4Sub": "Review validation results before importing.",
      "validatingRows": "Validating {total} rows...",
      "totalRows": "Total Rows",
      "validRows": "Valid Rows",
      "errors": "Errors",
      "warnings": "Warnings",
      "referenceResolution": "Reference Resolution",
      "resolvedMsg": "{resolved} references resolved successfully.",
      "unresolvedMsg": " {count} could not be resolved.",
      "notFoundRow": "Row {row}: {field} = \"{value}\" not found",
      "issues": "Issues ({count})",
      "rowLabel": "Row {row}",
      "skipErrorRows": "Skip {count} rows with errors and import the rest",
      "editData": "Edit Data",
      "proceedImport": "Proceed to Import",
      "confirmHeading": "Confirm Import",
      "confirmSub": "Review the summary below and confirm to start the import.",
      "dataType": "Data Type",
      "fileLabel": "File",
      "willImport": "Will Import",
      "willImportCount": "{count} records",
      "createWarning": "This will create new {label} records in your database.",
      "staffWarning": " Imported staff will receive temporary passwords and must change them on first login.",
      "importing": "Importing... Please wait",
      "confirmImportBtn": "Confirm & Import Data",
      "importComplete": "Import Complete!",
      "importedMsg": "{count} {label} imported successfully.",
      "skippedMsg": " {count} rows skipped.",
      "importFailedHeading": "Import Failed",
      "importFailedMsg": "{imported} imported, {skipped} failed.",
      "total": "Total",
      "imported": "Imported",
      "skipped": "Skipped",
      "errorLog": "Error Log",
      "errorRow": "Row {row}: {message}",
      "importAnother": "Import Another File",
      "viewEntity": "View {label}"
    },
    "communications": {
      "title": "Communication Settings",
      "subtitle": "Configure SMS and Email gateways",
      "loading": "Loading settings...",
      "tabSms": "SMS Configuration",
      "tabEmail": "Email Configuration",
      "tabReviews": "Google Reviews",
      "smsCardTitle": "SMS Gateway Settings",
      "smsCardDesc": "Configure your Indian SMS gateway provider",
      "enableSms": "Enable SMS",
      "enableSmsHint": "Turn on/off SMS communication",
      "smsGateway": "SMS Gateway",
      "senderId": "Sender ID",
      "senderIdHint": "Approved sender ID from gateway",
      "apiKey": "API Key / Auth Key",
      "apiKeyPlaceholder": "Enter your API key",
      "route": "Route (for MSG91/TextLocal)",
      "routeHint": "Route 4 = Transactional, Route 1 = Promotional",
      "testSmsHeading": "Test SMS Connection",
      "testPhone": "Test Phone Number",
      "testPhoneHint": "Enter a 10-digit Indian mobile number",
      "sending": "Sending...",
      "sendTestSms": "Send Test SMS",
      "traiTitle": "TRAI Compliance",
      "trai1": "SMS will only be sent between 9 AM - 9 PM IST",
      "trai2": "DND registry will be checked before sending",
      "trai3": "Patient consent is required for promotional messages",
      "saving": "Saving...",
      "saveSms": "Save SMS Settings",
      "emailCardTitle": "Email SMTP Settings",
      "emailCardDesc": "Configure your email server (Hostinger, Gmail, etc.)",
      "enableEmail": "Enable Email",
      "enableEmailHint": "Turn on/off email communication",
      "smtpHeading": "SMTP Server Configuration",
      "smtpHost": "SMTP Host",
      "smtpPort": "SMTP Port",
      "smtpUser": "SMTP Username",
      "smtpPassword": "SMTP Password",
      "smtpPasswordPlaceholder": "Enter SMTP password",
      "useSsl": "Use SSL/TLS (for port 465)",
      "senderHeading": "Email Sender Details",
      "fromName": "From Name",
      "fromNamePlaceholder": "Your Dental Clinic",
      "fromEmail": "From Email",
      "replyTo": "Reply-To Email (Optional)",
      "testEmailHeading": "Test Email Connection",
      "testEmailLabel": "Test Email Address",
      "testEmailHint": "Enter an email address to receive the test email",
      "sendTestEmail": "Send Test Email",
      "hostingerTitle": "Recommended Settings for Hostinger",
      "hostinger1": "SMTP Host: smtp.hostinger.com",
      "hostinger2": "SMTP Port: 587 (STARTTLS) or 465 (SSL)",
      "hostinger3": "Use your email and password for authentication",
      "saveEmail": "Save Email Settings",
      "reviewsCardTitle": "Google Reviews Settings",
      "reviewsCardDesc": "Automatically request Google reviews from satisfied patients",
      "reviewUrl": "Google Review URL",
      "reviewUrlHint": "Your Google Business review link. Find it in Google Business Profile > Get more reviews.",
      "autoRequest": "Auto-Request Reviews",
      "autoRequestHint": "Automatically send review requests after appointments",
      "reviewDelay": "Review Request Delay (hours)",
      "reviewDelayHint": "Hours after appointment completion before sending the review request SMS",
      "gatingTitle": "Review Gating",
      "gating1": "Review requests are only sent to patients who rated their satisfaction 4/5 or higher",
      "gating2": "Patients must have submitted a survey response within the last 30 days",
      "gating3": "Only one review request per patient per 30 days",
      "gating4": "Patients who opted out of promotional messages will not receive requests",
      "saveReviews": "Save Review Settings",
      "error": "Error",
      "success": "Success",
      "loadFailed": "Failed to load settings",
      "saveFailed": "Failed to save settings",
      "smsSaved": "SMS settings saved successfully",
      "emailSaved": "Email settings saved successfully",
      "reviewsSaved": "Review settings saved successfully",
      "testFailed": "Test Failed",
      "enterPhone": "Please enter a phone number to test",
      "enterEmail": "Please enter an email address to test",
      "smsTestFailed": "Failed to send test SMS",
      "emailTestFailed": "Failed to send test email",
      "smsTestSuccess": "Test SMS sent successfully",
      "emailTestSuccess": "Test email sent successfully"
    },
    "formsList": {
      "title": "Form Templates",
      "subtitle": "Create and manage intake forms, consent forms, and custom forms",
      "newTemplate": "New Template",
      "allTemplates": "All Templates",
      "loading": "Loading...",
      "emptyTitle": "No form templates yet",
      "emptyBody": "Create your first form template to start collecting patient information",
      "createTemplate": "Create Template",
      "loadDefaults": "Load Default Templates",
      "colName": "Name",
      "colType": "Type",
      "colStatus": "Status",
      "colSubmissions": "Submissions",
      "colCreated": "Created",
      "default": "Default",
      "active": "Active",
      "inactive": "Inactive",
      "viewEdit": "View / Edit",
      "delete": "Delete",
      "deleteTitle": "Delete Template",
      "deleteDesc": "Delete \"{name}\"? Templates with submissions will be deactivated instead.",
      "deleteConfirm": "Delete",
      "loadFailed": "Failed to load form templates",
      "loadDefaultsFailed": "Failed to load defaults",
      "templateRemoved": "Template removed",
      "deleteFailed": "Failed to delete",
      "deleteFailedCatch": "Failed to delete template",
      "type": {
        "MEDICAL_HISTORY": "Medical History",
        "CONSENT": "Consent",
        "INTAKE": "Intake",
        "FEEDBACK": "Feedback",
        "CUSTOM": "Custom"
      }
    },
    "formBuilder": {
      "newTitle": "New Form Template",
      "newSubtitle": "Design a custom form for patients",
      "editTitle": "Edit: {name}",
      "submissionSingular": "{count} submission",
      "submissionPlural": "{count} submissions",
      "previewTitle": "Preview: {name}",
      "untitled": "Untitled",
      "untitledForm": "Untitled Form",
      "previewSubtitle": "This is how the form will appear to patients",
      "backToEditor": "Back to Editor",
      "previewSubmitLabel": "Submit (Preview)",
      "previewNotSubmitted": "Preview mode — form not submitted",
      "preview": "Preview",
      "saveTemplate": "Save Template",
      "saveChanges": "Save Changes",
      "active": "Active",
      "inactive": "Inactive",
      "formDetails": "Form Details",
      "templateName": "Template Name *",
      "templateNamePlaceholder": "e.g. General Consent Form",
      "formTypeLabel": "Form Type",
      "descriptionLabel": "Description",
      "descriptionPlaceholder": "Brief description of this form...",
      "formFields": "Form Fields ({count})",
      "noFields": "No fields yet. Add fields from the panel on the right.",
      "required": "Required",
      "noLabel": "(no label)",
      "labelLabel": "Label",
      "fieldLabelPlaceholder": "Field label",
      "placeholderLabel": "Placeholder",
      "placeholderPlaceholder": "Placeholder text",
      "helpTextLabel": "Help Text",
      "helpTextPlaceholder": "Optional help text",
      "optionsLabel": "Options",
      "addOption": "Add Option",
      "addField": "Add Field",
      "nameRequired": "Template name is required",
      "fieldRequired": "Add at least one field",
      "createdSuccess": "Form template created",
      "updatedSuccess": "Template updated",
      "saveFailed": "Failed to save",
      "saveFailedCatch": "Failed to save template",
      "notFound": "Template not found",
      "loadFailed": "Failed to load template",
      "defaultSectionTitle": "Section Title",
      "defaultParagraph": "Enter informational text here",
      "defaultOption": "Option {n}",
      "fieldType": {
        "text": "Text Input",
        "textarea": "Text Area",
        "number": "Number",
        "date": "Date",
        "select": "Dropdown",
        "checkbox": "Checkbox",
        "radio": "Radio Buttons",
        "signature": "Signature",
        "heading": "Section Heading",
        "paragraph": "Paragraph Text"
      },
      "formType": {
        "MEDICAL_HISTORY": "Medical History",
        "CONSENT": "Consent Form",
        "INTAKE": "Intake Form",
        "FEEDBACK": "Feedback",
        "CUSTOM": "Custom"
      }
    },
    "procedures": {
      "title": "Procedures",
      "subtitle": "Manage dental procedures catalog",
      "addProcedure": "Add Procedure",
      "searchPlaceholder": "Search procedures...",
      "categoryPlaceholder": "Category",
      "allCategories": "All Categories",
      "statusPlaceholder": "Status",
      "allStatus": "All Status",
      "active": "Active",
      "inactive": "Inactive",
      "colCode": "Code",
      "colName": "Name",
      "colCategory": "Category",
      "colDuration": "Duration",
      "colPrice": "Price",
      "colStatus": "Status",
      "colActions": "Actions",
      "noProcedures": "No procedures found",
      "durationMin": "{count} min",
      "edit": "Edit",
      "delete": "Delete",
      "showing": "Showing {from} to {to} of {total} procedures",
      "previous": "Previous",
      "next": "Next",
      "pageOf": "Page {page} of {total}",
      "addDialogTitle": "Add New Procedure",
      "editDialogTitle": "Edit Procedure",
      "addDialogDesc": "Add a new procedure to your catalog",
      "editDialogDesc": "Update procedure details",
      "codeLabel": "Code *",
      "codePlaceholder": "e.g., PRV001",
      "codeCannotChange": "Code cannot be changed",
      "categoryLabel": "Category *",
      "selectCategory": "Select category",
      "nameLabel": "Name *",
      "namePlaceholder": "Procedure name",
      "descriptionLabel": "Description",
      "descriptionPlaceholder": "Brief description of the procedure",
      "durationLabel": "Duration (minutes)",
      "basePriceLabel": "Base Price *",
      "basePricePlaceholder": "0.00",
      "materialsLabel": "Materials",
      "materialsPlaceholder": "List of materials used",
      "preInstructionsLabel": "Pre-procedure Instructions",
      "preInstructionsPlaceholder": "Instructions for patients before the procedure",
      "postInstructionsLabel": "Post-procedure Instructions",
      "postInstructionsPlaceholder": "Instructions for patients after the procedure",
      "activeLabel": "Active",
      "cancel": "Cancel",
      "saving": "Saving...",
      "saveChanges": "Save Changes",
      "deleteDialogTitle": "Delete Procedure",
      "deleteDialogDesc": "Are you sure you want to delete \"{name}\"? If this procedure is used in treatments, it will be deactivated instead.",
      "deleting": "Deleting...",
      "error": "Error",
      "success": "Success",
      "fetchFailed": "Failed to fetch procedures",
      "codeRequired": "Code is required",
      "requiredFields": "Name, category, and base price are required",
      "saveFailed": "Failed to save procedure",
      "created": "Procedure created successfully",
      "updated": "Procedure updated successfully",
      "deleteFailed": "Failed to delete procedure",
      "deactivated": "Procedure has been deactivated as it is used in existing treatments",
      "deleted": "Procedure deleted successfully",
      "updateFailed": "Failed to update procedure",
      "statusActivated": "Procedure activated successfully",
      "statusDeactivated": "Procedure deactivated successfully",
      "updateStatusFailed": "Failed to update procedure status"
    },
    "subscription": {
      "title": "Subscription & Billing",
      "subtitle": "Manage your subscription and view usage",
      "errorTitle": "Error",
      "loadFailed": "Failed to load subscription data.",
      "upgradeRequested": "Upgrade requested",
      "upgradeRequestedDesc": "Our team will contact you shortly to complete the upgrade.",
      "currentPlanTitle": "Current Plan",
      "currentPlanDesc": "Your current usage and limits",
      "planBadge": {
        "FREE": "Free Plan",
        "PROFESSIONAL": "Professional",
        "ENTERPRISE": "Enterprise",
        "SELF_HOSTED": "Self-Hosted"
      },
      "patients": "Patients",
      "staffMembers": "Staff Members",
      "storage": "Storage",
      "unlimited": "Unlimited",
      "availablePlans": "Available Plans",
      "mostPopular": "Most Popular",
      "current": "Current",
      "custom": "Custom",
      "oneTime": "one-time",
      "perMonth": "/month",
      "currentPlan": "Current Plan",
      "contactSales": "Contact Sales",
      "upgrade": "Upgrade",
      "plans": {
        "FREE": {
          "name": "Free",
          "description": "Perfect for getting started",
          "features": [
            "Up to 100 patients",
            "Up to 3 staff members",
            "500 MB storage",
            "Basic reports",
            "Email support"
          ]
        },
        "PROFESSIONAL": {
          "name": "Professional",
          "description": "For growing practices",
          "features": [
            "Unlimited patients",
            "Unlimited staff",
            "Unlimited storage",
            "Advanced analytics",
            "Priority support",
            "Custom branding",
            "API access"
          ]
        },
        "ENTERPRISE": {
          "name": "Enterprise",
          "description": "For large organizations",
          "features": [
            "Everything in Professional",
            "Multi-location support",
            "Dedicated account manager",
            "Custom integrations",
            "SLA guarantee",
            "On-premise option"
          ]
        },
        "SELF_HOSTED": {
          "name": "Self-Hosted",
          "description": "Own your data forever",
          "features": [
            "Full source code access",
            "Host on your servers",
            "Unlimited everything",
            "1 year of updates",
            "Installation support",
            "No recurring fees"
          ]
        }
      }
    },
    "languageCard": {
      "title": "Language & Formatting",
      "defaultDescription": "Choose how dates, numbers and amounts are formatted for you. Everyone else at this clinic is unaffected.",
      "language": "Language",
      "useClinicDefault": "Use clinic default",
      "useClinicDefaultWith": "Use clinic default ({label})",
      "inheritHint": "Leaving this on the clinic default means it follows the clinic if the clinic's language is ever changed.",
      "preview": "Preview",
      "amount": "Amount",
      "date": "Date",
      "save": "Save",
      "saveFailed": "Failed to save language",
      "languageUpdated": "Language updated",
      "followingDefault": "You are now following the clinic default.",
      "formattingNow": "Formatting now uses {label}.",
      "error": "Error"
    },
    "setupGuide": {
      "back": "Settings",
      "title": "Setup Guide",
      "subtitle": "Step-by-step instructions to set up your clinic. Follow the essential steps first, then add optional integrations.",
      "essentialSteps": "Essential Steps",
      "recommended": "Recommended",
      "optional": "Optional",
      "expandAll": "Expand All",
      "collapseAll": "Collapse All",
      "clearFilter": "Clear Filter",
      "stepsLabel": "Steps:",
      "tipsLabel": "Tips:",
      "helpTitle": "Need More Help?",
      "helpBody": "If you're stuck on any step, feel free to use the AI Chat Assistant (bottom-right corner) for instant help, or contact our support team.",
      "askAi": "Ask AI Assistant",
      "priority": {
        "essential": "Essential",
        "recommended": "Recommended",
        "optional": "Optional"
      },
      "sections": {
        "clinic": {
          "title": "Clinic Information",
          "description": "Set up your clinic profile, logo, address, and working hours",
          "estimatedTime": "10 min",
          "guides": [
            {
              "title": "Add Your Clinic Logo",
              "description": "Upload your clinic logo that will appear on invoices, prescriptions, and the patient portal.",
              "steps": [
                "Go to Settings → Clinic Information",
                "Click the camera icon on the placeholder image at the top",
                "Select your clinic logo from your computer (JPEG, PNG, or SVG, max 2MB)",
                "The logo will be uploaded automatically — you'll see a preview",
                "Click \"Save Changes\" at the bottom of the page"
              ],
              "tips": [
                "Use a square image (e.g., 512×512 pixels) for best results",
                "PNG with transparent background works best",
                "The logo appears on printed invoices and prescriptions"
              ],
              "link": {
                "label": "Go to Clinic Settings",
                "href": "/settings/clinic"
              }
            },
            {
              "title": "Fill in Clinic Details",
              "description": "Add your clinic name, phone number, email, address, and registration details.",
              "steps": [
                "Go to Settings → Clinic Information",
                "Fill in the \"Basic Information\" section: Clinic Name and Tagline",
                "Fill in \"Contact Information\": Primary Phone, Email, and Website",
                "Fill in \"Address\": Street Address, City, State, and Pincode",
                "Fill in \"Registration & Tax\": GST Number and PAN (if applicable)",
                "Click \"Save Changes\""
              ],
              "tips": [
                "GST Number format: 29XXXXX1234X1ZX (15 characters)",
                "PAN format: ABCDE1234F (10 characters)",
                "These details appear on your invoices automatically"
              ],
              "link": {
                "label": "Go to Clinic Settings",
                "href": "/settings/clinic"
              }
            },
            {
              "title": "Set Working Hours",
              "description": "Configure your clinic's opening and closing hours for each day of the week.",
              "steps": [
                "Go to Settings → Clinic Information, scroll to \"Working Hours\"",
                "For each day, set the Opening Time and Closing Time",
                "Toggle \"Closed\" for days when the clinic is not open (e.g., Sundays)",
                "Use the \"Copy to All\" button to apply one day's hours to all days",
                "Click \"Save Changes\""
              ],
              "tips": [
                "Working hours are used for appointment scheduling — patients can only book during these hours",
                "You can set different hours for different days (e.g., half-day on Saturdays)"
              ],
              "link": {
                "label": "Go to Clinic Settings",
                "href": "/settings/clinic"
              }
            },
            {
              "title": "Add Bank & UPI Details",
              "description": "Add your bank account and UPI information for payment collection.",
              "steps": [
                "Go to Settings → Clinic Information, scroll to \"Bank & Payment Details\"",
                "Enter your Bank Name, Account Number, and IFSC Code",
                "Enter your UPI ID (e.g., yourclinic@upi)",
                "Click \"Save Changes\""
              ],
              "tips": [
                "Bank details appear on invoices so patients can make bank transfers",
                "Double-check the IFSC code — incorrect IFSC will cause payment failures"
              ],
              "link": {
                "label": "Go to Clinic Settings",
                "href": "/settings/clinic"
              }
            }
          ]
        },
        "staff": {
          "title": "Staff & User Accounts",
          "description": "Add your team members so they can log in and use the system",
          "estimatedTime": "5 min per staff",
          "guides": [
            {
              "title": "Add a Staff Member",
              "description": "Create accounts for your doctors, receptionists, and other staff.",
              "steps": [
                "Go to Staff from the left sidebar",
                "Click the \"+ Add Staff\" button in the top-right",
                "Fill in the staff member's details: Name, Email, Phone, and Role",
                "Choose a Role: ADMIN (full access), DOCTOR, RECEPTIONIST, ACCOUNTANT, or LAB_TECH",
                "Set a temporary password — the staff member will be asked to change it on first login",
                "Click \"Create Staff\" to save"
              ],
              "tips": [
                "Each role has different permissions — receptionists can book appointments but can't change settings",
                "Doctors can view and create treatments, prescriptions, and medical records",
                "Only ADMIN users can access Settings and manage other staff",
                "Share the login URL and temporary password with each staff member"
              ],
              "link": {
                "label": "Go to Staff Management",
                "href": "/staff"
              }
            },
            {
              "title": "Invite Staff via Email",
              "description": "Send an invitation email so staff can set up their own accounts.",
              "steps": [
                "Go to Staff → Invites tab",
                "Click \"+ Send Invite\"",
                "Enter the staff member's email address and select their role",
                "Click \"Send Invite\" — they'll receive an email with a signup link",
                "The invite appears as \"Pending\" until they accept"
              ],
              "tips": [
                "Email invites require your SMTP/email to be configured first (see Email Setup below)",
                "Invites expire after 7 days — you can resend if needed"
              ],
              "link": {
                "label": "Go to Staff Invites",
                "href": "/staff/invites"
              }
            }
          ]
        },
        "procedures": {
          "title": "Dental Procedures & Pricing",
          "description": "Set up your list of dental procedures with prices",
          "estimatedTime": "15 min",
          "guides": [
            {
              "title": "Add Your Dental Procedures",
              "description": "Create your catalog of dental procedures with codes, pricing, and instructions.",
              "steps": [
                "Go to Settings → Procedure Settings",
                "Click \"+ New Procedure\"",
                "Fill in the Code (e.g., \"RCT\", \"SCALING\"), Name, and Category",
                "Set the Base Price — this is the default price shown on invoices",
                "Optionally add Duration (in minutes), Materials, and Pre/Post instructions",
                "Click \"Save\" to add the procedure",
                "Repeat for all your dental procedures"
              ],
              "tips": [
                "Common categories: PREVENTIVE (cleaning, scaling), RESTORATIVE (fillings), ENDODONTIC (root canal), PROSTHODONTIC (crowns, dentures), ORTHODONTIC (braces), ORAL_SURGERY (extraction), COSMETIC (whitening), DIAGNOSTIC (X-ray)",
                "Prices can be changed for individual patients at the time of billing",
                "You can import procedures from your old system using Data Import",
                "Mark procedures as inactive instead of deleting them — this preserves billing history"
              ],
              "link": {
                "label": "Go to Procedure Settings",
                "href": "/settings/procedures"
              }
            }
          ]
        },
        "appointments": {
          "title": "Appointment Settings",
          "description": "Configure time slots, working hours, and holiday calendar",
          "estimatedTime": "5 min",
          "guides": [
            {
              "title": "Configure Time Slots",
              "description": "Set up how long each appointment slot is and the buffer time between appointments.",
              "steps": [
                "Go to Settings → Appointment Settings",
                "Set \"Default Slot Duration\" — this is how long each appointment lasts (e.g., 30 minutes)",
                "Set \"Buffer Time\" — gap between appointments for cleanup/preparation (e.g., 10 minutes)",
                "Set \"Clinic Start Time\" and \"Clinic End Time\" to match your working hours",
                "Optionally set a lunch break time range",
                "Click \"Save Settings\""
              ],
              "tips": [
                "A 30-minute slot with 10-minute buffer means 40 minutes between appointment starts",
                "You can override slot duration for specific appointments when booking"
              ],
              "link": {
                "label": "Go to Appointment Settings",
                "href": "/settings/appointments"
              }
            },
            {
              "title": "Add Holidays",
              "description": "Block out dates when your clinic is closed so patients can't book on those days.",
              "steps": [
                "Go to Settings → Appointment Settings",
                "Scroll down to the \"Holiday Calendar\" section",
                "Enter the Holiday Name (e.g., \"Diwali\", \"Christmas\")",
                "Select the Date",
                "Click \"Add Holiday\"",
                "The holiday will appear in the list below — appointments can't be booked on that date"
              ],
              "tips": [
                "Add all national and regional holidays at the start of the year",
                "You can delete a holiday if plans change",
                "Existing appointments on that date are NOT automatically cancelled — cancel them manually if needed"
              ],
              "link": {
                "label": "Go to Appointment Settings",
                "href": "/settings/appointments"
              }
            }
          ]
        },
        "billing": {
          "title": "Billing & Tax Setup",
          "description": "Configure GST, invoice format, and payment terms",
          "estimatedTime": "5 min",
          "guides": [
            {
              "title": "Set Up GST & Tax Rates",
              "description": "Configure your CGST and SGST percentages for automatic tax calculation on invoices.",
              "steps": [
                "Go to Settings → Billing Settings",
                "In the \"Tax Configuration\" section, enter your CGST Rate (e.g., 9%)",
                "Enter your SGST Rate (e.g., 9%) — total GST will be shown (e.g., 18%)",
                "Click \"Save Settings\""
              ],
              "tips": [
                "Standard dental GST in India: CGST 9% + SGST 9% = 18% total",
                "If your clinic is below the GST threshold (₹20 lakh turnover), you can set both to 0%",
                "Tax is calculated automatically on every invoice"
              ],
              "link": {
                "label": "Go to Billing Settings",
                "href": "/settings/billing"
              }
            },
            {
              "title": "Customize Invoice Format",
              "description": "Set your invoice prefix, numbering, and footer text.",
              "steps": [
                "Go to Settings → Billing Settings",
                "In \"Invoice Format\", set your Invoice Prefix (e.g., \"INV\") and Receipt Prefix (e.g., \"REC\")",
                "Set the Starting Number (e.g., 1001) — invoices will be numbered INV1001, INV1002, etc.",
                "Scroll to \"Invoice Footer\" and add your Terms & Conditions text",
                "Optionally add Invoice Notes that appear on every invoice",
                "Click \"Save Settings\""
              ],
              "tips": [
                "If you're migrating from another system, set the starting number to continue from where you left off",
                "Common footer text: \"Payment is due within 15 days. Thank you for your business.\""
              ],
              "link": {
                "label": "Go to Billing Settings",
                "href": "/settings/billing"
              }
            }
          ]
        },
        "payment-gateway": {
          "title": "Online Payment Gateway",
          "description": "Accept online payments from patients via Razorpay, PhonePe, or Paytm",
          "estimatedTime": "15-30 min",
          "guides": [
            {
              "title": "Set Up Razorpay",
              "description": "Accept credit cards, debit cards, UPI, and net banking payments through Razorpay.",
              "steps": [
                "Create a Razorpay account at razorpay.com if you don't have one",
                "Complete KYC verification on the Razorpay dashboard (PAN, bank account, business details)",
                "Once verified, go to Razorpay Dashboard → Settings → API Keys",
                "Click \"Generate Key\" — you'll get a Key ID (starts with \"rzp_\") and a Key Secret",
                "IMPORTANT: Copy the Key Secret immediately — it's shown only once!",
                "In DentalERP, go to Settings → Billing Settings → \"Payment Gateway\" tab",
                "Select \"Razorpay\" as the gateway",
                "Paste your Key ID and Key Secret in the fields",
                "Toggle \"Test Mode\" ON for testing first, then switch to OFF for live payments",
                "Toggle \"Enable Online Payments\" ON",
                "Click \"Save Gateway Settings\"",
                "Copy the Webhook URL shown and paste it in Razorpay Dashboard → Webhooks → Add Webhook"
              ],
              "tips": [
                "Always test with Test Mode ON first — use Razorpay test cards to verify",
                "Razorpay charges ~2% per transaction (varies by payment method)",
                "Settlements happen in T+2 business days to your registered bank account",
                "Keep your Key Secret safe — never share it publicly"
              ],
              "link": {
                "label": "Go to Billing Settings",
                "href": "/settings/billing"
              },
              "externalLinks": [
                {
                  "label": "Create Razorpay Account",
                  "url": "https://dashboard.razorpay.com/signup"
                },
                {
                  "label": "Razorpay API Keys Guide",
                  "url": "https://razorpay.com/docs/payments/dashboard/account-settings/api-keys/"
                }
              ]
            },
            {
              "title": "Set Up PhonePe Business",
              "description": "Accept UPI, cards, and wallet payments through PhonePe for Business.",
              "steps": [
                "Create a PhonePe Business account at business.phonepe.com",
                "Complete KYC and business verification",
                "Once approved, go to PhonePe Business Dashboard → Developers → API Keys",
                "Note your Merchant ID, Salt Key, and Salt Index",
                "In DentalERP, go to Settings → Billing Settings → \"Payment Gateway\" tab",
                "Select \"PhonePe\" as the gateway",
                "Enter your Merchant ID, Salt Key, and Salt Index",
                "Toggle Test/Live mode appropriately",
                "Click \"Save Gateway Settings\""
              ],
              "tips": [
                "PhonePe is popular for UPI payments in India",
                "PhonePe charges ~1.5-2% per transaction",
                "Make sure your business category is set correctly during KYC"
              ],
              "link": {
                "label": "Go to Billing Settings",
                "href": "/settings/billing"
              },
              "externalLinks": [
                {
                  "label": "PhonePe Business Signup",
                  "url": "https://business.phonepe.com"
                }
              ]
            },
            {
              "title": "Set Up Paytm Business",
              "description": "Accept payments via Paytm wallet, UPI, cards, and net banking.",
              "steps": [
                "Create a Paytm for Business account at business.paytm.com",
                "Complete your business KYC verification",
                "Go to Paytm Business Dashboard → Developer Settings → API Keys",
                "Note your Merchant ID (MID) and Merchant Key",
                "In DentalERP, go to Settings → Billing Settings → \"Payment Gateway\" tab",
                "Select \"Paytm\" as the gateway",
                "Enter your Merchant ID and Merchant Key",
                "Set Website to \"WEBSTAGING\" for testing or \"DEFAULT\" for live",
                "Click \"Save Gateway Settings\""
              ],
              "tips": [
                "Use \"WEBSTAGING\" website value for testing, switch to \"DEFAULT\" when going live",
                "Paytm offers lower rates for small businesses — check their pricing page"
              ],
              "link": {
                "label": "Go to Billing Settings",
                "href": "/settings/billing"
              },
              "externalLinks": [
                {
                  "label": "Paytm Business Signup",
                  "url": "https://business.paytm.com"
                }
              ]
            }
          ]
        },
        "sms": {
          "title": "SMS Notifications",
          "description": "Send appointment reminders and notifications via SMS to patients",
          "estimatedTime": "15 min",
          "guides": [
            {
              "title": "Set Up SMS Gateway (MSG91)",
              "description": "MSG91 is the most popular SMS gateway in India. Here's how to connect it.",
              "steps": [
                "Create an account at msg91.com",
                "Verify your email and phone number",
                "Go to MSG91 Dashboard → API → Authkey — copy your Auth Key",
                "Create a Sender ID (6 characters, e.g., \"DENTAL\") — this appears as the sender name",
                "Submit Sender ID for TRAI approval (takes 1-3 business days)",
                "In DentalERP, go to Settings → Communication Settings",
                "Toggle \"Enable SMS\" ON",
                "Select \"MSG91\" as the Gateway",
                "Paste your Auth Key and approved Sender ID",
                "Set Route to \"4\" (Transactional — for appointment reminders)",
                "Click \"Save Settings\"",
                "Test by entering a phone number and clicking \"Send Test SMS\""
              ],
              "tips": [
                "SMS can only be sent between 9 AM - 9 PM IST (TRAI regulation)",
                "Route 4 = Transactional (appointment reminders), Route 1 = Promotional (offers)",
                "DND-registered numbers will receive Transactional SMS but not Promotional",
                "SMS costs approximately ₹0.15 - ₹0.25 per message depending on volume"
              ],
              "link": {
                "label": "Go to Communication Settings",
                "href": "/settings/communications"
              },
              "externalLinks": [
                {
                  "label": "Create MSG91 Account",
                  "url": "https://msg91.com/signup"
                }
              ]
            },
            {
              "title": "Set Up SMS Gateway (Fast2SMS)",
              "description": "Fast2SMS is a budget-friendly option for SMS notifications.",
              "steps": [
                "Create an account at fast2sms.com",
                "Go to Dashboard → Dev API — copy your API Key",
                "In DentalERP, go to Settings → Communication Settings",
                "Toggle \"Enable SMS\" ON",
                "Select \"Fast2SMS\" as the Gateway",
                "Paste your API Key",
                "Enter a Sender ID (must be approved by Fast2SMS)",
                "Click \"Save Settings\"",
                "Send a test SMS to verify it works"
              ],
              "tips": [
                "Fast2SMS offers prepaid credits — buy only what you need",
                "Approval for Sender ID may take 1-2 days"
              ],
              "link": {
                "label": "Go to Communication Settings",
                "href": "/settings/communications"
              },
              "externalLinks": [
                {
                  "label": "Create Fast2SMS Account",
                  "url": "https://www.fast2sms.com"
                }
              ]
            }
          ]
        },
        "email": {
          "title": "Email Setup (SMTP)",
          "description": "Send emails for appointment confirmations, invoices, and reports",
          "estimatedTime": "10 min",
          "guides": [
            {
              "title": "Set Up Email with Your Domain",
              "description": "If you have a business email (e.g., info@yourclinic.com) through Hostinger, GoDaddy, etc.",
              "steps": [
                "In DentalERP, go to Settings → Communication Settings → Email tab",
                "Toggle \"Enable Email\" ON",
                "Enter the SMTP settings from your email provider:",
                "  — SMTP Host: e.g., smtp.hostinger.com (check your email provider's documentation)",
                "  — SMTP Port: 587 (most common) or 465 (for SSL)",
                "  — SMTP Username: your full email address (e.g., info@yourclinic.com)",
                "  — SMTP Password: your email account password",
                "Toggle \"Use SSL\" ON if you chose Port 465, leave OFF for Port 587",
                "Set \"From Name\" to your clinic name (e.g., \"Dr. Smith's Dental Clinic\")",
                "Set \"From Email\" to your email address",
                "Click \"Save Settings\"",
                "Enter a test email address and click \"Send Test Email\" to verify"
              ],
              "tips": [
                "Common SMTP servers: Hostinger (smtp.hostinger.com:587), Gmail (smtp.gmail.com:587), Outlook (smtp.office365.com:587)",
                "If using Gmail, you need to create an \"App Password\" (not your regular password)",
                "Port 587 uses STARTTLS, Port 465 uses SSL — both are secure",
                "If the test email fails, double-check your password and port number"
              ],
              "link": {
                "label": "Go to Communication Settings",
                "href": "/settings/communications"
              }
            },
            {
              "title": "Set Up Email with Gmail",
              "description": "Use a Gmail account for sending emails. Requires creating an App Password.",
              "steps": [
                "Go to your Google Account settings (myaccount.google.com)",
                "Go to Security → 2-Step Verification and enable it (required for App Passwords)",
                "Go to Security → 2-Step Verification → App Passwords",
                "Select \"Mail\" as the app and \"Other\" as the device, name it \"DentalERP\"",
                "Click \"Generate\" — Google will show a 16-character password. Copy it immediately!",
                "In DentalERP Communication Settings:",
                "  — SMTP Host: smtp.gmail.com",
                "  — SMTP Port: 587",
                "  — Username: your full Gmail address",
                "  — Password: the 16-character App Password (NOT your Gmail password)",
                "  — SSL: OFF (Port 587 uses STARTTLS)",
                "Click \"Save Settings\" and send a test email"
              ],
              "tips": [
                "Gmail allows ~500 emails/day for personal accounts, 2000/day for Workspace",
                "Never use your actual Gmail password — always use an App Password",
                "Gmail shows \"Sent on behalf of\" in some email clients",
                "For better branding, consider using a custom domain email instead"
              ],
              "link": {
                "label": "Go to Communication Settings",
                "href": "/settings/communications"
              },
              "externalLinks": [
                {
                  "label": "Google App Passwords",
                  "url": "https://myaccount.google.com/apppasswords"
                }
              ]
            }
          ]
        },
        "google-calendar": {
          "title": "Google Calendar Sync",
          "description": "Sync appointments with Google Calendar for easy access on your phone",
          "estimatedTime": "5 min",
          "guides": [
            {
              "title": "Connect Google Calendar",
              "description": "Sync your DentalERP appointments to Google Calendar automatically.",
              "steps": [
                "Go to Settings → Integrations",
                "In the \"Google Calendar\" section, click \"Connect Google Calendar\"",
                "A Google sign-in popup will appear — sign in with the Google account you want to sync to",
                "Grant DentalERP permission to manage your calendar events",
                "Once connected, you'll see a \"Connected\" badge with your Calendar ID",
                "Toggle \"Sync Status\" to Enabled",
                "Click \"Sync Now\" to sync existing appointments"
              ],
              "tips": [
                "All new appointments will automatically appear in your Google Calendar",
                "Google Calendar events include patient name, procedure, and appointment time",
                "You can view appointments on your phone via the Google Calendar app",
                "To disconnect, click \"Disconnect\" — this removes sync but doesn't delete calendar events"
              ],
              "link": {
                "label": "Go to Integrations",
                "href": "/settings/integrations"
              }
            }
          ]
        },
        "google-reviews": {
          "title": "Google Reviews",
          "description": "Automatically request Google reviews from happy patients",
          "estimatedTime": "5 min",
          "guides": [
            {
              "title": "Set Up Automatic Google Review Requests",
              "description": "Automatically ask patients who rated you 4 or 5 stars to leave a Google review.",
              "steps": [
                "First, find your Google Review URL:",
                "  1. Search for your clinic on Google Maps",
                "  2. Click on your clinic listing",
                "  3. Click \"Write a Review\"",
                "  4. Copy the URL from your browser's address bar",
                "In DentalERP, go to Settings → Communication Settings → \"Google Reviews\" tab",
                "Paste your Google Review URL in the field",
                "Toggle \"Auto-Request Reviews\" ON",
                "Set \"Review Request Delay\" (e.g., 2 hours — sends the request 2 hours after the appointment)",
                "Click \"Save Settings\""
              ],
              "tips": [
                "Review requests are only sent to patients who rated your clinic 4/5 or higher in feedback surveys",
                "Each patient receives at most one review request per 30 days",
                "Patients who opted out of communications will not receive requests",
                "More Google reviews improve your clinic's visibility in Google searches"
              ],
              "link": {
                "label": "Go to Communication Settings",
                "href": "/settings/communications"
              }
            }
          ]
        },
        "patient-portal": {
          "title": "Patient Portal",
          "description": "Let patients book appointments and view records online",
          "estimatedTime": "2 min",
          "guides": [
            {
              "title": "Enable the Patient Portal",
              "description": "Allow patients to log in, book appointments, view treatment history, and make payments online.",
              "steps": [
                "Go to Settings → Clinic Information",
                "Scroll down to the \"Patient Portal\" section",
                "Toggle \"Enable Patient Portal\" ON",
                "A portal URL will be generated automatically (e.g., yourclinic.dentalerp.com/portal)",
                "Copy the portal URL and share it with your patients",
                "Click \"Save Changes\""
              ],
              "tips": [
                "Patients log in using their phone number + OTP (no password needed)",
                "Share the portal link on your website, WhatsApp, or printed cards",
                "Patients can book appointments, view invoices, and see treatment history",
                "You can disable the portal at any time from the same toggle"
              ],
              "link": {
                "label": "Go to Clinic Settings",
                "href": "/settings/clinic"
              }
            }
          ]
        },
        "ai": {
          "title": "AI Assistant Setup",
          "description": "Enable AI-powered features like chat, scheduling suggestions, and billing assistance",
          "estimatedTime": "10 min",
          "guides": [
            {
              "title": "Get an OpenRouter API Key",
              "description": "DentalERP uses OpenRouter by default to power its AI features (Anthropic and Amazon Bedrock are also supported via the AI_PROVIDER setting). For the default, you'll need an OpenRouter API key.",
              "steps": [
                "Go to openrouter.ai and create a free account",
                "Click on your profile icon → \"Keys\" (or go to openrouter.ai/keys)",
                "Click \"Create Key\" and give it a name like \"DentalERP\"",
                "Copy the API key (starts with \"sk-or-\")",
                "Add this key to your DentalERP environment configuration:",
                "  — In your server's .env file, add: OPENROUTER_API_KEY=sk-or-your-key-here",
                "  — Restart the application after adding the key",
                "In DentalERP, go to Settings → AI Features and toggle \"Enable AI\" ON"
              ],
              "tips": [
                "OpenRouter provides access to multiple AI models at competitive prices",
                "DentalERP uses cost-effective models — typical monthly cost is ₹100-500 for a small clinic",
                "You can set a monthly budget limit in AI Settings to control spending",
                "Start with \"Economy\" model and upgrade to \"Quality\" if needed"
              ],
              "link": {
                "label": "Go to AI Settings",
                "href": "/settings/ai"
              },
              "externalLinks": [
                {
                  "label": "Create OpenRouter Account",
                  "url": "https://openrouter.ai"
                }
              ]
            },
            {
              "title": "Configure AI Features",
              "description": "Choose which AI features to enable and set spending limits.",
              "steps": [
                "Go to Settings → AI Features",
                "Toggle the master \"Enable AI\" switch ON",
                "Enable/disable individual features:",
                "  — AI Chat Widget: Floating assistant on every page",
                "  — Command Bar (Ctrl+K): Quick natural-language commands",
                "  — Auto Reminders: AI-triggered appointment reminders",
                "  — Morning Briefing: Daily summary for clinic admins",
                "  — Patient Risk Scoring: Automatic risk assessment",
                "Set your Model Preference: Economy (cheapest), Balanced, or Quality",
                "Set your Monthly AI Budget limit (e.g., ₹500)",
                "Click \"Save Settings\""
              ],
              "tips": [
                "Start with Economy model — it handles most tasks well",
                "The chat widget can answer questions about patients, appointments, and billing",
                "Use Ctrl+K command bar for quick actions like \"schedule appointment for Rahul tomorrow\""
              ],
              "link": {
                "label": "Go to AI Settings",
                "href": "/settings/ai"
              }
            }
          ]
        },
        "devices": {
          "title": "IoT Devices",
          "description": "Connect dental chairs, sensors, and other IoT devices",
          "estimatedTime": "10 min per device",
          "guides": [
            {
              "title": "Register a New Device",
              "description": "Add IoT-enabled dental equipment like chairs, sensors, or monitors to the system.",
              "steps": [
                "Go to Devices from the sidebar (under Operations)",
                "Click \"+ Register Device\"",
                "Enter the Device Name (e.g., \"Chair 1 — Room 2\")",
                "Select the Device Type (e.g., Dental Chair, Sensor, Monitor)",
                "Enter the Device Serial Number (found on the device or its documentation)",
                "Enter the Device API Key or Connection Token (provided by the device manufacturer)",
                "Click \"Register\"",
                "The device will appear in the dashboard with a \"Pending\" status until it sends its first data"
              ],
              "tips": [
                "Each device needs an API key to send data to DentalERP",
                "Contact your device manufacturer for integration documentation",
                "Device data is stored securely and can be viewed in real-time from the dashboard",
                "You can deactivate a device without deleting its historical data"
              ],
              "link": {
                "label": "Go to Devices",
                "href": "/devices"
              }
            }
          ]
        },
        "video": {
          "title": "Video Consultations (Tele-Dentistry)",
          "description": "Enable online video appointments with patients",
          "estimatedTime": "2 min",
          "guides": [
            {
              "title": "Enable Video Consultations",
              "description": "Allow patients to have video appointments with doctors from home.",
              "steps": [
                "Video consultations work out of the box with no external setup needed",
                "Go to Appointments and create a new appointment",
                "Set the appointment Type to \"VIDEO\" or \"TELEDENTISTRY\"",
                "A unique video link will be generated automatically",
                "The patient receives the video link via SMS/Email (if configured)",
                "At the appointment time, both doctor and patient click the link to join",
                "Go to Video Consults in the sidebar to manage all video appointments"
              ],
              "tips": [
                "Video calls use peer-to-peer technology (WebRTC) — no additional software needed",
                "Both doctor and patient need a device with a camera and microphone",
                "A stable internet connection (at least 2 Mbps) is recommended",
                "Doctors can take notes during the video call just like in-person appointments"
              ],
              "link": {
                "label": "Go to Video Consults",
                "href": "/video"
              }
            }
          ]
        },
        "security": {
          "title": "Security Settings",
          "description": "Configure password policies, session timeouts, and two-factor authentication",
          "estimatedTime": "5 min",
          "guides": [
            {
              "title": "Configure Security Policies",
              "description": "Set password strength rules, auto-logout timers, and enable 2FA for extra security.",
              "steps": [
                "Go to Settings → Security Settings",
                "Set \"Minimum Password Length\" (recommended: 8 or more characters)",
                "Enable password complexity requirements (uppercase, lowercase, numbers, special characters)",
                "Set \"Session Timeout\" — users are auto-logged out after this many minutes of inactivity (recommended: 30-60 min)",
                "Set \"Maximum Login Attempts\" (recommended: 5) — locks account after too many failed attempts",
                "Set \"Lockout Duration\" (recommended: 30 minutes)",
                "Toggle \"Require Two-Factor Authentication\" ON for extra security (recommended for admin accounts)",
                "Click \"Save Settings\""
              ],
              "tips": [
                "Security changes take effect immediately for all users",
                "If you enable stricter password requirements, existing users will be asked to update their passwords",
                "Two-factor authentication (2FA) adds an extra step using a phone app like Google Authenticator",
                "Set IP restrictions only if your clinic has a fixed IP address — otherwise you might lock yourself out"
              ],
              "link": {
                "label": "Go to Security Settings",
                "href": "/settings/security"
              }
            }
          ]
        },
        "data-import": {
          "title": "Import Data from Old System",
          "description": "Migrate patient records, appointments, and billing data from your previous software",
          "estimatedTime": "20-60 min",
          "guides": [
            {
              "title": "Import Data from CSV/Excel",
              "description": "Upload your old data files and let AI help map columns to the right fields.",
              "steps": [
                "Export your data from your old software as CSV or Excel (.xlsx) files",
                "Go to Settings → Data Import",
                "Step 1: Select what you're importing (Patients, Appointments, Treatments, etc.)",
                "Upload your CSV/Excel file (max 20MB)",
                "Step 2: AI will automatically suggest column mappings (e.g., \"Full Name\" → First Name + Last Name)",
                "Review the mappings — adjust any that don't look right using the dropdown menus",
                "Step 3: Preview the transformed data — click any cell to edit if needed",
                "Step 4: Validate — the system checks for errors (missing required fields, duplicate records, etc.)",
                "Fix any errors by going back, or check \"Skip Error Rows\" to import only valid data",
                "Step 5: Confirm — review the summary and click \"Confirm Import\"",
                "Wait for import to complete — you'll see a success count and any error details"
              ],
              "tips": [
                "Always back up your data before importing",
                "Start with a small file (10-20 rows) to test the process before importing everything",
                "The system supports: Patients, Staff, Appointments, Treatments, Invoices, Payments, and Inventory",
                "Phone numbers should be 10-digit Indian mobile numbers",
                "Date formats accepted: DD/MM/YYYY (preferred) and MM/DD/YYYY",
                "If importing staff, temporary passwords will be created — share them with each staff member"
              ],
              "link": {
                "label": "Go to Data Import",
                "href": "/settings/import"
              }
            }
          ]
        }
      }
    }
  },
  "staff": {
    "role": {
      "ADMIN": "Admin",
      "DOCTOR": "Doctor",
      "RECEPTIONIST": "Receptionist",
      "LAB_TECH": "Lab Tech",
      "ACCOUNTANT": "Accountant"
    },
    "attendanceStatus": {
      "PRESENT": "Present",
      "ABSENT": "Absent",
      "LATE": "Late",
      "HALF_DAY": "Half Day",
      "ON_LEAVE": "On Leave"
    },
    "attendance": {
      "title": "Attendance",
      "subtitle": "Track and manage staff attendance",
      "totalStaff": "Total Staff",
      "present": "Present",
      "absent": "Absent",
      "late": "Late",
      "onLeave": "On Leave",
      "notMarked": "Not Marked",
      "todayAttendance": "Today's Attendance",
      "todayAttendanceDesc": "Click on a staff member to mark or update their attendance",
      "colEmployee": "Employee",
      "colRole": "Role",
      "colStatus": "Status",
      "colClockIn": "Clock In",
      "colClockOut": "Clock Out",
      "colActions": "Actions",
      "noStaff": "No staff members found",
      "update": "Update",
      "mark": "Mark",
      "markAttendance": "Mark Attendance",
      "updateAttendance": "Update Attendance",
      "status": "Status *",
      "selectStatus": "Select status",
      "clockIn": "Clock In",
      "clockOut": "Clock Out",
      "notes": "Notes",
      "notesPlaceholder": "Optional notes",
      "cancel": "Cancel",
      "save": "Save",
      "error": "Error",
      "success": "Success",
      "validationError": "Validation Error",
      "selectStatusError": "Please select a status",
      "fetchFailed": "Failed to fetch attendance data",
      "markSuccess": "Attendance marked successfully",
      "markFailed": "Failed to mark attendance"
    },
    "leaveType": {
      "CASUAL": "Casual Leave",
      "SICK": "Sick Leave",
      "EARNED": "Earned Leave",
      "UNPAID": "Unpaid Leave",
      "MATERNITY": "Maternity Leave",
      "PATERNITY": "Paternity Leave"
    },
    "leaveStatus": {
      "PENDING": "Pending",
      "APPROVED": "Approved",
      "REJECTED": "Rejected",
      "CANCELLED": "Cancelled"
    },
    "leaves": {
      "title": "Leave Management",
      "subtitle": "Manage staff leave requests",
      "newLeaveRequest": "New Leave Request",
      "statusPlaceholder": "Status",
      "allStatus": "All Status",
      "leaveTypePlaceholder": "Leave Type",
      "allTypes": "All Types",
      "colEmployee": "Employee",
      "colLeaveType": "Leave Type",
      "colDuration": "Duration",
      "colDays": "Days",
      "colReason": "Reason",
      "colStatus": "Status",
      "colActions": "Actions",
      "noLeaves": "No leave requests found",
      "durationRange": "{start} - {end}",
      "daysCount": "{days} days",
      "showing": "Showing {from} to {to} of {total} requests",
      "previous": "Previous",
      "next": "Next",
      "pageOf": "Page {page} of {total}",
      "newDialogDesc": "Create a leave request for a staff member",
      "staffMember": "Staff Member *",
      "selectStaff": "Select staff member",
      "staffOption": "{name} ({employeeId})",
      "leaveTypeLabel": "Leave Type *",
      "selectLeaveType": "Select leave type",
      "startDate": "Start Date *",
      "endDate": "End Date *",
      "reason": "Reason",
      "reasonPlaceholder": "Optional reason for leave",
      "cancel": "Cancel",
      "createRequest": "Create Request",
      "error": "Error",
      "success": "Success",
      "validationError": "Validation Error",
      "requiredFields": "Please fill in all required fields",
      "fetchFailed": "Failed to fetch leave requests",
      "createSuccess": "Leave request created successfully",
      "createFailed": "Failed to create leave request",
      "statusUpdated": "Leave request {status}",
      "updateFailed": "Failed to update leave status"
    },
    "detail": {
      "roles": {
        "ADMIN": "Administrator",
        "DOCTOR": "Doctor",
        "RECEPTIONIST": "Receptionist",
        "LAB_TECH": "Lab Technician",
        "ACCOUNTANT": "Accountant"
      },
      "gender": {
        "MALE": "Male",
        "FEMALE": "Female",
        "OTHER": "Other"
      },
      "days": {
        "0": "Sunday",
        "1": "Monday",
        "2": "Tuesday",
        "3": "Wednesday",
        "4": "Thursday",
        "5": "Friday",
        "6": "Saturday"
      },
      "notFoundToast": "Not Found",
      "staffNotFound": "Staff member not found",
      "error": "Error",
      "fetchFailed": "Failed to fetch staff details",
      "backToStaff": "Back to Staff List",
      "active": "Active",
      "inactive": "Inactive",
      "editProfile": "Edit Profile",
      "tabProfile": "Profile",
      "tabSchedule": "Work Schedule",
      "tabDocuments": "Documents",
      "contactInfo": "Contact Information",
      "primaryPhone": "Primary Phone",
      "alternatePhone": "Alternate Phone",
      "email": "Email",
      "address": "Address",
      "personalDetails": "Personal Details",
      "dateOfBirth": "Date of Birth",
      "genderLabel": "Gender",
      "aadharNumber": "Aadhar Number",
      "panNumber": "PAN Number",
      "emergencyContact": "Emergency Contact",
      "emergencyValue": "{name} ({phone})",
      "noPhone": "No phone",
      "professionalDetails": "Professional Details",
      "qualification": "Qualification",
      "specialization": "Specialization",
      "licenseNumber": "License Number",
      "joiningDate": "Joining Date",
      "appointments": "Appointments",
      "treatments": "Treatments",
      "prescriptions": "Prescriptions",
      "financialDetails": "Financial Details",
      "monthlySalary": "Monthly Salary",
      "bankAccountNo": "Bank Account No.",
      "ifscCode": "IFSC Code",
      "workSchedule": "Work Schedule",
      "scheduleDesc": "Weekly work schedule for {name}",
      "noSchedule": "No work schedule configured",
      "configureSchedule": "Configure Schedule",
      "scheduleRange": "{start} - {end}",
      "off": "Off",
      "documents": "Documents",
      "documentsDesc": "Staff documents and certifications",
      "documentsComingSoon": "Document management coming soon",
      "docEmpty": "No documents uploaded yet",
      "upload": "Upload",
      "uploading": "Uploading…",
      "docTypeLabel": "Type",
      "docTypes": {
        "contract": "Contract",
        "idProof": "ID Proof",
        "certificate": "Certificate",
        "licence": "Licence",
        "other": "Other"
      },
      "colName": "Name",
      "colType": "Type",
      "colSize": "Size",
      "colUploaded": "Uploaded",
      "colActions": "Actions",
      "download": "Download",
      "deleteDoc": "Delete",
      "deleteConfirm": "Delete this document?",
      "descriptionPlaceholder": "Description (optional)",
      "uploadSuccess": "Document uploaded",
      "uploadError": "Failed to upload document",
      "deleteSuccess": "Document deleted",
      "deleteError": "Failed to delete document"
    },
    "edit": {
      "title": "Edit Staff",
      "subtitle": "Update staff member details",
      "basicInfo": "Basic Information",
      "basicInfoDesc": "Name and role details",
      "newPassword": "New Password (leave blank to keep current)",
      "newPasswordPlaceholder": "Enter new password",
      "accountStatus": "Account Status",
      "activeCanLogin": "Active - Can log in",
      "inactiveCannotLogin": "Inactive - Cannot log in",
      "contactInfo": "Contact Information",
      "contactInfoDesc": "Phone and address details",
      "personalDetails": "Personal Details",
      "personalDetailsDesc": "Personal and identification information",
      "emergencyContact": "Emergency Contact",
      "emergencyPhone": "Emergency Phone",
      "professionalDetails": "Professional Details",
      "professionalDetailsDesc": "Qualifications and employment information",
      "workSchedule": "Work Schedule",
      "workScheduleDesc": "Configure weekly work hours",
      "start": "Start",
      "end": "End",
      "cancel": "Cancel",
      "saveChanges": "Save Changes",
      "notFoundToast": "Not Found",
      "staffNotFound": "Staff member not found",
      "error": "Error",
      "success": "Success",
      "fetchFailed": "Failed to fetch staff details",
      "validationError": "Validation Error",
      "requiredFields": "Please fill in all required fields",
      "updateSuccess": "Staff member updated successfully",
      "updateFailed": "Failed to update staff member"
    },
    "performance": {
      "notFoundToast": "Not Found",
      "staffNotFound": "Staff member not found",
      "error": "Error",
      "fetchFailed": "Failed to fetch performance data",
      "notAvailable": "Performance data not available",
      "backToStaff": "Back to Staff List",
      "title": "Performance Dashboard",
      "subtitle": "{name} ({employeeId})",
      "subtitleSpec": "{name} ({employeeId}) - {spec}",
      "to": "to",
      "totalRevenue": "Total Revenue",
      "avgPerTreatment": "Avg: {amount} / treatment",
      "patientsTreated": "Patients Treated",
      "uniquePatients": "Unique patients this period",
      "treatmentsDone": "Treatments Done",
      "inProgressCount": "{count} in progress",
      "prescriptions": "Prescriptions",
      "writtenThisPeriod": "Written this period",
      "appointments": "Appointments",
      "appointmentsDesc": "Appointment statistics for the selected period",
      "completionRate": "Completion Rate",
      "total": "Total",
      "completed": "Completed",
      "cancelled": "Cancelled",
      "noShow": "No Show",
      "avgWaitTime": "Average wait time: {minutes} minutes",
      "attendance": "Attendance",
      "attendanceDesc": "Attendance statistics for the selected period",
      "attendanceRate": "Attendance Rate",
      "present": "Present",
      "absent": "Absent",
      "late": "Late",
      "halfDay": "Half Day",
      "onLeave": "On Leave",
      "procedureBreakdown": "Procedure Breakdown",
      "procedureBreakdownDesc": "Revenue and count by procedure category",
      "proceduresCount": "{count} procedures"
    },
    "list": {
      "title": "Staff Management",
      "subtitle": "Manage staff members, roles, and permissions",
      "attendance": "Attendance",
      "leaves": "Leaves",
      "addStaff": "Add Staff",
      "searchPlaceholder": "Search by name, employee ID, phone, or email…",
      "rolePlaceholder": "Role",
      "allRoles": "All Roles",
      "statusPlaceholder": "Status",
      "allStatus": "All Status",
      "active": "Active",
      "inactive": "Inactive",
      "colEmployeeId": "Employee ID",
      "colName": "Name",
      "colContact": "Contact",
      "colRole": "Role",
      "colSpecialization": "Specialization",
      "colJoined": "Joined",
      "colStatus": "Status",
      "colActions": "Actions",
      "noStaff": "No staff members found",
      "viewDetails": "View Details",
      "edit": "Edit",
      "performance": "Performance",
      "deactivate": "Deactivate",
      "showing": "Showing {from} to {to} of {total} staff members",
      "previous": "Previous",
      "next": "Next",
      "pageOf": "Page {page} of {total}",
      "deactivateTitle": "Deactivate Staff Member",
      "deactivateConfirm": "Are you sure you want to deactivate <strong>{name}</strong>? They will no longer be able to log in to the system.",
      "cancel": "Cancel",
      "error": "Error",
      "success": "Success",
      "fetchFailed": "Failed to fetch staff members",
      "deactivateSuccess": "Staff member deactivated successfully",
      "deactivateFailed": "Failed to deactivate staff member"
    },
    "new": {
      "title": "Add New Staff",
      "subtitle": "Create a new staff member account",
      "accountInfo": "Account Information",
      "accountInfoDesc": "Login credentials and role assignment",
      "firstName": "First Name *",
      "firstNamePlaceholder": "Enter first name",
      "lastName": "Last Name *",
      "lastNamePlaceholder": "Enter last name",
      "email": "Email *",
      "emailPlaceholder": "staff@yourclinic.com",
      "password": "Password *",
      "passwordPlaceholder": "Enter password",
      "role": "Role *",
      "selectRole": "Select role",
      "roleAdmin": "Admin",
      "roleDoctor": "Doctor",
      "roleReceptionist": "Receptionist",
      "roleLabTech": "Lab Technician",
      "roleAccountant": "Accountant",
      "contactInfo": "Contact Information",
      "contactInfoDesc": "Phone and address details",
      "phone": "Phone Number *",
      "phonePlaceholder": "+91 98765 43210",
      "alternatePhone": "Alternate Phone",
      "address": "Address",
      "addressPlaceholder": "Enter full address",
      "city": "City",
      "cityPlaceholder": "Chennai",
      "state": "State",
      "statePlaceholder": "Tamil Nadu",
      "pincode": "Pincode",
      "pincodePlaceholder": "600001",
      "personalDetails": "Personal Details",
      "personalDetailsDesc": "Personal and identification information",
      "dateOfBirth": "Date of Birth",
      "gender": "Gender",
      "selectGender": "Select gender",
      "genderMale": "Male",
      "genderFemale": "Female",
      "genderOther": "Other",
      "aadharNumber": "Aadhar Number",
      "aadharPlaceholder": "1234 5678 9012",
      "panNumber": "PAN Number",
      "panPlaceholder": "ABCDE1234F",
      "professionalDetails": "Professional Details",
      "professionalDetailsDesc": "Qualifications and employment information",
      "qualification": "Qualification",
      "qualificationPlaceholder": "BDS, MDS",
      "specialization": "Specialization",
      "specializationPlaceholder": "Orthodontics, Endodontics",
      "licenseNumber": "License Number",
      "licensePlaceholder": "TN/12345",
      "joiningDate": "Joining Date",
      "financialDetails": "Financial Details",
      "financialDetailsDesc": "Salary and bank account information",
      "monthlySalary": "Monthly Salary ({currency})",
      "salaryPlaceholder": "50000",
      "bankAccountNo": "Bank Account No.",
      "bankAccountPlaceholder": "1234567890",
      "ifscCode": "IFSC Code",
      "ifscPlaceholder": "HDFC0001234",
      "emergencyContact": "Emergency Contact",
      "emergencyContactDesc": "Contact person in case of emergency",
      "contactName": "Contact Name",
      "contactNamePlaceholder": "Full name",
      "contactPhone": "Contact Phone",
      "cancel": "Cancel",
      "createStaff": "Create Staff Member",
      "validationError": "Validation Error",
      "requiredFields": "Please fill in all required fields",
      "passwordLength": "Password must be at least 6 characters",
      "success": "Success",
      "createdDesc": "Staff member {name} created successfully",
      "error": "Error",
      "createFailed": "Failed to create staff member"
    }
  },
  "lab": {
    "status": {
      "CREATED": "Created",
      "SENT_TO_LAB": "Sent to Lab",
      "IN_PROGRESS": "In Progress",
      "QUALITY_CHECK": "Quality Check",
      "READY": "Ready",
      "DELIVERED": "Delivered",
      "FITTED": "Fitted",
      "REMAKE_REQUIRED": "Remake Required",
      "CANCELLED": "Cancelled"
    },
    "priority": {
      "normal": "Normal",
      "urgent": "Urgent",
      "rush": "Rush"
    },
    "workType": {
      "CROWN": "Crown",
      "BRIDGE": "Bridge",
      "DENTURE": "Denture",
      "PARTIAL_DENTURE": "Partial Denture",
      "IMPLANT_CROWN": "Implant Crown",
      "VENEER": "Veneer",
      "INLAY_ONLAY": "Inlay/Onlay",
      "NIGHT_GUARD": "Night Guard",
      "RETAINER": "Retainer",
      "ALIGNER": "Aligner",
      "MODEL": "Model",
      "OTHER": "Other"
    },
    "list": {
      "title": "Lab Work Management",
      "subtitle": "Manage lab orders, vendors, and track work progress",
      "manageVendors": "Manage Vendors",
      "newLabOrder": "New Lab Order",
      "totalOrders": "Total Orders",
      "sentToLab": "Sent to Lab",
      "inProgress": "In Progress",
      "ready": "Ready",
      "delivered": "Delivered",
      "cancelled": "Cancelled",
      "created": "Created",
      "searchPlaceholder": "Search orders, patients…",
      "allStatuses": "All Statuses",
      "allVendors": "All Vendors",
      "allWorkTypes": "All Work Types",
      "allPriorities": "All Priorities",
      "colOrderNo": "Order No.",
      "colPatient": "Patient",
      "colWorkType": "Work Type",
      "colVendor": "Vendor",
      "colOrderDate": "Order Date",
      "colExpected": "Expected",
      "colStatus": "Status",
      "colPriority": "Priority",
      "colCost": "Cost",
      "colActions": "Actions",
      "noOrders": "No lab orders found",
      "noOrdersHint": "Get started by creating your first lab order",
      "createLabOrder": "Create Lab Order",
      "viewDetails": "View Details",
      "editOrder": "Edit Order",
      "showing": "Showing {from} to {to} of {total} orders",
      "previous": "Previous",
      "next": "Next"
    },
    "orderNew": {
      "title": "New Lab Order",
      "subtitle": "Create a new lab work order",
      "patient": "Patient",
      "patientDesc": "Select the patient for this lab order",
      "change": "Change",
      "searchPatients": "Search patients by name, phone, or ID…",
      "noPatients": "No patients found",
      "orderDetails": "Order Details",
      "orderDetailsDesc": "Specify the lab work details",
      "labVendor": "Lab Vendor *",
      "selectVendor": "Select lab vendor",
      "vendorTurnaround": "{name} ({days}d avg)",
      "workType": "Work Type *",
      "selectWorkType": "Select work type",
      "workTypes": {
        "crown": "Crown",
        "bridge": "Bridge",
        "denture": "Denture",
        "partial_denture": "Partial Denture",
        "implant_crown": "Implant Crown",
        "veneer": "Veneer",
        "inlay_onlay": "Inlay/Onlay",
        "night_guard": "Night Guard",
        "retainer": "Retainer",
        "aligner": "Aligner",
        "model": "Model",
        "other": "Other"
      },
      "toothNumbers": "Tooth Numbers",
      "toothPlaceholder": "e.g. 11, 21, 36",
      "shadeGuide": "Shade Guide",
      "shadePlaceholder": "e.g. A2, B1",
      "description": "Description",
      "descriptionPlaceholder": "Describe the lab work required…",
      "scheduleCost": "Schedule & Cost",
      "scheduleCostDesc": "Set dates and estimated cost",
      "orderDate": "Order Date *",
      "expectedDate": "Expected Delivery Date",
      "estimatedCost": "Estimated Cost ({currency}) *",
      "estimatedCostPlaceholder": "Enter estimated cost",
      "additionalNotes": "Additional Notes",
      "notesPlaceholder": "Any special instructions or notes for the lab…",
      "cancel": "Cancel",
      "creating": "Creating…",
      "createLabOrder": "Create Lab Order",
      "error": "Error",
      "selectPatientError": "Please select a patient.",
      "selectVendorError": "Please select a lab vendor.",
      "selectWorkTypeError": "Please select a work type.",
      "orderDateError": "Please enter an order date.",
      "costError": "Please enter estimated cost.",
      "unknownError": "Unknown error",
      "createFailedStatus": "Failed to create lab order ({status})",
      "createFailed": "Failed to create lab order",
      "created": "Lab Order Created",
      "createdDesc": "Order {orderNumber} created successfully."
    },
    "vendorStatus": {
      "active": "Active",
      "inactive": "Inactive",
      "blocked": "Blocked"
    },
    "vendors": {
      "title": "Lab Vendors",
      "subtitle": "Manage external laboratory vendors and their information",
      "backToOrders": "Back to Lab Orders",
      "addVendor": "Add Vendor",
      "totalVendors": "Total Vendors",
      "activeVendors": "Active Vendors",
      "avgRating": "Avg. Rating",
      "searchPlaceholder": "Search vendors…",
      "allStatuses": "All Statuses",
      "colVendorCode": "Vendor Code",
      "colName": "Name",
      "colContact": "Contact",
      "colSpecializations": "Specializations",
      "colTurnaround": "Turnaround",
      "colRating": "Rating",
      "colStatus": "Status",
      "colActions": "Actions",
      "noVendors": "No vendors found",
      "noVendorsHint": "Get started by adding your first lab vendor",
      "turnaroundDays": "{days} days",
      "edit": "Edit",
      "delete": "Delete",
      "showing": "Showing {from} to {to} of {total} vendors",
      "previous": "Previous",
      "next": "Next",
      "editVendor": "Edit Lab Vendor",
      "addVendorTitle": "Add Lab Vendor",
      "dialogDesc": "Enter the vendor information below",
      "vendorCode": "Vendor Code *",
      "vendorName": "Vendor Name *",
      "contactPerson": "Contact Person",
      "phone": "Phone *",
      "email": "Email",
      "alternatePhone": "Alternate Phone",
      "address": "Address",
      "city": "City",
      "state": "State",
      "pincode": "Pincode",
      "specializations": "Specializations",
      "specializationsPlaceholder": "crown, bridge, denture, etc. (comma-separated)",
      "avgTurnaround": "Avg. Turnaround (days)",
      "qualityRating": "Quality Rating",
      "status": "Status",
      "notes": "Notes",
      "cancel": "Cancel",
      "saving": "Saving…",
      "update": "Update",
      "create": "Create",
      "error": "Error",
      "success": "Success",
      "fetchFailed": "Failed to fetch lab vendors",
      "saveFailed": "Failed to save vendor",
      "savedSuccess": "Lab vendor {action} successfully",
      "createdWord": "created",
      "updatedWord": "updated",
      "deleteTitle": "Delete Vendor",
      "deleteConfirm": "Are you sure you want to delete this vendor?",
      "deleteFailed": "Failed to delete vendor",
      "deletedSuccess": "Lab vendor deleted successfully"
    }
  },
  "inventory": {
    "stockStatus": {
      "out_of_stock": "Out of Stock",
      "low_stock": "Low Stock",
      "reorder": "Reorder",
      "sufficient": "Sufficient"
    },
    "itemType": {
      "DENTAL_MATERIAL": "Dental Material",
      "INSTRUMENT": "Instrument",
      "CONSUMABLE": "Consumable",
      "MEDICINE": "Medicine",
      "OFFICE_SUPPLY": "Office Supply",
      "EQUIPMENT": "Equipment"
    },
    "trend": {
      "INCREASING": "INCREASING",
      "DECREASING": "DECREASING",
      "STABLE": "STABLE"
    },
    "urgency": {
      "CRITICAL": "CRITICAL",
      "SOON": "SOON",
      "NORMAL": "NORMAL",
      "OK": "OK",
      "LOW": "LOW"
    },
    "list": {
      "title": "Inventory",
      "subtitle": "Manage inventory items and stock levels",
      "suppliers": "Suppliers",
      "transactions": "Transactions",
      "reports": "Reports",
      "aiForecast": "AI Forecast",
      "newItem": "New Item",
      "critical": "Critical (stockout ≤7d)",
      "needReorder": "Need Reorder",
      "excessStock": "Excess Stock",
      "reorderValue": "Reorder Value",
      "demandForecast": "AI Demand Forecast",
      "demandForecastDesc": "Projected usage and reorder suggestions for next 30/60/90 days",
      "hide": "Hide",
      "fcItem": "Item",
      "fcCurrentStock": "Current Stock",
      "fcDailyUsage": "Daily Usage",
      "fcTrend": "Trend",
      "fcProjection": "30d / 60d / 90d",
      "fcStockoutIn": "Stockout In",
      "fcSuggestedOrder": "Suggested Order",
      "fcUrgency": "Urgency",
      "stockoutDays": "{days} days",
      "searchPlaceholder": "Search by name, item code, or description…",
      "categoryPlaceholder": "Category",
      "allCategories": "All Categories",
      "categoryOption": "{name} ({count})",
      "typePlaceholder": "Type",
      "allTypes": "All Types",
      "statusPlaceholder": "Status",
      "allStatus": "All Status",
      "active": "Active",
      "inactive": "Inactive",
      "lowStockOnly": "Show only low stock items",
      "colItemCode": "Item Code",
      "colName": "Name",
      "colCategory": "Category",
      "colType": "Type",
      "colStock": "Stock",
      "colUnitPrice": "Unit Price",
      "colStockStatus": "Stock Status",
      "colActions": "Actions",
      "noItems": "No inventory items found",
      "addItem": "Add Item",
      "uncategorized": "Uncategorized",
      "minStock": "Min: {count}",
      "selling": "Selling: {price}",
      "viewDetails": "View Details",
      "edit": "Edit",
      "stockHistory": "Stock History",
      "showing": "Showing {from} to {to} of {total} items",
      "previous": "Previous",
      "next": "Next",
      "pageOf": "Page {page} of {total}"
    },
    "new": {
      "title": "Add New Inventory Item",
      "backToInventory": "Back to Inventory",
      "itemCode": "Item Code",
      "itemCodePlaceholder": "e.g., DM-001",
      "itemName": "Item Name",
      "itemNamePlaceholder": "e.g., Composite Resin",
      "category": "Category",
      "selectCategory": "Select Category",
      "itemType": "Item Type",
      "unit": "Unit of Measurement",
      "unitPlaceholder": "e.g., pieces, boxes, bottles, kg",
      "currentStock": "Current Stock",
      "minimumStock": "Minimum Stock",
      "reorderPoint": "Reorder Point",
      "maximumStock": "Maximum Stock",
      "unitPrice": "Unit Price ({currency})",
      "sellingPrice": "Selling Price ({currency})",
      "hsnCode": "HSN Code",
      "taxPercentage": "Tax Percentage (%)",
      "preferredSupplier": "Preferred Supplier",
      "selectSupplier": "Select Supplier",
      "storageLocation": "Storage Location",
      "storagePlaceholder": "e.g., Shelf A1",
      "description": "Description",
      "expiryTracking": "Requires Expiry Tracking",
      "batchTracking": "Requires Batch Tracking",
      "active": "Active",
      "notes": "Notes",
      "cancel": "Cancel",
      "creating": "Creating…",
      "createItem": "Create Item",
      "createSuccess": "Inventory item created successfully!",
      "createFailed": "Failed to create inventory item"
    },
    "supplierStatus": {
      "ACTIVE": "Active",
      "INACTIVE": "Inactive",
      "BLOCKED": "Blocked"
    },
    "suppliers": {
      "title": "Supplier Management",
      "backToInventory": "Back to Inventory",
      "addSupplier": "Add Supplier",
      "searchPlaceholder": "Search by name, code, contact person…",
      "allStatus": "All Status",
      "loading": "Loading…",
      "noSuppliers": "No suppliers found",
      "colCode": "Code",
      "colName": "Name",
      "colContactPerson": "Contact Person",
      "colPhone": "Phone",
      "colEmail": "Email",
      "colStatus": "Status",
      "colItems": "Items",
      "colTotalBusiness": "Total Business",
      "colActions": "Actions",
      "view": "View",
      "edit": "Edit",
      "showingPage": "Showing page {page} of {pages} ({total} total suppliers)",
      "previous": "Previous",
      "next": "Next",
      "addModalTitle": "Add New Supplier",
      "addModalDesc": "Enter the supplier's details below.",
      "close": "Close",
      "form": {
        "code": "Code",
        "name": "Name",
        "contactPerson": "Contact Person",
        "phone": "Phone",
        "email": "Email",
        "alternatePhone": "Alternate Phone",
        "address": "Address",
        "city": "City",
        "state": "State",
        "pincode": "Pincode",
        "gstNumber": "GST Number",
        "panNumber": "PAN Number",
        "paymentTerms": "Payment Terms",
        "creditLimit": "Credit Limit",
        "notes": "Notes",
        "save": "Save Supplier",
        "saving": "Saving…",
        "cancel": "Cancel",
        "requiredError": "Code, name and phone are required",
        "createSuccess": "Supplier created",
        "createError": "Failed to create supplier",
        "codeExists": "Supplier code already exists"
      }
    },
    "txnType": {
      "purchase": "Purchase",
      "sale": "Sale",
      "adjustment": "Adjustment",
      "return": "Return",
      "usage": "Usage",
      "wastage": "Wastage",
      "previousStock": "Previous Stock"
    },
    "transactions": {
      "title": "Stock Transactions",
      "backToInventory": "Back to Inventory",
      "newTransaction": "New Transaction",
      "allTypes": "All Types",
      "startDate": "Start Date",
      "endDate": "End Date",
      "loading": "Loading…",
      "noTransactions": "No transactions found",
      "colDate": "Date",
      "colType": "Type",
      "colItem": "Item",
      "colQuantity": "Quantity",
      "colUnitPrice": "Unit Price",
      "colTotalAmount": "Total Amount",
      "colSupplier": "Supplier",
      "colPerformedBy": "Performed By",
      "showingPage": "Showing page {page} of {pages} ({total} total transactions)",
      "previous": "Previous",
      "next": "Next",
      "modalTitle": "New Stock Transaction",
      "transactionType": "Transaction Type",
      "item": "Item",
      "selectItem": "Select Item",
      "itemOption": "{name} ({sku})",
      "quantity": "Quantity",
      "unitPrice": "Unit Price ({currency})",
      "transactionDate": "Transaction Date",
      "supplier": "Supplier",
      "selectSupplier": "Select Supplier",
      "notes": "Notes",
      "cancel": "Cancel",
      "recordTransaction": "Record Transaction",
      "recordSuccess": "Transaction recorded successfully!",
      "recordFailed": "Failed to record transaction"
    },
    "reportUrgency": {
      "out_of_stock": "Out of Stock",
      "critical": "Critical",
      "reorder": "Reorder",
      "expired": "Expired",
      "warning": "Warning",
      "low": "Low"
    },
    "reports": {
      "title": "Inventory Reports",
      "backToInventory": "Back to Inventory",
      "tabSummary": "Summary",
      "tabLowStock": "Low Stock",
      "tabExpiring": "Expiring Items",
      "tabStockValuation": "Stock Valuation",
      "daysAhead": "Days Ahead",
      "daysOption": "{days} days",
      "loading": "Loading…",
      "totalItems": "Total Items",
      "activeCount": "{count} active",
      "outOfStock": "Out of Stock",
      "itemsNeedRestock": "Items need restock",
      "lowStock": "Low Stock",
      "itemsBelowMin": "Items below minimum",
      "inventoryValue": "Inventory Value",
      "totalStockValueHint": "Total stock value",
      "byCategory": "Inventory by Category",
      "colCategory": "Category",
      "colItemCount": "Item Count",
      "colCategoryValue": "Category Value",
      "uncategorized": "Uncategorized",
      "byType": "Inventory by Type",
      "colType": "Type",
      "colTypeValue": "Type Value",
      "colItemCode": "Item Code",
      "colItemName": "Item Name",
      "colCurrentStock": "Current Stock",
      "colMinimumStock": "Minimum Stock",
      "colUrgency": "Urgency",
      "colSuggestedOrder": "Suggested Order",
      "colSupplier": "Supplier",
      "expiredBatches": "Expired Batches",
      "valueColon": "Value: {value}",
      "expiringSoon": "Expiring Soon",
      "colItem": "Item",
      "colBatchNumber": "Batch Number",
      "colExpiryDate": "Expiry Date",
      "colDaysToExpiry": "Days to Expiry",
      "colQuantity": "Quantity",
      "colValueAtRisk": "Value at Risk",
      "colStatus": "Status",
      "totalStockValueTitle": "Total Stock Value",
      "itemsInStock": "Items in Stock",
      "avgItemValue": "Average Item Value",
      "colStock": "Stock",
      "colUnitPrice": "Unit Price",
      "colStockValue": "Stock Value"
    }
  },
  "nav": {
    "Overview": "Overview",
    "Patient Care": "Patient Care",
    "Finance": "Finance",
    "Engagement": "Engagement",
    "Operations": "Operations",
    "Administration": "Administration",
    "AI Chat": "AI Chat",
    "Dashboard": "Dashboard",
    "Patients": "Patients",
    "Appointments": "Appointments",
    "All Appointments": "All Appointments",
    "Waitlist": "Waitlist",
    "Video Consults": "Video Consults",
    "Treatments": "Treatments",
    "Prescriptions": "Prescriptions",
    "Drug Catalog": "Drug Catalog",
    "Billing": "Billing",
    "Invoices": "Invoices",
    "Payments": "Payments",
    "Payment Plans": "Payment Plans",
    "Insurance Claims": "Insurance Claims",
    "Pre-Authorizations": "Pre-Authorizations",
    "Insurance Providers": "Insurance Providers",
    "Financial Reports": "Financial Reports",
    "CRM": "CRM",
    "Memberships": "Memberships",
    "Loyalty": "Loyalty",
    "Referrals": "Referrals",
    "Segments": "Segments",
    "Inventory": "Inventory",
    "Sterilization": "Sterilization",
    "Instruments": "Instruments",
    "Cycle Logs": "Cycle Logs",
    "Compliance": "Compliance",
    "Devices": "Devices",
    "Lab Orders": "Lab Orders",
    "Communications": "Communications",
    "Send Messages": "Send Messages",
    "Analytics": "Analytics",
    "Automations": "Automations",
    "Feedback": "Feedback",
    "Staff": "Staff",
    "All Staff": "All Staff",
    "Invites": "Invites",
    "Attendance": "Attendance",
    "Leaves": "Leaves",
    "Reports": "Reports",
    "Audit Log": "Audit Log",
    "Settings": "Settings",
    "General": "General",
    "Setup Guide": "Setup Guide",
    "AI Features": "AI Features",
    "Forms": "Forms",
    "Integrations": "Integrations",
    "Pricing Advisor": "Pricing Advisor",
    "Data Import": "Data Import"
  },
  "layout": {
    "collapseSidebar": "Collapse sidebar",
    "expandSidebar": "Expand sidebar",
    "defaultClinic": "Dental Clinic",
    "toggleMenu": "Toggle menu",
    "profile": "Profile",
    "settings": "Settings",
    "logOut": "Log out",
    "theme": {
      "toggle": "Toggle theme",
      "light": "Light",
      "dark": "Dark",
      "system": "System"
    },
    "search": {
      "trigger": "Search patients, appointments...",
      "dialogTitle": "Global Search",
      "placeholder": "Search patients, appointments, invoices, staff, treatments...",
      "typeToSearch": "Type at least 2 characters to search across patients, appointments, invoices, staff, and treatments.",
      "searching": "Searching...",
      "noResults": "No results found for “{query}”",
      "resultSingular": "{count} result",
      "resultPlural": "{count} results",
      "navigate": "navigate",
      "open": "open",
      "close": "close"
    },
    "notifications": {
      "notifications": "Notifications",
      "markAllRead": "Mark all read",
      "loading": "Loading...",
      "empty": "No notifications yet",
      "justNow": "just now",
      "minutesAgo": "{m}m ago",
      "hoursAgo": "{h}h ago",
      "daysAgo": "{d}d ago"
    },
    "shortcuts": {
      "title": "Keyboard Shortcuts",
      "then": "then",
      "section": {
        "navigation": "Navigation",
        "quickActions": "Quick Actions",
        "general": "General"
      },
      "desc": {
        "openSearch": "Open search",
        "showShortcuts": "Show keyboard shortcuts",
        "newPatient": "New patient",
        "newAppointment": "New appointment",
        "newInvoice": "New invoice",
        "closeDialog": "Close dialog / modal",
        "openCommandBar": "Open AI command bar"
      }
    }
  },
  "devices": {
    "title": "Device Management",
    "subtitle": "Monitor and manage connected IoT devices",
    "refresh": "Refresh",
    "registerDevice": "Register Device",
    "registerNewDevice": "Register New Device",
    "deviceNameLabel": "Device Name *",
    "deviceNamePlaceholder": "e.g. Chair Unit 1",
    "deviceTypeLabel": "Device Type *",
    "selectType": "Select type",
    "serialLabel": "Serial Number",
    "optional": "Optional",
    "locationLabel": "Location",
    "locationPlaceholder": "e.g. Operatory 1",
    "ipLabel": "IP Address",
    "ipPlaceholder": "e.g. 192.168.1.100",
    "totalDevices": "Total Devices",
    "online": "Online",
    "offline": "Offline",
    "errors": "Errors",
    "maintenance": "Maintenance",
    "filterByType": "Filter by type",
    "allTypes": "All Types",
    "filterByStatus": "Filter by status",
    "allStatuses": "All Statuses",
    "registeredDevices": "Registered Devices",
    "loadingDevices": "Loading devices...",
    "noDevices": "No devices registered. Click \"Register Device\" to add one.",
    "colName": "Name",
    "colType": "Type",
    "colLocation": "Location",
    "colStatus": "Status",
    "colLastPing": "Last Ping",
    "colLatestData": "Latest Data",
    "colActions": "Actions",
    "serialPrefix": "S/N: {serial}",
    "noData": "No data",
    "removeTitle": "Remove Device",
    "removeDesc": "Remove this device? Data logs will also be deleted.",
    "removeConfirm": "Remove",
    "errorTitle": "Error",
    "fetchFailed": "Failed to fetch devices",
    "nameTypeRequired": "Name and type are required",
    "successTitle": "Success",
    "registered": "Device registered successfully",
    "registerFailed": "Failed to register device",
    "removed": "Device removed",
    "removeFailed": "Failed to remove device",
    "updateFailed": "Failed to update status",
    "never": "Never",
    "justNow": "Just now",
    "minutesAgo": "{m}m ago",
    "hoursAgo": "{h}h ago",
    "apiTitle": "Device Integration API",
    "apiIntro": "Connected devices can push data using these endpoints:",
    "apiRegister": "Register new device",
    "apiPush": "Push sensor readings",
    "apiStatus": "Get device statuses",
    "payloadExample": "Payload example for",
    "type": {
      "DENTAL_CHAIR": "Dental Chair",
      "PULSE_OXIMETER": "Pulse Oximeter",
      "BP_MONITOR": "BP Monitor",
      "AUTOCLAVE": "Autoclave",
      "XRAY": "X-Ray Machine",
      "COMPRESSOR": "Compressor",
      "SENSOR": "Sensor",
      "OTHER": "Other"
    },
    "status": {
      "ONLINE": "Online",
      "OFFLINE": "Offline",
      "ERROR": "Error",
      "MAINTENANCE": "Maintenance"
    }
  },
  "auditLog": {
    "title": "Audit Log",
    "totalEvents": "{count} total events",
    "exportCsv": "Export CSV",
    "searchPlaceholder": "Search logs...",
    "actionPlaceholder": "Action",
    "allActions": "All Actions",
    "entityPlaceholder": "Entity",
    "allEntities": "All Entities",
    "noLogs": "No audit logs found",
    "noLogsDesc": "No activity matches your current filters. Try adjusting your search criteria.",
    "systemUser": "System",
    "previous": "Previous",
    "next": "Next",
    "pageOf": "Page {page} of {totalPages}",
    "errorTitle": "Error",
    "loadFailed": "Failed to load audit logs",
    "expDate": "Date",
    "expUser": "User",
    "expRole": "Role",
    "expAction": "Action",
    "expEntity": "Entity",
    "expEntityId": "Entity ID",
    "expDetails": "Details",
    "expIp": "IP",
    "action": {
      "CREATE": "Create",
      "UPDATE": "Update",
      "DELETE": "Delete",
      "LOGIN": "Login",
      "LOGOUT": "Logout",
      "VIEW": "View"
    },
    "entity": {
      "Patient": "Patient",
      "Appointment": "Appointment",
      "Invoice": "Invoice",
      "User": "User",
      "Treatment": "Treatment"
    }
  },
  "reports": {
    "title": "Reports & Analytics Dashboard",
    "subtitle": "Comprehensive analytics and insights for your dental practice",
    "selectPeriod": "Select period",
    "fromPlaceholder": "From",
    "toPlaceholder": "To",
    "export": "Export",
    "exportPdf": "Export as PDF",
    "exportExcel": "Export as Excel",
    "exportFailed": "Failed to export report",
    "ofTotal": "of total",
    "preset": {
      "today": "Today",
      "yesterday": "Yesterday",
      "this_week": "This Week",
      "last_week": "Last Week",
      "this_month": "This Month",
      "last_month": "Last Month",
      "this_quarter": "This Quarter",
      "last_quarter": "Last Quarter",
      "this_year": "This Year",
      "last_year": "Last Year",
      "custom": "Custom Range"
    },
    "tabPatient": "Patient Analytics",
    "tabClinical": "Clinical Analytics",
    "tabFinancial": "Financial Analytics",
    "tabOperational": "Operational Analytics",
    "newPatients": "New Patients",
    "returningPatients": "Returning Patients",
    "totalPatients": "Total Patients",
    "retentionRate": "Retention Rate",
    "repeatVisits": "Patients with repeat visits",
    "genderDistribution": "Gender Distribution",
    "demographicsBreakdown": "Patient demographics breakdown",
    "male": "Male",
    "female": "Female",
    "other": "Other",
    "acquisitionSources": "Acquisition Sources",
    "howFound": "How patients found your practice",
    "noAcquisition": "No acquisition data available",
    "unknown": "Unknown",
    "sourceCount": "{count} ({percentage})",
    "ageDistribution": "Age Distribution",
    "byAgeGroup": "Patients by age group",
    "patients": "Patients",
    "noAgeData": "No age data available",
    "totalTreatments": "Total Treatments",
    "completed": "Completed",
    "completionRate": "{rate} completion rate",
    "inProgress": "In Progress",
    "avgDuration": "Avg. Duration",
    "minutesPerTreatment": "minutes per treatment",
    "mostCommonProcedures": "Most Common Procedures",
    "topByFrequency": "Top procedures by frequency",
    "noProcedureData": "No procedure data available",
    "successRate": "{rate} success",
    "proceduresByCategory": "Procedures by Category",
    "distributionByType": "Treatment distribution by type",
    "noCategoryData": "No category data available",
    "totalRevenue": "Total Revenue",
    "totalExpenses": "Total Expenses",
    "profitMargin": "Profit Margin",
    "netMargin": "Net margin",
    "avgBillValue": "Avg. Bill Value",
    "collectionEfficiency": "Collection Efficiency",
    "outstanding": "Outstanding: {amount}",
    "paymentMethodBreakdown": "Payment Method Breakdown",
    "revenueByMethod": "Revenue by payment method",
    "noPaymentData": "No payment data available",
    "revenueTrends": "Revenue Trends",
    "monthlyRevExpProfit": "Monthly revenue, expenses, and profit",
    "revenue": "Revenue",
    "expenses": "Expenses",
    "profit": "Profit",
    "noRevenueData": "No revenue data available",
    "totalAppointments": "Total Appointments",
    "utilization": "{rate} utilization",
    "noShowRate": "No-Show Rate",
    "appointmentsCount": "{count} appointments",
    "avgWaitTime": "Avg. Wait Time",
    "minutes": "minutes",
    "staffProductivity": "Staff Productivity",
    "performanceByStaff": "Performance metrics by staff member",
    "appointments": "Appointments",
    "treatments": "Treatments",
    "revenueCol": "Revenue",
    "inventoryTurnover": "Inventory Turnover",
    "turnoverDesc": "How quickly inventory is being used",
    "turnoverRate": "Average turnover rate per period",
    "lowStockAlert": "Low Stock Alert",
    "itemsReorder": "Items requiring reorder",
    "belowReorder": "Items below reorder level"
  },
  "video": {
    "list": {
      "title": "Video Consultations",
      "subtitle": "Manage tele-dentistry video consultations",
      "summaryScheduled": "Scheduled",
      "summaryInProgress": "In Progress",
      "summaryCompleted": "Completed",
      "summaryCancelled": "Cancelled",
      "filterAll": "All",
      "colPatient": "Patient",
      "colDoctor": "Doctor",
      "colAppointment": "Appointment",
      "colScheduled": "Scheduled",
      "colDuration": "Duration",
      "colStatus": "Status",
      "colActions": "Actions",
      "noConsultations": "No video consultations found",
      "doctorPrefix": "Dr. {name}",
      "durationMin": "{min} min",
      "loadFailed": "Failed to load video consultations",
      "pageOf": "Page {page} of {totalPages}",
      "badge": {
        "SCHEDULED": "Scheduled",
        "IN_PROGRESS": "Live",
        "COMPLETED": "Completed",
        "CANCELLED": "Cancelled",
        "NO_SHOW": "No Show"
      }
    },
    "room": {
      "back": "Back",
      "notFound": "Consultation not found",
      "backToAppointments": "Back to Appointments",
      "title": "Video Consultation",
      "rejoinCall": "Rejoin Call",
      "startCall": "Start Call",
      "noShow": "No Show",
      "cancel": "Cancel",
      "patientInfo": "Patient Information",
      "medicalAlerts": "Medical Alerts",
      "allergies": "Allergies: {value}",
      "allergiesYes": "Yes",
      "diabetes": "Diabetes",
      "hypertension": "Hypertension",
      "heartDisease": "Heart Disease",
      "viewFullProfile": "View Full Profile",
      "consultationDetails": "Consultation Details",
      "scheduled": "Scheduled",
      "doctor": "Doctor",
      "doctorPrefix": "Dr. {name}",
      "startedAt": "Started At",
      "endedAt": "Ended At",
      "duration": "Duration",
      "durationMin": "{min} min",
      "linkedAppointment": "Linked Appointment",
      "complaint": "Complaint: {complaint}",
      "consultationNotes": "Consultation Notes",
      "defaultDoctor": "Doctor",
      "loadFailed": "Failed to load consultation",
      "actionFailed": "Action failed",
      "started": "Consultation started",
      "cancelled": "Consultation cancelled",
      "updated": "Consultation updated",
      "tokenFailed": "Failed to get join token",
      "endFailed": "Failed to end consultation",
      "endedSaved": "Consultation ended and notes saved",
      "status": {
        "SCHEDULED": "Scheduled",
        "IN_PROGRESS": "In Progress",
        "COMPLETED": "Completed",
        "CANCELLED": "Cancelled",
        "NO_SHOW": "No Show"
      },
      "callEnded": "Call Ended",
      "durationValue": "Duration: {duration}",
      "addNotesPlaceholder": "Add consultation notes...",
      "saveNotesClose": "Save Notes & Close",
      "live": "LIVE",
      "hidePanel": "Hide Panel",
      "showPanel": "Show Panel",
      "endCall": "End Call",
      "appointment": "Appointment",
      "complaintLabel": "Complaint:",
      "typeNotesPlaceholder": "Type notes during the consultation...",
      "patientInfoCard": "Patient Info"
    }
  },
  "sterilization": {
    "status": {
      "AVAILABLE": "Available",
      "IN_USE": "In Use",
      "STERILIZING": "Sterilizing",
      "CONTAMINATED": "Contaminated",
      "MAINTENANCE": "Maintenance",
      "RETIRED": "Retired"
    },
    "result": {
      "PASS": "Pass",
      "FAIL": "Fail",
      "PENDING": "Pending"
    },
    "method": {
      "AUTOCLAVE": "Autoclave",
      "CHEMICAL": "Chemical",
      "DRY_HEAT": "Dry Heat",
      "UV": "UV"
    },
    "category": {
      "Handpiece": "Handpiece",
      "Scaler": "Scaler",
      "Mirror": "Mirror",
      "Probe": "Probe",
      "Forceps": "Forceps",
      "Elevator": "Elevator",
      "Bur": "Bur",
      "Clamp": "Clamp",
      "Scissors": "Scissors",
      "Retractor": "Retractor",
      "Suction": "Suction",
      "Other": "Other"
    },
    "dashboard": {
      "title": "Sterilization Center",
      "subtitle": "Instrument tracking, sterilization cycles, and compliance monitoring",
      "instruments": "Instruments",
      "manageInventory": "Manage inventory",
      "sterilizationLogs": "Sterilization Logs",
      "viewCycleHistory": "View cycle history",
      "complianceReports": "Compliance Reports",
      "reportsValue": "Reports",
      "viewComplianceData": "View compliance data",
      "nearMaxCycles": "Near Max Cycles",
      "recentCycles": "Recent Sterilization Cycles",
      "last10": "Last 10 recorded cycles",
      "cycleLine": "{category} — Cycle #{cycle} — {method}",
      "errorTitle": "Error"
    },
    "instruments": {
      "title": "Instruments",
      "subtitle": "Manage dental instruments and equipment",
      "addInstrument": "Add Instrument",
      "searchPlaceholder": "Search instruments...",
      "statusPlaceholder": "Status",
      "allStatus": "All Status",
      "categoryPlaceholder": "Category",
      "allCategories": "All Categories",
      "noInstruments": "No instruments found",
      "noInstrumentsHint": "Add your first instrument to start tracking",
      "colName": "Name",
      "colCategory": "Category",
      "colSerial": "Serial #",
      "colStatus": "Status",
      "colLocation": "Location",
      "colCycles": "Cycles",
      "colLastSterilized": "Last Sterilized",
      "colActions": "Actions",
      "never": "Never",
      "editTitle": "Edit Instrument",
      "addTitle": "Add Instrument",
      "enterDetails": "Enter instrument details",
      "nameLabel": "Name *",
      "namePlaceholder": "e.g., High-Speed Handpiece",
      "categoryLabel": "Category *",
      "selectEllipsis": "Select...",
      "serialLabel": "Serial Number",
      "rfidLabel": "RFID Tag",
      "locationLabel": "Location",
      "locationPlaceholder": "e.g., Chair 1",
      "maxCyclesLabel": "Max Sterilization Cycles",
      "purchaseDateLabel": "Purchase Date",
      "warrantyLabel": "Warranty Until",
      "notesLabel": "Notes",
      "cancel": "Cancel",
      "update": "Update",
      "create": "Create",
      "errorTitle": "Error",
      "nameCategoryRequired": "Name and category required",
      "saveFailed": "Failed to save",
      "successTitle": "Success",
      "updated": "Instrument updated",
      "created": "Instrument created",
      "deleteTitle": "Delete instrument?",
      "deleteDesc": "Are you sure you want to delete this instrument?",
      "deleteConfirm": "Delete",
      "deleted": "Instrument deleted",
      "deleteFailed": "Failed to delete"
    },
    "logs": {
      "title": "Sterilization Logs",
      "subtitle": "Record and view sterilization cycle history",
      "recordCycle": "Record Cycle",
      "methodPlaceholder": "Method",
      "allMethods": "All Methods",
      "resultPlaceholder": "Result",
      "allResults": "All Results",
      "noLogs": "No sterilization logs",
      "noLogsHint": "Record your first sterilization cycle",
      "colInstrument": "Instrument",
      "colCycle": "Cycle #",
      "colMethod": "Method",
      "colTempPressure": "Temp/Pressure",
      "colDuration": "Duration",
      "colIndicators": "Indicators",
      "colResult": "Result",
      "colStarted": "Started",
      "tempC": "{temp}°C",
      "pressureBar": " / {pressure} bar",
      "durationMin": "{min} min",
      "bio": "Bio",
      "chem": "Chem",
      "none": "None",
      "recordDialogTitle": "Record Sterilization Cycle",
      "recordDialogDesc": "Log a new sterilization process",
      "instrumentLabel": "Instrument *",
      "selectInstrument": "Select instrument...",
      "methodLabel": "Method *",
      "machineIdLabel": "Machine ID",
      "machineIdPlaceholder": "e.g., AC-001",
      "tempLabel": "Temperature (°C)",
      "pressureLabel": "Pressure (bar)",
      "durationLabel": "Duration (min)",
      "startedLabel": "Started At *",
      "completedLabel": "Completed At",
      "resultLabel": "Result",
      "bioIndicator": "Biological Indicator",
      "chemIndicator": "Chemical Indicator",
      "notesLabel": "Notes",
      "cancel": "Cancel",
      "errorTitle": "Error",
      "requiredFields": "Instrument, method, and start time required",
      "recordFailed": "Failed to record",
      "successTitle": "Success",
      "recorded": "Sterilization cycle recorded"
    },
    "reports": {
      "title": "Compliance Reports",
      "subtitle": "Sterilization compliance rates, indicator pass rates, and maintenance alerts",
      "complianceRate": "Compliance Rate",
      "passTotal": "{pass} pass / {total} total",
      "failedCycles": "Failed Cycles",
      "pendingCount": "{count} pending",
      "bioRate": "Bio Indicator Rate",
      "bioRateDesc": "Cycles with biological indicator",
      "chemRate": "Chem Indicator Rate",
      "chemRateDesc": "Cycles with chemical indicator",
      "methodBreakdown": "Sterilization Method Breakdown",
      "colMethod": "Method",
      "colTotalCycles": "Total Cycles",
      "colPassRate": "Pass Rate",
      "dueRetirement": "Instruments Due for Retirement",
      "dueRetirementDesc": "These instruments have exceeded their maximum sterilization cycles",
      "colInstrument": "Instrument",
      "colCategory": "Category",
      "colCyclesUsed": "Cycles Used",
      "colMaxCycles": "Max Cycles",
      "approachingMax": "Instruments Approaching Max Cycles",
      "approachingMaxDesc": "These instruments are above 80% of their maximum sterilization cycles",
      "colUsage": "Usage",
      "noComplianceData": "No compliance data yet",
      "noComplianceHint": "Record sterilization cycles to see compliance reports",
      "errorTitle": "Error"
    }
  },
  "crm": {
    "dashboard": {
      "title": "CRM Dashboard",
      "loadError": "Failed to load CRM dashboard",
      "stats": {
        "activeMemberships": "Active Memberships",
        "revenue": "{amount} revenue",
        "referralConversion": "Referral Conversion",
        "referralsConverted": "{converted} of {total} referrals converted",
        "loyaltyPoints": "Loyalty Points",
        "pointsInCirculation": "Points in circulation",
        "patientRetention": "Patient Retention",
        "visitedLast6Months": "{count} visited in last 6 months"
      },
      "cards": {
        "memberships": "Memberships",
        "membershipsCount": "{active} active / {total} total memberships",
        "managePlans": "Manage Plans",
        "loyaltyProgram": "Loyalty Program",
        "pointsInCirculation": "{points} points in circulation",
        "viewTransactions": "View Transactions",
        "referrals": "Referrals",
        "referralsSummary": "{total} referrals, {rate}% conversion",
        "trackReferrals": "Track Referrals"
      },
      "atRisk": {
        "title": "At-Risk Patients",
        "description": "{count} patients haven't visited in the last 6 months.",
        "viewSegments": "View Segments"
      }
    },
    "memberships": {
      "title": "Membership Plans",
      "subtitle": "Create and manage membership plans for patients",
      "newPlan": "New Plan",
      "createFirstPlan": "Create First Plan",
      "emptyTitle": "No membership plans yet",
      "emptyDescription": "Create your first membership plan to start enrolling patients",
      "active": "Active",
      "inactive": "Inactive",
      "member": "member",
      "members": "members",
      "maxSuffix": " / {max} max",
      "benefitOffInline": "({percent}% off)",
      "benefitOffBadge": "{percent}% off",
      "moreBenefit": "+{count} more benefit",
      "moreBenefits": "+{count} more benefits",
      "duration": {
        "oneMonth": "1 month",
        "oneYear": "1 year",
        "years": "{count} years",
        "months": "{count} months"
      },
      "detail": {
        "enrollPatient": "Enroll Patient",
        "planBenefits": "Plan Benefits",
        "enrolledPatients": "Enrolled Patients",
        "noMembersTitle": "No enrolled patients yet",
        "noMembersDescription": "Click \"Enroll Patient\" to add members to this plan",
        "colPatient": "Patient",
        "colContact": "Contact",
        "colStartDate": "Start Date",
        "colEndDate": "End Date",
        "colAutoRenew": "Auto-Renew",
        "colStatus": "Status",
        "yes": "Yes",
        "no": "No"
      },
      "dialog": {
        "editTitle": "Edit Plan",
        "createTitle": "Create Membership Plan",
        "nameLabel": "Plan Name *",
        "namePlaceholder": "e.g., Gold Membership",
        "descriptionLabel": "Description",
        "descriptionPlaceholder": "Brief description of the plan…",
        "priceLabel": "Price ({symbol}) *",
        "pricePlaceholder": "e.g., 5000",
        "durationLabel": "Duration (months) *",
        "durationPlaceholder": "e.g., 12",
        "maxMembersLabel": "Max Members (optional)",
        "maxMembersPlaceholder": "Leave blank for unlimited",
        "benefitsLabel": "Benefits",
        "addBenefit": "Add Benefit",
        "benefitPlaceholder": "Benefit description",
        "percentOffPlaceholder": "% off",
        "benefitsHint": "Add benefit descriptions with optional discount percentages",
        "activeLabel": "Active",
        "activeHint": "Inactive plans cannot accept new enrollments",
        "cancel": "Cancel",
        "saving": "Saving…",
        "updatePlan": "Update Plan",
        "createPlan": "Create Plan"
      },
      "enroll": {
        "title": "Enroll Patient in {plan}",
        "searchLabel": "Search Patient *",
        "searchPlaceholder": "Type patient name or phone…",
        "searching": "Searching…",
        "noPatients": "No patients found",
        "noContact": "No contact info",
        "autoRenewLabel": "Auto-Renew",
        "autoRenewHint": "Automatically renew when membership expires",
        "cancel": "Cancel",
        "enrolling": "Enrolling…",
        "submit": "Enroll Patient"
      },
      "toast": {
        "loadError": "Failed to load membership plans",
        "nameRequired": "Plan name is required",
        "priceInvalid": "Price must be greater than 0",
        "durationInvalid": "Duration must be at least 1 month",
        "updated": "Plan updated",
        "created": "Plan created",
        "saveError": "Failed to save plan",
        "deleteConfirmTitle": "Delete plan?",
        "deleteConfirmDescription": "Are you sure you want to delete this plan?",
        "deleteConfirmLabel": "Delete",
        "deleted": "Plan deleted",
        "deleteError": "Failed to delete",
        "selectPatient": "Please select a patient",
        "enrolled": "{name} enrolled successfully",
        "enrollError": "Failed to enroll patient",
        "membersLoadError": "Failed to load plan members"
      },
      "status": {
        "ACTIVE": "Active",
        "EXPIRED": "Expired",
        "CANCELLED": "Cancelled",
        "PENDING": "Pending"
      }
    },
    "loyalty": {
      "title": "Loyalty Points",
      "subtitle": "Award, redeem, and track loyalty points",
      "allTypes": "All Types",
      "type": {
        "VISIT": "Visit",
        "REFERRAL": "Referral",
        "TREATMENT": "Treatment",
        "BIRTHDAY": "Birthday",
        "SIGNUP": "Sign-up",
        "REDEMPTION": "Redemption"
      },
      "award": {
        "title": "Award Points",
        "description": "Add loyalty points to a patient account",
        "patientLabel": "Patient *",
        "balance": "Balance",
        "change": "Change",
        "searchPlaceholder": "Search patient by name or phone…",
        "searching": "Searching…",
        "pointsLabel": "Points *",
        "pointsPlaceholder": "Enter points to award",
        "typeLabel": "Type *",
        "typePlaceholder": "Select type",
        "descriptionLabel": "Description",
        "descriptionPlaceholder": "Optional description",
        "submitting": "Awarding…",
        "submit": "Award Points",
        "defaultDescription": "{type} points awarded"
      },
      "redeem": {
        "title": "Redeem Points",
        "description": "Redeem loyalty points from a patient account",
        "availableBalance": "Available Balance",
        "balancePts": "{balance} pts",
        "pointsLabel": "Points to Redeem *",
        "pointsPlaceholder": "Enter points to redeem",
        "typeLabel": "Type",
        "submitting": "Redeeming…",
        "submit": "Redeem Points",
        "defaultDescription": "Points redeemed"
      },
      "log": {
        "title": "Transaction Log",
        "description": "Recent loyalty point transactions",
        "filterPlaceholder": "Filter by type",
        "colDate": "Date",
        "colPatient": "Patient",
        "colType": "Type",
        "colPoints": "Points",
        "colDescription": "Description",
        "empty": "No transactions found",
        "pageInfo": "Page {page} of {totalPages} ({total} total)"
      },
      "toast": {
        "selectPatient": "Please select a patient",
        "pointsPositive": "Points must be a positive number",
        "awarded": "+{pts} points awarded to {name}",
        "awardError": "Failed to award points",
        "insufficient": "Insufficient points balance",
        "redeemed": "-{pts} points redeemed for {name}",
        "redeemError": "Failed to redeem points",
        "loadError": "Failed to load transactions"
      },
      "previous": "Previous",
      "next": "Next"
    },
    "referrals": {
      "title": "Referral Program",
      "create": "Create Referral",
      "summary": {
        "total": "Total Referrals",
        "totalHint": "All-time referrals",
        "converted": "Converted",
        "convertedHint": "Referrals converted to patients",
        "rewarded": "Rewarded",
        "rewardedHint": "Rewards distributed",
        "conversionRate": "Conversion Rate",
        "conversionRateHint": "Of total referrals"
      },
      "listTitle": "Referrals",
      "searchPlaceholder": "Search by name, phone or referral code…",
      "filterPlaceholder": "Filter by status",
      "allStatuses": "All Statuses",
      "col": {
        "code": "Referral Code",
        "referrer": "Referrer",
        "referredName": "Referred Name",
        "referredPhone": "Referred Phone",
        "status": "Status",
        "created": "Created",
        "actions": "Actions"
      },
      "empty": "No referrals found.",
      "clickToCopy": "Click to copy",
      "copyCode": "Copy Code",
      "markConverted": "Mark Converted",
      "giveReward": "Give Reward",
      "showing": "Showing {from} to {to} of {total} referrals",
      "previous": "Previous",
      "next": "Next",
      "dialog": {
        "title": "Create Referral",
        "referrerLabel": "Referrer Patient",
        "referrerPlaceholder": "Search patient by name or ID…",
        "selected": "Selected: {display}",
        "referredNameLabel": "Referred Person Name",
        "referredNamePlaceholder": "Full name of referred person",
        "referredPhoneLabel": "Referred Person Phone",
        "referredPhonePlaceholder": "Phone number",
        "rewardTypeLabel": "Reward Type",
        "rewardTypePlaceholder": "Select reward type",
        "rewardValueLabel": "Reward Value",
        "rewardValuePlaceholder": "e.g. 100",
        "creating": "Creating…",
        "submit": "Create Referral"
      },
      "status": {
        "PENDING": "Pending",
        "CONVERTED": "Converted",
        "REWARDED": "Rewarded",
        "EXPIRED": "Expired"
      },
      "rewardType": {
        "POINTS": "Points",
        "DISCOUNT": "Discount",
        "CREDIT": "Credit"
      },
      "toast": {
        "loadError": "Failed to load referrals",
        "selectReferrer": "Please select a referrer patient",
        "nameRequired": "Referred person name is required",
        "phoneRequired": "Referred person phone is required",
        "rewardValueInvalid": "Reward value must be greater than 0",
        "createError": "Failed to create referral",
        "created": "Referral created successfully",
        "markedConverted": "Referral marked as converted",
        "rewardGiven": "Reward given successfully",
        "updateError": "Failed to update referral",
        "codeCopied": "Referral code copied"
      }
    },
    "segments": {
      "title": "Patient Segments",
      "totalPatients": "{count} total active patients",
      "aiButton": "AI Churn Analysis",
      "map": {
        "new": {
          "label": "New Patients",
          "description": "Registered in last 3 months"
        },
        "active": {
          "label": "Active",
          "description": "Visited in last 3 months"
        },
        "loyal": {
          "label": "Loyal",
          "description": "Frequent visitors (4+ visits/year)"
        },
        "atRisk": {
          "label": "At Risk",
          "description": "No visit in 3-6 months"
        },
        "lost": {
          "label": "Lost",
          "description": "No visit in 6+ months"
        },
        "highValue": {
          "label": "High Value",
          "description": "Top 20% by spending"
        }
      },
      "col": {
        "patientId": "Patient ID",
        "name": "Name",
        "phone": "Phone",
        "lastVisit": "Last Visit",
        "totalSpend": "Total Spend"
      },
      "emptySegment": "No patients in this segment",
      "never": "Never",
      "ai": {
        "title": "AI Churn Prediction",
        "subtitle": "RFM analysis with churn risk scores — avg risk: {risk}%",
        "topRetentionActions": "Top Retention Actions",
        "colPatient": "Patient",
        "colSegment": "Segment",
        "colRecency": "Recency (days)",
        "colFrequency": "Frequency",
        "colSpend": "Spend",
        "colChurnRisk": "Churn Risk",
        "colRecommendation": "Recommendation",
        "na": "N/A",
        "segment": {
          "vip": "VIP",
          "loyal": "Loyal",
          "regular": "Regular",
          "atRisk": "At Risk",
          "churning": "Churning",
          "new": "New"
        }
      },
      "toast": {
        "loadError": "Failed to load segments",
        "aiLoadError": "Failed to load AI segments"
      }
    }
  },
  "communications": {
    "common": {
      "error": "Error",
      "success": "Success"
    },
    "period": {
      "7d": "Last 7 days",
      "30d": "Last 30 days",
      "90d": "Last 90 days",
      "all": "All time"
    },
    "center": {
      "title": "Communication Center",
      "subtitle": "Manage SMS, Email, Templates, and Patient Feedback",
      "tabs": {
        "sms": "SMS",
        "email": "Email",
        "templates": "Templates",
        "surveys": "Surveys"
      },
      "sms": {
        "sendTitle": "Send SMS",
        "sendDescription": "Send individual or bulk SMS messages",
        "phoneLabel": "Phone Number",
        "phonePlaceholder": "10-digit mobile number",
        "messageLabel": "Message",
        "messagePlaceholder": "Type your message here (max 500 characters)",
        "charCount": "{count}/500 characters",
        "send": "Send SMS",
        "historyTitle": "SMS History",
        "historyDescription": "Recent SMS communications",
        "historyPlaceholder": "SMS history will be displayed here"
      },
      "email": {
        "sendTitle": "Send Email",
        "sendDescription": "Compose and send emails to patients",
        "toLabel": "To (Email Address)",
        "toPlaceholder": "patient@example.com",
        "subjectLabel": "Subject",
        "subjectPlaceholder": "Email subject",
        "messageLabel": "Message",
        "messagePlaceholder": "Type your email message here",
        "send": "Send Email",
        "historyTitle": "Email History",
        "historyDescription": "Recent email communications",
        "historyPlaceholder": "Email history will be displayed here"
      },
      "templates": {
        "title": "Communication Templates",
        "description": "Manage SMS and Email templates for automated communications",
        "availableTitle": "Available Templates",
        "availableDescription": "Create and manage reusable message templates",
        "create": "Create Template",
        "listPlaceholder": "Template list will be displayed here"
      },
      "surveys": {
        "title": "Patient Surveys & Feedback",
        "description": "Create and manage patient satisfaction surveys",
        "activeTitle": "Active Surveys",
        "activeDescription": "Collect feedback from patients",
        "create": "Create Survey",
        "listPlaceholder": "Survey list will be displayed here"
      },
      "toast": {
        "fillAll": "Please fill in all fields",
        "smsSuccess": "SMS sent successfully",
        "smsError": "Failed to send SMS",
        "emailSuccess": "Email sent successfully",
        "emailError": "Failed to send email"
      }
    },
    "analytics": {
      "title": "Campaign Analytics",
      "subtitle": "SMS delivery rates, email engagement, and campaign performance",
      "failureRate": "{rate}% failure rate",
      "noMessages": "No messages",
      "sms": {
        "heading": "SMS Overview",
        "totalSent": "Total Sent",
        "pending": "{count} pending",
        "allProcessed": "All processed",
        "deliveryRate": "Delivery Rate",
        "deliveredCount": "{count} delivered",
        "failed": "Failed",
        "totalCost": "Total Cost",
        "costPerMsg": "{cost}/msg",
        "noCostData": "No cost data"
      },
      "email": {
        "heading": "Email Overview",
        "totalSent": "Total Sent",
        "deliveredCount": "{count} successfully delivered",
        "openRate": "Open Rate",
        "openedOf": "{opened} opened of {sent}",
        "clickRate": "Click Rate",
        "clickedOf": "{clicked} clicked of {sent}",
        "failed": "Failed"
      },
      "dailyVolume": {
        "title": "Daily Message Volume",
        "description": "SMS and email messages sent per day",
        "tooltip": "{date}: {sms} SMS, {email} Email",
        "smsLegend": "SMS",
        "emailLegend": "Email"
      },
      "campaigns": {
        "title": "Recent Campaigns",
        "description": "Bulk communication campaign performance",
        "colCampaign": "Campaign",
        "colChannel": "Channel",
        "colStatus": "Status",
        "colRecipients": "Recipients",
        "colSent": "Sent",
        "colFailed": "Failed",
        "colCost": "Cost",
        "colDate": "Date"
      },
      "channel": {
        "SMS": "SMS",
        "EMAIL": "Email"
      },
      "campaignStatus": {
        "DRAFT": "Draft",
        "SCHEDULED": "Scheduled",
        "SENDING": "Sending",
        "SENT": "Sent",
        "COMPLETED": "Completed",
        "FAILED": "Failed",
        "CANCELLED": "Cancelled",
        "PENDING": "Pending",
        "QUEUED": "Queued"
      },
      "topSmsTitle": "Top SMS Templates",
      "topEmailTitle": "Top Email Templates",
      "sentCount": "{count} sent",
      "empty": {
        "title": "No analytics data yet",
        "description": "Start sending SMS and emails to see campaign analytics here"
      }
    },
    "automations": {
      "title": "Marketing Automations",
      "subtitle": "Create rules to automatically send messages based on patient events",
      "newAutomation": "New Automation",
      "createAutomation": "Create Automation",
      "emptyTitle": "No automations yet",
      "emptyDescription": "Create your first automation rule to start engaging patients automatically",
      "activeRules": "Active Rules ({active}/{total})",
      "activeRulesDescription": "Automation rules are evaluated daily by the cron scheduler",
      "col": {
        "name": "Name",
        "trigger": "Trigger",
        "action": "Action",
        "active": "Active",
        "runs": "Runs",
        "lastRun": "Last Run",
        "actions": "Actions"
      },
      "never": "Never",
      "trigger": {
        "NO_VISIT": "No visit in {days} days",
        "BIRTHDAY_UPCOMING": "Birthday in {days} days",
        "TREATMENT_PLAN_PENDING": "Treatment plan pending {days} days",
        "MEMBERSHIP_EXPIRING": "Membership expiring in {days} days",
        "POST_APPOINTMENT": "After appointment completion",
        "PAYMENT_OVERDUE": "Payment overdue by {days} days"
      },
      "triggerParam": {
        "NO_VISIT": "Days since last visit",
        "BIRTHDAY_UPCOMING": "Days before birthday",
        "TREATMENT_PLAN_PENDING": "Days pending",
        "MEMBERSHIP_EXPIRING": "Days before expiry",
        "PAYMENT_OVERDUE": "Days overdue"
      },
      "action": {
        "SEND_SMS": "Send SMS",
        "SEND_EMAIL": "Send Email",
        "CREATE_NOTIFICATION": "Create Notification"
      },
      "form": {
        "defaultNotifMessage": "Automation \"{name}\" triggered"
      },
      "dialog": {
        "editTitle": "Edit Automation",
        "createTitle": "New Automation",
        "description": "Define the trigger condition and action for this automation rule",
        "nameLabel": "Automation Name",
        "namePlaceholder": "e.g., Re-engage inactive patients",
        "triggerLabel": "Trigger (IF)",
        "triggerPlaceholder": "Select trigger...",
        "actionLabel": "Action (THEN)",
        "actionPlaceholder": "Select action...",
        "templateLabel": "Message Template",
        "templatePlaceholder": "Select template...",
        "noTemplates": "No templates found — create one first",
        "templateOption": "{name} ({category})",
        "notifTitleLabel": "Notification Title",
        "notifTitlePlaceholder": "e.g., Patient Follow-up Required",
        "notifMessageLabel": "Notification Message",
        "notifMessagePlaceholder": "e.g., Patient has not visited in 6 months",
        "cancel": "Cancel",
        "update": "Update",
        "create": "Create"
      },
      "toast": {
        "fillRequired": "Please fill in all required fields",
        "selectTemplate": "Please select a template",
        "saveError": "Failed to save",
        "updated": "Automation updated",
        "created": "Automation created",
        "deleted": "Automation deleted",
        "deleteConfirmTitle": "Delete automation?",
        "deleteConfirmDescription": "Are you sure you want to delete this automation?",
        "deleteConfirmLabel": "Delete"
      }
    },
    "feedback": {
      "title": "Feedback Analytics",
      "subtitle": "Patient satisfaction scores, NPS trends, and feedback insights",
      "errorTitle": "Error",
      "overview": {
        "totalResponses": "Total Responses",
        "fromSurveys": "From {count} active surveys",
        "avgRating": "Avg Rating",
        "ratingOutOf": "{rating}/5",
        "nps": "NPS Score",
        "npsExcellent": "Excellent",
        "npsGood": "Good",
        "npsNeedsImprovement": "Needs improvement",
        "responseRate": "Response Rate",
        "completionRate": "Completion rate"
      },
      "nps": {
        "breakdownTitle": "NPS Breakdown",
        "breakdownDescription": "Promoters (4-5), Passives (3), Detractors (1-2)",
        "promoters": "Promoters ({count})",
        "passives": "Passives ({count})",
        "detractors": "Detractors ({count})",
        "trendTitle": "Monthly NPS Trend",
        "trendTooltip": "{month}: {score} ({responses})"
      },
      "sentiment": {
        "title": "Sentiment Analysis",
        "description": "Overall patient sentiment from feedback",
        "positive": "Positive",
        "neutral": "Neutral",
        "negative": "Negative"
      },
      "satisfaction": {
        "byDoctorTitle": "Satisfaction by Doctor",
        "byProcedureTitle": "Satisfaction by Procedure",
        "colDoctor": "Doctor",
        "colProcedure": "Procedure",
        "colRating": "Rating",
        "colResponses": "Responses",
        "trendTitle": "Rating Trend",
        "trendDescription": "Average satisfaction rating by month",
        "trendTooltip": "{month}: {rating}/5 ({count} responses)"
      },
      "wordCloud": {
        "title": "Feedback Word Cloud",
        "description": "Most frequent words from patient feedback",
        "tooltip": "\"{word}\" — {count} mentions"
      },
      "empty": {
        "title": "No feedback data yet",
        "description": "Start collecting patient surveys to see feedback analytics here"
      }
    }
  },
  "chat": {
    "title": "AI Assistant",
    "subtitleHandsFree": "Hands-free mode — speak naturally, I'll respond and keep listening",
    "subtitle": "Type or speak to manage your clinic",
    "handsFree": "Hands-free",
    "handsFreeTitle": "Hands-free: continuous voice conversation",
    "voiceOnTitle": "Voice responses ON",
    "voiceOffTitle": "Voice responses OFF",
    "voiceOn": "Voice on",
    "voiceOff": "Voice off",
    "newChat": "New Chat",
    "status": {
      "listening": "Listening...",
      "thinking": "Thinking...",
      "speakingLong": "Speaking... (click orb to stop)",
      "speaking": "Speaking..."
    },
    "welcomeTitle": "How can I help you today?",
    "welcomeDescription": "I can look up patients, check appointments, show revenue, manage inventory, and more.",
    "voiceHint": "Tap the orb to speak, or type below. Enable Hands-free for continuous conversation.",
    "plainEnglish": "Just ask in plain English.",
    "inputPlaceholder": "Type a message...",
    "mic": {
      "stopListening": "Stop listening",
      "stopSpeaking": "Stop speaking",
      "start": "Start voice input",
      "speak": "Speak your message"
    },
    "send": "Send message",
    "disclaimer": "AI can make mistakes. Verify important information.",
    "suggestions": {
      "dailySummary": {
        "label": "Daily summary",
        "prompt": "Give me today's daily summary"
      },
      "registerPatient": {
        "label": "Register patient",
        "prompt": "Create a new patient named "
      },
      "bookAppointment": {
        "label": "Book appointment",
        "prompt": "Book an appointment for "
      },
      "createInvoice": {
        "label": "Create invoice",
        "prompt": "Create an invoice for "
      },
      "recordPayment": {
        "label": "Record payment",
        "prompt": "Record a payment for "
      },
      "todaysAppointments": {
        "label": "Today's appointments",
        "prompt": "Show today's appointments"
      },
      "overdueInvoices": {
        "label": "Overdue invoices",
        "prompt": "Check overdue invoices"
      },
      "revenueThisMonth": {
        "label": "Revenue this month",
        "prompt": "Show revenue this month"
      },
      "lowStockItems": {
        "label": "Low stock items",
        "prompt": "Show low stock items"
      },
      "patientLookup": {
        "label": "Patient lookup",
        "prompt": "Look up patient "
      },
      "createLabOrder": {
        "label": "Create lab order",
        "prompt": "Create a lab order for "
      },
      "showStaff": {
        "label": "Show staff",
        "prompt": "Show all staff members"
      }
    }
  },
  "onboarding": {
    "steps": {
      "clinicDetails": "Clinic Details",
      "workingHours": "Working Hours",
      "paymentSetup": "Payment Setup",
      "complete": "Complete"
    },
    "allSet": "You're all set!",
    "setupTitle": "Setup {name}",
    "yourClinic": "your clinic",
    "stepDescription": {
      "1": "Enter your clinic's location details",
      "2": "Set your working hours",
      "3": "Configure payment options (optional)",
      "4": "Your clinic is ready to accept patients"
    },
    "fields": {
      "tagline": "Tagline (optional)",
      "address": "Address *",
      "city": "City *",
      "state": "State *",
      "pincode": "Pincode *",
      "alternatePhone": "Alternate Phone",
      "website": "Website",
      "gstNumber": "GST Number",
      "registrationNo": "Registration Number",
      "upiId": "UPI ID",
      "bankName": "Bank Name",
      "bankAccountNo": "Account Number",
      "bankIfsc": "IFSC Code",
      "bankAccountName": "Account Holder Name"
    },
    "placeholders": {
      "tagline": "Your smile, our priority",
      "address": "123, Main Street",
      "city": "Chennai",
      "state": "Tamil Nadu",
      "pincode": "600001",
      "alternatePhone": "9876543210",
      "website": "www.myclinic.com",
      "gstNumber": "33AAACX1234X1ZX",
      "registrationNo": "MED-2024-12345",
      "upiId": "clinic@upi",
      "bankName": "State Bank of India",
      "bankAccountNo": "1234567890",
      "bankIfsc": "SBIN0001234",
      "bankAccountName": "Dr. John Smith"
    },
    "validation": {
      "address": "Address is required",
      "city": "City is required",
      "state": "State is required",
      "pincode": "Valid pincode is required"
    },
    "days": {
      "monday": "Monday",
      "tuesday": "Tuesday",
      "wednesday": "Wednesday",
      "thursday": "Thursday",
      "friday": "Friday",
      "saturday": "Saturday",
      "sunday": "Sunday"
    },
    "hours": {
      "open": "Open",
      "to": "to",
      "closed": "Closed"
    },
    "payment": {
      "intro": "Configure your payment options for invoices. All fields are optional.",
      "bankDetails": "Bank Details"
    },
    "complete": {
      "title": "Setup Complete!",
      "description": "Your clinic is now ready. Start by adding your first patient or exploring the dashboard.",
      "goToDashboard": "Go to Dashboard"
    },
    "nav": {
      "back": "Back",
      "next": "Next",
      "completeSetup": "Complete Setup"
    },
    "footer": "You can always update these settings later from the Settings page.",
    "toast": {
      "error": "Error",
      "genericError": "Something went wrong. Please try again.",
      "successTitle": "Setup complete!",
      "successDescription": "Your clinic is ready to use."
    }
  },
  "imaging": {
    "viewer": {
      "annotate": "Annotate",
      "compare": "Compare",
      "imageAlt": "Image",
      "zoomOut": "Zoom out (-)",
      "zoomIn": "Zoom in (+)",
      "rotateLeft": "Rotate left",
      "rotateRight": "Rotate right (R)",
      "flipH": "Flip horizontal",
      "flipV": "Flip vertical",
      "brightness": "Brightness: {value}%",
      "contrast": "Contrast: {value}%",
      "fullscreen": "Fullscreen (F)",
      "reset": "Reset",
      "resetTitle": "Reset (0)",
      "counter": "{current} / {total}"
    },
    "compare": {
      "title": "Compare Images",
      "sideBySide": "Side by Side",
      "slider": "Slider",
      "before": "Before",
      "after": "After"
    },
    "annotator": {
      "titleFallback": "Annotate Image",
      "annotationCount": "{count} annotation",
      "annotationCountPlural": "{count} annotations",
      "width": "Width:",
      "undo": "Undo (Ctrl+Z)",
      "redo": "Redo (Ctrl+Y)",
      "clearAll": "Clear all",
      "textPlaceholder": "Type text...",
      "loading": "Loading image...",
      "cancel": "Cancel",
      "save": "Save Annotations",
      "tools": {
        "freehand": "Draw",
        "line": "Line",
        "arrow": "Arrow",
        "circle": "Circle",
        "rectangle": "Rectangle",
        "text": "Text"
      }
    }
  },
  "forms": {
    "renderer": {
      "required": "{label} is required",
      "minLength": "Minimum {count} characters",
      "maxLength": "Maximum {count} characters",
      "minValue": "Minimum value is {value}",
      "maxValue": "Maximum value is {value}",
      "signatureRequired": "Signature is required",
      "selectPlaceholder": "Select...",
      "agreeDefault": "I agree to the terms above",
      "signatureAlt": "Signature",
      "noSignature": "No signature",
      "submit": "Submit Form"
    },
    "signature": {
      "agreeDefault": "I agree to the terms and conditions above",
      "signHere": "Sign here",
      "undo": "Undo",
      "clear": "Clear",
      "signedOn": "Signed on: {date}"
    },
    "submissions": {
      "title": "Form Submissions",
      "empty": "No form submissions for this patient",
      "signed": "(Signed)",
      "review": "Review",
      "statusLabel": "Status",
      "setStatusPlaceholder": "Set status...",
      "reviewNotes": "Review Notes",
      "notesPlaceholder": "Optional notes...",
      "close": "Close",
      "saveReview": "Save Review",
      "status": {
        "SUBMITTED": "Pending Review",
        "REVIEWED": "Reviewed",
        "APPROVED": "Approved",
        "REJECTED": "Rejected"
      },
      "selectStatus": {
        "SUBMITTED": "Pending",
        "REVIEWED": "Reviewed",
        "APPROVED": "Approved",
        "REJECTED": "Rejected"
      },
      "toast": {
        "loadError": "Failed to load form submissions",
        "detailError": "Failed to load submission details",
        "saved": "Review saved",
        "saveError": "Failed to save review"
      }
    }
  },
  "insurance": {
    "title": "Insurance Policies",
    "addPolicy": "Add Policy",
    "emptyTitle": "No insurance policies on file",
    "emptyDescription": "Add the patient's insurance information to enable claims and pre-authorizations",
    "inactive": "Inactive",
    "policyLine": "Policy: {policy}",
    "groupLine": "· Group: {group}",
    "memberId": "Member ID",
    "subscriber": "Subscriber",
    "subscriberValue": "{name} ({relation})",
    "effective": "Effective",
    "expires": "Expires",
    "na": "N/A",
    "annualMaximum": "Annual Maximum",
    "remaining": "Remaining",
    "deductible": "Deductible",
    "met": "(Met)",
    "copay": "Co-pay",
    "copayValue": "{value}%",
    "verify": "Verify",
    "deactivate": "Deactivate",
    "activate": "Activate",
    "verification": {
      "unverified": "Unverified",
      "verified": "Verified",
      "expired": "Expired"
    },
    "relation": {
      "Self": "Self",
      "Spouse": "Spouse",
      "Child": "Child",
      "Parent": "Parent",
      "Other": "Other"
    },
    "coverageType": {
      "Individual": "Individual",
      "Family": "Family",
      "Group": "Group"
    },
    "dialog": {
      "editTitle": "Edit Insurance Policy",
      "addTitle": "Add Insurance Policy",
      "providerLabel": "Insurance Provider *",
      "providerPlaceholder": "Select provider",
      "policyNumberLabel": "Policy Number *",
      "policyNumberPlaceholder": "e.g., POL-12345",
      "groupNumberLabel": "Group Number",
      "groupNumberPlaceholder": "Optional",
      "memberIdLabel": "Member ID *",
      "memberIdPlaceholder": "e.g., MEM-001",
      "relationLabel": "Subscriber Relation",
      "subscriberNameLabel": "Subscriber Name *",
      "subscriberNamePlaceholder": "Name of the policy holder",
      "effectiveDateLabel": "Effective Date *",
      "expiryDateLabel": "Expiry Date",
      "coverageTypeLabel": "Coverage Type",
      "coverageTypePlaceholder": "Select type",
      "annualMaximumLabel": "Annual Maximum",
      "deductibleLabel": "Deductible",
      "copayLabel": "Co-pay %",
      "copayPlaceholder": "%",
      "cancel": "Cancel",
      "saving": "Saving...",
      "update": "Update",
      "addPolicy": "Add Policy"
    },
    "toast": {
      "loadError": "Failed to load insurance policies",
      "fillRequired": "Please fill all required fields",
      "saveError": "Failed to save",
      "updated": "Policy updated",
      "added": "Policy added",
      "verified": "Insurance verified successfully",
      "verifyError": "Verification failed",
      "deactivated": "Policy deactivated",
      "activated": "Policy activated",
      "updateError": "Failed to update policy"
    }
  },
  "ai": {
    "orb": {
      "start": "Start voice input",
      "stopListening": "Stop listening",
      "interrupt": "Interrupt",
      "processing": "Processing..."
    },
    "waveform": {
      "input": "Audio input level",
      "output": "Audio output level"
    },
    "widget": {
      "openChat": "Open AI chat",
      "title": "AI Assistant",
      "subtitleHandsFree": "Hands-free mode active",
      "subtitle": "Ask anything about your clinic",
      "toggleHandsFree": "Toggle hands-free mode",
      "handsFreeTitle": "Hands-free: voice in + voice out, continuous",
      "hf": "HF",
      "muteResponses": "Mute responses",
      "readResponses": "Read responses aloud",
      "voiceOnTitle": "Voice responses ON",
      "voiceOffTitle": "Voice responses OFF",
      "clearChat": "Clear chat",
      "close": "Close",
      "emptyTitle": "How can I help?",
      "emptyDescription": "Ask about patients, appointments, billing, inventory, or anything else.",
      "voiceHint": "Tap the mic or enable Hands-Free mode for voice control",
      "hints": {
        "dailySummary": "Daily summary",
        "registerPatient": "Register patient",
        "bookAppointment": "Book appointment",
        "todaysSchedule": "Today's schedule"
      },
      "listening": "Listening...",
      "inputPlaceholder": "Type or tap mic...",
      "micStop": "Stop listening",
      "micStart": "Start voice input",
      "micSpeak": "Speak your message",
      "send": "Send"
    },
    "commandBar": {
      "placeholder": "Type a command… e.g. 'Book appointment for Raj Kumar tomorrow at 10am'",
      "quickCommands": "Quick commands",
      "examples": [
        "Show today's appointments",
        "Check stock for composite resin",
        "Show this month's revenue",
        "Check overdue invoices",
        "Low stock alerts"
      ],
      "recent": "Recent",
      "processing": "Processing…",
      "needsApproval": "Needs approval",
      "noResult": "No result",
      "footerExecute": "Enter to execute • ESC to close",
      "poweredBy": "Powered by AI"
    },
    "usageStats": {
      "title": "AI Usage Dashboard",
      "subtitle": "This-month vs all-time usage statistics",
      "conversations": "Conversations",
      "commandsRun": "Commands Run",
      "tokensUsed": "Tokens Used",
      "allTime": "All-time: {value}",
      "estimatedCost": "Estimated AI Cost",
      "viaOpenRouter": "via OpenRouter",
      "thisMonth": "This Month",
      "allTimeLabel": "All-Time",
      "insightsGenerated": "Insights Generated",
      "topSkills": "Top Skills (this month)",
      "execCount": "{count}x",
      "costsNote": "Costs are estimates based on logged token usage."
    },
    "auditMonitor": {
      "title": "Audit Log Intelligence",
      "daysOption": "{count} days",
      "analysing": "Analysing audit logs…",
      "severity": {
        "low": "low",
        "medium": "medium",
        "high": "high"
      },
      "affectedUsers": "Affected users: {users}",
      "occurrences": "{count} occurrence",
      "occurrencesPlural": "{count} occurrences",
      "clean": "✓ No suspicious patterns detected in the last {count} day.",
      "cleanPlural": "✓ No suspicious patterns detected in the last {count} days."
    },
    "duplicateDetector": {
      "checking": "Checking for duplicates…",
      "title": "⚠ Possible duplicate patient detected",
      "titlePlural": "⚠ Possible duplicate patients detected",
      "matchInfo": "{pct}% match · matched on {fields}",
      "useExisting": "Use existing"
    },
    "insights": {
      "title": "AI Insights",
      "refresh": "Refresh",
      "loading": "Loading insights…",
      "empty": "No active insights right now.",
      "dismiss": "Dismiss insight",
      "severity": {
        "INFO": "INFO",
        "WARNING": "WARNING",
        "CRITICAL": "CRITICAL"
      },
      "more": "+{count} more insight",
      "morePlural": "+{count} more insights"
    },
    "patient360": {
      "title": "AI Patient Summary",
      "cached": "cached",
      "regenerate": "↻ Regenerate",
      "lastVisit": "Last visit: {value}"
    },
    "reportBuilder": {
      "title": "Natural Language Report Builder",
      "subtitle": "Ask questions in plain English — AI queries your data and returns results.",
      "placeholder": "e.g. 'Show revenue by procedure for last month'",
      "generating": "Generating…",
      "generate": "Generate",
      "examples": [
        "Monthly revenue by procedure for last 3 months",
        "Patients who haven't visited in 6 months",
        "Overdue invoices sorted by amount",
        "Appointment no-show rate by day of week",
        "Top 5 most performed procedures this quarter",
        "Inventory items running low on stock"
      ],
      "recentQueries": "Recent queries",
      "querying": "Querying your data…",
      "queryFailed": "Query failed",
      "executeFailed": "Failed to execute query",
      "noResults": "No results found for this query.",
      "exportJson": "⬇ Export JSON"
    },
    "provider": {
      "errorPrefix": "Error: {message}",
      "unknownError": "Unknown error",
      "connectionError": "Connection error. Please try again."
    }
  }
}
