{
  "common": {
    "cancel": "Cancel",
    "back": "Back",
    "apply": "Apply",
    "add": "Add",
    "edit": "Edit",
    "delete": "Delete",
    "change": "Change",
    "remove": "Remove",
    "error_occurred": "An error occurred",
    "send": "Send",
    "required": "Required",
    "clear": "Clear",
    "clear_all": "Clear All",
    "open_settings": "Open Settings",
    "reset": "Reset",
    "retry": "Retry",
    "no_data_available": "No data available",
    "yes": "Yes",
    "no": "No",
    "use": "Use",
    "optional": "Optional",
    "replace": "Replace",
    "uploaded": "Uploaded",
    "enabled": "Enabled",
    "disabled": "Disabled",
    "sort": {
      "ascending": "Ascending",
      "descending": "Descending"
    },
    "status": {
      "all": "All",
      "active": "Active",
      "inactive": "Inactive",
      "pending": "Pending"
    },
    "save": "Save",
    "confirm": "Confirm",
    "close": "Close",
    "close_shift": "Close shift",
    "logout": "Logout",
    "logout_confirm": "Are you sure you want to logout?",
    "select_all": "Select All",
    "grant": "Grant",
    "settings": "Settings",
    "done": "Done",
    "create": "Create"
  },
  "language": {
    "english": "English",
    "khmer": "Khmer",
    "title": "Language"
  },
  "notification": "Notifications",
  "refresher": {
    "pull_to_refresh": "Pull to refresh",
    "release_to_refresh": "Release to refresh",
    "refresh": "Refresh",
    "refreshing": "Refreshing…",
    "refresh_failed": "Refresh failed",
    "loading": "Loading…",
    "load_failed": "Load failed",
    "all_caught_up": "All caught up",
    "updated": "Updated"
  },
  "pos": {
    "store": {
      "default_name": "My Store"
    },
    "top_bar": {
      "customer_display": "Customer Display",
      "reports": "Reports",
      "shift_open": "Shift Open",
      "shift_closed": "Shift Closed",
      "cashier": "Cashier: {name}",
      "exchange_rate": "Exchange Rate"
    },
    "customer_display": {
      "title": "Customer Display",
      "idle_icon_semantics": "Store icon — awaiting order",
      "welcome_title": "Welcome",
      "welcome_subtitle": "Your order will appear here",
      "order_receipt_semantics": "Order receipt",
      "your_order": "Your Order",
      "item_count": "{count} item{plural}",
      "points": "{points} pts",
      "table": {
        "item": "Item",
        "qty": "Qty",
        "unit": "Unit",
        "disc": "Disc.",
        "total": "Total"
      },
      "total_dollar": "Total Dollar",
      "total_riels": "Total Riels",
      "total_dollar_semantics": "Total in dollars: {amount}",
      "total_riels_semantics": "Total in Khmer Riels: {amount}",
      "scan_to_pay": "Scan to Pay",
      "amount_semantics": "Amount: {amount}",
      "bakong_khqr": "Bakong KHQR",
      "cash_payment_title": "Cash Payment",
      "cash_payment_subtitle": "Please have exact amount ready",
      "amount_due": "Amount Due",
      "amount_due_semantics": "Amount due: {amount}",
      "change_semantics": "Change to return: {amount}",
      "payment_success_title": "Payment Successful!",
      "payment_success_subtitle": "Thank you for your purchase!",
      "waiting_for_payment": "Waiting for payment…"
    },
    "exit_shift": {
      "title": "Active shift detected",
      "body": "You have an open shift. Closing the POS without closing the shift can cause reporting discrepancies.",
      "leave_anyway": "Leave anyway",
      "close_shift": "Close shift"
    },
    "drafts": {
      "title": "Saved Drafts",
      "title_short": "Drafts",
      "search_hint": "Search by customer, amount…",
      "save": "Save Draft",
      "empty_to_save": "Cart is empty — nothing to save as draft.",
      "saved": "Draft saved.",
      "loaded": "Draft loaded.",
      "delete_title": "Delete draft?",
      "delete_body": "This will permanently remove the draft saved on {date}.",
      "delete_tooltip": "Delete draft",
      "walk_in_customer": "Walk-in customer",
      "empty_filtered": "No drafts match your search",
      "empty": "No saved drafts",
      "empty_subtitle": "Save a sale as a draft to resume it later.",
      "load_failed": "Failed to load drafts"
    },
    "time": {
      "just_now": "just now",
      "minutes_ago": {
        "one": "{} minute ago",
        "other": "{} minutes ago"
      },
      "hours_ago": {
        "one": "{} hour ago",
        "other": "{} hours ago"
      }
    },
    "shift_close": {
      "success": "Shift closed successfully",
      "failed": "Failed to close shift",
      "form_title": "Close Shift",
      "closing_cash_label": "Closing Cash ({symbol})",
      "amount_invalid": "Enter a valid amount",
      "notes_optional": "Notes (optional)",
      "button": "Close Shift",
      "daily_summary": "Daily Summary",
      "total_sales": "Total Sales",
      "revenue": "Revenue",
      "discounts": "Discounts",
      "cash_variance": "Cash Variance",
      "payment_breakdown": "Payment Breakdown"
    },
    "summary": {
      "subtotal": "Subtotal",
      "discount": "Discount",
      "tax": "Tax",
      "applied": "Applied"
    },
    "payment": {
      "failed": "Payment failed",
      "cash": "Cash",
      "card": "Card",
      "qr": "QR",
      "cash_received": "Cash Received",
      "change_due": "Change Due",
      "short_by": "Short by",
      "card_instructions": "Process card payment on terminal",
      "auth_code_optional": "Auth Code (optional)",
      "auth_code_hint": "Enter terminal auth code",
      "remaining": "Remaining: {amount}"
    },
    "products": {
      "all": "All",
      "empty": "No products found",
      "search_hint": "Search products…",
      "load_failed": "Failed to load products",
      "out_of_stock": "This product is out of stock",
      "all_variants_out_of_stock": "All variants are out of stock",
      "out_of_stock_badge": "Out of Stock",
      "low_stock_badge": "Low stock",
      "stock": "Stock: {stockQty}",
      "variants": "Variants",
      "variants_count": {
        "one": "{} variant",
        "other": "{} variants"
      },
      "add_to_cart": "Add to Cart",
      "add_more": "Add more"
    },
    "cart": {
      "empty": "Cart is empty",
      "total": "TOTAL"
    },
    "customer": {
      "add": "Add Customer",
      "unlink": "Unlink customer"
    },
    "customer_lookup": {
      "title": "Customer Lookup",
      "phone": "Phone",
      "name": "Name",
      "search": "Search",
      "error": "Error searching customers",
      "empty": "No customers found",
      "link": "Link"
    },
    "variant_selector": {
      "variant": "Variant",
      "sku": "SKU: {sku}",
      "select_variant": "Select a variant",
      "variants_count": {
        "one": "{} variant",
        "other": "{} variants"
      },
      "add_with_total": "Add {qty} × {total}"
    },
    "charge": {
      "open_shift_required": "Open a shift to start selling.",
      "processing": "Processing...",
      "pay_with_bakong": "Pay with Bakong {amount}",
      "charge": "Charge {amount}"
    },
    "barcode": {
      "scan_hint": "Scan barcode here...",
      "added": "Product added to cart",
      "scanned": "Barcode scanned",
      "duplicate_ignored": "Duplicate scan ignored",
      "out_of_stock": "Out of stock (available: {stock})",
      "insufficient_stock": "Insufficient stock (available: {stock})",
      "not_found": "Product not found: {barcode}"
    },
    "success": {
      "sale_complete": "Sale Complete!",
      "new_sale": "New Sale"
    },
    "receipt": {
      "print": "Print",
      "email": "Email",
      "sms": "SMS",
      "send_email_title": "Send Receipt via Email",
      "email_address": "Email address",
      "send_sms_title": "Send Receipt via SMS",
      "phone_number": "Phone number"
    }
  },
  "pos_terminal_select": {
    "title": "Select Terminal",
    "no_code": "No code",
    "empty_title": "No terminals available"
  },
  "shared_widgets": {
    "barcode_scanner": {
      "title": "Scan Barcode",
      "flash_off": "Flash off",
      "flash_on": "Flash on",
      "switch_camera": "Switch camera",
      "instruction": "Point the camera at a barcode to scan.",
      "permission_denied": "Camera permission is denied. Allow camera access and try again.",
      "unsupported": "Scanning is not supported on this device or browser.",
      "error": "Could not start the camera. Please try again."
    },
    "upload": {
      "add_images": "Add Images",
      "record_video": "Record new video",
      "supported_images": "Supports JPEG, PNG, WebP formats",
      "gallery": "Gallery",
      "up_to_images": "Up to 5 images",
      "camera": "Camera",
      "take_photo": "Take a photo",
      "replace_video": "Replace Video",
      "video_specs": "MP4, MOV, AVI • Max {max_mb}MB • Max 5 minutes",
      "pick_from_library": "Pick from library"
    }
  },
  "store_users": {
    "status": {
      "active": "Active",
      "inactive": "Inactive",
      "invited": "Invited",
      "suspended": "Suspended"
    },
    "fields": {
      "first_name": "First name",
      "last_name": "Last name",
      "email": "Email",
      "phone": "Phone",
      "phone_optional": "Phone (optional)",
      "username": "Username",
      "password": "Password",
      "role": "Role"
    },
    "list": {
      "title": "Store Staff",
      "subtitle": "Manage your team members",
      "search_hint": "Search by name, email or username...",
      "add_staff": "Add Staff",
      "empty_title": "No Staff Found",
      "empty_subtitle": "Add your first team member\nusing the button below.",
      "error_title": "Something went wrong"
    },
    "create": {
      "title": "Add Staff Member",
      "subtitle": "Create a new store team member",
      "section_personal": "Personal",
      "section_account": "Account",
      "section_access": "Access",
      "first_name_hint": "Enter first name",
      "last_name_hint": "Enter last name",
      "email_hint": "Enter email",
      "phone_hint": "Enter phone",
      "username_hint": "Enter username",
      "submit": "Create Staff Member",
      "select_role": "Please select a role.",
      "invalid_email": "Enter a valid email",
      "min_chars": "Min {count} characters",
      "password_hint": "Min {count} characters",
      "no_roles": "No roles available. Configure roles in Settings.",
      "added_success": "{name} added successfully!",
      "must_change_title": "Force password change on first login",
      "must_change_subtitle": "User must set a new password when they first sign in"
    },
    "detail": {
      "title": "User Detail",
      "processing": "Processing…",
      "menu": {
        "edit_info": "Edit Info",
        "change_status": "Change Status",
        "reset_password": "Reset Password",
        "delete_user": "Delete User"
      },
      "edit": {
        "title": "Edit User Info"
      },
      "change_role": {
        "search": "Search roles...",
        "bulk": "Bulk",
        "selected": "Selected",
        "nothing_to_grant": "Nothing to grant",
        "nothing_to_revoke": "Nothing to revoke"
      },
      "change_status": {
        "title": "Change Status",
        "new_status": "New Status",
        "reason_optional": "Reason (optional)"
      },
      "reset_password": {
        "title": "Reset Password",
        "new_password": "New Password",
        "must_change_on_login": "Force password change on login"
      },
      "delete": {
        "title": "Delete User",
        "confirm": "Are you sure you want to permanently delete \"{name}\"? This action cannot be undone."
      },
      "contact": {
        "title": "Contact Info",
        "joined": "Joined",
        "note": "Note",
        "must_change_password": "Must change password on next login"
      },
      "role": {
        "title": "Role"
      },
      "permissions": {
        "title": "Direct Permissions"
      },
      "loading": "Loading"
    }
  },
  "onboarding": {
    "top": {
      "progress": "{current} of {total}"
    },
    "skip": "Skip",
    "get_started": "Get Started",
    "semantics": {
      "skip": "Skip onboarding",
      "next": "Next step",
      "get_started": "Get started",
      "step": "Step {step}{suffix}",
      "current_suffix": ", current"
    },
    "steps": {
      "store": {
        "title": "Your Store, Your Way",
        "subtitle": "Manage everything from a single powerful dashboard.",
        "bullets": {
          "manage": "Manage products, orders and inventory",
          "orders": "Process orders and track shipments",
          "brand": "Build your brand and grow your business"
        }
      },
      "products": {
        "title": "List Products Easily",
        "subtitle": "Add and manage your product catalog with ease.",
        "bullets": {
          "editor": "Rich product editor with AI assistance",
          "variants": "Support for variants, bundles and more",
          "uploads": "Bulk image and video uploads"
        }
      },
      "analytics": {
        "title": "Insights That Matter",
        "subtitle": "Make smarter decisions with real-time data.",
        "bullets": {
          "revenue": "Track revenue and sales trends",
          "customers": "Understand your customer behaviour",
          "promotions": "Measure promotion performance"
        }
      },
      "team": {
        "title": "Grow With Your Team",
        "subtitle": "Collaborate with your staff seamlessly.",
        "bullets": {
          "roles": "Create custom roles and permissions",
          "invite": "Invite team members with ease",
          "activity": "Monitor activity and accountability"
        }
      }
    }
  },
  "location": {
    "list": {
      "title": "Locations",
      "search_hint": "Search locations...",
      "loading": "Loading locations...",
      "load_failed": "Failed to load locations",
      "empty_title": "No Locations Yet",
      "add_button": "Add Location",
      "delete_title": "Delete Location",
      "delete_message": "Are you sure you want to delete \"{name}\"? This action cannot be undone."
    },
    "form": {
      "new_title": "New Location",
      "edit_title": "Edit Location",
      "section_basic": "Basic Information",
      "section_settings": "Settings",
      "name_label": "Location Name",
      "name_hint": "e.g. Main Warehouse — Phnom Penh",
      "name_required": "Name is required",
      "address1_label": "Address Line 1",
      "address1_hint": "Street address, P.O. Box",
      "address1_required": "Address is required",
      "address_autofill_hint": "Address autocompleted when you pick location on map",
      "gps_button": "Current Location",
      "map_button": "Pin on Map",
      "gps_getting": "Getting your location...",
      "gps_failed": "Could not get location. Try again.",
      "gps_services_disabled": "Please enable location services on your device.",
      "gps_semantics": "Use current GPS location",
      "map_semantics": "Pick location on map",
      "adjust_button": "Adjust",
      "adjust_pin": "Adjust Pin",
      "adjust_semantics": "Adjust pin on map",
      "coordinates_semantics": "Coordinates: {lat}, {lng}",
      "active_title": "Active",
      "active_subtitle": "Location is available for use",
      "save_button": "Save Location",
      "update_button": "Update Location",
      "create_success": "Location created successfully",
      "update_success": "Location updated successfully",
      "permission": {
        "title": "Enable Location",
        "temporary_message": "Location access is required to detect your current position.",
        "permanent_message": "Location access was denied. Enable it in Settings to use GPS location features.",
        "not_now": "Not Now"
      },
      "no_location_title": "No location selected",
      "no_location_subtitle": "Tap to pin on map or use GPS above",
      "no_location_semantics": "No location selected. Tap to pick on map."
    },
    "picker": {
      "search_hint": "Search address...",
      "services_disabled": "Location services are disabled on this device.",
      "permission": {
        "title": "Location Access",
        "temporary_message": "Location access is required to use your current position.",
        "permanent_message": "Location access was denied. Enable it in Settings to use this feature.",
        "skip": "Skip"
      },
      "pin_semantics": "Selected location pin",
      "back_semantics": "Go back",
      "current_location_semantics": "Use my current location",
      "selected_title": "Selected Location",
      "coordinates_label": "Coordinates",
      "resolving": "Resolving...",
      "looking_up_address": "Looking up address...",
      "address_label": "Address",
      "confirm_semantics": "Confirm this location",
      "confirm_button": "Confirm Location"
    }
  },
  "category": {
    "list": {
      "title": "Categories",
      "search_hint": "Search categories...",
      "load_failed": "Failed to load categories",
      "empty": "No categories found"
    },
    "form": {
      "icon_image": "Icon Image",
      "name": "Name",
      "edit_title": "Edit Category",
      "description": "Description",
      "parent_category": "Parent Category (Base Category)",
      "tap_to_select_image": "Tap to select image"
    },
    "filter": {
      "title": "Filter Categories",
      "status_label": "Status",
      "sort_by": "Sort By",
      "sort_order": "Sort Order",
      "created_at": "Created At",
      "name": "Name",
      "sort_order_field": "Sort Order"
    },
    "selection": {
      "select_parent_title": "Select Parent Category",
      "search_label": "Search",
      "search_hint": "Search categories...",
      "loading": "Loading categories...",
      "load_failed": "Failed to load"
    },
    "multi_selection": {
      "title": "Select Categories",
      "subtitle": "Choose up to {max} categories",
      "max_allowed": "Maximum {max} categories allowed",
      "confirm_select_min": "Select at least 1 category",
      "confirm_single": "Confirm {count} Category",
      "confirm_multi": "Confirm {count} Categories"
    }
  },
  "brand": {
    "title": "Brands",
    "search": {
      "hint": "Search brands...",
      "label": "Label"
    },
    "list": {
      "loading": "Loading brands...",
      "load_failed": "Failed to load brands",
      "empty": "No brands found"
    },
    "filter": {
      "title": "Filter Brands",
      "status": "Status",
      "apply": "Apply"
    },
    "form": {
      "create_title": "New Brand",
      "edit_title": "Edit Brand",
      "name_label": "Brand Name",
      "name_required": "Name is required",
      "description_label": "Description",
      "active": "Active",
      "create_button": "Create Brand",
      "update_button": "Update Brand",
      "upload_logo": "Upload Logo"
    },
    "select": {
      "title": "Title",
      "subtitle": "Subtitle",
      "selected": "Selected",
      "skip": "Skip"
    }
  },
  "warehouse": {
    "list": {
      "title": "Warehouses",
      "search_hint": "Search warehouses...",
      "filter_status_tooltip": "Filter by Status",
      "loading": "Loading warehouses...",
      "load_failed": "Failed to load warehouses",
      "empty": "No warehouses found"
    },
    "badges": {
      "default": "DEFAULT"
    },
    "labels": {
      "capacity": "Capacity",
      "warehouse_details": "Warehouse Details",
      "overview": "Overview",
      "total_skus": "Total SKUs",
      "inventory_value": "Inventory Value",
      "contact": "Contact",
      "phone": "Phone",
      "special_handling": "Special Handling",
      "zones_locations": "Zones & Locations"
    },
    "quick_actions": {
      "inventory": "Inventory",
      "transactions": "Transactions",
      "transfer": "Transfer"
    },
    "type": {
      "storage": "Storage",
      "retail": "Retail",
      "distribution": "Distribution",
      "coldStorage": "Cold Storage",
      "virtual": "Virtual",
      "unknown": "Unknown"
    },
    "menu": {
      "set_default": "Set as Default"
    },
    "confirm_delete": {
      "title": "Delete Warehouse",
      "message": "Are you sure you want to delete \"{name}\"? This action cannot be undone."
    },
    "form": {
      "created_success": "Warehouse created successfully",
      "updated_success": "Warehouse updated successfully",
      "basic_info": "Basic Information",
      "settings": "Settings",
      "name_label": "Warehouse Name",
      "name_hint": "e.g. Main Storage Warehouse",
      "name_required": "Name is required",
      "name_max": "Max 100 characters",
      "code_label": "Code (Optional)",
      "code_autogen_hint": "Auto-generated if empty",
      "code_max": "Max 20 characters",
      "location_required": "Please select a location",
      "select_location": "Select Physical Location",
      "active_title": "Active",
      "active_subtitle": "Warehouse is available for use",
      "default_title": "Default Warehouse",
      "default_subtitle": "Auto-allocate inventory here for new orders"
    },
    "detail": {
      "loading": "Loading warehouse...",
      "load_failed": "Failed to load warehouse",
      "not_found": "Warehouse not found"
    },
    "zones": {
      "add_zone": "Add Zone",
      "empty": "No zones defined yet.Tap \"+ Add Zone\" to create one."
    },
    "zone": {
      "tooltips": {
        "add_child": "Add child zone",
        "edit": "Edit zone",
        "delete": "Delete zone"
      },
      "confirm_delete": {
        "title": "Delete Zone",
        "message": "Delete zone \"{name}\" and all its children?"
      },
      "form": {
        "add_title": "Add Zone",
        "add_to_title": "Add Zone to {name}",
        "edit_title": "Edit Zone",
        "name_label": "Zone Name",
        "name_hint": "e.g. Aisle A",
        "name_required": "Name is required",
        "code_label": "Code",
        "code_hint": "e.g. A01",
        "code_required": "Code is required",
        "type_label": "Zone Type",
        "temp_min_label": "Temp Min (°C)",
        "temp_min_hint": "e.g. -18",
        "temp_max_label": "Temp Max (°C)",
        "temp_max_hint": "e.g. 25"
      }
    },
    "location_type": {
      "zone": "Zone",
      "aisle": "Aisle",
      "bay": "Bay",
      "shelf": "Shelf",
      "bin": "Bin"
    },
    "special_handling_type": {
      "hazmat": "Hazmat",
      "fragile": "Fragile",
      "temperatureControlled": "Temperature Controlled"
    }
  },
  "product": {
    "list": {
      "title": "Products",
      "filter_tooltip": "Filter products",
      "search_hint": "Search products...",
      "clear_search_tooltip": "Clear search",
      "search_by_image_tooltip": "Search by image",
      "searching": "Searching...",
      "switch_to_grid": "Switch to grid",
      "switch_to_list": "Switch to list",
      "load_failed": "Failed to load products",
      "image": "Image",
      "scan_barcode_tooltip": "Scan barcode"
    },
    "image_search": {
      "sheet_title": "Search by Image",
      "take_photo": "Take Photo",
      "upload_gallery": "Upload from Gallery"
    },
    "permission": {
      "camera_title": "Camera Permission Required",
      "camera_message": "Camera access is needed to take a photo for image search. Please enable it in Settings."
    },
    "filters": {
      "title": "Filters",
      "sort_by": "Sort By",
      "category": "Category",
      "status": "Status",
      "price_range": "Price Range",
      "apply": "Apply Filters",
      "sort_chip": "Sort: {value}",
      "status_chip": "Status: {value}"
    },
    "sort": {
      "newest": "Newest First",
      "oldest": "Oldest First",
      "price_asc": "Price: Low to High",
      "price_desc": "Price: High to Low",
      "sold_desc": "Best Selling",
      "name_asc": "Name: A to Z",
      "name_desc": "Name: Z to A"
    },
    "status": {
      "all": "All",
      "active": "Active",
      "draft": "Draft",
      "inactive": "Inactive",
      "archived": "Archived",
      "pendingReview": "Pending Review",
      "rejected": "Rejected",
      "outOfStock": "Out of Stock",
      "discounted": "Discounted"
    },
    "marketplace": {
      "title": "NH Mall Listing",
      "list_on_mall": "List on NH Mall",
      "submit_success": "Submitted for marketplace review",
      "requires_active": "Set product status to Active before requesting marketplace listing.",
      "subtitle": {
        "live": "This product is visible to customers on NH Mall.",
        "pending": "Your product is waiting for platform review.",
        "rejected": "Listing was rejected. Fix issues and resubmit.",
        "suspended": "Listing was suspended by the platform.",
        "off": "This product is not listed on NH Mall yet."
      },
      "helper": {
        "live": "Managed by NH Shop — contact support to hide.",
        "pending": "Review usually completes within 1–2 business days.",
        "suspended": "Contact NH Shop support to restore listing.",
        "inactive": "Activate the product before submitting.",
        "resubmit": "Turn on to resubmit for review.",
        "submit": "Turn on to submit for NH Mall review."
      },
      "status": {
        "public": "Live",
        "pending": "Pending",
        "requested": "In Review",
        "rejected": "Rejected",
        "suspended": "Suspended"
      }
    },
    "empty": {
      "title": "No products found",
      "subtitle": "Add your first product or adjust your filters"
    },
    "stock_badge": {
      "out_of_stock": "Out of stock",
      "in_stock": "{qty} in stock",
      "reserved": "{qty} reserved",
      "all_reserved": "{qty} reserved"
    },
    "edit": {
      "header": "Edit: {step}",
      "step_counter": "Step {current} of {total}",
      "validation": {
        "primary_category_required": "Please choose a primary category."
      },
      "discard": "Discard",
      "save_all": "Save All Changes",
      "next_step": "Next: {step}",
      "saving": {
        "saving": "Saving…",
        "uploading": "Uploading {pct}%…"
      },
      "steps": {
        "basic_info": "Basic Info",
        "pricing": "Pricing",
        "inventory": "Inventory",
        "shipping": "Shipping",
        "additional": "Additional",
        "review": "Review",
        "media": "Media"
      },
      "basic": {
        "identity_title": "Identity",
        "name_label": "Product Name *",
        "sku_label": "SKU *",
        "barcode_label": "Barcode",
        "barcode_hint": "UPC, EAN, ISBN…",
        "scan_tooltip": "Scan",
        "hs_code_label": "HS Code",
        "hs_code_hint": "e.g. 6403.99",
        "categories_title": "Categories *",
        "categories_field_label": "Categories",
        "categories_selected": "{count} selected",
        "categories_tap_hint": "Tap to select categories...",
        "primary_category_title": "Primary Category *",
        "primary_category_field_label": "Primary Category",
        "primary_category_tap_hint": "Tap to select primary category...",
        "brand_title": "Brand",
        "brand_field_label": "Brand (Optional)",
        "brand_tap_hint": "Tap to select brand (optional)...",
        "status_title": "Status",
        "description_title": "Description",
        "short_description_label": "Short Description",
        "short_description_hint": "Brief summary (shown in listings)",
        "full_description_label": "Full Description",
        "full_description_hint": "Detailed product description…"
      },
      "media": {
        "images_title": "Product Images",
        "images_stats": "{count} image{suffix} • Drag to reorder • Tap to set cover",
        "images_rules": "JPEG, PNG, WebP • Max 5MB each • No image limit",
        "add_more_images": "Add More Images",
        "video_title": "Product Video",
        "video_rules": "MP4, MOV, AVI • Max 50MB • Max 5 minutes",
        "video_url_label": "Video URL",
        "video_url_hint": "https://...",
        "clear_tooltip": "Clear",
        "or": "OR",
        "replace_video": "Replace Video",
        "remove": "Remove",
        "upload_video_file": "Upload Video File",
        "empty_title": "Add Product Images",
        "empty_subtitle": "Tap to upload • JPEG, PNG, WebP • Max 5MB each",
        "loading": "Loading...",
        "cover_badge": "COVER",
        "new_badge": "NEW",
        "upload_no_media": "Upload completed but no media returned",
        "pick_images_failed": "Failed to pick images: {error}",
        "pick_video_failed": "Failed to pick video: {error}",
        "image_ext_not_allowed": "Only JPEG, PNG, and WebP images are allowed.",
        "image_too_large": "Image is {mb}MB — maximum allowed is 5MB.",
        "video_ext_not_allowed": "Only MP4, MOV, and AVI videos are allowed.",
        "video_too_large": "Video is {mb}MB — maximum allowed is 50MB.",
        "video_too_long": "Video is {mins} minutes — maximum allowed is 5 minutes."
      },
      "pricing": {
        "core_title": "Core Pricing",
        "selling_price_label": "Selling Price *",
        "compare_at_label": "Compare At",
        "cost_price_label": "Cost Price",
        "base_price_label": "Base Price",
        "wholesale_price_label": "Wholesale Price",
        "coin_payment_title": "Coin Payment",
        "accept_cash_title": "Accept Cash Payment",
        "accept_coin_title": "Accept Coin Payment",
        "accept_coin_subtitle": "Allow customers to pay with coins",
        "coin_price_label": "Coin Price",
        "coin_price_hint": "e.g. 9500 coins",
        "earn_on_coin_title": "Earn Coins on Coin Purchase",
        "earn_on_coin_subtitle": "Buyer earns coins when paying with coins",
        "earn_on_cash_title": "Earn Coins on Cash Purchase",
        "earn_on_cash_subtitle": "Buyer earns coins when paying with cash",
        "earn_rate_label": "Earn Rate (coins per $1)",
        "earn_rate_hint": "Default: 10",
        "margin_chip": "{pct}% margin"
      },
      "inventory": {
        "stock_settings_title": "Stock Settings",
        "track_inventory_title": "Track Inventory",
        "track_inventory_subtitle": "Monitor stock levels for this product",
        "allow_backorders_title": "Allow Backorders",
        "allow_backorders_subtitle": "Let customers order when out of stock",
        "low_stock_threshold_label": "Low Stock Threshold",
        "low_stock_threshold_hint": "Alert when stock falls below this",
        "variant_settings_title": "Variant Settings",
        "has_variants_title": "Has Variants",
        "has_variants_subtitle": "Product has multiple options (size, color…)",
        "stock_info_banner": "Stock quantities per warehouse are managed in the Inventory section."
      },
      "variants": {
        "generate": "Generate",
        "selected_count": "{count} selected",
        "bulk_action_price": "Price",
        "bulk_action_sku": "SKU",
        "delete_selected_tooltip": "Delete selected",
        "clear_selection_tooltip": "Clear selection",
        "empty_title": "No variants yet",
        "empty_subtitle": "Use Generate to create from attributes, or Add to create manually.",
        "select_all": "Select all",
        "field_price": "Price",
        "field_stock": "Stock",
        "stock_managed_info": "Stock is managed in the Inventory section.",
        "delete_variant_title": "Delete Variant",
        "delete_variant_message": "Delete variant \"{name}\"? This cannot be undone.",
        "delete_variants_title": "Delete Variants",
        "delete_variants_message": "Delete {count} selected variant(s)? This cannot be undone.",
        "delete_all": "Delete All",
        "create_failed": "Failed to create variant: {error}",
        "delete_failed": "Failed to delete variant: {error}",
        "delete_failed_generic": "Failed to delete: {error}",
        "select_one_first": "Select at least one variant first",
        "bulk_set_price_title": "Set Price for {count} Variant(s)",
        "bulk_new_price_label": "New Price",
        "prices_updated": "Variant prices updated",
        "bulk_set_sku_title": "Set SKU for {count} Variant(s)",
        "bulk_sku_prefix_label": "SKU Prefix",
        "skus_updated": "SKUs updated for {count} variant(s)",
        "image_too_large": "Image exceeds 5 MB limit.",
        "image_upload_no_id": "Cannot upload image: variant has no server ID.",
        "image_ext_not_allowed": "Only JPEG, PNG and WebP are allowed.",
        "image_pick_failed": "Could not pick image.",
        "axis_sheet": {
          "title": "Generate Variants",
          "combos": "Will generate {count} combination{suffix}",
          "quick_add": "Quick Add Attribute",
          "custom": "Custom",
          "defaults": "Defaults",
          "default_price_label": "Price *",
          "price_required_error": "Please enter a price",
          "price_gt_zero_error": "Price must be greater than 0",
          "attribute_axes": "Attribute Axes",
          "attribute_label": "Attribute",
          "attribute_hint": "e.g. Size",
          "values_label": "Values",
          "values_hint": "S, M, L, XL",
          "values_helper": "Separate multiple values with commas",
          "empty_help": "Tap a preset chip or \"Custom\" to add attribute axes. Then specify comma-separated values for each.",
          "generate_variants": "Generate {count} Variant{suffix}"
        },
        "edit_sheet": {
          "image_add": "Tap to add image",
          "image_specs": "JPEG, PNG, WebP • Max 5 MB",
          "sku_label": "SKU (optional)",
          "sku_hint": "e.g. PROD-RED-M",
          "attributes_title": "Attributes",
          "attributes_empty_help": "Tap a preset or use Custom to add attributes.",
          "attribute_label": "Attribute",
          "value_label": "Value",
          "price_label": "Variant Price *",
          "price_error": "Price must be > 0",
          "stock_readonly": "Stock (read-only)",
          "stock_initial": "Initial Stock",
          "stock_helper": "Manage stock in the Inventory section",
          "coin_pricing": "Coin Pricing",
          "coin_price": "Coin Price",
          "hs_code_label": "HS Code (optional)",
          "hs_code_hint": "e.g. 6109.10",
          "hs_code_helper": "Harmonized System commodity code",
          "active": "Active",
          "active_subtitle": "Variant is visible to customers",
          "sort_order_label": "Sort Order (optional)",
          "sort_order_helper": "Lower numbers appear first",
          "saving": "Saving...",
          "update": "Update Variant",
          "add": "Add Variant"
        }
      },
      "shipping": {
        "weight_dimensions_title": "Weight & Dimensions",
        "weight_label": "Weight",
        "length_label": "Length",
        "width_label": "Width",
        "height_label": "Height",
        "unit_label": "Unit",
        "handling_flags_title": "Handling Flags",
        "fragile_title": "Fragile",
        "fragile_subtitle": "Requires careful handling",
        "signature_required_title": "Signature Required",
        "signature_required_subtitle": "Delivery requires customer signature"
      },
      "additional": {
        "tags_media_title": "Tags & Media",
        "tags_label": "Tags (comma-separated)",
        "tags_hint": "e.g. electronics, portable, wireless",
        "key_features_title": "Key Features",
        "add_feature_label": "Add Feature",
        "seo_section_title": "SEO",
        "seo_title_label": "SEO Title",
        "seo_description_label": "SEO Description",
        "seo_description_hint": "Shown in search engine results…",
        "seo_keywords_label": "Keywords (comma-separated)"
      },
      "review": {
        "name": "Name",
        "sku": "SKU",
        "status": "Status",
        "barcode": "Barcode",
        "hs_code": "HS Code",
        "selling_price": "Selling Price",
        "cost_price": "Cost Price",
        "margin": "Margin",
        "compare_at": "Compare At",
        "track_inventory": "Track Inventory",
        "allow_backorder": "Allow Backorder",
        "has_variants": "Has Variants",
        "weight": "Weight",
        "fragile": "Fragile",
        "signature_required": "Signature Required",
        "tags_section": "Tags",
        "tags": "Tags"
      }
    },
    "create": {
      "title": "Create Product",
      "header": "Create: {step}",
      "step_counter": "Step {current} of {total}",
      "creating": "Creating…",
      "success": "Product created successfully!",
      "failure": "Failed to create product",
      "ai_suggested": "AI suggested",
      "media": {
        "upload_success": "Media uploaded successfully!",
        "video_subtitle": "Optional — upload a video file or provide a link"
      },
      "drafts": {
        "title": "Found Draft Products",
        "message": "You have unsaved drafts. Do you want to continue editing one of them?",
        "untitled": "Untitled Draft",
        "sku": "SKU: {sku}",
        "start_fresh": "Start Fresh"
      },
      "validation": {
        "name_required": "Product name is required.",
        "images_required": "Please add at least one product image.",
        "selling_price_gt0": "Selling price must be greater than 0.",
        "primary_category_required": "Please choose a primary category."
      },
      "ai_photo": {
        "title": "Product Photo",
        "subtitle": "Upload one image (gallery or camera). AI will auto-fill fields.",
        "analyzing": "Analyzing…",
        "add_photo": "Add Photo",
        "tap_hint": "Tap to choose from gallery or camera"
      },
      "barcode": {
        "auto_label": "Barcode (Auto)",
        "scan_tooltip": "Scan barcode"
      },
      "analysis": {
        "title": "AI Analysis Complete",
        "subtitle": "Fields highlighted with ✦ were auto-filled",
        "field_name": "Name",
        "field_brand": "Brand",
        "field_category": "Category",
        "field_description": "Description",
        "field_tags": "Tags",
        "ocr_title": "Detected Text (OCR)"
      },
      "analysis_progress": {
        "title": "AI image analysis",
        "step_upload": "Uploading image",
        "step_analyze": "AI analyzing image",
        "step_prepare": "Preparing content",
        "step_finalize": "Finalizing"
      },
      "basic": {
        "identity_title": "Product Identity",
        "identity_subtitle": "Name, SKU, and barcode information",
        "name_hint": "e.g. Nike Air Max 270",
        "sku_hint": "e.g. PROD-001",
        "categories_title": "Categories *",
        "categories_subtitle": "Select up to 5 categories",
        "categories_field_label": "Categories",
        "categories_selected": "{count} selected",
        "primary_category_title": "Primary Category *",
        "primary_category_subtitle": "Choose 1 category",
        "primary_category_field_label": "Primary Category",
        "primary_category_tap_hint": "Tap to select primary category...",
        "brand_title": "Brand",
        "brand_subtitle": "Optional – associate with a brand",
        "brand_field_label": "Brand (Optional)",
        "brand_tap_hint": "Tap to select brand (optional)...",
        "details_title": "Product Details",
        "details_subtitle": "Unit of measure and product description",
        "unit_id_label": "Unit ID *",
        "unit_id_hint": "e.g. pcs, kg, box"
      },
      "pricing": {
        "title": "Pricing & Variants",
        "subtitle_has_variants": "Configure variants with individual pricing",
        "subtitle_no_variants": "Set your selling price. Compare At and Cost are optional.",
        "has_variants_title": "Has Variants",
        "has_variants_subtitle": "Size, Color, etc."
      },
      "inventory": {
        "stock_settings_subtitle": "Control how inventory is tracked"
      },
      "shipping": {
        "weight_dimensions_subtitle": "Used for shipping cost calculation",
        "dimensions_title": "Dimensions (L × W × H)",
        "handling_flags_subtitle": "Special handling requirements"
      },
      "additional": {
        "key_features_subtitle": "Highlight product features (bullet points)",
        "feature_hint": "Feature description...",
        "add_feature_button": "Add Feature"
      },
      "seo": {
        "subtitle": "Improve product visibility in search",
        "meta_title_label": "Meta Title",
        "meta_title_hint": "Page title for search engines",
        "meta_description_label": "Meta Description",
        "meta_description_hint": "Shown in search engine results...",
        "keywords_label": "Keywords (comma-separated)",
        "keywords_hint": "e.g. electronics, portable, wireless",
        "alt_text_label": "Image Alt Text",
        "alt_text_hint": "Short description for accessibility / web images",
        "suggested_alt_label": "Suggested Alt Text",
        "ai_ready_with_low": "AI suggestions ready — {high} high-confidence, {low} low-confidence.",
        "ai_ready_high_only": "AI suggestions ready — high-confidence suggestions detected."
      },
      "review": {
        "images_label": "Images ({count})",
        "unit": "Unit",
        "type": "Type",
        "count": "Count",
        "variants_count": "{count} variants",
        "earn_coins": "Earn Coins",
        "earn_rate_value": "{rate} coins/$1",
        "track_stock": "Track Stock",
        "low_stock_alert": "Low Stock Alert",
        "low_stock_value": "≤ {value} units"
      }
    },
    "detail": {
      "sections": {
        "pricing": "Pricing",
        "overview": "Overview",
        "description": "Description",
        "inventory": "Inventory",
        "shipping": "Shipping",
        "media": "Media",
        "additional": "Additional Info"
      },
      "actions": {
        "change_status": "Change Status",
        "edit": "Edit Product",
        "delete": "Delete Product"
      },
      "stats": {
        "sold": "Sold",
        "rating": "Rating",
        "in_stock": "In Stock",
        "reviews": "Reviews"
      },
      "pricing": {
        "cost": "Cost",
        "profit": "Profit",
        "base": "Base",
        "earn_rate": "Earn {rate} coins/$1",
        "coin_eligible": "Coin eligible",
        "coin_eligible_discount": "Coin eligible  –  {pct}% discount"
      },
      "overview": {
        "sku_copied": "SKU copied",
        "category": "Category",
        "brand": "Brand",
        "unit": "Unit",
        "featured": "Featured"
      },
      "description": {
        "show_more": "Show more ▼",
        "show_less": "Show less ▲"
      },
      "inventory": {
        "low_stock_alert": "Low Stock Alert",
        "low_stock_value": "≤ {value} units",
        "stock_by_warehouse": "Stock by Warehouse",
        "warehouse_fallback": "Warehouse",
        "variants_title": "Variants ({count})",
        "out_of_stock": "Out of Stock",
        "units": "{qty} units"
      },
      "shipping": {
        "dimensions": "Dimensions (L×W×H)",
        "physical": "Physical"
      },
      "media": {
        "images_count": "{count} image{suffix}",
        "product_video": "Product Video"
      },
      "additional": {
        "tags": "Tags"
      },
      "discard": {
        "title": "Discard Changes?",
        "message": "You have unsaved edits. They will be lost if you go back.",
        "keep_editing": "Keep Editing"
      },
      "delete": {
        "title": "Delete Product",
        "message": "This action cannot be undone. The product will be permanently removed."
      },
      "error": {
        "title": "Failed to Load",
        "message": "Failed to load product"
      }
    },
    "label": {
      "title": "Product Label",
      "print_success": "Label printed successfully",
      "print_success_plural": "{count} labels printed successfully",
      "print_success_single": "{count} label printed successfully",
      "no_product": "No product loaded",
      "printing": "Printing...",
      "print_label": "Print Label",
      "print_label_plural": "Print {count} Labels",
      "print_label_single": "Print {count} Label",
      "designer": "Designer",
      "variant": "Variant",
      "quantity": "Quantity",
      "printer": "Printer",
      "loading_preview": "Loading preview…",
      "size": "Size",
      "barcode_type": "Barcode Type",
      "invalid_barcode": "Selected barcode type is not valid for this SKU.",
      "invalid_sku": "This SKU is not valid for {type}.",
      "settings": {
        "label_size": "Label Size",
        "barcode_type": "Barcode Type",
        "visibility": "Visibility Settings",
        "show_name": "Show Name",
        "show_price": "Show Price",
        "alignment": "Alignment Settings",
        "manual_mode": "Manual Alignment Mode",
        "horizontal_align": "Horizontal Alignment",
        "vertical_align": "Vertical Alignment",
        "horizontal_offset": "Horizontal Offset (mm)",
        "vertical_offset": "Vertical Offset (mm)"
      },
      "alignment": {
        "left": "LEFT",
        "center": "CENTER",
        "right": "RIGHT",
        "top": "TOP",
        "middle": "MIDDLE",
        "bottom": "BOTTOM"
      },
      "printer_status": {
        "connecting": "Connecting…",
        "connected": "Connected",
        "not_connected": "Not connected",
        "test_connection": "Test Connection",
        "checking": "Checking…",
        "configure": "Configure",
        "done": "Done",
        "save_and_test": "Save & Test Connection"
      },
      "printer_config": {
        "network": "Network",
        "bluetooth": "Bluetooth",
        "usb": "USB",
        "ip_address": "IP Address",
        "port": "Port",
        "printer_language": "Printer Language",
        "nearby_printers": "Nearby Printers",
        "scan": "Scan",
        "scanning": "Scanning…",
        "no_printers": "No printers found.\nEnsure your printer is on and in pairing mode, then tap Scan.",
        "usb_devices": "USB Devices",
        "refresh": "Refresh",
        "refreshing": "Refreshing…",
        "no_usb": "No USB devices detected.\nConnect a printer via USB OTG cable.",
        "not_set": "Not set"
      },
      "modes": {
        "fit": "Fit",
        "actual_size": "Actual Size"
      }
    }
  },
  "auth": {
    "login": {
      "hello": "HELLO!",
      "prompt": "Please log in.",
      "identifier_label": "Username or Email or Phone number",
      "identifier_hint": "Username",
      "identifier_required": "Please enter your username/email/phone number",
      "password_label": "Password",
      "password_hint": "Password",
      "forgot_password": "Forgot password?",
      "no_account": "Don't have an account yet?",
      "register": "Register",
      "login_button": "LOGIN",
      "partner_with": "Partner with ",
      "nh_store": "NH Inventory"
    }
  },
  "store": {
    "settings_title": "Shop Settings",
    "info_section": "Store Information",
    "kyc_section": "KYC Verification",
    "kyc_pending": "KYC Pending — awaiting review",
    "kyc_approved": "KYC Approved",
    "kyc_rejected": "KYC Rejected",
    "kyc_not_submitted": "Not submitted yet",
    "kyc_submit": "Submit KYC Documents",
    "name_label": "Store Name",
    "code_label": "Store Code",
    "description_label": "Description",
    "address_label": "Address",
    "phone_label": "Phone",
    "email_label": "Contact Email",
    "telegram_label": "Telegram Chat ID",
    "save_button": "Save Changes",
    "update_success": "Store updated successfully",
    "banner_label": "Store Banner",
    "banner_hint": "Wide image shown on your storefront (recommended 16:9)",
    "banner_change": "Change Banner",
    "banner_add": "Add Banner",
    "logo_change": "Change Logo"
  },
  "seller": {
    "title": "Shop",
    "period": {
      "today": "Today",
      "yesterday": "Yesterday",
      "days_7": "Last 7 days",
      "days_30": "Last 30 days"
    },
    "operations_overview": "Operations Overview",
    "estimated_income": "Estimated Income",
    "valid_orders": "Valid Orders",
    "sections": {
      "store_management": "Store Management",
      "more_tools": "More Tools"
    },
    "features": {
      "users": "Users",
      "product": "Product",
      "shop_settings": "Shop Settings",
      "orders": "Orders",
      "pos": "POS",
      "terminals": "Terminals",
      "stock": "Stock",
      "warehouse": "Warehouse",
      "category": "Category",
      "brands": "Brands",
      "unit": "Units",
      "customers": "Customers",
      "reviews": "Reviews",
      "followers": "Followers",
      "promotions": "Promotions",
      "roles": "Roles",
      "reports": "Reports",
      "banners": "Banners",
      "coins": "Coins",
      "wallet": "Wallet",
      "coin_platform": "Coin Platform",
      "spin_game": "Spin Game",
      "coin_streak": "7-Day Coin Strike"
    },
    "overview": {
      "title": "Store Overview",
      "query_type": {
        "title": "Sales Channel",
        "all": "All",
        "online": "Online",
        "pos": "POS"
      },
      "summary_income": "Income",
      "summary_orders": "Orders",
      "summary_aov": "Avg. Order",
      "summary_refund": "Refund Rate",
      "revenue_title": "Revenue",
      "revenue_forecast_title": "Revenue Forecast",
      "revenue_forecast_7d": "Next 7 days",
      "revenue_forecast_30d": "Next 30 days",
      "order_stats_title": "Order Status",
      "recent_orders_title": "Recent Orders",
      "recent_orders_empty": "No recent orders",
      "recent_orders_guest": "Guest customer",
      "pending_action_title": "Needs Action",
      "pending_action_subtitle": "{count} orders need your attention",
      "stock_level_title": "Stock Level",
      "stock_high": "High Stock",
      "stock_low": "Low Stock",
      "stock_out": "Out of Stock",
      "total_products": "Products",
      "products_count": "{count} products",
      "customers_title": "Customers",
      "top_customers_title": "Top Customers",
      "top_customers_empty": "No customer data for this period",
      "top_customers_orders": "{count} orders",
      "top_customers_guest": "Guest customer",
      "top_customers_tier_gold": "Gold",
      "top_customers_tier_platinum": "Platinum",
      "new_customers": "New",
      "returning_customers": "Returning",
      "total_customers": "Total",
      "churn_rate": "Churn Rate",
      "avg_ltv": "Avg. LTV",
      "view_all": "View All",
      "no_revenue_data": "No revenue data",
      "pnl_title": "Profit & Loss",
      "pnl_no_data": "No P&L data",
      "pnl_gross_sales": "Gross Sales",
      "pnl_discounts": "Discounts",
      "pnl_net_sales": "Net Sales",
      "pnl_refunds": "Refunds",
      "pnl_net_revenue": "Net Revenue",
      "pnl_cogs": "Cost of Goods Sold",
      "pnl_gross_profit": "Gross Profit",
      "pnl_operating_expenses": "Operating Expenses",
      "pnl_net_profit": "Net Profit",
      "pnl_gross_margin": "Gross Margin",
      "pnl_net_margin": "Net Margin",
      "pnl_discount_rate": "Discount Rate",
      "pnl_missing_cost_warning": "{count} order line(s) have no cost price — COGS and profit may be overstated. Add cost prices to your products for accurate margins.",
      "comparison_vs_range": "vs {range}",
      "comparison_vs_previous": "vs previous period",
      "forecast_estimate_badge": "Estimate",
      "forecast_basis": "Based on {days} days · {sales} days with sales",
      "breakdown_title": "Revenue Breakdown",
      "breakdown_dim_payment": "Payment",
      "breakdown_dim_source": "Source",
      "breakdown_dim_type": "Order Type",
      "breakdown_empty": "No revenue in this period yet",
      "breakdown_orders": "{count} orders",
      "breakdown_more": "+{count} more",
      "breakdown_key_cash": "Cash",
      "breakdown_key_card": "Card",
      "breakdown_key_qr": "KHQR",
      "breakdown_key_coin": "Coins",
      "breakdown_key_split": "Split",
      "breakdown_key_pos": "In-store (POS)",
      "breakdown_key_web": "Website",
      "breakdown_key_app": "App",
      "breakdown_key_standard": "Standard",
      "breakdown_key_unknown": "Other"
    }
  },
  "inventory_page": {
    "title": "Inventory",
    "tabs": {
      "stock": "Stock",
      "history": "History"
    },
    "search": {
      "hint": "Search by product name...",
      "image_results_banner": "Showing inventory for image search results"
    },
    "feedback": {
      "search_failed": "Search failed: {error}",
      "barcode_search_failed": "Barcode search failed: {error}",
      "image_search_failed": "Image search failed: {error}",
      "no_matching_products": "No matching products found"
    },
    "states": {
      "load_failed": "Failed to load inventory",
      "empty": "No inventory items found"
    },
    "status": {
      "in_stock": "In Stock",
      "out_of_stock": "Out of Stock",
      "low_stock": "Low Stock",
      "expiring": "Expiring"
    },
    "item": {
      "semantics": "{name}, {status}, quantity {quantity}",
      "hs_code": "Code"
    },
    "stats": {
      "on_hand": "On-hand",
      "reserved": "Reserved",
      "incoming": "Incoming",
      "available": "Available"
    },
    "actions": {
      "stock_in": {
        "title": "Stock In",
        "subtitle": "Record incoming inventory for this item"
      },
      "stock_out": {
        "title": "Stock Out",
        "subtitle": "Remove inventory from this item"
      },
      "stock_adjustment": {
        "title": "Stock Adjustment",
        "subtitle": "Correct inventory discrepancies or losses"
      },
      "stock_transfer": {
        "title": "Stock Transfer",
        "subtitle": "Move stock between warehouses"
      }
    },
    "history": {
      "loading": "Loading transactions...",
      "empty": "No transactions found",
      "summary": "{count} transaction{suffix}",
      "types": {
        "in": "Stock In",
        "out": "Stock Out",
        "transfer": "Transfer",
        "adjust": "Adjustment"
      },
      "filters": {
        "date_range": "Date Range"
      },
      "detail": {
        "transaction_id": "Transaction ID",
        "product_sku": "Product SKU",
        "warehouse": "Warehouse",
        "variant_sku": "Variant SKU",
        "reference": "Reference",
        "batch_number": "Batch No.",
        "serial_number": "Serial No.",
        "expiry_date": "Expiry Date",
        "unit_cost": "Unit Cost",
        "performed_by": "Performed By",
        "remarks": "Remarks",
        "date": "Date"
      }
    }
  },
  "pos_terminals": {
    "title": "POS Terminals",
    "search_hint": "Search by name or code...",
    "create": "Create Terminal",
    "retry": "Retry",
    "empty_title": "No terminals yet",
    "empty_subtitle": "Create your first POS terminal to start using POS shifts.",
    "fields": {
      "name": "Name",
      "code_optional": "Code (optional)",
      "warehouse_id_optional": "Warehouse ID (optional)",
      "status": "Status"
    },
    "status": {
      "all": "All",
      "active": "Active",
      "inactive": "Inactive"
    }
  },
  "banner": {
    "title": "Banners",
    "subtitle": "Manage promotional banners across your platform.",
    "add": "Add Banner",
    "edit_title": "Edit Banner",
    "create_title": "New Banner",
    "delete_title": "Delete Banner",
    "delete_confirm": "Are you sure you want to delete \"{0}\"?",
    "empty_title": "No Banners Yet",
    "empty_subtitle": "Create your first banner to promote content across your platform.",
    "all_placements": "All Placements",
    "all_platforms": "All Platforms",
    "placement_filter": "Filter by Placement",
    "platform_filter": "Filter by Platform",
    "image_preview": "Enter an image URL to preview",
    "image_required": "Banner image is required.",
    "thumbnail_hint": "Auto-generated from main image if not provided",
    "thumbnail_auto": "auto-generated",
    "field": {
      "title": "Title",
      "subtitle": "Subtitle",
      "image_url": "Image URL",
      "thumbnail": "Thumbnail Image",
      "thumbnail_url": "Thumbnail URL",
      "link_type": "Link Type",
      "link_ref": "Link Reference",
      "placement": "Placement",
      "platform": "Platform",
      "is_active": "Active",
      "starts_at": "Start Date",
      "ends_at": "End Date"
    },
    "placement": {
      "homepageHero": "Homepage Hero",
      "homepageGrid": "Homepage Grid",
      "homepageStrip": "Homepage Strip",
      "categoryTop": "Category Top",
      "categoryDealStrip": "Category Deal Strip",
      "searchTop": "Search Top",
      "productDetailBottom": "Product Detail Bottom"
    },
    "platform": {
      "all": "All Platforms",
      "mobile": "Mobile",
      "web": "Web",
      "desktop": "Desktop"
    },
    "link_type": {
      "product": "Product",
      "category": "Category",
      "store": "Store",
      "url": "External URL",
      "flashSale": "Flash Sale"
    }
  },
  "promotion": {
    "title": "Promotions",
    "subtitle": "Manage coupons and flash sales to grow your store.",
    "stats": {
      "coupons": "Coupons",
      "flash_sales": "Flash Sales",
      "active": "Active",
      "upcoming": "Upcoming"
    },
    "common": {
      "update": "Update",
      "not_set": "Not set",
      "show": "Show",
      "hide": "Hide",
      "next": "Next"
    },
    "status": {
      "draft": "Draft",
      "active": "Active",
      "ended": "Ended",
      "cancelled": "Cancelled"
    },
    "coupon": {
      "tabs": {
        "active": "Active",
        "inactive": "Inactive"
      },
      "empty": "No coupons found",
      "snackbar": {
        "paused": "Coupon paused",
        "resumed": "Coupon resumed",
        "bulk_generated": "Coupons generated successfully"
      },
      "actions": {
        "pause": "Pause",
        "resume": "Resume"
      },
      "pause": {
        "title": "Pause Coupon",
        "message": "Pause \"{name}\"? Customers will no longer be able to use this coupon.",
        "action": "Pause"
      },
      "delete": {
        "title": "Delete Coupon",
        "message": "Are you sure you want to delete \"{name}\"? This action cannot be undone."
      },
      "generated_codes": {
        "title": "Generated {count} Codes",
        "copy_all": "Copy All"
      },
      "bulk_generate": {
        "tooltip": "Bulk Generate",
        "title": "Bulk Generate Coupons",
        "submitting": "Generating…",
        "submit": "Generate Coupons",
        "discount_type": {
          "percent": "Percentage",
          "fixed": "Fixed"
        },
        "fields": {
          "name": {
            "label": "Campaign Name *",
            "hint": "e.g. Flash Sale Jan 2026"
          },
          "prefix": {
            "label": "Code Prefix * (2–16 chars)",
            "hint": "FLASH"
          },
          "count": {
            "label": "Count * (1–5000)",
            "hint": "10"
          },
          "discount_type": {
            "label": "Discount Type"
          },
          "amount": {
            "label": "Amount *"
          },
          "start_date": {
            "label": "Start Date"
          },
          "end_date": {
            "label": "End Date"
          },
          "usage_limit": {
            "label": "Usage Limit (per code)",
            "hint": "Blank = unlimited"
          },
          "per_user_limit": {
            "label": "Per User Limit",
            "hint": "e.g. 1"
          },
          "min_order_total": {
            "label": "Min Order Total",
            "hint": "Blank = no minimum"
          }
        },
        "optional": {
          "title": "Optional Limits"
        },
        "validation": {
          "name_required": "Name is required",
          "prefix_range": "Prefix must be 2–16 chars",
          "count_range": "1 to 5000",
          "amount_invalid": "Enter a valid amount",
          "amount_max_percent": "Max 100%"
        }
      },
      "analytics": {
        "title": "Coupon Analytics",
        "usage_over_time": "Usage Over Time",
        "customer_segments": "Customer Segments",
        "no_usage_data": "No usage data available",
        "metrics": {
          "total_orders": "Total Orders",
          "total_revenue": "Total Revenue",
          "total_discount": "Total Discount",
          "avg_discount": "Avg. Discount"
        }
      },
      "card": {
        "off": "OFF",
        "min_order": "Min. order ${amount}",
        "usage": "{used} / {limit} used",
        "unlimited": "Unlimited usage",
        "validity": {
          "none": "No date restriction",
          "starts": "Starts {date}",
          "until": "Until {date}"
        },
        "code_copied": "Code copied to clipboard",
        "copy": "Copy"
      },
      "wizard": {
        "title_create": "Create Coupon",
        "title_edit": "Edit Coupon",
        "snackbar": {
          "created": "Coupon created successfully",
          "updated": "Coupon updated successfully"
        },
        "sections": {
          "details": "Coupon Details",
          "discount": "Discount",
          "validity": "Validity Period (Optional)",
          "optional": "Optional Settings"
        },
        "fields": {
          "name": {
            "label": "Coupon Name *",
            "hint": "e.g. Summer Sale 2026"
          },
          "code": {
            "label": "Coupon Code *",
            "hint": "MIN 3 CHARS"
          },
          "discount_type": {
            "label": "Discount Type"
          },
          "discount_value": {
            "percent": "Discount Percentage *",
            "fixed": "Discount Amount *"
          },
          "start_date": {
            "label": "Start Date"
          },
          "end_date": {
            "label": "End Date"
          },
          "min_order_total": {
            "label": "Min Order Total",
            "hint": "0 or blank for no minimum"
          },
          "usage_limit": {
            "label": "Total Usage Limit",
            "hint": "Blank or 0 for unlimited"
          },
          "per_user_limit": {
            "label": "Limit Per User",
            "hint": "e.g. 1"
          }
        },
        "discount_type": {
          "percent": "Percentage",
          "fixed": "Fixed Amount"
        },
        "validity": {
          "help": "Leave blank for no date restriction."
        },
        "optional": {
          "summary": "Min order total, usage limits, per-user limits"
        },
        "actions": {
          "generate_code": "Auto-generate code"
        },
        "submit": {
          "create": "Create Coupon",
          "save": "Save Changes"
        },
        "validation": {
          "name_required": "Name is required",
          "code_min": "Code must be at least {count} characters",
          "amount_invalid": "Enter a valid amount",
          "amount_max_percent": "Percentage cannot exceed 100",
          "end_after_start": "End date must be after start date"
        }
      }
    },
    "flash_sale": {
      "tabs": {
        "scheduled": "Scheduled",
        "active": "Active",
        "ended": "Ended"
      },
      "status": {
        "scheduled": "Scheduled",
        "active": "Active",
        "ended": "Ended",
        "cancelled": "Cancelled"
      },
      "empty": "No flash sales found",
      "snackbar": {
        "stopped": "Flash sale stopped successfully",
        "boosted": "Flash sale boosted successfully",
        "deleted": "Flash sale deleted"
      },
      "stop": {
        "title": "Stop Flash Sale",
        "message": "Are you sure you want to stop this flash sale early?",
        "action": "Stop"
      },
      "delete": {
        "title": "Delete Flash Sale",
        "message": "Are you sure you want to delete this flash sale? This action cannot be undone."
      },
      "boost": {
        "title": "Boost Flash Sale",
        "subtitle": "Increase visibility and priority of your flash sale.",
        "fields": {
          "days": {
            "label": "Boost Duration (days)",
            "value": "{count} day{suffix}"
          },
          "priority": {
            "label": "Priority (1–1000)"
          }
        },
        "submit": "Boost for {count} day{suffix}"
      },
      "actions": {
        "analytics": "Analytics",
        "boost": "Boost",
        "stop": "Stop"
      },
      "analytics": {
        "title": "Flash Sale Analytics",
        "fields": {
          "sale_id": "Sale ID",
          "product_id": "Product ID",
          "status": "Status",
          "period": "Period",
          "original_price": "Original Price",
          "sale_price": "Sale Price",
          "quantity_limit": "Quantity Limit",
          "quantity_sold": "Quantity Sold",
          "remaining": "Remaining",
          "revenue_estimate": "Revenue Estimate",
          "boost_priority": "Boost Priority",
          "boosted_until": "Boosted Until"
        }
      },
      "card": {
        "title": "Flash Sale",
        "sold": "{sold} / {limit} sold",
        "time": {
          "ended": "Sale ended",
          "ends_in": "Ends in {duration}",
          "starts_in": "Starts in {duration}"
        },
        "boosted": "Boosted",
        "boosted_until": "Boosted until {date}"
      },
      "wizard": {
        "title_create": "Create Flash Sale",
        "title_edit": "Edit Flash Sale",
        "snackbar": {
          "created": "Flash sale created successfully",
          "updated": "Flash sale updated successfully"
        },
        "sections": {
          "product_price": "Product & Price",
          "schedule": "Schedule"
        },
        "fields": {
          "product_id": {
            "label": "Product ID",
            "hint": "Enter product ObjectId"
          },
          "sale_price": {
            "label": "Sale Price"
          },
          "discount_percentage": {
            "label": "Discount Percentage"
          },
          "quantity_limit": {
            "label": "Quantity Limit",
            "hint": "Min 1"
          },
          "start_datetime": {
            "label": "Start Date & Time"
          },
          "end_datetime": {
            "label": "End Date & Time"
          },
          "quick_duration": {
            "label": "Quick Duration"
          }
        },
        "summary": {
          "title": "Summary",
          "product_id": "Product ID",
          "sale_price": "Sale Price",
          "discount": "Discount",
          "qty_limit": "Qty Limit",
          "duration": "Duration"
        },
        "submit": {
          "create": "Create Flash Sale",
          "update": "Update Flash Sale"
        },
        "validation": {
          "product_id_required": "Product ID is required",
          "sale_price_invalid": "Enter a valid sale price",
          "quantity_limit_min": "Quantity limit must be at least {min}",
          "discount_range": "Discount must be 0–100",
          "end_after_start": "End time must be after start time"
        }
      }
    },
    "bundle": {
      "empty": "No bundles found",
      "card": {
        "subtitle": "Items: {count} • Price: ${price}"
      }
    },
    "group_buy": {
      "empty": "No group buys found",
      "card": {
        "subtitle_multiline": "{product}\nParticipants: {current}/{required}",
        "subtitle_inline": "{product} • {current}/{required} participants"
      }
    },
    "auction": {
      "empty": "No auctions found",
      "actions": {
        "extend": "Extend"
      },
      "card": {
        "subtitle_multiline": "{product}\nCurrent Bid: ${bid} ({count} bids)",
        "subtitle_inline": "{product} • ${bid} ({count} bids)"
      }
    }
  },
  "coin": {
    "confirm": "Confirm",
    "promotion_type": {
      "fixed_coin_price": "Fixed coin price",
      "bonus_coins": "Bonus coins",
      "bogo_coins": "Buy 1 Get 1"
    },
    "promotion_form": {
      "create_title": "Create coin promotion",
      "edit_title": "Edit coin promotion",
      "type": "Type",
      "amount_fixed": "Coin price (pay N coins for item)",
      "amount_bonus": "Bonus coins on purchase",
      "amount_bogo": "Coins to unlock 2nd unit",
      "preview_fixed": "Pay {amount} coins for this item",
      "preview_bonus": "🎁 Get {amount} extra coins on purchase",
      "preview_bogo": "🛍️ Buy 1 Get 1 with {amount} coins",
      "preview_placeholder": "N",
      "amount_invalid": "Enter a positive number",
      "title_en": "Title (EN)",
      "title_km": "ចំណងជើង (KH)",
      "product_id": "Product ID (optional — blank = store-wide)",
      "stock_limit": "Stock limit",
      "per_user_limit": "Per-user limit",
      "start_date": "Start date",
      "end_date": "End date",
      "active": "Active",
      "create": "Create promotion",
      "save": "Save changes"
    },
    "seller": {
      "title": "Coins",
      "tabs": {
        "balance": "Balance",
        "promotions": "Promotions",
        "rewards": "Rewards",
        "withdraw": "Withdraw"
      },
      "balance": {
        "store_balance": "Store coin balance",
        "usd_approx": "≈ ${amount}",
        "reserved": "Reserved",
        "lifetime_earned": "Lifetime earned",
        "lifetime_spent": "Lifetime spent",
        "rate_label": "Rate",
        "rate": "{rate} = $1"
      },
      "promotions": {
        "empty": "No coin promotions yet.\nCreate one to offer coin deals.",
        "new": "New promotion",
        "created": "Promotion created — now live in nh_mall",
        "updated": "Promotion updated",
        "deleted": "Promotion deleted",
        "delete_title": "Delete promotion?",
        "coins_headline": "{count} coins",
        "store_wide": "Store-wide",
        "product": "Product",
        "ends": "ends {date}",
        "coins_meta": "{count} coins"
      },
      "rewards": {
        "empty": "No rewards issued yet.",
        "give": "Give reward",
        "sent": "Reward sent. Remaining today: {remaining}",
        "sheet_title": "Award store coins",
        "customer_id": "Customer ID",
        "customer_id_invalid": "Enter a valid customer id",
        "coins": "Coins",
        "coins_invalid": "Enter coins",
        "reason": "Reason",
        "reason_required": "Reason required",
        "send": "Send reward",
        "preset_birthday": "Birthday gift",
        "preset_review": "Excellent review",
        "preset_loyal": "Loyal customer reward",
        "coins_awarded": "+{count} coins"
      },
      "withdraw": {
        "available": "Available: {count}",
        "bakong": "Bakong",
        "bank": "Bank",
        "coins_to_withdraw": "Coins to withdraw",
        "bakong_account": "Bakong account / phone",
        "bank_account": "Bank account ID",
        "coins_required": "Enter coins to withdraw",
        "requested_title": "Withdrawal requested",
        "requested_body": "Coins: {debited}\nFee ({fee_pct}%): {fee}\nNet: {net} coins → ${cash}\nStatus: {status}",
        "fee": "Fee (15%)",
        "fee_value": "{count} coins",
        "net": "Net",
        "you_receive": "You receive",
        "submit": "Request withdrawal"
      }
    },
    "admin": {
      "title": "Coin Platform",
      "tabs": {
        "economy": "Economy",
        "cashouts": "Cash-outs",
        "config": "Config",
        "mint_burn": "Mint / Burn",
        "fraud": "Fraud",
        "sellers": "Sellers"
      },
      "economy": {
        "circulation": "Coins in circulation",
        "liability": "Platform liability ≈ ${amount}",
        "wallets": "Wallets",
        "reserved": "Reserved",
        "lifetime_earned": "Lifetime earned",
        "lifetime_spent": "Lifetime spent",
        "last_30_days": "Last 30 days",
        "credited": "Credited (earned)",
        "debited": "Debited (spent)"
      },
      "cashouts": {
        "empty": "No pending cash-outs 🎉",
        "processed": "Cash-out {action}",
        "summary": "{coins} → ${cash}  (fee {fee})",
        "to": "To: {account}",
        "reject": "Reject",
        "approve": "Approve",
        "mark_paid": "Mark paid"
      },
      "config": {
        "earning": "Earning",
        "limits_fees": "Limits & fees",
        "earn_rate": "Earn rate (coins per $1)",
        "redeem_rate": "Redeem rate (coins = $1)",
        "first_purchase_bonus": "First purchase bonus",
        "referral_bonus": "Referral bonus",
        "daily_cap": "Daily earn cap (coins)",
        "withdraw_fee": "Seller withdrawal fee (%)",
        "min_order_value": "Min order to earn coins ($, 0 = none)",
        "seller_earnings": "Seller earnings",
        "seller_sale_earn_rate": "Seller earn rate (coins per $1)",
        "seller_sale_earn_rate_hint": "Coins credited to the store per $1 of a completed order. 0 = off.",
        "save": "Save config",
        "saved": "Config saved"
      },
      "mint_burn": {
        "intro": "Manually adjust a user's coin balance. Every action is audited.",
        "user_id": "User ID",
        "coins": "Coins",
        "reason": "Reason",
        "issue": "Issue",
        "burn": "Burn",
        "validation": "Enter user ID, coins and reason",
        "issue_confirm_title": "Issue coins?",
        "burn_confirm_title": "Burn coins?",
        "confirm_body": "{coins} coins {direction} {userId}\nReason: {reason}",
        "direction_to": "to",
        "direction_from": "from",
        "done": "Done. New balance: {balance}"
      },
      "status": {
        "paid": "paid",
        "approved": "approved",
        "rejected": "rejected",
        "pending": "pending"
      },
      "fraud": {
        "summary_24h": "Risk summary (24h)",
        "band_review": "Review",
        "band_block": "Blocked",
        "band_normal": "Normal",
        "open_queue": "Review queue",
        "blocks_24h": "Blocks (24h)",
        "top_risky": "Top risky users",
        "events_count": "{count} events",
        "review_queue": "Review queue",
        "filter_all": "All",
        "no_events": "No risk events",
        "amount": "{coins} coins",
        "review": "Review",
        "resolve_title": "Resolve risk event",
        "resolve_body": "Score {score} · {coins} coins involved. Choose an action.",
        "reverse_coins": "Reverse coins",
        "reverse_hint": "Claw back the coins credited in this event",
        "note": "Note (optional)",
        "clear": "Clear",
        "confirm_fraud": "Confirm fraud",
        "resolved": "Event resolved",
        "reversed": "Reversed"
      },
      "sellers": {
        "store_id": "Store ID",
        "load": "Load",
        "invalid_id": "Enter a valid 24-character store id",
        "empty": "Search a store to view its coin policy and activity.",
        "policy": "Coin policy",
        "daily_limit": "Daily reward limit",
        "weekly_limit": "Weekly reward limit",
        "max_promos": "Max active promotions",
        "withdrawal_enabled": "Withdrawal enabled",
        "flag_store": "Flag store",
        "flag_hint": "Pauses rewards, promotions and cash-out",
        "flag_reason": "Flag reason",
        "save": "Save policy",
        "saved": "Seller policy updated",
        "activity": "Activity snapshot",
        "rewards_today": "Rewards today",
        "rewards_week": "Rewards this week",
        "active_promos": "Active promotions",
        "pending_cashouts": "Pending cash-outs",
        "tx_count": "{count} tx",
        "flagged": "Flagged"
      }
    },
    "customer_coins": {
      "title": "Customer coins",
      "recent": "Recent activity",
      "reward": "Reward coins",
      "reward_done": "Coins awarded",
      "new_balance": "New balance: {coins}",
      "remaining_today": "Remaining today",
      "remaining_week": "Remaining this week"
    }
  },
  "wallet": {
    "title": "Store Wallet",
    "available": "Available balance",
    "on_hold": "On hold",
    "total": "Total",
    "hold_hint": "Funds on hold become available once the return window closes.",
    "ledger": "Transactions",
    "empty": "No transactions yet",
    "pending": "On hold",
    "tabs": {
      "balance": "Balance",
      "withdraw": "Withdraw"
    },
    "type": {
      "credit": "Order revenue",
      "debit": "Refund",
      "payout": "Payout",
      "commission": "Commission",
      "other": "Transaction"
    },
    "withdraw": {
      "available": "Available to withdraw",
      "amount": "Amount (USD)",
      "note": "Note (optional)",
      "hint": "Withdrawals are paid to your store's default Bakong account after a super-admin approves the request.",
      "submit": "Request withdrawal",
      "requested": "Withdrawal requested",
      "amount_invalid": "Enter a valid amount (min $1.00)",
      "exceeds_available": "Amount exceeds your available balance",
      "my_requests": "My requests",
      "no_requests": "No withdrawal requests yet",
      "cancel_title": "Cancel withdrawal?",
      "cancel_body": "The locked funds will be returned to your wallet.",
      "cancelled": "Withdrawal cancelled",
      "view_qr": "View payout QR",
      "payout_ref": "Payout ref: {ref}",
      "qr_title": "Payout KHQR",
      "qr_hint": "The platform scans this QR to transfer the funds to your Bakong account.",
      "no_qr": "No QR available",
      "account": "Bakong account: {account}",
      "status": {
        "pending": "Pending",
        "approved": "Approved",
        "paid": "Paid",
        "rejected": "Rejected",
        "cancelled": "Cancelled"
      }
    },
    "admin": {
      "title": "Store Withdrawals",
      "nav": "Withdrawals",
      "empty": "No withdrawal requests",
      "approve": "Approve",
      "reject": "Reject",
      "mark_paid": "Mark paid",
      "approved": "Withdrawal approved",
      "rejected": "Withdrawal rejected",
      "marked_paid": "Marked as paid",
      "reject_title": "Reject withdrawal",
      "paid_title": "Mark as paid",
      "note_hint": "Reason (optional)",
      "payout_ref_hint": "Payout reference (optional)",
      "filter": {
        "all": "All",
        "pending": "Pending",
        "approved": "Approved",
        "paid": "Paid",
        "rejected": "Rejected"
      }
    }
  },
  "order": {
    "scan_invoice_tooltip": "Scan invoice barcode",
    "scan_not_found": "No order found for {number}",
    "scan_failed": "Could not open order",
    "status": {
      "all": "All",
      "draft": "Pending",
      "approved": "Confirmed",
      "posted": "Ready to Ship",
      "partially_shipped": "Partially Shipped",
      "completed": "Completed",
      "cancelled": "Cancelled"
    },
    "payment_status": {
      "pending": "Awaiting Payment",
      "paid": "Paid",
      "failed": "Payment Failed",
      "refunded": "Refunded"
    },
    "fulfillment": {
      "unfulfilled": "Not Fulfilled",
      "partial": "Partially Fulfilled",
      "fulfilled": "Fulfilled"
    },
    "shipment": {
      "status": {
        "pending": "Pending",
        "shipped": "Shipped",
        "in_transit": "In Transit",
        "out_for_delivery": "Out for Delivery",
        "delivered": "Delivered",
        "failed": "Delivery Failed"
      }
    },
    "list": {
      "title": "Orders",
      "empty": "No orders found",
      "unknown_customer": "Guest customer",
      "load_failed": "Failed to load orders",
      "search_hint": "Search by order number..."
    },
    "detail": {
      "title": "Order Details",
      "order_number": "Order #",
      "customer": "Customer",
      "customer_info": "Customer Information",
      "phone": "Phone",
      "date": "Date",
      "source": "Order Source",
      "payment_type": "Payment Type",
      "cod": "Cash on Delivery",
      "payment_info": "Payment Information",
      "payment_status": "Payment Status",
      "payment_method": "Payment Method",
      "payment_paid": "Paid",
      "payment_pending": "Pending",
      "payment_failed": "Failed",
      "payment_refunded": "Refunded",
      "paid_amount": "Paid Amount",
      "paid_at": "Paid at",
      "transaction_id": "Transaction ID",
      "shipping_address": "Shipping Address",
      "recipient": "Recipient",
      "address": "Address",
      "copied": "Copied to clipboard",
      "subtotal": "Subtotal",
      "items": "Items",
      "col_item": "Item",
      "col_price": "Price",
      "col_qty": "Qty",
      "col_total": "Total",
      "items_summary": "{items} items · {units} units",
      "shipped_ratio": "{shipped}/{qty} shipped",
      "shipping_photos": "Shipping Photos"
    },
    "action": {
      "confirm": "Accept Order",
      "cancel": "Reject Order",
      "cancel_reason": "Reason",
      "cancel_reason_hint": "Tell the buyer why this order can't be fulfilled",
      "create_shipment": "Create Shipment",
      "mark_posted": "Start Preparing",
      "mark_partially_shipped": "Mark as Shipped",
      "mark_posted_success": "Order is now being prepared",
      "mark_partially_shipped_success": "Order marked as shipped",
      "confirm_success": "Order confirmed",
      "cancel_success": "Order cancelled",
      "change_status": "Change status",
      "carrier": "Carrier",
      "carrier_hint": "e.g. DHL, FedEx",
      "tracking_number": "Tracking Number",
      "tracking_hint": "Enter tracking number",
      "notify_customer": "Notify customer",
      "print_invoice": "Print invoice",
      "save_pdf": "Save PDF",
      "mark_printed": "Mark as printed",
      "download_invoice": "Download invoice",
      "more": "More options",
      "preparing_invoice": "Preparing invoice…",
      "saved_to": "Invoice saved to {}",
      "mark_completed": "Complete Order",
      "mark_completed_success": "Order completed",
      "complete_confirm_title": "Complete this order?",
      "complete_confirm_body": "This marks the order as delivered and releases your payout. This action cannot be undone."
    },
    "print": {
      "title": "Print Orders",
      "subtitle": "Filter, select and print invoices in one job",
      "date_label": "Date range",
      "today": "Today",
      "this_week": "This week",
      "this_month": "This month",
      "custom": "Custom range",
      "all_dates": "All dates",
      "status_label": "Order status",
      "load": "Load orders",
      "loading": "Loading orders…",
      "select_all": "Select all",
      "selected": "{} selected",
      "found": "{} orders found",
      "none_found": "No orders match these filters",
      "print_selected": "Print ({})",
      "preparing": "Preparing {} invoice(s)…",
      "empty_selection": "Select at least one order",
      "error": "Couldn't load orders",
      "range_label": "{} → {}",
      "print_unprinted": "Print unprinted invoices",
      "printing": "Preparing invoices…",
      "no_unprinted": "All orders have already been printed",
      "batch_printed": "{} invoice(s) printed",
      "marked_printed": "Invoice printed",
      "already_printed": "This order has already been marked as printed",
      "mark_printed_confirm_title": "Mark as printed?",
      "mark_printed_confirm_message": "Mark order {} as printed without sending it to a printer?",
      "confirm_title": "Print invoice",
      "confirm_message": "Would you like to print order {}?",
      "confirm_reprint_message": "Order {} has already been printed. Print it again?",
      "printed_on": "Printed {}",
      "order_deleted": "This order no longer exists"
    },
    "empty": {
      "all": "No orders yet. New orders will appear here as customers place them.",
      "draft": "No new orders waiting for your acceptance.",
      "approved": "No confirmed orders waiting to be shipped.",
      "posted": "No orders ready to ship.",
      "partially_shipped": "No partial shipments in progress.",
      "completed": "No completed orders yet.",
      "cancelled": "No cancelled orders."
    },
    "total": "Total",
    "tax": "Tax",
    "shipping": "Shipping",
    "discount": "Discount",
    "qty": "Qty",
    "view": {
      "list": "List view",
      "grid": "Grid view"
    },
    "filter": {
      "by_province": "Filter by province",
      "all_provinces": "All provinces",
      "no_provinces": "No shipping provinces yet",
      "province_chip": "Province: {province}"
    },
    "select": {
      "start": "Select to print",
      "cancel": "Cancel",
      "hint": "Select orders to print",
      "title": "{} selected"
    },
    "shipping_images": {
      "title": "Add shipping photo",
      "subtitle": "Attach a photo as proof of shipment. The buyer can view it on their order.",
      "add": "Add photo",
      "change": "Change",
      "skip": "Skip",
      "confirm": "Ship with photo"
    }
  },
  "store_management": {
    "manage": "Manage",
    "tabs": {
      "access": "Access",
      "staff": "Staff",
      "roles": "Roles"
    },
    "access": {
      "empty": "No users assigned to this store",
      "assign": "Assign User",
      "edit": "Edit Assignment",
      "search_hint": "Search by name, email, or phone…",
      "level": "Access Level",
      "remove_title": "Remove User",
      "remove_body": "Remove {name} from {store}?",
      "remove_failed": "Failed to remove user"
    },
    "staff": {
      "empty": "No staff users in this store",
      "role": "Role",
      "role_updated": "Staff role updated",
      "role_update_failed": "Failed to update staff role",
      "created": "Staff member created",
      "create_failed": "Failed to create staff member",
      "no_roles_hint": "Create a role first before adding staff"
    },
    "roles": {
      "empty": "No roles defined for this store",
      "create": "Create Role",
      "permissions": "Permissions",
      "delete_title": "Delete Role",
      "delete_body": "Delete role \"{name}\"? This cannot be undone.",
      "deleted": "Role deleted",
      "delete_failed": "Failed to delete role",
      "permission_count": "{} perms",
      "edit_permissions": "Edit permissions",
      "ceiling_badge": "CEILING",
      "ceiling_tooltip": "This role defines the store's permission ceiling",
      "ceiling_note": "This is the provisioned Store Admin role. The permissions granted here define the store's ceiling — only these actions appear in the store's own catalog and can be assigned to its staff and sub-roles.",
      "code_locked": "Code is platform-managed and cannot be changed"
    }
  },
  "roles": {
    "list": {
      "title": "Roles",
      "subtitle": "Manage store roles & permissions",
      "empty_title": "No Roles Found",
      "empty_subtitle": "Create your first role using the button below.",
      "error_title": "Something went wrong",
      "search_hint": "Search roles..."
    },
    "status": {
      "active": "Active",
      "inactive": "Inactive"
    },
    "fields": {
      "name": "Name",
      "code": "Code",
      "description": "Description",
      "status": "Status"
    },
    "create": {
      "title": "Create Role",
      "name_hint": "Enter role name",
      "code_hint": "Leave blank to auto-generate",
      "description_hint": "Optional description",
      "submit": "Create Role"
    },
    "detail": {
      "title": "Role Detail",
      "info_card": "Role Information",
      "permissions_card": "Assigned Permissions",
      "no_permissions": "No permissions assigned",
      "permission_count": "{count} permissions",
      "menu": {
        "edit": "Edit Role",
        "assign_permissions": "Assign Permissions",
        "delete": "Delete Role"
      },
      "edit": {
        "title": "Edit Role",
        "submit": "Save Changes"
      },
      "assign_permissions": {
        "title": "Assign Permissions",
        "save": "Save Permissions",
        "select_all": "Select All",
        "clear_all": "Clear All",
        "empty": "No permissions available"
      },
      "delete": {
        "title": "Delete Role",
        "message": "Are you sure you want to delete this role? This action cannot be undone.",
        "confirm": "Delete"
      }
    }
  },
  "pos_shift_setup": {
    "title": "Select Terminal & Shift",
    "subtitle": "Choose a terminal to start or resume your shift.",
    "open_title": "Open Shift",
    "open_subtitle": "Enter the opening cash amount to start a new shift.",
    "resume_title": "Resume Shift",
    "resume_subtitle": "This terminal already has an open shift.",
    "badge_resume": "Resume",
    "badge_start": "Start Shift",
    "opening_float_label": "Opening cash",
    "amount_invalid": "Please enter a valid amount",
    "open_button": "Open Shift",
    "resume_button": "Resume Shift",
    "resume_hint": "Tap Resume to continue the existing open shift on this terminal.",
    "no_terminals_title": "No Active Terminals",
    "no_terminals_body": "Ask your administrator to create and activate a POS terminal.",
    "load_error": "Failed to load terminals. Please check your connection and try again.",
    "retry": "Retry",
    "opening": "Opening shift…",
    "resuming": "Resuming shift…"
  },
  "eproduct": {
    "title": "E-Product Review",
    "search_hint": "Search name / barcode / HS code",
    "scan_barcode_tooltip": "Scan barcode",
    "clear_tooltip": "Clear",
    "no_products": "No products found.",
    "filter": {
      "all": "All",
      "pending": "Pending",
      "approved": "Approved",
      "suspended": "Suspended",
      "rejected": "Rejected"
    },
    "card": {
      "submitted": "Submitted: {date}",
      "reason": "Reason: {reason}",
      "approve": "Approve",
      "reject": "Reject",
      "suspend": "Suspend",
      "inactivate": "Inactivate",
      "reactivate": "Reactivate",
      "unknown_status": "Unknown",
      "actions_tooltip": "Actions",
      "ecommerce_status": {
        "public": "Approved",
        "rejected": "Rejected",
        "pending": "Pending",
        "requested": "Pending",
        "suspended": "Suspended"
      },
      "product_status": {
        "active": "Active",
        "inactive": "Inactive",
        "draft": "Draft",
        "pending_review": "Pending Review",
        "rejected": "Rejected"
      }
    },
    "dialog": {
      "reject_title": "Reject Product",
      "reject_reason_label": "Reason for rejection",
      "reject_button": "Reject",
      "suspend_title": "Suspend Product",
      "suspend_reason_label": "Reason for suspension",
      "suspend_button": "Suspend",
      "inactivate_title": "Inactivate Product",
      "inactivate_body": "Hide \"{name}\" from the marketplace by setting it inactive?",
      "inactivate_button": "Inactivate"
    },
    "store_filter": {
      "title": "Select Store",
      "all_stores": "All stores",
      "all_stores_subtitle": "Show products from every store",
      "search_hint": "Search store by name or code",
      "no_stores": "No stores found."
    }
  },
  "reports": {
    "title": "Reports",
    "tabs": {
      "sales": "Sales",
      "inventory": "Inventory",
      "transactions": "Transactions",
      "shifts": "Shifts",
      "terminals": "Terminals",
      "financial": "Financial"
    },
    "common": {
      "filters": "Filters",
      "all_dates": "All dates",
      "load_more": "Load More",
      "showing": "Showing {shown} of {total}",
      "export": "Export",
      "exported_to": "Exported to: {path}",
      "error_loading": "Error loading data",
      "adjust_filters": "Adjust your filters to see results"
    },
    "sales": {
      "channel_label": "Channel",
      "channel_all": "All",
      "channel_online": "Online",
      "channel_pos": "POS",
      "order_status": "Order Status",
      "payment_status": "Payment Status",
      "pos_status": "POS Status",
      "summary_records": "Records",
      "summary_revenue": "Revenue",
      "summary_discounts": "Discounts",
      "col_reference": "Reference",
      "col_channel": "Channel",
      "col_date": "Date",
      "col_subtotal": "Subtotal",
      "col_discount": "Discount",
      "col_tax": "Tax",
      "col_total": "Total",
      "col_payment": "Payment",
      "col_status": "Status",
      "empty_title": "No sales found",
      "empty_subtitle": "Adjust your filters to find records",
      "summary_avg": "Avg Order",
      "summary_net": "Net Sales",
      "period_label": "Period",
      "custom_range": "Custom range",
      "edit_range": "Edit range",
      "status_any": "Any",
      "status_channel_hint": "Choose the Online or POS channel to filter by status."
    },
    "inventory": {
      "filter_hint": "· Showing current inventory levels",
      "low_stock_only": "Low stock only",
      "low_stock_subtitle": "Show products below reorder level",
      "summary_skus": "Total SKUs",
      "summary_qty": "Available Qty",
      "summary_low": "Low Stock",
      "col_product": "Product Name",
      "col_code": "Code",
      "col_sku": "SKU",
      "col_warehouse": "Warehouse",
      "col_on_hand": "On Hand",
      "col_reserved": "Reserved",
      "col_incoming": "Incoming",
      "col_available": "Available",
      "col_reorder": "Reorder Lvl",
      "col_low_stock": "Low Stock",
      "col_expiry": "Expiry",
      "empty_title": "No inventory records found"
    },
    "transactions": {
      "type_label": "Transaction Type",
      "type_all": "All",
      "type_in": "IN",
      "type_out": "OUT",
      "type_transfer": "TRANSFER",
      "type_adjust": "ADJUST",
      "summary_total": "Total Tx",
      "summary_in": "Total IN",
      "summary_out": "Total OUT",
      "col_date": "Date",
      "col_product": "Product",
      "col_sku": "SKU",
      "col_warehouse": "Warehouse",
      "col_type": "Type",
      "col_qty": "Qty",
      "col_unit_cost": "Unit Cost",
      "col_total_cost": "Total Cost",
      "col_reference": "Reference",
      "empty_title": "No transactions found"
    },
    "shared": {
      "status_ok": "OK",
      "status_low": "LOW"
    },
    "export": {
      "dialog_title": "Export Data",
      "select_format": "Select format",
      "choose_location": "2. Choose Location:",
      "no_location": "No location selected",
      "browse": "Browse",
      "exporting": "Exporting data...",
      "no_location_error": "Please select a save location first.",
      "export_failed": "Export failed: {error}\nCheck disk space and permissions.",
      "location_error": "Error picking location: {error}",
      "mobile_auto_save": "Saves automatically to your Downloads folder",
      "mobile_folder_hint": "Files are saved in the folder you pick — not inside the app storage.",
      "desktop_save_hint": "Choose where to save when you tap Export",
      "save_hint": "Choose where to save when you tap Export",
      "format_csv_hint": "Spreadsheet, opens in Excel/Sheets",
      "format_pdf_hint": "Printable, ready to share",
      "format_xlsx_hint": "Excel workbook (multi-sheet)"
    },
    "shifts": {
      "status_closed": "Closed",
      "status_open": "Open",
      "summary_shifts": "Shifts",
      "summary_revenue": "Revenue",
      "summary_variance": "Variance",
      "col_terminal": "Terminal",
      "col_cashier": "Cashier",
      "col_closed": "Closed",
      "col_revenue": "Revenue",
      "col_cash": "Cash",
      "col_variance": "Variance",
      "col_sales": "Sales",
      "empty": "No shifts found for the selected filters",
      "detail_title": "Shift summary",
      "opened": "Opened",
      "closed": "Closed",
      "opening_float": "Opening float",
      "cash_sales": "Cash sales",
      "expected_cash": "Expected cash",
      "closing_cash": "Closing cash",
      "card_sales": "Card sales",
      "qr_sales": "QR sales"
    },
    "terminals": {
      "summary_terminals": "Terminals",
      "summary_transactions": "Transactions",
      "summary_revenue": "Revenue",
      "col_revenue": "Revenue",
      "col_sales": "Sales",
      "col_avg": "Avg sale",
      "empty": "No terminal activity for the selected period"
    },
    "financial": {
      "income_statement": "Income Statement",
      "gross_sales": "Gross Sales",
      "discounts": "Discounts",
      "net_sales": "Net Sales",
      "refunds": "Refunds",
      "net_revenue": "Net Revenue",
      "cogs": "Cost of Goods Sold",
      "gross_profit": "Gross Profit",
      "operating_expenses": "Platform Commission",
      "net_profit": "Net Profit",
      "sales_tax_memo": "Sales tax collected: {amount} (memo — not part of net revenue)",
      "vs_previous": "vs previous period",
      "net_revenue_breakdown": "Net Revenue Breakdown",
      "missing_cost_lines": "{count} line(s) missing cost data — gross profit may be overstated."
    }
  },
  "error": {
    "network": "No internet connection",
    "timeout": "Request timed out",
    "server": "Something went wrong. Please try again later",
    "unauthorized": "Please login to continue",
    "not_found": "Resource not found",
    "generic": "Something went wrong. Please try again"
  },
  "apiError": {
    "product_not_found": "Product not found",
    "user_not_found": "Account not found",
    "order_not_found": "Order not found",
    "coupon_not_found": "Coupon not found",
    "store_not_found": "Store not found",
    "category_not_found": "Category not found",
    "brand_not_found": "Brand not found",
    "warehouse_not_found": "Warehouse not found",
    "variant_not_found": "Variant not found",
    "review_not_found": "Review not found",
    "flash_sale_not_found": "Flash sale not found",
    "address_not_found": "Address not found",
    "wallet_not_found": "Wallet not found",
    "cart_not_found": "Cart not found",
    "resource_not_found": "Not found",
    "access_denied": "You don't have permission to do that",
    "unauthorized": "Please login to continue",
    "forbidden": "You don't have permission to do that",
    "invalid_credentials": "Incorrect phone number or password",
    "invalid_credential": "Incorrect login credentials",
    "invalid_refresh_token": "Your session expired. Please login again",
    "user_not_associated_with_a_store": "No store is linked to your account",
    "no_store_context": "No store is linked to your account",
    "no_store_associated_with_this_account": "No store is linked to your account",
    "no_active_access_to_this_store": "You don't have access to this store",
    "account_is_not_active": "Your account is not active",
    "account_locked_try_again_in_minutes": "Account locked. Please try again later",
    "validation_failed": "Please check your input and try again",
    "invalid_input": "Please check your input and try again",
    "invalid_product_id": "Invalid product",
    "invalid_variant_id": "Invalid product option",
    "invalid_store_id": "Invalid store",
    "invalid_category_id": "Invalid category",
    "insufficient_stock": "Insufficient stock",
    "required_field_missing": "Please fill in all required fields",
    "coupon_code_already_exists": "This coupon code already exists",
    "already_exists": "This resource already exists",
    "invalid_state": "This action is not allowed in the current state",
    "product_status_active_sale_orders": "Cannot deactivate this product while it has active customer orders. Complete or cancel those orders first.",
    "product_status_active_purchase_orders": "Cannot change this product status while it has active purchase orders. Complete or cancel those purchase orders first.",
    "product_status_active_orders": "Cannot change this product status while it has active sale and purchase orders. Complete or cancel those orders first.",
    "product_status_transition_invalid": "Cannot change product status. Please complete the required fields and try again.",
    "invalid_status_transition_active_sale_orders": "Cannot deactivate this product while it has active customer orders. Complete or cancel those orders first.",
    "internal_error": "Something went wrong. Please try again",
    "unknown_error": "Something went wrong. Please try again",
    "expire_token": "Your session has expired",
    "session_expired_or_invalid": "Your session has expired. Please login again",
    "incorrect_password": "Incorrect password",
    "incorrect_old_password": "Old password is incorrect",
    "invalid_mfa_code": "Invalid MFA code",
    "invalid_or_expired_otp": "Invalid or expired OTP. Please try again",
    "invalid_otp_code_please_try_again": "Invalid OTP code. Please try again",
    "email_already_exists": "This email is already in use",
    "forbidden_no_roles_assigned": "No roles assigned to your account"
  },
  "streak_admin": {
    "title": "7-Day Coin Strike",
    "retry": "Retry",
    "no_config": "No config loaded",
    "enable_title": "Enable Coin Strike",
    "enabled_hint": "Customers can claim a daily reward",
    "disabled_hint": "The daily claim is currently paused",
    "preview": "Reward curve",
    "daily_rewards": "Daily rewards",
    "daily_rewards_hint": "Coins awarded for each consecutive day. Missing a day resets to Day 1.",
    "coins": "Coins",
    "bonus": "Bonus",
    "grand_day": "Grand Prize day",
    "stats": "Statistics",
    "active": "Active participants",
    "claimed_today": "Claimed today",
    "day7": "Day-7 completions",
    "total_coins": "Coins distributed",
    "save": "Save changes",
    "saved": "Coin Strike saved",
    "need_seven": "There must be exactly 7 days",
    "coins_invalid": "Coin amounts cannot be negative"
  },
  "spin_admin": {
    "title": "Spin Game",
    "tab_config": "Wheel",
    "tab_stats": "Stats",
    "saved": "Spin config saved",
    "save": "Save wheel",
    "segments": "Wheel segments",
    "total_weight": "Total weight: {weight}",
    "add_segment": "Add segment",
    "name": "Game name",
    "enabled": "Game enabled",
    "enabled_hint": "Turn the wheel on/off for all customers",
    "cost_per_spin": "Cost per spin",
    "free_per_day": "Free spins/day",
    "max_per_day": "Max spins/day",
    "segment": "Segment",
    "label_en": "Label (EN)",
    "label_km": "Label (KH)",
    "type": "Reward type",
    "value": "Value",
    "weight": "Weight",
    "coupon_code": "Coupon code",
    "color": "Color",
    "jackpot": "Jackpot (confetti)",
    "jackpot_hint": "Triggers a celebration when won",
    "type_coins": "Coins",
    "type_coupon": "Coupon",
    "type_discount": "Discount %",
    "type_free_shipping": "Free shipping",
    "type_mystery": "Mystery gift",
    "type_product": "Physical gift",
    "type_nothing": "No win",
    "total_spins": "Total spins",
    "spins_today": "Spins today",
    "coins_spent": "Coins spent",
    "coins_awarded": "Coins awarded",
    "net_coins": "Net coins",
    "free_paid": "Free / Paid",
    "distribution": "Reward distribution",
    "no_stats": "No spin data yet",
    "no_config": "No config loaded",
    "min_segments": "Add at least 2 segments",
    "weights_required": "Segment weights must be greater than 0",
    "segment_id_required": "Each segment needs an id",
    "duplicate_id": "Segment ids must be unique",
    "new_game": "New game",
    "games": "Spin games",
    "no_games": "No spin games yet. Create one to get started.",
    "game_deleted": "Game deleted",
    "deactivate": "Deactivate",
    "activate": "Activate",
    "items": "Reward items",
    "spins": "Spins",
    "win_rate": "Win rate",
    "cost": "Cost",
    "status_live": "Live",
    "status_paused": "Paused",
    "status_inactive": "Inactive",
    "delete_game": "Delete game",
    "delete_game_confirm": "Delete “{name}” and all its items? This cannot be undone.",
    "general": "General settings",
    "desc_en": "Description (EN)",
    "desc_km": "Description (KH)",
    "priority": "Priority",
    "save_settings": "Save settings",
    "live": "Live",
    "off": "Off",
    "add_item": "Add item",
    "edit_item": "Edit item",
    "item": "Item",
    "item_added": "Item added",
    "item_saved": "Item saved",
    "weight_hint": "Higher weight = more likely to be won",
    "item_enabled": "Item enabled",
    "item_enabled_hint": "Disabled items stay saved but leave the wheel",
    "weights_normalized": "Weights are auto-normalized to 100% across enabled items.",
    "no_items": "No items yet. Tap “Add item” to build the wheel.",
    "delete_item": "Delete item",
    "delete_item_confirm": "Remove this reward from the wheel?",
    "actual_outcomes": "Actual outcomes from real spins",
    "name_required": "Game name is required",
    "label_en_required": "English label is required",
    "weight_invalid": "Weight must be 0 or more",
    "coin_value_required": "Coin rewards need a value above 0",
    "coupon_required": "This reward type needs a coupon code",
    "image": "Reward image",
    "image_hint": "Optional image shown with this reward",
    "upload_image": "Upload image",
    "change_image": "Change",
    "coupon_config": "Coupon configuration",
    "coupon_config_hint": "Each win mints a unique, single-use coupon bound to the winner — it lands in their “My Coupons”.",
    "discount_type": "Discount type",
    "discount_percent": "Percentage",
    "discount_fixed": "Fixed amount",
    "discount_value_pct": "Discount value",
    "discount_value_amt": "Discount amount",
    "min_order": "Minimum order",
    "max_discount": "Max discount cap",
    "max_discount_hint": "Caps the discount for percentage coupons (optional)",
    "free_shipping_note": "Waives the delivery fee at checkout — no amount needed.",
    "free_shipping_short": "FREE\nSHIP",
    "expiry_duration": "Expiry duration",
    "days": "{n} days",
    "days_label": "Days",
    "code_prefix": "Code prefix",
    "code_prefix_hint": "e.g. SPIN → SPIN-A1B2 (optional)",
    "applicable_categories": "Applicable categories",
    "all_categories": "All categories",
    "edit_categories": "Edit categories",
    "categories_hint": "Leave empty to apply to all products",
    "preview": "Customer preview",
    "preview_badge": "COUPON",
    "preview_off": "OFF",
    "preview_free_shipping": "Free delivery",
    "preview_coupon_name": "Coupon name",
    "preview_min_spend": "Min. spend ${amt}",
    "preview_no_min": "No minimum spend",
    "preview_expires": "Expires in {n} days",
    "coupon_value_required": "Enter a discount value above 0",
    "coupon_percent_invalid": "Percentage discount cannot exceed 100%",
    "coupon_expiry_invalid": "Expiry must be at least 1 day"
  },
  "subscription": {
    "title": "Store Subscription",
    "choose_plan": "Choose your plan",
    "current_plan": "Current plan",
    "renews_on": "Renews on {date}",
    "expires_on": "Expires on {date}",
    "cancel_renewal": "Cancel renewal",
    "cancel_title": "Cancel auto-renewal?",
    "cancel_body": "You keep all benefits until the end of the current period. After that your store moves to the free Basic plan.",
    "keep_plan": "Keep plan",
    "confirm_cancel": "Cancel renewal",
    "past_due": "Payment overdue — renew now to keep your benefits.",
    "past_due_until": "Payment overdue — benefits kept until {date}. Renew now.",
    "usage_title": "This month's usage",
    "usage_products": "Products",
    "usage_notifications": "Follower notifications",
    "unlimited": "Unlimited",
    "pending_invoice": "Pending {tier} upgrade — awaiting payment",
    "pending_invoice_hint": "Tap to view payment instructions",
    "popular": "POPULAR",
    "free": "Free",
    "per_month": "per month",
    "upgrade_to": "Upgrade to {tier}",
    "month": "month",
    "year": "year",
    "billed_monthly": "Billed monthly, cancel anytime",
    "billed_yearly": "Billed yearly — 2 months free",
    "continue_payment": "Continue to payment",
    "invoice_title": "Payment instructions",
    "invoice_body": "Transfer {amount} to the NH Shop business account and include the reference code below. Your {tier} plan activates as soon as we confirm the payment (usually within 24h).",
    "reference_label": "Payment reference",
    "reference_copied": "Reference copied",
    "invoice_footnote": "Paid but still not active? Contact support with your reference code.",
    "got_it": "Got it",
    "retry": "Retry",
    "limit_title": "You've reached your plan limit",
    "limit_generic": "Upgrade your plan to unlock more capacity for your store.",
    "view_plans": "View plans",
    "maybe_later": "Maybe later"
  }
}
