{
  "common": {
    "save": "Save",
    "cancel": "Cancel",
    "close": "Close",
    "edit": "Edit",
    "delete": "Delete",
    "retry": "Retry",
    "loading": "Loading...",
    "saving": "Saving...",
    "active": "Active",
    "suspended": "Suspended",
    "archived": "Archived",
    "status": "Status",
    "domain": "Domain",
    "name": "Name",
    "actions": "Actions",
    "free": "Free",
    "comingSoon": "Coming soon",
    "copy": "Copy",
    "copied": "Copied",
    "optional": "Optional",
    "confirm": "Confirm",
    "total": "total",
    "remaining": "{{count}} remaining",
    "limitReached": "Limit reached"
  },
  "auth": {
    "signInTitle": "Sign in to your account",
    "email": "Email",
    "emailPlaceholder": "your.email@example.com",
    "password": "Password",
    "passwordPlaceholder": "Enter your password",
    "forgotPassword": "Forgot password?",
    "signingIn": "Signing in...",
    "signIn": "Sign In",
    "noAccount": "Don't have an account?",
    "signUp": "Sign up",
    "error2FA": "Two-factor authentication required",
    "errorInvalidCredentials": "Invalid email or password",
    "errorLoginFailed": "Login failed. Please try again.",
    "errorUnexpected": "An unexpected error occurred. Please try again.",
    "register": {
      "terms": {
        "prefix": "I agree to the ",
        "termsLink": "Terms of Service",
        "and": " and ",
        "privacyLink": "Privacy Policy",
        "required": "You must accept the Terms of Service and Privacy Policy to continue."
      }
    }
  },
  "nav": {
    "dashboard": "Dashboard",
    "tenants": "Tenants",
    "knowledge": "Knowledge",
    "widgetConfig": "Widget Configuration",
    "subscription": "Subscription",
    "wip": "Work In Progress",
    "infoCenter": "Info Center",
    "settings": "Settings",
    "devSettings": "Dev Settings",
    "profile": "Profile",
    "company": "Company",
    "documents": "Legal documents",
    "logout": "Logout",
    "promotions": "Promotions",
    "convertToBusiness": "Convert to Business",
    "conversations": "Conversations",
    "members": "Members",
    "intelligence": "Intelligence"
  },
  "address": {
    "street": "Street",
    "zip": "Postal Code",
    "city": "City",
    "country": "Country",
    "countryPlaceholder": "Germany"
  },
  "readiness": {
    "title": "Before you can subscribe",
    "subtitle": "A few things need to be resolved first.",
    "missingProfile": "Complete your billing profile",
    "missingProfileFields": "Still missing:",
    "missingEmail": "Confirm your email",
    "missingEmailDescription": "Click the link we sent you to unlock paid plans.",
    "editProfile": "Edit profile"
  },
  "profileCompleteness": {
    "title": "Complete your billing profile",
    "description": "We need a few more details to issue invoices for paid plans:",
    "cta": "Complete profile",
    "verify": {
      "title": "Confirm your email.",
      "description": "Click the link we sent to unlock paid plans.",
      "cta": "Confirm email"
    },
    "field": {
      "street": "street",
      "zip": "postal code",
      "city": "city",
      "country": "country",
      "vatId": "VAT ID",
      "legalForm": "legal form",
      "registerCourt": "register court",
      "registerNumber": "register number",
      "directorName": "director"
    }
  },
  "dashboard": {
    "title": "Dashboard Home",
    "subtitle": "Welcome to the Archer Dashboard",
    "errorLoading": "Error loading dashboard: {{error}}",
    "tenants": "Tenants",
    "integrationKeys": "Integration Keys",
    "commands7Days": "Commands (7 days)",
    "commands30Days": "Commands (30 days)",
    "commands": "commands",
    "subscription": "Subscription",
    "manage": "Manage",
    "recentActivity": "Recent Activity",
    "noRecentActivity": "No recent activity to display.",
    "valid": "valid"
  },
  "tenants": {
    "searchPlaceholder": "Search by name or domain...",
    "addNewTenant": "Add New Tenant",
    "limitWarning": "You've reached your plan's limit of {{max}} {{label}}. Upgrade your plan to add more.",
    "limitWarningShort": "Website limit reached ({{max}}). Upgrade your plan to add more.",
    "statusFilter": "Status:",
    "allStatuses": "All Statuses",
    "tenant": "tenant",
    "tenants": "tenants",
    "noTenantsFound": "No tenants found",
    "noTenantsYet": "No tenants yet",
    "adjustFilters": "Try adjusting your search or filters",
    "getStarted": "Get started by creating your first tenant",
    "manageKeys": "Manage keys",
    "editTenant": "Edit tenant",
    "deleteTenant": "Delete tenant",
    "errorLoading": "Error loading tenants: {{error}}",
    "website": "website",
    "websites": "websites",
    "edit": {
      "editTitle": "Edit Tenant",
      "createTitle": "Create New Tenant",
      "editSubtitle": "Update tenant information",
      "createSubtitle": "Add a new tenant to your account",
      "saveChanges": "Save Changes",
      "createTenant": "Create Tenant",
      "tenantName": "Tenant Name",
      "namePlaceholder": "e.g., Main Website, Mobile App, API Client",
      "nameRequired": "Name is required",
      "domainRequired": "Domain is required",
      "invalidDomain": "Invalid domain format",
      "domainLocked": "Domain cannot be changed after creation",
      "domainPlaceholder": "example.com"
    },
    "delete": {
      "title": "Delete Tenant",
      "subtitle": "This action cannot be undone",
      "confirm": "Are you sure you want to delete this tenant?",
      "confirmButton": "Delete Tenant"
    },
    "detail": {
      "close": "Close",
      "status": "Status",
      "domain": "Domain",
      "integrationKeys": "Integration Keys",
      "keysDescription": "Each integration has a production key (domain-restricted) and a testing key (auto-rotates after 1,000 commands).",
      "productionKey": "Production Key",
      "productionDescription": "Use on your live website. Restricted to your domain.",
      "testingKey": "Testing Key",
      "testingDescription": "Use on staging/dev. Auto-rotates at 1,000 commands.",
      "notGenerated": "Not generated",
      "copyKey": "Copy key",
      "regenerate": "Regenerate",
      "usage": "Usage: {{used}} / 1,000 commands",
      "snippetConstructor": "Snippet Constructor",
      "snippetDescription": "Configure and copy the installation code for your website",
      "key": "Key",
      "production": "Production",
      "testing": "Testing",
      "dock": "Dock",
      "cacheTtl": "Cache TTL",
      "scenario": "Scenario",
      "snippetTip": "<strong>Tip:</strong> Place this snippet before the closing <code>&lt;/body&gt;</code> tag for best performance.",
      "usageStatistics": "Usage Statistics",
      "totalRequests": "Total Requests",
      "audioDuration": "Audio Duration",
      "totalTokens": "Total Tokens",
      "regenerateTitle": "Regenerate Integration Key",
      "regenerateSubtitle": "The current key will be revoked immediately",
      "regenerating": "Regenerating...",
      "regenerateKey": "Regenerate Key",
      "regenerateWarning": "This will revoke the current <strong>{{environment}}</strong> key and generate a new one. Any integrations using the old key will stop working immediately.",
      "regenerateNote": "Make sure to update your integration snippet after regenerating.",
      "widgetPosition": "Widget Position",
      "positionDesc": "Choose where the voice assistant widget appears on your storefront.",
      "topRight": "Top Right",
      "middleRight": "Middle Right",
      "bottomRight": "Bottom Right"
    },
    "pluginSettings": {
      "linkTitle": "Plugin Settings",
      "linkDescription": "Configure widget visibility (mobile/web) and the welcome + idle speech bubbles shown by the plugin on this tenant's site.",
      "openConfig": "Open Plugin Settings",
      "pageTitle": "Plugin Settings",
      "pageTitleWithTenant": "Plugin Settings — {{tenantName}}",
      "pageSubtitle": "Configure widget visibility and attention bubbles",
      "pageIntro": "Configure widget visibility and the welcome + idle speech bubbles shown by the plugin.",
      "backToTenant": "Back to tenant",
      "loadFailedTitle": "Failed to load plugin settings.",
      "tabs": {
        "visibility": "Visibility",
        "snippet": "Snippet",
        "welcome": "Welcome bubble",
        "idle": "Idle bubbles"
      },
      "snippetCard": {
        "title": "Generated snippet",
        "subtitle": "Paste this script tag into your site's HTML before </body>. The data-* attributes mirror the snippet settings above; change those and the snippet updates instantly.",
        "keyLabel": "Integration key",
        "keyProduction": "Production key",
        "keyTesting": "Testing key",
        "showButton": "Show installation snippet",
        "modalTitle": "Installation snippet",
        "modalSubtitle": "Paste this into your site's HTML."
      },
      "visibility": "Widget visibility",
      "visibilityHint": "Decide where and when the plugin widget mounts on the tenant's site.",
      "enabled": "Enabled",
      "enabledHint": "Master switch — when off, the widget never mounts regardless of device.",
      "enabledOnWeb": "Enabled on Web",
      "enabledOnWebHint": "Mount the widget on desktop / large-viewport visitors.",
      "enabledOnMobile": "Enabled on Mobile",
      "enabledOnMobileHint": "Mount the widget on phones / small-viewport / touch-only visitors.",
      "attentionEnabled": "Attention anchoring",
      "attentionEnabledHint": "Master switch for both welcome and idle bubbles.",
      "welcomeSection": "Welcome bubble",
      "welcomeSectionHint": "Shown once shortly after the plugin boots.",
      "welcomeEnabled": "Show welcome bubble",
      "welcomeEnabledHint": "If off, the welcome bubble is skipped on every page load.",
      "idleSection": "Idle bubbles",
      "idleSectionHint": "Cycled while the user is inactive on the page.",
      "idleEnabled": "Show idle bubbles",
      "idleEnabledHint": "If off, no idle bubbles are scheduled.",
      "welcomeDelay": "Welcome delay (seconds)",
      "welcomeDelayHelp": "Wait this long after page load before showing the welcome bubble.",
      "holdSeconds": "Hold seconds",
      "holdSecondsHelp": "How long the welcome bubble stays on screen (1–60).",
      "minInterval": "Min interval (s)",
      "minIntervalHelp": "Minimum delay between idle bubbles (5–3600).",
      "maxInterval": "Max interval (s)",
      "maxIntervalHelp": "Maximum delay; must be ≥ min (5–3600).",
      "displaySeconds": "Display seconds",
      "displaySecondsHelp": "How long each idle bubble stays visible (1–60).",
      "localeEnglish": "English",
      "localeGerman": "Deutsch",
      "phraseAddWelcomePlaceholder": "Add a welcome phrase…",
      "phraseAddIdlePlaceholder": "Add an idle phrase…",
      "phraseAdd": "Add",
      "phraseRemove": "Remove phrase",
      "phraseEmptyHint": "No phrases yet — bubbles will be skipped for this locale.",
      "snippet": {
        "section": "Widget snippet",
        "sectionHint": "Runtime configuration shipped to the widget from the server. Script-tag attributes on the host page win when present; absent attributes fall back to these values.",
        "themeLabel": "Theme",
        "themeHelp": "Bundle slug used to fetch the UI from the CDN (lowercase letters, digits, dashes).",
        "dockLabel": "Dock position",
        "dockHelp": "Where the widget anchors on the host page.",
        "dockOption": {
          "bottom-right": "Bottom right",
          "bottom-left": "Bottom left",
          "bottom-center": "Bottom centre",
          "top-right": "Top right",
          "top-left": "Top left",
          "top-center": "Top centre",
          "middle-right": "Middle right",
          "middle-left": "Middle left",
          "right-center": "Right centre",
          "left-center": "Left centre"
        },
        "uiCacheTtlLabel": "UI cache TTL (seconds)",
        "uiCacheTtlHelp": "How long the widget bundle may be cached (0–86400).",
        "scenarioLabel": "Scenario",
        "scenarioHelp": "Optional scripted scenario id (leave empty for none).",
        "domIndexerLabel": "DOM indexer",
        "domIndexerHelp": "Enable the DOM indexer pipeline by default.",
        "deploymentTargetLabel": "Deployment target",
        "deploymentTargetHelp": "Host platform hint for the widget runtime.",
        "deploymentTargetNone": "None",
        "deploymentTargetShopify": "Shopify"
      },
      "validationTitle": "Please fix the following before saving:",
      "errWelcomeDelay": "Welcome delay must be between 0 and 60 seconds.",
      "errWelcomeHold": "Welcome hold must be between 1 and 60 seconds.",
      "errIdleMin": "Idle min interval must be between 5 and 3600 seconds.",
      "errIdleMax": "Idle max interval must be between 5 and 3600 seconds.",
      "errIdleMinGtMax": "Idle min interval must be less than or equal to max interval.",
      "errIdleDisplay": "Idle display must be between 1 and 60 seconds.",
      "errPhraseEmpty": "Phrases cannot be empty.",
      "errPhraseTooLong": "Phrases must be at most {{max}} characters.",
      "errTheme": "Theme must be 1–50 characters and contain only letters, digits or dashes.",
      "errDock": "Dock position is not one of the allowed values.",
      "errUiCacheTtl": "UI cache TTL must be between 0 and 86400 seconds.",
      "errScenario": "Scenario must be 1–50 characters or empty.",
      "errDeploymentTarget": "Deployment target is not one of the allowed values.",
      "saveFailed": "Save failed",
      "saved": "Saved.",
      "save": "Save changes",
      "saving": "Saving…"
    }
  },
  "subscription": {
    "title": "Subscription",
    "subtitle": "Manage your plan, usage, and billing",
    "errorLoading": "Failed to load subscription: {{error}}",
    "cancelNotice": "Your subscription will be cancelled on {{date}}",
    "cancelNoticeDetail": "You'll be moved to the free plan after this date. Until then, your current plan remains active.",
    "resuming": "Resuming...",
    "continueSubscription": "Continue Subscription",
    "currentPlan": "Current Plan",
    "changePlan": "Change Plan",
    "choosePlan": "Choose a plan that fits your needs",
    "price": "Price",
    "perMonth": "/month",
    "billingCycle": "Billing Cycle",
    "currentPeriod": "Current Period",
    "renewal": "Renewal",
    "cancelsAtPeriodEnd": "Cancels at period end",
    "planFeatures": "Plan features",
    "cancelConfirm": "Cancel at end of current period?",
    "yesCancel": "Yes, cancel",
    "cancelling": "Cancelling...",
    "keepPlan": "Keep plan",
    "cancelSubscription": "Cancel subscription",
    "usage": "Usage",
    "planCommands": "Plan Commands",
    "purchasedCommands": "Purchased Commands",
    "buyCommands": "Buy Commands",
    "autoBuy": "Auto-buy",
    "paymentHistory": "Payment History",
    "completePending": "Complete your payment to activate <strong>{{plan}}</strong>.",
    "goToSubscription": "Go to Subscription",
    "selectPlan": "Select Plan",
    "switchToFree": "Switch to Free",
    "completePayment": "Complete Payment",
    "pendingPayment": "Pending Payment",
    "commands": "Commands",
    "noPaymentHistory": "No payment history yet.",
    "payment": "Payment",
    "payNow": "Pay Now",
    "invoiceReady": "Invoice will be ready soon",
    "downloadInvoice": "Download invoice PDF",
    "selectPackage": "Select a command package",
    "perCommand": "per command",
    "preparingPayment": "Preparing payment...",
    "buyNCommands": "Buy {{count}} Commands",
    "nCommands": "{{count}} Commands",
    "commandsAdded": "Commands Added",
    "commandsAvailable": "Your purchased commands are now available.",
    "package": "Package",
    "qty": "Quantity",
    "increase": "Increase quantity",
    "decrease": "Decrease quantity",
    "totalCommands": "Total commands",
    "totalCost": "Total cost",
    "activeCampaigns": "Active Campaigns",
    "noCampaigns": "No active campaigns",
    "campaignDiscount": "{{value}}% discount",
    "campaignDiscountFixed": "{{value}} {{currency}} discount",
    "campaignCapBoost": "+{{value}} commands",
    "campaignRecurring": "Recurring",
    "campaignOneTime": "One-time",
    "campaignCyclesUsed": "{{used}} of {{max}} cycles used",
    "campaignCyclesUnlimited": "{{used}} cycles used",
    "campaignExpires": "Expires {{date}}",
    "campaignNoExpiry": "No expiry",
    "quotaBase": "Plan base",
    "quotaBoost": "+{{amount}} from {{name}}",
    "originalAmount": "Original: {{amount}}",
    "discountApplied": "{{name}}: -{{amount}}"
  },
  "profile": {
    "title": "Profile",
    "subtitle": "Manage your personal information and security",
    "errorLoading": "Failed to load profile: {{error}}",
    "emailNotVerified": "Not verified",
    "sending": "Sending...",
    "resend": "Resend verification",
    "verificationSent": "Verification email sent.",
    "personalInfo": "Personal Information",
    "billingAddress": "Billing Address",
    "firstName": "First Name",
    "lastName": "Last Name",
    "email": "Email",
    "phone": "Phone",
    "phonePlaceholder": "+49 ...",
    "language": "Language",
    "timezone": "Timezone",
    "updateFailed": "Update failed.",
    "changePasswordLink": "Change password",
    "changePasswordTitle": "Change Password",
    "currentPassword": "Current Password",
    "newPassword": "New Password",
    "newPasswordPlaceholder": "Min. 8 characters",
    "confirmNewPassword": "Confirm New Password",
    "passwordChangeFailed": "Password change failed.",
    "changePasswordButton": "Change Password",
    "passwordChanged": "Password changed.",
    "passwordMinLength": "New password must be at least 8 characters.",
    "passwordsNoMatch": "Passwords do not match.",
    "billingCurrency": "Billing currency",
    "currencySelect": "Select currency",
    "currencyUnlockedBody": "Your billing currency. Locks automatically after your first paid payment.",
    "currencyLockedHint": "Locked after first paid payment",
    "currencyLockedBody": "Your billing currency is locked for the active subscription. Cancel the subscription to change it.",
    "currencyChanged": "Currency updated.",
    "currencyChangeFailed": "Could not change currency.",
    "locked": "Locked"
  },
  "company": {
    "title": "Company Settings",
    "subtitle": "Manage your company information",
    "errorLoading": "Failed to load company: {{error}}",
    "optional": "(optional)",
    "general": "General",
    "companyName": "Company Name",
    "website": "Website",
    "websitePlaceholder": "https://example.com",
    "industry": "Industry",
    "industryPlaceholder": "e.g. Technology",
    "companySize": "Company Size",
    "selectSize": "Select...",
    "billing": "Billing",
    "billingEmail": "Billing Email",
    "billingEmailPlaceholder": "billing@example.com",
    "vatId": "VAT ID",
    "vatIdPlaceholder": "DE123456789",
    "address": "Address",
    "street": "Street",
    "zip": "ZIP",
    "city": "City",
    "country": "Country",
    "countryPlaceholder": "DE",
    "saveChanges": "Save Changes",
    "companyUpdated": "Company updated.",
    "updateFailed": "Update failed.",
    "upgradeBannerTitle": "You are on a Private account",
    "upgradeBannerDescription": "Fill in your company name and billing details. On save we upgrade your account to Business — VAT ID and company invoicing become available.",
    "websiteOptional": "(optional)",
    "legalData": "Legal data",
    "legalForm": {
      "label": "Legal form",
      "placeholder": "— Please select —",
      "intl": "International / non-DE entity",
      "otherDe": "German entity (other)"
    },
    "taxNumber": {
      "de": "Steuernummer",
      "intl": "Tax ID"
    },
    "registerCourt": {
      "de": "Register court (Registergericht)",
      "intl": "Registering authority"
    },
    "registerNumber": {
      "de": "Register number (Registernummer)",
      "intl": "Company registration number"
    },
    "directorName": {
      "label": "Director / Managing Director",
      "coKgHint": "GmbH Komplementär",
      "placeholder": "John Doe"
    },
    "mandatoryHint": "Required fields are marked with *."
  },
  "gate": {
    "title": "Maintenance",
    "message": "We're performing scheduled maintenance to improve our services. This won't take long — please check back shortly.",
    "backToHomepage": "Back to homepage",
    "proceedToLogin": "Proceed to Login"
  },
  "knowledge": {
    "title": "Knowledge Base",
    "backToTenants": "Back to Tenants",
    "tenantNotFound": "Tenant not found",
    "tenantSelector": "Select website",
    "noTenantsTitle": "No websites yet",
    "noTenantsHint": "Create a website first to start managing its knowledge.",
    "goToTenants": "Go to Websites",
    "productsCard": "Products",
    "productsCardHint": "Synced from your store.",
    "pagesCard": "Pages",
    "pagesCardHint": "Indexed automatically as visitors browse.",
    "documentsQuotaCard": "Documents",
    "quotaUsed": "Used",
    "quotaLeft": "Left",
    "totalEntries": "entries total",
    "searchPlaceholder": "Search entries...",
    "allTypes": "All Types",
    "addEntry": "Add Entry",
    "noEntries": "No knowledge entries yet",
    "noEntriesHint": "Add FAQs, product info, or other content your AI assistant should know about.",
    "loadError": "Failed to load knowledge entries",
    "createError": "Failed to create entry",
    "type": "Type",
    "category": "Category",
    "title": "Title",
    "titlePlaceholder": "e.g. What is your return policy?",
    "content": "Content",
    "contentPlaceholder": "The full content your AI assistant should know...",
    "question": "Question",
    "questionPlaceholder": "e.g. What is your return policy?",
    "answer": "Answer",
    "answerPlaceholder": "The answer your AI assistant should give...",
    "status": "Status",
    "created": "Created",
    "embedded": "Indexed",
    "notEmbedded": "Pending",
    "save": "Save Entry",
    "usage": "Usage",
    "featureDisabled": "Knowledge files are not included in your current plan. Upgrade to unlock this feature.",
    "limitReached": "You've reached your knowledge file limit. Upgrade your plan to add more entries.",
    "contentTooLarge": "Content exceeds the 2 MB size limit. Please shorten the text.",
    "uploadDocument": "Upload document",
    "upload": "Upload",
    "uploadError": "Failed to upload document",
    "noDocuments": "No documents yet",
    "noDocumentsHint": "Upload a PDF, DOCX, or TXT file to get started.",
    "tabs": {
      "files": "Knowledge",
      "sitemap": "Sitemap",
      "website": "Website Data",
      "products": "Products",
      "custom": "Custom"
    },
    "playground": {
      "questionPlaceholder": "Ask anything about your uploaded knowledge…",
      "ask": "Ask",
      "thinking": "Searching knowledge…",
      "error": "Could not get an answer",
      "sourcesTitle": "Sources used",
      "noSources": "No sources fed this answer.",
      "metricsHitsSuffix": "chunks retrieved",
      "scoreLabel": "Score",
      "typeLabel": "Type",
      "sourceLabel": "Source",
      "docChunkLabel": "Document chunk",
      "entryLabel": "Entry",
      "editChunkTitle": "Edit chunk",
      "editChunkHint": "Re-run the question to see whether the change improved the answer.",
      "editChunkSave": "Save chunk",
      "editChunkCancel": "Cancel"
    }
  },
  "checkout": {
    "title": "Checkout",
    "subtitle": "Review your order before payment",
    "backToSubscription": "Back to Subscription",
    "plan": "Plan",
    "month": "month",
    "codeLabel": "Promo or referral code",
    "codePlaceholder": "Enter code",
    "validate": "Check",
    "subtotal": "Subtotal",
    "discount": "Discount",
    "netAmount": "Net amount",
    "vat": "VAT (19%)",
    "total": "Total (incl. VAT)",
    "proceedToPayment": "Proceed to Payment",
    "securePayment": "256-bit SSL encrypted payment",
    "stripeProcessed": "Processed securely by Stripe",
    "orderSummary": "Order Summary",
    "noPlan": "No plan selected. Please choose a plan first.",
    "noPackage": "Invalid command package. Please go back and try again.",
    "commandPackage": "{{count}} Commands",
    "commandDescription": "Additional command credits for your account",
    "net": "Net",
    "payNow": "Pay now",
    "seat": { "title": "Team seat", "description": "This payment covers the current billing period. The seat is then added to your subscription and charged automatically each billing cycle." },
    "oneTime": "one-time",
    "package": "Package",
    "error": {
      "INVALID_CODE": "Invalid code",
      "CODE_NOT_DISCOUNT": "This code does not apply to payments",
      "CODE_INACTIVE": "This code is no longer active",
      "REFERRAL_NO_DISCOUNT": "This referral code does not include a payment discount",
      "ALREADY_REFERRED": "Your account is already linked to a referral partner",
      "UNKNOWN_ERROR": "Something went wrong"
    }
  },
  "promotions": {
    "title": "Promotions",
    "subtitle": "Redeem a promo code or referral link",
    "inputLabel": "Enter Code",
    "inputPlaceholder": "e.g. PROMO20 or partner referral code",
    "submit": "Redeem",
    "success": {
      "promo": "Promo code applied successfully",
      "referral": "Referral code applied successfully"
    },
    "linkedToPartner": "Linked to partner: {{name}}",
    "effect": {
      "discount_recalculated": "Discount will apply on your next payment",
      "stripe_price_patched": "Your subscription price has been updated",
      "quota_boosted": "Extra quota has been added to your account",
      "none": ""
    },
    "error": {
      "invalidCode": "This code is not valid. Please check and try again.",
      "alreadyReferred": "Your account is already linked to a referral partner.",
      "inactive": "This code is no longer active.",
      "expired": "This code has expired.",
      "generic": "Something went wrong. Please try again."
    }
  },
  "notifications": {
    "title": "Notifications",
    "unread": "{{count}} unread",
    "markAllRead": "Mark all read",
    "noUnread": "No unread notifications",
    "markAsRead": "Mark as read",
    "view": "View",
    "question": "Question",
    "waitingAction": "Waiting Action",
    "urgentQuestion": "Urgent Question",
    "info": "Info",
    "notification": "Notification"
  },
  "legal": {
    "banner": {
      "title": "Action required to keep your account active",
      "message": "{{count}} legal document(s) need your acceptance. Until you accept them, your TWWIM plugin stays disabled and the assistant will not respond on your storefront.",
      "cta": "Review and accept"
    }
  },
  "members": {
    "title": "Members",
    "subtitle": "Invite teammates, manage roles, revoke access",
    "loadFailed": "Failed to load members",
    "invite": {
      "heading": "Invite a teammate",
      "hint": "Send an email invitation. The invitee can accept and create an account.",
      "emailPlaceholder": "name@example.com",
      "submit": "Send invitation",
      "submitting": "Sending…",
      "sent": "Invitation sent to {{email}}",
      "failed": "Failed to send invitation",
      "roleAdmin": "Admin (full portal access)",
      "roleOperator": "Operator (chat only)",
      "seatNotice": "{{used}} of {{limit}} seats in use. Inviting beyond that adds a paid seat at {{price}}/mo, charged when the invitation is accepted."
    },
    "upgrade": {
      "title": "Team members aren't included in your plan",
      "body": "Your current subscription doesn't include team seats. Upgrade to a plan with team to invite and manage teammates.",
      "cta": "Upgrade your plan"
    },
    "active": {
      "heading": "Active members",
      "empty": "No members yet.",
      "loading": "Loading…",
      "removeAria": "Remove member",
      "confirmRemove": "Remove {{name}}?",
      "removed": "Member removed",
      "removeFailed": "Failed to remove member",
      "roleUpdated": "Role updated for {{name}}",
      "roleUpdateFailed": "Failed to update role",
      "transfer": "Transfer seat",
      "transferAria": "Transfer this member's seat to someone else",
      "transferEmailPlaceholder": "new teammate email",
      "transferConfirm": "Transfer",
      "transferCancel": "Cancel",
      "transferred": "Seat transferred — invitation sent",
      "transferFailed": "Failed to transfer seat"
    },
    "pending": {
      "heading": "Pending invitations",
      "empty": "No pending invitations.",
      "invitedBy": "invited by {{name}} · expires {{date}}",
      "resend": "Resend",
      "revoke": "Revoke",
      "confirmRevoke": "Revoke invitation to {{email}}?",
      "resent": "Invitation re-sent to {{email}}",
      "resendFailed": "Failed to resend invitation",
      "revoked": "Invitation revoked",
      "revokeFailed": "Failed to revoke invitation"
    }
  },
  "conversations": {
    "title": "Conversations",
    "subtitle": "Monitor and respond to visitor chats across your tenants",
    "tenantLabel": "Tenant",
    "allTenants": "All tenants",
    "demoBanner": "Demo mode — these conversations are seeded for preview. The live chat backend ships in the next iteration; sent operator messages persist only in this browser session.",
    "filterSummary": "Showing {{shown}} of {{total}}",
    "listEmpty": "No conversations match your filters.",
    "detailEmpty": "Select a conversation to view the transcript.",
    "detailLoading": "Loading conversation…",
    "listLoading": "Loading conversations…",
    "systemEvent": {
      "operator_joined": "An operator joined the conversation",
      "operator_released": "Conversation released back to the AI assistant",
      "conversation_closed": "Conversation closed"
    },
    "searchPlaceholder": "Search conversations…",
    "metrics": {
      "active": "Active",
      "intercepted": "Intercepted",
      "awaiting": "Awaiting reply",
      "breaching": "SLA breach",
      "idle": "Idle",
      "closed": "Closed"
    },
    "visitor": {
      "returning": "Returning visitor",
      "firstTime": "First visit",
      "activeCart": "Active cart",
      "session": "Session",
      "firstSeen": "First seen",
      "startedSession": "Session started",
      "locale": "Locale",
      "country": "Country",
      "device": "Device",
      "referrer": "Referrer",
      "pageTrail": "Page trail",
      "messageBreakdown": "Messages",
      "byVisitor": "From visitor",
      "byAssistant": "From AI",
      "byOperator": "From operators"
    },
    "status": {
      "active": "Active",
      "idle": "Idle",
      "intercepted": "Intercepted",
      "closed": "Closed"
    },
    "statusFilter": {
      "all": "All",
      "active": "Active",
      "idle": "Idle",
      "intercepted": "Intercepted",
      "closed": "Closed"
    },
    "author": {
      "visitor": "Visitor",
      "assistant": "AI assistant",
      "operator": "Operator"
    },
    "detail": {
      "takeOver": "Take over",
      "release": "Release",
      "messageCount": "{{count}} messages",
      "lastActivity": "last activity {{ago}}"
    },
    "composer": {
      "placeholder": "Write a reply…",
      "send": "Send",
      "shortcut": "Press Cmd / Ctrl + Enter to send",
      "takeoverHint": "Sending a message will take over the conversation from the AI assistant.",
      "interceptHint": "You're handling this conversation. The AI assistant is paused until you release.",
      "closedHint": "This conversation is closed and cannot receive new messages.",
      "requestContact": "Request contact",
      "requestContactDisabled": "Take over the conversation to request contact details"
    },
    "captured": {
      "title": "Captured this session",
      "capturedAt": "Captured {{when}}"
    },
    "system": {
      "operatorJoined": "{{name}} joined the conversation",
      "operatorReleased": "Conversation released back to the AI assistant"
    }
  },
  "acceptInvitation": {
    "badge": "You're invited",
    "title": "Accept your invitation",
    "subtitle": "Set a password and finish creating your account.",
    "firstName": "First name",
    "lastName": "Last name",
    "password": "Password (min 12 chars)",
    "submit": "Accept invitation",
    "submitting": "Accepting…",
    "emailPrompt": "Confirm your email to finish signing in",
    "emailRequired": "Email is required to complete sign-in",
    "rejected": "Invitation could not be accepted",
    "failed": "Failed to accept invitation"
  }
}
