{{ t('hero.eyebrow') }}

{{ t('hero.sub') }}

{{ t('hero.cta2') }}
{{ t('hero.meta1') }}
{{ t('hero.meta2') }}
{{ t('hero.meta3') }}
{{ t('hero.cardLive') }}
{{ heroDemo.from }}
→ {{ heroDemo.to }}
{{ row.label }}{{ row.value }}
{{ t('hero.cardTotal') }}
{{ heroAlt }}
{{ heroTotal }}
{{ t('values.eyebrow') }}

{{ t('values.sub') }}

01

{{ t('values.s1.desc') }}

02

{{ t('values.s2.desc') }}

03

{{ t('values.s3.desc') }}

{{ t('modes.eyebrow') }}

{{ t('modes.sub') }}

{{ t('pricing.eyebrow') }}

{{ t('pricing.sub') }}

Gratis
$0
{{ t('plan.free.mo') }}

{{ t('plan.free.desc') }}

  • {{ t('plan.free.f1') }}
  • {{ t('plan.free.f2') }}
  • {{ t('plan.free.f4') }}
  • {{ t('plan.free.f5') }}
  • {{ t('plan.free.f6') }}
{{ p.name }}
${{ planShown(p).amountMXN.toLocaleString('es-MX') }}
{{ usdApprox(planShown(p).amountMXN) }}

{{ t('plan.' + p.code + '.desc') }}

  • {{ p.unlimited ? t('pricing.fUnlimited') : t('pricing.fCredits').replace('{n}', p.credits) }}
  • {{ t('pricing.fPerQuote').replace('{p}', fmtPrice(Math.round(planShown(p).amountMXN / (p.credits * (planShown(p).interval === 'year' ? 12 : 1)) * 100) / 100)) }}
  • {{ (p.seats === 1 ? t('pricing.fUser1') : t('pricing.fUsersN')).replace('{n}', p.seats) }}
  • {{ t('pricing.fPdf') }}
  • {{ t('pricing.fHistory') }}
  • {{ t('pricing.fTeam') }}
  • {{ t('pricing.fFairUse') }}
{{ t('pricing.packsTitle') }}

{{ t('pricing.packsDesc') }}

{{ t('pricing.entTitle') }}

{{ t('pricing.entDesc') }}

{{ t('pricing.foot') }}

{{ t('history.editingNotice') }} {{ editingQuote }} · {{ t('history.editingCost') }}
{{ t('app.eyebrow') }}

{{ t('app.intro') }}

{{ modeLabel }} {{ modeDetected ? t('mode.autoDetected') : t('mode.manual') }} · {{ modeCurrency }}
{{ t('mode.willDetect') }}
{{ m.currency }}
01 {{ t('sec.route') }}
{{ gmapsMessage }}
{{ t('route.oneWay') }}
{{ t('route.oneWayDesc') }}
{{ t('route.twoWay') }}
{{ t('route.twoWayDesc') }}
{{ t('extras.ferryAuto').replace('{km}', ferrySeaKm) }}
MXN
MXN
02 {{ t('sec.cargo') }}
TON
{{ mode === 'us' ? 'USD' : 'MXN' }}
{{ t('cargo.insure') }} {{ t('cargo.insureDesc') }}
{{ t('costs.allocHint') }}
/ MES
{{ t('costs.tripsPerMonthHint') }}
{{ t('costs.tripDays') }}: {{ tripDaysLive }}
{{ t('cargo.boxDry') }}
{{ t('cargo.boxDryDesc') }}
{{ t('cargo.boxReefer') }}
{{ unit === 'especializado' ? t('unit.reeferBlocked') : t('cargo.boxReeferDesc') }}
HRS
{{ t('cargo.reeferHoursHint') }}
{{ t('cargo.reeferSetpointHint') }}
03 {{ t('sec.unit') }}
{{ u.name }}
{{ u.tons }} ton · {{ u.axles }} {{ t('unit.axles') }}
{{ t('unit.especializado') }}
{{ t('unit.especializadoDesc') }}
{{ t('platform.flatbed') }}
{{ t('platform.flatbed.desc') }}
{{ t('platform.stepdeck') }}
{{ t('platform.stepdeck.desc') }}
{{ t('platform.lowboy') }}
{{ t('platform.lowboy.desc') }}
{{ t('platform.conestoga') }}
{{ t('platform.conestoga.desc') }}
M
M
M
TON
{{ t('specialized.weightFromCargo') }}
TON
{{ t('specialized.tareHint').replace('{t}', platformInfo.tareT) }}
{{ dimensionsCheck.grossT }} t / {{ dimensionsCheck.grossLimitT }} t
{{ t('specialized.grossHint') }}
{{ legalLimitsText }}
{{ dimensionsCheck.exceeded ? t('specialized.dimensionsExceeded') + (dimsDetail ? ' (' + dimsDetail + ')' : '') : t('specialized.dimensionsOK') }}
{{ t('specialized.sctTipoHint') }}
EST
{{ usStatesHint }}
EST
{{ usStatesHint }}
DÍAS
{{ t('specialized.escortDaysHint') }}
{{ t('specialized.tarp') }} {{ t('specialized.tarpDesc') }}
{{ t('specialized.dunnage') }} {{ t('specialized.dunnageDesc') }}
{{ t('specialized.premiumTarp') }} {{ t('specialized.premiumTarpDesc') }}
{{ t('specialized.crane') }} {{ t('specialized.craneDesc') }}
04 {{ t('sec.usCosts') }} USA

