{
  "walletBalanceManagement": {
    "clients": "Falcon Clients",
    "whatsapp": "WhatsApp",
    "voice": "Voice",
    "aiChat": "AI-ChatGPT",
    "sms": "SMS",
    "email": "Email",
    "masterWallet": "Master Wallet",
    "transfer": "Transfer",
    "currency": "Currency",
    "currencySAR": "SAR",
    "currencyPoints": "Points",
    "rateCardChannel": "Select the commchannel for rate card calculations.",
    "balanceType": "Balance Type",
    "nodeBased": "Node Based",
    "userBased": "User Based",
    "walletType": "Wallet Type",
    "singleWallet": "Single Wallet",
    "multipleWallets": "Multiple Wallets",
    "showAll": "Show All",
    "organizations": "Organizations",
    "wallet": "Wallet",
    "viewingAs": "Viewing as",
    "roleFalconAdmin": "Falcon System Admin",
    "roleOwner": "Account Owner",
    "roleNodeAdmin": "Node Admin",
    "roleNormalUser": "Normal User",
    "type": "Type",
    "select": "Select…",
    "atLeastOneChannel": "At least one channel must remain visible",
    "confirmSaveTitle": "Are you sure you want to save the edit?",
    "confirmSaveSub": "Once you save, the wallet allocation for this client will be locked until you leave and return to the page.",
    "savedToast": "Changes saved",
    "toastSaved": "Wallet allocations saved successfully",
    "toastReset": "Allocations reset to last saved state",
    "toastTransferDone": "Balance transferred successfully",
    "errorLoad": "Failed to load wallet data. Please try again.",
    "loading": "Loading…",
    "retry": "Retry",
    "emptyTitle": "No wallet data",
    "emptyDescription": "There is no wallet balance to display.",
    "balanceTransfer": "Balance Transfer",
    "source": "Source",
    "sourceWallet": "Source Wallet",
    "destination": "Destination",
    "destinationWallet": "Destination Wallet",
    "commChannelWallet": "Comm-channel",
    "crossChannelLocked": "Locked — cross-channel transfers are not allowed",
    "noEligibleDestination": "No eligible destination for this source",
    "transferAmount": "Transfer Amount",
    "available": "Available",
    "exceedsAvailable": "Amount exceeds the available balance.",
    "transferDescription": "Transfer Description",
    "descPlaceholder": "Add a short note (optional)",
    "pickerTitle": "Choose how to view Wallet & Balance",
    "pickerSubtitle": "Falcon admins manage allocations across all clients; a client view scopes everything to one organization.",
    "showAsFalcon": "Show as Falcon",
    "showAsFalconDesc": "Allocate the master pool across every client and node.",
    "showAsClient": "Show as Client",
    "showAsClientDesc": "See the page exactly as a single client would.",
    "switchPerspective": "Switch perspective",
    "resizeColumns": "Resize columns",
    "resizeHint": "Drag to resize · double-click to reset",
    "save": "Save",
    "cancel": "Cancel",
    "transferFailed": "The transfer could not be completed. Please try again.",
    "transferDenied": "This transfer isn't allowed.",
    "validation": {
      "amountRequired": "Enter a transfer amount.",
      "amountInteger": "Amount must be a whole number.",
      "amountPositive": "Amount must be greater than 0.",
      "amountExceedsAvailable": "Amount exceeds the available balance.",
      "amountInvalid": "Enter a valid amount.",
      "sourceRequired": "Select a source wallet.",
      "destinationRequired": "Select a destination wallet.",
      "sameSourceDestination": "Source and destination must be different.",
      "descriptionRequired": "Enter a description for this transfer.",
      "currencyRequired": "Select a currency.",
      "currencyInvalid": "Select a valid currency."
    }
  },
  "falconUploader": {
    "err": {
      "extension": "That extension isn't allowed. Pick one of: {{exts}}",
      "size": "File exceeds the {{max}} MB limit. Compress it or pick a smaller file.",
      "network": "The upload didn't complete. Check your connection and retry."
    },
    "status": {
      "idle": "Ready",
      "uploading": "Uploading",
      "success": "Completed",
      "error": "Error"
    },
    "banner": {
      "success": "Uploaded · {{name}}"
    },
    "multi": {
      "uploading": "Uploading · {{done}} of {{total}} done · {{pct}}%",
      "mixed": "{{ok}} of {{total}} uploaded · {{fail}} failed",
      "allSuccess": "All {{ok}} files uploaded successfully",
      "allFailed": "{{fail}} files failed to upload",
      "subUploading": "Uploading · {{done}} of {{total}} done",
      "subFailed": "{{ok}} succeeded · {{fail}} failed",
      "subSuccess": "{{n}} files uploaded",
      "countFiles": "{{n}} files",
      "noFilesMatch": "No files match this filter",
      "file": "file",
      "files": "files"
    },
    "action": {
      "retry": "Retry",
      "retryAll": "Retry failed",
      "remove": "Remove",
      "replace": "Replace",
      "addMore": "Add more",
      "showFiles": "Show files",
      "hideFiles": "Hide files"
    },
    "errCode": {
      "ext": "T2-EXT",
      "size": "T2-SIZE",
      "net": "T2-NET"
    }
  },
  "commMkt": {
    "viewMode": { "group": "View", "list": "List view", "grid": "Grid view" },
    "show": { "label": "Show", "all": "All", "active": "Active", "expired": "Expired", "disable": "Disable", "inactive": "Inactive" },
    "col": { "name": "Name", "priceType": "Price Type", "priceValue": "Price Value", "firstActivation": "First Activation Date", "activationDate": "Activation Date", "renewDate": "Renew Date", "status": "Status" },
    "actions": { "doPayment": "Do Payment", "disable": "Disable", "enable": "Enable" },
    "dates": { "firstActivation": "First Activation", "activation": "Activation", "renew": "Renew" },
    "pending": { "newPriceType": "New Price Type", "newPriceValue": "New Price Value", "effectiveDate": "Effective Date" },
    "perMonth": "/Month",
    "perYear": "/Year",
    "panel": { "commChannels": "CommChannels & Services", "appsServices": "Applications" },
    "empty": { "title": "No items", "body": "There are no items configured for your account yet." },
    "emptyFilter": "No items match the current filter.",
    "desc": {
      "sms": "SMS (Short Message Service) is a universal, reliable channel for sending text-based messages to any mobile phone. Ideal for OTPs, alerts, notifications.",
      "whatsapp": "WhatsApp Business Messaging is a secure, widely used channel for sending personalized messages, alerts, and notifications.",
      "email": "Email Relay is a high-deliverability channel for transactional and marketing email at scale.",
      "voice": "Voice Service is a versatile communication channel that delivers messages through automated or live phone calls.",
      "push": "Deliver real-time alerts and updates directly to users' devices. Ideal for timely promotions, reminders, and app engagement.",
      "ai": "AI Service leverages artificial intelligence to automate interactions, analyze data, and provide personalized recommendations.",
      "rcs": "RCS Messaging upgrades SMS with rich cards, suggested replies, and verified sender identity.",
      "telegram": "Reach customers on Telegram with automated bots for support, alerts, and notifications.",
      "abc": "Apple Business Chat lets customers message your business directly from Maps, Safari, and Siri.",
      "basic": "Basic Send App for triggering one-off transactional messages from any backend.",
      "survey": "Survey Pro builds, sends, and analyzes multi-channel surveys with branching logic.",
      "campaign": "Campaign Engine schedules and orchestrates large-scale multi-channel campaigns.",
      "workflow": "Workflow Builder visually composes automation flows triggered by customer events.",
      "analytics": "Analytics Suite delivers real-time dashboards on delivery, engagement, and ROI.",
      "forms": "Form Builder collects structured data through customizable forms with conditional logic.",
      "reporting": "Reporting Hub centralizes scheduled reports across all channels and applications.",
      "aiAssistant": "AI Assistant uses generative AI to draft messages, summarize threads, and route tickets."
    }
  },
  "marketplaceApps": {
    "title": "Marketplace Applications",
    "subtitle": "Browse and manage applications subscribed to your account.",
    "col": {
      "name": "Application",
      "priceType": "Price Type",
      "priceValue": "Price Value",
      "firstActivation": "First Activation",
      "activationDate": "Activation Date",
      "renewDate": "Renew Date",
      "status": "Status"
    },
    "actions": {
      "doPayment": "Activate / Renew",
      "enable": "Enable",
      "disable": "Disable"
    },
    "viewMode": {
      "card": "Cards",
      "list": "List",
      "aria": {
        "group": "View mode",
        "card": "Switch to card view",
        "list": "Switch to list view"
      }
    },
    "empty": {
      "title": "No applications",
      "body": "There are no marketplace applications configured for your account yet."
    },
    "error": {
      "noAccount": "No account context found. Please contact your administrator."
    }
  },
  "commsHubMgmt": {
    "title": "CommChannels & Services Management",
    "subtitle": "View and manage communication channels for your account.",
    "col": {
      "name": "Channel",
      "priceType": "Price Type",
      "priceValue": "Price Value",
      "firstActivation": "First Activation",
      "activationDate": "Activation Date",
      "renewDate": "Renew Date",
      "status": "Status"
    },
    "actions": {
      "doPayment": "Activate / Renew",
      "enable": "Enable",
      "disable": "Disable"
    },
    "empty": {
      "title": "No communication channels",
      "body": "There are no communication channels configured for your account yet."
    },
    "error": {
      "noAccount": "No account context found. Please contact your administrator."
    }
  },
  "walletMgmt": {
    "page": {
      "title": "Wallet & Balance Management"
    },
    "summary": {
      "title": "Wallet Summary",
      "totalBalance": "Total Balance",
      "structure": "Wallet Structure",
      "distribution": "Balance Distribution",
      "currency": "Currency"
    },
    "table": {
      "title": "Balance Breakdown",
      "empty": "No wallets to display.",
      "name": "Name",
      "type": "Type",
      "balance": "Balance",
      "transferAction": "Transfer"
    },
    "transfer": {
      "cta": "Transfer Balance",
      "title": "Transfer Balance",
      "source": "Source",
      "destination": "Destination",
      "currency": "Currency",
      "amount": "Amount",
      "description": "Description",
      "submit": "Transfer",
      "success": "Transfer completed.",
      "selectSource": "Select source",
      "selectDestination": "Select destination"
    },
    "currency": {
      "sar": "SAR",
      "points": "Points"
    },
    "structure": {
      "single": "Single Wallet",
      "multiple": "Multiple Wallets"
    },
    "distribution": {
      "nodeBased": "Node-based",
      "userBased": "User-based"
    },
    "nodeType": {
      "organization": "Organization",
      "service": "Service",
      "user": "User"
    },
    "available": "Available",
    "error": {
      "noAccount": "No account context found. Please contact your administrator.",
      "load": "Failed to load wallet data"
    },
    "validation": {
      "amountRequired": "Amount is required",
      "amountInvalid": "Enter a valid amount",
      "amountPositive": "Amount must be greater than zero",
      "sourceRequired": "Select a source wallet",
      "destinationRequired": "Select a destination wallet",
      "sameSourceDestination": "Source and destination must be different",
      "currencyMismatch": "Source and destination currencies must match",
      "currencyRequired": "Currency is required",
      "insufficientBalance": "Insufficient balance. Available: {{available}}",
      "transferLimitExceeded": "Amount exceeds the per-transfer cap ({{limitPct}}% of source balance, max {{maxAllowed}})",
      "descriptionRequired": "Description is required"
    }
  },
  "falcon": {
    "dataTable": {
      "empty": "No records found",
      "rowsPerPage": "Rows per page"
    },
    "dialogs": {
      "insufficientBalance": {
        "title": "Insufficient Balance Detected",
        "subtitle": "Please prioritize the Communication Channel wallet to deduct the required amount and continue the process.",
        "dragLabel": "Drag To Change Priority:",
        "firstAuto": "The first channel will be used automatically.",
        "cancel": "Cancel",
        "proceed": "Proceed Payment",
        "moveUp": "Move up",
        "moveDown": "Move down",
        "moveToTop": "Move to top",
        "moveToBottom": "Move to bottom"
      }
    }
  },
  "validation": {
    "required": "This field is required",
    "invalidEmail": "Please enter a valid email address",
    "invalidPhone": "Please enter a valid phone number",
    "min": "Value is below the minimum",
    "max": "Value is above the maximum",
    "minlength": "Value is too short",
    "maxlength": "Value is too long",
    "pattern": "Invalid format",
    "startWithLetter": "Must start with a letter",
    "maxLength30": "Maximum 30 characters allowed",
    "startWithLetterMax30": "Must start with a letter and max 30 characters",
    "lettersDigitsMax50": "Only letters and digits, max 50 characters",
    "usernameFormat30": "Letters, digits and valid email format, max 30 characters",
    "invalid": "Invalid value"
  },
  "common": {
    "selectNode": "Select a Node",
    "selectNodeMessage": "Please select a node from the organization hierarchy to view the details.",
    "falconClients": "Falcon Clients",
    "success": "Success",
    "error": "Error",
    "ok": "OK",
    "actions": "Actions",
    "cancel": "Cancel",
    "back": "Previous",
    "previous": "Previous",
    "next": "Next",
    "create": "Create",
    "of": "of",
    "edit": "Edit",
    "view": "View",
    "save": "Save",
    "delete": "Delete",
    "clear": "Clear",
    "description": "Description",
    "close": "Close",
    "retry": "Retry",
    "more": "More",
    "increment": "Increment",
    "decrement": "Decrement",
    "showPassword": "Show password",
    "hidePassword": "Hide password",
    "refresh": "Refresh",
    "loading": "Loading…",
    "dismiss": "Dismiss"
  },
  "enum": {
    "passwordSecurityLevel": {
      "normal": "Normal",
      "advanced": "Advanced"
    },
    "nodeType": {
      "root": "Root",
      "main": "Main",
      "sub": "Sub"
    },
    "classificationCategory": {
      "vip": "VIP",
      "critical": "Critical",
      "normal": "Normal"
    },
    "classificationSubCategory": {
      "bank": "Bank",
      "gov": "Government",
      "semiGov": "Semi Government",
      "largeEnterprise": "Large Enterprise",
      "mediumEntity": "Medium Entity",
      "sme": "SME"
    },
    "authorityLetterType": {
      "government": "Government",
      "commercial": "Commercial",
      "charity": "Charity"
    },
    "pricingType": {
      "monthly": "Monthly",
      "yearly": "Yearly",
      "oneTime": "One Time"
    },
    "channelStatus": {
      "active": "Active",
      "inactive": "Inactive",
      "expired": "Expired"
    },
    "userStatus": {
      "pending": "Pending",
      "active": "Active",
      "suspended": "Suspended",
      "locked": "Locked",
      "deleted": "Deleted"
    },
    "deliveryMethod": {
      "email": "Send via Email",
      "sms": "Send via SMS",
      "both": "Both, SMS and Email"
    },
    "tabComponentType": {
      "hierarchy": "Hierarchy",
      "settings": "Settings",
      "commChannelsServices": "Comm Channels & Services",
      "appsServices": "Apps & Services"
    },
    "walletCurrency": {
      "sar": "SAR",
      "points": "Points"
    },
    "walletBalanceType": {
      "nodeBased": "Node Based",
      "userBased": "User Based"
    },
    "walletBaseType": {
      "singleWallet": "Single Wallet",
      "multipleWallets": "Multiple Wallets"
    },
    "walletNodeType": {
      "organization": "Organization",
      "service": "Service",
      "user": "User"
    }
  },
  "walletBalance": {
    "pageTitle": "Wallet & Balance Management",
    "masterWallet": "Master Wallet",
    "currency": "Currency",
    "balanceType": "Balance Type",
    "walletType": "Wallet Type",
    "singleWallet": "Single Wallet",
    "multipleWallets": "Multiple Wallets",
    "organizations": "Organizations",
    "clientsOrganizations": "Clients / Organizations",
    "clients": "Clients / Organizations",
    "wallet": "Wallet",
    "type": "Type",
    "transferColumn": "Transfer",
    "editStrategy": "Edit",
    "switchPerspective": "Switch perspective",
    "showing": "Showing",
    "from": "from",
    "rowsPerPage": "Rows per page",
    "transfer": {
      "title": "Balance Transfer",
      "source": "Source",
      "selectSource": "Select source",
      "sourceWallet": "Source Wallet",
      "selectWallet": "Select wallet",
      "destination": "Destination",
      "selectDestination": "Select destination",
      "destinationWallet": "Destination Wallet",
      "amount": "Transfer Amount",
      "available": "Available",
      "availableBalance": "Available balance",
      "max": "Max",
      "percent25": "25%",
      "percent50": "50%",
      "crossChannelLocked": "Cross-channel transfers are not allowed",
      "description": "Transfer Description",
      "descriptionPlaceholder": "Add a short note",
      "descriptionRequired": "Description is required for this transfer type",
      "success": "Transfer completed successfully",
      "error": "Transfer failed. Please try again.",
      "insufficientBalance": "Insufficient balance in source wallet",
      "amountExceedsBalance": "Amount exceeds available balance",
      "noActiveContracts": "No active contracts available for deduction",
      "sameSourceDestination": "Source and destination cannot be the same",
      "invalidAmount": "Please enter a valid amount"
    },
    "save": "Save",
    "cancel": "Cancel",
    "refresh": "Refresh",
    "loading": "Loading...",
    "noData": "No data available",
    "channels": "Channels",
    "messages": {
      "saveSuccess": "Changes saved successfully",
      "saveFailed": "Failed to save changes",
      "noChanges": "No changes to save",
      "cancelled": "Changes have been reverted",
      "loadError": "Failed to load wallet data",
      "transferInfo": "Transfer balance for",
      "cannotSave": "You do not have permission to save changes"
    }
  },
  "contractsCostManagement": {
    "pageTitle": "Contracts & Cost Management",
    "addContract": "Add Contract",
    "contractCreated": "Contract created successfully",
    "contractUpdated": "Contract updated successfully",
    "emptyStateTitle": "Contracts & Cost Management",
    "emptyStateMessage": "Select a Falcon client to view its contracts.",
    "mgmtEmptyStateMessage": "View and manage contracts for your account.",
    "mgmtEmptyListMessage": "No contracts to display.",
    "organizationFallback": "Organization",
    "loadingContract": "Loading contract…",
    "loadingLookups": "Loading options…",
    "walletStrategyRequired": "A wallet strategy must be configured for this account before a contract can be created.",
    "table": {
      "title": "Contracts",
      "empty": "No contracts to display.",
      "columns": {
        "contractId": "Contract ID",
        "contractName": "Contract Name",
        "farabiReferenceId": "Reference ID",
        "creationDate": "Creation Date",
        "startDate": "Start Date",
        "expirationDate": "Expiration Date",
        "valueSar": "Value",
        "remaining": "Remaining",
        "status": "Status"
      }
    },
    "status": {
      "active": "Active",
      "pending": "Pending",
      "expired": "Expired"
    },
    "actions": {
      "moreActions": "More Actions"
    },
    "edit": {
      "referenceId": "Reference ID"
    },
    "view": {
      "information": "Information",
      "datesValue": "Dates & Value",
      "contractDetails": {
        "rows": {
          "high": "High",
          "normal": "Normal",
          "veryLow": "Very Low"
        }
      },
      "lockLegend": "Some fields are locked because the contract has active billing. Locked values cannot be edited."
    },
    "values": {
      "notAvailable": "NA"
    },
    "wizard": {
      "title": "Add New Contract",
      "stepPrefix": "Step",
      "previous": "Previous",
      "next": "Next",
      "nav": {
        "contractInformation": "Contract Information",
        "rateCard": "Rate Card",
        "contractDetails": "Contract Details",
        "addons": "Addons"
      },
      "contractInformation": {
        "contractName": "Contract Name",
        "farabiReferenceId": "Reference ID",
        "startDate": "Start Date",
        "expirationDate": "Expiration Date",
        "valueSar": "Value",
        "committedValue": "Committed Value",
        "currency": "Currency",
        "values": {
          "contractName": "Century Contract"
        }
      },
      "rateCard": {
        "name": "Name",
        "priceUnit": "Price Unit",
        "priceValue": "Price Value",
        "rows": {
          "whatsApp": "WhatsApp",
          "voice": "Voice",
          "aiChatGpt": "AI-ChatGPT"
        },
        "units": {
          "oneKsaTransaction": "One KSA Transaction",
          "oneKsaSecond": "One KSA Second",
          "oneApiCall": "One API Call"
        }
      },
      "contractDetails": {
        "currency": "Currency",
        "sar": "SAR",
        "application": "Application",
        "commChannel": "CommChannel",
        "priorityType": "Priority/Type",
        "values": {
          "application": "Basic Send Transaction Application",
          "commChannel": "WhatsApp"
        },
        "rows": {
          "authentication": "Authentication",
          "utility": "Utility",
          "advertisement": "Advertisement",
          "service": "Service",
          "high": "High",
          "normal": "Normal",
          "veryLow": "Very Low",
          "type": "Type",
          "token": "Token"
        }
      },
      "addons": {
        "voiceSenderName": "Voice/Sender Name",
        "cards": {
          "addons": "Addons",
          "addonsRateCard": "Addons Rate Card"
        },
        "rows": {
          "whatsappMessages": "WhatsApp Messages",
          "whatsappTemplates": "WhatsApp Templates",
          "smsSenderNames": "SMS Sender Names",
          "voiceNumbers": "Voice Numbers",
          "shortCodes": "Short Codes"
        }
      }
    }
  },
  "confirm": {
    "deleteContactGroup": "Are you sure you want to delete this contact group?",
    "deleteInProgressContactGroup": "This group is still importing ({{processedRows}}/{{totalRows}} rows processed). Deleting now will stop the import. Continue?",
    "deleteIp": "Are you sure you want to delete Ip?",
    "deletePriceType": "Are you sure you want to delete this pending price type change?",
    "deletePriceValue": "Are you sure you want to delete this pending price value change?",
    "deleteTitle": "Confirm Deletion",
    "paymentMessage": "Are you sure you want to proceed with the payment?",
    "paymentTitle": "Confirm Payment",
    "cancelWizardTitle": "Cancel",
    "cancelWizardMessage": "Are you sure you want to cancel? All unsaved changes will be lost.",
    "discardChangesMessage": "Are you sure you want to discard your unsaved changes?"
  },
  "errors": {
    "effectiveDateRequired": "Effective date is required.",
    "effectiveDateMustBeInFuture": "Effective date must be in the future.",
    "invalidEffectiveDateForPeriodicPricingChange": "Effective date does not match the billing period.",
    "priceValueNonNegative": "Price value must be zero or greater."
  },
  "button": {
    "yes": "Yes, sure",
    "no": "No, Ignore",
    "ok": "OK",
    "cancel": "Cancel",
    "edit": "Edit",
    "back": "Back",
    "previous": "Previous",
    "next": "Next",
    "save": "Save",
    "create": "Create"
  },
  "warning": {
    "title": "Warning",
    "insufficientBalance": "Insufficient Balance",
    "insufficientFunds": "Insufficient balance to complete this payment",
    "walletNotConfigured": "Wallet configuration is not done",
    "commChannelPriorityRequired": "Communication channel priority order is required to proceed"
  },
  "paymentFailure": {
    "insufficientFundsTitle": "Insufficient Balance",
    "insufficientFundsBody": "The wallet does not have enough balance to complete this payment. Please top up the balance and try again.",
    "topUpBalance": "Top up balance",
    "walletNotConfiguredTitle": "Wallet Not Configured",
    "walletNotConfiguredBody": "This node does not have a wallet configured. Please configure the node's wallet before processing the payment.",
    "genericTitle": "Payment Failed",
    "genericBody": "The payment could not be completed. Please try again or contact support.",
    "close": "Close",
    "ok": "OK"
  },
  "paymentStatus": {
    "successTitle": "Payment Successful",
    "successBody": "The payment has been processed successfully.",
    "errorTitle": "Payment Failed",
    "errorBody": "The payment could not be completed.",
    "timeoutTitle": "Payment Status Unavailable",
    "timeoutBody": "The order status is taking longer than expected. Please check again later."
  },
  "datepicker": {
    "set": "Set",
    "ignoreAndCancel": "Ignore and cancel"
  },
  "tabs": {
    "hierarchy": "Hierarchy",
    "settings": "Settings",
    "commChannelsServices": "Comm Channels & Services",
    "appsServices": "Apps & Services"
  },
  "settingsStep": {
    "passwordSecurityLevel": "Password Security Level",
    "normalDescription": "Username, Password, OTP",
    "advancedDescription": "Comply With NCA Regulations, Press Here For More Details.",
    "allowedIPs": "Allowed IPs",
    "ipPlaceholder": "Enter IP address (IPv4 or IPv6) and press Enter",
    "addIpAddress": "Add IP Address",
    "ipRestrictionNote": "*Restrict Platform Access And Limit It From These IPs Only",
    "accountLimitations": "Account Limitations",
    "maxNormalUserLimit": "Max Normal User Limit",
    "maxSystemUserLimit": "Max System User Limit",
    "maxNodeLevel": "Max Node Level",
    "balanceTransferLimit": "Balance Transfer Limit",
    "invalidIpError": "Please enter a valid IPv4 or IPv6 address",
    "duplicateIpError": "This IP address has already been added",
    "removeIpAria": "Remove IP address"
  },
  "informationStep": {
    "information": "Information",
    "profilePicture": "Profile Picture",
    "uploadImage": "Upload Image",
    "removeImage": "Remove Image",
    "imageHint": "PNG, JPG, GIF up to 5MB",
    "accountName": "Account Name",
    "accountNamePlaceholder": "",
    "accountNameExistsError": "Account name already exists",
    "financeId": "Finance ID",
    "financeIdPlaceholder": "Letters and digits only - Max 30 Characters",
    "classificationCategory": "Classification Category",
    "classificationCategoryPlaceholder": "Select Classification Category",
    "classificationSubCategory": "Classification Sub Category",
    "classificationSubCategoryPlaceholder": "Select Classification Sub Category",
    "accountOfficial": "Account Official",
    "entityName": "Entity Name",
    "authorityLetterType": "Authority Letter Type",
    "authorityLetterTypePlaceholder": "Select Authority Letter Type",
    "sector": "Sector",
    "budgetNo": "Budget No.",
    "country": "Country",
    "city": "City",
    "district": "District",
    "street": "Street",
    "buildingNumber": "Building Number",
    "postalCode": "Postal Code",
    "additionalAddress": "Additional Address",
    "anotherId": "Another ID",
    "vatRegistrationNumber": "VAT Registration Number",
    "noData": {
      "title": "No Data Available",
      "message": "No account information data to display"
    }
  },
  "commChannelsStep": {
    "visibility": "Visibility",
    "name": "Name",
    "priceType": "Price Type",
    "priceValue": "Price Value",
    "status": "Status",
    "placeholder": "---",
    "pricePlaceholder": "--- SAR"
  },
  "applicationStep": {
    "visibility": "Visibility",
    "name": "Name",
    "priceType": "Price Type",
    "priceValue": "Price Value",
    "status": "Status",
    "placeholder": "---",
    "pricePlaceholder": "--- SAR"
  },
  "accountOwnerStep": {
    "profilePicture": "Profile Picture",
    "firstName": "First Name",
    "firstNamePlaceholder": "Enter first name",
    "lastName": "Last Name",
    "lastNamePlaceholder": "Enter last name",
    "userName": "User Name",
    "userNamePlaceholder": "Enter user name",
    "userNameExistsError": "Username already exists",
    "password": "Password",
    "passwordPlaceholder": "Enter password",
    "nationalId": "National ID/Iqama",
    "nationalIdPlaceholder": "Enter national ID/Iqama",
    "phoneNumber": "Phone Number",
    "phoneNumberPlaceholder": "Enter phone number",
    "emailAddress": "Email Address",
    "emailAddressPlaceholder": "Enter email address",
    "role": "Role",
    "rolePlaceholder": "Select role",
    "deleteConfirmHeader": "Delete Profile Picture",
    "deleteConfirmMessage": "Are you sure you want to delete the profile picture?"
  },
  "finishAlertDialog": {
    "title": "Account Created Successfully",
    "subtitle": "The new account has been created",
    "message": "Credentials have been sent to the account owner successfully",
    "userTitle": "User Created Successfully",
    "userMessage": "Credentials have been sent to the user successfully",
    "okButton": "OK",
    "close": "Close",
    "closeAriaLabel": "Close dialog"
  },
  "hierarchyTab": {
    "buttons": {
      "information": "Information",
      "addClient": "Add Client",
      "addNode": "Add Node",
      "addUser": "Add User",
      "backToUsers": "Back to users",
      "editInfo": "Edit Info",
      "save": "Save",
      "cancel": "Cancel"
    },
    "table": {
      "title": "Users"
    },
    "columns": {
      "username": "Username",
      "firstName": "First Name",
      "email": "Email",
      "phoneNumber": "Phone Number",
      "role": "Role",
      "permissionGroup": "Permission Group",
      "status": "Status"
    },
    "actions": {
      "view": "More Details"
    },
    "loading": {
      "organizationStructure": "Loading organization structure..."
    },
    "drawer": {
      "addNode": "Add Node",
      "addClient": "Add Client",
      "editNode": "Edit Node",
      "nodeName": "Node Name"
    },
    "preview": {
      "title": "Preview",
      "mode": {
        "add": "Add",
        "edit": "Edit"
      },
      "rename": {
        "from": "From",
        "to": "To"
      },
      "placeholders": {
        "selectedNode": "Selected Node",
        "newNodeName": "New node name..."
      }
    },
    "contextMenu": {
      "addNode": "Add Node",
      "editNode": "Add Node",
      "addClient": "Add Client",
      "addUser": "Add User",
      "viewDetails": "View Details",
      "delete": "Delete"
    },
    "tree": {
      "rootName": "Falcon",
      "clientsLabel": "Falcon Clients",
      "menuAriaLabel": "Open node menu",
      "expandAriaLabel": "Toggle children",
      "actions": {
        "addClient": "Add Client",
        "addNode": "Add Node",
        "editNode": "Edit Node",
        "addUser": "Add User"
      }
    }
  },
  "commChannelsServices": {
    "table": {
      "title": "Channels & Services"
    },
    "columns": {
      "visibility": "Visibility",
      "name": "Name",
      "priceType": "Price Type",
      "priceValue": "Price Value",
      "firstActivationDate": "First Activation Date",
      "activationDate": "Activation Date",
      "renewDate": "Renew Date",
      "status": "Status",
      "action": "Action"
    },
    "actions": {
      "disable": "Disable",
      "doPayment": "Do Payment",
      "editPriceType": "Edit Price Type",
      "editPriceValue": "Edit Price Value",
      "view": "View",
      "activate": "Activate"
    },
    "newPriceType": "New Price Type",
    "selectPriceType": "Select Price Type",
    "effectiveDate": "Effective Date",
    "newPriceValue": "New Price Value",
    "messages": {
      "noData": "No channels & services found",
      "loadError": "Failed to load channels & services",
      "requiredFields": "Please fill all required fields",
      "updateSuccess": "Updated successfully",
      "updateError": "Failed to update",
      "actionSuccess": "Action completed successfully",
      "actionError": "Failed to complete action",
      "paymentPaidSuccessfully": "Payment has been paid successfully."
    }
  },
  "appsServices": {
    "table": {
      "title": "Applications"
    },
    "columns": {
      "visibility": "Visibility",
      "name": "Name",
      "priceType": "Price Type",
      "priceValue": "Price Value",
      "firstActivationDate": "First Activation Date",
      "activationDate": "Activation Date",
      "renewDate": "Renew Date",
      "status": "Status",
      "action": "Action"
    },
    "actions": {
      "disable": "Disable",
      "doPayment": "Do Payment",
      "editPriceType": "Edit Price Type",
      "editPriceValue": "Edit Price Value",
      "view": "View",
      "activate": "Activate"
    },
    "newPriceType": "New Price Type",
    "effectiveDate": "Effective Date",
    "newPriceValue": "New Price Value",
    "messages": {
      "noData": "No applications found",
      "loadError": "Failed to load applications",
      "requiredFields": "Please fill all required fields",
      "updateSuccess": "Updated successfully",
      "updateError": "Failed to update",
      "actionSuccess": "Action completed successfully",
      "actionError": "Failed to complete action",
      "paymentPaidSuccessfully": "Payment has been paid successfully."
    }
  },
  "marketplaceApplications": {
    "table": {
      "title": "Marketplace & Applications"
    },
    "columns": {
      "visibility": "Visibility",
      "name": "Name",
      "priceType": "Price Type",
      "priceValue": "Price Value",
      "firstActivationDate": "First Activation Date",
      "activationDate": "Activation Date",
      "renewDate": "Renew Date",
      "status": "Status",
      "action": "Action"
    },
    "actions": {
      "disable": "Disable",
      "doPayment": "Do Payment",
      "enable": "Enable",
      "view": "View"
    },
    "newPriceType": "New Price Type",
    "selectPriceType": "Select Price Type",
    "effectiveDate": "Effective Date",
    "newPriceValue": "New Price Value",
    "messages": {
      "noData": "No marketplace applications found",
      "loadError": "Failed to load marketplace applications",
      "actionSuccess": "Action completed successfully",
      "actionError": "Failed to complete action",
      "requiredFields": "Please fill all required fields",
      "updateSuccess": "Updated successfully",
      "updateError": "Failed to update",
      "paymentPaidSuccessfully": "Payment has been paid successfully."
    }
  },
  "actions": {
    "doPayment": "Do Payment",
    "disable": "Disable",
    "enable": "Enable",
    "editPriceType": "Edit Price Type",
    "editPriceValue": "Edit Price Value"
  },
  "status": {
    "none": "None",
    "inactive": "Inactive",
    "active": "Active",
    "expired": "Expired",
    "disabled": "Disabled",
    "pendingActivation": "Pending Activation",
    "pendingPayment": "Pending Payment"
  },
  "userProfileMenu": {
    "ariaLabel": "User menu",
    "language": "Language",
    "mood": "Mood",
    "profile": "Profile",
    "changePassword": "Change Password",
    "logout": "Logout",
    "toggleTheme": "Toggle dark/light mode"
  },
  "sidebar": {
    "dashboard": "Dashboard",
    "contactGroups": "Contact Groups",
    "templates": "Templates",
    "orgHierarchy": "Organization Hierarchy",
    "orgHierarchyPrime": "Organization Hierarchy (PrimeNG)",
    "permissions": "Permissions",
    "walletBalance": "Wallet & Balance .Mng",
    "commChannels": "CommChannels & Services .Mng",
    "marketplace": "Marketplace & Applications .Mng",
    "contractsCost": "Contracts & Cost .Mng",
    "systemSettings": "System Settings",
    "auditLog": "Audit Log",
    "section": {
      "main": "Main Items",
      "account": "Account Administration"
    },
    "aria": {
      "primary": "Primary sidebar",
      "toggle": "Toggle sidebar",
      "nav": "Sidebar navigation"
    }
  },
  "topbar": {
    "home": "Home",
    "aria": {
      "search": "Search",
      "notifications": "Notifications",
      "toggleToDark": "Switch to dark mode",
      "toggleToLight": "Switch to light mode"
    },
    "menu": {
      "language": "Language",
      "english": "English",
      "arabic": "Arabic",
      "profile": "Profile",
      "changePassword": "Change Password",
      "mood": "Mood",
      "dark": "Dark",
      "light": "Light",
      "logout": "Logout"
    }
  },
  "userProfile": {
    "pageTitle": "User Profile",
    "addNewUser": "Add New User",
    "tabs": {
      "personalInformation": "Personal Information",
      "roleStatus": "Role & Status",
      "permissionsPrivilege": "Permissions & Privilege"
    },
    "buttons": {
      "edit": "Edit",
      "cancel": "Cancel",
      "save": "Save",
      "back": "Back"
    },
    "avatar": {
      "userPicture": "User Picture",
      "deleteConfirmHeader": "Delete Profile Picture",
      "deleteConfirmMessage": "Are you sure you want to delete your profile picture?",
      "deleteSuccess": "Profile picture deleted successfully"
    },
    "fields": {
      "firstName": "First Name",
      "lastName": "Last Name",
      "userName": "User Name",
      "password": "Password",
      "nationalId": "National ID/Iqama",
      "phoneNumber": "Phone Number",
      "emailAddress": "Email Address",
      "userStatus": "User Status",
      "userRole": "User Role",
      "assignedPermissionGroup": "Assigned Permission Group"
    },
    "placeholders": {
      "firstName": "First Name",
      "lastName": "Last Name",
      "userName": "User Name",
      "nationalId": "National ID/Iqama",
      "phoneNumber": "Phone Number",
      "emailAddress": "Email Address",
      "selectStatus": "Select Status",
      "selectRole": "Select Role",
      "selectPermissionGroup": "Select Permission Group"
    },
    "options": {
      "status": {
        "pending": "Pending",
        "active": "Active",
        "inactive": "Inactive"
      },
      "permissionGroup": {
        "adminGroup": "Admin Group",
        "editorGroup": "Editor Group",
        "viewerGroup": "Viewer Group"
      }
    },
    "validation": {
      "userNameExistsError": "Username already exists"
    },
    "messages": {
      "copied": "Copied",
      "emailCopied": "Email copied to clipboard",
      "copyEmail": "Copy email",
      "permissionsManagedByPolicy": "Permissions",
      "permissionsManagedByPolicyHint": "Permission groups are managed by roles and policies and are not editable here."
    },
    "otp": {
      "title": "OTP Verification",
      "verifyEmail": "Verify Email Address",
      "verifyPhone": "Verify Phone Number",
      "sending": "Sending verification code…",
      "description": "We've sent a 6-digit code to",
      "instructionPhone": "The verification code has been sent to your Phone number",
      "instructionEmail": "The verification code has been sent to your Email address",
      "invalidOtpShort": "Invalid OTP",
      "close": "Close",
      "verify": "Verify",
      "verified": "Verified successfully!",
      "resend": "Resend Code",
      "sendFailed": "Failed to send the code. Please try again.",
      "invalidOtp": "Invalid code. Please check and try again.",
      "verifyFailed": "Verification failed. Please try again.",
      "expired": "The code has expired. Please request a new one.",
      "verificationRequired": "Verification required before saving",
      "saveBlockedHint": "Please verify the changed field before saving",
      "resetField": "Reset to original value",
      "status": {
        "verified": "Verified",
        "unverified": "Not verified"
      }
    },
    "validation": {
      "phoneRequired": "Phone number is required",
      "emailRequired": "Email address is required",
      "incorrectFormat": "Incorrect format"
    }
  },
  "login": {
    "getStarted": {
      "title": "Get Started",
      "subtitle": "Enter your credentials to access the portal",
      "fields": {
        "userName": "Username",
        "password": "Password"
      },
      "placeholders": {
        "userName": "Enter your username",
        "password": "Enter your password"
      },
      "forgotPassword": "Forgot Password?",
      "loginButton": "Login",
      "errors": {
        "invalidCredentials": "Incorrect username or password",
        "usernameIncorrect": "Username is incorrect",
        "userLocked": "This user has been Locked, you can not perform this action. please contact your manager.",
        "userSuspended": "This user has been suspended, you can not perform this action. please contact your manager.",
        "userPending": "You cannot perform this action. The user is in Pending status and must login first",
        "userDeleted": "This user has been deleted, please contact your manager.",
        "networkError": "Unable to connect to the server. Please check your connection and try again.",
        "required": "This field is required"
      }
    },
    "otp": {
      "title": "Enter OTP",
      "subtitle": "Please enter your verification code",
      "hint": "We have sent a verification code to your registered ID",
      "resendIn": "Resend OTP in",
      "resend": "Resend",
      "verify": "Verify",
      "backToLogin": "Back to Login",
      "successTitle": "OTP Verified Successfully",
      "successSubtitle": "You will be redirected shortly",
      "successLabel": "Successfully",
      "successSubtitleAlt": "Your OTP has been successfully Verified",
      "errors": {
        "invalidOtp": "Invalid OTP. Please try again.",
        "expired": "OTP has expired. Please resend.",
        "networkError": "Unable to connect to the server. Please check your connection and try again.",
        "resendFailed": "Could not resend the code. Please try again."
      }
    },
    "forgotPassword": {
      "title": "Change Password",
      "subtitle": "Please enter a new password",
      "fields": {
        "currentPassword": "Current Password",
        "newPassword": "New Password",
        "confirmPassword": "Confirm Password"
      },
      "placeholders": {
        "currentPassword": "Enter your current password",
        "newPassword": "Enter new password",
        "confirmPassword": "Confirm new password"
      },
      "verifyButton": "Verify",
      "verifying": "Verifying…",
      "verified": "Verified",
      "changeButton": "Change Password",
      "backToLogin": "Back to Login",
      "errors": {
        "currentPasswordInvalid": "Current password is incorrect",
        "passwordMismatch": "Password confirmation doesn't match!",
        "networkError": "Unable to connect to the server. Please check your connection and try again.",
        "changeFailed": "Could not change your password. Please try again."
      }
    },
    "changePassword": {
      "title": "Change Password",
      "subtitle": "Please enter a new password",
      "fields": {
        "currentPassword": "Current Password",
        "newPassword": "New Password",
        "confirmPassword": "Confirm Password"
      },
      "placeholders": {
        "currentPassword": "Enter your current password",
        "newPassword": "Enter new password",
        "confirmPassword": "Confirm new password"
      },
      "verifyButton": "Verify",
      "verifying": "Verifying…",
      "verified": "Verified",
      "changeButton": "Change Password",
      "backToLogin": "Back to Login",
      "errors": {
        "currentPasswordInvalid": "Current password is incorrect",
        "passwordMismatch": "Password confirmation doesn't match!",
        "networkError": "Unable to connect to the server. Please check your connection and try again.",
        "changeFailed": "Could not change your password. Please try again."
      }
    },
    "forgotPasswordFlow": {
      "title": "Forgot Password",
      "subtitle": "Enter your user ID",
      "fields": {
        "userName": "Username",
        "phoneNumber": "Phone Number",
        "mobileNumber": "Mobile Number"
      },
      "placeholders": {
        "userName": "Enter your username",
        "phoneNumber": "Enter your phone number",
        "mobileNumber": "Enter your mobile number"
      },
      "submitButton": "Next",
      "backToLogin": "Back to Login",
      "errors": {
        "required": "This field is required",
        "requestFailed": "Unable to process your request. Please try again.",
        "networkError": "Unable to connect to the server. Please check your connection and try again."
      },
      "otp": {
        "title": "Verify OTP",
        "subtitle": "Please enter the verification code sent to your phone",
        "hint": "We have sent a verification code to your phone number",
        "resend": "Resend",
        "successTitle": "OTP Verified Successfully",
        "successSubtitle": "Please set your new password",
        "errors": {
          "invalidOtp": "Invalid OTP. Please try again.",
          "networkError": "Unable to connect to the server. Please check your connection and try again.",
          "resendFailed": "Could not resend the code. Please try again."
        }
      },
      "reset": {
        "title": "Reset Password",
        "subtitle": "Please enter a new password",
        "fields": {
          "newPassword": "New Password",
          "confirmPassword": "Confirm Password"
        },
        "placeholders": {
          "newPassword": "Enter new password",
          "confirmPassword": "Confirm new password"
        },
        "submitButton": "Reset Password",
        "errors": {
          "passwordMismatch": "Password confirmation doesn't match!"
        },
        "messages": {
          "success": "Password reset successfully",
          "failed": "Failed to reset password. Please try again"
        }
      },
      "done": {
        "title": "Reset Password",
        "successTitle": "Password Updated",
        "subtitle": "Your password has been reset successfully",
        "returnToLogin": "Return to Login"
      }
    }
  },
  "changePassword": {
    "title": "Change Password",
    "subtitle": "Please enter a new password",
    "close": "Close",
    "fields": {
      "currentPassword": "Current Password",
      "newPassword": "New Password",
      "confirmPassword": "Confirm Password"
    },
    "placeholders": {
      "currentPassword": "Enter Current Password",
      "newPassword": "Enter New Password",
      "confirmPassword": "Confirm New Password"
    },
    "errors": {
      "currentPasswordInvalid": "Current password is incorrect",
      "passwordMismatch": "Password confirmation doesn't match!"
    },
    "buttons": {
      "changePassword": "Change Password",
      "cancel": "Cancel",
      "save": "Save"
    },
    "messages": {
      "success": "Password changed successfully",
      "failed": "Failed to change password. Please try again"
    }
  },
  "contactGroups": {
    "title": "Contact Groups",
    "sharedGroups": "Shared Groups",
    "selectNode": "Select a node to view contact groups",
    "addContactGroup": "Create Contact Group",
    "noGroups": "No contact groups found.",
    "tabs": {
      "contactGroups": "Contact Groups",
      "sharedGroups": "Shared Groups"
    },
    "list": {
      "columns": {
        "contactGroupId": "Contact Group ID",
        "name": "Name",
        "referenceId": "Reference ID",
        "createdBy": "Created by",
        "creationDate": "Creation date",
        "uploaded": "Uploaded",
        "status": "Status",
        "sharedWith": "Shared with",
        "actions": "Actions"
      },
      "sharedMore": "+{{count}}",
      "allUsers": "All Users"
    },
    "status": {
      "inProgress": "In progress",
      "completed": "Completed",
      "deleted": "Deleted"
    },
    "actions": {
      "viewMore": "View More",
      "moreDetails": "View Details",
      "view": "View",
      "share": "Share",
      "delete": "Delete"
    },
    "deleteSuccess": "Contact group has been deleted successfully",
    "shareSuccess": "Contact group has been shared successfully",
    "validation": {
      "nameRequired": "Contact group name is required",
      "nameTooShort": "Contact group name must be at least 2 characters",
      "nameTooLong": "Contact group name cannot exceed {{max}} characters",
      "nameInvalidChars": "Letters, digits, and underscore only — no spaces or other special characters",
      "referenceIdTooShort": "Reference ID must be at least {{min}} characters",
      "referenceIdTooLong": "Reference ID cannot exceed {{max}} characters",
      "referenceIdInvalid": "Reference ID must be alphanumeric or a valid GUID",
      "fileRequired": "Contact file is required",
      "columnNameRequired": "Column name is required",
      "columnNameTooShort": "Column name must be at least {{min}} characters",
      "columnNameTooLong": "Column name cannot exceed {{max}} characters",
      "columnNameInvalidChars": "Column names must start with a letter and contain only letters, digits, and underscores",
      "columnNameDuplicate": "Duplicate column name: {{name}}",
      "sharePolicyMutex": "Cannot select specific users when sharing with all users"
    },
    "create": {
      "title": "New Contact Group",
      "steps": {
        "uploadDetails": "Upload File",
        "previewConfigure": "Preview & Map",
        "shareGroup": "Share",
        "reviewCreate": "Review & Submit"
      },
      "title2": "Create New Contact Group",
      "stepCounter": "step {{current}}/{{total}}",
      "stepWord": "step",
      "groupNameLabel": "Group Name",
      "groupNamePlaceholder": "e.g. NewlyJoining (max 50 characters)",
      "referenceIdLabel": "Reference ID",
      "referenceIdPlaceholder": "e.g. 111222",
      "contactFileLabel": "Contact File",
      "uploadFieldLabel": "Spreadsheet or document",
      "uploadFileButton": "Upload File",
      "dropFileHint": "Drag your CSV or Excel file here",
      "dropFileBrowse": "or click to browse",
      "downloadSampleTemplate": "Download sample template",
      "firstRowHelper": "First row of the file is treated as column names. You'll review and rename them in the next step.",
      "supportedFormatsList": "{{types}} · up to {{size}} MB",
      "supportedFormats": "supports .xlsx, .xls, .csv files / max size {{size}}MB",
      "errors": {
        "invalidFormat": "Invalid file format. Please upload a supported file type CSV, .xlsx, .xls",
        "emptyFile": "The uploaded file is empty. Please upload a file that contains data.",
        "fileTooLarge": "File exceeds the maximum allowed size of {{size}}MB",
        "requiredFields": "Please fill required fields",
        "uploadConfigFailed": "Failed to load upload configuration. Please try again."
      },
      "retryUpload": "Click or drop to try again",
      "preview": {
        "firstRowIsHeader": "The first row is the header",
        "columnsTitle": "Columns",
        "columnsHint": "Uncheck To Ignore",
        "dataPreviewTitle": "Data Preview",
        "dataPreviewHint": "first 5 rows",
        "underscoreHint": "Spaces will be replaced with underscores (_)",
        "noData": "No data available",
        "noColumnsSelected": "None",
        "loadingLabel": "Uploading file",
        "processingLabel": "Analyzing file"
      },
      "share": {
        "sharedWith": "Shared With",
        "normalUser": "Normal User",
        "multipleSelect": "Multiple Select",
        "searchPlaceholder": "Search",
        "allUsers": "All Users",
        "selectedUsers": "Selected Users",
        "unselectAll": "Unselect All",
        "noUsersSelected": "No users selected",
        "allUsersSelected": "All users are selected",
        "stepHint": "Optionally share this contact group with specific users, or with everyone. You can change this later."
      },
      "review": {
        "groupName": "Contact Group Name",
        "referenceId": "Reference ID",
        "originalFile": "Original Contact file",
        "contactCount": "Number of uploaded contact",
        "sharedWith": "Shared with",
        "sharedWithMore": "Shared with more",
        "notShared": "Not shared",
        "dataPreview": "Data Preview"
      },
      "successMessage": "Contact group has been created successfully",
      "errorMessage": "Failed to create contact group. Please try again."
    },
    "detail": {
      "pageTitle": "Contact Group Details",
      "groupDetails": "Group details",
      "edit": "Edit",
      "backToList": "Back to list",
      "noContacts": "No contacts found.",
      "shareHint": "Use the Share button to manage who can see this group.",
      "fields": {
        "contactGroupName": "Name",
        "referenceId": "Reference ID",
        "contactId": "Contact ID",
        "creationDate": "Creation Date",
        "createdAt": "Created at",
        "numberOfContacts": "Uploaded contacts",
        "status": "Status",
        "createdBy": "Created by",
        "sharedWith": "Shared with",
        "deletionDate": "Deletion Date",
        "selectUsers": "Select users to share with",
        "multipleSelect": "Multiple Select"
      },
      "table": {
        "title": "Contact Group",
        "items": "items",
        "columns": {
          "id": "#",
          "firstName": "First Name",
          "lastName": "Last Name",
          "email": "Email",
          "mobile": "Mobile",
          "company": "Company",
          "notes": "Notes"
        },
        "downloadOriginal": "Download Original File",
        "downloadContactGroup": "Download Contact Group"
      },
      "status": {
        "inProgress": "In Progress",
        "completed": "Completed",
        "failed": "Failed",
        "unknown": "Unknown"
      },
      "editPageTitle": "Edit Contact Group",
      "sharePageTitle": "Share Contact Group",
      "cancel": "Cancel",
      "save": "Save",
      "sharedWithAllUsers": "All Users",
      "validation": {
        "nameRequired": "Contact group name is required"
      },
      "messages": {
        "updateSuccess": "Contact group updated successfully",
        "updateError": "Failed to update contact group",
        "shareSuccess": "Contact group sharing updated successfully",
        "shareError": "Failed to update contact group sharing"
      },
      "processing": {
        "title": "Processing Contact Group",
        "message": "This contact group is still being processed. The contacts table and download options will be available once processing is complete."
      },
      "error": {
        "title": "Failed to load contact group",
        "message": "Please try again or go back to the list."
      },
      "downloadInProgress": "Download is not available while the group is being processed"
    }
  },
  "hierarchy": {
    "title": "Organization Hierarchy",
    "subtitle": "Manage clients, sub-nodes, and users across the organization tree.",
    "unsavedChanges": {
      "title": "You have unsaved changes",
      "infoBody": "You've edited the Information panel and haven't saved yet. Leaving now will discard your changes.",
      "settingsBody": "You've edited the Settings tab and haven't saved yet. Leaving now will discard your changes.",
      "wizardBody": "You've entered information that hasn't been saved yet. Leaving now will discard your changes.",
      "hint": "Choose Stay to keep editing, or Discard & leave to drop your unsaved edits.",
      "discard": "Discard & leave",
      "stay": "Stay on page"
    },
    "validation": {
      "required": "This field is required",
      "whitespace": "No leading, trailing, or repeated spaces",
      "noSpacesAllowed": "Spaces are not allowed",
      "accountNameCharset": "Allowed: letters, digits, spaces, &, apostrophe, hyphen",
      "personNameCharset": "Allowed: letters, digits, spaces, apostrophe, hyphen",
      "userNameCharset": "Allowed: letters, digits, _, +, @, ., - or a valid email",
      "minLength": "Minimum {{min}} characters required",
      "maxLength": "Maximum {{max}} characters allowed",
      "lettersOnly": "Only letters are allowed",
      "lettersAndDigits": "Only letters and digits are allowed",
      "lettersAndDigitsOnly": "Letters and digits only — no spaces or special characters",
      "lettersDigitsOrEmail": "Letters, digits and underscore, or a valid email format",
      "startsWithLetter": "Must start with a letter",
      "nationalIdLength": "Must be exactly 10 digits",
      "nationalIdExact10Digits": "National ID must be exactly 10 digits",
      "invalidEmail": "Please enter a valid email address",
      "invalidPhone": "Please enter a valid phone number",
      "invalidSaudiPhone": "Please enter a valid Saudi phone number",
      "invalidIp": "Invalid IP address: {{value}}",
      "invalidList": "Invalid list",
      "invalidLimit": "Invalid limit",
      "notInteger": "Must be an integer",
      "notNumber": "Must be a valid number",
      "digitsOnly": "Digits only — no other characters",
      "outOfRange": "Value must be between {{min}} and {{max}}",
      "invalidEnum": "Value not allowed",
      "invalidRole": "Invalid role",
      "adminAssignmentForbidden": "You cannot assign an admin role",
      "duplicateAccountName": "Account name is already in use",
      "duplicateUsername": "Username already exists",
      "passwordTooShort": "Password must be at least {{min}} characters",
      "passwordRequiresUppercase": "Password must contain an uppercase letter",
      "passwordRequiresLowercase": "Password must contain a lowercase letter",
      "passwordRequiresDigit": "Password must contain a digit",
      "passwordRequiresSpecialChar": "Password must contain a special character",
      "passwordsDoNotMatch": "Passwords do not match",
      "parentNotFound": "Parent node not found",
      "cannotMoveUnderSelf": "Cannot move a node under itself",
      "hierarchyDepthExceeded": "Hierarchy depth exceeded (cap {{cap}})",
      "normalUserLimitReached": "Normal user limit reached for this account.",
      "ownerMissing": "Account owner details are required to create the account.",
      "stepHasErrors": "This step has validation errors",
      "unknown": "Invalid value"
    },
    "error": {
      "title": {
        "400": "Validation error (HTTP 400)",
        "403": "Permission denied (HTTP 403)",
        "404": "Not found (HTTP 404)",
        "409": "Conflict (HTTP 409)",
        "422": "Business rule rejected (HTTP 422)",
        "500": "Server error (HTTP 500)",
        "default": "An error occurred (HTTP {status})"
      },
      "countOne": "1 error",
      "countOther": "{count} errors",
      "network": "Network error. Please check your connection and try again.",
      "unknown": "An unexpected error occurred. Please try again.",
      "loadFailed": "Couldn't load the organization hierarchy"
    },
    "empty": {
      "title": "No nodes yet",
      "description": "There are no organization nodes to display yet."
    },
    "tabs": {
      "hierarchy": "Hierarchy",
      "commChannels": "CommChannels & Services",
      "apps": "Apps & Services",
      "settings": "Settings",
      "comingSoon": "Coming soon."
    },
    "settings": {
      "title": "Settings",
      "saved": "Settings saved",
      "edit": "Edit",
      "cancel": "Cancel",
      "save": "Save Changes",
      "password": "Password Security Level",
      "passwordSecurity": "Password Security Level",
      "passwordNormal": "Normal",
      "passwordNormalDesc": "Username, Password, OTP",
      "passwordAdvanced": "Advanced",
      "passwordAdvancedDesc": "Comply with NCA regulations, press here for more details.",
      "maxNormal": "Max Normal User Limit",
      "maxSystem": "Max System User Limit",
      "maxNode": "Max Node Level",
      "currentExisting": "Current existing",
      "maxAllowed": "Max allowed",
      "currentVsMax": "Current existing / Max allowed",
      "limits": "Account Limitations",
      "accountLimitations": "Account Limitations",
      "allowedIps": "Allowed IPs",
      "ipAdd": "IP Address",
      "addIp": "IP Address",
      "noIps": "No IPs configured",
      "ipPlaceholder": "Enter IP Address (IPv4 or IPv6) and press Enter",
      "ipNote": "* Restrict platform access and limit it from these IPs only",
      "actions": {
        "saveChanges": "Save Changes"
      },
      "fields": {
        "maxNormal": { "label": "Max normal user limit" },
        "maxSystem": { "label": "Max System User Limit" },
        "maxNode":   { "label": "Max Node Level" }
      },
      "confirmDeleteIp": {
        "title": "Delete IP",
        "message": "Are you sure you want to delete {{ip}}?"
      },
      "security": {
        "normal": {
          "label": "Normal",
          "desc": "Username, Password, OTP"
        },
        "advanced": {
          "label": "Advanced",
          "desc": "Comply with NCA regulations, press here for more details.",
          "descPrefix": "Comply with NCA regulations,",
          "descLink": "press here for more details."
        }
      },
      "validation": {
        "security": { "required": "Password security level is required" }
      },
      "error": {
        "title": "Unable to load settings",
        "loadFailed": "We couldn't load the account settings. Please retry.",
        "onlyMainNode": "Settings are only available on main account nodes.",
        "saveFailed": "Saving the settings failed. Please try again.",
        "unauthorizedQuota": "Your role can't edit account limitations."
      },
      "noViewableSections": {
        "title": "No settings available",
        "detail": "You don't have permission to view any settings for this account."
      },
      "success": {
        "title": "Settings updated",
        "detail": "Account settings were saved successfully."
      },
      "exitConfirm": {
        "title": "Discard changes?",
        "body": "You have unsaved changes in the Settings tab. Leaving will discard them.",
        "stay": "Keep editing",
        "discard": "Discard changes"
      }
    },
    "applications": {
      "title": "Applications",
      "of": "of",
      "next": "Next",
      "empty": "No applications configured for this node.",
      "col": {
        "visibility": "Visibility",
        "name": "Name",
        "priceType": "Price Type",
        "priceValue": "Price Value",
        "firstActivation": "First Activation Date",
        "activationDate": "Activation Date",
        "renewDate": "Renew Date",
        "status": "Status",
        "action": "Action"
      },
      "status": {
        "active": "Active",
        "inactive": "Inactive",
        "expired": "Expired",
        "disable": "Disable",
        "pendingActivation": "Pending Activation",
        "pendingPayment": "Pending Payment"
      },
      "priceType": {
        "oneTime": "OneTime",
        "monthly": "Monthly",
        "quarterly": "Quarterly",
        "yearly": "Yearly"
      },
      "edit": {
        "newPriceType": "New Price Type",
        "newPriceValue": "New Price Value",
        "effectiveDate": "Effective Date",
        "set": "Set",
        "save": "Save",
        "cancel": "Cancel"
      },
      "actions": {
        "edit": "Edit",
        "delete": "Delete",
        "cancel": "Cancel",
        "rowMenu": "Row actions",
        "disable": "Disable",
        "enable": "Enable",
        "doPayment": "Do Payment",
        "editPriceType": "Edit Price Type",
        "editPriceValue": "Edit Price Value"
      },
      "confirmDeleteShadow": {
        "priceTypeMessage": "Are you sure to delete the new price type?",
        "priceValueMessage": "Are you sure to delete the new price value?"
      },
      "emptyTitle": "No applications",
      "emptyBody": "There are no applications configured for this node yet.",
      "ibModal": {
        "title": "Insufficient Balance Detected",
        "subtitle": "Please prioritize the Communication Channel wallet to deduct the required amount and continue the process.",
        "currentBalance": "Current Balance",
        "required": "Required Amount",
        "currency": "SAR",
        "dragLabel": "Drag to change priority:",
        "firstAuto": "The first channel will be used automatically.",
        "cancel": "Cancel",
        "proceed": "Proceed Payment",
        "moveUp": "Move up",
        "moveDown": "Move down",
        "channels": {
          "whatsapp": "WhatsApp",
          "voice": "Voice",
          "aiChatgpt": "AI-ChatGPT"
        }
      }
    },
    "commChannels": {
      "title": "CommChannels & Services",
      "loadError": "Failed to load channels & services"
    },
    "appsServices": {
      "title": "Apps & Services",
      "loadError": "Failed to load applications"
    },
    "services": {
      "mutationSuccess": "Changes saved successfully.",
      "mutationError": "Could not save changes. Please try again.",
      "actionInProgressTitle": "Action in progress"
    },
    "tree": {
      "placeholder": "Select a node from the tree to view its users."
    },
    "status": {
      "active": "Active",
      "pending": "Pending",
      "suspended": "Suspended",
      "locked": "Locked",
      "deleted": "Deleted",
      "inactive": "Inactive"
    },
    "col": {
      "username": "Username",
      "firstName": "First Name",
      "email": "Email",
      "phone": "Phone Number",
      "role": "Role",
      "permGroup": "Permission Group",
      "status": "Status",
      "actions": "Actions",
      "visible": "Visible",
      "name": "Name",
      "priceType": "Price Type",
      "price": "Price"
    },
    "priceType": {
      "OneTime": "One-time",
      "Monthly": "Monthly",
      "Quarterly": "Quarterly",
      "Yearly": "Yearly"
    },
    "drawer": {
      "title": {
        "add": "Add Node",
        "edit": "Edit Node"
      },
      "addNode": {
        "title": "Add Node",
        "save": "Add"
      },
      "editNode": {
        "title": "Edit Node",
        "save": "Update"
      },
      "field": {
        "name": "Name"
      },
      "placeholder": {
        "name": "Enter node name"
      },
      "nameLabel": "Node Name",
      "namePlaceholder": "Enter node name",
      "parent": "Parent",
      "under": "Under",
      "cancel": "Cancel",
      "save": "Update",
      "add": "Add",
      "context": {
        "addingHere": "Adding sub-node here",
        "renamingInside": "Renaming inside",
        "typedPlaceholder": "Your new node name will appear here…",
        "typeRoot": "Root",
        "typeClient": "Client",
        "typeSubNode": "Sub-node",
        "levelLabel": "Level",
        "helperAdd": "This sub-node will be created under {parent}.",
        "helperEdit": "This node will be renamed inside {parent}.",
        "editingBadge": "Edit Mode",
        "prevBrother": "Previous brother",
        "nextBrother": "Next brother"
      },
      "errors": {
        "required": "Node name is required",
        "minLength": "At least 2 characters required",
        "maxLength": "Maximum 30 characters allowed",
        "noEdgeWhitespace": "No leading or trailing spaces",
        "whitespace": "Name cannot start or end with a space",
        "pattern": "Must start with a letter",
        "invalidName": "Invalid node name",
        "duplicateNodeName": "A node with this name already exists at the same level"
      },
      "success": {
        "add": "Sub-node added",
        "edit": "Node renamed"
      },
      "error": "Operation failed"
    },
    "pager": {
      "showing": "Showing",
      "from": "from",
      "of": "of",
      "rowsPerPage": "Rows per page"
    },
    "users": {
      "title": "Users",
      "moreDetails": "More Details",
      "rowActions": "Row actions",
      "actions": "Actions",
      "empty": "No users found for this node.",
      "emptyTitle": "No data found",
      "emptyBody": "There is no data found to be previewed.",
      "emptyHint": "This node has no users assigned yet. Use the button above to bring people in.",
      "role": "Role",
      "permGroup": "Permission Group",
      "bulk": {
        "selectedCount": "{{count}} selected",
        "deselectAll": "Deselect all",
        "bulkSuspend": "Suspend",
        "bulkActivate": "Activate"
      }
    },
    "actions": {
      "information": "Information",
      "addNode": "Add Node",
      "editNode": "Edit Node",
      "editInfo": "Edit Information",
      "addClient": "Add Client",
      "addUser": "Add User",
      "backToUsers": "Back to Users",
      "cancel": "Cancel",
      "save": "Save",
      "clearAll": "Clear all",
      "bulkAction": "Bulk action",
      "nextPage": "Next",
      "previousPage": "Previous",
      "retry": "Retry"
    },
    "pagination": {
      "of": "of",
      "next": "Next"
    },
    "kanban": {
      "empty": "No users in this status.",
      "col": {
        "active": "Active",
        "pending": "Pending",
        "suspended": "Suspended",
        "locked": "Locked",
        "deleted": "Deleted"
      }
    },
    "otp": {
      "title": "OTP Verification",
      "introPhone": "The verification code has been sent to your Phone number",
      "introEmail": "The verification code has been sent to your Email address",
      "titlePhone": "Verify Phone Number",
      "titleEmail": "Verify Email Address",
      "intro": "We sent a 6-digit verification code to",
      "confirm": "Verify",
      "invalid": "Invalid code — please try again",
      "expired": "Code expired — please resend",
      "expiresIn": "Expires in",
      "resend": "Resend",
      "sending": "Sending verification code…",
      "verifying": "Verifying…",
      "success": "Verified successfully",
      "sendFailed": "Could not send the verification code — please try again",
      "errorTitle": "Verification error",
      "zeroLength": "The verification service returned an invalid code length. Please try again, or contact support if the problem persists."
    },
    "info": {
      "title": "Information",
      "empty": "No information available for this node.",
      "clientPicture": "Client Picture",
      "required": "* ",
      "errorRequired": "Please fill this field",
      "uploadHint": "Drag photo or click to upload",
      "uploadLabel": "Upload Photo",
      "actions": {
        "editInfo": "Edit Info",
        "saveChanges": "Save Changes",
        "backToUsers": "Back to users"
      },
      "success": {
        "title": "Information updated",
        "detail": "Account information was saved successfully."
      },
      "error": {
        "title": "Unable to load information",
        "loadFailed": "We couldn't load the account information. Please retry.",
        "saveFailed": "Saving the information failed. Please try again.",
        "duplicateName": "An account with this name already exists.",
        "nodeNotFound": "Selected node no longer exists. Refresh the tree.",
        "onlyMainNode": "Information editing is only available on main account nodes."
      },
      "validation": {
        "countryRequiredWhenCity": "Country is required when City is provided.",
        "cityRequiredWhenDistrict": "City is required when District is provided.",
        "cityRequiredWhenStreet": "City is required when Street is provided."
      },
      "exitConfirm": {
        "title": "Discard changes?",
        "body": "You have unsaved changes in the Information panel. Leaving will discard them.",
        "stay": "Keep editing",
        "discard": "Discard changes"
      },
      "unsavedChanges": {
        "title": "Discard unsaved changes?",
        "body": "You have unsaved changes in the Information panel. Leaving now will discard them.",
        "proceed": "Discard & leave",
        "cancel": "Keep editing"
      },
      "tooltip": {
        "falconOnly": "Only Falcon administrators can edit this field."
      },
      "sections": {
        "identity": "Identity",
        "business": "Account Official",
        "address": "Address",
        "identifiers": "Identifiers"
      },
      "fields": {
        "accountName": "Account Name",
        "accountId": "Account ID",
        "financeId": "Finance ID",
        "classification": "Classification Category",
        "subClassification": "Classification Sub Category",
        "accountOfficial": "Account Official",
        "entityName": "Entity Name",
        "authorityType": "Authority Letter Type",
        "sector": "Sector",
        "budget": "Budget No.",
        "country": "Country",
        "city": "City",
        "district": "District",
        "street": "Street",
        "building": "Building Number",
        "postal": "Postal Code",
        "addlAddr": "Additional Address",
        "anotherId": "Another ID",
        "vat": "VAT Registration Number",
        "cr": "Commercial Registration",
        "financeIdShort": "Finance ID",
        "address": "Address"
      },
      "classifications": {
        "government": "Government",
        "banking": "Banking",
        "healthcare": "Healthcare",
        "energy": "Energy",
        "retail": "Retail",
        "organization": "Organization",
        "subNode": "Sub-Node"
      },
      "subClassifications": {
        "publicSector": "Public Sector",
        "commercial": "Commercial",
        "nonProfit": "Non-profit"
      },
      "authorities": {
        "government": "Government",
        "private": "Private",
        "jointVenture": "Joint Venture",
        "organizationalUnit": "Organizational Unit"
      },
      "countries": {
        "ksa": "Kingdom Of Saudi Arabia",
        "saudiArabia": "Saudi Arabia",
        "uae": "UAE",
        "egypt": "Egypt",
        "jordan": "Jordan"
      },
      "cities": {
        "riyadh": "Riyadh",
        "jeddah": "Jeddah",
        "dammam": "Dammam",
        "mecca": "Mecca"
      }
    },
    "nodeType": {
      "root": "Root",
      "client": "Client",
      "sub-node": "Sub-node"
    },
    "view": {
      "list": "List",
      "board": "Board",
      "tree": "Tree",
      "chart": "Chart"
    },
    "userDetails": {
      "edit": "Edit Info",
      "saved": "Information updated",
      "loadFailed": "We couldn't load this user's details. Please retry.",
      "verify": "Verify",
      "verified": "Verified",
      "notVerified": "Not verified",
      "verifyBeforeSave": "Verify phone and email before saving",
      "verifyTooltip": "You can't save yet — click Verify on the phone and email fields to confirm them first.",
      "errorRequired": "Please fill this field",
      "errors": {
        "required": "This field is required",
        "tooShort": "Must be at least 2 characters",
        "tooLong": "Maximum length exceeded",
        "whitespace": "No leading or trailing spaces",
        "lettersAndDigitsOnly": "Allowed: letters, digits, spaces, apostrophe, hyphen",
        "startsWithLetter": "Must start with a letter",
        "invalidEmail": "Please enter a valid email address",
        "invalidPhone": "Please enter a valid phone number",
        "nationalIdExact10": "National ID must be exactly 10 digits",
        "fieldNotEditable": "This field can't be changed in the current state.",
        "statusNotAllowed": "That status change isn't allowed from the current status.",
        "roleNotAllowed": "You can't assign that role to this user.",
        "permissionGroupNotPersisted": "The permission group can't be saved yet.",
        "verificationRequired": "Verify the changed phone/email before saving."
      },
      "saveErrorTitle": "Couldn't save changes",
      "emailPhoneExclusive": "You cannot edit both the email and phone number at the same time; only one field can be updated per request.",
      "fullName": "Full Name",
      "firstName": "First Name",
      "lastName": "Last Name",
      "username": "User Name",
      "nationalId": "National ID / Iqama",
      "phone": "Phone Number",
      "email": "Email Address",
      "status": "User Status",
      "role": "User Role",
      "permGroup": "Permission Group",
      "permGroupLabel": "Assigned Permission Group",
      "checkerLevel": "CommChannel Checker Level",
      "userProfile": "User Profile",
      "backToUsers": "Back to Users",
      "permissionsSummary": "Permissions Summary",
      "joined": "Joined",
      "changeStatus": "Change status",
      "changeRole": "Change role",
      "editPhoto": "Replace photo",
      "removePhoto": "Remove photo",
      "photoTooLarge": "File too large. Maximum size is {{maxMb}} MB.",
      "copyEmail": "Copy email",
      "unsavedBody": "You have unsaved changes to this user. Discard them and leave?",
      "menu": {
        "myProfile": "My Profile"
      },
      "selfNotice": {
        "notActive": "Your account isn't active, so you can't edit your profile right now.",
        "pending": "Your account is pending activation. You can't view or edit your profile until it becomes active."
      },
      "statusNotice": {
        "suspended": "This user is suspended. Change their status to Active before editing their information.",
        "locked": "This user is locked. Change their status to Pending before editing their information.",
        "deleted": "This user is deleted. Restore them to Active before editing their information."
      },
      "tabs": {
        "personal": "Personal Information",
        "role": "Role & Status",
        "permissions": "Permissions & Privilege"
      },
      "checker": {
        "whatsapp": "WhatsApp",
        "voice": "Voice",
        "none": "None",
        "level1": "Checker Level One",
        "level2": "Checker Level Two"
      },
      "permGroups": {
        "admin": "Admin Group",
        "readonly": "Read Only Group",
        "ops": "Operations Group",
        "support": "Support Group"
      },
      "statuses": {
        "active": "Active",
        "pending": "Pending",
        "suspended": "Suspended",
        "locked": "Locked",
        "deleted": "Deleted"
      },
      "statusDesc": {
        "active": "User has full access",
        "pending": "Awaiting verification",
        "suspended": "Temporarily blocked",
        "locked": "Security lock — needs admin reset",
        "deleted": "Soft-deleted, archived"
      },
      "roleDesc": {
        "systemAdmin": "Full administrative privileges",
        "products": "Catalog and service management",
        "operation": "Day-to-day operations and reports",
        "accountOwner": "Full account ownership and control",
        "accountAdmin": "Account administration privileges",
        "accountUser": "Standard account access"
      }
    },
    "chart": {
      "legendRoot": "Root",
      "legendClient": "Client",
      "legendNode": "Node",
      "hint": "Click a card to focus · drag to pan · scroll to zoom",
      "child": "child",
      "children": "children",
      "usersSuffix": "users",
      "zoomIn": "Zoom in",
      "zoomOut": "Zoom out",
      "fitToView": "Fit to view",
      "resetView": "Reset",
      "exitFocus": "Exit focus",
      "legend": "Legend",
      "focus": "Focus",
      "reset": "Reset"
    },
    "addClient": {
      "title": "Create New Client",
      "stepCounter": "step",
      "clientPicture": "Client Picture",
      "ownerPicture": "Owner Picture",
      "photoHint": "PNG, JPG up to 1MB",
      "photoTooLarge": "File too large. Maximum size is {{maxMb}} MB.",
      "dragHint": "Drag a photo here or",
      "uploadPhoto": "Upload Photo",
      "accountId": "Account ID",
      "statusInactive": "Inactive",
      "accountNameTaken": "*Account name is already in use",
      "checking": "Checking availability…",
      "deliveryMethodLabel": "Delivery Method",
      "success": {
        "title": "Client created",
        "detail": "{accountName} was created successfully"
      },
      "error": "Failed to create client",
      "delivery": {
        "email": "Email",
        "sms": "SMS",
        "both": "Both"
      },
      "steps": {
        "info": "Client Information",
        "settings": "Settings",
        "channels": "CommChannels",
        "apps": "Applications",
        "owner": "Account Owner"
      },
      "security": {
        "normal": "Normal",
        "advanced": "Advanced"
      },
      "actions": {
        "create": "Save"
      },
      "stepPending": "This step is being built",
      "passwordSecurity": "Password Security Level",
      "allowedIps": "Allowed IPs",
      "ipAddressBtn": "IP Address",
      "ipPlaceholder": "Enter IP Address (IPv4 or IPv6) and press Enter",
      "ipsHint": "* Restrict platform access and limit it from these IPs only",
      "ipsVersionHint": "Accepted: IPv4 (192.168.1.10), IPv6 full (2001:db8:0:0:0:0:0:1) or collapsed (2001:db8::1, ::1, ::ffff:192.168.1.1). CIDR (/24, /64) and zone IDs (%eth0) allowed.",
      "accountLimitations": "Account Limitations",
      "service": {
        "visibility": "Visibility",
        "name": "Name",
        "priceType": "Price Type",
        "priceValue": "Price Value",
        "status": "Status",
        "loading": "Loading services…",
        "itemSingular": "item",
        "itemPlural": "items"
      },
      "fields": {
        "profilePhoto": {
          "label": "Account profile picture (optional)",
          "hint": "Drag a photo here, or click to upload (PNG/JPG, max 2 MB)"
        },
        "ownerPhoto": {
          "label": "Account owner picture (optional)",
          "hint": "Drag a photo here, or click to upload (PNG/JPG, max 2 MB)"
        },
        "logo": { "label": "Client Picture" },
        "accountName": {
          "label": "Account Name",
          "placeholder": "",
          "helper": ""
        },
        "accountId": { "label": "Account ID" },
        "financeId": { "label": "Finance ID" },
        "classCat": { "label": "Classification Category" },
        "classSub": { "label": "Classification Sub Category" },
        "accountOfficial": { "label": "Account Official" },
        "entityName": { "label": "Entity Name" },
        "authority": { "label": "Authority Letter Type" },
        "sector": { "label": "Sector" },
        "budgetNo": { "label": "Budget No." },
        "commercialRegNo": { "label": "Commercial Registration No." },
        "licenseNo": { "label": "License No." },
        "country": { "label": "Country" },
        "city": { "label": "City" },
        "district": { "label": "District" },
        "street": { "label": "Street" },
        "bldg": { "label": "Building Number" },
        "postal": { "label": "Postal Code" },
        "addressExtra": { "label": "Additional Address" },
        "anotherId": { "label": "Another ID" },
        "vat": { "label": "VAT Registration Number" },
        "security": {
          "normalDesc": "Username, Password, OTP",
          "advancedDesc": "Comply with NCA regulations"
        },
        "maxNormal": { "label": "Max Normal User Limit" },
        "maxSystem": { "label": "Max System User Limit" },
        "maxNode": { "label": "Max Node Level" },
        "ownerFirst": { "label": "First Name" },
        "ownerLast": { "label": "Last Name" },
        "ownerUser": { "label": "User Name" },
        "ownerPwd": { "label": "Password" },
        "ownerNid": { "label": "National ID / Iqama" },
        "ownerPhone": { "label": "Phone Number" },
        "ownerEmail": { "label": "Email Address" },
        "ownerRole": { "label": "Role" }
      }
    },
    "addUser": {
      "tooltip": {
        "permGroupDenied": "You do not have permission to assign a permission group. The system default will be applied.",
        "photoDenied": "You do not have permission to upload a profile photo."
      },
      "title": "Add New User",
      "stepCounter": "steps",
      "finish": "Finish",
      "userPicture": "User Picture",
      "photoHint": "PNG, JPG up to 1MB",
      "photoTooLarge": "File too large. Maximum size is {{maxMb}} MB.",
      "dragHint": "Drag a photo here or",
      "uploadPhoto": "Upload Photo",
      "userStatus": "User Status",
      "userRole": "User Role",
      "assignedPermissionGroup": "Assigned Permission Group",
      "commCheckerLevel": "CommChannel Checker Level",
      "steps": {
        "personal": "Personal Information",
        "role": "Role & Status",
        "permissions": "Permissions & Privilege"
      },
      "checker": {
        "none": "None",
        "level1": "Checker Level One",
        "level2": "Checker Level Two"
      },
      "status": {
        "active": "Active",
        "inactive": "Inactive",
        "suspended": "Suspended",
        "pending": "Pending"
      },
      "permGroup": {
        "admin": "Admin Group",
        "readonly": "Read Only Group",
        "ops": "Operations Group",
        "support": "Support Group"
      },
      "permGroupPlaceholder": "Select a permission group (optional)",
      "delivery": {
        "email": "Send via Email",
        "sms": "Send via SMS",
        "both": "Both, SMS and Email"
      },
      "creds": {
        "title": "Sending Credentials",
        "subtitle": "An email and/or SMS with the username and password will be sent to the account owner",
        "body": "An email and/or SMS with the username and password will be sent to the account owner.",
        "deliveryMethod": "Delivery method",
        "accountOwner": "Account owner",
        "email": "Email",
        "sms": "SMS",
        "both": "Both",
        "send": "Send Credentials"
      },
      "success": {
        "title": "User created",
        "detail": "{userName} was created successfully"
      },
      "error": "Failed to create user",
      "checking": "Checking availability…",
      "empty": {
        "title": "Permission denied",
        "description": "You do not have permission to add a user at this node."
      },
      "finish": "Finish",
      "channel": {
        "whatsapp": "WhatsApp",
        "voice": "Voice"
      },
      "fields": {
        "photo": {
          "label": "Profile photo (optional)",
          "hint": "Drag a photo here, or click to upload (PNG/JPG, max 2 MB)"
        },
        "firstName": {
          "label": "First Name",
          "placeholder": "e.g. Hajeer"
        },
        "lastName": {
          "label": "Last Name",
          "placeholder": "e.g. Al-Saud"
        },
        "userName": {
          "label": "User Name",
          "placeholder": "hajeer"
        },
        "password": {
          "label": "Password",
          "placeholder": "••••••••"
        },
        "nationalId": {
          "label": "National ID / Iqama",
          "placeholder": "10-digit number"
        },
        "phone": {
          "label": "Phone Number",
          "placeholder": "+966 5XX XXX XXXX"
        },
        "email": {
          "label": "Email Address",
          "placeholder": "name@company.sa"
        }
      }
    }
  },
  "templates": {
    "picker": {
      "title": "Whose templates are you working with?",
      "subtitle": "Falcon admins review across clients; client admins create and submit.",
      "showAsFalcon": "View as Falcon",
      "showAsFalconDesc": "Review and approve templates submitted by all clients.",
      "showAsClient": "View as Client",
      "showAsClientDesc": "Create, edit and submit templates for a single organization."
    },
    "falconBadge": "Falcon — Read only",
    "clientBadge": "Client view",
    "backToPicker": "Switch perspective",
    "tabs": {
      "templates": "Templates",
      "pendingReview": "Pending Review",
      "shared": "Shared Templates"
    },
    "toolbar": {
      "search": "Search templates",
      "allChannels": "All channels",
      "create": "Create Template",
      "syncFromMeta": "Sync from Meta",
      "sharedWithMore": "Shared with more",
      "channelComingSoon": "{{channel}} template flow coming soon"
    },
    "channels": {
      "whatsApp": "WhatsApp",
      "sms": "SMS",
      "email": "Email",
      "voice": "Voice",
      "ivrVoice": "IVR Voice",
      "comingSoon": "Coming soon"
    },
    "columns": {
      "id": "ID",
      "templateName": "Template Name",
      "channel": "Channel",
      "serviceType": "Service Type",
      "language": "Language",
      "status": "Status",
      "checkerL1": "Checker L1",
      "checkerL2": "Checker L2",
      "statusByMeta": "Status by Meta",
      "referenceId": "Reference ID",
      "createdBy": "Created By",
      "creationDate": "Creation Date",
      "sharedWith": "Shared With",
      "provider": "Provider",
      "category": "Category",
      "subCategory": "Sub-Category",
      "waba": "WABA Account",
      "falconStatus": "Falcon Status",
      "qualityRating": "Quality Rating",
      "lastUpdated": "Last Updated",
      "source": "Source",
      "nodeId": "Node ID",
      "actions": "Actions"
    },
    "errors": {
      "wabaAccountNameRequired": "WABA Account is required.",
      "variableHarmonyViolated": "Too many variables — add more fixed words.",
      "variableFormatInvalid": "Variable format is invalid.",
      "variableEdgePositionInvalid": "A variable cannot be at the very start or end of the body.",
      "variableUnusedMapping": "This variable is declared but never used in the body. Remove it or reference it in the body text.",
      "variableMissingMapping": "This variable is used in the body but is not declared. Add a sample value for it or remove it from the body.",
      "variableDuplicateKey": "This variable is declared more than once. Each variable key must be unique.",
      "variableNamedFormatInvalid": "This template contains variable parameters with incorrect formatting. Variable parameters must be lowercase characters, underscores and numbers with two sets of curly brackets (for example, {{customer_name}}, {{order_id}}).",
      "variableNumberFormatInvalid": "This template contains variable parameters with incorrect formatting. Variable parameters must be whole numbers with two sets of curly brackets (for example, {{1}}, {{2}}.",
      "bodyRequired": "Template body is required.",
      "headerVariableSyntaxInvalid": "Header variable names must use lowercase letters, numbers and underscores only.",
      "headerVariableMaxCount": "A header can contain at most one variable.",
      "headerVariableFormatInvalid": "In Number mode, the header variable must be numeric.",
      "headerVariableNamedFormatInvalid": "Header variable names must use lowercase letters, numbers and underscores only (e.g. customer_name).",
      "headerVariableUnusedMapping": "This header variable is declared but never used in the header text.",
      "headerVariableMissingMapping": "This placeholder is used in the header but isn't declared. Add a sample value for it.",
      "headerVariableSampleRequired": "A sample value is required for the header variable before submission.",
      "footerLengthInvalid": "Footer text must be 60 characters or fewer.",
      "footerVariablesForbidden": "Variables are not supported in the footer.",
      "footerInvalidCategory": "Footer is only allowed on Marketing and Utility templates.",
      "subCategoryUnsupported": "This sub-category isn't supported.",
      "subCategoryInvalidForCategory": "This sub-category isn't valid for the selected category.",
      "headerTextFormattingNotAllowed": "Special characters (* _ ~ `) are not allowed in the header.",
      "headerTextNotAllowedForType": "Header text isn't allowed for this header type.",
      "buttonLabelCharacterInvalid": "Button labels cannot contain underscores or asterisks.",
      "buttonCallValidityDaysRequired": "Enter how many days the call button stays active (1–30).",
      "buttonCallValidityDaysOutOfRange": "The call button's active period must be between 1 and 30 days.",
      "buttonIconUnsupported": "This button icon isn't supported.",
      "templateNotEligibleForDeletion": "This template can't be deleted while it's in this state.",
      "templateWabaIdRequired": "Couldn't delete — the WhatsApp Business Account is missing.",
      "forbiddenToDeleteTemplate": "Only the template's creator can delete it.",
      "templateNotFound": "Template not found.",
      "metaDeleteFailed": "Couldn't delete the Meta template. Please try again.",
      "nodeNotInHierarchyTitle": "Node hierarchy not assigned",
      "nodeNotInHierarchy": "Your user is not assigned to a node hierarchy. Contact your account owner."
    },
    "status": {
      "approved": "Approved",
      "pending": "Pending",
      "rejected": "Rejected",
      "inReview": "In-Review",
      "deleted": "Deleted",
      "na": "NA",
      "activeQp": "Active — Quality Pending",
      "activeHq": "Active — High Quality",
      "activeMq": "Active — Medium Quality",
      "activeLq": "Active — Low Quality",
      "normalized": {
        "Draft": "Draft",
        "PendingInternalApproval": "Pending Internal Approval",
        "RejectedInternally": "Rejected Internally",
        "PendingMetaReview": "Pending Meta Review",
        "Approved": "Approved",
        "RejectedByMeta": "Rejected by Meta",
        "Restricted": "Restricted",
        "Deleted": "Deleted",
        "Unsupported": "Unsupported",
        "SyncFailed": "Sync Failed"
      },
      "meta": {
        "NA": "—",
        "InReview": "In Review",
        "Approved": "Approved",
        "Rejected": "Rejected",
        "Paused": "Paused",
        "Disabled": "Disabled",
        "Deleted": "Deleted",
        "AppealedInReview": "Appealed (In Review)"
      },
      "quality": {
        "Unknown": "Unknown",
        "Green": "High",
        "Yellow": "Medium",
        "Red": "Low"
      }
    },
    "rowMenu": {
      "moreDetails": "More Details",
      "viewOnly": "View Details",
      "edit": "Edit",
      "delete": "Delete"
    },
    "list": {
      "deleteConfirm": {
        "title": "Delete template?",
        "body": "This will permanently delete the template '{{name}}'. This action cannot be undone.",
        "delete": "Delete"
      },
      "deleteSuccess": "Template deleted.",
      "deleteFailure": "Couldn't delete the template. Please try again.",
      "deleteUnsupported": "Delete isn't available yet on this server. Please try again later.",
      "syncSuccess": "Imported {{imported}}, updated {{updated}}, skipped {{skipped}}, errors {{errors}}.",
      "syncFailure": "Couldn't sync templates from Meta. Please try again.",
      "loadErrorTitle": "Couldn't load templates",
      "loadError": "Something went wrong loading templates. Please try again."
    },
    "empty": "No templates to display.",
    "loading": "Loading templates…",
    "wizard": {
      "title": "New Template",
      "editTitle": "Edit Template",
      "stepCounter": "Step",
      "steps": {
        "basic": "Basic Info",
        "message": "Message Structure",
        "share": "Save & Submit"
      },
      "actions": {
        "cancel": "Cancel",
        "back": "Previous",
        "next": "Next",
        "submit": "Create Template",
        "saveChanges": "Save Changes",
        "saveDraft": "Save as Draft"
      },
      "exitConfirm": {
        "title": "Discard this template?",
        "body": "You have unsaved changes. Leaving now will discard them.",
        "stay": "Keep editing",
        "discard": "Discard"
      },
      "preview": {
        "title": "Template Preview",
        "placeholder": "Hello — your template body preview will appear here as you type.",
        "buttonPlaceholder": "Button",
        "expand": "Expand preview",
        "close": "Close preview",
        "seeAllOptions": "See all options",
        "allOptions": "All Options",
        "refresh": "Refresh preview",
        "validate": "Preview validation",
        "nextBlockedTooltip": "The preview has errors — fix them and run Preview validation again to continue.",
        "violationsTitle": "Errors",
        "warningsTitle": "Warnings",
        "section": {
          "header": "Header",
          "body": "Body",
          "footer": "Footer",
          "buttons": "Buttons",
          "authentication": "Authentication",
          "variable": "Variable",
          "media": "Media"
        }
      },
      "step1": {
        "name": "Template Name",
        "namePh": "e.g. welcome_message",
        "nameRequired": "Template name is required.",
        "nameInvalid": "Min 1 char, Max 215",
        "nameSpaces": "Spaces are not allowed",
        "language": "Language",
        "languageRequired": "Please select a language",
        "referenceId": "Reference ID",
        "referenceIdInvalid": "Invalid length.",
        "wabaAccount": "WABA Account",
        "wabaRequired": "Please select the WABA account",
        "wabaAccountPh": "Select WABA account",
        "wabaAccountAramcoMain": "Aramco WABA Main",
        "category": {
          "marketing": "Marketing",
          "utility": "Utility",
          "authentication": "Authentication"
        },
        "sub": {
          "default": "Default",
          "defaultDescMkt": "General marketing message.",
          "defaultDescUtil": "Standard utility notification.",
          "catalog": "Catalog",
          "catalogDesc": "Showcase products from a connected catalog.",
          "flows": "Flows",
          "flowsDescMkt": "Marketing template with an interactive flow.",
          "flowsDescUtil": "Utility template with a multi-step flow.",
          "otp": "OTP",
          "otpDesc": "One-time passcode for authentication.",
          "calling": "Calling permissions request",
          "callingDesc": "Ask customers if you can call them on WhatsApp.",
          "comingSoon": "(Coming soon)"
        }
      },
      "step2": {
        "headerNone": "None",
        "headerText": "Text",
        "headerMedia": "Media",
        "header": "Header",
        "headerPh": "Optional title shown above the message body",
        "body": "Body",
        "bodyPh": "Write the main message. You can include {{variables}}.",
        "footer": "Footer",
        "footerPh": "Optional small text below the message",
        "headerOneVar": "A text header can include at most one variable.",
        "headerForbiddenChars": "Special characters (*, _, ~, ```) are not supported in the header.",
        "headerLocationDisabled": "Location selected — the text header is disabled for this header type.",
        "footerNoVars": "Variables are not supported in the footer.",
        "bodyVariableHarmony": "This template has too many variables for its length. Reduce the number of variables or increase the message length.",
        "bodyVariableHarmonyEdge": "This template has too many variables for its length. Reduce the number of variables or increase the message length. Variables can't be at the start or end of the template.",
        "variableMaxCount": "You can use up to {{max}} variables. Remove some to continue.",
        "headerVarSampleRequired": "Sample values are required for all variables.",
        "bodyVarSampleRequired": "Sample values are required for all variables.",
        "optional": "Optional",
        "emoji": "Insert emoji",
        "fmtBold": "Bold",
        "fmtItalic": "Italic",
        "fmtStrike": "Strikethrough",
        "fmtCode": "Monospace",
        "addVariable": "Add Variable",
        "addVariableInfo": "Add variables by selecting columns from your customer list. When your message is sent, the variable will be replaced with data from the column.",
        "typeOfVariableInfo": "Type of variable\n\nVariables are placeholders that are used to dynamically insert specific information or data into your template. You can insert either a name or number as a variable.\n\nExamples:\n\nName: {{order_id}}\n\nNumber: {{1}}",
        "mediaSample": "Media sample",
        "typeOfVariable": "Type of variable",
        "selectPlaceholder": "Select…",
        "variables": {
          "title": "Variable samples",
          "help": "Every {{variable}} detected in the body and header needs a sample value before the template can be submitted.",
          "sampleLabel": "Sample value",
          "headerGroup": "Header",
          "bodyGroup": "Body",
          "warnStartEnd": "Meta may reject templates with a variable at the very start or end of the body.",
          "warnAdjacent": "Meta may reject templates with two variables placed next to each other."
        },
        "buttons": {
          "title": "Buttons",
          "help": "Create buttons that let customers respond to your take action. you can add up to 10 buttons, they will appear in a list.",
          "add": "Add Button",
          "replyText": "Reply text",
          "buttonText": "Button Text",
          "url": "Website URL",
          "urlType": "URL Type",
          "urlStatic": "Static",
          "urlDynamic": "Dynamic",
          "urlInvalid": "You need to enter a valid URL. Check for typos and make sure your URL begins with http://, https:// or whatsapp-smb://",
          "urlDynamicOneVar": "A dynamic URL must contain exactly one variable, e.g. {{1}}.",
          "urlVarAtEnd": "Dynamic URL variables are only allowed at the end of the URL.",
          "urlSampleRequired": "Sample value is required for dynamic URL variables.",
          "urlSample": "URL sample value",
          "urlSamplePh": "e.g. ABC123",
          "urlSampleTitle": "Variable URL sample",
          "urlSampleDesc": "To help us review your message template, please add an example of the website URL. Do not use real customer information.",
          "urlVarChipAria": "Add the {{1}} URL variable",
          "urlStaticNoVar": "A static URL can't contain variables. Switch the URL Type to Dynamic, or remove the {{1}} placeholder.",
          "replyRequired": "Enter the button text.",
          "offerInvalid": "Offer code is required.",
          "maxButtons": "Maximum number of buttons exceeded.",
          "country": "Country",
          "activeFor": "Active for",
          "active7Days": "7 days",
          "active30Days": "30 days",
          "active90Days": "90 days",
          "phone": "Phone",
          "phonePh": "+<country code> <number>",
          "phoneInvalid": "You need to enter a phone number. Please add a valid phone number.",
          "duplicate": "Button labels must be unique.",
          "offerCode": "Offer code",
          "remove": "Remove",
          "quickReply": "Quick Reply",
          "quickReplyHint": "10 buttons Maximum",
          "visit": "Visit website",
          "visitHint": "2 buttons Maximum",
          "wa": "Call on WhatsApp",
          "waHint": "1 button Maximum",
          "phoneType": "Call phone number",
          "phoneHint": "1 button Maximum",
          "flow": "Complete Flow",
          "flowHint": "1 button Maximum",
          "flowSelect": "Flow",
          "flowSelectPh": "Select a published flow",
          "copy": "Copy offer code",
          "copyHint": "1 button Maximum",
          "quickReplySection": "Quick Reply",
          "callToActionSection": "Call to Action",
          "default": {
            "quickReply": "Quick reply",
            "visit": "Visit website",
            "wa": "Call on WhatsApp",
            "phone": "Call us",
            "flow": "Get started",
            "copy": "Copy code"
          }
        },
        "auth": {
          "intro": "Authentication templates use Meta's fixed one-time-passcode (OTP) structure. Only the items below are configurable.",
          "bodyLabel": "Message body",
          "fixedNote": "Meta-defined — not editable",
          "otpBody": "{{1}} is your verification code.",
          "security": "Add the security recommendation",
          "securityText": "For your security, do not share this code.",
          "expiry": "Set a code expiration time",
          "expiryHint": "Whole minutes, 1–15 (Meta-bounded; sub-minute values are a Meta API detail).",
          "validity": "Set a message validity period",
          "validityHint": "Validity in whole minutes (Meta-bounded).",
          "delivery": "OTP delivery",
          "copyCode": "Copy Code",
          "deliveryNote": "Phase 1 supports Copy Code. One-tap and zero-tap autofill are future options.",
          "codeDeliveryTitle": "Code delivery setup",
          "contentTitle": "Content",
          "contentHelp": "Customize the content of your message and add a recommendation for your customers to keep their codes safe.",
          "validityTitle": "Message validity period",
          "zeroTap": "Zero-tap autofill",
          "zeroTapDesc": "The code is read from the message and entered automatically with no taps from the recipient.",
          "oneTap": "One-tap autofill",
          "oneTapDesc": "The recipient taps a button to copy the code into the authenticating app."
        },
        "media": {
          "kindPlaceholder": "Select media type",
          "uploadLabel": "Upload media",
          "uploadPh": "Drop a file here or click to browse",
          "uploadFileButton": "Upload File",
          "sizeError": "File size exceeded",
          "extError": "File format not allowed",
          "rule": "Allowed",
          "invalid": "This file's type or size isn't allowed for the selected media.",
          "formatNotAllowed": "File format not allowed",
          "sizeExceeded": "File size exceeded",
          "none": "None",
          "image": "Image",
          "video": "Video",
          "document": "Document",
          "location": "Location",
          "uploadStatus": {
            "preparing": "Preparing upload…",
            "uploading": "Uploading…",
            "completing": "Finalising…",
            "failed": "Upload failed — please try again."
          }
        },
        "flow": {
          "title": "Flow type",
          "createTitle": "Create Flow",
          "comingSoon": "Coming soon",
          "tabCreateNew": "Create new",
          "tabUseExisting": "Use existing",
          "selectType": "Select a Flow type",
          "searchExistingPh": "Search",
          "publishedAt": "Published.",
          "noExistingResults": "No results",
          "completeFlow": "Complete Flow",
          "buttonIcon": "Button Icon",
          "buttonText": "Button text",
          "useExisting": "Use an existing published flow",
          "useExistingDesc": "Select a Flow already published on Meta for this WABA.",
          "selectExisting": "Select an existing flow",
          "existingPreview": "This published Flow runs as defined on Meta.",
          "loadingPreview": "Loading preview…",
          "continue": "Continue",
          "done": "Done",
          "create": "Create",
          "save": "Save",
          "close": "Close",
          "screens": "Screens",
          "editContent": "Edit content",
          "preview": "Preview",
          "deviceNote": "Rendering and interaction varies based on device.",
          "editNote": "Once your Message Template is created, this Flow cannot be edited.",
          "typeOfFlow": "Type of Flow",
          "edit": "Edit",
          "delete": "Delete",
          "addContent": "Add content",
          "options": "Options",
          "addOption": "Add option",
          "a11y": {
            "selectScreen": "Select screen",
            "moveUp": "Move up",
            "moveDown": "Move down",
            "removeScreen": "Remove screen",
            "removeBlock": "Delete content block",
            "toggleBlock": "Expand or collapse content block",
            "removeOption": "Remove option"
          },
          "checkComplete": "Check Complete Flow",
          "cancel": "Cancel",
          "addNew": "Add new",
          "screenTitle": "Screen title",
          "button": "Button",
          "maxContent": "You can add a maximum of 8.",
          "fieldRequired": "This field cannot be empty",
          "imageRequired": "an image must be selected",
          "untitledScreen": "Untitled screen",
          "fieldLabel": "Label",
          "instructionsLabel": "Instructions (optional)",
          "instructionsPh": "Add a short hint shown under the question",
          "imageRef": "Image reference",
          "imageRefPh": "Uploaded image asset id",
          "imageHint": "Maximum file size 300 KB · JPEG, PNG",
          "ratingScale": "Rating scale",
          "requiredLabel": "Required",
          "selectPh": "Select…",
          "addContentMenu": {
            "text": "Text",
            "media": "Media",
            "textAnswer": "Text Answer",
            "selection": "Selection",
            "largeHeading": "Large heading",
            "smallHeading": "Small heading",
            "body": "Body",
            "caption": "Caption",
            "image": "Image",
            "shortAnswer": "Short answer",
            "paragraph": "Paragraph",
            "datePicker": "Date picker",
            "singleChoice": "Single choice",
            "multipleChoice": "Multiple choice",
            "dropdown": "Dropdown",
            "optIn": "Opt-in",
            "rating": "Rating"
          }
        }
      },
      "step3": {
        "sharedWith": "Shared With",
        "roleSub": "Normal User (Multiple Select)",
        "search": "Search users",
        "selected": "Selected Users",
        "unselectAll": "Unselect all",
        "empty": "No users selected yet.",
        "reviewTitle": "Review"
      },
      "toast": {
        "created": "Template created successfully",
        "error": "Failed to create template",
        "draftSaved": "Template saved as draft",
        "submittedMeta": "Template submitted — pending Meta review",
        "submittedApproval": "Template submitted — pending internal approval"
      },
      "policyReadiness": "Templates must comply with the WhatsApp Business Messaging Policy. Meta may reject, pause, or disable templates that violate it."
    },
    "details": {
      "title": "Template Details",
      "backToTemplates": "Back to Templates",
      "backToList": "Back to list",
      "loading": "Loading template…",
      "notFound": "Template not found.",
      "fields": {
        "templateName": "Template Name",
        "templateId": "Template ID",
        "referenceId": "Reference ID",
        "language": "Language",
        "createdBy": "Created By",
        "creationDate": "Created",
        "channel": "Channel",
        "serviceType": "Service Type",
        "subCategory": "Sub-category",
        "waba": "WABA Account",
        "falconStatus": "Falcon Status",
        "approvalStatus": "Internal Approval Status",
        "qualityRating": "Quality Rating",
        "source": "Source",
        "nodeId": "Node ID",
        "lastUpdated": "Last Updated",
        "ruleSnapshotVersion": "Rule snapshot",
        "status": "Status",
        "sharedWith": "Shared With"
      },
      "decision": {
        "title": "Review Decision",
        "approve": "Approve",
        "reject": "Reject",
        "reasonLabel": "Reason",
        "cancel": "Cancel",
        "save": "Save Decision"
      },
      "makerActions": {
        "submitTitle": "Submit this template for review",
        "submitButton": "Submit to Meta",
        "resubmitTitle": "Reopen approval after rejection",
        "resubmitButton": "Resubmit"
      },
      "history": {
        "title": "Action history",
        "byMetaTitle": "Meta action history",
        "col": {
          "level": "Level",
          "checker": "Checker",
          "dateTime": "Date / Time",
          "reason": "Reason",
          "action": "Action",
          "sent": "Sent"
        }
      },
      "toast": {
        "approved": "Template approved",
        "rejected": "Template rejected",
        "alreadyDecided": "Another reviewer already decided this template. Showing the latest state.",
        "decisionError": "We couldn't record your decision. Please try again.",
        "notPending": "This template is no longer pending approval.",
        "notEligible": "You aren't an active checker for this level.",
        "selfAuthorBlocked": "You can't approve or reject a template you created.",
        "instanceMissing": "Approval session is no longer active for this template."
      },
      "errors": {
        "rejectReasonRequired": "A reason is required to reject this template.",
        "rejectReasonTooLong": "The reason must be 1000 characters or fewer.",
        "approvalStale": "This template moved to a different stage. Refresh and try again."
      },
      "reasons": {
        "metaRejected": "Rejected by Meta — quality threshold not met."
      }
    }
  }
}
