@zeniai/web-components 4.3.45-betaAK0 → 4.3.45-betaAK1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -99,11 +99,11 @@ Initiate your first transfer to start earning yield.`,insuredFundsTooltip:"Secur
99
99
  The KYB info is required to comply with financial regulations and uphold the security of our customers.`,stepSubText:"Enter business details to complete verification."},link_card:{footNote:{text2:"Switch to credit card (3% fee)"},footNoteCard:{text1:"Switch to bank account — save 3% on your fee"}}},navBar:{skipText:"Skip, I will do this later",link_payment_account:{title:"Go live with your Zeni Dashboard!",subTitle:"To setup your Zeni dashboard, please complete the following steps"},qbo_connection:{subTitle:"To set up your dashboard, we must connect with your QuickBooks account."},company_officer:{subTitle:`Enter proof of identity to complete verification.
100
100
  The KYC info is required to comply with the Bank Secrecy Act and Anti-Money Laundering regulations.`},company_details:{subTitle:`Enter business details to complete verification.
101
101
  The KYB info is required to comply with financial regulations and uphold the security of our customers.`}},sections:{link_payment_account:{subText:"Log in securely to your bank and start managing your payments right away",smsOptIn:"SMS Opt-in",smsOptOut:"SMS Opt-out",bankVerificationTitle:"Follow these steps to verify bank account",plaidSmsVerification:"An example of Plaid sending an SMS with the verification link",highlightedWords:{depositAmount:"$0.01",plaidSms:"Plaid will then send you a",smsWithALink:"SMS with a link",zeniAccountVerify:"ZENI ACCTVERIFY",smsLink:"link in the SMS"},bankVerification1:{step1:"Within a few days, you'll see a $0.01 deposit from Plaid in your bank account.",step2:"Plaid will then send you an SMS with a link (unless opted out) to complete the verification.",step3:'Check your bank statement for a 3-letter code after "#" symbol in "ZENI ACCTVERIFY" transaction.',step4:'Open the link in the SMS from Plaid or click "Start Verification" below to verify.'},bankVerification2:{step1:"Within a few days, you'll see a $0.01 deposit from Plaid in your bank account",step2:'Check your bank statement for a 3-letter code after "#" symbol in "ZENI ACCTVERIFY" transaction.',step3:'Enter this code by clicking "Start Verification" button below to complete your verification.'},verifyButton:"Verify Bank Account",verificationNotice:{title:"We're verifying your account via Plaid",subTitle:"This may take up to 2 business days.",notificationText:"Once verified, we’ll notify you via email so you can complete the onboarding."}},card_payment_method:{subHeader:"Securely add your preferred payment method to activate your account.",addNewCard:"Link a new card",protectedCardNo:"****"},connectLedger:{introBody:"This is the moment AI Accountant activates. In the first 2 hours it will read your books, detect recurring journal entry patterns, flag variance anomalies, and hand AI CFO the financial foundation it needs to answer any question you ask.",whatHappensHeading:"What happens after you connect?",firstPhase:{title:"First 2 hours",body:"Reads your chart of accounts and every transaction to build a complete finance graph of your company — a structured model of vendors, accounts, cash flows, and relationships that powers every automated report."},secondPhase:{title:"First 2 to 4 hours — your AI gets personal",body:"Zeni builds AI models fine-tuned specifically to {tenantName} — your vendors, your chart of accounts, your accounting patterns. Trained on signals from 1,000+ Zeni customers and over $20B in transactions."},unlocksTooltip:{quickbooks:{heading:"What you unlock by connecting Quickbooks",accountantBullets:["Auto-categorizes every transaction into your chart of accounts.","Reconciles bank, card, and ledger lines end-to-end.","Drafts the journal entries that close your books."],cfoBullets:["Grounds every forecast and answer in your live ledger.","Powers cash, burn, and runway in the dashboard."]},netsuite:{accountantBullets:["Consolidates close across every subsidiary in your structure.","Drafts multi-entity GL with intercompany eliminations.","Handles advanced revenue recognition schedules."],cfoBullets:["Rolls cash, burn, and runway up across all subsidiaries.","Forecasts respect entity-level transfer pricing and FX."]}},pageSubtitle:"Required foundation for both AI Agents"},officerVerification:{introBody:"Upload a government-issued ID below. Zeni AI reads the document and autofills your details automatically — no manual typing required.",aiCallout:{body:"will retrieve data from the document once you upload it and autofill the details."},autofillFooter:"Fields marked with the Zeni AI sparkle were autofilled from your uploaded document."},companyVerification:{introTitle:"Verify your business.",introBody:"Upload your EIN document. Zeni AI extracts all business details automatically — no manual typing required.",aiCallout:{body:"will retrieve data from your EIN document and autofill all business details."},autofillFooter:"Fields marked with the Zeni AI sparkle were autofilled from your uploaded document."},unlockFinancialStack:{pageTitle:"Unlock your financial stack",pageSubtitle:"You can complete verification any time from Company Settings.",introTitle:"Verify once. Unlock two financial products.",introBody:"A quick identity and business check — required for financial compliance and takes about 5 minutes. Your AI Agents are already working. When you use Zeni's own products, every transaction flows natively into AI Accountant with zero gaps — your close literally takes care of itself. Here is what you unlock.",products:{chargeCard:{name:"Zeni Charge Card",body:"On every purchase. No annual fees, no foreign transaction fees, no complexity. Credit based on your financial health — no personal guarantee."},businessChecking:{value:"2.5% APY",body:"FDIC insured up to $3M through Thread Bank sweep network. Interest compounded daily. No minimums, unlimited accounts."},treasury:{value:"Up to 4% APY",body:"Put idle cash to work automatically. Smart allocation across instruments to maximize yield on your operating reserves."},billPay:{body:"Free domestic transfers, free USD international wires, $0 ACH fees. AI auto-fills invoice details and handles all journal entries automatically."},reimbursements:{body:"Unlimited reimbursements with same-day ACH payouts. Supports 160 currencies, multi-level approval workflows, and AI categorization built in."},debitCard:{name:"Zeni Debit Card",body:"Instant cashback on every spend with no minimums. Full AI spend management, real-time controls per employee or department, and zero foreign transaction fees."}},aiActiveCallout:{heading:"AI Accountant and AI CFO are already active.",body:"Zeni AI will read your uploaded documents and autofill all details automatically.",metaPrimary:"Most verifications",metaSecondary:"complete in under 5 mins"},kycStep:{title:"Step 1 — Verify your identity (KYC)",body:"Upload a government-issued ID. Zeni AI reads the document and autofills name, date of birth, and address automatically. Required by the Bank Secrecy Act and Anti-Money Laundering regulations."},kybStep:{title:"Step 2 — Verify your business (KYB)",body:"Upload your EIN document. Zeni AI extracts company legal name, incorporation type, registered address, and Tax ID automatically. Required for financial services compliance.",meta:"Takes about 3 mins"},startVerificationCta:"Start verification"},chrome:{skipLabel:"Skip for now",skipToDashboardDisabledTooltip:"Connect QuickBooks to activate your dashboard",skipToDashboardPendingVerificationTooltip:"Verify your bank account to activate your dashboard",skipToDashboardLoginRequiredTooltip:"Re-login to your bank account to activate your dashboard"},activateSubscription:{pageTitle:"Activate your subscription",pageSubtitle:"Required to activate your Zeni subscription.",ctaLabel:"Continue to connect your ledger",ctaLabelWithoutLedger:"Continue to verify your business"},connectLedgerPage:{ctaLabel:"Continue to activation",pageSubtitle:"Required foundation for both AI Agents"},officerVerifyPage:{pageSubtitle:"Documents are encrypted and stored with SOC 2 Type II compliance.",ctaLabel:"Continue to business verification"},companyVerifyPage:{pageTitle:"Verify your business",pageSubtitle:"Documents are encrypted and stored with SOC 2 Type II compliance.",ctaLabel:"Submit and go to dashboard"},aiAgentsActivating:{demoTenantName:"Pied Piper"},connectDataSources:{pageTitle:"Connect your Data Sources",pageSubtitle:"Connect what you have access to — others on your team can add the rest later.",ctaLabel:"Continue to verification"},setupBilling:{introTitle:"To get started, please link your payment method and enter company billing address.",introBody:"Your AI Agents are already reading your books. Set up billing to keep them running after your trial ends.",includedCard:{heading:"What's always included:",accountantBody:"Runs your books every day, automatically.",cfoBody:"Answers every financial question, always available.",connectionsLabel:"Unlimited data source connections",connectionsBody:"QBO, banks, cards, AR, AP, revenue, payroll, email and more.",financeTeamLabel:"Your dedicated finance team",financeTeamBody:"Controller, Team Lead and Accountant available Monday–Friday."},paymentMethodHeading:"Subscription Payment Method",paymentMethodSubheading:"ACH bank debit — no additional fees"},qbo_connection:{subTitle:"To set up your dashboard, we must connect with your QuickBooks account.",sucessText:"Congratulations! You have successfully established a connection with QuickBooks.",subtitleText:"Accounting & bookkeeping — journal entries, invoices, bills, expenses",requiredText:"Please connect Quickbooks to sync your financial data",errorText:"Unable to connect quickbooks. Please try again."},company_officer:{subTitle:"Enter proof of identity to complete verification."},company_details:{subTitle:"Enter business details to complete verification."}},thankYou:{title:"Thank you for providing the details.",subTitle:"We are currently verifying and working on your Dashboard."},footer:{buttons:{submitText:'By clicking "__action__", I certify that the information provided here is complete and correct.'}},productSuite:{navTitleCFO:"Thank you, we've got your details",navTitle:"Thank you for completing your onboarding steps",updatePaymentDetails:"Update Payment Details",messageBox:{default:"We're now setting up your Quickbooks account and will notify you via email once it's ready.",onlyTax:"Our Tax team will email you with the next steps within 2 business days.",onlyCFO:"Our CFO team will email you with the next steps before your service start date.",onlyPayroll:"Our Payroll team will email you with the next steps within 2 business days.",taxAndPayroll:"Our Tax & Payroll teams will email you with the next steps within 2 business days.",withTax:"Our Tax team will email you within 2 business days.",withPayroll:"Our Payroll team will email you within 2 business days.",withCFO:"Our CFO team will reach out to you before your service start date.",withTaxAndPayroll:"Our Tax & Payroll teams will email you within 2 business days."},sectionTitleCFO:"Explore more solutions tailored for your business",sectionTitle:"Meanwhile, learn more about Zeni products",sectionFooter:"Discover Zeni's product suite",productCard:{cards:[{cardTitle:"Zeni Reimbursements",sectionTitle:"Pay your employees back faster",sectionSubTitle:"Reimburse your employees at lightning speed with AI-powered expense processing at no additional cost."},{cardTitle:"Zeni Bill Payments",sectionTitle:"Pay your bills in seconds",sectionSubTitle:"Speed up domestic and international vendor payments with AI-powered invoice processing at no additional cost."},{cardTitle:"Zeni AI Bookkeeping",sectionTitle:"Simplify your bookkeeping",sectionSubTitle:"Give your business all the financial insights it needs to succeed on a single dashboard."}]}},aiFinanceTeamReady:{title:{prefix:"Your ",highlight:"AI finance",suffix:" team is ready, {firstName}."},agentChip:"Two AI Agents are joining {companyName}'s finance org today.",description:"Connect them to your financial data and they start working immediately — categorizing, reconciling, journalizing, and answering every question your CFO has.",accountantCard:{subtitle:"Runs the books every day. Handles every accounting task automatically.",tasks:{bankReconciliation:{title:"Bank reconciliation",meta:"Chase ••••8992 — 847 transactions matched"},autoCategorization:{title:"Auto categorization",meta:"1,204 transactions — 94% categorized"},journalEntryEngine:{title:"Journal entry engine",meta:"12 recurring JEs detected and scheduled"},fluxAnalysis:{title:"Flux analysis",meta:"AWS +29% vs last month — flagged"},apArAging:{title:"AP and AR aging",meta:"3 invoices 30+ days overdue — surfaced"}},footer:"All of this happens automatically, every day."},cfoCard:{subtitle:"Answers every financial question. Always available, always precise.",chat:{netBurnQuestion:"What is our net burn this month?",netBurnAnswer:{heading:"Net burn is $487K this month",body:"Payroll 61%, software and infrastructure 22%. Up $34K vs last month — new engineering hire Mar 12 and an $18K AWS overage."},revenueQuestion:"Are we on track for Q2 revenue?",revenueAnswer:{heading:"Yes, on track at 94% confidence",body:"$312K closed, $180K in late stage pipeline due this month. Risk: 3 March renewal invoices totalling $42K still outstanding."}},suggestions:{runway:"What's our current runway?",burnByDept:"Show me burn by department",vendorReview:"Which vendors should I review?",closeStatus:"Close status for November"}},trustRow:{soc2:"SOC 2 Type II",bankGrade:"Bank-grade encryption",trusted:"Trusted by 1,500+ finance teams"},cta:"Connect your Finance Team"}},uncategorizedAccountsMapping:{accountingSettings:{heading:"Account Settings",accountingClasses:{title:"Accounting Classes",subTitle:"Track and categorize transactions by class. Turning this off hides class fields and columns across the workspace.",enableConfirmation:{title:"Enable Accounting Classes?",description:"Class fields will appear on transactions, bills, reimbursements, and reports so you can track spending by class."},disableConfirmation:{title:"Disable Accounting Classes?",description:"Class fields and columns will be hidden across the workspace. Existing class assignments on transactions are preserved but won't be visible until you re-enable this setting."}},projects:{subTitle:"Track and categorize transactions by project. Turning this off hides project fields and columns across the workspace."}},uncategorizedSection:{heading:"Uncategorized Accounts",title:"Income & Expense Accounts",subTitle:"Select the accounts used to temporarily track transactions that require clarification.",incomeLabel:"Income Account:",expenseLabel:"Expense Account:",incomeAccount:"Income Account",expenseAccount:"Expense Account"},billsSection:{subTitle:"Select the account used to track charges while using Zeni Bill Pay",bankChargesAndFeesLabel:"Bank Charges & Fees Account:",billPayExpenseAccount:"Bill Pay Expense Account"},reimbursementsSection:{subTitle:"Select the account used to track charges while using Zeni Reimbursements",mileageLabel:"Mileage Account:",reimbursementsExpenseAccount:"Mileage Expense Account"},vendorSection:{prepaidExpenseSubTitle:"Select the accounts used to track prepaid expenses",fixedAssetsSubTitle:"Select the accounts used to track fixed asset expenses",accruedExpensesSubTitle:"Select the accounts used to track accrued expenses",prepaidExpenselabel:"Prepaid Expense Accounts:",fixedAssetslabel:"Fixed Asset Accounts:",accruedExpenseslabel:"Accrued Expense Accounts:",prepaidExpenseAccount:"Prepaid Expense Account",fixedAssetsAccount:"Fixed Asset Account",accruedExpensesAccount:"Accrued Expense Account"},common:{label:{bankAccountLabel:"Bank Accounts:",expenseCategoriesLabel:"Expense Categories:"}},filing1099Section:{subHeading:"Form 1099 is a tax form filed by businesses to report annual payments of $600 or more to vendors or independent contractors.",bankAccountTitle:"Bank Accounts",bankAccountSubTitle:"Select the bank accounts used to pay vendors",expenseCategoriesSubTitle:"Select the expense categories to filter eligible payment types",infoTextBankAccount:"To fetch all payments made to vendors",infoTextGlAccount:"To filter the eligible payments",allExpenseTypes:"All Expense Types",all1099Types:"All 1099 Types",allBoxes:"All Boxes"},placeholder:{incomePlaceholder:"Select Income Account",expensePlaceholder:"Select Expense Account",accountPlaceholders:"Select accounts",categoryPlaceholder:"Select Category",boxPlaceholder:"Select box"},tooltip:'The "__account__" recommendation is __based__',noOptions:{establishQBO:"Kindly establish the accounts in QuickBooks.",noTypesFound:"No type found!",noBoxTypesFound:"No box type found!"},capitalizationSection:{heading:"Capitalization Thresholds",headingSubtitle:"Thresholds are auto-calculated nightly. Set a user override to use your own value instead.",onboardingPopup:{titles:{prepaid:"Prepaid Expense Thresholds Identified",fixed_asset:"Fixed Asset Thresholds Identified"},descriptions:{prepaid:"Set a capitalization threshold for __accountName__. Transactions below the threshold will be expensed directly instead of being capitalized.",fixed_asset:"Set a capitalization threshold for __accountName__. Transactions below the threshold will be expensed rather than capitalized as assets."},maybeLaterButton:"Maybe Later",thresholdPlaceholder:"Enter threshold amount",helpText:"You can always update this later in Settings > Accounting."},globalControls:{title:"Global Threshold Controls",threshold:{description:"Overrides all learned thresholds when set. Clear to use per-account learned values."},maxCeiling:{label:"Max Ceiling",description:"Caps learned thresholds — any account whose learned value exceeds this is clamped. Clear to use system default."}},accountsTable:{subtitle:"Capitalizable Accounts",overrideBanner:"All accounts using user-set threshold: __value__",headers:{threshold:"Threshold",matchStrength:"Match Strength",effectiveThreshold:"Effective Threshold",learnedThreshold:"Learned Threshold",userOverride:"User Override"},classification:{prepaid:"Prepaid"},matchPattern:{LABEL:"Strong",TYPE_ONLY:"Weak"},sourceBadge:{override:"Override",learned:"Learned"},lastUpdated:"Last updated: __date__",empty:{noData:"Accounts will appear here after the nightly analysis runs.",noLearned:"No capitalizable accounts with identified thresholds yet.",noAccounts:"No capitalizable accounts identified yet."}},defaultCurrencySymbol:"$"}},jeSchedules:{scheduleList:{defaultDownloadFileName:"__tenant__ Schedules.xlsx",tableHeaders:{balanceAsOfToday:"Balance as of today",endMonth:"End Month",expenseCategory:"Expense Category",assetId:"Asset ID"},noData:"No Schedules Found",heading:{expenseSchedules:"Expense Schedules",searchPlaceholder:"Search Schedules"},getSchedules:{selectSchedule:"Select Schedule:",getSchedules:"Get Schedules"},scheduleStatus:{draft:"Draft"}},scheduleDetails:{jeSchedule:"JE Schedule",showTransactionTooltip:"Show Transaction",scheduleTransactionsHeader:{vendorName:"Vendor Name",expenseCategory:"Expense Category:"},sequenceSchedule:{header:"Schedule Sequence",notCreated:"Once details are entered, the schedule sequence will be displayed here.",sequenceHeaders:{runningBalance:"Running Balance (as of today)",jeLink:""},accruedSequenceHeader:{jePostingDate:"Accrual Posting Date",runningBalance:"Accrual Balance",jeLink:""},sequenceData:{amountPlaceholder:"0"},postingStatus:{pending:"Pending",unknown:"Unknown",posted:"Posted",canceled:"Canceled",recorded:"Recorded"}},scheduleDetailsSection:{header:"Schedule Details",startMonth:"Start Month:",startMonthPlaceholder:"Select start month",months:"Months:",monthsPlaceholder:"Select month",accumulatedDepreciationCategory:"Accumulated Depreciation Category:",accumulatedDepreciationCategoryPlaceholder:"Select accumulated depreciation category",assetId:"Asset ID:",assetIdPlaceholder:"Add asset ID",postingDate:"Posting Date:",postingDatePlaceholder:"Select posting date",confirmCancelAccrualDescription:"Cancel all the pending accrual schedules. This action cannot be undone.",confirmDeletionDescription:"Are you sure you want to delete this schedule? This action cannot be undone.",confirmDeletionDescriptionNote:"Note - Deleting the schedule will not delete any associated journal entries in QBO.",markAsCompleted:"Mark As Completed",createSchedule:"Create Schedule",scheduleMarkedAsCompleted:"Schedule has been marked as completed",cancelPendingAccrual:"Cancel Pending Accruals",cancelAccrual:"Cancel Accrual",viewRecordedJE:"View Recorded JE",viewPostedJE:"View Posted JE",deleteSchedule:"Delete Schedule"},linkJE:{fetchJE:"Fetch JE",jeLinkURLPlaceholder:"Add Link",jeLink:"JE Link:",linkJE:"Link JE",linkBillExpense:"Link Bill or Expense",viewBillExpense:"View Bill or Expense",jePostingDate:"JE Posting Date:",jeDetails:"JE details will be presented here once you enter the JE link and complete the fetch operation.",transactionFetchError:"There was an error fetching the transaction.",zeniRecommendation:"Based on Zeni GPT recommendation, journal entry posting has been automatically retrieved for the schedule."}},scheduleAccruedDetails:{new:{header:"New Accrued Expenses",new:"new"},labels:{estimatedMonthlyAmount:"Estimated Monthly Amount:",accruedExpenseCategory:"Accrued Expense Category:",startingBalance:"Starting Balance:"},placeholders:{selectVendor:"Search and select vendor",addBalance:"Add Balance",selectAccruedExpenseCat:"Select accrued expense category"}},linkBillExpenseDetails:{tableHeaders:{transactionAttachment:""},title:"Link Bill Or Expense",noBillFound:"No Bill or Expense found for the schedule",linkBill:"Link Bill",additionalBills:"Additional Bills For The Vendor",zeniGPTText:"Based on Zeni GPT recommendation, the bill or expense posting has been automatically retrieved for the schedule."}},vendorReview:{globalReview:{newGlobalMerchant:{tip:"Protip: Verify online domain availability of the vendor name.",recommendationInfoText:"Enter text to fetch recommendation"},globalMerchantList:{navBarTitle:"Global Vendors Review",searchPlaceholder:"Search tenant",confirmationPopup:{title:'Are you sure you want to add "_merchant_name_" in Global vendor list?',description:"Confirm will add the vendor to the global list. This change can’t be reverted back.",merchantNameFallback:"this merchant"},selectPlaceholder:"Select Global Vendor",noDataText:"No global vendors to display yet!",noMatchedDataText:"No global vendors matched your search."}},firstReview:{searchPlaceholder:"Search vendor",viewRecipts:"View receipts",vendorDropdown:{recommendedCustomer:"Recommended Customer",allCustomers:"AllCustomers",fromOldName:'Change name from "__old_name__"',toNewName:' to "__new_name__"'},invoice:"invoice",popupMessages:{netsuiteLinkPopupTitle:'A vendor by name "_vendor_name_" already exists in NetSuite',netsuiteLinkPopupMsgHeader:"Please login to NetSuite and follow the steps given below to merge the vendor",netsuiteLinkPopupSubTitle:"Keep in mind that merging vendor profiles is permanent. You can't undo this later.",netsuiteLinkPopupDescription:"Please note that the related transactions will be migrated within the next 24 hours after the change.",qboLinkPopupMsgHeader:"Please login to QBO and follow the steps given below to merge the vendor",qboLinkPopupSubTitle:"Keep in mind that merging vendor profiles is permanent. You can't undo this later.",qboLinkPopupTitle:'A vendor by name "_vendor_name_" already exists in QBO',zeniUpdatedRecommendationPopupTitle:'Vendor recommendation for "_vendor_name_" is updated from "_old_recommendation_" to "_new_recommendation_".',zeniUpdatedRecommendationPopupMsg:"Zeni AI has updated the recommendation for this vendor name. Click 'Continue' to use updated vendor name or Click 'cancel' & refresh the page to view the updated vendor recommendation.",zeniNewRecommendationPopupTitle:'Vendor recommendation for "_vendor_name_" is updated to "_new_recommendation_".',zeniNewRecommendationPopupMsg:"Zeni AI has provided a recommendation for this vendor name. Click 'Continue' to proceed with the selected vendor name or 'Cancel' to view the newly added recommendation.",zeniNewRecommendationNotAvailablePopupTitle:'Vendor recommendation for "_vendor_name_" is no longer available.',zeniNewRecommendationNotAvailablePopupMsg:`Zeni AI has updated the recommendation for this vendor. Please try again.
102
- `,redirectToQBO:"Redirect to QBO",mergeInQBOSteppedContent:{step1:{navigateTo:"Navigate to ",andSelectThe:" and Select the ",tab:" tab."},step2:{lineText:"Find and open the vendor profile you want to keep. Then Select ",andCopy:" and copy",display:"Display"},step3:{goBackTo:"Go back to the ",lineText:" tab. Find and open the vendor you don't want to keep. Then select "},step4:{lineText:"Change the display name to make it identical to the vendor you're merging it with."},step5:{andThen:" and then "}},mergeInNetSuiteSteppedContent:{step1:{goTo:"Go to ",lists:"Lists",then:" then ",relationships:"Relationships",then2:" then "},step2:{click:"Click ",next:" next to the ",sourceInfo:" that will be the source "},step3:{onThe:"On the ",page:" page, under ",click:", click "},step4:{onThe:"On the ",mergeVendor:"Merge Vendor",endText:" page, select the target vendor into which you want to merge this source vendor record. "},step5:{text:" Both the source and target vendor records must have the same primary subsidiary to merge the records. "},step6:{click:"Click ",text:" . At the prompt to confirm the action, click "},step7:{onThe:"On the ",duplicateResolution:"Duplicate Resolution Status",text:" page, the merge is queued for process. "},step8:{click:"Click ",processText:" to process the merge or the ",haltText:" link to halt the merge process. "},step9:{the:"The ",text:" column provides the results of the merge. "},step10:{text:"The un-categorized and mis-categorized transactions for the deleted vendor will be migrated within 24 hours after the vendor merge is completed. "}}},rowMoreActions:{markAsEmployee:"Mark as Employee",markAsLocalContractor:"Mark as Local Contractor"},tooltip:{mergeInQBOText:"Updated vendor name already exists in QBO and needs to be merged.",mergeInNetSuiteText:"Updated vendor name already exists in NetSuite and needs to be merged."},overlay:{title:'Add Website for "_vendor_name_"'}}},commentsAndNotifications:{notifications:{texts:{markAsRead:"Mark as Read",markAllAsRead:"Mark all as read"},actionStrings:{comments:{mention:"mentioned you in comment",reply:"replied to your comment",reaction:"reacted to your message",toMessage:"to your message",assign:"assigned you to a task",unassign:"unassigned you from a task",newThread:"created a new thread",resolveComment:"resolved a comment",unResolveComment:"reopened a comment",newActivity:"performed new activity on your message",newRepliesAdded:"replied to a comment",newCommentAdded:"added a comment"},notifications:{create:"created this task.",assign:"assigned this task to you.",overdue:"Due date was __date__",due:"Currently __task_status__ and is due tomorrow.",dueTomorrow:"This task is due tomorrow.",statusUpdate:"Status updated from",activities:"made updates to this task.",delete:"deleted this task.",archive:"archived this task.",newActivity:"performed new activity on this task."}},strings:{notificationSelected:"Notification selected",notificationsSelected:"Notifications selected",newMessage:"You have received a new message"},message:{noNotificationsMessage:"No notifications at this time. You're all caught up."}}},featurePreview:{scheduleDemo:"Schedule a Demo",popups:{home:{title:"Unleash the Power of AI Bookkeeping",text:"Update your books daily, access real-time insights, and receive personalized support from a dedicated team of experts — all on a single platform"},ai_automation:{title:"Unleash the Power of AI Bookkeeping",text:"Update your books daily, access real-time insights, and receive personalized support from a dedicated team of experts — all on a single platform"},reports:{title:"Investor Ready Reports",text:"Generate beautiful PDF reports to forward to investors, bankers, or to build into your board deck. Alternatively, download or share view-only access to your dashboard."},forecast:{title:"Forecasting and Planning",text:"Don't settle for Excel. Accurately forecast your bookings, revenues, workforce, expenses and cash flows by comparing Actuals vs Budgets from a central dashboard."},bills:{title:"The fastest way to pay vendors",text:"Pay domestic and international vendors quickly and automate your accounts payable process end-to-end directly from the dashboard – at no additional cost. "},reimbursements:{title:"Reimburse employees at lightning speed",text:"Embrace the efficiency and future of AI-driven expense reimbursements while boosting employee satisfaction."},vendors:{title:"Stop wondering how you’re spending money",text:"Daily, crystal-clear insights into your Operating Expenses give you an instant view into your cash burn and expenses, including Gross Burn and Net Burn trends."},people:{title:"",text:""},rewards:{title:"",text:""},cards:{title:"",text:""},checking:{title:"Business banking turning transactions into triumphs",text:"Modern checking accounts with a guaranteed yield earned from your first dollar and no hidden fees. Leverage AI to auto categorize your transactions effortlessly."},treasury:{title:"",text:""},accounting:{title:"",text:""},approval_rules:{title:"",text:""},bank_connections:{title:"",text:""},business_verification:{title:"",text:""},company_details:{title:"",text:""},integrations:{title:"",text:""},my_profile:{title:"",text:""},my_bank_connections:{title:"",text:""},notifications:{title:"",text:""},billing:{title:"",text:""},performance:{title:"",text:""},ai_cfo:{title:"",text:""}}},collaboration:{commentOnField:"comment on field",threads:{placeholder:{replyAComment:"Reply to comment...",addANewComment:"Add a new comment..."},tooltip:{resolveComment:"Resolve comment",unResolveComment:"Re-open comment"}}},expenseAutomation:{common:{numbers:{maximumCount:999}},overview:{confidenceScoreDescription:"Higher score means you're close to finish.",auditScoreDescription:"Streamline your month-end close with Zeni AI.",monthEndCloseProgress:"Month-end close progress",targetClose:"Target Close:",daysToClose:"Days to Close:",financialClose:"Financial Close",reviewReport:"Review month-end close report.",insightsCtaMessage:"Improve your confidence score to _minimum_score_ or above to unlock month-end insights",createInsights:"Create _month_name_ Insights",monthEndCloseTrend:"Performance Trend",monthEndCloseTrendNoData:"No data yet!",monthEndCloseTrendNoDataDescription:"Initiate your first month-end close to track performance.",confidenceScoreTooltip:"Indicates overall progress of all month-end close tasks. Higher score means you're closer to finishing the close.",byHumans:"by Humans",progress:"Progress",headerByAI:"By AI",statistics:{accountsAutoReconciled:"Accounts auto-reconciled",transactionsAutoCategorized:"Transactions auto-categorized",humanEfficiency:"Tasks completed by AI Agents",fasterReviews:"Faster reviews",vendorsWithFluctuations:"Vendors with fluctuations"}},confirmationDescription:"Are you sure you want to exit without saving?",dashboardCard:{month_end_insights:"Month end insights"},transactions:{header:{memoReceipt:"Memo | Receipt",receipt:"Receipt",toFrom:"To/From"},searchPlaceholder:"Search by vendor, amount, date, or memo",tabs:{autoCategorized:"Auto-categorized"},transactionGroupFilter:{transactionGroupLabel:"Transaction Group"},subTitles:{review:{item1:{pre:"",bold:"AI Bookkeeper",post:"has recommendations for Payees, Categories, Classes."},item2:{pre:"",bold:"",prefixIconName:"",post:"Review them, select, save your changes, and AI Bookkeeper will learn from your updates."}},autoCategorized:{item1:{pre:"",post:"have auto-categorized the below #number transactions for this month."},item2:{pre:"",bold:"",prefixIconName:"",post:"Feel free to review and make the necessary changes. AI Agents will learn from your updates."}}},allDoneText:{title:"All set!",subTitle:"Task cleared, ready to soar!"},emptyStates:{noSearchResults:{title:"No matching transactions",subTitle:"Try adjusting your search or filters."}},filters:{categoryLabels:{paymentAccountName:"Payment Account Name",paymentAccountType:"Payment Account Type"},amountOperators:{isEqual:"Is equal",inBetween:"In between",placeholder:"Select operator"},filterOptions:{transactionAmountOptions:[{label:"< 100",value:"-10000000<->100"},{label:"100 to 500",value:"100<->500"},{label:"500 to 1K",value:"500<->1000"},{label:"1K to 5K",value:"1000<->5000"},{label:"5K to 10K",value:"5000<->10000"},{label:"10K to 20K",value:"10000<->20000"},{label:"> 20K",value:"20000<->10000000"}],transactionTypeOptions:[{label:"Auto-categorized",value:"autoCategorized"},{label:"Review",value:"review"},{label:"Categorized",value:"categorized"},{label:"Uncategorized",value:"uncategorized"}]},selectPaymentAccountNamePlaceholder:"Select Payment Account Name",searchForPayeePlaceholder:"Search for Payee"},addProject:"Add Project",transactionActivityLog:{noLogsFound:"No Activity logs found",transactionIngested:"Transaction ingested.",aiBookkeeperAdded:"AI Bookkeeper added the",userUpdatedDetails:"Updated the transaction details.",linePrefix:"Line #"},transferDrawer:{debitAccountLabel:"Debit Account:",creditAccountLabel:"Credit Account:",keepExpense:"Keep {transactionType}",convert:"Convert",convertToTransfer:"Convert {transactionType} to Transfer",convertToCreditCard:"Convert {transactionType} to Credit Card Payment",transferDrawerSubtitle:"The current {transactionType} will be deleted and replaced with a transfer entry",creditCardPaymentDrawerSubtitle:"The current {transactionType} will be deleted and replaced with a credit card payment entry",groupHeadingAllAccounts:"All Accounts",noEligibleAccountsDropdownLine2:"Connect an account or keep this as an expense."},transactionTypeDropdown:{multilineNotEligibleTooltip:"Multiline transactions are not eligible for transfer entry."}},jeSchedules:{subTitles:{item1:{pre:"",bold:"",prefixIconName:"",post:"Please review the following journal entries below and correct or post them."},item2:{pre:"",post:"will learn from your update, automate it, and boost accuracy and efficiency to simplify every step."}},allDoneText:{title:"High five!",subTitle:"All schedules reviewed!"},emptyState:{pendingReview:{title:"High five!",subTitle:"All schedules reviewed!"},ongoing:{title:"High five!",subTitle:"No ongoing schedules"},completed:{title:"High five!",subTitle:"No completed schedules"}},scheduleHeaders:{period:"Amortization Period",balance:"Running balance (as of today)",months:"Remaining Months",amountForMonth:"Amount(for this month)",entry:"Entry",monthlyAmount:"Monthly Amount",reversesOn:"Reverses on",reversesOnMatch:"Reverses on match",scheduledAndPosted:"Scheduled + Posted",startMonth:"Start Month",amount:"Amount",memo:"Memo"},scheduleCot:{recommendedMethod:"Recommended method",monthLifeSuffix:"-mo life",methodByType:{prepaid_expenses:"Straight-line amortization",fixed_assets:"Straight-line depreciation",accrued_expenses:"Accrual",deferred_revenue:"Straight-line recognition"},credit:"Credit",debit:"Debit"},scheduleTypes:{prepaid_expenses:"Prepaid",fixed_assets:"Fixed Asset",accrued_expenses:"Accrual",deferred_revenue:"Deferred Revenue"},oneTimeAccrualType:"One Time Accrual",lifecycleLabel:{prepaid_expenses:"Prepaid Schedule",fixed_assets:"Fixed Asset Schedule",accrued_expenses:"Accrued Schedule",deferred_revenue:"Deferred Revenue Schedule"},tooltipText:{missingVendor:'The vendor "_deleted_vendor_" was deleted from the Journal Entry. Please add the correct vendor and try posting again.',missingCategory:'The category "_deleted_category_" was deleted from the Journal Entry. Please add the correct category and try posting again.',missingDepCategory:'The category "_deleted_dep_category_" was deleted from the Journal Entry. Please add the correct accumulated depreciation category and try posting again.'},resolveErrors:{heading:"This entry could not be posted",vendor_deleted:'Vendor "_deleted_field_" was deleted. Update it in Review.',debit_category_deleted:'Category "_deleted_field_" was deleted. Update it in Review.',credit_category_deleted:'Accumulated depreciation category "_deleted_field_" was deleted. Update it in Review.',qbo_error:"QuickBooks rejected this entry. Try posting again.",qbo_authorization_error:"The QuickBooks connection expired. Reconnect it, then post again.",qbo_invalid_company_status_error:"The QuickBooks subscription is inactive. Resolve it, then post again.",qbo_book_close_date_error:"The books are closed for this date. Reopen the period or move the date."},addDepCategory:"Add Depreciation Category",aiBotEmail:"ai@zeni.ai",botEmail:"bot@zeni.ai",aiAccountant:"AI Accountant ",zeniGPTText:"recommends a new JE schedule. Please review and set it up!",kpiStrip:{aiAccountant:"AI Accountant Created",manual:"Manual Created",schedules:"schedules",total:"Total this close",typeLabels:{prepaid_expenses:"Prepaid",accrued_expenses:"Accrual",deferred_revenue:"Revenue Accrual"}},typeFilter:{prepaid_expenses:"Prepaid",accrued_expenses:"Accrual",all:"All"},groups:{createdInsight:"Auto-posted or manually recorded",pendingReviewInsight:"Input requested before posting"},tabs:{schedules:"Review Schedules",existingSchedules:"Existing Schedules"},newSchedule:{title:"New Schedule",oneTimeAccrualTitle:"New one-time accrual",oneTimeAccrualSubtitle:"Posts directly to the books",recurringTitle:"New recurring schedule",recurringSubtitle:"Posts monthly entries starting {month}",reviewSchedule:"Review schedule",scheduleDetails:{title:"Schedule Details",oneTimeAccrual:"One time accrual",oneTimeAccrualDescription:"Single JE this month",recurringSchedule:"Recurring Schedule"},scheduleType:{title:"Schedule type",subtitle:"What is this schedule spreading?",fixedAssetDescription:"Depreciate a purchase",prepaid:"Prepaid",prepaidDescription:"Amortize a prepayment",accrual:"Accrual",accrualDescription:"Recurring estimate",deferredRevenueDescription:"Recognize over time",deferredRevenue:"Deferred Revenue",fixedAsset:"Fixed Asset"},baseTransaction:{title:"Base Transaction",subtitleFixedAsset:"The purchase being capitalized",subtitlePrepaid:"The prepayment being spread",searchPlaceholder:"Search by vendor, amount, date and memo",noResults:"Nothing matched your search... Try again.",aiAccountantInsight:"AI Accountant spreads {amount} over {months} months ≈ {amountPerMonth}/mo."},fields:{numberOfMonths:"No. of Month",amountPerMonth:"Amount Per Month",sourceOrTrigger:"Source / trigger",addVendor:"Add vendor",selectStartMonth:"Select start month",selectPostingDate:"Select posting date",selectMonths:"Select months",addAccumulatedDepreciationCategory:"Add accumulated depreciation category",addAssetId:"Add asset ID",addSourceOrTrigger:"Add Source / trigger",selectServiceMonth:"Select service month",accrualCategory:"Accrual Category",addAccrualCategory:"Add accrual category",memoPrefix:"Accrue",estimatedMonthlyAmount:"Estimated Monthly Amount",startingBalance:"Starting Balance",addStartingBalance:"Add balance",accumulatedDepreciationCategory:"Accumulated Depreciation Category",serviceMonth:"Service month",postingDate:"Posting Date",addCategory:"Add category",startMonth:"Start Month",addAmount:"Add amount",category:"Category",addClass:"Add class",assetId:"Asset ID",addMemo:"Add memo",vendor:"Vendor",amount:"Amount",class:"Class",memo:"Memo"},oneTimeAccrual:{postAccrual:"Post accrual",reverseNextMonth:"Reverse next month",reverseNextMonthOff:"Off — accrual stays open until a matching bill arrives from this vendor and clears it.",reverseNextMonthOn:"A reversing JE will post on {date} automatically — use this when no matching bill is expected (e.g., estimated bonus, true-up).",reverseNextMonthOnNoServiceMonth:"A reversing JE will post on the 1st of the month after the service month automatically — use this when no matching bill is expected (e.g., estimated bonus, true-up)."},journalEntryPreview:{title:"Journal Entry Preview",debit:"DR",credit:"CR",autoReversesOnBillMatch:"Auto-reverses when a matching bill arrives from {vendor}.",autoReversesOnDate:"Auto-reverses on {date}."},schedulePreview:{title:"Schedule preview",posts:"Posts",postsValue:"{amount} × {months} months",window:"Window",windowValue:"{start} → {end}",totalCommitted:"Total committed",eachEntry:"Each entry",eachEntryValue:"DR {debit} · CR {credit}",autoPostSuffix:" will auto-post each month until the schedule completes.",autoPostPrefix:"AI Accountant",class:"Class"},documentAutofillUnavailable:{title:"Document autofill isn't available here",descriptionByType:{fixed_assets:"Fixed asset schedules spread a transaction that's already on the books, so they start from the posted purchase — not from a document.",prepaid_expenses:"Prepaid schedules spread a transaction that's already on the books, so they start from the posted purchase — not from a document.",accrued_expenses:"Accrual schedules post a recurring estimate, so they start from the transaction you're basing the estimate on — not from a document."},searchTransactionsButton:"Search transactions"},newButtonLabel:"New"},accrualDetail:{accrualTypeMonthly:"Monthly Accrual",estimatedBy:"Estimated by",editAmount:"Edit amount",statusLabels:{draft:"Pending Review",posting:"Posting",posted:"Posted",posting_blocked:"Posting Blocked",reversing:"Reversing",reversed:"Reversed",reverted:"Reverted"},details:{title:"Accrual Details",servicePeriod:"Service Period",servicePeriodValue:"{month} Service",accrualType:"Accrual Type",liabilityAccount:"Liability Account",autoReversal:"Auto Reversal",reverseNextMonthOption:"Reverse Next Month",onInvoiceMatch:"On Invoice Match",onDate:"On {date}",monthsOfHistoryUsed:"Months of History Used",monthsValue:"{months} months",expenseCategory:"Expense Category",postingDate:"Posting Date",department:"Department",memo:"Memo"},calculationBreakdown:{title:"Calculation Breakdown",calculationMethod:"Calculation Method",weight:"Weight",weightedValue:"Weighted Value",recommendedAccrual:"Recommended Accrual",invoiceAmount:"Invoice Amount",month:"Month"},journalEntryPreview:{title:"Journal Entry Preview"},billingPattern:{title:"Billing Pattern",avgAmount:"Avg Amount",lastBill:"Last Bill",consistency:"Consistency",billingLag:"Billing lag",monthsTracked:"Months Tracked",percentValue:"{percent}%",serviceMonthMarker:"This service month",noHistoryTitle:"No vendor billing history",noHistoryDescription:"This accrual was entered manually, so there is no vendor profile behind it to chart. The AI Accountant builds one only for the vendors it accrues automatically.",daysValue:"{days} days"},actions:{skipThisMonth:"Skip This Month",approveAndPost:"Approve & Post"},statusStates:{reversed:"Entry reversed"},feedback:{title:"Why skip this accrual?",subtitle:"Tell us why {amount} shouldn't be accrued for {vendor} this month — AI Accountant learns from this.",reasons:{no_activity:"No activity this month",paused:"Vendor paused / off-boarded",too_small:"Not material",need_invoice:"Wait for actual invoice",other_ignore:"Something else"},revert:{title:"Why revert this accrual?",subtitle:"This deletes the {amount} journal entry for {vendor} from the books. AI Accountant learns from the reason.",submit:"Revert Accrual",reasons:{amount_off:"Amount was wrong",wrong_period:"Wrong period",not_accrual:"Shouldn't be accrued",duplicate:"Duplicate",other_revert:"Something else"}},ignoreSchedule:{title:"Why ignore this schedule?",subtitle:"Tell us why this schedule isn't needed — AI Accountant learns from this.",submit:"Ignore Schedule",reasons:{not_needed:"Not needed",wrong_account:"Wrong account",duplicate:"Duplicate",already_handled:"Already handled",other_ignore:"Something else"}},revertSchedule:{title:"Why revert this schedule?",subtitle:"This deletes the posted journal entry from the books and removes the schedule. AI Accountant learns from the reason.",submit:"Revert Schedule",reasons:{amount_off:"Amount was wrong",wrong_period:"Wrong period",duplicate:"Duplicate",created_by_mistake:"Created by mistake",other_revert:"Something else"}},noteLabel:"Add a note (optional)",notePlaceholder:"Anything else we should know?",submit:"Submit Feedback"}},existingSchedules:{downloadCompletedSchedules:"Download Completed Schedules",downloadRange:{title:"Download Completed Schedules",subtitle:"Completed schedules are matched on when they started, not when they finished, so search from before the schedules you are looking for began.",fromLabel:"Started on or after",fromPlaceholder:"Select a month",throughToday:"Includes everything up to today, {today}"},kpi:{ongoingSchedules:"Ongoing schedules",monthlyPosting:"Monthly posting",remainingBalance:"Remaining Balance",toDepreciateAmortize:"to depreciate / amortize",posted:"Posted",typeAbbreviations:{fixed_assets:"Fixed",prepaid_expenses:"Prepaid",deferred_revenue:"Deferred rev",accrued_expenses:"Accrued"}}},searchPlaceholder:"Search for schedules",addCategory:"Add Category"},missingReceipts:{searchPlaceholder:"Search for transactions",subTitles:{pre:"",preLink:"",post:"will do the best to automatically match receipts with the correct transactions. Forward all receipts to {receiptsEmail}",postLink:"{receiptsEmail}"},allDoneText:{subTitle:"All receipts uploaded, like magic!"}},fluxAnalysis:{searchPlaceholder:"Search for vendors",subTitles:{item1:{pre:"",bold:"",prefixIconName:"",post:"Review vendor account transactions for emerging trends and adjust categories and classes to resolve anomalies."},item2:{pre:"Feel free to review and make the necessary changes",post:"will learn from it."}},sectionTitle:{generalExpense:"General Expenses"},reviewedBy:"Reviewed by",remarksBy:"Remarks by",viewVendorDetails:"View Vendor Details",emptyPageTexts:{youDidIt:"You did it!",allReviewed:"All flux reviewed!"},stepsBanner:{collapsedTitle:"Quick steps for Flux Analysis",step1:{title:"Review Variances",description:"Compare vendor-wise spend across months and drill down into categories and classes."},step2:{descriptionPrefix:"Once variances are confirmed,",descriptionSuffix:"select vendors and mark as reviewed."}}},accountRecon:{reconciliation:{headers:{section:{assets:{title:"Assets",subTitle:"Cash and Equivalents"},liabilities:{title:"Liabilities",subTitle:"Credit Cards"}},bankBalance:"Bank Balance",openingBalance:"Opening Balance",closingBalance:"Closing Balance",clearedBalance:"Cleared Balance",matchProgress:"AI Progress",lastReconciled:"Last Reconciled",excludedAccountTitle:"Excluded Accounts"},matchProgressLegend:{byHuman:"by human"},progressBar:{byHumans:"by humans"},stepsBanner:{collapsedTitle:"Quick steps for Bank Reconciliation",step1:{title:"Connect Bank Account",line1AfterIcon:"to add a bank account or",line2:"upload a bank statement."},step2:{title:"Compare Balance",body:'Compare bank statement and cleared balances. Select "Review" if they differ.'},step3:{eyebrow:"Step 3",title:"Review & Update Transactions",body:"Approve AI suggestions to categorize or match entries, and complete any missing fields."},step4:{eyebrow:"Step 4",title:"Reconcile the account",body:'Ensure balances match, then select "Reconcile" to complete reconciliation.'}},menu:{statement:"Account Statement"},statsCards:{autoMatched:"AI Accountant Auto-matched",needsReview:"Needs Review",accountsDone:"Accounts Reconciled",timeSavedByAi:"Time saved by AI Accountant",ofTotalTxn:"of _total_ transactions",acrossAccounts:"across _count_ accounts",ofTotalAccounts:"of _total_ Accounts",hrsSuffix:"hrs"},connectAccountsBanner:{leadNeedConnectedSuffix:"need to be connected.",body:"Connect a data source to start reconciliation. Takes less than 2 min per account.",connectAccounts:"Connect Accounts",dismissAriaLabel:"Dismiss"},status:{reconciled:"Reconciled",reconciledBy:"Reconciled by",reconciledVia:"Reconciled via",reconcileViaQBO:"Reconcile via QBO",balanceSyncInProgress:"Balance sync",statementSyncInProgress:"Statement sync",autoReconInProgress:"Auto-reconciliation",statementParseError:"Statement parse",statementValidationFailed:"Statement validation",statementProcessingFailed:"Statement processing",failed:"failed",isInProgress:"is in progress",booksClosed:"Books closed",reopenToReconcile:"Reopen to reconcile",booksClosedTooltip:"Refresh after reopening the books"},tooltips:{reconciledByLabel:"Reconciled by:",lastUpdatedLabel:"Last updated:",applyingChanges:"Applying changes...",failed:"Could not apply changes",inProgress:"Connection is in progress. Please check back in a few minutes.",balancesNotFound:"Unable to fetch balances for this account.",bankBalanceNotFound:"Unable to fetch bank balance for this account.",clearedBalanceNotFound:"Unable to fetch cleared balance for this account.",reconInProgress:"Reconciliation is in progress. Please check back in a few minutes.",excludeAccount:{title:"Exclude Account"}},drawer:{uploadDropZoneSuffix:"your statement",uploadDropZoneSupportingText:{single_account:"Upload a statement for a single account.",multi_account:"Upload a statement containing multiple accounts."},statementAccountScopeOptions:{single_account:"Single Account",multi_account:"Multiple Accounts"},labels:{lastUpdated:"Last Updated:",lastSync:"Last Sync:"},values:{bank:"Bank",connecting:"Connecting",uploaded:"Uploaded",statementParsing:"Statement sync is in progress"},deleteConfirmation:{heading:"Delete this file?",description:"Deleting the file will affect your reviewed transactions or reconciliation progress."},validationFailed:{heading:"Validation Failed"},fileValidationFailed:{heading:"File Validation failed",description:"We couldn't process your statement. Please check the file and try uploading again."},dateRangeConflict:{alreadyReconciled:{heading:"Date Range Already Reconciled",description:"The statement period overlaps with a period that has already been reconciled"},gap:{heading:"Gap in Reconciliation Period",description:"The statement must start the day after the last reconciled period",expectedStartDate:e=>`Please upload a statement starting ${e}`},lastReconciled:e=>`Last Reconciled: ${e}`,lastReconciledBy:(e,o)=>`Last Reconciled: ${e} by ${o}`},error:{validationFailed:"Validation failed",parsingFailed:"Parsing failed"},excludeFromReconciliation:"Exclude from Reconciliation",excludeConfirmation:{heading:e=>`Exclude "${e}" from Reconciliation?`,description:"This account will be removed from your reconciliation workflow and progress report. Existing data will not be affected, and you can include the account again at any time."},includeForReconciliation:"Include account for Reconciliation",includeConfirmation:{heading:e=>`Include "${e}" for Reconciliation?`,description:"This account will be added back to your reconciliation workflow and progress report."}}},statementProcessing:{steps:["Uploaded file","Reading document structure","Identifying statement type","Extracting account details","Determining opening & closing balances","Verifying statement details","Gathering transactions","Finalizing Reconciliation"],headerTitle:"AI Accountant Reading Statement",stepSubtitles:["Setting up statement analysis and validation","Recognizing transaction layouts and summary sections","Matching format against known bank statement templates","Pulling account number, entity name, and statement period","Locating balance summary from the checking summary table","Cross-checking deposit and withdrawal totals for accuracy","Reading transactions. Extracting dates, amounts, and descriptions","Matching transactions to your ledger and preparing the review"],stepProgressLabel:(e,o)=>`Step ${e} of ${o} completed`,timeRemainingMinutes:e=>`${e} min left`,timeRemainingSeconds:e=>`${e} sec left`,takingLongerThanExpected:"Taking longer than expected...",actionNeeded:"Action needed",continueInBackground:"Continue in Background",accountMapping:{headerSubtitle:e=>`Almost done — assign each of the ${e} cards to a ledger account to finish.`,headerSubtitleAccounts:e=>`Almost done — assign each of the ${e} accounts to a ledger account to finish.`,banner:(e,o)=>`I've extracted all charges from this combined ${e} statement — it covers ${o} cards. Assign each card to a ledger account to file everything. You won't need to upload this file again.`,bannerAccounts:(e,o)=>`I've extracted all charges from this combined ${e} statement — it covers ${o} accounts. Assign each account to a ledger account to file everything. You won't need to upload this file again.`,aiMatched:"AI matched",ledgerAccountLabel:"Ledger account",ledgerAccountPlaceholder:"Select ledger account",overrideWarning:"This account has an ongoing reconciliation. Selecting it will override the existing work.",transactionSummary:(e,o)=>`${e} transactions • ${o} in new charges`,deleteRowAriaLabel:"Remove card mapping",deleteConfirmation:{heading:"Remove this card?",headingAccount:"Remove this account?",description:"The transactions from this card will be excluded from this combined statement, you can still map the remaining cards.",descriptionAccount:"The transactions from this account will be excluded from this combined statement, you can still map the remaining accounts."}},cancelConfirmation:{heading:"Cancel statement parsing?",description:"Your uploaded statement is still being parsed. If you cancel now, the uploaded file and all processing progress will be lost.",continueParsing:"Continue Parsing"}},statementParseInfo:{statementPeriodAndBalances:"Statement period & balances",statementValuesFootnote:"These values are copied directly from the statement.",from:"From:",to:"To:",credits:"Deposits",calculatedValues:"Calculated values",calculatedValuesFootnote:"These values are calculated from transactions in the statement.",extractedTransactions:"Extracted transactions",addTransaction:"Add transaction",totalsDoNotAddUp:"The totals do not add up.",reparseStatement:"Re-parse statement",retryParsing:"Retry Parsing",cancelConfirmation:{heading:"Are you sure?",description:"You have unsaved changes. If you cancel now, your changes will be lost"},reparseConfirmation:{heading:"Restart parsing?",description:"Re-parsing reads the statement again from scratch and replaces your current review. Any edits you've made will be lost.",reparse:"Re-parse"},closingBalanceMismatchConfirmation:{heading:"Closing balance doesn’t match",descriptionBeforeStatementAmount:"The closing balance on your statement is ",descriptionBetweenAmounts:", but the transactions you’ve added total ",reviewHint:"Please review the transactions and add, remove, or edit any that are incorrect.",reviewTransactions:"Review transactions",continueAnyway:"Continue anyway",descriptionAfterTransactionsAmount:"."},aiSummary:{accountRecognized:"Account recognized",transactionsExtracted:"Transactions extracted",exceptionsDetected:"Exceptions detected",fieldsCaptured:"Fields captured",validated:"Validated",openingDate:"Opening date"}},tabs:{},review:{allDoneText:{title:"High five!",subTitle:"All transactions reviewed!"},header:{match:"Record or Match",amount:"Amount",memo:"Memo"},transactionDirection:{credit:"Credit",debit:"Debit"},matchesCount:"__count__ Matches",matchedFoundCount:"__count__ Matches Found",matchesFoundFullInfo:"for this bank transaction within the last 90 days",bankDetail:"Bank Detail",creditCardDetail:"Credit Card Detail",formLabels:{match:"Match",categorize:"Categorize",selectCard:"Select Card",allBankAccounts:"All bank accounts",allCreditCards:"All credit cards",addCategory:"Add Category",addClass:"Add Class",addMemo:"Add Memo"}},reconcile:{allDoneText:{title:"Ta-da!",subTitle:"No transactions found for reconciliation!"},header:{clearedDate:"Cleared Date",amount:"Amount",memo:"Memo"}},subTitles:{review:{item1:{pre:"",bold:"",prefixIconName:"",post:"Please review these transactions because the general ledger balance doesn't match the bank balance."},item2:{pre:"",post:"suggest updating these transactions to resolve the ledger discrepancies, which will help auto-adjust the variance."}},reconcile:{item1:{pre:"",post:"have reconciled pending transactions and saved 42% of your reconciliation time."},item2:{pre:"",prefixIconName:"",bold:"",post:"It's time to review for discrepancies and select all transactions to bring the variance to zero."}}},titles:{item1:{pre:"",post:"have reconciled your bank transactions and saved 38% of your reconciliation time."},item2:{pre:"",bold:"",prefixIconName:"",post:" It's time to check for discrepancies and review them if there's a difference."}}},recommendationFeedback:{title:"I will learn from it to improve recommendations.",yourSelection:"Your Selection",reasonPlaceholder:"Explain why this is the right choice for this transaction (required)",submitHintPrefix:"Press ",submitHintKey:"Enter/Return",submitHintSuffix:" to submit",dimensionLabels:{vendor:"Payee Recommendation",category:"Category Recommendation",class:"Class Recommendation"}}},aiCfo:{pageView:{scopePageTitle:"AI CFO Scope",titleTag:"BETA",hello:"Hello, ",helpText:"How can I help you today?",showMoreSuggestedQuestions:"Show __count__ more..."},questionTemplates:{sampleQuestion1:"Show me last month's Month-end insights",sampleQuestion2:"Show me the runway and projected cash zero date",sampleQuestion3:"Show me the top expenses from past six months"},skillMenu:{examplePrefix:"try:",tip:"Tip: type details after a skill to tailor it — e.g. a period, a filter, or what to focus on."},skills:{subtitle:"Ready-made analyses you can run in a new chat. Zeni's are available to everyone; yours are your company's own.",byZeni:"By Zeni",byTenant:"Your company",empty:"No skills are available yet.",emptyTenant:"Your company hasn’t added any skills yet.",loading:"Loading skills…",loadingPrompt:"Loading this skill’s instructions…",loadFailed:"Couldn’t load skills. Please try again.",detailLoadFailed:"Couldn’t load this skill. Please try again.",back:"All skills",backToSkill:"Back to skill",audienceCurrentPrivate:"Only you can use this skill.",audienceCurrentTenant:"Everyone at your company can use this skill.",publish:"Share with company",unpublish:"Make private",publishing:"Sharing…",unpublishing:"Making private…",publishFailed:"Couldn’t change who can use this. Please try again.",run:"Run skill",runHint:"Runs this skill in a new chat.",instructionsHeading:"What this skill tells the agent",tenantBadge:"Shared",lastUpdated:"Updated __date__",neverUpdated:"Not updated yet",newSkill:"New skill",fork:"Copy to my skills",forkHint:"Starts a new skill of your own from this one.",forkNameSeed:"__name__ copy",deleteConfirm:"Delete this skill?",deleteConfirmBody:"It stops appearing in the / menu for everyone who can run it. Its name becomes available again.",deleting:"Deleting…",deleteFailed:"Couldn’t delete this skill. Please try again.",namePlaceholder:"Cash burn summary",nameHint:"How people find this skill — type / then any part of the name.",audienceLabel:"Who can use this",audiencePrivate:"Only me",audiencePrivateHint:"Stays in your own / menu.",audienceTenant:"Everyone at my company",audienceTenantHint:"Appears in every colleague's / menu.",audiencePublishWarning:"Published skills run with the permissions of whoever uses them. Only publish a prompt you would be comfortable running as any colleague.",descriptionPlaceholder:"One line on what this skill does",descriptionHint:"Shown under the name in the / menu.",instructionsLabel:"Instructions",instructionsPlaceholder:"Tell the agent exactly what to do. Be specific about the period, the accounts and the format you want back.",instructionsHint:"The agent receives this verbatim. Written like a brief, not a search query.",charCount:"__count__ characters",create:"Create skill",creating:"Creating…",saveNewVersion:"Save new version",saveFailed:"Couldn’t save this skill. Please try again.",unsavedTitle:"Discard your changes?",unsavedBody:"This skill has edits that haven’t been saved.",keepEditing:"Keep editing",nameRequired:"A name is required.",instructionsRequired:"Instructions are required.",instructionsTooShort:"Instructions need at least __min__ characters.",renameWarning:"Renaming changes the / command. The old one stops working.",historyHeading:"Version history",historyLoading:"Loading history…",historyFailed:"Couldn’t load version history.",historyEmpty:"No earlier versions.",versionLabel:"Version __version__",restore:"Restore",restoreHint:"Brings this version’s instructions back as a new version. Nothing is overwritten.",restoreLoading:"Loading this version…",restoreFailed:"Couldn’t load that version. Please try again.",emptyTenantCta:"Write your first skill, or copy one of Zeni’s."},texts:{generating:"Generating...",artifactFallbackTitle:"Financial visualization",downloadArtifactImage:"Download chart as image",downloadTableFailed:"Couldn’t download the table. Please try again.",downloadTableTooLarge:"This table is too large to export. Try narrowing the question to a shorter period or fewer categories.",downloadArtifactImageFailed:"Couldn’t download the chart. Please try again.",errorInAnswer:"We couldn’t generate a response at the moment. Please submit question again.",errorInArtifact:"Unable to render visualization. The data is available in the text response above.",creatingCards:"Creating cards...",creatingPolicies:"Creating policies based on your preferences...",cardCreatedSingular:"1 card is created and ready",cardsCreatedPlural:"__count__ cards are created and ready",policyCreatedSingular:"1 policy is created and saved",policiesCreatedPlural:"__count__ policies are created and saved",createdCardsTableRecommendedLimitHeader:"Recommended Limit"},interactiveForm:{noMatches:"No matches",cardPolicy:{limits:{transactionLimitHelperText:"Maximum amount per single transaction",amountPlaceholder:"$0"}},cardsCreation:{step1Title:"Based on your last 3 months of spend, here are the cards. Review and confirm.",step1AddRowPlaceholder:"Add something else",step1ColumnAvgMonthlySpend:"Avg monthly spend",step2Title:"Who should these cards be assigned to? Suggested owners based on past spend.",step2Cta:"Create cards",cardTypeOptions:{virtual:{label:"Virtual card",description:"Issued instantly"}}}},chainOfThoughts:{reasoning:"Thinking"},reason:{show:"Show Reason",hide:"Hide Reason"},tooltips:{likeResponse:"Like",dislikeResponse:"Dislike",chatWithAI:"Chat with AI CFO"},headers:{followUpQuestions:"Follow-up questions to ask next",didYouKnow:"Did you know?",assumptions:"Key Assumptions"},exports:{downloading:"Preparing download",errors:{expired:"This file is no longer available. Ask the question again to regenerate it.",generic:"Could not download the file. Please try again."}},input:{disclaimer:"__agent__ can make mistakes. Check important info.",maxFilesError:"Cannot add __count__ file(s). Maximum __max__ files allowed per message.",fileTooLargeError:"'__fileName__' exceeds the 5MB size limit and was not added.",unsupportedFileTypeError:"'__fileName__' is not a supported file type and was not added.",uploading:"Uploading",uploadPromoTooltip:{title:"Now upload documents",description:"Add a financial document to see key insights and ask questions."},placeholder:"Ask AI CFO a question and get clear answers.",placeholderWithSkills:"Ask a question, or type / to run a Skill.",placeholderWithSkillsAndUpload:"Ask a question, type / for Skills, or attach a file.",placeholderWithUpload:"Ask a question, or attach a file to analyze."},loading:{discoveryTips:{excelExport:"Tip: Ask for any analysis as an Excel file and I'll attach a download.",followUps:"Tip: Ask follow-up questions in the same chat — I keep the conversation's context.",skills:"Tip: Type / in the message box to run Skills like flux analysis and cash forecasts.",uploads:"Tip: Attach a CSV or spreadsheet and I'll analyze it alongside your books."}},menu:{chatHistory:"CHAT HISTORY"},onboarding:{section:{title:"Run your business with confidence.",subtitle:"Built to analyze, explain, and summarize your numbers like a real CFO would."},capabilities:[{title:"Analyze Financials",subtitle:"Profit & loss, balance sheets, and trend detection — no spreadsheets required.",icon:"analyzing"},{title:"Spot Vendor Patterns",subtitle:"Review expenses across vendors and categories. Surface anomalies and overspend.",icon:"vendors"},{title:"Calculate Core Metrics",subtitle:"Runway, burn, margins — calculated from your real books.",icon:"calculator"},{title:"Forecast With Confidence",subtitle:"Auto-generate projections based on historicals. Updated weekly.",icon:"forecast"},{title:"Visualize Key Trends",subtitle:"Bar graphs, line charts, tables — linked to real data for full traceability.",icon:"graph-trend"}],whoIsItFor:{title:"Who's It For",details:["Startup founders without a full-time CFO — but need strategic clarity.","VPs of Finance/Operations who want faster answers, fewer spreadsheets.","Department heads (Sales, Marketing, Eng) who want to own their numbers.","Fractional CFOs managing multiple clients on Zeni.","In-house CFOs using it as a 10x strategic co-pilot."]},footer:{buttonText:"Launch __agent__",scope:"__agent__ Scope",betaText:"This is Beta — and your usage will shape what’s next.",footerText:'By clicking "Launch __agent__" I accept '}}},aiPerformanceDashboard:{tileTitle:"AI Performance",tileSubtitle:"Monitor and analyze the performance of your AI agents.",chartTitle:"Cost and Time Savings Trend",aiCostSavedTile:{title:"Cost Saved",subtitle:"Total reduction in expense."},aiTimeSavedTile:{title:"Time Saved",subtitle:"Manual hours saved by AI."},noPerformanceData:{firstLine:"No tasks performed yet!"},personas:{aiBookkeeper:"AI Bookkeeper Agent",aiCardsAgent:"AI Cards Agent",aiBillsAgent:"AI Bills Agent",aiExpenseAgent:"AI Expenses Agent",aiBankingAgent:"AI Banking Agent",aiAccountantAgent:"AI Accountant Agent",personaTypes:{aiBookkeeper:"bookkeeper",aiCardsAgent:"ai_cards_agent",aiBillsAgent:"ai_bills_agent",aiExpensesAgent:"ai_expenses_agent",aiBankingAgent:"ai_banking_agent",accountant:"accountant",aiCfo:"ai_cfo"}},valueDelivered:{title:"Value Delivered",subtitle:"Measurement of what you get vs. what you pay",zeniSubscriptionPlan:"Zeni Subscription Plan"},annualizedImpact:{title:"Annualized Impact",subtitle:"At this rate annually, you'll save"}},sessionTimeout:{title:"Session ends in",description:"You will be signed out due to inactivity.",descriptionClickPrefix:"Click",descriptionSuffix:"to stay signed in.",signOut:"Sign Out",continueSession:"Continue Session"},aiAccountantCustomer:{table:{bookClose:"Book Close",accuracy:"Accuracy"},actions:{onboard:"Onboard",evaluate:"Evaluate",fullPipeline:"Full Pipeline",retrain:"Retrain",offboard:"Offboard",cancelOnboarding:"Cancel Onboarding"},jobTriggerDialog:{title:"Trigger Job",datesInstruction:"Please provide start and end dates.",singleDescription:"__companyName__. __datesInstruction__",singleDescriptionOffboard:"__companyName__ will be offboarded from AI Accountant."},drawer:{enrollmentDetails:"Enrollment Details",onboarded:"Onboarded",modelAccuracy:"Model Accuracy",noAccuracyData:"No accuracy data available",jobHistory:"Job History",loadingJobs:"Loading jobs...",noJobsFound:"No jobs found",operation:"Operation"},summary:{totalCustomers:"Total Customers",avgAccuracy:"Avg Accuracy"},bulkActions:{menuLabel:"Bulk Actions",selectedCount:"__count__ selected",noCommonOperations:"No actions available for the selected customers",disabledInfo:"The selected customers have no action in common. Narrow your selection to customers in the same state.",bulkDialogDescription:"__count__ customers selected for __action__. Please provide start and end dates.",bulkDialogDescriptionOffboard:"__count__ customers selected for offboarding.",evaluateAllDialogDescription:"__count__ unonboarded customer(s) will be evaluated. Please provide start and end dates."}},cardsShutdown:{bannerDescription:"We're discontinuing our cards product. Here's what's changing, key dates, and how to switch your payments smoothly.",knowMore:"Know More",introBody:"We're discontinuing the Zeni Cards product. Here's what's changing, key dates, and how to switch your payments smoothly.",whatsHappeningTitle:"What's happening",whatsHappeningBodyPrefix:"We've made the decision to discontinue Zeni Cards. Your card will remain active until ",whatsHappeningBodySuffix:", after which all Zeni Cards will be permanently deactivated and no new transactions will be processed.",switchPaymentsTitle:"Switch your vendor payments in minutes",switchPaymentsBodyPrefix:"To simplify the transition, we recommend ",cardSwitcherLinkText:"Knot CardSwitcher,",switchPaymentsBodySuffix:" which can automatically update your saved payment method across hundreds of merchants and subscription providers.",switchPaymentsCoverage:"CardSwitcher works with hundreds of major merchants - including Amazon, Uber, Netflix, Walmart, and most popular subscription and software providers — so you won't need to hunt through each account and update billing details one by one.",whatToDoNowTitle:"What you should do now",whatToDoItem1:"Review recurring payments linked to your Zeni Card",whatToDoItem2:"Move vendor and subscription payments to a new card",whatToDoItem3:"Download any statements you need for your records",needHelpBodyLine1:"Our team is here to help you through the transition.",needHelpBodyPrefix:"Reach us at ",needHelpBodySuffix:" for any assistance."},invoicingOverview:{revenueMrrOverTime:"Revenue - MRR Over Time",mrrMovement:"MRR Movement",mrrMovementNewSubscriptions:"New Subscriptions",mrrMovementExpansions:"Expansions",mrrMovementNewChange:"New MRR Change",customerMovement:"Customer Movement",customerMovementSubtitle:"All status transitions this month",netCustomerChange:"Net customer change",totalActiveCustomers:"Total active customers",customerChurnRate:"Customer churn rate",revenueByPlan:"Revenue by Plan",noPlanData:"No plan data available.",noRecentSubscriptions:"No recent subscriptions.",kpiActiveSubs:"Active Subs",metricChurnRate:"Churn Rate",tabRecentSubscriptions:"Recent Subscriptions",tabMonthlyMrrBreakdown:"Monthly MRR Breakdown",pillPaused:"Paused",pillResumed:"Resumed",pillReactivated:"Reactivated",alertFailedPayments:"Failed Payments",alertNeedsAction:"Needs action",alertUpcomingInvoices:"Upcoming Invoices",alertNext7Days:"Next 7 days",alertPastDueInvoices:"Past Due Invoices",nrrTitle:"Net Revenue Retention (NRR)",nrrSubtitle:"Trailing 12 months · benchmark for SaaS health",nrrFootnote:"NRR over 112% means existing customers are growing faster than they’re churning — typically a sign of strong product-market fit. Healthy SaaS benchmark is >100%.",grrTitle:"Gross Revenue Retention (GRR)",grrSubtitle:"Excludes expansion · pure retention signal",grrFootnote:"GRR caps at 100% — it strips out upsell to show how much revenue you’d retain without expansion. Best-in-class SaaS sits at 90%+. Below 80% signals a churn problem.",startingArr:"Starting ARR",expansionsArr:"Expansions ARR",contraction:"Contraction",churn:"Churn",endingArr:"Ending ARR",nrr:"NRR",retainedArr:"Retained ARR",grr:"GRR",summaryNewMrr:"New MRR",summaryExpansion:"Expansion",summaryChurnedMrr:"Churned MRR",summaryNetMrrChange:"Net MRR Change",summaryEndingMrr:"Ending MRR",colAutoCollect:"Auto Collect",autoCollectOn:"ON",autoCollectOff:"OFF",cadenceAnnual:"Annual",since:"Since"},invoicingCommon:{zipPlaceholder:"94105",usage:"Usage",pricing:"Pricing",subFamilyCode:"Sub-family Code",productCode:"Product Code",columnTarget:"Target",labelBillingPeriod:"Billing Period",labelPricingModel:"Pricing Model",addOns:"Add-ons",oneTimeChargesTab:"One-time Charges",importCsvFile:"Import CSV File",pluralSuffix:"s",description:"Description",subFamilyId:"Sub-family ID",itemDetails:"Item Details",name:"Name",externalName:"External Name",unit:"Unit",itemApplicability:"Item Applicability",applicableItems:"Applicable Items",timestamps:"Timestamps",updatedAt:"Updated At",addOn:"Add-on",cancelSubscription:"Cancel Subscription",nameShownOnInvoices:"Name shown on invoices",placeholderPriceZero:"0.00",trialPeriod:"Trial Period",labelFreeQuantity:"Free Quantity",invoiceNotes:"Invoice Notes",invoiceName:"Invoice Name",placeholderAddInvoiceName:"Add invoice name",appendedToInvoiceLineItem:"Appended to invoice line item",addInvoiceNotes:"Add invoice notes",checkmark:"✓",yourCompany:"Your Company",thankYouForYourBusiness:"Thank you for your business.",onReceipt:"On receipt",net:"Net ",newSuffix:"—NEW",invoiceNumber:"Invoice #",poNumberLabel:"PO #",logoAlt:"Logo",taxIdLabel:"Tax ID: ",billedTo:"Billed To",amount2:"Amount (",paymentLinkNoItemizedInvoice:"Payment link — no itemized invoice",qtyLabel:"Qty: ",subtotal:"Subtotal",amountDue:"Amount Due (",signatureAlt:"Signature",currencySymbolEur:"€",currencySymbolGbp:"£",currencySymbolInr:"₹",createCoupon:"Create Coupon",couponDetails:"Coupon Details",couponId:"Coupon ID",couponCodeLabel:"Coupon Code",applyOn:"Apply On",discountType:"Discount Type",maxRedemptions:"Max Redemptions",validFrom:"Valid From",validTill:"Valid Till",dueOnReceipt:"Due on receipt",createInvoice:"Create Invoice",customerDetails:"Customer Details",billingFrequency:"Billing Frequency",openCustomerInNewTab:"Open customer in new tab",openSubscriptionInNewTab:"Open subscription in new tab",openInvoiceInNewTab:"Open invoice in new tab",allocated:"Allocated",refunded:"Refunded",referenceInvoice:"Reference Invoice",subTotal:"Sub Total",noLineItems:"No line items.",creditNote:"Credit Note",preparing:"Preparing…",bankAccountAch:"Bank Account (ACH)",connectViaPlaid:"Connect via Plaid — lower fees, 2–4 day settlement",loading:"Loading…",creditDebitCard:"Credit / Debit Card",cardMethodDescription:"Visa, Mastercard, Amex — instant settlement",cardSetupFailed:"Card setup failed.",failedToSaveCard:"Failed to save card.",expiry:"Expiry",saveCard:"Save Card",newSubscription:"New Subscription",outstanding:"Outstanding",namePlaceholder:"James Johnson",firstNamePlaceholder:"James",lastNamePlaceholder:"Johnson",emailPlaceholder:"billing@acme.com",phonePlaceholder:"(555) 000-0000",companyPlaceholder:"Acme Corp",billingDetails:"Billing Details",vatNumber:"VAT Number",vatNumberPlaceholder:"US-EIN-12-3456789",autoCollectionDescription:"Enabling this automatically charges the customer each billing cycle.",autoCollection:"Auto Collection",netTerms:"Net Terms",selectNetTerm:"Select net term",preferredCurrency:"Preferred Currency",taxability:"Taxability",selectTaxability:"Select taxability",invoiceNotesHint:"Default note to appear on invoices",invoiceNotesPlaceholder:"Default notes to appear on invoices…",addStreetAddress:"Add street address",floorSuiteOffice:"Floor/Suite/Office",city:"City",addCity:"Add city",state:"State",addState:"Add state",addCountry:"Add country",zipCode:"ZIP Code",yourVendor:"Your vendor",createCustomerLabel:"Create Customer",of:" of ",free:" free",code:"Code",redemptions:"Redemptions",slashSeparator:" / ",duration:"Duration",daysPastDue:"Days Past Due",nextRetry:"Next Retry",attempts:"Attempts",line1:"Line 1",line2:"Line 2",recordPayment:"Record Payment",arrowSeparator:" → ",shippingAddress:"Shipping Address",poNumber:"PO Number",poNumber2:"PO number",refunds:"Refunds",gateway:"Gateway",referenceNumber:"Reference Number",subscriptionDetails:"Subscription Details",addShippingAddressButton:"Add shipping address",addBusinessAddressButton:"Add business address",addPoNumber:"Add PO number",shipLine1Placeholder:"123 Main St",shipLine2Placeholder:"Suite 200",cityPlaceholder:"San Francisco",statePlaceholder:"CA",createSubscriptionLabel:"Create Subscription",cardStatus:"Card Status",creditNumber:"Credit Number",dateIssued:"Date Issued",creditedAgainst:"Credited Against",totalCredits:"Total Credits",daySuffix:"d",trial:"Trial",amount:"Amount",all:"All"},invoicingAuditLog:{timeColumnHeader:"Time",actorColumnHeader:"Actor",detailColumnHeader:"Detail",noAuditEntriesMatchSearch:"No audit entries match your search.",noAuditActivityYet:"No audit activity yet.",searchActionTargetActorPlaceholder:"Search action, target, or actor"},invoicingCatalog:{addOnsNoun:"add-ons",oneTimeChargesNoun:"one-time charges",plansNoun:"plans",itemsNoun:"items",addItem:"Add Item",addAddOn:"Add Add-on",addOneTimeCharge:"Add One-time Charge",periodSingular:"1 ${label}",periodPlural:"${period} ${label}s",productColumnHeader:"Product",itemTypeColumnHeader:"Item Type",activePlansKpi:"Active Plans",activeProductsKpi:"Active Products",avgPlanPriceKpi:"Avg Plan Price",noMatchSearch:"No ${tabNoun} match your search.",noItemsYet:"No ${tabNoun} yet.",emptyStateDescription:"Bring in your historical product catalog data by importing your product catalog csv file",emptyStateTitle:"No Product Catalog Yet",searchPlaceholder:"Search ${tabNoun}"},invoicingCatalogDetail:{oneSpace:"1 ",activeSubFamilies:"Active Price points",archivedSubFamilies:"Archived Price points",lowestActiveSubFamilyPrice:"Lowest Sub-family Price",priceTiers:"Price / Tiers",catalogItemNotFound:"Catalog item not found.",itemNamePlaceholder:"Item name",externalNamePlaceholder:"External name",addDescriptionPlaceholder:"Add a description",lineItemDescription:"Line Item Description",itemFamily:"Item Family",restrictedPrefix:"Restricted (",itemsSuffix:" items)",subFamilies:"Price points",noSubFamilies:"No Price points.",archivedAt:"Archived At",archiveSubFamily:"Archive sub-family",archiveSubFamilyBlocked:"Cannot archive while subscriptions reference this sub-family.",duplicateSubFamily:"Duplicate sub-family",subscriptionsUseSubFamilyBanner:"{count} subscriptions use this sub-family. To change pricing, create a new sub-family."},invoicingCatalogForm:{typeOneTimeCharge:"One-time Charge",trialUnitDay:"Day",periodUnitWeek:"Week",pricingModelFlatFee:"Flat fee",pricingModelPerUnit:"Per unit",pricingModelTiered:"Tiered",pricingModelVolume:"Volume",pricingModelStairstep:"Stairstep",tierTypePerUnit:"Per Unit",tierTypeFlatFee:"Flat Fee",tierTypePackage:"Package",trialEndActivateSubscription:"Activate Subscription",prorationPartialTerm:"Partial Term",prorationFullTerm:"Full Term",applicabilityAll:"All add-ons & charges",applicabilityRestricted:"Restricted — Select applicable items",applicableItemsEmptyPlaceholder:"No add-ons or charges available",selectApplicableItemsPlaceholder:"Select applicable items",validationProductFamilyRequired:"Enter a Product Family name for this catalog item.",validationSubFamilyNameRequired:"Add at least one price point and enter a name for each one.",titleEditCatalogItem:"Edit Catalog Item",titleCreatePlan:"Create Plan",titleCreateOneTimeCharge:"Create One-time Charge",titleCreateAddon:"Create Add-on",sectionPlanAndProductFamilyDetails:"Plan and Product Family Details",productCodeExample:"Optional. Generated from Product Family when left blank.",placeholderAddProductCode:"Add product code",customerFacingName:"Customer facing name",labelProductFamily:"Product Family",placeholderAddProductFamily:"Add product family",labelPricePointName:"Price point name",placeholderAddSubFamilyName:"e.g. Growth Monthly",subFamilyCodeExample:"Optional. Generated from the sub-family name when left blank.",placeholderAddSubFamilyCode:"Add sub-family code",forInternalUseOnly:"For internal use only",subFamilyDetailsTitle:"Price Points",pricePointsRequiredHint:"Add at least one price point to create this plan. Add more for different billing frequencies (e.g. monthly, annual) or currencies.",addNewLink:"Add another price point",subFamilyNumberPrefix:"Price Point",removeSubFamilyConfirmation:"Remove this price point?",labelSubFamily:"Sub-family",placeholderAddSubFamily:"Add sub-family",labelAddTiers:"Add Tiers",tierColumnTo:"To (blank for unlimited)",tierColumnPackageSize:"Package size",infinity:"∞",removeTierX:"✕",addTierLink:"Add Tier",hintAddBillingPeriod:"Add billing period",placeholderTrialPeriodExample:"e.g. 14",labelTrialEndAction:"Trial End Action",hintBillingCyclesUnlimited:"Keep it blank for unlimited cycles",placeholderAddBillingCycles:"Add number of billing cycles",labelProrationType:"Proration Type",labelFlags:"Flags",selectFlagsPlaceholder:"Select flags",labelShowDescriptionInQuotes:"Show Description in Quotes",lineItemDescriptionHint:"Shown below the line-item name when invoice descriptions are enabled",subFamilyInvoiceNotesHint:"Shown in the invoice Notes section when this price point is billed",nameShownOnInvoiceLineItem:"Name shown on the invoice line item",sectionAccountingIntegration:"Accounting Integration",skuQboExample:"QBO Product code. Example: BASIC-M",labelSku:"SKU",placeholderAddSku:"Add SKU",placeholderAddAccountingCode:"Add accounting code",placeholderSelectIncomeAccount:"Select income account"},invoicingCouponForm:{enterCouponIdError:"Enter a Coupon ID.",enterCouponNameError:"Enter a name for this coupon.",editCouponTitle:"Edit Coupon",couponIdPlaceholder:"e.g. WELCOME20",namePlaceholder:"e.g. Welcome 20% Off",discountPercentagePlaceholder:"e.g. 20",discountPercentageLabel:"Discount Percentage",discountAmountLabel:"Discount Amount",freeQuantityPlaceholder:"e.g. 1",durationLimitsSectionTitle:"Duration & Limits",durationTypeLabel:"Duration Type",periodPlaceholder:"e.g. 3",periodUnitLabel:"Period Unit",maxRedemptionsPlaceholder:"Add max redemptions"},invoicingCreateInvoice:{selectPaymentTerm:"Select payment term",net7:"Net 7",net15:"Net 15",net30:"Net 30",net45:"Net 45",net60:"Net 60",selectBillingFrequency:"Select billing frequency",halfYearly:"Half-yearly",annually:"Annually",addAtLeastOneLineItem:"Add at least one line item with a description and unit price.",step1CustomerAndType:"Step 1: Customer and Type",step2InvoiceDetails:"Step 2: Invoice Details",step1Subtitle:"How would you like to create an invoice? Select a customer and choose the invoice type.",step2Subtitle:"Set dates, line items, and additional details.",invoiceJpg:"Invoice.jpg",livePreviewSuffix:" - Live Preview",paymentLink:"Payment link",paymentLinkCalloutText:"A payment link will be generated and sent to the customer — no itemized invoice document is required.",chooseExistingCustomerHint:"Choose an existing customer or create one first",searchOrTypeCustomerName:"Search or type a customer name",pleaseSelectCustomer:"Please select a customer to continue.",invoiceType:"Invoice Type",selectAnInvoiceType:"Select an invoice type",oneTimeInvoiceDescription:"Send a one-time invoice with a built-in payment link.",oneTimeInvoiceTitle:"One-time Invoice",recurringSeriesDescription:"Automatically generate recurring invoices on a set schedule.",recurringSeriesTitle:"Recurring Series",paymentLinkOnlyDescription:"Send only a payment link with a single amount — No itemized invoice.",paymentLinkOnlyTitle:"Payment Link Only",general:"General",setInvoiceDatesHint:"Set the invoice dates and additional details.",selectInvoiceDate:"Select invoice date",paymentTerms:"Payment Terms",usdUsDollar:"USD — US Dollar",soNumber:"SO Number",addSoNumber:"Add SO number",exampleSoNumber:"Example: SO-2026-001",exampleMemo:"Example: thank you for your business",unitPriceLabel:"Unit Price (",useDescriptionAs:"Use description as",addQuantity:"Add quantity",addPrice:"Add price",removeLine:"Remove line",addLine:"Add Line",unitPriceInDollars:"Unit price in dollars"},invoicingCreditDetail:{allocatedAt:"Allocated At",creditNoteNotFound:"Credit note not found.",creditNoteTitlePrefix:"Credit Note ",creditNoteDetails:"Credit Note Details",creditNoteId:"Credit Note ID",creditNoteNumber:"Credit Note Number",priceType:"Price Type",amounts:"Amounts",amountAvailable:"Amount Available",amountAllocated:"Amount Allocated",amountRefunded:"Amount Refunded",allocations:"Allocations",noAllocations:"No allocations.",linkedRefunds:"Linked Refunds"},invoicingCreditList:{noCreditNotesMatchSearch:"No credit notes match your search.",noCreditNotesYet:"No credit notes yet.",createCreditNoteButton:"Create Credit Note",emptyStateDescription:"Bring in your historical credit note data by importing your credit note csv file",emptyStateTitle:"No Credit Notes Yet",searchPlaceholder:"Search by customer or credit note"},invoicingCustomerDetail:{paymentMethodSavedTitle:"Payment method saved",paymentMethodSavedDescription:"The payment method has been added and is now the default. Existing payment methods are kept, and future invoices can be collected automatically.",addPaymentMethod:"Add Payment Method",addPaymentMethodSubtitle:"Securely add a bank account or card to collect invoice payments.",connectStripeNotice:"Connect a Stripe account in Settings › Payment Destination before adding a payment method.",securedByStripeAndPlaid:"Secured by Stripe & Plaid.",countryAustralia:"Australia",countryCanada:"Canada",countryGermany:"Germany",countryFrance:"France",countryUnitedKingdom:"United Kingdom",countryIndia:"India",countryJapan:"Japan",countrySingapore:"Singapore",countryUnitedStates:"United States",netTermsDueImmediately:"Due immediately",createPromotionalCreditsSubtitle:"Add promotional credits to this customer&apos;s balance. Credits are applied automatically on the next invoice before tax.",currentPromotionalCreditsBalance:"Current balance",promotionalCreditAmountRequired:"Enter a positive amount.",promotionalCreditDescriptionRequired:"Description is required.",promotionalCreditDescriptionPlaceholder:"e.g. Welcome bonus",promotionalCreditsAddedTitle:"Promotional credits added",promotionalCreditsAddedDescription:"The customer's promotional credit balance has been updated.",customerSince:"Customer Since",sincePrefix:"Since ",lifetimeValue:"Lifetime Value",promotionalCredits:"Promotional Credits",refundableCredits:"Refundable Credits",excessPayments:"Excess Payments",unbilledCharges:"Unbilled Charges",maskedDigitsPrefix:"•••• ",maskedDigitsMiddle:" •••• ",expires:"Expires",customerNotFound:"Customer not found.",taxable:"taxable",netDashPrefix:"Net-",streetAddress:"Street Address",balances:"Balances",connectStripeTooltip:"Connect a Stripe account in Settings › Payment Destination first",paymentMethods:"Payment Methods",connectStripeBefore:"Connect your Stripe account in",settingsPaymentDestination:"Settings › Payment Destination",connectStripeAfter:"to add payment methods.",invoicePaymentDetails:"Invoice payment details:",customerEmailPlaceholder:"customer@email.com",emailPaymentLinkTooltip:"Email the customer a link to add their payment details",collectAchHint:"We will email the customer to provide their ACH details.",paymentLinkSentTo:"Payment link sent to ",copyPaymentLink:"Copy payment link",sendPaymentLinkFailed:"Failed to send payment link.",default:"Default",noPaymentMethodOnFile:"No payment method on file",previewEmailHeading:"Preview email",previewThisIsWhat:"This is what ",theCustomer:"the customer",previewWillReceive:"will receive.",hi:"Hi",there:"there",previewEmailBody:"Please add a payment method so {company_name} can process your invoices. Click the button below to securely add a bank account or card.",previewFallbackLinkHint:"If the button does not work, copy and paste this link into your browser:",previewPlaceholderMagicUrl:"https://app.zeni.ai/collect-payment/example/preview-link",previewEmailFooter:"We hope you're enjoying your experience with us! As always, feel free to reach out to us. We'd love to hear from you.",previewEmailContactPrefix:"Questions? Contact us at ",sending:"Sending…",noSubscriptions:"No subscriptions.",recentInvoices:"Recent Invoices",noInvoices:"No invoices.",addNoteAboutCustomer:"Add a note about this customer"},invoicingCustomerForm:{validationEnterCompanyNameOrEmail:"Enter at least a company, name, or email for this customer.",customerDetailsDescription:"Primary contact for billing and invoices",customerTypeLabel:"Customer Type",billingAddressSectionDescription:"Enter your company's official billing address for invoicing.",addSecondaryInfoPlaceholder:"Add secondary info (Optional)",addressSecondaryHint:"Example: Address on your driver&apos;s license",addBillingAddressButton:"Add billing address",billingSettingsDescription:"Tax IDs, currency, and payment defaults",billingSettingsTitle:"Billing Settings",customerTypeResidential:"Residential",netTermImmediate:"Immediate",taxabilityExempt:"Exempt"},invoicingCustomerList:{noCustomersMatchSearch:"No customers match your search.",noCustomersYet:"No customers yet.",importCustomersDescription:"Bring in your historical customers by importing your customers csv file",noCustomerYetTitle:"No Customer Yet"},invoicingDataImport:{inSync:"In Sync",skippedSuffix:" Skipped",warningsSuffix:" Warnings",newImport:"New Import",chargebeeImportFailed:"Chargebee import failed",chargebeeImportInProgress:"Chargebee import in progress",csvImportFailed:"CSV import failed",csvImportInProgress:"CSV import in progress",viewDetails:"View details",records:"records",bulletSeparator:" • ",lastImportReversible:"Last import is reversible",recordsBulletSeparator:"records • ",rollback:"Rollback",importedModules:"Imported Modules",module:"Module",recordsColumn:"Records",lastImported:"Last Imported",loadingImportStatus:"Loading import status…",noImportedRecords:"No imported records yet. Start a new import to populate this table.",templateProductCatalogPlans:"Product Catalog (Plans)",templateCouponsAndDiscounts:"Coupons & Discounts",chargebeeStepSettingsImportExport:"Chargebee → Settings → Import & Export → Export",chargebeeStepDetailModulesList:"Plans, add-ons, one-time charges, customers, subscriptions, invoices, credit notes",chargebeeStepDetailPickAllTime:'Pick "All time" range. CSV format. Default columns are fine.',chargebeeStepExportModule:"Export the module you want",chargebeeStepDropCsvFiles:"Drop the .CSV files above",capsuleIssuesSuffix:" Issues",capsuleReady:"Ready",scanningCaptionCsv:"Larger exports can take a few minutes — you can leave this page, it keeps running.",scanningCaptionChargebee:"This can take a moment for larger accounts — you can leave this page, it keeps running.",scanningLabelCsv:"Reading your uploaded files…",defaultImportErrorMessage:"Something went wrong during import.",backToDataImport:"Back to Data Import",migrateHeading:"Migrate from Chargebee → Zeni",migrateSubtitle:"Connect Chargebee or drop your CSV exports — we’ll handle the rest.",connectWithChargebee:"Connect with Chargebee",importFromChargebee:"Import from Chargebee",connectedToChargebee:"Connected to {site}",chargebeeConnectedLabel:"Connected to Chargebee",buttonFetchFromChargebee:"Fetch from Chargebee",chargebeeNotConnectedMessage:"Connect Chargebee in Invoicing Settings → Integrations to fetch data automatically.",buttonGoToIntegrations:"Connect Chargebee in Settings",connectPullEverything:"Pull everything automatically — fully linked, no CSV juggling.",connectingToChargebee:"Connecting to Chargebee…",fieldLabelChargebeeSite:"Chargebee site",sitePlaceholderAcme:"acme",fieldHintSiteSubdomain:`The subdomain in your Chargebee URL — e.g. acme in
102
+ `,redirectToQBO:"Redirect to QBO",mergeInQBOSteppedContent:{step1:{navigateTo:"Navigate to ",andSelectThe:" and Select the ",tab:" tab."},step2:{lineText:"Find and open the vendor profile you want to keep. Then Select ",andCopy:" and copy",display:"Display"},step3:{goBackTo:"Go back to the ",lineText:" tab. Find and open the vendor you don't want to keep. Then select "},step4:{lineText:"Change the display name to make it identical to the vendor you're merging it with."},step5:{andThen:" and then "}},mergeInNetSuiteSteppedContent:{step1:{goTo:"Go to ",lists:"Lists",then:" then ",relationships:"Relationships",then2:" then "},step2:{click:"Click ",next:" next to the ",sourceInfo:" that will be the source "},step3:{onThe:"On the ",page:" page, under ",click:", click "},step4:{onThe:"On the ",mergeVendor:"Merge Vendor",endText:" page, select the target vendor into which you want to merge this source vendor record. "},step5:{text:" Both the source and target vendor records must have the same primary subsidiary to merge the records. "},step6:{click:"Click ",text:" . At the prompt to confirm the action, click "},step7:{onThe:"On the ",duplicateResolution:"Duplicate Resolution Status",text:" page, the merge is queued for process. "},step8:{click:"Click ",processText:" to process the merge or the ",haltText:" link to halt the merge process. "},step9:{the:"The ",text:" column provides the results of the merge. "},step10:{text:"The un-categorized and mis-categorized transactions for the deleted vendor will be migrated within 24 hours after the vendor merge is completed. "}}},rowMoreActions:{markAsEmployee:"Mark as Employee",markAsLocalContractor:"Mark as Local Contractor"},tooltip:{mergeInQBOText:"Updated vendor name already exists in QBO and needs to be merged.",mergeInNetSuiteText:"Updated vendor name already exists in NetSuite and needs to be merged."},overlay:{title:'Add Website for "_vendor_name_"'}}},commentsAndNotifications:{notifications:{texts:{markAsRead:"Mark as Read",markAllAsRead:"Mark all as read"},actionStrings:{comments:{mention:"mentioned you in comment",reply:"replied to your comment",reaction:"reacted to your message",toMessage:"to your message",assign:"assigned you to a task",unassign:"unassigned you from a task",newThread:"created a new thread",resolveComment:"resolved a comment",unResolveComment:"reopened a comment",newActivity:"performed new activity on your message",newRepliesAdded:"replied to a comment",newCommentAdded:"added a comment"},notifications:{create:"created this task.",assign:"assigned this task to you.",overdue:"Due date was __date__",due:"Currently __task_status__ and is due tomorrow.",dueTomorrow:"This task is due tomorrow.",statusUpdate:"Status updated from",activities:"made updates to this task.",delete:"deleted this task.",archive:"archived this task.",newActivity:"performed new activity on this task."}},strings:{notificationSelected:"Notification selected",notificationsSelected:"Notifications selected",newMessage:"You have received a new message"},message:{noNotificationsMessage:"No notifications at this time. You're all caught up."}}},featurePreview:{scheduleDemo:"Schedule a Demo",popups:{home:{title:"Unleash the Power of AI Bookkeeping",text:"Update your books daily, access real-time insights, and receive personalized support from a dedicated team of experts — all on a single platform"},ai_automation:{title:"Unleash the Power of AI Bookkeeping",text:"Update your books daily, access real-time insights, and receive personalized support from a dedicated team of experts — all on a single platform"},reports:{title:"Investor Ready Reports",text:"Generate beautiful PDF reports to forward to investors, bankers, or to build into your board deck. Alternatively, download or share view-only access to your dashboard."},forecast:{title:"Forecasting and Planning",text:"Don't settle for Excel. Accurately forecast your bookings, revenues, workforce, expenses and cash flows by comparing Actuals vs Budgets from a central dashboard."},bills:{title:"The fastest way to pay vendors",text:"Pay domestic and international vendors quickly and automate your accounts payable process end-to-end directly from the dashboard – at no additional cost. "},reimbursements:{title:"Reimburse employees at lightning speed",text:"Embrace the efficiency and future of AI-driven expense reimbursements while boosting employee satisfaction."},vendors:{title:"Stop wondering how you’re spending money",text:"Daily, crystal-clear insights into your Operating Expenses give you an instant view into your cash burn and expenses, including Gross Burn and Net Burn trends."},people:{title:"",text:""},rewards:{title:"",text:""},cards:{title:"",text:""},checking:{title:"Business banking turning transactions into triumphs",text:"Modern checking accounts with a guaranteed yield earned from your first dollar and no hidden fees. Leverage AI to auto categorize your transactions effortlessly."},treasury:{title:"",text:""},accounting:{title:"",text:""},approval_rules:{title:"",text:""},bank_connections:{title:"",text:""},business_verification:{title:"",text:""},company_details:{title:"",text:""},integrations:{title:"",text:""},my_profile:{title:"",text:""},my_bank_connections:{title:"",text:""},notifications:{title:"",text:""},billing:{title:"",text:""},performance:{title:"",text:""},ai_cfo:{title:"",text:""}}},collaboration:{commentOnField:"comment on field",threads:{placeholder:{replyAComment:"Reply to comment...",addANewComment:"Add a new comment..."},tooltip:{resolveComment:"Resolve comment",unResolveComment:"Re-open comment"}}},expenseAutomation:{common:{numbers:{maximumCount:999}},overview:{confidenceScoreDescription:"Higher score means you're close to finish.",auditScoreDescription:"Streamline your month-end close with Zeni AI.",monthEndCloseProgress:"Month-end close progress",targetClose:"Target Close:",daysToClose:"Days to Close:",financialClose:"Financial Close",reviewReport:"Review month-end close report.",insightsCtaMessage:"Improve your confidence score to _minimum_score_ or above to unlock month-end insights",createInsights:"Create _month_name_ Insights",monthEndCloseTrend:"Performance Trend",monthEndCloseTrendNoData:"No data yet!",monthEndCloseTrendNoDataDescription:"Initiate your first month-end close to track performance.",confidenceScoreTooltip:"Indicates overall progress of all month-end close tasks. Higher score means you're closer to finishing the close.",byHumans:"by Humans",progress:"Progress",headerByAI:"By AI",statistics:{accountsAutoReconciled:"Accounts auto-reconciled",transactionsAutoCategorized:"Transactions auto-categorized",humanEfficiency:"Tasks completed by AI Agents",fasterReviews:"Faster reviews",vendorsWithFluctuations:"Vendors with fluctuations"}},confirmationDescription:"Are you sure you want to exit without saving?",dashboardCard:{month_end_insights:"Month end insights"},transactions:{header:{memoReceipt:"Memo | Receipt",receipt:"Receipt",toFrom:"To/From"},searchPlaceholder:"Search by vendor, amount, date, or memo",tabs:{autoCategorized:"Auto-categorized"},transactionGroupFilter:{transactionGroupLabel:"Transaction Group"},subTitles:{review:{item1:{pre:"",bold:"AI Bookkeeper",post:"has recommendations for Payees, Categories, Classes."},item2:{pre:"",bold:"",prefixIconName:"",post:"Review them, select, save your changes, and AI Bookkeeper will learn from your updates."}},autoCategorized:{item1:{pre:"",post:"have auto-categorized the below #number transactions for this month."},item2:{pre:"",bold:"",prefixIconName:"",post:"Feel free to review and make the necessary changes. AI Agents will learn from your updates."}}},allDoneText:{title:"All set!",subTitle:"Task cleared, ready to soar!"},emptyStates:{noSearchResults:{title:"No matching transactions",subTitle:"Try adjusting your search or filters."}},filters:{categoryLabels:{paymentAccountName:"Payment Account Name",paymentAccountType:"Payment Account Type"},amountOperators:{isEqual:"Is equal",inBetween:"In between",placeholder:"Select operator"},filterOptions:{transactionAmountOptions:[{label:"< 100",value:"-10000000<->100"},{label:"100 to 500",value:"100<->500"},{label:"500 to 1K",value:"500<->1000"},{label:"1K to 5K",value:"1000<->5000"},{label:"5K to 10K",value:"5000<->10000"},{label:"10K to 20K",value:"10000<->20000"},{label:"> 20K",value:"20000<->10000000"}],transactionTypeOptions:[{label:"Auto-categorized",value:"autoCategorized"},{label:"Review",value:"review"},{label:"Categorized",value:"categorized"},{label:"Uncategorized",value:"uncategorized"}]},selectPaymentAccountNamePlaceholder:"Select Payment Account Name",searchForPayeePlaceholder:"Search for Payee"},addProject:"Add Project",transactionActivityLog:{noLogsFound:"No Activity logs found",transactionIngested:"Transaction ingested.",aiBookkeeperAdded:"AI Bookkeeper added the",userUpdatedDetails:"Updated the transaction details.",linePrefix:"Line #"},transferDrawer:{debitAccountLabel:"Debit Account:",creditAccountLabel:"Credit Account:",keepExpense:"Keep {transactionType}",convert:"Convert",convertToTransfer:"Convert {transactionType} to Transfer",convertToCreditCard:"Convert {transactionType} to Credit Card Payment",transferDrawerSubtitle:"The current {transactionType} will be deleted and replaced with a transfer entry",creditCardPaymentDrawerSubtitle:"The current {transactionType} will be deleted and replaced with a credit card payment entry",groupHeadingAllAccounts:"All Accounts",noEligibleAccountsDropdownLine2:"Connect an account or keep this as an expense."},transactionTypeDropdown:{multilineNotEligibleTooltip:"Multiline transactions are not eligible for transfer entry."}},jeSchedules:{subTitles:{item1:{pre:"",bold:"",prefixIconName:"",post:"Please review the following journal entries below and correct or post them."},item2:{pre:"",post:"will learn from your update, automate it, and boost accuracy and efficiency to simplify every step."}},allDoneText:{title:"High five!",subTitle:"All schedules reviewed!"},emptyState:{pendingReview:{title:"High five!",subTitle:"All schedules reviewed!"},ongoing:{title:"High five!",subTitle:"No ongoing schedules"},completed:{title:"High five!",subTitle:"No completed schedules"}},scheduleHeaders:{period:"Amortization Period",balance:"Running balance (as of today)",months:"Remaining Months",amountForMonth:"Amount(for this month)",entry:"Entry",monthlyAmount:"Monthly Amount",reversesOn:"Reverses on",reversesOnMatch:"Reverses on match",scheduledAndPosted:"Scheduled + Posted",startMonth:"Start Month",amount:"Amount",memo:"Memo"},scheduleCot:{recommendedMethod:"Recommended method",monthLifeSuffix:"-mo life",methodByType:{prepaid_expenses:"Straight-line amortization",fixed_assets:"Straight-line depreciation",accrued_expenses:"Accrual",deferred_revenue:"Straight-line recognition"},credit:"Credit",debit:"Debit"},scheduleTypes:{prepaid_expenses:"Prepaid",fixed_assets:"Fixed Asset",accrued_expenses:"Accrual",deferred_revenue:"Deferred Revenue"},oneTimeAccrualType:"One Time Accrual",lifecycleLabel:{prepaid_expenses:"Prepaid Schedule",fixed_assets:"Fixed Asset Schedule",accrued_expenses:"Accrued Schedule",deferred_revenue:"Deferred Revenue Schedule"},tooltipText:{missingVendor:'The vendor "_deleted_vendor_" was deleted from the Journal Entry. Please add the correct vendor and try posting again.',missingCategory:'The category "_deleted_category_" was deleted from the Journal Entry. Please add the correct category and try posting again.',missingDepCategory:'The category "_deleted_dep_category_" was deleted from the Journal Entry. Please add the correct accumulated depreciation category and try posting again.'},resolveErrors:{heading:"This entry could not be posted",vendor_deleted:'Vendor "_deleted_field_" was deleted. Update it in Review.',debit_category_deleted:'Category "_deleted_field_" was deleted. Update it in Review.',credit_category_deleted:'Accumulated depreciation category "_deleted_field_" was deleted. Update it in Review.',qbo_error:"QuickBooks rejected this entry. Try posting again.",qbo_authorization_error:"The QuickBooks connection expired. Reconnect it, then post again.",qbo_invalid_company_status_error:"The QuickBooks subscription is inactive. Resolve it, then post again.",qbo_book_close_date_error:"The books are closed for this date. Reopen the period or move the date."},addDepCategory:"Add Depreciation Category",aiBotEmail:"ai@zeni.ai",botEmail:"bot@zeni.ai",aiAccountant:"AI Accountant ",zeniGPTText:"recommends a new JE schedule. Please review and set it up!",kpiStrip:{aiAccountant:"AI Accountant Created",manual:"Manual Created",schedules:"schedules",total:"Total this close",typeLabels:{prepaid_expenses:"Prepaid",accrued_expenses:"Accrual",deferred_revenue:"Revenue Accrual"}},typeFilter:{prepaid_expenses:"Prepaid",accrued_expenses:"Accrual",all:"All"},groups:{createdInsight:"Auto-posted or manually recorded",pendingReviewInsight:"Input requested before posting"},tabs:{schedules:"Review Schedules",existingSchedules:"Existing Schedules"},newSchedule:{title:"New Schedule",oneTimeAccrualTitle:"New one-time accrual",oneTimeAccrualSubtitle:"Posts directly to the books",recurringTitle:"New recurring schedule",recurringSubtitle:"Posts monthly entries starting {month}",reviewSchedule:"Review schedule",scheduleDetails:{title:"Schedule Details",oneTimeAccrual:"One time accrual",oneTimeAccrualDescription:"Single JE this month",recurringSchedule:"Recurring Schedule"},scheduleType:{title:"Schedule type",subtitle:"What is this schedule spreading?",fixedAssetDescription:"Depreciate a purchase",prepaid:"Prepaid",prepaidDescription:"Amortize a prepayment",accrual:"Accrual",accrualDescription:"Recurring estimate",deferredRevenueDescription:"Recognize over time",deferredRevenue:"Deferred Revenue",fixedAsset:"Fixed Asset"},baseTransaction:{title:"Base Transaction",subtitleFixedAsset:"The purchase being capitalized",subtitlePrepaid:"The prepayment being spread",searchPlaceholder:"Search by vendor, amount, date and memo",noResults:"Nothing matched your search... Try again.",aiAccountantInsight:"AI Accountant spreads {amount} over {months} months ≈ {amountPerMonth}/mo."},fields:{numberOfMonths:"No. of Month",amountPerMonth:"Amount Per Month",sourceOrTrigger:"Source / trigger",addVendor:"Add vendor",selectStartMonth:"Select start month",selectPostingDate:"Select posting date",selectMonths:"Select months",addAccumulatedDepreciationCategory:"Add accumulated depreciation category",addAssetId:"Add asset ID",addSourceOrTrigger:"Add Source / trigger",selectServiceMonth:"Select service month",accrualCategory:"Accrual Category",addAccrualCategory:"Add accrual category",memoPrefix:"Accrue",estimatedMonthlyAmount:"Estimated Monthly Amount",startingBalance:"Starting Balance",addStartingBalance:"Add balance",accumulatedDepreciationCategory:"Accumulated Depreciation Category",serviceMonth:"Service month",postingDate:"Posting Date",addCategory:"Add category",startMonth:"Start Month",addAmount:"Add amount",category:"Category",addClass:"Add class",assetId:"Asset ID",addMemo:"Add memo",vendor:"Vendor",amount:"Amount",class:"Class",memo:"Memo"},oneTimeAccrual:{postAccrual:"Post accrual",reverseNextMonth:"Reverse next month",reverseNextMonthOff:"Off — accrual stays open until a matching bill arrives from this vendor and clears it.",reverseNextMonthOn:"A reversing JE will post on {date} automatically — use this when no matching bill is expected (e.g., estimated bonus, true-up).",reverseNextMonthOnNoServiceMonth:"A reversing JE will post on the 1st of the month after the service month automatically — use this when no matching bill is expected (e.g., estimated bonus, true-up)."},journalEntryPreview:{title:"Journal Entry Preview",debit:"DR",credit:"CR",autoReversesOnBillMatch:"Auto-reverses when a matching bill arrives from {vendor}.",autoReversesOnDate:"Auto-reverses on {date}."},schedulePreview:{title:"Schedule preview",posts:"Posts",postsValue:"{amount} × {months} months",window:"Window",windowValue:"{start} → {end}",totalCommitted:"Total committed",eachEntry:"Each entry",eachEntryValue:"DR {debit} · CR {credit}",autoPostSuffix:" will auto-post each month until the schedule completes.",autoPostPrefix:"AI Accountant",class:"Class"},documentAutofillUnavailable:{title:"Document autofill isn't available here",descriptionByType:{fixed_assets:"Fixed asset schedules spread a transaction that's already on the books, so they start from the posted purchase — not from a document.",prepaid_expenses:"Prepaid schedules spread a transaction that's already on the books, so they start from the posted purchase — not from a document.",accrued_expenses:"Accrual schedules post a recurring estimate, so they start from the transaction you're basing the estimate on — not from a document."},searchTransactionsButton:"Search transactions"},newButtonLabel:"New"},accrualDetail:{accrualTypeMonthly:"Monthly Accrual",estimatedBy:"Estimated by",editAmount:"Edit amount",statusLabels:{draft:"Pending Review",posting:"Posting",posted:"Posted",posting_blocked:"Posting Blocked",reversing:"Reversing",reversed:"Reversed",reverted:"Reverted"},details:{title:"Accrual Details",servicePeriod:"Service Period",servicePeriodValue:"{month} Service",accrualType:"Accrual Type",liabilityAccount:"Liability Account",autoReversal:"Auto Reversal",reverseNextMonthOption:"Reverse Next Month",onInvoiceMatch:"On Invoice Match",onDate:"On {date}",monthsOfHistoryUsed:"Months of History Used",monthsValue:"{months} months",expenseCategory:"Expense Category",postingDate:"Posting Date",department:"Department",memo:"Memo"},calculationBreakdown:{title:"Calculation Breakdown",calculationMethod:"Calculation Method",weight:"Weight",weightedValue:"Weighted Value",recommendedAccrual:"Recommended Accrual",invoiceAmount:"Invoice Amount",month:"Month"},journalEntryPreview:{title:"Journal Entry Preview"},billingPattern:{title:"Billing Pattern",avgAmount:"Avg Amount",lastBill:"Last Bill",consistency:"Consistency",billingLag:"Billing lag",monthsTracked:"Months Tracked",percentValue:"{percent}%",serviceMonthMarker:"This service month",noHistoryTitle:"No vendor billing history",noHistoryDescription:"This accrual was entered manually, so there is no vendor profile behind it to chart. The AI Accountant builds one only for the vendors it accrues automatically.",daysValue:"{days} days"},actions:{skipThisMonth:"Skip This Month",approveAndPost:"Approve & Post"},statusStates:{reversed:"Entry reversed"},feedback:{title:"Why skip this accrual?",subtitle:"Tell us why {amount} shouldn't be accrued for {vendor} this month — AI Accountant learns from this.",reasons:{no_activity:"No activity this month",paused:"Vendor paused / off-boarded",too_small:"Not material",need_invoice:"Wait for actual invoice",other_ignore:"Something else"},revert:{title:"Why revert this accrual?",subtitle:"This deletes the {amount} journal entry for {vendor} from the books. AI Accountant learns from the reason.",submit:"Revert Accrual",reasons:{amount_off:"Amount was wrong",wrong_period:"Wrong period",not_accrual:"Shouldn't be accrued",duplicate:"Duplicate",other_revert:"Something else"}},ignoreSchedule:{title:"Why ignore this schedule?",subtitle:"Tell us why this schedule isn't needed — AI Accountant learns from this.",submit:"Ignore Schedule",reasons:{not_needed:"Not needed",wrong_account:"Wrong account",duplicate:"Duplicate",already_handled:"Already handled",other_ignore:"Something else"}},revertSchedule:{title:"Why revert this schedule?",subtitle:"This deletes the posted journal entry from the books and removes the schedule. AI Accountant learns from the reason.",submit:"Revert Schedule",reasons:{amount_off:"Amount was wrong",wrong_period:"Wrong period",duplicate:"Duplicate",created_by_mistake:"Created by mistake",other_revert:"Something else"}},noteLabel:"Add a note (optional)",notePlaceholder:"Anything else we should know?",submit:"Submit Feedback"}},existingSchedules:{downloadCompletedSchedules:"Download Completed Schedules",downloadRange:{title:"Download Completed Schedules",subtitle:"Completed schedules are matched on when they started, not when they finished, so search from before the schedules you are looking for began.",fromLabel:"Started on or after",fromPlaceholder:"Select a month",throughToday:"Includes everything up to today, {today}"},kpi:{ongoingSchedules:"Ongoing schedules",monthlyPosting:"Monthly posting",remainingBalance:"Remaining Balance",toDepreciateAmortize:"to depreciate / amortize",posted:"Posted",typeAbbreviations:{fixed_assets:"Fixed",prepaid_expenses:"Prepaid",deferred_revenue:"Deferred rev",accrued_expenses:"Accrued"}}},searchPlaceholder:"Search for schedules",addCategory:"Add Category"},missingReceipts:{searchPlaceholder:"Search for transactions",subTitles:{pre:"",preLink:"",post:"will do the best to automatically match receipts with the correct transactions. Forward all receipts to {receiptsEmail}",postLink:"{receiptsEmail}"},allDoneText:{subTitle:"All receipts uploaded, like magic!"}},fluxAnalysis:{searchPlaceholder:"Search for vendors",subTitles:{item1:{pre:"",bold:"",prefixIconName:"",post:"Review vendor account transactions for emerging trends and adjust categories and classes to resolve anomalies."},item2:{pre:"Feel free to review and make the necessary changes",post:"will learn from it."}},sectionTitle:{generalExpense:"General Expenses"},reviewedBy:"Reviewed by",remarksBy:"Remarks by",viewVendorDetails:"View Vendor Details",emptyPageTexts:{youDidIt:"You did it!",allReviewed:"All flux reviewed!"},stepsBanner:{collapsedTitle:"Quick steps for Flux Analysis",step1:{title:"Review Variances",description:"Compare vendor-wise spend across months and drill down into categories and classes."},step2:{descriptionPrefix:"Once variances are confirmed,",descriptionSuffix:"select vendors and mark as reviewed."}}},accountRecon:{reconciliation:{headers:{section:{assets:{title:"Assets",subTitle:"Cash and Equivalents"},liabilities:{title:"Liabilities",subTitle:"Credit Cards"}},bankBalance:"Bank Balance",openingBalance:"Opening Balance",closingBalance:"Closing Balance",clearedBalance:"Cleared Balance",matchProgress:"AI Progress",lastReconciled:"Last Reconciled",excludedAccountTitle:"Excluded Accounts"},matchProgressLegend:{byHuman:"by human"},progressBar:{byHumans:"by humans"},stepsBanner:{collapsedTitle:"Quick steps for Bank Reconciliation",step1:{title:"Connect Bank Account",line1AfterIcon:"to add a bank account or",line2:"upload a bank statement."},step2:{title:"Compare Balance",body:'Compare bank statement and cleared balances. Select "Review" if they differ.'},step3:{eyebrow:"Step 3",title:"Review & Update Transactions",body:"Approve AI suggestions to categorize or match entries, and complete any missing fields."},step4:{eyebrow:"Step 4",title:"Reconcile the account",body:'Ensure balances match, then select "Reconcile" to complete reconciliation.'}},menu:{statement:"Account Statement"},statsCards:{autoMatched:"AI Accountant Auto-matched",needsReview:"Needs Review",accountsDone:"Accounts Reconciled",timeSavedByAi:"Time saved by AI Accountant",ofTotalTxn:"of _total_ transactions",acrossAccounts:"across _count_ accounts",ofTotalAccounts:"of _total_ Accounts",hrsSuffix:"hrs"},connectAccountsBanner:{leadNeedConnectedSuffix:"need to be connected.",body:"Connect a data source to start reconciliation. Takes less than 2 min per account.",connectAccounts:"Connect Accounts",dismissAriaLabel:"Dismiss"},status:{reconciled:"Reconciled",reconciledBy:"Reconciled by",reconciledVia:"Reconciled via",reconcileViaQBO:"Reconcile via QBO",balanceSyncInProgress:"Balance sync",statementSyncInProgress:"Statement sync",autoReconInProgress:"Auto-reconciliation",statementParseError:"Statement parse",statementValidationFailed:"Statement validation",statementProcessingFailed:"Statement processing",failed:"failed",isInProgress:"is in progress",booksClosed:"Books closed",reopenToReconcile:"Reopen to reconcile",booksClosedTooltip:"Refresh after reopening the books"},tooltips:{reconciledByLabel:"Reconciled by:",lastUpdatedLabel:"Last updated:",applyingChanges:"Applying changes...",failed:"Could not apply changes",inProgress:"Connection is in progress. Please check back in a few minutes.",balancesNotFound:"Unable to fetch balances for this account.",bankBalanceNotFound:"Unable to fetch bank balance for this account.",clearedBalanceNotFound:"Unable to fetch cleared balance for this account.",reconInProgress:"Reconciliation is in progress. Please check back in a few minutes.",excludeAccount:{title:"Exclude Account"}},drawer:{uploadDropZoneSuffix:"your statement",uploadDropZoneSupportingText:{single_account:"Upload a statement for a single account.",multi_account:"Upload a statement containing multiple accounts."},statementAccountScopeOptions:{single_account:"Single Account",multi_account:"Multiple Accounts"},labels:{lastUpdated:"Last Updated:",lastSync:"Last Sync:"},values:{bank:"Bank",connecting:"Connecting",uploaded:"Uploaded",statementParsing:"Statement sync is in progress"},deleteConfirmation:{heading:"Delete this file?",description:"Deleting the file will affect your reviewed transactions or reconciliation progress."},validationFailed:{heading:"Validation Failed"},fileValidationFailed:{heading:"File Validation failed",description:"We couldn't process your statement. Please check the file and try uploading again."},dateRangeConflict:{alreadyReconciled:{heading:"Date Range Already Reconciled",description:"The statement period overlaps with a period that has already been reconciled"},gap:{heading:"Gap in Reconciliation Period",description:"The statement must start the day after the last reconciled period",expectedStartDate:e=>`Please upload a statement starting ${e}`},lastReconciled:e=>`Last Reconciled: ${e}`,lastReconciledBy:(e,o)=>`Last Reconciled: ${e} by ${o}`},error:{validationFailed:"Validation failed",parsingFailed:"Parsing failed"},excludeFromReconciliation:"Exclude from Reconciliation",excludeConfirmation:{heading:e=>`Exclude "${e}" from Reconciliation?`,description:"This account will be removed from your reconciliation workflow and progress report. Existing data will not be affected, and you can include the account again at any time."},includeForReconciliation:"Include account for Reconciliation",includeConfirmation:{heading:e=>`Include "${e}" for Reconciliation?`,description:"This account will be added back to your reconciliation workflow and progress report."}}},statementProcessing:{steps:["Uploaded file","Reading document structure","Identifying statement type","Extracting account details","Determining opening & closing balances","Verifying statement details","Gathering transactions","Finalizing Reconciliation"],headerTitle:"AI Accountant Reading Statement",stepSubtitles:["Setting up statement analysis and validation","Recognizing transaction layouts and summary sections","Matching format against known bank statement templates","Pulling account number, entity name, and statement period","Locating balance summary from the checking summary table","Cross-checking deposit and withdrawal totals for accuracy","Reading transactions. Extracting dates, amounts, and descriptions","Matching transactions to your ledger and preparing the review"],stepProgressLabel:(e,o)=>`Step ${e} of ${o} completed`,timeRemainingMinutes:e=>`${e} min left`,timeRemainingSeconds:e=>`${e} sec left`,takingLongerThanExpected:"Taking longer than expected...",actionNeeded:"Action needed",continueInBackground:"Continue in Background",accountMapping:{headerSubtitle:e=>`Almost done — assign each of the ${e} cards to a ledger account to finish.`,headerSubtitleAccounts:e=>`Almost done — assign each of the ${e} accounts to a ledger account to finish.`,banner:(e,o)=>`I've extracted all charges from this combined ${e} statement — it covers ${o} cards. Assign each card to a ledger account to file everything. You won't need to upload this file again.`,bannerAccounts:(e,o)=>`I've extracted all charges from this combined ${e} statement — it covers ${o} accounts. Assign each account to a ledger account to file everything. You won't need to upload this file again.`,aiMatched:"AI matched",ledgerAccountLabel:"Ledger account",ledgerAccountPlaceholder:"Select ledger account",overrideWarning:"This account has an ongoing reconciliation. Selecting it will override the existing work.",transactionSummary:(e,o)=>`${e} transactions • ${o} in new charges`,deleteRowAriaLabel:"Remove card mapping",deleteConfirmation:{heading:"Remove this card?",headingAccount:"Remove this account?",description:"The transactions from this card will be excluded from this combined statement, you can still map the remaining cards.",descriptionAccount:"The transactions from this account will be excluded from this combined statement, you can still map the remaining accounts."}},cancelConfirmation:{heading:"Cancel statement parsing?",description:"Your uploaded statement is still being parsed. If you cancel now, the uploaded file and all processing progress will be lost.",continueParsing:"Continue Parsing"}},statementParseInfo:{statementPeriodAndBalances:"Statement period & balances",statementValuesFootnote:"These values are copied directly from the statement.",from:"From:",to:"To:",credits:"Deposits",calculatedValues:"Calculated values",calculatedValuesFootnote:"These values are calculated from transactions in the statement.",extractedTransactions:"Extracted transactions",addTransaction:"Add transaction",totalsDoNotAddUp:"The totals do not add up.",reparseStatement:"Re-parse statement",retryParsing:"Retry Parsing",cancelConfirmation:{heading:"Are you sure?",description:"You have unsaved changes. If you cancel now, your changes will be lost"},reparseConfirmation:{heading:"Restart parsing?",description:"Re-parsing reads the statement again from scratch and replaces your current review. Any edits you've made will be lost.",reparse:"Re-parse"},closingBalanceMismatchConfirmation:{heading:"Closing balance doesn’t match",descriptionBeforeStatementAmount:"The closing balance on your statement is ",descriptionBetweenAmounts:", but the transactions you’ve added total ",reviewHint:"Please review the transactions and add, remove, or edit any that are incorrect.",reviewTransactions:"Review transactions",continueAnyway:"Continue anyway",descriptionAfterTransactionsAmount:"."},aiSummary:{accountRecognized:"Account recognized",transactionsExtracted:"Transactions extracted",exceptionsDetected:"Exceptions detected",fieldsCaptured:"Fields captured",validated:"Validated",openingDate:"Opening date"}},tabs:{},review:{allDoneText:{title:"High five!",subTitle:"All transactions reviewed!"},header:{match:"Record or Match",amount:"Amount",memo:"Memo"},transactionDirection:{credit:"Credit",debit:"Debit"},matchesCount:"__count__ Matches",matchedFoundCount:"__count__ Matches Found",matchesFoundFullInfo:"for this bank transaction within the last 90 days",bankDetail:"Bank Detail",creditCardDetail:"Credit Card Detail",formLabels:{match:"Match",categorize:"Categorize",selectCard:"Select Card",allBankAccounts:"All bank accounts",allCreditCards:"All credit cards",addCategory:"Add Category",addClass:"Add Class",addMemo:"Add Memo"}},reconcile:{allDoneText:{title:"Ta-da!",subTitle:"No transactions found for reconciliation!"},header:{clearedDate:"Cleared Date",amount:"Amount",memo:"Memo"}},subTitles:{review:{item1:{pre:"",bold:"",prefixIconName:"",post:"Please review these transactions because the general ledger balance doesn't match the bank balance."},item2:{pre:"",post:"suggest updating these transactions to resolve the ledger discrepancies, which will help auto-adjust the variance."}},reconcile:{item1:{pre:"",post:"have reconciled pending transactions and saved 42% of your reconciliation time."},item2:{pre:"",prefixIconName:"",bold:"",post:"It's time to review for discrepancies and select all transactions to bring the variance to zero."}}},titles:{item1:{pre:"",post:"have reconciled your bank transactions and saved 38% of your reconciliation time."},item2:{pre:"",bold:"",prefixIconName:"",post:" It's time to check for discrepancies and review them if there's a difference."}}},recommendationFeedback:{title:"I will learn from it to improve recommendations.",yourSelection:"Your Selection",reasonPlaceholder:"Explain why this is the right choice for this transaction (required)",submitHintPrefix:"Press ",submitHintKey:"Enter/Return",submitHintSuffix:" to submit",dimensionLabels:{vendor:"Payee Recommendation",category:"Category Recommendation",class:"Class Recommendation"}}},aiCfo:{pageView:{scopePageTitle:"AI CFO Scope",titleTag:"BETA",hello:"Hello, ",helpText:"How can I help you today?",showMoreSuggestedQuestions:"Show __count__ more..."},questionTemplates:{sampleQuestion1:"Show me last month's Month-end insights",sampleQuestion2:"Show me the runway and projected cash zero date",sampleQuestion3:"Show me the top expenses from past six months"},skillMenu:{examplePrefix:"try:",tip:"Tip: type details after a skill to tailor it — e.g. a period, a filter, or what to focus on."},skills:{subtitle:"Ready-made analyses you can run in a new chat. Zeni's are available to everyone; yours are your company's own.",byZeni:"By Zeni",byTenant:"Your company",empty:"No skills are available yet.",emptyTenant:"Your company hasn’t added any skills yet.",loading:"Loading skills…",loadingPrompt:"Loading this skill’s instructions…",loadFailed:"Couldn’t load skills. Please try again.",detailLoadFailed:"Couldn’t load this skill. Please try again.",back:"All skills",backToSkill:"Back to skill",audienceCurrentPrivate:"Only you can use this skill.",audienceCurrentTenant:"Everyone at your company can use this skill.",publish:"Share with company",unpublish:"Make private",publishing:"Sharing…",unpublishing:"Making private…",publishFailed:"Couldn’t change who can use this. Please try again.",run:"Run skill",runHint:"Runs this skill in a new chat.",instructionsHeading:"What this skill tells the agent",tenantBadge:"Shared",lastUpdated:"Updated __date__",neverUpdated:"Not updated yet",newSkill:"New skill",fork:"Copy to my skills",forkHint:"Starts a new skill of your own from this one.",forkNameSeed:"__name__ copy",deleteConfirm:"Delete this skill?",deleteConfirmBody:"It stops appearing in the / menu for everyone who can run it. Its name becomes available again.",deleting:"Deleting…",deleteFailed:"Couldn’t delete this skill. Please try again.",namePlaceholder:"Cash burn summary",nameHint:"How people find this skill — type / then any part of the name.",audienceLabel:"Who can use this",audiencePrivate:"Only me",audiencePrivateHint:"Stays in your own / menu.",audienceTenant:"Everyone at my company",audienceTenantHint:"Appears in every colleague's / menu.",audiencePublishWarning:"Published skills run with the permissions of whoever uses them. Only publish a prompt you would be comfortable running as any colleague.",descriptionPlaceholder:"One line on what this skill does",descriptionHint:"Shown under the name in the / menu.",instructionsLabel:"Instructions",instructionsPlaceholder:"Tell the agent exactly what to do. Be specific about the period, the accounts and the format you want back.",instructionsHint:"The agent receives this verbatim. Written like a brief, not a search query.",charCount:"__count__ characters",create:"Create skill",creating:"Creating…",saveNewVersion:"Save new version",saveFailed:"Couldn’t save this skill. Please try again.",unsavedTitle:"Discard your changes?",unsavedBody:"This skill has edits that haven’t been saved.",keepEditing:"Keep editing",nameRequired:"A name is required.",instructionsRequired:"Instructions are required.",instructionsTooShort:"Instructions need at least __min__ characters.",renameWarning:"Renaming changes the / command. The old one stops working.",historyHeading:"Version history",historyLoading:"Loading history…",historyFailed:"Couldn’t load version history.",historyEmpty:"No earlier versions.",versionLabel:"Version __version__",restore:"Restore",restoreHint:"Brings this version’s instructions back as a new version. Nothing is overwritten.",restoreLoading:"Loading this version…",restoreFailed:"Couldn’t load that version. Please try again.",emptyTenantCta:"Write your first skill, or copy one of Zeni’s."},texts:{generating:"Generating...",artifactFallbackTitle:"Financial visualization",downloadArtifactImage:"Download chart as image",downloadTableFailed:"Couldn’t download the table. Please try again.",downloadTableTooLarge:"This table is too large to export. Try narrowing the question to a shorter period or fewer categories.",downloadArtifactImageFailed:"Couldn’t download the chart. Please try again.",errorInAnswer:"We couldn’t generate a response at the moment. Please submit question again.",errorInArtifact:"Unable to render visualization. The data is available in the text response above.",creatingCards:"Creating cards...",creatingPolicies:"Creating policies based on your preferences...",cardCreatedSingular:"1 card is created and ready",cardsCreatedPlural:"__count__ cards are created and ready",policyCreatedSingular:"1 policy is created and saved",policiesCreatedPlural:"__count__ policies are created and saved",createdCardsTableRecommendedLimitHeader:"Recommended Limit"},interactiveForm:{noMatches:"No matches",cardPolicy:{limits:{transactionLimitHelperText:"Maximum amount per single transaction",amountPlaceholder:"$0"}},cardsCreation:{step1Title:"Based on your last 3 months of spend, here are the cards. Review and confirm.",step1AddRowPlaceholder:"Add something else",step1ColumnAvgMonthlySpend:"Avg monthly spend",step2Title:"Who should these cards be assigned to? Suggested owners based on past spend.",step2Cta:"Create cards",cardTypeOptions:{virtual:{label:"Virtual card",description:"Issued instantly"}}}},chainOfThoughts:{reasoning:"Thinking"},reason:{show:"Show Reason",hide:"Hide Reason"},tooltips:{likeResponse:"Like",dislikeResponse:"Dislike",chatWithAI:"Chat with AI CFO"},headers:{followUpQuestions:"Follow-up questions to ask next",didYouKnow:"Did you know?",assumptions:"Key Assumptions"},exports:{downloading:"Preparing download",errors:{expired:"This file is no longer available. Ask the question again to regenerate it.",generic:"Could not download the file. Please try again."}},input:{disclaimer:"__agent__ can make mistakes. Check important info.",maxFilesError:"Cannot add __count__ file(s). Maximum __max__ files allowed per message.",fileTooLargeError:"'__fileName__' exceeds the 5MB size limit and was not added.",unsupportedFileTypeError:"'__fileName__' is not a supported file type and was not added.",uploading:"Uploading",uploadPromoTooltip:{title:"Now upload documents",description:"Add a financial document to see key insights and ask questions."},placeholder:"Ask AI CFO a question and get clear answers.",placeholderWithSkills:"Ask a question, or type / to run a Skill.",placeholderWithSkillsAndUpload:"Ask a question, type / for Skills, or attach a file.",placeholderWithUpload:"Ask a question, or attach a file to analyze."},loading:{discoveryTips:{excelExport:"Tip: Ask for any analysis as an Excel file and I'll attach a download.",followUps:"Tip: Ask follow-up questions in the same chat — I keep the conversation's context.",skills:"Tip: Type / in the message box to run Skills like flux analysis and cash forecasts.",uploads:"Tip: Attach a CSV or spreadsheet and I'll analyze it alongside your books."}},menu:{chatHistory:"CHAT HISTORY"},onboarding:{section:{title:"Run your business with confidence.",subtitle:"Built to analyze, explain, and summarize your numbers like a real CFO would."},capabilities:[{title:"Analyze Financials",subtitle:"Profit & loss, balance sheets, and trend detection — no spreadsheets required.",icon:"analyzing"},{title:"Spot Vendor Patterns",subtitle:"Review expenses across vendors and categories. Surface anomalies and overspend.",icon:"vendors"},{title:"Calculate Core Metrics",subtitle:"Runway, burn, margins — calculated from your real books.",icon:"calculator"},{title:"Forecast With Confidence",subtitle:"Auto-generate projections based on historicals. Updated weekly.",icon:"forecast"},{title:"Visualize Key Trends",subtitle:"Bar graphs, line charts, tables — linked to real data for full traceability.",icon:"graph-trend"}],whoIsItFor:{title:"Who's It For",details:["Startup founders without a full-time CFO — but need strategic clarity.","VPs of Finance/Operations who want faster answers, fewer spreadsheets.","Department heads (Sales, Marketing, Eng) who want to own their numbers.","Fractional CFOs managing multiple clients on Zeni.","In-house CFOs using it as a 10x strategic co-pilot."]},footer:{buttonText:"Launch __agent__",scope:"__agent__ Scope",betaText:"This is Beta — and your usage will shape what’s next.",footerText:'By clicking "Launch __agent__" I accept '}}},aiPerformanceDashboard:{tileTitle:"AI Performance",tileSubtitle:"Monitor and analyze the performance of your AI agents.",chartTitle:"Cost and Time Savings Trend",aiCostSavedTile:{title:"Cost Saved",subtitle:"Total reduction in expense."},aiTimeSavedTile:{title:"Time Saved",subtitle:"Manual hours saved by AI."},noPerformanceData:{firstLine:"No tasks performed yet!"},personas:{aiBookkeeper:"AI Bookkeeper Agent",aiCardsAgent:"AI Cards Agent",aiBillsAgent:"AI Bills Agent",aiExpenseAgent:"AI Expenses Agent",aiBankingAgent:"AI Banking Agent",aiAccountantAgent:"AI Accountant Agent",personaTypes:{aiBookkeeper:"bookkeeper",aiCardsAgent:"ai_cards_agent",aiBillsAgent:"ai_bills_agent",aiExpensesAgent:"ai_expenses_agent",aiBankingAgent:"ai_banking_agent",accountant:"accountant",aiCfo:"ai_cfo"}},valueDelivered:{title:"Value Delivered",subtitle:"Measurement of what you get vs. what you pay",zeniSubscriptionPlan:"Zeni Subscription Plan"},annualizedImpact:{title:"Annualized Impact",subtitle:"At this rate annually, you'll save"}},sessionTimeout:{title:"Session ends in",description:"You will be signed out due to inactivity.",descriptionClickPrefix:"Click",descriptionSuffix:"to stay signed in.",signOut:"Sign Out",continueSession:"Continue Session"},aiAccountantCustomer:{table:{bookClose:"Book Close",accuracy:"Accuracy"},actions:{onboard:"Onboard",evaluate:"Evaluate",fullPipeline:"Full Pipeline",retrain:"Retrain",offboard:"Offboard",cancelOnboarding:"Cancel Onboarding"},jobTriggerDialog:{title:"Trigger Job",datesInstruction:"Please provide start and end dates.",singleDescription:"__companyName__. __datesInstruction__",singleDescriptionOffboard:"__companyName__ will be offboarded from AI Accountant."},drawer:{enrollmentDetails:"Enrollment Details",onboarded:"Onboarded",modelAccuracy:"Model Accuracy",noAccuracyData:"No accuracy data available",jobHistory:"Job History",loadingJobs:"Loading jobs...",noJobsFound:"No jobs found",operation:"Operation"},summary:{totalCustomers:"Total Customers",avgAccuracy:"Avg Accuracy"},bulkActions:{menuLabel:"Bulk Actions",selectedCount:"__count__ selected",noCommonOperations:"No actions available for the selected customers",disabledInfo:"The selected customers have no action in common. Narrow your selection to customers in the same state.",bulkDialogDescription:"__count__ customers selected for __action__. Please provide start and end dates.",bulkDialogDescriptionOffboard:"__count__ customers selected for offboarding.",evaluateAllDialogDescription:"__count__ unonboarded customer(s) will be evaluated. Please provide start and end dates."}},cardsShutdown:{bannerDescription:"We're discontinuing our cards product. Here's what's changing, key dates, and how to switch your payments smoothly.",knowMore:"Know More",introBody:"We're discontinuing the Zeni Cards product. Here's what's changing, key dates, and how to switch your payments smoothly.",whatsHappeningTitle:"What's happening",whatsHappeningBodyPrefix:"We've made the decision to discontinue Zeni Cards. Your card will remain active until ",whatsHappeningBodySuffix:", after which all Zeni Cards will be permanently deactivated and no new transactions will be processed.",switchPaymentsTitle:"Switch your vendor payments in minutes",switchPaymentsBodyPrefix:"To simplify the transition, we recommend ",cardSwitcherLinkText:"Knot CardSwitcher,",switchPaymentsBodySuffix:" which can automatically update your saved payment method across hundreds of merchants and subscription providers.",switchPaymentsCoverage:"CardSwitcher works with hundreds of major merchants - including Amazon, Uber, Netflix, Walmart, and most popular subscription and software providers — so you won't need to hunt through each account and update billing details one by one.",whatToDoNowTitle:"What you should do now",whatToDoItem1:"Review recurring payments linked to your Zeni Card",whatToDoItem2:"Move vendor and subscription payments to a new card",whatToDoItem3:"Download any statements you need for your records",needHelpBodyLine1:"Our team is here to help you through the transition.",needHelpBodyPrefix:"Reach us at ",needHelpBodySuffix:" for any assistance."},invoicingOverview:{revenueMrrOverTime:"Revenue - MRR Over Time",mrrMovement:"MRR Movement",mrrMovementNewSubscriptions:"New Subscriptions",mrrMovementExpansions:"Expansions",mrrMovementNewChange:"New MRR Change",customerMovement:"Customer Movement",customerMovementSubtitle:"All status transitions this month",netCustomerChange:"Net customer change",totalActiveCustomers:"Total active customers",customerChurnRate:"Customer churn rate",revenueByPlan:"Revenue by Plan",noPlanData:"No plan data available.",noRecentSubscriptions:"No recent subscriptions.",kpiActiveSubs:"Active Subs",metricChurnRate:"Churn Rate",tabRecentSubscriptions:"Recent Subscriptions",tabMonthlyMrrBreakdown:"Monthly MRR Breakdown",pillPaused:"Paused",pillResumed:"Resumed",pillReactivated:"Reactivated",alertFailedPayments:"Failed Payments",alertNeedsAction:"Needs action",alertUpcomingInvoices:"Upcoming Invoices",alertNext7Days:"Next 7 days",alertPastDueInvoices:"Past Due Invoices",nrrTitle:"Net Revenue Retention (NRR)",nrrSubtitle:"Trailing 12 months · benchmark for SaaS health",nrrFootnote:"NRR over 112% means existing customers are growing faster than they’re churning — typically a sign of strong product-market fit. Healthy SaaS benchmark is >100%.",grrTitle:"Gross Revenue Retention (GRR)",grrSubtitle:"Excludes expansion · pure retention signal",grrFootnote:"GRR caps at 100% — it strips out upsell to show how much revenue you’d retain without expansion. Best-in-class SaaS sits at 90%+. Below 80% signals a churn problem.",startingArr:"Starting ARR",expansionsArr:"Expansions ARR",contraction:"Contraction",churn:"Churn",endingArr:"Ending ARR",nrr:"NRR",retainedArr:"Retained ARR",grr:"GRR",summaryNewMrr:"New MRR",summaryExpansion:"Expansion",summaryChurnedMrr:"Churned MRR",summaryNetMrrChange:"Net MRR Change",summaryEndingMrr:"Ending MRR",colAutoCollect:"Auto Collect",autoCollectOn:"ON",autoCollectOff:"OFF",cadenceAnnual:"Annual",since:"Since"},invoicingCommon:{zipPlaceholder:"94105",usage:"Usage",pricing:"Pricing",subFamilyCode:"Sub-family Code",productCode:"Product Code",columnTarget:"Target",labelBillingPeriod:"Billing Period",labelPricingModel:"Pricing Model",addOns:"Add-ons",oneTimeChargesTab:"One-time Charges",importCsvFile:"Import CSV File",pluralSuffix:"s",description:"Description",subFamilyId:"Sub-family ID",itemDetails:"Item Details",name:"Name",externalName:"External Name",unit:"Unit",itemApplicability:"Item Applicability",applicableItems:"Applicable Items",timestamps:"Timestamps",updatedAt:"Updated At",addOn:"Add-on",cancelSubscription:"Cancel Subscription",nameShownOnInvoices:"Name shown on invoices",placeholderPriceZero:"0.00",trialPeriod:"Trial Period",labelFreeQuantity:"Free Quantity",invoiceNotes:"Invoice Notes",invoiceName:"Invoice Name",placeholderAddInvoiceName:"Add invoice name",appendedToInvoiceLineItem:"Appended to invoice line item",addInvoiceNotes:"Add invoice notes",checkmark:"✓",yourCompany:"Your Company",thankYouForYourBusiness:"Thank you for your business.",onReceipt:"On receipt",net:"Net ",newSuffix:"—NEW",invoiceNumber:"Invoice #",poNumberLabel:"PO #",logoAlt:"Logo",taxIdLabel:"Tax ID: ",billedTo:"Billed To",amount2:"Amount (",paymentLinkNoItemizedInvoice:"Payment link — no itemized invoice",qtyLabel:"Qty: ",subtotal:"Subtotal",amountDue:"Amount Due (",signatureAlt:"Signature",currencySymbolEur:"€",currencySymbolGbp:"£",currencySymbolInr:"₹",createCoupon:"Create Coupon",couponDetails:"Coupon Details",couponId:"Coupon ID",couponCodeLabel:"Coupon Code",applyOn:"Apply On",discountType:"Discount Type",maxRedemptions:"Max Redemptions",validFrom:"Valid From",validTill:"Valid Till",dueOnReceipt:"Due on receipt",createInvoice:"Create Invoice",customerDetails:"Customer Details",billingFrequency:"Billing Frequency",openCustomerInNewTab:"Open customer in new tab",openSubscriptionInNewTab:"Open subscription in new tab",openInvoiceInNewTab:"Open invoice in new tab",allocated:"Allocated",refunded:"Refunded",referenceInvoice:"Reference Invoice",subTotal:"Sub Total",noLineItems:"No line items.",creditNote:"Credit Note",preparing:"Preparing…",bankAccountAch:"Bank Account (ACH)",connectViaPlaid:"Connect via Plaid — lower fees, 2–4 day settlement",loading:"Loading…",creditDebitCard:"Credit / Debit Card",cardMethodDescription:"Visa, Mastercard, Amex — instant settlement",cardSetupFailed:"Card setup failed.",failedToSaveCard:"Failed to save card.",expiry:"Expiry",saveCard:"Save Card",newSubscription:"New Subscription",outstanding:"Outstanding",namePlaceholder:"James Johnson",firstNamePlaceholder:"James",lastNamePlaceholder:"Johnson",emailPlaceholder:"billing@acme.com",phonePlaceholder:"(555) 000-0000",companyPlaceholder:"Acme Corp",billingDetails:"Billing Details",vatNumber:"VAT Number",vatNumberPlaceholder:"US-EIN-12-3456789",autoCollectionDescription:"Enabling this automatically charges the customer each billing cycle.",autoCollection:"Auto Collection",netTerms:"Net Terms",selectNetTerm:"Select net term",preferredCurrency:"Preferred Currency",taxability:"Taxability",selectTaxability:"Select taxability",invoiceNotesHint:"Default note to appear on invoices",invoiceNotesPlaceholder:"Default notes to appear on invoices…",addStreetAddress:"Add street address",floorSuiteOffice:"Floor/Suite/Office",city:"City",addCity:"Add city",state:"State",addState:"Add state",addCountry:"Add country",zipCode:"ZIP Code",yourVendor:"Your vendor",createCustomerLabel:"Create Customer",of:" of ",free:" free",code:"Code",redemptions:"Redemptions",slashSeparator:" / ",duration:"Duration",daysPastDue:"Days Past Due",nextRetry:"Next Retry",attempts:"Attempts",line1:"Line 1",line2:"Line 2",recordPayment:"Record Payment",arrowSeparator:" → ",shippingAddress:"Shipping Address",poNumber:"PO Number",poNumber2:"PO number",refunds:"Refunds",gateway:"Gateway",referenceNumber:"Reference Number",subscriptionDetails:"Subscription Details",addShippingAddressButton:"Add shipping address",addBusinessAddressButton:"Add business address",addPoNumber:"Add PO number",shipLine1Placeholder:"123 Main St",shipLine2Placeholder:"Suite 200",cityPlaceholder:"San Francisco",statePlaceholder:"CA",createSubscriptionLabel:"Create Subscription",cardStatus:"Card Status",creditNumber:"Credit Number",dateIssued:"Date Issued",creditedAgainst:"Credited Against",totalCredits:"Total Credits",daySuffix:"d",trial:"Trial",amount:"Amount",all:"All",active:"Active",address:"Address",available:"Available",billingAddress:"Billing Address",billingCycles:"Billing Cycles",card:"Card",clearAll:"Clear All",commaSpace:", ",company:"Company",country:"Country",createdAt:"Created At",currency:"Currency",currencyUsd:"USD",customer:"Customer",date:"Date",discount:"Discount",dollarPrefix:"$",dueDate:"Due Date",dunning:"Dunning",email:"Email",firstNameLabel:"First Name",invoice:"Invoice",lastNameLabel:"Last Name",middleDotSeparator:" · ",mrr:"MRR",nextBilling:"Next Billing",notSet:"Not set",notes:"Notes",paymentMethod:"Payment Method",payments:"Payments",period:"Period",phoneLabel:"Phone",plan:"Plan",qty:"Qty",reason:"Reason",saveChanges:"Save Changes",selectPlan:"Select plan",status:"Status",tax:"Tax",taxable:"Taxable",total:"Total",transaction:"Transaction",transactionId:"Transaction ID",type:"Type",amountDue2:"Amount Due",invoiceDate:"Invoice Date",issueCreditNote:"Issue Credit Note",lineItems:"Line Items",refund:"Refund",selectDatePlaceholder:"Select date",subscription:"Subscription",subscriptions:"Subscriptions"},invoicingAuditLog:{timeColumnHeader:"Time",actorColumnHeader:"Actor",detailColumnHeader:"Detail",noAuditEntriesMatchSearch:"No audit entries match your search.",noAuditActivityYet:"No audit activity yet.",searchActionTargetActorPlaceholder:"Search action, target, or actor"},invoicingCatalog:{addOnsNoun:"add-ons",oneTimeChargesNoun:"one-time charges",plansNoun:"plans",itemsNoun:"items",addItem:"Add Item",addAddOn:"Add Add-on",addOneTimeCharge:"Add One-time Charge",periodSingular:"1 ${label}",periodPlural:"${period} ${label}s",productColumnHeader:"Product",itemTypeColumnHeader:"Item Type",activePlansKpi:"Active Plans",activeProductsKpi:"Active Products",avgPlanPriceKpi:"Avg Plan Price",noMatchSearch:"No ${tabNoun} match your search.",noItemsYet:"No ${tabNoun} yet.",emptyStateDescription:"Bring in your historical product catalog data by importing your product catalog csv file",emptyStateTitle:"No Product Catalog Yet",searchPlaceholder:"Search ${tabNoun}"},invoicingCatalogDetail:{oneSpace:"1 ",activeSubFamilies:"Active Price points",archivedSubFamilies:"Archived Price points",lowestActiveSubFamilyPrice:"Lowest Sub-family Price",priceTiers:"Price / Tiers",catalogItemNotFound:"Catalog item not found.",itemNamePlaceholder:"Item name",externalNamePlaceholder:"External name",addDescriptionPlaceholder:"Add a description",lineItemDescription:"Line Item Description",itemFamily:"Item Family",restrictedPrefix:"Restricted (",itemsSuffix:" items)",subFamilies:"Price points",noSubFamilies:"No Price points.",archivedAt:"Archived At",archiveSubFamily:"Archive sub-family",archiveSubFamilyBlocked:"Cannot archive while subscriptions reference this sub-family.",duplicateSubFamily:"Duplicate sub-family",subscriptionsUseSubFamilyBanner:"{count} subscriptions use this sub-family. To change pricing, create a new sub-family.",createSubFamily:"Add price point",externalId:"External ID",internalDescription:"Internal Description",showDescriptionInInvoices:"Show Description in Invoices",subscriptionCount:"Subscriptions"},invoicingCatalogForm:{typeOneTimeCharge:"One-time Charge",trialUnitDay:"Day",periodUnitWeek:"Week",pricingModelFlatFee:"Flat fee",pricingModelPerUnit:"Per unit",pricingModelTiered:"Tiered",pricingModelVolume:"Volume",pricingModelStairstep:"Stairstep",tierTypePerUnit:"Per Unit",tierTypeFlatFee:"Flat Fee",tierTypePackage:"Package",trialEndActivateSubscription:"Activate Subscription",prorationPartialTerm:"Partial Term",prorationFullTerm:"Full Term",applicabilityAll:"All add-ons & charges",applicabilityRestricted:"Restricted — Select applicable items",applicableItemsEmptyPlaceholder:"No add-ons or charges available",selectApplicableItemsPlaceholder:"Select applicable items",validationProductFamilyRequired:"Enter a Product Family name for this catalog item.",validationSubFamilyNameRequired:"Add at least one price point and enter a name for each one.",titleEditCatalogItem:"Edit Catalog Item",titleCreatePlan:"Create Plan",titleCreateOneTimeCharge:"Create One-time Charge",titleCreateAddon:"Create Add-on",sectionPlanAndProductFamilyDetails:"Plan and Product Family Details",productCodeExample:"Optional. Generated from Product Family when left blank.",placeholderAddProductCode:"Add product code",customerFacingName:"Customer facing name",labelProductFamily:"Product Family",placeholderAddProductFamily:"Add product family",labelPricePointName:"Price point name",placeholderAddSubFamilyName:"e.g. Growth Monthly",subFamilyCodeExample:"Optional. Generated from the sub-family name when left blank.",placeholderAddSubFamilyCode:"Add sub-family code",forInternalUseOnly:"For internal use only",subFamilyDetailsTitle:"Price Points",pricePointsRequiredHint:"Add at least one price point to create this plan. Add more for different billing frequencies (e.g. monthly, annual) or currencies.",addNewLink:"Add another price point",subFamilyNumberPrefix:"Price Point",removeSubFamilyConfirmation:"Remove this price point?",labelSubFamily:"Sub-family",placeholderAddSubFamily:"Add sub-family",labelAddTiers:"Add Tiers",tierColumnTo:"To (blank for unlimited)",tierColumnPackageSize:"Package size",infinity:"∞",removeTierX:"✕",addTierLink:"Add Tier",hintAddBillingPeriod:"Add billing period",placeholderTrialPeriodExample:"e.g. 14",labelTrialEndAction:"Trial End Action",hintBillingCyclesUnlimited:"Keep it blank for unlimited cycles",placeholderAddBillingCycles:"Add number of billing cycles",labelProrationType:"Proration Type",labelFlags:"Flags",selectFlagsPlaceholder:"Select flags",labelShowDescriptionInQuotes:"Show Description in Quotes",lineItemDescriptionHint:"Shown below the line-item name when invoice descriptions are enabled",subFamilyInvoiceNotesHint:"Shown in the invoice Notes section when this price point is billed",nameShownOnInvoiceLineItem:"Name shown on the invoice line item",sectionAccountingIntegration:"Accounting Integration",skuQboExample:"QBO Product code. Example: BASIC-M",labelSku:"SKU",placeholderAddSku:"Add SKU",placeholderAddAccountingCode:"Add accounting code",placeholderSelectIncomeAccount:"Select income account",labelAccountName:"Account Name",placeholderAddDescription:"Add description",placeholderSelectQboClass:"Select class",tierColumnPrice:"Price",labelClass:"Class",tierColumnFrom:"From"},invoicingCouponForm:{enterCouponIdError:"Enter a Coupon ID.",enterCouponNameError:"Enter a name for this coupon.",editCouponTitle:"Edit Coupon",couponIdPlaceholder:"e.g. WELCOME20",namePlaceholder:"e.g. Welcome 20% Off",discountPercentagePlaceholder:"e.g. 20",discountPercentageLabel:"Discount Percentage",discountAmountLabel:"Discount Amount",freeQuantityPlaceholder:"e.g. 1",durationLimitsSectionTitle:"Duration & Limits",durationTypeLabel:"Duration Type",periodPlaceholder:"e.g. 3",periodUnitLabel:"Period Unit",maxRedemptionsPlaceholder:"Add max redemptions",selectPlaceholder:"Select"},invoicingCreateInvoice:{selectPaymentTerm:"Select payment term",net7:"Net 7",net15:"Net 15",net30:"Net 30",net45:"Net 45",net60:"Net 60",selectBillingFrequency:"Select billing frequency",halfYearly:"Half-yearly",annually:"Annually",addAtLeastOneLineItem:"Add at least one line item with a description and unit price.",step1CustomerAndType:"Step 1: Customer and Type",step2InvoiceDetails:"Step 2: Invoice Details",step1Subtitle:"How would you like to create an invoice? Select a customer and choose the invoice type.",step2Subtitle:"Set dates, line items, and additional details.",invoiceJpg:"Invoice.jpg",livePreviewSuffix:" - Live Preview",paymentLink:"Payment link",paymentLinkCalloutText:"A payment link will be generated and sent to the customer — no itemized invoice document is required.",chooseExistingCustomerHint:"Choose an existing customer or create one first",searchOrTypeCustomerName:"Search or type a customer name",pleaseSelectCustomer:"Please select a customer to continue.",invoiceType:"Invoice Type",selectAnInvoiceType:"Select an invoice type",oneTimeInvoiceDescription:"Send a one-time invoice with a built-in payment link.",oneTimeInvoiceTitle:"One-time Invoice",recurringSeriesDescription:"Automatically generate recurring invoices on a set schedule.",recurringSeriesTitle:"Recurring Series",paymentLinkOnlyDescription:"Send only a payment link with a single amount — No itemized invoice.",paymentLinkOnlyTitle:"Payment Link Only",general:"General",setInvoiceDatesHint:"Set the invoice dates and additional details.",selectInvoiceDate:"Select invoice date",paymentTerms:"Payment Terms",usdUsDollar:"USD — US Dollar",soNumber:"SO Number",addSoNumber:"Add SO number",exampleSoNumber:"Example: SO-2026-001",exampleMemo:"Example: thank you for your business",unitPriceLabel:"Unit Price (",useDescriptionAs:"Use description as",addQuantity:"Add quantity",addPrice:"Add price",removeLine:"Remove line",addLine:"Add Line",unitPriceInDollars:"Unit price in dollars",addDescription:"Add description",addMemo:"Add memo",dueDate:"Due date",invoiceNumber:"Invoice Number",memo:"Memo",selectDueDate:"Select due date",totalLabel:"Total:"},invoicingCreditDetail:{allocatedAt:"Allocated At",creditNoteNotFound:"Credit note not found.",creditNoteTitlePrefix:"Credit Note ",creditNoteDetails:"Credit Note Details",creditNoteId:"Credit Note ID",creditNoteNumber:"Credit Note Number",priceType:"Price Type",amounts:"Amounts",amountAvailable:"Amount Available",amountAllocated:"Amount Allocated",amountRefunded:"Amount Refunded",allocations:"Allocations",noAllocations:"No allocations.",linkedRefunds:"Linked Refunds"},invoicingCreditList:{noCreditNotesMatchSearch:"No credit notes match your search.",noCreditNotesYet:"No credit notes yet.",createCreditNoteButton:"Create Credit Note",emptyStateDescription:"Bring in your historical credit note data by importing your credit note csv file",emptyStateTitle:"No Credit Notes Yet",searchPlaceholder:"Search by customer or credit note"},invoicingCustomerDetail:{paymentMethodSavedTitle:"Payment method saved",paymentMethodSavedDescription:"The payment method has been added and is now the default. Existing payment methods are kept, and future invoices can be collected automatically.",addPaymentMethod:"Add Payment Method",addPaymentMethodSubtitle:"Securely add a bank account or card to collect invoice payments.",connectStripeNotice:"Connect a Stripe account in Settings › Payment Destination before adding a payment method.",securedByStripeAndPlaid:"Secured by Stripe & Plaid.",countryAustralia:"Australia",countryCanada:"Canada",countryGermany:"Germany",countryFrance:"France",countryUnitedKingdom:"United Kingdom",countryIndia:"India",countryJapan:"Japan",countrySingapore:"Singapore",countryUnitedStates:"United States",netTermsDueImmediately:"Due immediately",createPromotionalCreditsSubtitle:"Add promotional credits to this customer&apos;s balance. Credits are applied automatically on the next invoice before tax.",currentPromotionalCreditsBalance:"Current balance",promotionalCreditAmountRequired:"Enter a positive amount.",promotionalCreditDescriptionRequired:"Description is required.",promotionalCreditDescriptionPlaceholder:"e.g. Welcome bonus",promotionalCreditsAddedTitle:"Promotional credits added",promotionalCreditsAddedDescription:"The customer's promotional credit balance has been updated.",customerSince:"Customer Since",sincePrefix:"Since ",lifetimeValue:"Lifetime Value",promotionalCredits:"Promotional Credits",refundableCredits:"Refundable Credits",excessPayments:"Excess Payments",unbilledCharges:"Unbilled Charges",maskedDigitsPrefix:"•••• ",maskedDigitsMiddle:" •••• ",expires:"Expires",customerNotFound:"Customer not found.",taxable:"taxable",netDashPrefix:"Net-",streetAddress:"Street Address",balances:"Balances",connectStripeTooltip:"Connect a Stripe account in Settings › Payment Destination first",paymentMethods:"Payment Methods",connectStripeBefore:"Connect your Stripe account in",settingsPaymentDestination:"Settings › Payment Destination",connectStripeAfter:"to add payment methods.",invoicePaymentDetails:"Invoice payment details:",customerEmailPlaceholder:"customer@email.com",emailPaymentLinkTooltip:"Email the customer a link to add their payment details",collectAchHint:"We will email the customer to provide their ACH details.",paymentLinkSentTo:"Payment link sent to ",copyPaymentLink:"Copy payment link",sendPaymentLinkFailed:"Failed to send payment link.",default:"Default",noPaymentMethodOnFile:"No payment method on file",previewEmailHeading:"Preview email",previewThisIsWhat:"This is what ",theCustomer:"the customer",previewWillReceive:"will receive.",hi:"Hi",there:"there",previewEmailBody:"Please add a payment method so {company_name} can process your invoices. Click the button below to securely add a bank account or card.",previewFallbackLinkHint:"If the button does not work, copy and paste this link into your browser:",previewPlaceholderMagicUrl:"https://app.zeni.ai/collect-payment/example/preview-link",previewEmailFooter:"We hope you're enjoying your experience with us! As always, feel free to reach out to us. We'd love to hear from you.",previewEmailContactPrefix:"Questions? Contact us at ",sending:"Sending…",noSubscriptions:"No subscriptions.",recentInvoices:"Recent Invoices",noInvoices:"No invoices.",addNoteAboutCustomer:"Add a note about this customer",ach:"ACH",collectFrom:"Collect from",companyDetails:"Company Details",netTerms15:"Net-15",netTerms30:"Net-30",netTerms45:"Net-45",netTerms60:"Net-60",previewEmailLink:"Preview email?",sendEmail:"Send email",createPromotionalCredits:"Create Promotional Credits"},invoicingCustomerForm:{validationEnterCompanyNameOrEmail:"Enter at least a company, name, or email for this customer.",customerDetailsDescription:"Primary contact for billing and invoices",customerTypeLabel:"Customer Type",billingAddressSectionDescription:"Enter your company's official billing address for invoicing.",addSecondaryInfoPlaceholder:"Add secondary info (Optional)",addressSecondaryHint:"Example: Address on your driver&apos;s license",addBillingAddressButton:"Add billing address",billingSettingsDescription:"Tax IDs, currency, and payment defaults",billingSettingsTitle:"Billing Settings",customerTypeResidential:"Residential",netTermImmediate:"Immediate",taxabilityExempt:"Exempt",addCompanyBillingAddressTitle:"Add Company Billing Address",companyNameLabel:"Company Name",editCustomerTitle:"Edit Customer",newCustomerTitle:"New Customer",selectTypePlaceholder:"Select type"},invoicingCustomerList:{noCustomersMatchSearch:"No customers match your search.",noCustomersYet:"No customers yet.",importCustomersDescription:"Bring in your historical customers by importing your customers csv file",noCustomerYetTitle:"No Customer Yet"},invoicingDataImport:{inSync:"In Sync",skippedSuffix:" Skipped",warningsSuffix:" Warnings",newImport:"New Import",chargebeeImportFailed:"Chargebee import failed",chargebeeImportInProgress:"Chargebee import in progress",csvImportFailed:"CSV import failed",csvImportInProgress:"CSV import in progress",viewDetails:"View details",records:"records",bulletSeparator:" • ",lastImportReversible:"Last import is reversible",recordsBulletSeparator:"records • ",rollback:"Rollback",importedModules:"Imported Modules",module:"Module",recordsColumn:"Records",lastImported:"Last Imported",loadingImportStatus:"Loading import status…",noImportedRecords:"No imported records yet. Start a new import to populate this table.",templateProductCatalogPlans:"Product Catalog (Plans)",templateCouponsAndDiscounts:"Coupons & Discounts",chargebeeStepSettingsImportExport:"Chargebee → Settings → Import & Export → Export",chargebeeStepDetailModulesList:"Plans, add-ons, one-time charges, customers, subscriptions, invoices, credit notes",chargebeeStepDetailPickAllTime:'Pick "All time" range. CSV format. Default columns are fine.',chargebeeStepExportModule:"Export the module you want",chargebeeStepDropCsvFiles:"Drop the .CSV files above",capsuleIssuesSuffix:" Issues",capsuleReady:"Ready",scanningCaptionCsv:"Larger exports can take a few minutes — you can leave this page, it keeps running.",scanningCaptionChargebee:"This can take a moment for larger accounts — you can leave this page, it keeps running.",scanningLabelCsv:"Reading your uploaded files…",defaultImportErrorMessage:"Something went wrong during import.",backToDataImport:"Back to Data Import",migrateHeading:"Migrate from Chargebee → Zeni",migrateSubtitle:"Connect Chargebee or drop your CSV exports — we’ll handle the rest.",connectWithChargebee:"Connect with Chargebee",importFromChargebee:"Import from Chargebee",connectedToChargebee:"Connected to {site}",chargebeeConnectedLabel:"Connected to Chargebee",buttonFetchFromChargebee:"Fetch from Chargebee",chargebeeNotConnectedMessage:"Connect Chargebee in Invoicing Settings → Integrations to fetch data automatically.",buttonGoToIntegrations:"Connect Chargebee in Settings",connectPullEverything:"Pull everything automatically — fully linked, no CSV juggling.",connectingToChargebee:"Connecting to Chargebee…",fieldLabelChargebeeSite:"Chargebee site",sitePlaceholderAcme:"acme",fieldHintSiteSubdomain:`The subdomain in your Chargebee URL — e.g. acme in
103
103
  acme.chargebee.com.`,fieldLabelApiKey:"API key",fieldLabelApiKeySavedSuffix:" (saved)",apiKeyPlaceholderUsingSaved:"Using saved API key",apiKeyPlaceholderLive:"live_xxxxxxxxxxxxxxxx",fieldHintApiKeyReuse:"Leave blank to reuse your saved API key.",fieldHintApiKeyLocation:"Settings → Configure Chargebee → API Keys & Webhooks.",connectReadOnlyAccess:`Read-only access. We never store your billing data without
104
104
  confirmation.`,dividerOrImportCsv:"or import from CSV instead",downloadBlankTemplateHeader:"Don’t have a Chargebee export yet? Download a blank template",buttonDownloadAllZip:"Download All (Zip)",csvExtensionSuffix:".csv",orExportDirectly:"Or export directly from Chargebee",followStepsBelow:"Follow the steps below",stepDetailLetterSeparator:". ",uploadingExtractingFiles:"Uploading & extracting your files…",dropzoneStrongDropOrUpload:"Drop or upload",dropzoneTitleRest:`your CSV or ZIP exports
105
105
  here`,dropzoneMetaSupportedFiles:"Chargebee .zip bundles and individual .csv files are both supported",recordsSuffix:" records",afterSkippingPrefix:"After skipping ",issuesRollbackSuffix:` issues · Rollback
106
- available for 24hrs`,filesDetectedSuffix:" files detected",modulesFetchedSuffix:" modules fetched from Chargebee",autoIdentifiedFromHeaders:"Auto-identified from headers",pulledViaChargebeeApi:"Pulled via Chargebee API",needAttentionSuffix:" need attention",buttonSaveContinueLater:"Save & Continue Later",buttonStarting:"Starting…",importRecordsPrefix:"Import ",importRecordsSuffix:" Records",recordsFetchedSuffix:" records fetched",expandIconOpen:"▾",expandIconClosed:"▸",importingFinalizing:"Finalizing…",importingChargebeeData:"Importing your Chargebee Data",rollbackFallback24Hours:"24 hours",doneYouAreOnZeni:"You are on Zeni",doneImportedPrefix:"Imported ",doneRecordsFromChargebeeSuffix:" records from Chargebee",rollbackAvailableUntilPrefix:"Rollback available until ",buttonGoToOverview:"Go to Overview",importFailedHeading:"Import failed",failedMessageCsv:"Your uploaded data is still saved — retry resumes without re-reading your files.",failedMessageChargebee:"Your scanned data is still saved — retry resumes without re-fetching from Chargebee.",buttonRetrying:"Retrying…",buttonRetryImport:"Retry import",diagnosticsTitle:"Import details",diagnosticsSubtitle:"Review skipped records and warnings from this import session.",diagnosticsNotFound:"This import session could not be found.",diagnosticsSection:"Row diagnostics",diagnosticsSummary:"Import summary",diagnosticsSearchPlaceholder:"Search source ID, file, or issue",diagnosticsAllModules:"All modules",diagnosticsAllSeverities:"All severities",diagnosticsAllOutcomes:"All outcomes",diagnosticsErrors:"Errors",diagnosticsWarning:"Warning",diagnosticsSkipped:"Skipped",diagnosticsWarningOutcome:"Imported with warning",diagnosticsSourceRecord:"Source record",diagnosticsRow:"Row",diagnosticsSeverity:"Severity",diagnosticsOutcome:"Outcome",diagnosticsNoIssues:"No row-level issues match these filters.",diagnosticsExpired:"Row-level diagnostics have expired after the 90-day retention period.",diagnosticsFetchFailed:"We could not load row-level diagnostics. Please try again.",diagnosticsDownloadCsv:"Download CSV",diagnosticsLoading:"Loading diagnostics…",diagnosticsJobFailure:"The import job failed",diagnosticsJobFailureHelp:"This is a job-level failure. Any row-level issues found before it stopped are listed below.",diagnosticsChargebeeApi:"Chargebee API",diagnosticsSource:"Import source",diagnosticsCsvUpload:"CSV upload",diagnosticsTotal:"Total records",diagnosticsImporting:"Importing",diagnosticsRolledBack:"Rolled back",diagnosticsScanning:"Scanning",diagnosticsRetainedUntil:"Diagnostics retained until"},invoicingDiscountDetail:{month:"month",limitedSinglePeriod:"Limited · 1 ",limitedMultiPeriodPrefix:"Limited · ",discountNotFound:"Discount not found.",couponNamePlaceholder:"Coupon name",invoiceNotesPlaceholder:"Notes shown on invoices",discountConfiguration:"Discount Configuration",revRecTreatment:"Rev Rec Treatment",restrictedProducts:"Restricted Products",validityAndRedemptions:"Validity & Redemptions",unlimited:"Unlimited"},invoicingDiscountList:{totalDiscounted:"Total Discounted",noDiscountsMatchSearch:"No discounts match your search.",noDiscountsYet:"No discounts yet.",importDiscountsDescription:"Bring in your historical discount coupons data by importing your discount coupon csv file",noDiscountCouponsYet:"No Discount Coupons Yet",searchByNameOrCode:"Search by name or code",discounts:"Discounts"},invoicingDunningDetail:{emailComposerTitle:"Send dunning email",emailComposerDescription:"Review and edit the message, then confirm the exact branded email before sending.",emailCc:"CC (optional)",emailCcHint:"Separate multiple email addresses with commas.",emailCcInvalid:"Enter valid CC email addresses.",emailBody:"Message",emailRecipientRequired:"Enter a valid recipient email address.",emailSubjectRequired:"Enter an email subject.",emailBodyRequired:"Enter an email message.",emailPreview:"Email preview",emailPreviewUpdating:"Updating preview…",emailPreviewLoading:"Loading the branded email preview…",emailPreviewUnavailable:"Edit the subject or message to generate a new preview.",emailPreviewFrameTitle:"Rendered dunning email preview",daysSuffix:" days",dunningCaseNotFound:"Dunning case not found.",dunningTitlePrefix:"Dunning ",caseDetails:"Case Details",caseId:"Case ID",pausedUntil:"Paused until ",lastAttempt:"Last Attempt",pauseReason:"Pause Reason",timeline:"Timeline",noDunningAttempts:"No dunning attempts recorded yet.",retryAttemptPrefix:"Retry attempt #",failedSuffix:" failed"},invoicingDunningList:{activeCases:"Active Cases",atRiskAmount:"At-Risk Amount",recoveryRate:"Recovery Rate",totalCases:"Total Cases",noDunningCasesMatchSearch:"No dunning cases match your search.",noDunningCasesYet:"No dunning cases yet.",importDunningDescription:"Bring in your historical dunning data by importing your dunning coupon csv file",noDunningYet:"No Dunning Yet",searchByCustomerOrInvoice:"Search by customer or invoice"},invoicingInvoiceDetail:{zip:"ZIP",paidOn:"Paid on",taxRate:"Tax Rate",amountApplied:"Amount Applied",attempt:"Attempt",invoiceNotFound:"Invoice not found.",invoiceDocuments:"Invoice Documents",pdfExtension:".pdf",generatedPrefix:"Generated · ",pdfUnavailable:"PDF is not available yet.",amountBreakdown:"Amount Breakdown",subTotalBeforeCredits:"Subtotal (before credits)",creditsApplied:"Credits Applied",amountAdjusted:"Amount Adjusted",amountPaid:"Amount Paid",excessPayment:"Excess Payment",writeOffAmount:"Write Off Amount",noPaymentsApplied:"No payments applied.",issuedCreditNotes:"Issued Credit Notes",noCreditNotes:"No credit notes.",adjustmentCreditNotes:"Adjustment Credit Notes",voidInvoiceDialogTitle:"Void invoice?",voidInvoiceDialogDescription:"Voiding {invoice_number} cannot be undone. The invoice will no longer be collectible.",voidInvoiceDialogDescriptionGeneric:"Voiding this invoice cannot be undone. The invoice will no longer be collectible.",voidInvoiceCreateAdjustmentCreditNote:"Create adjustment credit note",voidInvoiceAdjustmentCreditNoteHelp:"Offsets the invoice balance with a credit note dated today. Use this for backdated invoices to avoid restating a closed accounting period in QuickBooks.",voidInvoiceConfirm:"Void invoice",nextRetry:"Next retry",noDunningAttempts:"No dunning attempts.",additionalDetails:"Additional Details",note:"Note"},invoicingInvoiceList:{totalInvoicedKpiLabel:"Total Invoiced",noInvoicesMatchSearch:"No invoices match your search.",noInvoicesYet:"No invoices yet.",importInvoicesDescription:"Bring in your historical invoices data by importing your invoice csv file",noInvoicesYetTitle:"No Invoices Yet",searchInvoicesPlaceholder:"Search by invoice no. or customer"},invoicingPaymentLink:{linkInvalidOrExpired:"The link is invalid or has expired.",verifyingSecureLink:"Verifying your secure link…",linkCannotBeOpened:"This link can't be opened",askVendorForNewLink:"Please ask your vendor to send a new payment link.",failedToConnectBankAccount:"Failed to connect bank account.",bankConnectionError:"Bank connection error. Please try again.",failedToStartCardSetup:"Failed to start card setup.",youreAllSet:"You're all set",bankAccount:"Bank account",endingIn:"ending in ••••",hasBeenSaved:"has been saved.",canNowCollectInvoicePayments:"can now collect invoice payments from this method.",addYourPaymentDetails:"Add your payment details",companyFallback:"This company",wouldLikeToCollectPaymentMethod:"would like to collect your payment method so future invoices can be paid automatically.",companyNotFinishedSetup:"This company hasn't finished setting up invoice payments yet. Please try again later or contact them directly.",securedByStripePlaid:"Secured by Stripe & Plaid. This link is unique to you.",cardElementNotReady:"Card element not ready",invoiceUnavailable:"Invoice unavailable",invoiceUnavailableDescription:"We couldn't load the invoice for this payment link. Please ask your vendor for a new link.",invoicePaid:"Payment received",invoicePaidDescription:"Thank you. Payment has been received for invoice",invoiceNoLongerPayable:"This invoice can't be paid",invoiceVoidedDescription:"This invoice has been voided. Please contact your vendor if you have questions.",invoicePayment:"Pay invoice",invoiceFrom:"Invoice from",invoiceNumber:"Invoice number",checkoutCanceled:"Payment was canceled. You have not been charged and can try again.",paymentProcessing:"Your payment is processing. This page will update when it is confirmed.",checkoutStartFailed:"We couldn't open secure checkout. Please try again.",openingSecureCheckout:"Opening secure checkout…",payNow:"Pay now",securedByStripe:"Secure one-time payment powered by Stripe. Your payment method won't be saved.",linkExpired:"This payment link has expired",expiredLinkRefreshing:"Sending a fresh secure link to your email…",expiredLinkEmailSent:"Check your email",expiredLinkEmailSentDescription:"A fresh secure link has been sent to the invoice recipient.",expiredLinkRefreshUnavailable:"Secure payment access is unavailable. Please contact your vendor."},invoicingPaymentList:{totalCollected:"Total Collected",noPaymentsMatchSearch:"No payments match your search.",noPaymentsYet:"No payments yet.",importPaymentsDescription:"Bring in your historical payments data by importing your payment csv file",noPaymentsYetTitle:"No Payments Yet",searchByCustomerOrTransaction:"Search by customer or transaction"},invoicingRecordPayment:{paymentMethodDirectDebit:"Direct Debit",paymentMethodApplePay:"Apple Pay",paymentMethodGooglePay:"Google Pay",paymentMethodAchCredit:"ACH Credit",paymentMethodSepaCredit:"SEPA Credit",gatewayBraintree:"Braintree",gatewayAdyen:"Adyen",gatewayRazorpay:"Razorpay",placeholderSelectInvoice:"Select invoice (optional)",unallocatedPaymentHint:"Leave invoice unselected to record an unallocated payment.",validationAmountExceedsDue:"Payment amount cannot exceed the amount due.",validationSelectCustomer:"Select a customer for this payment.",validationSelectPaymentMethod:"Select a payment method.",validationEnterValidAmount:"Enter a valid payment amount.",placeholderAddCustomer:"Add customer ID or name",placeholderSelectPaymentMethod:"Select payment method",placeholderSelectGateway:"Select gateway",sectionReference:"Reference",placeholderAddTransactionId:"Add transaction ID",placeholderAddReferenceNumber:"Add reference number",labelInvoiceToLink:"Invoice to Link",placeholderAddInvoiceToLink:"Add invoice to link",labelComment:"Comment",placeholderCommentInternalNote:"Internal note about this payment"},invoicingIssueCreditNote:{validationSelectLineItem:"Select at least one line item to credit.",validationSelectReason:"Select a reason for this credit note.",validationEnterValidAmount:"Enter a valid credit amount for each selected line.",validationExceedsAmountDue:"Credit total cannot exceed the invoice amount due.",sectionCreditDetails:"Credit Details",sectionLineItems:"Line Items to Credit",labelCreditTotal:"Credit Total",placeholderSelectReason:"Select reason",columnInclude:"Include",columnLineTotal:"Line Total",reasonServiceCredit:"Service credit",reasonBillingError:"Billing error",reasonDuplicateCharge:"Duplicate charge",reasonPricingCorrection:"Pricing correction",reasonGoodwill:"Goodwill"},invoicingOnboarding:{promoText:"Get paid faster with Zeni Invoicing.",promoText2:"Create branded invoices, automate recurring billing and dunning, and collect payments — all in one place.",setupPendingText:"Zeni Invoicing set up is pending, please check with your admin.",getStartedButton:"Setup Invoices",termsPrefix:'By clicking "Setup Invoices" you agree to the ',termsAgreement:"Zeni Invoices Agreement",termsSuffix:". ✌🏻",item1:"Professional branded invoices",item2:"Automated recurring billing",item3:"Smart dunning & payment recovery",item4:"Real-time revenue analytics",trustBanner:{title:"Zeni Invoices is trusted by Matic Robotics and 602+ growing companies",subtitle:"Create professional invoices, automate reminders, and reduce overdue payments with intelligent collections powered by Zeni AI."},footer:{title:"Finish setting up Invoicing",subtitle:"Review your settings, then click Enable Invoicing to start using Zeni Invoicing.",enableInvoicingButton:"Enable Invoicing",pendingPrefix:"Still to do:",pendingQbo:"Configure QuickBooks"}},invoicingSettings:{paymentTermsPlaceholder:"30",paymentDestinationSectionSubtitle:"Connect a Stripe account to collect invoice payments and receive payouts.",invoiceBrandingSectionSubtitle:"Configure company details, logo, and how invoices appear to customers.",firstRetryEmailBody:`Hi {{customer_name}},
106
+ available for 24hrs`,filesDetectedSuffix:" files detected",modulesFetchedSuffix:" modules fetched from Chargebee",autoIdentifiedFromHeaders:"Auto-identified from headers",pulledViaChargebeeApi:"Pulled via Chargebee API",needAttentionSuffix:" need attention",buttonSaveContinueLater:"Save & Continue Later",buttonStarting:"Starting…",importRecordsPrefix:"Import ",importRecordsSuffix:" Records",recordsFetchedSuffix:" records fetched",expandIconOpen:"▾",expandIconClosed:"▸",importingFinalizing:"Finalizing…",importingChargebeeData:"Importing your Chargebee Data",rollbackFallback24Hours:"24 hours",doneYouAreOnZeni:"You are on Zeni",doneImportedPrefix:"Imported ",doneRecordsFromChargebeeSuffix:" records from Chargebee",rollbackAvailableUntilPrefix:"Rollback available until ",buttonGoToOverview:"Go to Overview",importFailedHeading:"Import failed",failedMessageCsv:"Your uploaded data is still saved — retry resumes without re-reading your files.",failedMessageChargebee:"Your scanned data is still saved — retry resumes without re-fetching from Chargebee.",buttonRetrying:"Retrying…",buttonRetryImport:"Retry import",diagnosticsTitle:"Import details",diagnosticsSubtitle:"Review skipped records and warnings from this import session.",diagnosticsNotFound:"This import session could not be found.",diagnosticsSection:"Row diagnostics",diagnosticsSummary:"Import summary",diagnosticsSearchPlaceholder:"Search source ID, file, or issue",diagnosticsAllModules:"All modules",diagnosticsAllSeverities:"All severities",diagnosticsAllOutcomes:"All outcomes",diagnosticsErrors:"Errors",diagnosticsWarning:"Warning",diagnosticsSkipped:"Skipped",diagnosticsWarningOutcome:"Imported with warning",diagnosticsSourceRecord:"Source record",diagnosticsRow:"Row",diagnosticsSeverity:"Severity",diagnosticsOutcome:"Outcome",diagnosticsNoIssues:"No row-level issues match these filters.",diagnosticsExpired:"Row-level diagnostics have expired after the 90-day retention period.",diagnosticsFetchFailed:"We could not load row-level diagnostics. Please try again.",diagnosticsDownloadCsv:"Download CSV",diagnosticsLoading:"Loading diagnostics…",diagnosticsJobFailure:"The import job failed",diagnosticsJobFailureHelp:"This is a job-level failure. Any row-level issues found before it stopped are listed below.",diagnosticsChargebeeApi:"Chargebee API",diagnosticsSource:"Import source",diagnosticsCsvUpload:"CSV upload",diagnosticsTotal:"Total records",diagnosticsImporting:"Importing",diagnosticsRolledBack:"Rolled back",diagnosticsScanning:"Scanning",diagnosticsRetainedUntil:"Diagnostics retained until"},invoicingDiscountDetail:{month:"month",limitedSinglePeriod:"Limited · 1 ",limitedMultiPeriodPrefix:"Limited · ",discountNotFound:"Discount not found.",couponNamePlaceholder:"Coupon name",invoiceNotesPlaceholder:"Notes shown on invoices",discountConfiguration:"Discount Configuration",revRecTreatment:"Rev Rec Treatment",restrictedProducts:"Restricted Products",validityAndRedemptions:"Validity & Redemptions",unlimited:"Unlimited"},invoicingDiscountList:{totalDiscounted:"Total Discounted",noDiscountsMatchSearch:"No discounts match your search.",noDiscountsYet:"No discounts yet.",importDiscountsDescription:"Bring in your historical discount coupons data by importing your discount coupon csv file",noDiscountCouponsYet:"No Discount Coupons Yet",searchByNameOrCode:"Search by name or code",discounts:"Discounts"},invoicingDunningDetail:{emailComposerTitle:"Send dunning email",emailComposerDescription:"Review and edit the message, then confirm the exact branded email before sending.",emailCc:"CC (optional)",emailCcHint:"Separate multiple email addresses with commas.",emailCcInvalid:"Enter valid CC email addresses.",emailBody:"Message",emailRecipientRequired:"Enter a valid recipient email address.",emailSubjectRequired:"Enter an email subject.",emailBodyRequired:"Enter an email message.",emailPreview:"Email preview",emailPreviewUpdating:"Updating preview…",emailPreviewLoading:"Loading the branded email preview…",emailPreviewUnavailable:"Edit the subject or message to generate a new preview.",emailPreviewFrameTitle:"Rendered dunning email preview",daysSuffix:" days",dunningCaseNotFound:"Dunning case not found.",dunningTitlePrefix:"Dunning ",caseDetails:"Case Details",caseId:"Case ID",pausedUntil:"Paused until ",lastAttempt:"Last Attempt",pauseReason:"Pause Reason",timeline:"Timeline",noDunningAttempts:"No dunning attempts recorded yet.",retryAttemptPrefix:"Retry attempt #",failedSuffix:" failed",cancelCase:"Cancel Case",failureReason:"Failure Reason",resolveCase:"Resolve Case",resumeDunning:"Resume Dunning",retryNow:"Retry Now",sendEmail:"Send email"},invoicingDunningList:{activeCases:"Active Cases",atRiskAmount:"At-Risk Amount",recoveryRate:"Recovery Rate",totalCases:"Total Cases",noDunningCasesMatchSearch:"No dunning cases match your search.",noDunningCasesYet:"No dunning cases yet.",importDunningDescription:"Bring in your historical dunning data by importing your dunning coupon csv file",noDunningYet:"No Dunning Yet",searchByCustomerOrInvoice:"Search by customer or invoice"},invoicingInvoiceDetail:{zip:"ZIP",paidOn:"Paid on",taxRate:"Tax Rate",amountApplied:"Amount Applied",attempt:"Attempt",invoiceNotFound:"Invoice not found.",invoiceDocuments:"Invoice Documents",pdfExtension:".pdf",generatedPrefix:"Generated · ",pdfUnavailable:"PDF is not available yet.",amountBreakdown:"Amount Breakdown",subTotalBeforeCredits:"Subtotal (before credits)",creditsApplied:"Credits Applied",amountAdjusted:"Amount Adjusted",amountPaid:"Amount Paid",excessPayment:"Excess Payment",writeOffAmount:"Write Off Amount",noPaymentsApplied:"No payments applied.",issuedCreditNotes:"Issued Credit Notes",noCreditNotes:"No credit notes.",adjustmentCreditNotes:"Adjustment Credit Notes",voidInvoiceDialogTitle:"Void invoice?",voidInvoiceDialogDescription:"Voiding {invoice_number} cannot be undone. The invoice will no longer be collectible.",voidInvoiceDialogDescriptionGeneric:"Voiding this invoice cannot be undone. The invoice will no longer be collectible.",voidInvoiceCreateAdjustmentCreditNote:"Create adjustment credit note",voidInvoiceAdjustmentCreditNoteHelp:"Offsets the invoice balance with a credit note dated today. Use this for backdated invoices to avoid restating a closed accounting period in QuickBooks.",voidInvoiceConfirm:"Void invoice",nextRetry:"Next retry",noDunningAttempts:"No dunning attempts.",additionalDetails:"Additional Details",note:"Note",discard:"Discard",invoiceSummary:"Invoice Summary",regenerate:"Regenerate",sendReminder:"Send Reminder",unitAmount:"Unit Amount",voidInvoice:"Void Invoice",issueCreditNote:"Issue Credit Note"},invoicingInvoiceList:{totalInvoicedKpiLabel:"Total Invoiced",noInvoicesMatchSearch:"No invoices match your search.",noInvoicesYet:"No invoices yet.",importInvoicesDescription:"Bring in your historical invoices data by importing your invoice csv file",noInvoicesYetTitle:"No Invoices Yet",searchInvoicesPlaceholder:"Search by invoice no. or customer"},invoicingPaymentLink:{linkInvalidOrExpired:"The link is invalid or has expired.",verifyingSecureLink:"Verifying your secure link…",linkCannotBeOpened:"This link can't be opened",askVendorForNewLink:"Please ask your vendor to send a new payment link.",failedToConnectBankAccount:"Failed to connect bank account.",bankConnectionError:"Bank connection error. Please try again.",failedToStartCardSetup:"Failed to start card setup.",youreAllSet:"You're all set",bankAccount:"Bank account",endingIn:"ending in ••••",hasBeenSaved:"has been saved.",canNowCollectInvoicePayments:"can now collect invoice payments from this method.",addYourPaymentDetails:"Add your payment details",companyFallback:"This company",wouldLikeToCollectPaymentMethod:"would like to collect your payment method so future invoices can be paid automatically.",companyNotFinishedSetup:"This company hasn't finished setting up invoice payments yet. Please try again later or contact them directly.",securedByStripePlaid:"Secured by Stripe & Plaid. This link is unique to you.",cardElementNotReady:"Card element not ready",invoiceUnavailable:"Invoice unavailable",invoiceUnavailableDescription:"We couldn't load the invoice for this payment link. Please ask your vendor for a new link.",invoicePaid:"Payment received",invoicePaidDescription:"Thank you. Payment has been received for invoice",invoiceNoLongerPayable:"This invoice can't be paid",invoiceVoidedDescription:"This invoice has been voided. Please contact your vendor if you have questions.",invoicePayment:"Pay invoice",invoiceFrom:"Invoice from",invoiceNumber:"Invoice number",checkoutCanceled:"Payment was canceled. You have not been charged and can try again.",paymentProcessing:"Your payment is processing. This page will update when it is confirmed.",checkoutStartFailed:"We couldn't open secure checkout. Please try again.",openingSecureCheckout:"Opening secure checkout…",payNow:"Pay now",securedByStripe:"Secure one-time payment powered by Stripe. Your payment method won't be saved.",linkExpired:"This payment link has expired",expiredLinkRefreshing:"Sending a fresh secure link to your email…",expiredLinkEmailSent:"Check your email",expiredLinkEmailSentDescription:"A fresh secure link has been sent to the invoice recipient.",expiredLinkRefreshUnavailable:"Secure payment access is unavailable. Please contact your vendor."},invoicingPaymentList:{totalCollected:"Total Collected",noPaymentsMatchSearch:"No payments match your search.",noPaymentsYet:"No payments yet.",importPaymentsDescription:"Bring in your historical payments data by importing your payment csv file",noPaymentsYetTitle:"No Payments Yet",searchByCustomerOrTransaction:"Search by customer or transaction"},invoicingRecordPayment:{paymentMethodDirectDebit:"Direct Debit",paymentMethodApplePay:"Apple Pay",paymentMethodGooglePay:"Google Pay",paymentMethodAchCredit:"ACH Credit",paymentMethodSepaCredit:"SEPA Credit",gatewayBraintree:"Braintree",gatewayAdyen:"Adyen",gatewayRazorpay:"Razorpay",placeholderSelectInvoice:"Select invoice (optional)",unallocatedPaymentHint:"Leave invoice unselected to record an unallocated payment.",validationAmountExceedsDue:"Payment amount cannot exceed the amount due.",validationSelectCustomer:"Select a customer for this payment.",validationSelectPaymentMethod:"Select a payment method.",validationEnterValidAmount:"Enter a valid payment amount.",placeholderAddCustomer:"Add customer ID or name",placeholderSelectPaymentMethod:"Select payment method",placeholderSelectGateway:"Select gateway",sectionReference:"Reference",placeholderAddTransactionId:"Add transaction ID",placeholderAddReferenceNumber:"Add reference number",labelInvoiceToLink:"Invoice to Link",placeholderAddInvoiceToLink:"Add invoice to link",labelComment:"Comment",placeholderCommentInternalNote:"Internal note about this payment",amountDueLabel:"Amount Due",invoiceContextTitle:"Invoice",sectionPaymentDetails:"Payment Details"},invoicingIssueCreditNote:{validationSelectLineItem:"Select at least one line item to credit.",validationSelectReason:"Select a reason for this credit note.",validationEnterValidAmount:"Enter a valid credit amount for each selected line.",validationExceedsAmountDue:"Credit total cannot exceed the invoice amount due.",sectionCreditDetails:"Credit Details",sectionLineItems:"Line Items to Credit",labelCreditTotal:"Credit Total",placeholderSelectReason:"Select reason",columnInclude:"Include",columnLineTotal:"Line Total",reasonServiceCredit:"Service credit",reasonBillingError:"Billing error",reasonDuplicateCharge:"Duplicate charge",reasonPricingCorrection:"Pricing correction",reasonGoodwill:"Goodwill",columnDescription:"Description",columnQuantity:"Qty",columnUnitAmount:"Unit Amount",labelAmountDue:"Amount Due",sectionInvoiceSummary:"Invoice Summary",placeholderSelectType:"Select type"},invoicingOnboarding:{promoText:"Get paid faster with Zeni Invoicing.",promoText2:"Create branded invoices, automate recurring billing and dunning, and collect payments — all in one place.",setupPendingText:"Zeni Invoicing set up is pending, please check with your admin.",getStartedButton:"Setup Invoices",termsPrefix:'By clicking "Setup Invoices" you agree to the ',termsAgreement:"Zeni Invoices Agreement",termsSuffix:". ✌🏻",item1:"Professional branded invoices",item2:"Automated recurring billing",item3:"Smart dunning & payment recovery",item4:"Real-time revenue analytics",trustBanner:{title:"Zeni Invoices is trusted by Matic Robotics and 602+ growing companies",subtitle:"Create professional invoices, automate reminders, and reduce overdue payments with intelligent collections powered by Zeni AI."},footer:{title:"Finish setting up Invoicing",subtitle:"Review your settings, then click Enable Invoicing to start using Zeni Invoicing.",enableInvoicingButton:"Enable Invoicing",pendingPrefix:"Still to do:",pendingQbo:"Configure QuickBooks"}},invoicingSettings:{paymentTermsPlaceholder:"30",paymentDestinationSectionSubtitle:"Connect a Stripe account to collect invoice payments and receive payouts.",invoiceBrandingSectionSubtitle:"Configure company details, logo, and how invoices appear to customers.",firstRetryEmailBody:`Hi {{customer_name}},
107
107
 
108
108
  We were unable to process your payment of {{amount}} for {{subscription_name}}. We'll retry your payment shortly.
109
109
 
@@ -119,7 +119,7 @@ Please take immediate action to update your billing information.`,finalNoticeTem
119
119
 
120
120
  Your account has been suspended due to non-payment of {{amount}}. All services have been paused.
121
121
 
122
- To reactivate your account, please settle the outstanding balance. Contact support if you need assistance.`,accountSuspensionTemplateName:"Account Suspension",accountSuspensionEmailSubject:"Your account has been suspended due to non-payment",onOptionLabel:"On",previewLineItemProfessionalServices:"Professional services — March",previewLineItemOnboardingSetup:"Onboarding & setup",logoInvalidImageTypeError:"Please choose a PNG, JPG, SVG, or WEBP image.",logoTooLargeError:"Logo must be 2 MB or smaller.",connectStripeDialogTitle:"Connect your Stripe account",connectStripeDialogDescription:"Paste the API keys from your Stripe account to start collecting payments. We use your secret key server-side and your publishable key for in-browser card capture.",secretKeyLabel:"Secret key",secretKeyPlaceholder:"sk_live_… or rk_live_…",publishableKeyLabel:"Publishable key",publishableKeyPlaceholder:"pk_live_…",webhookSigningSecretLabel:"Webhook signing secret",webhookSecretPlaceholder:"whsec_…",stripeWebhookUrlLabel:"Webhook endpoint",stripeWebhookSetupDescription:"In your Stripe Dashboard, create a webhook event destination with these settings:",stripeWebhookAccountInstruction:"Event source: Your account",stripeWebhookPayloadInstruction:"Payload style: Snapshot",stripeWebhookEventsInstruction:"Events: All events",stripeWebhookUrlInstruction:"Paste the webhook endpoint shown below.",stripeWebhookSecretInstruction:"Create the destination, reveal its signing secret, and paste the whsec_… value into the Webhook signing secret field below.",quickbooksIntegrationDescription:"Read and write ledger of record. Invoices, expenses, GL, chart of accounts, journal entries.",stripeIntegrationDescription:"Payment processing — charges, refunds, payouts, disputes, MRR.",chargebeeIntegrationDescription:"Subscription analytics — MRR, ARR, churn, active subscriptions.",stripeConnectedHeading:"Stripe Connected",yourStripeAccountFallback:"Your Stripe account",stripeAccountCardTitle:"Stripe account",stripeAccountIdLabel:"Account ID",payoutBankLabel:"Payout bank account",defaultCurrencyLabel:"Default currency",payoutsEnabledLabel:"Payouts enabled",payoutsDisabledLabel:"Payouts disabled",stripePayoutNote:"Payouts are deposited to the bank account configured in your Stripe payout settings.",manageStripePayoutsLinkLabel:"Manage payouts in Stripe",disconnectingButtonLabel:"Disconnecting…",disconnectStripeButtonLabel:"Disconnect Stripe account",noPaymentDestinationHeading:"No payment destination connected",noPaymentDestinationHelper:"Connect a Stripe account to start collecting payments. Your payout account is where invoice payments will be deposited.",connectingButtonLabel:"Connecting…",connectStripeButtonLabel:"Connect Stripe Account",livePreviewLabel:"Live preview",defaultInvoicePrefix:"INV",previewInvoiceNumberSuffix:"-0001",companyNameLabel:"Company name",billingEmailLabel:"Billing email",taxIdEinLabel:"Tax ID / EIN",timezoneLabel:"Timezone",timezonePlaceholder:"America/Los_Angeles",businessAddressLabel:"Business address",brandingTitle:"Branding",uploadLogoLabel:"Upload logo",logoPreviewAlt:"Logo preview",currentLogoText:"Current logo",removeLogoAriaLabel:"Remove logo",logoFormatsHint:"PNG, JPG, SVG or WEBP · max 2 MB",pasteLogoUrlLabel:"Or paste your logo URL",logoUrlPlaceholder:"https://…/logo.png",accentColorLabel:"Accent color",othersTitle:"Others",invoicePrefixLabel:"Invoice prefix",dateFormatLabel:"Date format",netTermDaysLabel:"Net term days",paymentTermsLabel:"Payment terms",defaultMemoLabel:"Default memo",showTaxIdOnInvoices:"Show tax ID on invoices",showServicePeriods:"Show service periods",dunningScheduleTitle:"Dunning Schedule",dunningScheduleSubtitle:"Configure the sequence of actions taken when a payment fails",stepColumnHeader:"Step #",stepColumnHelp:"The order in which each dunning reminder runs.",daysAfterDueColumnHeader:"Days After Due",daysAfterDueColumnHelp:"Days after the invoice due date before this step runs.",actionColumnHelp:"What happens at this step (e.g. email the customer).",emailTemplateColumnHeader:"Email Template",generalDunningSettingsTitle:"General Dunning Settings",autoCollectionLabel:"Auto collection",maxRetryAttemptsLabel:"Max retry attempts",retryIntervalDaysLabel:"Retry interval (days)",saveDunningSettingsButtonLabel:"Save Dunning Settings",emailTemplatesTitle:"Email Templates",emailTemplatesSubtitle:"Customize the emails sent at each dunning step",escalationCapsuleLabel:"Escalation",subjectLineLabel:"Subject line",bodyLabel:"Body",qboSettingsPageTitle:"QuickBooks Online Sync",qboEnableSyncLabel:"Enable QuickBooks sync",qboEnableSyncDescription:"Sync invoices, payments, credit notes, and customers to QuickBooks Online.",qboAccountMappingsSectionTitle:"Account Mappings",qboAccountMappingsSectionDescription:"Choose which QuickBooks accounts each invoicing amount posts to.",qboCustomerMatchingSectionTitle:"Customer Matching",qboCustomerMatchingSectionDescription:"Customers are matched to existing QuickBooks records by email first, then by company name. Customers imported with a QuickBooks ID keep their existing link.",qboCustomerMatchingLabel:"When a customer syncs",qboBehaviorSectionTitle:"Sync Behavior",qboAutoCreateItemsLabel:"Auto-create items",qboAutoCreateItemsDescription:"Create missing QuickBooks items automatically when invoices sync.",qboTrackingCategoriesLabel:"Tracking categories",qboTrackingCategoriesDescription:"Tag synced transactions with QuickBooks classes.",qboClosedPeriodVoidLabel:"Closed-period voids as credit memos",qboClosedPeriodVoidDescription:"Record voids that fall in a closed accounting period as credit memos instead.",qboBackfillSectionTitle:"History Backfill",qboSyncStartDateLabel:"Sync start date",qboBackfillButtonLabel:"Backfill history",qboBackfillingButtonLabel:"Backfilling…",qboBackfillHint:"Re-queue invoicing records created on or after the sync start date.",qboBackfillRequiresSyncHint:"Enable and save QuickBooks sync to run a backfill.",qboSyncHealthSectionTitle:"Sync Health",qboSyncHealthEmptyLabel:"No sync activity yet.",qboFailedTasksTitle:"Failed syncs",qboFailedTaskAttemptsLabel:"{attempts} attempts",qboSaveButtonLabel:"Save QuickBooks Settings"},invoicingSubscriptionDetail:{changeTermEndTitle:"Change term end",changeTermEndDateLabel:"New term end date",pauseSubscriptionDateLabel:"Resume date",pauseSubscriptionHint:"Leave blank to pause without a resume date.",cancelSubscriptionMessage:"Cancel this subscription immediately? Use “Set non-renewing” to cancel at end of term instead.",everyUnit:"Every ${unit}",everyPeriodUnits:"Every ${period} ${unit}s",charge:"Charge",viewInvoices:"View Invoices",reactivate:"Reactivate",cadenceCurrencySubtitle:'${billingCadence(subscription)} · ${currency ?? "USD"}',billingCycle:"Billing Cycle",unitPrice:"Unit Price",couponNumber:"Coupon #",appliedUsed:"Applied/Used",subscriptionNotFound:"Subscription not found.",cancellation:"Cancellation",cancelledOn:"Cancelled on",trialStart:"Trial start",trialEnd:"Trial end",daysRemaining:"Days remaining",planItemPrice:"Plan Item Price",currentTerm:"Current term",nextBilling:"Next billing",billingPeriod:"Billing period",dueInvoices:"Due invoices",totalDues:"Total dues",remainingCycles:"Remaining cycles",scheduledChanges:"Scheduled changes",setupFeeOneTime:"Setup fee (one-time)",startedDate:"Started Date",activationDate:"Activation Date",updatedDate:"Updated Date",dueSince:"Due Since",autoCollectionCount:"Auto Collection Count",subscriptionItems:"Subscription Items",noSubscriptionItems:"No subscription items.",noAddOns:"No add-ons.",coupons:"Coupons",noCoupons:"No coupons.",contractTerm:"Contract Term",contractId:"Contract ID",active:"active",contractPeriod:"Contract Period",actionAtTermEnd:"Action at term end",renew:"renew",cancelBeforeNoticePeriod:"Cancel before notice period",totalContractValue:"Total contract value"},invoicingSubscriptionForm:{billingFrequencyHalfYearly:"Half-Yearly",selectCustomerValidation:"Select a customer for this subscription.",selectPlanValidation:"Select a plan for this subscription.",editSubscriptionTitle:"Edit Subscription",subscriptionDetailsDescription:"Add details to create a new subscription.",planQuantityLabel:"Quantity",billingCyclesPlaceholder:"Renews forever",billingCyclesHint:"Paid invoices including the first one. Leave blank to renew forever.",startDateAfterTrialEndValidation:"Trial end date must be later than the start date.",addonsDescription:"Recurring add-ons billed on the same cycle.",noAddonsAvailable:"No add-ons available",selectAddonsPlaceholder:"Select add-ons",oneTimeChargesDescription:"Billed once on the first invoice.",oneTimeChargesTitle:"One Time Charges",noChargesAvailable:"No charges available",selectOneTimeChargesPlaceholder:"Select one time charges",referencesSchedulesDescription:"Trial, PO and coupon details.",referencesSchedulesTitle:"References & Schedules",setupFeeLabel:"Setup Fee",trialEndDateLabel:"Trial End Date",noCouponPlaceholder:"No coupon",shippingAddressDescription:"Optional address for shippable plans.",shipCountryLabel:"Country (ISO)",shipZipLabel:"ZIP / Postal"},invoicingSubscriptionList:{perPrefix:"Per ",everyPrefix:"Every ",noSubscriptionsMatchSearch:"No subscriptions match your search.",noSubscriptionsYet:"No subscriptions yet.",emptyStateDescription:"Bring in your historical subscription data by importing your subscriptions csv file",emptyStateTitle:"No Subscriptions Yet",searchPlaceholder:"Search by customer or plan"},invoicingTransactionDetail:{capture:"Capture",viewInvoice:"View Invoice",viewSubscription:"View Subscription",viewCustomer:"View Customer",unusedAmount:"Unused Amount",capturableAmount:"Capturable Amount",applied:"Applied",transactionNotFound:"Transaction not found.",transactionTitlePrefix:"Transaction ",transactionDetails:"Transaction Details",settledAt:"Settled At",refundedTransaction:"Refunded Transaction",customerAndSubscription:"Customer & Subscription",paymentMethodAndGateway:"Payment Method & Gateway",paymentSourceId:"Payment Source ID",gatewayAccount:"Gateway Account",idAtGateway:"ID at Gateway",security:"Security",threeDSecure:"3-D Secure",fraudFlag:"Fraud Flag",none:"None",fraudReason:"Fraud Reason",errorDetails:"Error Details",errorCode:"Error Code",errorMessage:"Error Message",linkedInvoices:"Linked Invoices",noLinkedInvoices:"No linked invoices.",linkedCreditNotes:"Linked Credit Notes",noLinkedCreditNotes:"No linked credit notes.",noRefunds:"No refunds."}},L2t=["en-US","en-IN","en"],B2t=e=>Q.stringToUnionStrict(e,L2t),ehe={en:m9,"en-US":m9,"en-IN":m9};class Yle{getAppLocaleID(){return this.#e}getLocalizedStrings(){return ehe[this.#e]}updateAppLocaleID(o){if(ehe[o]==null)throw Error(`strings are not available in ${o}`);Q.updateZeniDateLocaleID(o),this.updateLibsLocale(o),this.#e=o,console.log(`Set the locale to ${this.#e}`)}currencyFormatter(o=0,i="standard"){switch(this.getAppLocaleID()){case"en-IN":return Intl.NumberFormat(this.getAppLocaleID(),{maximumFractionDigits:o,minimumFractionDigits:0,style:"currency",currency:"INR",currencySign:i});case"en-US":case"en":return Intl.NumberFormat("en-US",{maximumFractionDigits:o,minimumFractionDigits:0,style:"currency",currency:"USD",currencySign:i})}}numberFormatter(o=0){switch(this.getAppLocaleID()){case"en-IN":return Intl.NumberFormat(this.getAppLocaleID(),{maximumFractionDigits:o,minimumFractionDigits:0});case"en-US":case"en":return Intl.NumberFormat("en-US",{maximumFractionDigits:o,minimumFractionDigits:0})}}updateLibsLocale(o){t.numeral.locale(o.toLowerCase())}static registerNumeralForEnINLocale(){t.numeral.locales["en-in"]==null&&t.numeral.register("locale","en-in",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(o){const i=o%10;return~~(o%100/10)===1?"th":i===1?"st":i===2?"nd":i===3?"rd":"th"},currency:{symbol:"₹"}})}static registerNumeralForEnUSLocale(){t.numeral.locales["en-us"]==null&&t.numeral.register("locale","en-us",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(o){const i=o%10;return~~(o%100/10)===1?"th":i===1?"st":i===2?"nd":i===3?"rd":"th"},currency:{symbol:"$"}})}#e="en";static#t=new Yle;static instance(){return this.registerNumeralForEnINLocale(),this.registerNumeralForEnUSLocale(),this.#t}}const q=Yle.instance(),yse=e=>e<600?"small":e>=600&&e<905?"medium-compact":e>=905&&e<1240?"medium-regular":e>=1240&&e<1440?"large":e>=1440&&e<1920?"extra-large":e>=1920?"ultra-large":(console.warn("this can't happen!"),"medium-regular"),QUe=h.createContext(yse(window.innerWidth)),oe=()=>h.useContext(QUe),P2t=e=>{const[o,i]=h.useState(e.fixedWindowSize??yse(window.innerWidth));return h.useEffect(()=>{const r=()=>{const a=yse(window.innerWidth);e.fixedWindowSize==null&&o!=null&&o!=a&&i(a)};return window.addEventListener("resize",r),()=>{window.removeEventListener("resize",r)}},[e.fixedWindowSize,o]),t.jsxRuntimeExports.jsx(QUe.Provider,{value:o,children:e.children})},D2t=(e,o,i,r,a,l)=>({small:e,"medium-compact":o,"medium-regular":i??o,large:r??i??o,"extra-large":a??r??i??o,"ultra-large":l??a??r??i??o});class E{constructor(o,i,r,a,l,c){this._size=D2t(o,i,r,a,l,c)}value(o="medium-regular"){switch(o){case"small":return this._size.small;case"medium-compact":return this._size["medium-compact"];case"medium-regular":return this._size["medium-regular"];case"large":return this._size.large;case"extra-large":return this._size["extra-large"];case"ultra-large":return this._size["ultra-large"]}}valuePx(o="medium-regular"){return`${this.value(o)}px`}valuePercentage(o="medium-regular"){return`${this.value(o)}%`}add(o){return new E(this._size.small+o._size.small,this._size["medium-compact"]+o._size["medium-compact"],this._size["medium-regular"]+o._size["medium-regular"],this._size.large+o._size.large,this._size["extra-large"]+o._size["extra-large"],this._size["ultra-large"]+o._size["ultra-large"])}subtract(o){return new E(this._size.small-o._size.small,this._size["medium-compact"]-o._size["medium-compact"],this._size["medium-regular"]-o._size["medium-regular"],this._size.large-o._size.large,this._size["extra-large"]-o._size["extra-large"],this._size["ultra-large"]-o._size["ultra-large"])}_size}const Nd=e=>e==="small"||e==="medium-compact",yp=e=>e==="small";var $=(e=>(e.brandColorOnyx="#162324",e.brandColorPearl="#FAFAFA",e.brandColorSapphire="#366170",e.brandColorSapphireDark="#26454F",e.brandColorSapphireLight="#D2E3E9",e.brandColorJade="#97C3B9",e.brandColorJadeDark="#508B7E",e.brandColorJadeLight="#D5E7E3",e.brandColorOpal="#C9ABC7",e.brandColorOpalDark="#855682",e.brandColorOpalLight="#E5D7E4",e.brandColorGold="#EEBA7D",e.brandColorGoldDark="#C27419",e.brandColorGoldLight="#F7E0C4",e.brandColorRuby="#AD584A",e.brandColorRubyDark="#9A4E42",e.brandColorRubyLight="#EBD4D1",e.primaryDark="#FAFAFA",e.primaryLight="#162324",e.backgroundThemeLight="#F3F7F7",e.backgroundThemeDark="#1B1C1C",e.championLight="#4B5253",e.championDark="#D4DBDB",e.heroLight="#757D7E",e.heroDark="#AAB4B5",e.neutralGrey1Light="#A6B0B1",e.neutralGrey1Dark="#727979",e.neutralGrey2Light="#D4DCDD",e.neutralGrey2Dark="#545B5C",e.neutralGrey3Light="#E9F0F0",e.neutralGrey3Dark="#3E4343",e.neutralGrey4Light="#FAFCFC",e.neutralGrey4Dark="#202222",e.neutralGrey5Light="#FFFFFF",e.neutralGrey5Dark="#2C2F2F",e.topExCustomColor="#90EE7D40",e.offerColor="#EF7F56",e.comingSoon="#5EBBF5",e.badgeBackground="#E9F0F033",e.dropShadowNormalLight="rgba(166, 177, 174, 0.24)",e.dropShadowNormalDark="rgba(0, 0, 0, 0.24)",e.dropShadowHoverLight="rgba(166, 177, 174, 0.8)",e.blackColor="#000000",e.billPayPromoColor="#8D6C9F",e.billPayPromoColorHover="rgba(238, 186, 125, 0.4)",e.billPayPromoBorderColorLight="#FBD1A0",e.billPayPromoBorderColorDark="#714B1E",e.billPayPromoBackGroundColorLight="#FFFBF5",e.reimbursementPromoColor="#5DB59A",e.reimbursementPromoColorHover="rgba(93, 181, 154, 0.4)",e.reimbursementPromoBorderColorLight="#CCE8DF",e.reimbursementPromoBorderColorDark="#545D5B",e.reimbursementPromoBackGroundColorLight="#EDFFF8",e.primaryWhite="#FEFEFE",e.rewardsPromoColor1="#397C93",e.rewardsPromoColor2="#065773",e.zeniAccountsPromoBackgroundColor="#D0E7E2",e.zeniAccountsPromoBackgroundColorLight="#D0E7E250",e.zeniAccountsPromoBackgroundColorDark="#3E434350",e.zeniAccountsPromoNavigationDotHoverColorLight="#36617032",e.zeniAccountsPromoNavigationDotHoverColorDark="#97C3B932",e.zeniAccountsPromoCardTitleLight="#4B4F53",e.chargeCardsGradientColor1="#ECECEC",e.chargeCardsGradientColor2="#626565",e.chargeCardsGradientColor3="#A8B1B1",e.chargeCardsGradientColor4="#444A4A",e.chargeCardBoxShadow1="rgba(132, 134, 137, 0.80)",e.chargeCardBoxShadow2="rgba(0, 0, 0, 0.35)",e.chargeCardBackgroundShadowLight="rgba(166,172,177,0.7)",e.chargeCardBackgroundShadowDark="rgba(0,0,0,0.8)",e.issueChargeCardBackgroundShadowLight="rgba(166,172,177,0.25)",e.issueChargeCardBackgroundShadowDark="rgba(0,0,0,0.25)",e.physicalCardBoxShadow="#68AAA0",e.chargeCardFaded="rgba(166, 176, 177, 0.65)",e.phoneSignalColor="#3C3C432E",e.batteryBorderColor="#3c3c4399",e.physicalCardBlueColor1="#eaeff8",e.physicalCardBlueColor2="#bdd4ee",e.physicalCardYellowColor1="#ffe9c6",e.physicalCardYellowColor2="#fff8ec",e.plaidVerificationBackground="rgb(213, 231, 227, 0.5)",e.tagDefaultBgLight="#ECEFF3",e.tagDefaultColorLight="#667085",e.tagDefaultBgDark="#1C2128",e.tagDefaultColorDark="#8C97A4",e.tagWarningBgLight="#FFF4E5",e.tagWarningColorLight="#C08A2E",e.tagWarningBgDark="#2A2416",e.tagWarningColorDark="#E6C27A",e.tagInfoBgLight="#E0EDFF",e.tagInfoColorLight="#1D62C0",e.tagInfoBgDark="#0E1E35",e.tagInfoColorDark="#7EB3F5",e.tagSuccessBgLight="#E8F5EE",e.tagSuccessColorLight="#3A8F5B",e.tagSuccessBgDark="#11241B",e.tagSuccessColorDark="#7FD9A6",e.tagAttentionBgLight="#FDEFF2",e.tagAttentionColorLight="#C23A57",e.tagAttentionBgDark="#2A1419",e.tagAttentionColorDark="#F29BB0",e.success="#36B37E",e.successDark="#1B806A",e.successLight="#D8FBDE",e.alert="#F0BC02",e.alertDark="#AC7F01",e.alertLight="#FEF7CB",e.important="#EB535D",e.importantDark="#A92949",e.importantLight="#FEE6DD",e.info="#1192E8",e.infoDark="#0855A7",e.infoLight="#CEF6FD",e.link="#4589FF",e.linkLight="#D9ECFF",e.linkDark="#224EB7",e.linkLighter="#D9ECFFAF",e.graphColor01="#EE7D7D",e.graphColor01Light="#F8C9C9",e.graphColor01Dark="#D81C1C",e.graphColor02="#EE7D90",e.graphColor02Light="#F8C9D1",e.graphColor02Dark="#D81C3C",e.graphColor03="#EE7DA3",e.graphColor03Light="#F8C9D9",e.graphColor03Dark="#D81C5B",e.graphColor04="#EE7DB5",e.graphColor04Light="#F8C9E0",e.graphColor04Dark="#D81C7A",e.graphColor05="#EE7DC8",e.graphColor05Light="#F8C9E8",e.graphColor05Dark="#D81C9A",e.graphColor06="#EE7DDB",e.graphColor06Light="#F8C9F0",e.graphColor06Dark="#D81CB9",e.graphColor07="#EE7DEE",e.graphColor07Light="#F8C9F8",e.graphColor07Dark="#D81CD8",e.graphColor08="#DB7DEE",e.graphColor08Light="#F0C9F8",e.graphColor08Dark="#B91CD8",e.graphColor09="#C87DEE",e.graphColor09Light="#E8C9F8",e.graphColor09Dark="#9A1CD8",e.graphColor10="#B67DEE",e.graphColor10Light="#E0C9F8",e.graphColor10Dark="#7A1CD8",e.graphColor11="#A37DEE",e.graphColor11Light="#D9C9F8",e.graphColor11Dark="#5B1CD8",e.graphColor12="#907DEE",e.graphColor12Light="#D1C9F8",e.graphColor12Dark="#3C1CD8",e.graphColor13="#7D7DEE",e.graphColor13Light="#C9C9F8",e.graphColor13Dark="#1C1CD8",e.graphColor14="#7D90EE",e.graphColor14Light="#C9D1F8",e.graphColor14Dark="#1C3CD8",e.graphColor15="#7DA3EE",e.graphColor15Light="#C9D9F8",e.graphColor15Dark="#1C5BD8",e.graphColor16="#7DB6EE",e.graphColor16Light="#C9E0F8",e.graphColor16Dark="#1C7AD8",e.graphColor17="#7DC8EE",e.graphColor17Light="#C9E8F8",e.graphColor17Dark="#1C9AD8",e.graphColor18="#7DDBEE",e.graphColor18Light="#C9F0F8",e.graphColor18Dark="#1CB9D8",e.graphColor19="#7DEEEE",e.graphColor19Light="#C9F8F8",e.graphColor19Dark="#1CD8D8",e.graphColor20="#7DEEDB",e.graphColor20Light="#C9F8F0",e.graphColor20Dark="#1CD8B9",e.graphColor21="#7DEEC8",e.graphColor21Light="#C9F8E8",e.graphColor21Dark="#1CD89A",e.graphColor22="#7DEEB5",e.graphColor22Light="#C9F8E0",e.graphColor22Dark="#1CD87A",e.graphColor23="#7DEEA3",e.graphColor23Light="#C9F8D9",e.graphColor23Dark="#1CD85B",e.graphColor24="#7DEE90",e.graphColor24Light="#C9F8D1",e.graphColor24Dark="#1CD83C",e.graphColor25="#7DEE7D",e.graphColor25Light="#C9F8C9",e.graphColor25Dark="#1CD81C",e.graphColor26="#90EE7D",e.graphColor26Light="#D1F8C9",e.graphColor26Dark="#3CD81C",e.graphColor27="#A3EE7D",e.graphColor27Light="#D9F8C9",e.graphColor27Dark="#5BD81C",e.graphColor28="#B5EE7D",e.graphColor28Light="#E0F8C9",e.graphColor28Dark="#7AD81C",e.graphColor29="#C8EE7D",e.graphColor29Light="#E8F8C9",e.graphColor29Dark="#9AD81C",e.graphColor30="#DBEE7D",e.graphColor30Light="#F0F8C9",e.graphColor30Dark="#B9D81C",e.graphColor31="#EEEE7D",e.graphColor31Light="#F8F8C9",e.graphColor31Dark="#D8D81C",e.graphColor32="#EEDB7D",e.graphColor32Light="#F8F0C9",e.graphColor32Dark="#D8B91C",e.graphColor33="#EEC87D",e.graphColor33Light="#F8E8C9",e.graphColor33Dark="#D89A1C",e.graphColor34="#EEB57D",e.graphColor34Light="#F8E0C9",e.graphColor34Dark="#D87A1C",e.graphColor35="#EEA37D",e.graphColor35Light="#F8D9C9",e.graphColor35Dark="#D85B1C",e.graphColor36="#EE907D",e.graphColor36Light="#F8D1C9",e.graphColor36Dark="#D83C1C",e.overlayLight="rgba(0, 0, 0, 0.40)",e.overlayDark="rgba(0, 0, 0, 0.75)",e.overlayBackgroundBlack="rgba(0, 0, 0, 0.50)",e.playButtonBackGroundColorLight="#16232466",e.playButtonBackGroundColorDark="#16232466",e.backgroundGradient1Light="rgba(54, 97, 112, 0.20)",e.backgroundGradient1Dark="rgba(151, 195, 185, 0.20)",e.backgroundGradient2Light="rgba(255, 255, 255, 0.20)",e.backgroundGradient2Dark="rgba(0, 0, 0, 0.20)",e.backgroundGradient3Light="rgba(212, 220, 221, 1)",e.boxShadowElevation="rgba(166, 172, 177, 0.24)",e.Elevation1Light="0px 1px 2px 0px rgba(166, 172, 177, 0.25)",e.Elevation2Light="0px 2px 8px 0px rgba(166, 172, 177, 0.8)",e.Elevation3Light="1px 3px 24px 0px rgba(166, 172, 177, 0.8)",e.Elevation1Dark="0px 1px 2px 0px rgba(0, 0, 0, 0.25)",e.Elevation2Dark="0px 2px 8px 0px rgba(0, 0, 0, 0.8)",e.Elevation3Dark="1px 3px 24px 0px rgba(0, 0, 0, 0.8)",e.scrollbarBoxShadow="rgba(0, 0, 0, 0.1)",e.drawerBackground="rgba(0, 0, 0, 0.7)",e.modalBackground="rgba(0, 0, 0, 0.64)",e.whiteGradient="rgba(255, 255, 255, 0)",e.whiteGradientDark="rgba(255, 255, 255, 0.1)",e.whiteGradientLight="rgba(255, 255, 255, 0.9)",e.runwayRed="#eb535d",e.runwayYellow="#e8aa0b",e.runwayGreen="#51c571",e.optionBorderLight="#E9ECF0",e.selectMenuItem="#1d1f20",e.aiCfoGradient1="#6D3FD8",e.aiCfoGradient2="#BD54CF",e.aiCfoGradient3="#CF6CC9",e.aiCfoGradient4="#EE609C",e.aiVibrantPurple="#7135FF",e.aiCfoLinearGradient="linear-gradient(315deg, #6D3FD8 34.09%, #BD54CF 43.64%, #CF6CC9 50%, #EE609C 56.36%, #EE609C 65.91%)",e.aiCalloutBorderGradient="linear-gradient(315deg, #6D3FD8 31.79%, #BD54CF 42.72%, #CF6CC9 50%, #EE609C 57.28%, #EE609C 68.21%)",e.aiShimmerTextGradient="linear-gradient(90deg, #EE609C 25%, #6D3FD8 50%, #EE609C 75%)",e.aiChainOfThoughtLinearGradient="linear-gradient(322.09deg, #6D3FD8 7.71%, #BD54CF 30.79%, #CF6CC9 54.3%, #EE609C 78.68%, #EE609C 98.27%);",e.aiChainOfThoughtBackgroundGradient="linear-gradient(296.16deg, #6D3FD8b3 20.44%, #BD54CFb3 40.68%, #CF6CC9b3 54.18%, #EE609Cb3 67.68%, #EE609Cb3 87.92%)",e.aiCfoScrollAreaFadeGradientLight="linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #FFFFFF 100%)",e.aiCfoScrollAreaFadeGradientDark="linear-gradient(180deg, rgba(0,0,0, 0) 0%, #2C2F2F 100%)",e.receiptAgentLinearGradient="linear-gradient(315deg, #6D3FD8 31.79%, #BD54CF 42.72%, #CF6CC9 50%, #EE609C 57.28%,#EE609C 68.21%)",e.aiParsingBorderConicGradient=`conic-gradient(
122
+ To reactivate your account, please settle the outstanding balance. Contact support if you need assistance.`,accountSuspensionTemplateName:"Account Suspension",accountSuspensionEmailSubject:"Your account has been suspended due to non-payment",onOptionLabel:"On",previewLineItemProfessionalServices:"Professional services — March",previewLineItemOnboardingSetup:"Onboarding & setup",logoInvalidImageTypeError:"Please choose a PNG, JPG, SVG, or WEBP image.",logoTooLargeError:"Logo must be 2 MB or smaller.",connectStripeDialogTitle:"Connect your Stripe account",connectStripeDialogDescription:"Paste the API keys from your Stripe account to start collecting payments. We use your secret key server-side and your publishable key for in-browser card capture.",secretKeyLabel:"Secret key",secretKeyPlaceholder:"sk_live_… or rk_live_…",publishableKeyLabel:"Publishable key",publishableKeyPlaceholder:"pk_live_…",webhookSigningSecretLabel:"Webhook signing secret",webhookSecretPlaceholder:"whsec_…",stripeWebhookUrlLabel:"Webhook endpoint",stripeWebhookSetupDescription:"In your Stripe Dashboard, create a webhook event destination with these settings:",stripeWebhookAccountInstruction:"Event source: Your account",stripeWebhookPayloadInstruction:"Payload style: Snapshot",stripeWebhookEventsInstruction:"Events: All events",stripeWebhookUrlInstruction:"Paste the webhook endpoint shown below.",stripeWebhookSecretInstruction:"Create the destination, reveal its signing secret, and paste the whsec_… value into the Webhook signing secret field below.",quickbooksIntegrationDescription:"Read and write ledger of record. Invoices, expenses, GL, chart of accounts, journal entries.",stripeIntegrationDescription:"Payment processing — charges, refunds, payouts, disputes, MRR.",chargebeeIntegrationDescription:"Subscription analytics — MRR, ARR, churn, active subscriptions.",stripeConnectedHeading:"Stripe Connected",yourStripeAccountFallback:"Your Stripe account",stripeAccountCardTitle:"Stripe account",stripeAccountIdLabel:"Account ID",payoutBankLabel:"Payout bank account",defaultCurrencyLabel:"Default currency",payoutsEnabledLabel:"Payouts enabled",payoutsDisabledLabel:"Payouts disabled",stripePayoutNote:"Payouts are deposited to the bank account configured in your Stripe payout settings.",manageStripePayoutsLinkLabel:"Manage payouts in Stripe",disconnectingButtonLabel:"Disconnecting…",disconnectStripeButtonLabel:"Disconnect Stripe account",noPaymentDestinationHeading:"No payment destination connected",noPaymentDestinationHelper:"Connect a Stripe account to start collecting payments. Your payout account is where invoice payments will be deposited.",connectingButtonLabel:"Connecting…",connectStripeButtonLabel:"Connect Stripe Account",livePreviewLabel:"Live preview",defaultInvoicePrefix:"INV",previewInvoiceNumberSuffix:"-0001",companyNameLabel:"Company name",billingEmailLabel:"Billing email",taxIdEinLabel:"Tax ID / EIN",timezoneLabel:"Timezone",timezonePlaceholder:"America/Los_Angeles",businessAddressLabel:"Business address",brandingTitle:"Branding",uploadLogoLabel:"Upload logo",logoPreviewAlt:"Logo preview",currentLogoText:"Current logo",removeLogoAriaLabel:"Remove logo",logoFormatsHint:"PNG, JPG, SVG or WEBP · max 2 MB",pasteLogoUrlLabel:"Or paste your logo URL",logoUrlPlaceholder:"https://…/logo.png",accentColorLabel:"Accent color",othersTitle:"Others",invoicePrefixLabel:"Invoice prefix",dateFormatLabel:"Date format",netTermDaysLabel:"Net term days",paymentTermsLabel:"Payment terms",defaultMemoLabel:"Default memo",showTaxIdOnInvoices:"Show tax ID on invoices",showServicePeriods:"Show service periods",dunningScheduleTitle:"Dunning Schedule",dunningScheduleSubtitle:"Configure the sequence of actions taken when a payment fails",stepColumnHeader:"Step #",stepColumnHelp:"The order in which each dunning reminder runs.",daysAfterDueColumnHeader:"Days After Due",daysAfterDueColumnHelp:"Days after the invoice due date before this step runs.",actionColumnHelp:"What happens at this step (e.g. email the customer).",emailTemplateColumnHeader:"Email Template",generalDunningSettingsTitle:"General Dunning Settings",autoCollectionLabel:"Auto collection",maxRetryAttemptsLabel:"Max retry attempts",retryIntervalDaysLabel:"Retry interval (days)",saveDunningSettingsButtonLabel:"Save Dunning Settings",emailTemplatesTitle:"Email Templates",emailTemplatesSubtitle:"Customize the emails sent at each dunning step",escalationCapsuleLabel:"Escalation",subjectLineLabel:"Subject line",bodyLabel:"Body",qboSettingsPageTitle:"QuickBooks Online Sync",qboEnableSyncLabel:"Enable QuickBooks sync",qboEnableSyncDescription:"Sync invoices, payments, credit notes, and customers to QuickBooks Online.",qboAccountMappingsSectionTitle:"Account Mappings",qboAccountMappingsSectionDescription:"Choose which QuickBooks accounts each invoicing amount posts to.",qboCustomerMatchingSectionTitle:"Customer Matching",qboCustomerMatchingSectionDescription:"Customers are matched to existing QuickBooks records by email first, then by company name. Customers imported with a QuickBooks ID keep their existing link.",qboCustomerMatchingLabel:"When a customer syncs",qboBehaviorSectionTitle:"Sync Behavior",qboAutoCreateItemsLabel:"Auto-create items",qboAutoCreateItemsDescription:"Create missing QuickBooks items automatically when invoices sync.",qboTrackingCategoriesLabel:"Tracking categories",qboTrackingCategoriesDescription:"Tag synced transactions with QuickBooks classes.",qboClosedPeriodVoidLabel:"Closed-period voids as credit memos",qboClosedPeriodVoidDescription:"Record voids that fall in a closed accounting period as credit memos instead.",qboBackfillSectionTitle:"History Backfill",qboSyncStartDateLabel:"Sync start date",qboBackfillButtonLabel:"Backfill history",qboBackfillingButtonLabel:"Backfilling…",qboBackfillHint:"Re-queue invoicing records created on or after the sync start date.",qboBackfillRequiresSyncHint:"Enable and save QuickBooks sync to run a backfill.",qboSyncHealthSectionTitle:"Sync Health",qboSyncHealthEmptyLabel:"No sync activity yet.",qboFailedTasksTitle:"Failed syncs",qboFailedTaskAttemptsLabel:"{attempts} attempts",qboSaveButtonLabel:"Save QuickBooks Settings",accountCountryLabel:"Country",businessDetailsTitle:"Business Details",connectedCapsuleLabel:"Connected",invoiceBrandingTabLabel:"Invoice Branding",middot:"·",qboAccountSelectPlaceholder:"Select account",qboNotConnectedCompanyFallback:"QuickBooks Online",qboRealmIdLabel:"Realm ID",dateFormatPlaceholder:"MM/DD/YYYY",paymentDestinationHeading:"Payment Destination"},invoicingSubscriptionDetail:{changeTermEndTitle:"Change term end",changeTermEndDateLabel:"New term end date",pauseSubscriptionDateLabel:"Resume date",pauseSubscriptionHint:"Leave blank to pause without a resume date.",cancelSubscriptionMessage:"Cancel this subscription immediately? Use “Set non-renewing” to cancel at end of term instead.",everyUnit:"Every ${unit}",everyPeriodUnits:"Every ${period} ${unit}s",charge:"Charge",viewInvoices:"View Invoices",reactivate:"Reactivate",cadenceCurrencySubtitle:'${billingCadence(subscription)} · ${currency ?? "USD"}',billingCycle:"Billing Cycle",unitPrice:"Unit Price",couponNumber:"Coupon #",appliedUsed:"Applied/Used",subscriptionNotFound:"Subscription not found.",cancellation:"Cancellation",cancelledOn:"Cancelled on",trialStart:"Trial start",trialEnd:"Trial end",daysRemaining:"Days remaining",planItemPrice:"Plan Item Price",currentTerm:"Current term",nextBilling:"Next billing",billingPeriod:"Billing period",dueInvoices:"Due invoices",totalDues:"Total dues",remainingCycles:"Remaining cycles",scheduledChanges:"Scheduled changes",setupFeeOneTime:"Setup fee (one-time)",startedDate:"Started Date",activationDate:"Activation Date",updatedDate:"Updated Date",dueSince:"Due Since",autoCollectionCount:"Auto Collection Count",subscriptionItems:"Subscription Items",noSubscriptionItems:"No subscription items.",noAddOns:"No add-ons.",coupons:"Coupons",noCoupons:"No coupons.",contractTerm:"Contract Term",contractId:"Contract ID",active:"active",contractPeriod:"Contract Period",actionAtTermEnd:"Action at term end",renew:"renew",cancelBeforeNoticePeriod:"Cancel before notice period",totalContractValue:"Total contract value",cancelSubscriptionConfirm:"Cancel subscription",cancelSubscriptionTitle:"Cancel subscription",createdDate:"Created Date",lifecycle:"Lifecycle",nDays:"{days} days",nDays2:"{days} days",productName:"Product Name",termEnd:"Term End",pauseSubscriptionConfirm:"Pause subscription",pauseSubscriptionTitle:"Pause subscription"},invoicingSubscriptionForm:{billingFrequencyHalfYearly:"Half-Yearly",selectCustomerValidation:"Select a customer for this subscription.",selectPlanValidation:"Select a plan for this subscription.",editSubscriptionTitle:"Edit Subscription",subscriptionDetailsDescription:"Add details to create a new subscription.",planQuantityLabel:"Quantity",billingCyclesPlaceholder:"Renews forever",billingCyclesHint:"Paid invoices including the first one. Leave blank to renew forever.",startDateAfterTrialEndValidation:"Trial end date must be later than the start date.",addonsDescription:"Recurring add-ons billed on the same cycle.",noAddonsAvailable:"No add-ons available",selectAddonsPlaceholder:"Select add-ons",oneTimeChargesDescription:"Billed once on the first invoice.",oneTimeChargesTitle:"One Time Charges",noChargesAvailable:"No charges available",selectOneTimeChargesPlaceholder:"Select one time charges",referencesSchedulesDescription:"Trial, PO and coupon details.",referencesSchedulesTitle:"References & Schedules",setupFeeLabel:"Setup Fee",trialEndDateLabel:"Trial End Date",noCouponPlaceholder:"No coupon",shippingAddressDescription:"Optional address for shippable plans.",shipCountryLabel:"Country (ISO)",shipZipLabel:"ZIP / Postal",billingCyclesLabel:"Billing Cycles",selectCustomerPlaceholder:"Select customer",startDateLabel:"Start Date",planQuantityPlaceholder:"1"},invoicingSubscriptionList:{perPrefix:"Per ",everyPrefix:"Every ",noSubscriptionsMatchSearch:"No subscriptions match your search.",noSubscriptionsYet:"No subscriptions yet.",emptyStateDescription:"Bring in your historical subscription data by importing your subscriptions csv file",emptyStateTitle:"No Subscriptions Yet",searchPlaceholder:"Search by customer or plan"},invoicingTransactionDetail:{capture:"Capture",viewInvoice:"View Invoice",viewSubscription:"View Subscription",viewCustomer:"View Customer",unusedAmount:"Unused Amount",capturableAmount:"Capturable Amount",applied:"Applied",transactionNotFound:"Transaction not found.",transactionTitlePrefix:"Transaction ",transactionDetails:"Transaction Details",settledAt:"Settled At",refundedTransaction:"Refunded Transaction",customerAndSubscription:"Customer & Subscription",paymentMethodAndGateway:"Payment Method & Gateway",paymentSourceId:"Payment Source ID",gatewayAccount:"Gateway Account",idAtGateway:"ID at Gateway",security:"Security",threeDSecure:"3-D Secure",fraudFlag:"Fraud Flag",none:"None",fraudReason:"Fraud Reason",errorDetails:"Error Details",errorCode:"Error Code",errorMessage:"Error Message",linkedInvoices:"Linked Invoices",noLinkedInvoices:"No linked invoices.",linkedCreditNotes:"Linked Credit Notes",noLinkedCreditNotes:"No linked credit notes.",noRefunds:"No refunds."}},L2t=["en-US","en-IN","en"],B2t=e=>Q.stringToUnionStrict(e,L2t),ehe={en:m9,"en-US":m9,"en-IN":m9};class Yle{getAppLocaleID(){return this.#e}getLocalizedStrings(){return ehe[this.#e]}updateAppLocaleID(o){if(ehe[o]==null)throw Error(`strings are not available in ${o}`);Q.updateZeniDateLocaleID(o),this.updateLibsLocale(o),this.#e=o,console.log(`Set the locale to ${this.#e}`)}currencyFormatter(o=0,i="standard"){switch(this.getAppLocaleID()){case"en-IN":return Intl.NumberFormat(this.getAppLocaleID(),{maximumFractionDigits:o,minimumFractionDigits:0,style:"currency",currency:"INR",currencySign:i});case"en-US":case"en":return Intl.NumberFormat("en-US",{maximumFractionDigits:o,minimumFractionDigits:0,style:"currency",currency:"USD",currencySign:i})}}numberFormatter(o=0){switch(this.getAppLocaleID()){case"en-IN":return Intl.NumberFormat(this.getAppLocaleID(),{maximumFractionDigits:o,minimumFractionDigits:0});case"en-US":case"en":return Intl.NumberFormat("en-US",{maximumFractionDigits:o,minimumFractionDigits:0})}}updateLibsLocale(o){t.numeral.locale(o.toLowerCase())}static registerNumeralForEnINLocale(){t.numeral.locales["en-in"]==null&&t.numeral.register("locale","en-in",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(o){const i=o%10;return~~(o%100/10)===1?"th":i===1?"st":i===2?"nd":i===3?"rd":"th"},currency:{symbol:"₹"}})}static registerNumeralForEnUSLocale(){t.numeral.locales["en-us"]==null&&t.numeral.register("locale","en-us",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(o){const i=o%10;return~~(o%100/10)===1?"th":i===1?"st":i===2?"nd":i===3?"rd":"th"},currency:{symbol:"$"}})}#e="en";static#t=new Yle;static instance(){return this.registerNumeralForEnINLocale(),this.registerNumeralForEnUSLocale(),this.#t}}const q=Yle.instance(),yse=e=>e<600?"small":e>=600&&e<905?"medium-compact":e>=905&&e<1240?"medium-regular":e>=1240&&e<1440?"large":e>=1440&&e<1920?"extra-large":e>=1920?"ultra-large":(console.warn("this can't happen!"),"medium-regular"),QUe=h.createContext(yse(window.innerWidth)),oe=()=>h.useContext(QUe),P2t=e=>{const[o,i]=h.useState(e.fixedWindowSize??yse(window.innerWidth));return h.useEffect(()=>{const r=()=>{const a=yse(window.innerWidth);e.fixedWindowSize==null&&o!=null&&o!=a&&i(a)};return window.addEventListener("resize",r),()=>{window.removeEventListener("resize",r)}},[e.fixedWindowSize,o]),t.jsxRuntimeExports.jsx(QUe.Provider,{value:o,children:e.children})},D2t=(e,o,i,r,a,l)=>({small:e,"medium-compact":o,"medium-regular":i??o,large:r??i??o,"extra-large":a??r??i??o,"ultra-large":l??a??r??i??o});class E{constructor(o,i,r,a,l,c){this._size=D2t(o,i,r,a,l,c)}value(o="medium-regular"){switch(o){case"small":return this._size.small;case"medium-compact":return this._size["medium-compact"];case"medium-regular":return this._size["medium-regular"];case"large":return this._size.large;case"extra-large":return this._size["extra-large"];case"ultra-large":return this._size["ultra-large"]}}valuePx(o="medium-regular"){return`${this.value(o)}px`}valuePercentage(o="medium-regular"){return`${this.value(o)}%`}add(o){return new E(this._size.small+o._size.small,this._size["medium-compact"]+o._size["medium-compact"],this._size["medium-regular"]+o._size["medium-regular"],this._size.large+o._size.large,this._size["extra-large"]+o._size["extra-large"],this._size["ultra-large"]+o._size["ultra-large"])}subtract(o){return new E(this._size.small-o._size.small,this._size["medium-compact"]-o._size["medium-compact"],this._size["medium-regular"]-o._size["medium-regular"],this._size.large-o._size.large,this._size["extra-large"]-o._size["extra-large"],this._size["ultra-large"]-o._size["ultra-large"])}_size}const Nd=e=>e==="small"||e==="medium-compact",yp=e=>e==="small";var $=(e=>(e.brandColorOnyx="#162324",e.brandColorPearl="#FAFAFA",e.brandColorSapphire="#366170",e.brandColorSapphireDark="#26454F",e.brandColorSapphireLight="#D2E3E9",e.brandColorJade="#97C3B9",e.brandColorJadeDark="#508B7E",e.brandColorJadeLight="#D5E7E3",e.brandColorOpal="#C9ABC7",e.brandColorOpalDark="#855682",e.brandColorOpalLight="#E5D7E4",e.brandColorGold="#EEBA7D",e.brandColorGoldDark="#C27419",e.brandColorGoldLight="#F7E0C4",e.brandColorRuby="#AD584A",e.brandColorRubyDark="#9A4E42",e.brandColorRubyLight="#EBD4D1",e.primaryDark="#FAFAFA",e.primaryLight="#162324",e.backgroundThemeLight="#F3F7F7",e.backgroundThemeDark="#1B1C1C",e.championLight="#4B5253",e.championDark="#D4DBDB",e.heroLight="#757D7E",e.heroDark="#AAB4B5",e.neutralGrey1Light="#A6B0B1",e.neutralGrey1Dark="#727979",e.neutralGrey2Light="#D4DCDD",e.neutralGrey2Dark="#545B5C",e.neutralGrey3Light="#E9F0F0",e.neutralGrey3Dark="#3E4343",e.neutralGrey4Light="#FAFCFC",e.neutralGrey4Dark="#202222",e.neutralGrey5Light="#FFFFFF",e.neutralGrey5Dark="#2C2F2F",e.topExCustomColor="#90EE7D40",e.offerColor="#EF7F56",e.comingSoon="#5EBBF5",e.badgeBackground="#E9F0F033",e.dropShadowNormalLight="rgba(166, 177, 174, 0.24)",e.dropShadowNormalDark="rgba(0, 0, 0, 0.24)",e.dropShadowHoverLight="rgba(166, 177, 174, 0.8)",e.blackColor="#000000",e.billPayPromoColor="#8D6C9F",e.billPayPromoColorHover="rgba(238, 186, 125, 0.4)",e.billPayPromoBorderColorLight="#FBD1A0",e.billPayPromoBorderColorDark="#714B1E",e.billPayPromoBackGroundColorLight="#FFFBF5",e.reimbursementPromoColor="#5DB59A",e.reimbursementPromoColorHover="rgba(93, 181, 154, 0.4)",e.reimbursementPromoBorderColorLight="#CCE8DF",e.reimbursementPromoBorderColorDark="#545D5B",e.reimbursementPromoBackGroundColorLight="#EDFFF8",e.primaryWhite="#FEFEFE",e.rewardsPromoColor1="#397C93",e.rewardsPromoColor2="#065773",e.zeniAccountsPromoBackgroundColor="#D0E7E2",e.zeniAccountsPromoBackgroundColorLight="#D0E7E250",e.zeniAccountsPromoBackgroundColorDark="#3E434350",e.zeniAccountsPromoNavigationDotHoverColorLight="#36617032",e.zeniAccountsPromoNavigationDotHoverColorDark="#97C3B932",e.zeniAccountsPromoCardTitleLight="#4B4F53",e.chargeCardsGradientColor1="#ECECEC",e.chargeCardsGradientColor2="#626565",e.chargeCardsGradientColor3="#A8B1B1",e.chargeCardsGradientColor4="#444A4A",e.chargeCardBoxShadow1="rgba(132, 134, 137, 0.80)",e.chargeCardBoxShadow2="rgba(0, 0, 0, 0.35)",e.chargeCardBackgroundShadowLight="rgba(166,172,177,0.7)",e.chargeCardBackgroundShadowDark="rgba(0,0,0,0.8)",e.issueChargeCardBackgroundShadowLight="rgba(166,172,177,0.25)",e.issueChargeCardBackgroundShadowDark="rgba(0,0,0,0.25)",e.physicalCardBoxShadow="#68AAA0",e.chargeCardFaded="rgba(166, 176, 177, 0.65)",e.phoneSignalColor="#3C3C432E",e.batteryBorderColor="#3c3c4399",e.physicalCardBlueColor1="#eaeff8",e.physicalCardBlueColor2="#bdd4ee",e.physicalCardYellowColor1="#ffe9c6",e.physicalCardYellowColor2="#fff8ec",e.plaidVerificationBackground="rgb(213, 231, 227, 0.5)",e.tagDefaultBgLight="#ECEFF3",e.tagDefaultColorLight="#667085",e.tagDefaultBgDark="#1C2128",e.tagDefaultColorDark="#8C97A4",e.tagWarningBgLight="#FFF4E5",e.tagWarningColorLight="#C08A2E",e.tagWarningBgDark="#2A2416",e.tagWarningColorDark="#E6C27A",e.tagInfoBgLight="#E0EDFF",e.tagInfoColorLight="#1D62C0",e.tagInfoBgDark="#0E1E35",e.tagInfoColorDark="#7EB3F5",e.tagSuccessBgLight="#E8F5EE",e.tagSuccessColorLight="#3A8F5B",e.tagSuccessBgDark="#11241B",e.tagSuccessColorDark="#7FD9A6",e.tagAttentionBgLight="#FDEFF2",e.tagAttentionColorLight="#C23A57",e.tagAttentionBgDark="#2A1419",e.tagAttentionColorDark="#F29BB0",e.success="#36B37E",e.successDark="#1B806A",e.successLight="#D8FBDE",e.alert="#F0BC02",e.alertDark="#AC7F01",e.alertLight="#FEF7CB",e.important="#EB535D",e.importantDark="#A92949",e.importantLight="#FEE6DD",e.info="#1192E8",e.infoDark="#0855A7",e.infoLight="#CEF6FD",e.link="#4589FF",e.linkLight="#D9ECFF",e.linkDark="#224EB7",e.linkLighter="#D9ECFFAF",e.graphColor01="#EE7D7D",e.graphColor01Light="#F8C9C9",e.graphColor01Dark="#D81C1C",e.graphColor02="#EE7D90",e.graphColor02Light="#F8C9D1",e.graphColor02Dark="#D81C3C",e.graphColor03="#EE7DA3",e.graphColor03Light="#F8C9D9",e.graphColor03Dark="#D81C5B",e.graphColor04="#EE7DB5",e.graphColor04Light="#F8C9E0",e.graphColor04Dark="#D81C7A",e.graphColor05="#EE7DC8",e.graphColor05Light="#F8C9E8",e.graphColor05Dark="#D81C9A",e.graphColor06="#EE7DDB",e.graphColor06Light="#F8C9F0",e.graphColor06Dark="#D81CB9",e.graphColor07="#EE7DEE",e.graphColor07Light="#F8C9F8",e.graphColor07Dark="#D81CD8",e.graphColor08="#DB7DEE",e.graphColor08Light="#F0C9F8",e.graphColor08Dark="#B91CD8",e.graphColor09="#C87DEE",e.graphColor09Light="#E8C9F8",e.graphColor09Dark="#9A1CD8",e.graphColor10="#B67DEE",e.graphColor10Light="#E0C9F8",e.graphColor10Dark="#7A1CD8",e.graphColor11="#A37DEE",e.graphColor11Light="#D9C9F8",e.graphColor11Dark="#5B1CD8",e.graphColor12="#907DEE",e.graphColor12Light="#D1C9F8",e.graphColor12Dark="#3C1CD8",e.graphColor13="#7D7DEE",e.graphColor13Light="#C9C9F8",e.graphColor13Dark="#1C1CD8",e.graphColor14="#7D90EE",e.graphColor14Light="#C9D1F8",e.graphColor14Dark="#1C3CD8",e.graphColor15="#7DA3EE",e.graphColor15Light="#C9D9F8",e.graphColor15Dark="#1C5BD8",e.graphColor16="#7DB6EE",e.graphColor16Light="#C9E0F8",e.graphColor16Dark="#1C7AD8",e.graphColor17="#7DC8EE",e.graphColor17Light="#C9E8F8",e.graphColor17Dark="#1C9AD8",e.graphColor18="#7DDBEE",e.graphColor18Light="#C9F0F8",e.graphColor18Dark="#1CB9D8",e.graphColor19="#7DEEEE",e.graphColor19Light="#C9F8F8",e.graphColor19Dark="#1CD8D8",e.graphColor20="#7DEEDB",e.graphColor20Light="#C9F8F0",e.graphColor20Dark="#1CD8B9",e.graphColor21="#7DEEC8",e.graphColor21Light="#C9F8E8",e.graphColor21Dark="#1CD89A",e.graphColor22="#7DEEB5",e.graphColor22Light="#C9F8E0",e.graphColor22Dark="#1CD87A",e.graphColor23="#7DEEA3",e.graphColor23Light="#C9F8D9",e.graphColor23Dark="#1CD85B",e.graphColor24="#7DEE90",e.graphColor24Light="#C9F8D1",e.graphColor24Dark="#1CD83C",e.graphColor25="#7DEE7D",e.graphColor25Light="#C9F8C9",e.graphColor25Dark="#1CD81C",e.graphColor26="#90EE7D",e.graphColor26Light="#D1F8C9",e.graphColor26Dark="#3CD81C",e.graphColor27="#A3EE7D",e.graphColor27Light="#D9F8C9",e.graphColor27Dark="#5BD81C",e.graphColor28="#B5EE7D",e.graphColor28Light="#E0F8C9",e.graphColor28Dark="#7AD81C",e.graphColor29="#C8EE7D",e.graphColor29Light="#E8F8C9",e.graphColor29Dark="#9AD81C",e.graphColor30="#DBEE7D",e.graphColor30Light="#F0F8C9",e.graphColor30Dark="#B9D81C",e.graphColor31="#EEEE7D",e.graphColor31Light="#F8F8C9",e.graphColor31Dark="#D8D81C",e.graphColor32="#EEDB7D",e.graphColor32Light="#F8F0C9",e.graphColor32Dark="#D8B91C",e.graphColor33="#EEC87D",e.graphColor33Light="#F8E8C9",e.graphColor33Dark="#D89A1C",e.graphColor34="#EEB57D",e.graphColor34Light="#F8E0C9",e.graphColor34Dark="#D87A1C",e.graphColor35="#EEA37D",e.graphColor35Light="#F8D9C9",e.graphColor35Dark="#D85B1C",e.graphColor36="#EE907D",e.graphColor36Light="#F8D1C9",e.graphColor36Dark="#D83C1C",e.overlayLight="rgba(0, 0, 0, 0.40)",e.overlayDark="rgba(0, 0, 0, 0.75)",e.overlayBackgroundBlack="rgba(0, 0, 0, 0.50)",e.playButtonBackGroundColorLight="#16232466",e.playButtonBackGroundColorDark="#16232466",e.backgroundGradient1Light="rgba(54, 97, 112, 0.20)",e.backgroundGradient1Dark="rgba(151, 195, 185, 0.20)",e.backgroundGradient2Light="rgba(255, 255, 255, 0.20)",e.backgroundGradient2Dark="rgba(0, 0, 0, 0.20)",e.backgroundGradient3Light="rgba(212, 220, 221, 1)",e.boxShadowElevation="rgba(166, 172, 177, 0.24)",e.Elevation1Light="0px 1px 2px 0px rgba(166, 172, 177, 0.25)",e.Elevation2Light="0px 2px 8px 0px rgba(166, 172, 177, 0.8)",e.Elevation3Light="1px 3px 24px 0px rgba(166, 172, 177, 0.8)",e.Elevation1Dark="0px 1px 2px 0px rgba(0, 0, 0, 0.25)",e.Elevation2Dark="0px 2px 8px 0px rgba(0, 0, 0, 0.8)",e.Elevation3Dark="1px 3px 24px 0px rgba(0, 0, 0, 0.8)",e.scrollbarBoxShadow="rgba(0, 0, 0, 0.1)",e.drawerBackground="rgba(0, 0, 0, 0.7)",e.modalBackground="rgba(0, 0, 0, 0.64)",e.whiteGradient="rgba(255, 255, 255, 0)",e.whiteGradientDark="rgba(255, 255, 255, 0.1)",e.whiteGradientLight="rgba(255, 255, 255, 0.9)",e.runwayRed="#eb535d",e.runwayYellow="#e8aa0b",e.runwayGreen="#51c571",e.optionBorderLight="#E9ECF0",e.selectMenuItem="#1d1f20",e.aiCfoGradient1="#6D3FD8",e.aiCfoGradient2="#BD54CF",e.aiCfoGradient3="#CF6CC9",e.aiCfoGradient4="#EE609C",e.aiVibrantPurple="#7135FF",e.aiCfoLinearGradient="linear-gradient(315deg, #6D3FD8 34.09%, #BD54CF 43.64%, #CF6CC9 50%, #EE609C 56.36%, #EE609C 65.91%)",e.aiCalloutBorderGradient="linear-gradient(315deg, #6D3FD8 31.79%, #BD54CF 42.72%, #CF6CC9 50%, #EE609C 57.28%, #EE609C 68.21%)",e.aiShimmerTextGradient="linear-gradient(90deg, #EE609C 25%, #6D3FD8 50%, #EE609C 75%)",e.aiChainOfThoughtLinearGradient="linear-gradient(322.09deg, #6D3FD8 7.71%, #BD54CF 30.79%, #CF6CC9 54.3%, #EE609C 78.68%, #EE609C 98.27%);",e.aiChainOfThoughtBackgroundGradient="linear-gradient(296.16deg, #6D3FD8b3 20.44%, #BD54CFb3 40.68%, #CF6CC9b3 54.18%, #EE609Cb3 67.68%, #EE609Cb3 87.92%)",e.aiCfoScrollAreaFadeGradientLight="linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #FFFFFF 100%)",e.aiCfoScrollAreaFadeGradientDark="linear-gradient(180deg, rgba(0,0,0, 0) 0%, #2C2F2F 100%)",e.receiptAgentLinearGradient="linear-gradient(315deg, #6D3FD8 31.79%, #BD54CF 42.72%, #CF6CC9 50%, #EE609C 57.28%,#EE609C 68.21%)",e.aiParsingBorderConicGradient=`conic-gradient(
123
123
  from var(--ai-conic-from) at 50% 50%,
124
124
  #EE609C 0deg,
125
125
  #CF6CC9 45deg,