{{ t('us.intro') }}

USD/mo
{{ t('us.transponderHint') }}
USD/mi
{{ t('us.iftaHint') }}
USD/mo
{{ t('us.insuranceHint') }}
USD
{{ t('us.parkingHint') }}
USD/mi
{{ t('us.driverHint') }}
USD/mo
{{ t('us.eldHint') }}
05 {{ t('sec.border') }} BORDER

{{ t('border.intro') }}

{{ t('border.drayageMode') }}
{{ t('border.drayageModeDesc') }}
{{ t('border.ownMode') }}
{{ t('border.ownModeDesc') }}
{{ t('ctpat.toggle') }} {{ t('ctpat.desc') }}
%
+ {{ fmtMXN(lastQuote.ctpatSurchargeMXN) }}

{{ mode === 'usmx' ? t('border.hintImport') : t('border.hintExport') }}

USD
USD/{{ lang === 'en' ? 'yr' : 'año' }}
{{ t('border.cbpHint') }}
USD
USD
{{ t('margin.title') }}

{{ t('margin.hint') }}

%
{{ t('margin.overCost') }} {{ marginPercent }}% {{ t('margin.overSale') }} {{ marginOverSalePct.toFixed(1) }}% {{ t('margin.profit') }} {{ fmtMXN(lastQuote.margin) }}
{{ t('preview.eyebrow') }}
{{ t('preview.empty') }}
{{ t('preview.dist') }}{{ distLabel }}
{{ t('preview.duration') }}{{ hasRoute ? durationHrs + ' hrs' : '—' }}
{{ t('preview.trip') }}{{ emptyReturn ? 'Two Way' + (emptyLeg ? ' · ' + t('route.emptyLegShort') : '') : 'One Way' }}
Ferry{{ ferryLabel }}
{{ t('preview.unit') }}{{ previewUnit }}
{{ t('preview.box') }}{{ boxType === 'reefer' ? t('preview.reefer2') : t('preview.dry') }}
{{ t('preview.usLeg') }}{{ usLegLabel }}
{{ t('preview.crossing') }}{{ crossingMode === 'own' ? t('border.ownMode') : t('border.drayageMode') }}
{{ t('reveal.paidFolio') }} {{ lastQuote.folio }}
{{ resultPrice.main }}
{{ resultPrice.alt }}
{{ t('result.taxNote') }}
{{ t('reveal.pending') }}
{{ t('reveal.lockTitle') }} {{ creditNote }}
USD/MXN · {{ fxSource }} · {{ fxDate }}
{{ lastQuote.folio }} · {{ lastQuote.date }}
{{ shortLoc(lastQuote.origin) }} → {{ shortLoc(lastQuote.destination) }}
{{ resultPrice.main }}
{{ resultPrice.alt }}
{{ t('result.taxNote') }}
{{ lastQuote.unit }} · {{ resultPrice.dist }} · {{ lastQuote.weight }} ton · {{ lastQuote.durationHrs }} hrs
{{ t('result.perDist') }}
{{ resultPrice.perDist }}
{{ t('result.perTon') }}
{{ resultPrice.perTon }}
{{ t('result.margin') }}
{{ lastQuote.marginPct.toFixed(1) }}%
{{ t('result.totalCosts') }}
{{ resultPrice.costs }}
{{ t('result.breakdown') }}
{{ row.section }}
{{ row.lbl }}{{ row.val }}
{{ row.lbl }}{{ row.val }}
{{ t('locked.title') }}
{{ t('locked.desc') }}
{{ t('history.eyebrow') }}

{{ t('dash.hello') }} {{ greetingName }}

{{ t('app.plan') }} {{ planLabel }} {{ t('dash.unlimited') }} {{ acctStatus.text }}
{{ quotaInfo.used }} {{ t('dash.thisMonth') }}
{{ acct.subscriptionStatus === 'comp' ? t('dash.compUntil') : acct.cancelAtPeriodEnd ? t('org.accessUntil') : t('org.renewsOn') }} {{ fmtDate(acct.currentPeriodEnd) }} {{ t('dash.expiring').replace('{n}', acct.nextExpiry.credits).replace('{date}', fmtDate(acct.nextExpiry.at)) }}
{{ t('buy.checking') }}
{{ t('buy.oxxoPending') }}
{{ t('buy.slow') }}
{{ t('buy.pastDue') }}
{{ t('buy.canceling').replace('{date}', fmtDate(acct.currentPeriodEnd)) }}
…
{{ t('ledger.empty') }}
{{ t('history.date') }}{{ t('ledger.concept') }} {{ t('ledger.credits') }}{{ t('ledger.expires') }}
{{ fmtDate(e.createdAt) }} {{ ledgerLabel(e) }} {{ e.delta > 0 ? '+' + e.delta : e.delta }} {{ e.delta > 0 && e.expiresAt ? fmtDate(e.expiresAt) : '' }}

{{ t('ledger.hint') }}

{{ t('org.team') }} · {{ orgSummary.name }}
{{ orgSummary.seatsUsed }} {{ t('org.of') }} {{ orgSummary.seats }} {{ t('org.seats') }} {{ seatsLeft }} {{ t('org.available') }} {{ t('org.noSeats') }}
{{ orgSummary.quotesThisMonth }} {{ t('org.quotesThisMonth') }}
{{ orgError }}

{{ t('org.addHint') }}

{{ t('org.noSeatsHint') }}
{{ t('org.member') }}{{ t('org.role') }} {{ t('admin.colQuotes') }}{{ t('admin.colStatus') }} {{ t('admin.colActions') }}
{{ m.name || '—' }}{{ m.email }} {{ m.orgRole === 'owner' ? t('org.owner') : t('org.memberRole') }} {{ m.quotesThisMonth }} {{ m.isActive ? t('admin.active') : t('admin.inactive') }}
logo {{ t('brand.noLogo') }}
{{ t('brand.title') }}

{{ t('brand.hint') }}

{{ t('history.sub') }}

{{ t('history.loading') }}
{{ t('history.empty') }}
{{ t('history.lockedTitle').replace('{n}', savedQuotes.length) }}

{{ t('history.lockedDesc') }}

{{ t('history.date') }}{{ t('history.route') }} {{ t('history.unit') }}{{ t('history.price') }}
{{ fmtDate(q.createdAt) }}{{ q.folio }} {{ shortLoc2(q.origin) }} → {{ shortLoc2(q.destination) }} · {{ q.emptyReturn ? 'Two Way' : 'One Way' }} {{ q.unit === 'especializado' ? (q.platformType || '') : q.unit }} {{ fmtMXN(q.priceMXN) }} MXN
{{ t('legal.eyebrow') }}

{{ t('admin.eyebrow') }}

{{ t('dash.hello') }} {{ greetingName }}

{{ t('role.admin') }} {{ t('dash.unlimited') }}
{{ quotaInfo.used }} {{ t('dash.thisMonth') }}
…
{{ t('admin.statUsers') }}
{{ adminStats.users.total }}
{{ adminStats.users.active }} {{ t('admin.statActive') }} · {{ planName(k) }} {{ n }}
{{ t('admin.statQuotes') }}
{{ adminStats.quotes.total }}
{{ adminStats.quotes.thisMonth }} {{ t('admin.statThisMonth') }}
{{ t('admin.statAvg') }}
{{ fmtMXN(adminStats.quotes.avgPriceMXN) }}
MXN
{{ t('admin.topRoutes') }}
—
{{ r.origin }} → {{ r.destination }} {{ r.count }} · {{ fmtMXN(r.avgPriceMXN) }}
{{ t('admin.perMonth') }}
{{ m.month }} {{ m.quotes }} {{ t('admin.count') }} · {{ m.users }} {{ t('admin.statUsers').toLowerCase() }}
{{ t('admin.byMode') }}
{{ k }}{{ n }}
{{ t('admin.byUnit') }}
{{ k }}{{ n }}
{{ trafficError }}
…
{{ costError }}
…
{{ t('org.createTitle') }}

{{ t('org.createHint') }}

{{ adminOrgError }}
{{ t('org.noOrgs') }}
{{ t('org.name') }}{{ t('org.ownerEmail') }} {{ t('org.seats') }}{{ t('admin.colQuotes') }} {{ t('admin.colStatus') }}{{ t('admin.colActions') }}
{{ o.name }}{{ o.taxId }} {{ o.ownerEmail || '—' }}
{{ o.seatsUsed }} {{ t('org.inUse') }}
{{ o.quotesThisMonth }}{{ t('admin.statThisMonth') }} {{ o.active ? t('admin.active') : t('admin.inactive') }} {{ t('admin.paused') }} {{ t('org.statusCanceling') }}
{{ t('history.loading') }}
{{ t('history.empty') }}
{{ t('history.date') }}{{ t('history.route') }} {{ t('history.unit') }}{{ t('history.price') }}
{{ fmtDate(q.createdAt) }}{{ q.folio }} {{ shortLoc2(q.origin) }} → {{ shortLoc2(q.destination) }} {{ q.emptyReturn ? 'Two Way' : 'One Way' }} {{ q.unit === 'especializado' ? (q.platformType || '') : q.unit }} {{ fmtMXN(q.priceMXN) }} MXN
{{ t('admin.colClient') }}{{ t('admin.colPlan') }} {{ t('admin.colQuotes') }}{{ t('admin.colLast') }} {{ t('admin.colStatus') }}{{ t('admin.colActions') }}
{{ u.companyName || '—' }} {{ u.email }} {{ planName(u.planCode) }} {{ u.balance === null ? t('dash.unlimited') : u.balance + ' ' + t(u.balance === 1 ? 'dash.credit1' : 'dash.creditsN') }} {{ t('admin.compUntil').replace('{date}', fmtDate(u.periodEnd)) }} {{ u.quotesTotal }}{{ u.quotesThisMonth }} {{ t('admin.statThisMonth') }} {{ fmtDate(u.lastQuoteAt) }} {{ u.isActive ? t('admin.active') : t('admin.inactive') }} {{ t('admin.paused') }}

{{ t('admin.quotesOf') }} {{ adminSelectedUser.companyName || adminSelectedUser.email }}

{{ t('admin.noQuotes') }}
{{ t('history.date') }}{{ t('history.route') }} {{ t('history.unit') }}{{ t('history.price') }}
{{ fmtDate(q.createdAt) }}{{ q.folio }} {{ shortLoc2(q.origin) }} → {{ shortLoc2(q.destination) }} {{ q.mode }} · {{ q.emptyReturn ? 'Two Way' : 'One Way' }} {{ q.unit === 'especializado' ? (q.platformType || '') : q.unit }} {{ fmtMXN(q.priceMXN) }} MXN
{{ toast.msg }}