Keep several physical shops under one brand and one programme.
Where: Merchant workspace → Locations.
Concept illustration: physical outlets share one brand programme.
Create one brand for a chain, then add each shop as an outlet.Each outlet belongs to exactly one business. A business has its own subscription,
invoices and payment settings, separate from other businesses under the same login.
New businesses start with one outlet; additional locations are arranged after setup.
Open Locations in your merchant workspace. Select a store name, or use its
three-dot menu and choose View store, to open its read-only overview.
Choose Edit location to change the address, contact details, coordinates or status.
Location overview returns without saving; a successful save returns to the overview.
Select Add store to create a location. Enter its details and choose Save store;
only that store is saved. All locations returns to the list.Outlets are peers; there is no main-store designation to manage. QR signs default
to All locations. Choose a specific active outlet when you need an outlet-specific sign.Postal code is required during setup. Unit number and outlet phone are optional;
you do not need to enter map coordinates.
A member’s loyalty membership belongs to the brand. Visits can be recorded at different
outlets without creating a new membership at each one. Choose the correct outlet
when scanning so visit reporting stays accurate.
Locations focuses on the store network and performance table, without repeating
an all-locations statistics panel. Open a store to see Performance this month
and its daily or monthly visit graph. Use Refresh visits for the latest totals.
For date-filtered brand totals, use Overview.Visits count staff-issued stamp events attributed to a location, not foot traffic
or read-only QR checks. Dates use UTC. The daily graph includes today’s partial
activity; the monthly graph includes the current month so far. Daily comparisons
use the corresponding day 30 days earlier, which may be a complete day.When the activity history exceeds the reporting limit or cannot be fully loaded,
the graph shows unavailable rather than an estimated trend. Exact totals can still
be displayed separately. Demo values are illustrative.The compact store table includes an address preview, country flag where supported, and an active-status indicator.
Compare by changes the ranking metric; the highest value is marked beside that
metric, including ties. An inactive store does not show the active pulse.Each location overview shows this month’s visits, rewards redeemed and unique
members who received a stamp. Monthly statistics use UTC; incomplete totals show
Unavailable, not zero.Recent activity shows recorded scans, stamps and reward redemptions, newest
first, ten per page across all dates. Search by member name or code, filter by
activity type and use Previous/Next for older entries. Each row shows the member, the recorded staff account, the reward name
when available, and the timestamp in the outlet’s time zone.Read-only membership checks and failed scans are not recorded in this activity
log. A missing staff name does not erase attribution: the recorded account ID is
shown when permissions prevent displaying the name. Activity is read-only and
available to Owners and Managers in the same organisation.See Dashboard and reporting for location leaders, reporting
periods and the meaning of incomplete data.
For an outlet that is no longer serving members, review its status before removing it.
Scan and redemption records are audit history and must not be deleted to hide a mistake.Outlet-specific team restrictions are not yet documented as available. See
roles before planning access for your team.
Arrange billing and an outlet allowance before adding or reactivating stores beyond
your capacity. See usage limits; additional outlets do not
automatically multiply other allowances.Each business has one subscription with a paid outlet quantity. Three Growth
outlets cost S$150/month. Where enabled, use Settings → Billing to buy more
capacity; payment must be confirmed before extra outlets can be activated.
Creating a location does not itself purchase capacity or change the charge.Pause unwanted locations before scheduling a lower paid quantity for the next
renewal. Pausing or deleting a location alone does not reduce your bill. If the
billing control is unavailable, contact Kardy before activating additional outlets.
The introductory offer applies only to each business’s first outlet, not every
new location. See plans and activation.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Kardy Docs","description":"Set up and run Kardy loyalty for your organization. Guides to card design, rewards, outlets, customer journeys, security, and wallet integrations.","colors":{"primary":"#42001C","light":"#FF90C1","dark":"#42001C"},"logo":{"light":"https://mintcdn.com/kardy/Mog1AEmsXW_pC6SU/images/logo-light.svg?fit=max\u0026auto=format\u0026n=Mog1AEmsXW_pC6SU\u0026q=85\u0026s=f6630c7547635e402a1b83f57da29a0d","dark":"https://mintcdn.com/kardy/Mog1AEmsXW_pC6SU/images/logo-dark.svg?fit=max\u0026auto=format\u0026n=Mog1AEmsXW_pC6SU\u0026q=85\u0026s=364cc496542404fa1097f7f52c3a508e","href":"/intro"},"favicon":"https://mintcdn.com/kardy/nxOaTz8FK47iE1_A/images/favicon.svg?fit=max\u0026auto=format\u0026n=nxOaTz8FK47iE1_A\u0026q=85\u0026s=c1c758e7a4bd76cca25f5c25fa0018a7","navbar":{"links":[{"href":"https://getkardy.com","label":"Back to Kardy"},{"href":"https://getkardy.com/support","label":"Support"},{"href":"https://status.getkardy.com/","label":"System status"}]},"footer":{"socials":{"website":"https://getkardy.com","github":"https://github.com/8starlabs"},"links":[{"header":"Legal","items":[{"label":"Legal overview","href":"/legal"},{"label":"Privacy Policy","href":"/privacy"},{"label":"Terms \u0026 Conditions","href":"/terms"}]},{"header":"Portals","items":[{"label":"Merchant portal","href":"/portals"},{"label":"Consumer portal","href":"/portals"}]},{"header":"Guides","items":[{"label":"Start here","href":"/intro"},{"label":"Features","href":"/features/overview"},{"label":"Quick start","href":"/guides/quick-start"},{"label":"Launch guide","href":"/guides/owner"},{"label":"Accounts \u0026 access","href":"/guides/accounts"},{"label":"Customer journey","href":"/customer-journey/overview"},{"label":"MCP","href":"/mcp/overview"},{"label":"Technical","href":"/technical/overview"}]},{"header":"Need help?","items":[{"label":"Help and support","href":"/help"},{"label":"Feature availability","href":"/availability"}]}]},"seo":{"metatags":{"canonical":"https://docs.getkardy.com","robots":"index, follow, max-image-preview:large","og:site_name":"Kardy Docs","og:type":"website","twitter:card":"summary_large_image"},"indexing":"navigable"},"errors":{"404":{"redirect":false,"title":"That guide isn’t here.","description":"The link may be old or the guide may have moved. [Start with Kardy Docs](/intro) or [find help](/help)."}},"thumbnails":{"background":"https://mintcdn.com/kardy/OnLHsJ-bDppL-R8C/images/og-background.png?fit=max\u0026auto=format\u0026n=OnLHsJ-bDppL-R8C\u0026q=85\u0026s=f58a4db4dd79534ef149015fababee1a"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"kardy","hasAudioNarration":false,"actualSubdomain":"kardy","customDomains":["docs.getkardy.com"],"gitSource":{"type":"github","owner":"getkardy","repo":"docs.getkardy.com","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6aaffea19041baaf25118528","collectionId":"6609731e-cae0-462c-8938-1702ef27e56d","liveDeploymentHistoryId":"6aaffea19041baaf25118528","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6aaffea19041baaf25118528","clientVersion":"0.0.4005","searchFilterCounts":[{"language":"default","tag":"Features","count":46},{"language":"default","tag":"Guides","count":19},{"language":"default","tag":"Customers","count":15},{"language":"default","tag":"Merchant workspace","count":9},{"language":"default","tag":"For owners","count":7},{"language":"default","tag":"Start here","count":6},{"language":"default","tag":"Customer experience","count":6},{"language":"default","tag":"Kardy","count":5},{"language":"default","tag":"Loyalty programme","count":5},{"language":"default","tag":"Shared references","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"button-arrows.css","content":"a.kardy-portal-button{background-color:#42001c;color:#fff;text-decoration:none}a.kardy-portal-button:hover{background-color:#65032f}.dark a.kardy-portal-button{background-color:#ff90c1;color:#42001c}.dark a.kardy-portal-button:hover{background-color:#ffafd2}a.kardy-portal-button:focus-visible{outline:2px solid #af79f3;outline-offset:4px}:is(button, a):has(>:is(.t-button-arrow, .lucide-arrow-right, .lucide-arrow-up-right)){display:inline-flex;align-items:center;gap:.5rem;transition:background-color 150ms}:is(button, a)>:is(.t-button-arrow, .lucide-arrow-right, .lucide-arrow-up-right){order:1;flex-shrink:0}:is(button, a)>.lucide-arrow-up-right{rotate:45deg}:is(button, a)>.t-button-arrow{width:14px;height:14px}.arrow-icon__tip,:is(button, a)>.lucide-arrow-right>path:last-child{transform:translateX(-3px);transition:transform 150ms}:is(button, a)>.lucide-arrow-up-right>path:first-child{transform:translate(-2.1213px,2.1213px);transition:transform 150ms}.arrow-icon__line,:is(button, a)>.lucide-arrow-right>path:first-child,:is(button, a)>.lucide-arrow-up-right>path:last-child{opacity:0;transition:opacity 150ms}:is(button, a):not(:disabled):not([aria-disabled=true]):not([aria-busy=true]):is(:hover, :focus-visible)>.lucide-arrow-right>path:last-child,:is(button, a):not(:disabled):not([aria-disabled=true]):not([aria-busy=true]):is(:hover, :focus-visible)>.lucide-arrow-up-right>path:first-child,:is(button, a):not(:disabled):not([aria-disabled=true]):not([aria-busy=true]):is(:hover, :focus-visible)>.t-button-arrow .arrow-icon__tip{transform:translateX(0)}:is(button, a):not(:disabled):not([aria-disabled=true]):not([aria-busy=true]):is(:hover, :focus-visible)>.lucide-arrow-right>path:first-child,:is(button, a):not(:disabled):not([aria-disabled=true]):not([aria-busy=true]):is(:hover, :focus-visible)>.lucide-arrow-up-right>path:last-child,:is(button, a):not(:disabled):not([aria-disabled=true]):not([aria-busy=true]):is(:hover, :focus-visible)>.t-button-arrow .arrow-icon__line{opacity:1}.t-button-primary:not(:disabled):not([aria-disabled=true]):is(\n :hover,\n :focus-visible\n ){background-color:color-mix(in srgb,hsl(var(--ink)) 80%,black)}.t-button-signal:not(:disabled):not([aria-disabled=true]):is(\n :hover,\n :focus-visible\n ){background-color:hsl(var(--signal-hover))}@media (prefers-reduced-motion:reduce){.arrow-icon__line,.arrow-icon__tip,:is(button, a):has(>:is(.t-button-arrow, .lucide-arrow-right, .lucide-arrow-up-right)),:is(button, a)>:is(.lucide-arrow-right, .lucide-arrow-up-right)>path{transition:none!important}}"},{"filePath":"feature-illustrations.css","content":".dark .referral-bento-light,.referral-bento-dark{display:none}.dark .referral-bento-dark,.referral-bento-light{display:block}.kardy-feature-art{--bf-paper:#fff;--bf-stage:#f5f5f7;--bf-line:#dedee3;--bf-ink:#42001c;--bf-muted:#61616d;--bf-accent:#42001c;width:100%;padding:clamp(18px,4vw,30px);border-radius:14px;background:linear-gradient(#ffffff66,#ffffff66),url(/images/features/bento-silk-v4.webp) center/cover no-repeat,#fff;color:var(--bf-ink);text-align:left;font-family:Inter,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;font-size:13px;line-height:1.5;container-type:inline-size}.kardy-feature-art,.kardy-feature-art *{box-sizing:border-box}.dark .kardy-feature-art{background:linear-gradient(#00000040,#00000040),url(/images/features/bento-silk-dark-v1.webp) center/cover no-repeat,#090909}.dark .kardy-feature-art .bf-intro{--bf-ink:#fff0ee;--bf-accent:#fff0ee;color:#fff0ee}.dark .kardy-feature-art .bf-example{color:#e4dce7}.kardy-feature-art b,.kardy-feature-art strong{color:inherit;font-weight:600}.kardy-feature-art small{display:block;color:var(--bf-muted);font-size:11px;line-height:1.6}.kardy-feature-art .bf-icon{display:inline-block;width:20px;height:20px;flex-shrink:0;margin:0}.bf-safari{padding:0 7px 7px;border:1px solid #ffffffb3;border-radius:15px;background:linear-gradient(135deg,#ffffffad,#ffffff45);backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);box-shadow:0 15px 40px #42001c0c,0 0 0 1px #42001c08,inset 0 1px #fff}.bf-safari-toolbar{position:relative;display:flex;align-items:center;justify-content:center;height:38px;padding:0 12px;color:#616575}.bf-safari-dots{position:absolute;left:12px;display:flex;gap:5px}.bf-safari-dots i{width:7px;height:7px;border-radius:50%;background:#b7bccb80}.bf-safari-address{display:flex;align-items:center;justify-content:center;gap:5px;width:62%;min-width:0;height:23px;border:1px solid #ffffffb3;border-radius:12px;background:#ffffff80;font-size:9px;white-space:nowrap}.kardy-feature-art .bf-safari-address .bf-icon{width:10px;height:10px}.bf-safari-content{overflow:hidden;border-radius:6px;background:#fff}.bf-safari-content>.bf-panel{margin:0;border:0;border-radius:0;box-shadow:none}.kardy-desktop-install{margin:24px 0}.kardy-desktop-install .bf-safari-toolbar{height:44px;padding-right:36px}.kardy-desktop-install .desktop-install-icon{position:absolute;right:5px;display:grid;place-items:center;width:28px;height:28px;aspect-ratio:1;flex:0 0 28px;border-radius:50%;background:#ff90c1;color:#42001c}.kardy-desktop-install .desktop-install-icon svg{display:block;width:16px;height:16px;margin:0}.desktop-install-scene{display:grid;grid-template-columns:1fr 1.3fr;align-items:center;gap:22px;padding:24px}.desktop-install-wallet>strong{display:block;font-size:19px;margin-bottom:14px}.desktop-install-membership{min-height:112px;padding:16px;border-radius:14px;background:#eadcfa;color:#42001c}.desktop-install-membership b{font-size:20px}.kardy-desktop-install .desktop-install-membership small{color:#42001c;margin-top:8px}.desktop-install-dialog{padding:20px;border:1px solid var(--bf-line);border-radius:16px;background:var(--bf-paper);box-shadow:0 8px 24px #42001c08}.desktop-install-dialog>strong{font-size:16px}.desktop-install-dialog>small,.kardy-desktop-install figcaption small{margin-top:6px}.desktop-install-actions{display:flex;align-items:center;justify-content:flex-end;gap:20px;margin-top:28px;font-size:12px;color:var(--bf-muted)}.desktop-install-confirm{display:inline-flex;align-items:center;justify-content:center;min-width:80px;height:34px;padding:0 18px;border-radius:8px;background:#42001c;color:#fff0ee}.kardy-desktop-install figcaption{margin-top:18px;color:var(--bf-ink);font-size:13px;line-height:1.6}.dark .kardy-desktop-install{--bf-paper:#19191e;--bf-line:#ffffff26;--bf-ink:#fff0ee;--bf-muted:#bfb8c3}.dark .kardy-desktop-install .bf-safari{background:linear-gradient(135deg,#252329cc,#19191e88);border-color:#ffffff30;box-shadow:0 15px 40px #0003,inset 0 1px #ffffff20}.dark .kardy-desktop-install .bf-safari-address{background:#ffffff12;border-color:#ffffff26;color:#d9d2df}.dark .kardy-desktop-install .bf-safari-content{background:var(--bf-paper)}.dark .kardy-desktop-install .desktop-install-confirm{background:#ff90c1;color:#42001c}@container (max-width: 420px){.desktop-install-scene{grid-template-columns:1fr;gap:16px;padding:16px}.desktop-install-membership{min-height:80px}.desktop-install-dialog{padding:16px}}.bf-intro{margin-bottom:24px}.bf-intro>span{display:flex;align-items:center;gap:7px;color:var(--bf-ink);font-size:11px}.bf-intro .bf-icon{width:15px;height:15px}.bf-headline{margin-top:12px;font-size:clamp(23px,4cqw,30px);font-weight:600;letter-spacing:-.9px;line-height:1.12}.bf-headline em{color:var(--bf-accent);font-style:normal}.bf-scene{max-width:560px;margin:0 auto}.bf-panel{padding:18px;border:1px solid #dedee7;border-radius:17px;background:var(--bf-paper);box-shadow:0 3px 0 #ebebee,0 12px 30px #30234405;min-width:0}.bf-panel-title{display:grid;gap:3px;margin-bottom:17px}.bf-panel-title>b{font-size:16px;letter-spacing:-.3px}.bf-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:center}.bf-pair>*{min-width:0}.bf-field{margin:0 0 14px}.bf-field>small{margin-bottom:5px}.bf-field>div{background:#fff;border:1px solid rgba(15,23,28,.2);border-radius:8px;color:#0e1417;box-shadow:0 1px 2px rgb(0 0 0/.05);padding:9px 10px;font-size:12px}.bf-label{display:block;color:var(--bf-muted);font-size:10px;letter-spacing:.06em}.bf-card-wrap>.bf-label{margin-bottom:12px}.kardy-feature-art .bf-brand{display:block;margin:0;width:112px;height:40px;object-fit:contain;border-radius:0;background:0 0}.bf-landing-card{container-type:inline-size;position:relative;overflow:hidden;padding:16px;border:1px solid #ffffff85;border-radius:18px;background-color:#eee5ff;background-image:linear-gradient(to bottom,#fffffff5 0,#ffffffd9 28px,#ffffff80 52px,#ffffff26 76px,#ffffff00 104px),linear-gradient(to top,#fffffff5 0,#ffffff80 18px,#ffffff00 48px),url(/images/landing/wallet-drift.svg);background-size:cover;background-position:center;color:#42001c;box-shadow:0 12px 28px #1c143b20,inset 0 1px #ffffff70}.bf-landing-card-brand .bf-brand{width:132px;max-width:85%;height:auto;margin:0}.bf-landing-stamp-panel{margin-top:23px;padding:15px 10px 10px;border-radius:12px;background:#fff}.bf-landing-stamps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));justify-items:center;gap:12px 6px}.bf-landing-stamps>span{display:flex;color:#71717a}.kardy-feature-art .bf-landing-stamps .bf-icon{width:19px;height:19px}.bf-landing-stamps>span[data-filled=true]{color:#42001c}.bf-landing-stamps>span[data-filled=true]:not([data-reward=true]) svg{fill:currentColor}.bf-landing-stamps>span[data-reward=true]{color:#252333}.bf-landing-stamp-count{display:block;margin-top:12px;font-size:10px;color:#3f3f46}.bf-landing-card-qr{display:flex;flex-direction:column;align-items:center;gap:5px;margin-top:16px;font-size:9px}.bf-landing-card-qr img{display:block;width:84px;height:84px;margin:0;padding:5px;background:#fff;border-radius:6px}.bf-phone .bf-landing-card{padding:10px;border-radius:12px}.bf-phone .bf-landing-card-brand .bf-brand{width:90px}.bf-phone .bf-landing-stamp-panel{margin-top:16px;padding:10px 7px 7px;border-radius:8px}.bf-phone .bf-landing-stamps{gap:8px 4px}.kardy-feature-art .bf-phone .bf-landing-stamps .bf-icon,.kardy-feature-art .bf-wallet-nav .bf-icon{width:13px;height:13px}.bf-phone .bf-landing-stamp-count{margin-top:8px;font-size:7px}.bf-phone .bf-landing-card-qr{margin-top:11px;font-size:6px;gap:3px}.bf-phone .bf-landing-card-qr img{width:57px;height:57px;padding:3px;border-radius:4px}.bf-wallet-heading{display:flex;justify-content:space-between;align-items:center;margin:8px 0 16px}.bf-wallet-heading b{font-size:19px;letter-spacing:-.8px}.bf-wallet-heading>span{display:grid;place-items:center;width:27px;height:27px;border-radius:9px;background:#ff90c1}.bf-wallet-heading img{width:20px;height:auto;margin:0}.bf-pass-top small,.kardy-feature-art .bf-wallet-greeting{font-size:8px}.bf-wallet-instruction{margin:9px 0;text-align:center;font-size:7px;color:#60606b}.bf-wallet-nav{position:absolute;bottom:23px;left:12px;right:12px;display:flex;justify-content:space-between;border-top:1px solid #d4d4dc;padding-top:9px}.bf-wallet-nav>span{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:6px;color:#60606b}.bf-wallet-nav>span:first-child{color:#42001c}.bf-app-mark img{width:32px;height:auto;margin:0}.bf-pass{overflow:hidden;background:#e8deff;border:1px solid #dfd4f4;border-radius:18px;box-shadow:0 4px 0 #e3e2e9}.bf-pass-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 12px}.bf-pass-top>span{text-align:right}.bf-pass-top b{font-size:19px}.bf-pass-top b small{display:inline;font-size:10px}.bf-pass-body{padding:16px 14px;background:linear-gradient(135deg,#eee6ff,#d7d8db);border-top:1px solid #d8c9f2;border-bottom:1px solid #d8c9f2}.bf-pass-body>b{font-size:20px;letter-spacing:-.6px}.bf-pass-foot,.bf-stamps{display:flex;justify-content:space-between}.bf-stamps{gap:6px;margin:20px 0 4px}.bf-stamps i{width:11px;height:11px;border:1px solid #88818e;border-radius:100%}.bf-stamps i.bf-stamped{background:#293222;border-color:#293222}.bf-pass-foot{gap:12px;padding:12px 14px;font-size:10px}.bf-pass-foot small{font-size:8px;letter-spacing:.08em;margin-bottom:3px}.bf-swatches{display:flex;gap:9px;margin:8px 0 14px}.bf-swatches>span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;color:#fff}.bf-row{display:flex;align-items:center;gap:9px;padding:12px 0;min-width:0}.bf-row+.bf-row{border-top:1px solid var(--bf-line)}.bf-row>.bf-icon{color:#8d8599}.bf-row>div{flex:1;min-width:0}.bf-person b,.bf-row b{display:block;font-size:12px}.bf-row-end{margin-left:auto;font-size:11px;color:var(--bf-muted)}.bf-pill{display:inline-block;color:var(--bf-ink);border:1px solid var(--bf-line);background:#f7f7f8;padding:4px 7px;border-radius:6px;font-size:10px;line-height:1.5}.bf-person{display:flex;align-items:center;gap:9px}.bf-person small{font-size:10px}.bf-avatar{display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;border-radius:50%;overflow:hidden;border:1px solid rgb(255 255 255/.8);background:#fff;box-shadow:0 1px 2px rgb(0 0 0/.05)}.bf-avatar img{display:block;width:100%;height:100%;margin:0;border-radius:inherit}.bf-chat{max-width:95%;margin:18px 0 12px auto;border-radius:13px 13px 3px 13px;padding:12px;background:#42001c;color:#fff;font-size:12px}.bf-invite{padding:12px 12px 0;border:1px solid #ddd1f6;border-radius:11px}.bf-invite .bf-row{margin-top:9px;border-top:1px solid #e5dcf3;color:#42001c}.bf-invite .bf-row b{font-size:10px;font-weight:400}.kardy-feature-art .bf-receipt{text-align:right;font-size:9px;margin-top:7px}.bf-coffee{display:grid;place-items:center;min-height:104px;border-radius:12px;background:#edf1e8;color:#43553a}.bf-coffee .bf-icon{width:66px;height:66px;stroke-width:1}.bf-scene-referrals>.bf-pair{align-items:stretch}.bf-bonus{margin-top:20px;padding:18px;border:1px solid #d8e1cf;border-top:4px solid #dfe7d8;border-radius:15px;background:#f5f8f1;color:#34472e}.bf-bonus>.bf-pair{margin:14px 0}.bf-bonus strong{display:block;margin-top:12px;font-size:36px;letter-spacing:-1.5px;line-height:1}.bf-bonus strong small{display:inline-block;color:#34472e;letter-spacing:0}.bf-bonus>small{border-top:1px solid #d8e1cf;padding-top:10px}.bf-mcp-header,.bf-tool{display:flex;align-items:center}.bf-tool{gap:11px;padding:10px 12px;margin-top:7px;border:1px solid #eeedf2;border-radius:8px;background:#f6f6f8;font-family:\"SFMono-Regular\",Consolas,monospace;font-size:12px;color:#464352}.bf-mcp-header{gap:10px;padding-bottom:12px}.bf-mcp-mark{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border-radius:10px;background:#c5ff3d}.bf-mcp-mark img{width:27px;height:auto;margin:0}.bf-mcp-identity,.bf-tool>div{flex:1;min-width:0}.bf-mcp-identity small{margin-top:4px;font-size:10px}.bf-mcp-access,.bf-mcp-lockup{display:flex;align-items:center;gap:9px}.bf-mcp-lockup img{width:88px;height:24px;margin:0}.bf-mcp-lockup>span{border-left:1px solid #39205a30;padding-left:9px;color:#39205a;font:10px/16px monospace;letter-spacing:.12em}.bf-tool small{margin-top:4px;font:10px/1.4 -apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif}.bf-mcp-access{gap:5px}.bf-mcp-access .bf-icon{width:13px;height:13px}.bf-mcp-boundary{color:var(--bf-ink);margin-top:24px}.bf-tool .bf-icon{width:14px;height:14px;color:#9180ba}.bf-split-note{display:flex;justify-content:space-between;gap:12px;padding-top:14px;font-size:10px;color:var(--bf-muted)}.bf-wires{width:100%;height:46px;display:block;margin:0;fill:none;stroke:#cbbce8;stroke-width:1.5}.bf-branches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.bf-client{text-align:center}.bf-client-mark{display:grid;place-items:center;width:54px;height:54px;border-radius:15px;border:1px solid #e1dce9;box-shadow:0 3px 0 #e7e2ef;margin:0 auto 9px;background:#fbf8ff;color:#7957b4}.bf-client-0{background:#fff8f3}.bf-client-1{background:linear-gradient(160deg,#353633,#111211)}.kardy-feature-art .bf-client-mark img{width:30px;height:30px;margin:0;border-radius:0}.kardy-feature-art .bf-client-1 img{width:42px;height:42px}@container (max-width: 360px){.bf-mcp-header>.bf-pill{display:none}}.bf-bonus strong small,.bf-client b{font-size:11px;font-weight:400}.bf-email{display:grid;gap:10px;padding:15px 0 20px;border-bottom:1px solid var(--bf-line)}.bf-email b{font-size:23px;letter-spacing:-.6px}.bf-email span{color:var(--bf-muted);font-size:12px}.bf-member-row,.bf-search{display:flex;align-items:center}.bf-search{gap:8px;border:1px solid rgba(15,23,28,.2);background:#fff;box-shadow:0 1px 2px rgb(0 0 0/.05);border-radius:8px;padding:10px;color:var(--bf-muted);font-size:12px}.bf-search .bf-icon{width:15px;height:15px}.bf-member-row{justify-content:space-between;gap:10px;padding:16px 0;border-bottom:1px solid var(--bf-line)}.bf-member-row:last-child{border-bottom:0;padding-bottom:0}.bf-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.bf-metrics>div{padding:12px;border:1px solid var(--bf-line);border-radius:10px}.bf-metrics strong{font-size:29px;letter-spacing:-1px;display:block;margin-top:6px}.bf-meter{height:6px;border-radius:4px;background:#e8e8ec;overflow:hidden;margin-bottom:13px}.bf-meter span{display:block;height:100%;background:var(--bf-accent);border-radius:inherit}.bf-usage{padding-bottom:8px;border-bottom:1px solid var(--bf-line)}.bf-root{max-width:270px}.bf-root,.bf-root .bf-brand{margin:0 auto}.bf-node{display:flex;flex-direction:column;align-items:center;gap:7px;padding:14px 8px;background:#fff;border:1px solid var(--bf-line);border-radius:11px;text-align:center}.bf-node b{font-size:11px}.bf-node small{font-size:10px}.bf-node>.bf-icon{color:var(--bf-ink)}.bf-node .bf-brand{width:100%;max-width:112px}.bf-under-note{display:block;margin-top:17px;text-align:center;font-size:11px;line-height:1.6;color:var(--bf-muted)}.bf-toggle-wrap{display:grid;justify-items:center;gap:4px;flex-shrink:0}.bf-toggle{display:block;width:32px;height:19px;padding:3px;background:#d8d8de;border-radius:20px}.bf-toggle::after{content:\"\";display:block;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0002}.bf-toggle-on{background:#42001c}.bf-toggle-on::after{margin-left:auto}.bf-categories,.bf-offer>div{display:flex;align-items:center}.bf-categories{gap:14px;font-size:10px;color:var(--bf-muted);padding:14px 0}.bf-offer{border-radius:18px;padding:20px;background:linear-gradient(130deg,#e1edc9,#aac784);color:#294026}.bf-offer>div{justify-content:space-between;gap:10px;margin:35px 0 12px}.bf-offer b{font-size:25px;letter-spacing:-.7px}.bf-offer .bf-icon{width:45px;height:45px}.bf-offer small{color:#43553a}.bf-action{background:#42001c;color:#fff;border-radius:7px;padding:10px;text-align:center;font-size:11px;margin-top:12px}.bf-qr-placeholder{display:grid;justify-items:center;gap:10px;padding:24px 8px;margin-top:18px;border:1px dashed #cdcdd3;border-radius:9px;text-align:center;color:var(--bf-ink);font-size:12px}.bf-qr-placeholder .bf-icon{width:38px;height:38px}.bf-device-pair{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:32px;align-items:center}.bf-native-wallets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}.bf-wallet-brand{display:flex;align-items:center;gap:10px;margin-bottom:16px;font-size:14px}.bf-wallet-brand img{width:32px;height:32px;object-fit:contain;border-radius:8px;margin:0}.bf-native-pass{display:flex;flex-direction:column;min-height:340px;overflow:hidden;border:1px solid var(--bf-line);border-radius:16px;background:#fff;color:var(--bf-ink);box-shadow:0 3px 6px #18181b05,0 16px 28px -16px #18181b26;font-family:-apple-system,BlinkMacSystemFont,\"Helvetica Neue\",sans-serif}.bf-native-pass-google{border-radius:24px}.bf-native-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:62px;padding:14px 16px;font-size:12px;font-weight:600}.bf-native-progress{text-align:right}.bf-native-progress b{display:block;font-size:19px;line-height:1.2}.bf-native-details{padding:10px 16px 0}.bf-native-details>b{display:block;font-size:24px;line-height:1.15;letter-spacing:-.8px;margin-top:4px}.bf-native-pass small{color:var(--bf-muted);font-size:9px}.bf-native-reward{margin-top:18px;font-size:12px}.bf-native-qr{margin-top:auto;padding:20px 12px 14px;text-align:center}.bf-native-qr img{width:114px;height:114px;margin:0 auto 7px;border-radius:6px}@container (max-width: 420px){.bf-native-wallets{grid-template-columns:minmax(0,1fr);max-width:270px;margin-inline:auto;gap:28px}}.bf-phone{position:relative;width:220px;max-width:100%;aspect-ratio:71.5/149.6;margin-inline:auto;border:1px solid #717074;border-radius:32px;background:linear-gradient(105deg,#adabb1,#414044 8%,#18181b 50%,#77757c 95%,#343337);box-shadow:inset 0 0 0 1.5px #d3d1d540,0 1px 0 #101014,0 16px 36px #1e183e22}.bf-phone::after,.bf-phone::before{content:\"\";position:absolute;width:2px;border-radius:2px;background:linear-gradient(90deg,#7d7b80,#2b2a2e)}.bf-phone::before{left:-3px;top:76px;height:22px;box-shadow:0 33px 0 #454448,0 60px 0 #454448}.bf-phone::after{right:-3px;top:117px;height:42px}.bf-phone-screen{position:absolute;inset:4px;display:flex;flex-direction:column;overflow:hidden;border:2px solid #101012;border-radius:27px;padding-bottom:22px;background:#f5f5f7;color:#42001c;font-family:-apple-system,BlinkMacSystemFont,\"Helvetica Neue\",sans-serif}.bf-phone-status{position:relative;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;height:32px;padding:5px 12px 0;font-size:8px;font-weight:600}.bf-phone-status i{position:absolute;top:5px;left:50%;transform:translateX(-50%);width:58px;height:16px;background:#000;border-radius:20px}.bf-phone-status i::after{content:\"\";position:absolute;top:5px;right:7px;width:6px;height:6px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#333448,#08080c 70%)}.bf-phone-status .bf-phone-connection{width:29px;height:10px;margin:0}.bf-phone-content{min-height:0;padding:14px 11px 0}.bf-phone .bf-pass-top .bf-brand,.bf-phone-content>.bf-brand{width:90px;height:32px}.bf-device-heading{display:block;font-size:18px;line-height:1.15;letter-spacing:-.5px;margin:12px 0 20px}.bf-phone .bf-field>div{font-size:10px;padding:7px}.bf-phone .bf-field small{font-size:9px}.bf-phone .bf-field{margin-bottom:10px}.bf-phone .bf-pass-top{padding:10px 8px}.bf-phone .bf-pass-foot{font-size:9px;padding:10px}.bf-phone .bf-pass-foot small{font-size:7px}.bf-home-bar{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);width:68px;height:3px;border-radius:3px;background:#42001c}.bf-device-note{display:grid;justify-items:start;gap:14px}.bf-device-note>b{font-size:20px;letter-spacing:-.5px;line-height:1.2}.bf-device-note>span:not(.bf-pill):not(.bf-app-mark){color:var(--bf-muted);font-size:12px}.bf-app-mark{display:grid;place-items:center;width:52px;height:52px;border-radius:13px;background:#ff90c1;color:#fff;font-weight:650;font-size:36px;letter-spacing:-3px}.bf-example{margin-top:22px;text-align:center;color:#807987;font-size:9px}@container (max-width: 420px){.bf-pair{grid-template-columns:minmax(0,1fr);gap:18px}.bf-bonus .bf-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bf-panel{padding:14px}.bf-card-wrap{width:100%;max-width:280px;margin:0 auto}.bf-device-pair{grid-template-columns:minmax(0,1fr);justify-items:center;gap:26px}.bf-phone{width:220px;max-width:100%}.bf-device-note{width:100%}.bf-bonus .bf-person,.bf-branches,.bf-metrics{gap:6px}.bf-metrics>div{padding:10px 7px}.bf-metrics small{font-size:10px;min-height:32px}.bf-metrics strong{font-size:26px}.bf-node{padding:11px 5px}.bf-node b{font-size:10px}.bf-node small{font-size:9px}.bf-bonus strong{font-size:32px}.bf-bonus strong small{display:block;margin-top:5px}.bf-bonus .bf-avatar{width:26px;height:26px}}"},{"filePath":"guides.css","content":":root{--check-box:150ms;--check-draw:350ms;--check-delay:0ms;--check-uncheck:150ms;--check-ease:cubic-bezier(0.22, 1, 0.36, 1)}.t-check{transition:background var(--check-box) var(--check-ease),box-shadow var(--check-box) var(--check-ease)}.t-check svg path{stroke-dasharray:var(--check-len, 15);stroke-dashoffset:var(--check-len, 15);transition:stroke-dashoffset var(--check-uncheck) var(--check-ease)}.t-check[aria-checked=true] svg path{stroke-dashoffset:0;transition:stroke-dashoffset var(--check-draw) var(--check-ease) var(--check-delay)}@media (prefers-reduced-motion:reduce){.t-check,.t-check svg path{transition:none!important}}.kardy-guide{--guide-ink:#42001c;--guide-muted:#74636b;--guide-line:#eadce2;--guide-paper:#fff;--guide-tint:#fff0f5;--guide-accent:#42001c;--guide-on-accent:#fff0ee;--guide-control-line:#ad8e9c;margin:28px 0;padding:24px;border:1px solid var(--guide-line);border-radius:20px;background:var(--guide-paper);color:var(--guide-ink)}.dark .kardy-guide{--guide-ink:#fff0ee;--guide-muted:#c6b8be;--guide-line:#3b3035;--guide-paper:#151314;--guide-tint:#2c1e24;--guide-accent:#ff90c1;--guide-on-accent:#42001c;--guide-control-line:#a28593}.kardy-guide-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.kardy-guide-kicker{color:var(--guide-accent);font-size:10px;letter-spacing:.12em;font-weight:650}.kardy-guide h3{margin:6px 0 0!important;font-size:23px!important;letter-spacing:-.04em;color:inherit}.kardy-guide-count{flex-shrink:0;background:var(--guide-tint);border:1px solid var(--guide-line);padding:7px 12px;border-radius:30px;font-size:13px;font-variant-numeric:tabular-nums}.kardy-guide progress{display:block;width:100%;height:5px;margin:22px 0 14px;border:0;border-radius:8px;overflow:hidden;background:var(--guide-tint);accent-color:var(--guide-accent)}.kardy-guide progress::-webkit-progress-bar{background:var(--guide-tint)}.kardy-guide progress::-webkit-progress-value{background:var(--guide-accent)}.kardy-guide progress::-moz-progress-bar{background:var(--guide-accent)}.kardy-guide-task{display:flex;align-items:center;gap:13px;width:100%;min-height:52px;padding:12px;margin-top:4px;border-radius:9px;text-align:left;font:inherit;font-size:14px;line-height:1.5;color:inherit}.kardy-guide-task[aria-checked=true]{background:var(--guide-tint)}.kardy-guide-box{display:grid;place-items:center;flex-shrink:0;width:21px;height:21px;border:1px solid var(--guide-control-line);border-radius:6px}.kardy-guide-box svg{width:12px;height:12px;fill:none;stroke:var(--guide-on-accent);stroke-width:1.5}.kardy-guide-task[aria-checked=true] .kardy-guide-box{background:var(--guide-accent);border-color:var(--guide-accent)}.kardy-guide-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--guide-line);padding-top:16px;margin-top:18px}.kardy-guide-footer small{max-width:340px;font-size:11px;line-height:1.5;color:var(--guide-muted)}.kardy-guide-next,.kardy-guide-reset{flex-shrink:0;min-height:44px;padding:9px 12px;font-size:12px;font-weight:600;border-radius:9px}.kardy-guide-next{background:var(--guide-accent);color:var(--guide-on-accent)}.kardy-guide button:disabled{opacity:.45;cursor:not-allowed}.kardy-guide button:focus-visible{outline:2px solid var(--guide-accent);outline-offset:3px}.kardy-guide button:not(:disabled){cursor:pointer}.kardy-guide-question{font-size:17px;line-height:1.6;margin:22px 0 16px}.kardy-guide-answers{display:grid;gap:8px}.kardy-guide-answers button{display:flex;gap:12px;align-items:center;min-height:48px;padding:12px;border:1px solid var(--guide-line);border-radius:10px;text-align:left;font-size:14px;line-height:1.5;color:inherit}.kardy-guide-answers button>span{font-size:11px;color:var(--guide-muted)}.kardy-guide-answers button[aria-pressed=true]{border-color:var(--guide-accent);background:var(--guide-tint)}.kardy-guide-feedback{margin-top:16px;padding:16px;border-radius:12px;background:var(--guide-tint);font-size:14px;line-height:1.6}.kardy-guide-feedback p{margin:4px 0 0}@media (max-width:480px){.kardy-guide{padding:18px;border-radius:16px}.kardy-guide h3{font-size:20px!important}.kardy-guide-footer{align-items:flex-start;flex-direction:column;gap:6px}}"},{"filePath":"coming-soon-badge.css","content":".kardy-coming-soon,.nav-tag-pill-text[data-nav-tag=\"Coming soon\"],.nav-tag-pill-text[data-nav-tag=Coming\\a0soon]{display:inline-flex;height:18px;width:fit-content;flex-shrink:0;white-space:nowrap;min-width:max-content;user-select:none;align-items:center;border-radius:9999px;border:1px solid color-mix(in srgb,#f59e0b 40%,transparent);background:color-mix(in srgb,#f59e0b 14%,transparent);padding:0 8px;vertical-align:middle;font-size:10px;font-weight:600;line-height:1;color:#b45309}.dark .kardy-coming-soon,.dark .nav-tag-pill-text[data-nav-tag=\"Coming soon\"],.dark .nav-tag-pill-text[data-nav-tag=Coming\\a0soon]{color:#fbbf24}.nav-tag-pill:has([data-nav-tag=\"Coming soon\"]),.nav-tag-pill:has([data-nav-tag=Coming\\a0soon]){flex-shrink:0;min-width:max-content}"},{"filePath":"page-navigation.css","content":"#pagination{gap:12px;align-items:stretch;padding:0}#pagination>a{flex:1 1 0;min-width:0;min-height:108px;padding:20px 24px;border:1px solid #e5e7e7;border-radius:16px;background:#fff;color:#202523;text-decoration:none}#pagination>a:hover{border-color:#d7a7bf;background:#fff6f9}#pagination>a:focus-visible{outline:2px solid #a43b6d;outline-offset:3px}#pagination [data-component-part=pagination-title]{white-space:normal;overflow:visible;line-height:1.45;color:inherit;font-size:18px;font-weight:500}#pagination [data-component-part=pagination-chevron]{display:none}#pagination [data-component-part=pagination-title]::after{display:block;margin-top:8px;color:#6d7371;font-size:15px;font-weight:400}#pagination [rel=prev] [data-component-part=pagination-title]::after{content:\"‹ Previous\"}#pagination [rel=next]{justify-content:flex-end;text-align:right}#pagination [rel=next] [data-component-part=pagination-title]::after{content:\"Next ›\"}.kardy-guide-index{display:inline-flex;align-items:center;gap:8px;margin-top:20px;color:#6e3e55;font-size:13px;font-weight:500;text-decoration:none!important}.kardy-guide-index:hover{color:#42001c;text-decoration:underline!important}.kardy-guide-index:focus-visible{outline:2px solid #a43b6d;outline-offset:4px}.dark #pagination>a{background:#201b20;border-color:#473640;color:#f9edf3}.dark #pagination>a:hover{background:#30222c;border-color:#a36d89}.dark #pagination [data-component-part=pagination-title]::after,.dark .kardy-guide-index{color:#ceadbe}@media (max-width:480px){#pagination{gap:8px}#pagination>a{padding:14px 12px;gap:8px;font-size:12px}#pagination [data-component-part=pagination-title]{font-size:15px}#pagination [data-component-part=pagination-title]::after{font-size:13px}}"},{"filePath":"account-hierarchy.css","content":".shared-account{margin:24px 0;--account-connector:#8f526d}.shared-account-sites{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.shared-account-sites>div{padding:18px 12px;border:1px solid #e6d5dd;border-radius:12px;background:#fff;text-align:center}.shared-account-sites strong{display:block;font-size:17px}.shared-account-sites small{overflow-wrap:anywhere;margin-top:5px}.shared-account-sites span{display:block;font-size:11px;margin-top:12px}.shared-account-connectors{position:relative;height:52px;margin:0 calc(25% - 5px);display:flex}.shared-account-connectors::before{content:\"\";position:absolute;top:0;left:50%;height:26px;border-left:1px solid var(--account-connector)}.shared-account-connectors i{width:50%;height:26px;margin-top:26px;border-top:1px solid var(--account-connector)}.shared-account-connectors i:first-child{border-left:1px solid var(--account-connector)}.shared-account-connectors i:nth-child(2){border-right:1px solid var(--account-connector)}.shared-account-connectors span{position:absolute;left:50%;bottom:0;transform:translateX(-50%);color:var(--account-connector);font-size:27px;line-height:32px}.shared-account-identity{margin:auto;max-width:300px;padding:18px;border-radius:12px;border:1px solid #e6d5dd;background:#fff;text-align:center}.account-hierarchy-person img,.shared-account .shared-account-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;margin:14px auto 0}.shared-account .shared-account-logo{display:block;width:auto;max-width:100%;height:26px;object-fit:contain;margin:0 auto 10px}.account-hierarchy-person>small,.shared-account-identity>small{font-size:9px;letter-spacing:.1em}.shared-account-identity b{display:block;margin-top:10px;font-size:17px}.shared-account-identity>span{display:block;font-size:12px;overflow-wrap:anywhere;margin-top:4px}.shared-account-identity p{margin:12px 0 0;padding:8px;border-radius:6px;background:#fff0f5;font-size:12px}.account-hierarchy figcaption,.shared-account figcaption{margin-top:18px;font-size:11px;line-height:1.6}.dark .shared-account{--account-connector:#ffadd2}.dark .account-hierarchy figcaption,.dark .account-hierarchy-outlets>small,.dark .shared-account figcaption{color:#fff0ee}.account-hierarchy{margin:24px 0;--hierarchy-line:#9b5f7b}.account-hierarchy-person{max-width:320px;margin:auto;border:1px solid #dedee3;border-radius:12px;background:#fff;overflow:hidden}.account-hierarchy-person>small{padding:9px 14px;background:#f0e9fa}.account-hierarchy-outlets li,.account-hierarchy-person>div{display:flex;align-items:center;gap:12px;padding:14px}.account-hierarchy-person img{width:36px;height:36px;margin:0}.account-hierarchy-label{position:relative;width:fit-content;margin:22px auto;padding:4px 12px;border-radius:20px;background:#fff;font-size:10px}.account-hierarchy-label::after,.account-hierarchy-label::before{content:\"\";position:absolute;left:50%;height:23px;width:1px;background:var(--hierarchy-line)}.account-hierarchy-label::before{bottom:100%}.account-hierarchy-label::after{top:100%}.account-hierarchy-brands{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.account-hierarchy-branch{position:relative;padding-top:16px}.account-hierarchy-branch::before,.account-hierarchy-team::before{content:\"\";position:absolute;border-left:1px solid var(--hierarchy-line)}.account-hierarchy-branch::before,.account-hierarchy-outlets li::before{top:0;left:50%;right:-12px;height:16px;border-top:1px solid var(--hierarchy-line)}.account-hierarchy-branch+.account-hierarchy-branch::before{left:-12px;right:50%;border-left:0;border-right:1px solid var(--hierarchy-line)}.account-hierarchy-brand{overflow:hidden;border-radius:10px;background:#fff;border:1px solid #dedee3}.account-hierarchy-brand>small{background:#e6f0eb;padding:7px 12px;font-size:9px;letter-spacing:.1em}.account-hierarchy-brand img{display:block;width:110px;max-width:85%;height:42px;object-fit:contain;object-position:left center;margin:12px}.account-hierarchy-brand>span{display:block;padding:0 12px 12px;font-size:12px}.account-hierarchy-outlets{margin-left:14px;padding:12px 0 0 12px;border-left:1px solid var(--hierarchy-line)}.account-hierarchy-outlets ul{list-style:none;margin:6px 0 0;padding:0}.account-hierarchy-outlets li{position:relative;gap:6px;margin:8px 0 0;padding:8px;border-radius:6px;background:#fff;font-size:11px}.account-hierarchy-outlets li::before{content:\"\";position:absolute;top:50%;left:auto;right:100%;width:13px;height:0;border-radius:0;background:0 0}.account-hierarchy-outlets svg{width:13px;height:13px;flex-shrink:0}.account-hierarchy figcaption{margin-top:24px}.account-hierarchy-team{position:relative;margin:12px 0 0 14px;padding:12px;border:1px solid #dedee3;border-radius:10px;background:#fff}.account-hierarchy-team::before{bottom:100%;left:12px;height:13px}.account-hierarchy-team>small{font-size:9px;letter-spacing:.06em}.account-hierarchy-teammate{display:flex;align-items:center;gap:8px;margin-top:10px}.account-hierarchy-teammate img{width:28px;height:28px;border-radius:50%;object-fit:cover;margin:0}.account-hierarchy-teammate b{font-size:11px}.account-hierarchy-team p{margin:10px 0 0;font-size:10px;line-height:1.5;color:#74636b}.dark .account-hierarchy{--hierarchy-line:#efb5cd}@container (max-width: 360px){.account-hierarchy-brands{gap:16px}.account-hierarchy-outlets{margin-left:4px;padding-left:8px}.account-hierarchy-outlets li{padding:6px;font-size:10px}.account-hierarchy-outlets li::before{width:9px}}"},{"filePath":"merchant-flow-runtime.css","content":"@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow,.react-flow.dark{--xy-edge-stroke-width-default:1;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-node-group-background-color-default:rgba(240, 240, 240, .25);--xy-controls-box-shadow-default:0 0 2px 1px rgba(0, 0, 0, .08)}.react-flow{direction:ltr;--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-selected-default:#555;--xy-attribution-background-color-default:rgba(255, 255, 255, .5);--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:rgba(240, 240, 240, .6);--xy-minimap-node-background-color-default:#e2e2e2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-boxshadow-hover-default:0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:rgba(0, 89, 220, .08);--xy-selection-border-default:1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-edge-label-background-color-default:#ffffff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-selected-default:#727272;--xy-attribution-background-color-default:rgba(150, 150, 150, .25);--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:rgba(60, 60, 60, .6);--xy-minimap-node-background-color-default:#2b2b2b;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-boxshadow-hover-default:0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:rgba(200, 200, 220, .08);--xy-selection-border-default:1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:0}.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path,.react-flow__edge.selected .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__node,.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-left,.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.bottom.center,.react-flow__panel.top.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}.react-flow__edgelabel-renderer{pointer-events:none}.react-flow__edgelabel-renderer,.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var(--xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var(--xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var(--xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var(--xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var(--xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:0;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var(--xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var(--xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible,.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:0}.react-flow__node-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var(--xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.bottom,.react-flow__resize-control.line.top{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}"},{"filePath":"merchant-flows.css","content":"h2:has(+.kardy-flow){margin-top:20px;margin-bottom:8px}.kardy-flow{--flow-surface:#ffffff;--flow-canvas:#f6f8fa;--flow-ink:#42001c;--flow-muted:#75636c;--flow-line:#dfe4ea;--flow-dot:#d8dee6;--flow-lifeline:#cbd3dd;--flow-connector:#9aa6b5;--flow-selected:#fff0f5;--flow-accent:#bd3d77;margin:8px 0 2rem;border:0;background:0 0;color:var(--flow-ink);font-family:inherit}.dark .kardy-flow{--flow-surface:#191516;--flow-canvas:#14171b;--flow-ink:#fff0ee;--flow-muted:#c6b5bd;--flow-line:#353d47;--flow-dot:#303945;--flow-lifeline:#485362;--flow-connector:#8794a5;--flow-selected:#39212c;--flow-accent:#ff90c1}.kardy-flow .kardy-flow-heading{font-size:14px;line-height:1.6;color:var(--flow-muted);display:grid;gap:6px;padding:0 0 14px;margin:0;text-align:left}.kardy-flow .kardy-flow-eyebrow{font:10px ui-monospace,monospace;letter-spacing:.15em;color:var(--flow-muted)}.kardy-flow .kardy-flow-heading strong{font-size:18px;font-weight:650;letter-spacing:-.025em;color:var(--flow-ink)}.kardy-flow .kardy-flow-heading>span:last-child{font-size:12px;color:var(--flow-muted)}.kardy-flow .kardy-flow-options{display:flex;flex-wrap:wrap;gap:6px;padding:0 0 14px}.kardy-flow .kardy-flow-options button{color:var(--flow-ink);padding:8px 12px}.kardy-flow .kardy-flow-options button,.kardy-flow .kardy-flow-tools button{border:1px solid var(--flow-line);border-radius:7px;background:var(--flow-surface);font:inherit;font-size:12px;cursor:pointer}.kardy-flow .kardy-flow-options button[aria-pressed=true]{background:var(--flow-selected);border-color:var(--flow-accent)}.kardy-flow .kardy-flow-view{margin-left:auto}.kardy-flow .kardy-flow-canvas{cursor:grab;touch-action:none;user-select:none;overflow:hidden;scrollbar-width:none;height:clamp(380px,65vw,600px);background-color:var(--flow-canvas)}.kardy-flow .react-flow__node-sequence{pointer-events:none}.kardy-flow .react-flow__controls{overflow:hidden;border:1px solid var(--flow-line);border-radius:7px;box-shadow:0 2px 8px #00000008}.kardy-flow .react-flow__controls-button{display:grid;place-items:center;box-sizing:border-box;width:30px;height:30px;padding:7px;background:var(--flow-surface);color:var(--flow-muted);fill:currentColor;border:0;border-bottom:1px solid var(--flow-line);cursor:pointer}.kardy-flow .react-flow__controls-button:last-child{border-bottom:0}.kardy-flow .react-flow__controls-button:hover{background:var(--flow-selected)}.kardy-flow .react-flow__controls-button svg{width:14px;height:14px}.kardy-flow .kardy-flow-canvas::-webkit-scrollbar{display:none}.kardy-flow .kardy-flow-canvas[data-dragging=true],.kardy-flow .kardy-flow-canvas[data-dragging=true] *{cursor:grabbing}.kardy-flow .kardy-flow-map{position:relative;border:1px solid var(--flow-line);border-radius:12px;overflow:hidden}.kardy-flow .kardy-flow-size{margin:auto}.kardy-flow svg{display:block;margin:0;max-width:none}.kardy-flow .kardy-flow-lane{stroke:var(--flow-lifeline);stroke-width:1}.kardy-flow .kardy-flow-lane-label{fill:var(--flow-muted);font-size:12px;font-weight:600}.kardy-flow .kardy-flow-accent-0{fill:#55b938}.kardy-flow .kardy-flow-accent-1{fill:#f59b23}.kardy-flow .kardy-flow-accent-2{fill:#3478ed}.kardy-flow .kardy-flow-arrow,.kardy-flow .kardy-flow-edge{stroke:var(--flow-connector);stroke-width:1.2;fill:none;stroke-linejoin:round}.kardy-flow .kardy-flow-node{box-sizing:border-box;display:flex;align-items:center;justify-content:flex-start;gap:10px;width:200px;min-height:52px;margin:4px;padding:8px 10px;border:1px solid var(--flow-line);border-radius:9px;background:var(--flow-surface);color:var(--flow-ink);box-shadow:0 2px 5px #42001c06;text-align:left;font:inherit;font-size:12px;line-height:1.35;cursor:inherit}.kardy-flow .kardy-flow-number{flex:0 0 20px;width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#ffe0ed;color:#42001c;font:10px ui-monospace,monospace}.kardy-flow .kardy-flow-map:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,var(--flow-accent) 25%,transparent)}.kardy-flow .kardy-flow-canvas:focus,.kardy-flow .kardy-flow-canvas:focus-visible{outline:0}.kardy-flow button:focus-visible{outline:2px solid var(--flow-accent);outline-offset:-2px}.kardy-flow .kardy-flow-tools{position:absolute;bottom:10px;left:10px;z-index:1;display:flex;flex-direction:column;align-items:center;gap:0;padding:3px;border:1px solid var(--flow-line);border-radius:7px;background:var(--flow-surface);box-shadow:0 2px 8px #00000008}.kardy-flow .kardy-flow-tools button{display:grid;place-items:center;border:0;padding:6px;width:30px;height:30px;min-width:30px;min-height:30px;color:var(--flow-muted)}.kardy-flow .kardy-flow-tools button:hover:not(:disabled){background:var(--flow-selected);color:var(--flow-ink)}.kardy-flow .kardy-flow-tools span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);font:11px ui-monospace,monospace;color:var(--flow-muted);min-width:36px;text-align:center}.kardy-flow .kardy-flow-tools small{margin-left:auto;font-size:11px;color:var(--flow-muted)}.kardy-flow button:disabled{opacity:.4;cursor:not-allowed}.kardy-flow .kardy-flow-detail{display:grid;gap:5px;padding:16px 0 8px}.kardy-flow .kardy-flow-detail>span,.kardy-flow .kardy-flow-text li>span{color:var(--flow-muted);font:11px ui-monospace,monospace}.kardy-flow .kardy-flow-detail strong{font-size:14px;color:var(--flow-ink)}.kardy-flow .kardy-flow-detail p,.kardy-flow .kardy-flow-text p{margin:0;font-size:13px;line-height:1.65;color:var(--flow-muted)}.kardy-flow .kardy-flow-note{padding:8px 0 0;font-size:12px;line-height:1.6;color:var(--flow-muted);background:0 0}.kardy-flow .kardy-flow-text{margin:0;padding:16px 0 8px;list-style:none;counter-reset:flow-step}.kardy-flow .kardy-flow-text li{position:relative;padding:8px 0 8px 36px;counter-increment:flow-step}.kardy-flow .kardy-flow-text li::before{content:counter(flow-step);position:absolute;left:0;top:8px;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#ffe0ed;color:#42001c;font:500 11px/1 ui-monospace,monospace}.kardy-flow .kardy-flow-text li>span,.kardy-flow .kardy-flow-text strong{display:block;margin:0 0 5px}.kardy-flow .kardy-flow-text strong{color:var(--flow-ink);font-size:14px}@media (max-width:520px){.kardy-flow .kardy-flow-detail,.kardy-flow .kardy-flow-heading,.kardy-flow .kardy-flow-note,.kardy-flow .kardy-flow-options{padding-inline:0}.kardy-flow .kardy-flow-view{margin-left:0}.kardy-flow .kardy-flow-tools{padding-inline:3px}.kardy-flow .kardy-flow-tools small{display:none}}@media print{.kardy-flow .kardy-flow-canvas{max-height:none;overflow:visible}.kardy-flow .kardy-flow-size{width:100%!important;min-width:0!important}.kardy-flow .kardy-flow-options,.kardy-flow .kardy-flow-tools{display:none}}"},{"filePath":"platform-overview.css","content":".platform-overview{--platform-paper:#fff;--platform-line:#dedee3;--platform-ink:#42001c;--platform-muted:#61616d;--platform-tint:#fff0f5;margin:24px 0}.dark .platform-overview{--platform-paper:#19191f;--platform-line:#36363f;--platform-ink:#fff0ee;--platform-muted:#c1bbc5;--platform-tint:#35202b}.platform-overview-sites{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.platform-overview-card,.platform-overview-shared{background:var(--platform-paper);border:1px solid var(--platform-line);border-radius:12px;padding:20px;color:var(--platform-ink);box-shadow:0 4px 16px #00000006}.platform-overview-card svg{width:32px;height:32px;margin:0 0 16px;padding:6px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;color:#42001c;background:#ffe0ed;border-radius:8px}.platform-overview-card small{font-size:9px;letter-spacing:.08em;color:var(--platform-muted)}.platform-overview-card strong{display:block;font-size:16px;margin:4px 0 10px}.platform-overview-card span{display:block;color:var(--platform-muted);font-size:12px;line-height:1.7}.platform-overview-connectors{height:46px;margin:0 25%;position:relative;display:flex}.platform-overview-connectors i{width:50%;height:24px;border-bottom:1px solid #96939c}.platform-overview-connectors i:first-child{border-left:1px solid #96939c;border-bottom-left-radius:8px}.platform-overview-connectors i:last-child{border-right:1px solid #96939c;border-bottom-right-radius:8px}.platform-overview-connectors::after{content:\"\";position:absolute;top:24px;bottom:0;left:50%;border-left:1px solid #96939c}.platform-overview-shared{text-align:center;max-width:430px;margin:auto}.platform-overview-shared strong{font-size:16px}.platform-overview-shared p{font-size:12px;line-height:1.6;color:var(--platform-muted);margin:6px 0 16px}.platform-overview-shared>div{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.platform-overview-shared span{padding:5px 12px;border-radius:6px;background:var(--platform-tint);font-size:11px}.platform-overview figcaption{font-size:10px;line-height:1.6;text-align:center;margin:18px 0 0;color:#51424a}.dark .platform-overview figcaption{color:#e4dce7}@container (max-width: 390px){.platform-overview-sites{gap:10px}.platform-overview-card{padding:12px}.platform-overview-card strong{font-size:14px}.platform-overview-card span{font-size:11px}}"},{"filePath":"qr-format.css","content":".qr-format-example{--qr-format-paper:#fff;--qr-format-line:#e4dce0;--qr-format-ink:#42001c;--qr-format-muted:#6d646a;--qr-format-tint:#fff0f5;margin:24px 0;font-size:12px;color:var(--qr-format-ink)}.dark .qr-format-example{--qr-format-paper:#19191f;--qr-format-line:#38323a;--qr-format-ink:#fff0ee;--qr-format-muted:#bdb5bd;--qr-format-tint:#30212a}.qr-format-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.qr-format-options>div{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-height:156px;padding:20px 8px 14px;border:1px solid var(--qr-format-line);border-radius:10px;background:var(--qr-format-paper)}.qr-format-options>.qr-format-selected{border-color:#e879a9;background:var(--qr-format-tint)}.qr-format-options strong{font-size:13px;margin-top:16px}.qr-format-options small{font-size:10px;margin-top:4px;text-align:center}.qr-format-paper{display:block;flex-shrink:0;background:var(--qr-format-paper);border:1px solid #b6aab2;border-radius:2px;box-shadow:2px 3px 0 #8c718012}.qr-format-square{width:44px;height:44px}.qr-format-a4{width:42px;height:60px}.qr-format-a6{width:32px;height:45px;border-color:#bd3d77}.qr-format-check{position:absolute;top:9px;right:9px;display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#ff90c1;color:#42001c;font-size:11px}.qr-format-example figcaption{display:flex;flex-wrap:wrap;gap:5px 12px;align-items:baseline;margin:14px 0 0;font-size:12px;text-align:left}.qr-format-example figcaption strong,.qr-format-options strong{color:var(--qr-format-ink)}.qr-format-example figcaption span,.qr-format-example>p,.qr-format-options small{color:var(--qr-format-muted)}.qr-format-example>p{margin:8px 0 0;font-size:10px}"}],"page":{"pagePath":"features/outlets","slug":"/features/outlets","pageMetadata":{"title":"Outlet management","description":"Keep several physical shops under one brand and one programme.","href":"/features/outlets"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Keep several physical shops under one brand and one programme.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const MerchantFlow=({type})=>{const merchantFlows={\"mcp-read\":{title:`From your question to a read-only answer`,lanes:[`Business Owner`,`Your agent`,`Kardy`],scenarios:[{label:`Read merchant data`,note:`Available on dev; production rollout is separate. Customer records and changes to your business are outside these tools.`,steps:[[0,`Ask about your rewards`,`Ask your connected agent which active rewards your business offers and where they can be claimed.`],[1,`Request an approved tool`,`The agent requests programme, rewards or outlet data using its connection credentials.`],[2,`Check access and limits`,`Kardy checks the connection, approved permissions, subscription and workspace allowance before returning data.`],[2,`Return permitted data`,`Only the connected workspace's permitted read-only data is returned. Each results page counts as a tool call.`],[1,`Summarise the result`,`Your agent uses the returned data to answer. It cannot change rewards, issue stamps or manage your team.`]]}]},\"mcp-connect\":{title:`From adding Kardy to approving your agent`,lanes:[`Business Owner`,`Your agent`,`Kardy`],scenarios:[{label:`Approve with OAuth`,note:`Only the Owner can approve access. Cancel grants no access; revoking a connection stops new requests but cannot recall data already shared.`,steps:[[0,`Copy your MCP endpoint`,`Open Settings → Agent connections in the merchant portal and copy the MCP endpoint.`],[1,`Open Kardy sign-in`,`Add the endpoint in a compatible OAuth client. The agent opens Kardy in your browser.`],[0,`Review and approve access`,`Sign in, check the client name and return address, choose your merchant and approve only the read permissions you want to share.`],[2,`Return an authorisation code`,`After approval, Kardy redirects to the registered client with a short-lived authorisation code.`],[1,`Exchange the code securely`,`The client exchanges the code using PKCE and receives credentials for the approved connection. No manual API key needs to be copied.`],[0,`Try a read-only question`,`Return to your agent and ask it to list active rewards. Manage or revoke the connection in Agent connections.`]]}]},billing:{title:`What changes for your subscription and customers`,lanes:[`Business Owner`,`Subscription`,`Customers`],scenarios:[{label:`First payment`,note:`Returning from checkout alone does not activate your business. Finish payment before using paid tools.`,steps:[[0,`Choose your business and plan`,`Review the monthly price and any eligible first-month offer. Each business has its own subscription.`],[0,`Complete payment`,`Finish checkout in Kardy Payments. If payment is unfinished, your paid access has not started.`],[1,`Paid access starts`,`Once payment is confirmed, your business can use its paid merchant tools and included outlet capacity.`],[2,`Join, collect stamps and claim`,`Customers can join your active programme. Your team records qualifying visits and confirms eligible reward claims.`]]},{label:`Failed renewal`,note:`Saving a new card alone does not settle an outstanding payment. Managers and Staff should ask the Owner to resolve billing.`,steps:[[1,`Renewal payment fails`,`Unresolved payment can pause this business's paid merchant access, including access for employees.`],[2,`Programme paused`,`While service is paused, stamps and reward claims are unavailable. Existing memberships and saved progress remain.`],[0,`Resolve the outstanding payment`,`Open billing, update the payment method if needed and complete the outstanding payment. Do not buy a second subscription.`],[1,`Paid access resumes`,`Access resumes after successful payment is confirmed. Choose Check payment status; contact support if access is still paused after payment.`],[2,`Continue with saved progress`,`Customers can use the active programme again without losing their existing memberships or recorded progress.`]]},{label:`Cancel renewal`,note:`Canceling renewal does not automatically refund a payment or delete membership history.`,steps:[[0,`Cancel and check the end date`,`Cancel renewal in billing and keep the displayed access end date. Select the correct business first.`],[1,`Active until the paid period ends`,`Your subscription will not renew, but paid merchant access continues through the period already paid for.`],[2,`Keep using the programme`,`Customers can continue using the programme normally while the paid period remains active.`],[1,`Paid access ends`,`If cancellation is not reversed, paid merchant tools become unavailable when the subscription ends.`],[2,`Store inactive; progress kept`,`The card shows Store inactive. New joins, stamps and claims stop, but existing memberships and saved progress remain.`]]},{label:`Undo cancellation`,note:`Undo a scheduled cancellation before the subscription ends. If it has already ended, use Restart Growth monthly instead; the introductory offer does not repeat.`,steps:[[0,`Open billing before the end date`,`As the Owner, select the business with a scheduled cancellation and review its remaining paid period.`],[0,`Reverse the scheduled cancellation`,`Use the subscription management options in Kardy Payments to keep the subscription renewing.`],[1,`Renewal continues`,`Confirm that cancellation is no longer scheduled and review the next billing date and amount. Future renewals still require successful payment.`],[2,`No interruption to the programme`,`Reversing cancellation before access ends keeps the programme available. Customers retain their memberships and progress.`]]}]},outlets:{title:`More outlets, one business subscription`,lanes:[`Business Owner`,`Kardy Payments`,`Kardy`],scenarios:[{label:`Add capacity`,note:`Where outlet-quantity billing is enabled. Creating a location does not buy paid capacity.`,steps:[[0,`Select the business`,`Outlets belong to one business and use that business's subscription.`],[0,`Increase paid outlet quantity`,`In Settings → Billing, review the new monthly total and any prorated charge.`],[1,`Confirm the extra payment`,`Extra capacity waits for payment confirmation; a failed payment does not unlock it.`],[2,`Update outlet allowance`,`Kardy applies the payment-confirmed quantity to this business.`],[0,`Add or activate the outlet`,`Save the store details in Locations within your paid allowance. Additional outlets do not receive another introductory offer.`]]},{label:`Reduce capacity`,note:`Pausing or deleting a location alone does not reduce your bill.`,steps:[[0,`Pause unwanted locations`,`Keep the active outlet count within the lower quantity you intend to buy.`],[0,`Schedule a lower quantity`,`Use Settings → Billing. The smaller quantity takes effect at the next renewal.`],[1,`Renew at the new quantity`,`The current period is not automatically refunded.`],[2,`Apply confirmed capacity`,`Kardy updates the allowance after the billing change is confirmed.`]]}]},counter:{title:`A scan checks. Confirmation records.`,lanes:[`Customer`,`Employee`,`Kardy`],scenarios:[{label:`Earn a stamp`,note:`Slide approval is a development flow; production rollout is separate. Never add a duplicate because a wallet refresh is delayed.`,steps:[[0,`Show membership QR`,`Use the membership QR from the customer's Kardy wallet.`],[1,`Scan at the right outlet`,`Choose the active outlet, then check the returned membership and qualifying purchase.`],[2,`Check membership and access`,`Scanning identifies the membership. It does not award a stamp.`],[1,`Slide to add stamp`,`Complete the approval control. An early release does not submit the operation.`],[2,`Save the stamp once`,`Wait for the confirmed result. Recorded activity is the source of truth.`],[0,`Refresh wallet if needed`,`The displayed balance can lag behind the recorded stamp. Refresh while online rather than requesting a second stamp.`]]},{label:`Redeem a reward`,note:`Timed reward QRs and slide approval are implemented in development; check availability before using this flow in production.`,steps:[[0,`Prepare reward QR`,`Open the earned reward and prepare its temporary QR. This does not spend stamps.`],[1,`Scan and review`,`Choose the active outlet and check the reward details. A membership QR cannot authorise a reward claim.`],[2,`Check eligibility`,`Kardy checks the code, reward, membership, outlet and programme access. A rejected check must be resolved before continuing.`],[1,`Slide to redeem reward`,`Confirm the claim once. Do not hand over the reward until success is shown.`],[2,`Record the redemption`,`The successful claim is recorded once. Stamp rewards deduct their cost; excess stamps carry forward.`],[1,`Hand over the reward`,`If the result is uncertain, check the original transaction before trying again.`]]}]},notifications:{title:`From a new member to your device`,lanes:[`Owner or Manager`,`Kardy`,`Device`],scenarios:[{label:`Receive an alert`,note:`Push is enabled. Delivery starts at 50 ready notifications or a fixed 15-minute recovery check, then continues while ready work remains. Device settings and connectivity can delay delivery.`,steps:[[0,`Choose alerts for this business`,`Open Settings → This device. Preferences are separate for every business and device.`],[2,`Allow notifications`,`Permission follows Enable notifications. On iPhone or iPad, open the installed Home Screen app first.`],[1,`A new member joins`,`Kardy records the membership and queues device alerts within the business’s monthly allowance. At the cap, the membership still succeeds but no new alert is queued.`],[1,`Recheck access and preferences`,`Removed access, disabled preferences or an inactive subscription stops new deliveries.`],[2,`Display the notification`,`The alert contains no customer names or contact details. Focus settings may suppress its display.`],[0,`Open the correct business`,`Tapping the alert checks access before selecting the business. The Members page shows the actual record.`]]}]}};const flow=merchantFlows[type];const[scenarioIndex,setScenarioIndex]=useState(0);if(!flow)return null;const scenario=flow.scenarios[scenarioIndex]||flow.scenarios[0];return _jsxs(`figure`,{className:`kardy-flow`,\"aria-label\":flow.title,children:[_jsxs(`figcaption`,{className:`kardy-flow-heading`,children:[flow.title,`.`]}),flow.scenarios.length>1\u0026\u0026_jsx(`div`,{className:`kardy-flow-options`,role:`group`,\"aria-label\":`Choose a scenario`,children:flow.scenarios.map((item,index)=>_jsx(`button`,{type:`button`,\"aria-pressed\":scenarioIndex===index,onClick:()=>{setScenarioIndex(index)},children:item.label},item.label))}),_jsx(`div`,{className:`kardy-flow-map`,children:_jsx(`div`,{className:`kardy-flow-canvas`,\"data-kardy-flow\":JSON.stringify({lanes:flow.lanes,steps:scenario.steps,label:scenario.label}),tabIndex:0,role:`region`,\"aria-label\":`Lifecycle diagram. Drag to pan. Zoom and reset controls are at the bottom left.`})}),_jsx(`ol`,{className:`kardy-flow-text`,children:scenario.steps.map(([lane,title,detail],index)=>_jsxs(`li`,{children:[_jsx(`strong`,{children:title}),_jsxs(`p`,{children:[flow.lanes[lane],` · `,detail]})]},`${scenarioIndex}-${index}`))}),_jsx(`div`,{className:`kardy-flow-note`,children:scenario.note})]})};const FeatureIllustration=({type})=>{const FeatureIcon=({name=`coffee`})=>{const paths={coffee:`M4 8h12v7a5 5 0 0 1-5 5H9a5 5 0 0 1-5-5Z M16 9h2a3 3 0 0 1 0 6h-2 M7 3v2m4-3v3m4-2v2`,check:`m5 12 4 4L19 6`,heart:`M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1.1-1.1a5.5 5.5 0 0 0-7.8 7.8L12 21l8.8-8.6a5.5 5.5 0 0 0 0-7.8Z`,activity:`M3 12h4l3-9 4 18 3-9h4`,arrow:`M4 12h16m-6-6 6 6-6 6`,people:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2m20 0v-2a4 4 0 0 0-3-3.9 M9 3a4 4 0 1 0 0 8 4 4 0 0 0 0-8m8 0a4 4 0 0 1 0 8`,pin:`M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 1 1 16 0Z M15 10a3 3 0 1 1-6 0 3 3 0 0 1 6 0`,wallet:`M3 6h16v14H3V6Zm0 0 13-3v3m-2 6h7v5h-7v-5Z`,mail:`M3 5h18v14H3V5Zm0 0 9 8 9-8`,plug:`M8 3v5m8-5v5M6 8h12v5a6 6 0 0 1-12 0V8Zm6 11v3`,gift:`M3 8h18v4H3V8Zm2 4v9h14v-9M12 8v13m0-13H8a3 3 0 1 1 3-3l1 3Zm0 0h4a3 3 0 1 0-3-3l-1 3Z`,search:`M16 10a6 6 0 1 1-12 0 6 6 0 0 1 12 0Zm-1 5 6 6`,lock:`M5 10h14v11H5V10Zm3 0V6a4 4 0 0 1 8 0v4m-4 5v2`,sliders:`M4 6h16M4 12h16M4 18h16M8 3v6m8 0v6m-6 0v6`,wrench:`M14.7 6.3a5.5 5.5 0 0 0-7 7L3 18a2.1 2.1 0 0 0 3 3l4.7-4.7a5.5 5.5 0 0 0 7-7l-4 4-3-3 4-4Z`};return _jsx(`svg`,{className:`bf-icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:_jsx(`path`,{d:paths[name]||paths.coffee})})};const FeatureBrand=({name=`sunday-coffee`})=>_jsx(`img`,{className:`bf-brand`,src:`/images/landing/${name}-wordmark.svg`,alt:``});const FeatureAvatar=({name})=>_jsx(`span`,{className:`bf-avatar`,children:_jsx(`img`,{src:`/images/avatar-${name.toLowerCase().replaceAll(` `,`-`)}.png`,alt:``})});const FeatureRow=({title,detail,end,icon})=>_jsxs(`div`,{className:`bf-row`,children:[icon\u0026\u0026_jsx(FeatureIcon,{name:icon}),_jsxs(`div`,{children:[_jsx(`b`,{children:title}),detail\u0026\u0026_jsx(`small`,{children:detail})]}),end\u0026\u0026_jsx(`span`,{className:`bf-row-end`,children:end})]});const FeatureField=({label,value})=>_jsxs(`div`,{className:`bf-field`,children:[_jsx(`small`,{children:label}),_jsx(`div`,{children:value})]});const FeaturePill=({children})=>_jsx(`span`,{className:`bf-pill`,children});const FeaturePanel=({title,subtitle,children})=>_jsxs(`div`,{className:`bf-panel`,children:[title\u0026\u0026_jsxs(`div`,{className:`bf-panel-title`,children:[_jsx(`b`,{children:title}),subtitle\u0026\u0026_jsx(`small`,{children:subtitle})]}),children]});const FeatureCard=({full=false})=>_jsxs(`div`,{className:`bf-landing-card`,children:[_jsx(`div`,{className:`bf-landing-card-brand`,children:_jsx(FeatureBrand,{})}),_jsxs(`div`,{className:`bf-landing-stamp-panel`,children:[_jsx(`div`,{className:`bf-landing-stamps`,children:Array.from({length:10},(_,i)=>_jsx(`span`,{\"data-filled\":i\u003c(full?10:7),\"data-reward\":i===9,children:_jsx(FeatureIcon,{name:i===9?`coffee`:`heart`})},i))}),_jsxs(`span`,{className:`bf-landing-stamp-count`,children:[full?10:7,` / 10 stamps`]})]}),_jsxs(`div`,{className:`bf-landing-card-qr`,children:[_jsx(`img`,{src:`/images/sample-wallet-qr.svg`,alt:``}),_jsx(`span`,{children:`Preview only`})]})]});const FeatureBranches=({children})=>_jsxs(_Fragment,{children:[_jsx(`svg`,{className:`bf-wires`,viewBox:`0 0 480 46`,preserveAspectRatio:`none`,children:_jsx(`path`,{d:`M240 0V46M240 0v10q0 13-13 13H80q-13 0-13 13v10M240 0v10q0 13 13 13h147q13 0 13 13v10`})}),_jsx(`div`,{className:`bf-branches`,children})]});const FeaturePerson=({name,detail,green})=>_jsxs(`div`,{className:`bf-person`,children:[_jsx(FeatureAvatar,{name,green}),_jsxs(`div`,{children:[_jsx(`b`,{children:name}),_jsx(`small`,{children:detail})]})]});const FeaturePhone=({children})=>_jsx(`div`,{className:`bf-phone`,children:_jsxs(`div`,{className:`bf-phone-screen`,children:[_jsxs(`div`,{className:`bf-phone-status`,\"aria-hidden\":`true`,children:[_jsx(`span`,{children:`9:41`}),_jsx(`i`,{}),_jsxs(`svg`,{className:`bf-phone-connection`,viewBox:`0 0 42 14`,fill:`none`,children:[_jsx(`path`,{d:`M2 11V9m3 2V7m3 4V5m3 6V3`,stroke:`currentColor`,strokeWidth:`2`}),_jsx(`path`,{d:`M16 5q5-5 10 0m-8 2q3-3 6 0m-4 2q1-1 2 0`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`}),_jsx(`rect`,{x:`30`,y:`3`,width:`9`,height:`8`,rx:`2`,stroke:`currentColor`}),_jsx(`path`,{d:`M41 6v2`,stroke:`currentColor`}),_jsx(`rect`,{x:`32`,y:`5`,width:`5`,height:`4`,rx:`.5`,fill:`currentColor`})]})]}),_jsx(`div`,{className:`bf-phone-content`,children}),_jsx(`div`,{className:`bf-home-bar`})]})});const featureSceneCopy={\"branded-cards\":[`sliders`,`Branded cards`,`Your brand.`,`In their wallet.`],rewards:[`gift`,`Stamps \u0026 rewards`,`Make every stamp`,`worth coming back for.`],scanning:[`search`,`Scan \u0026 redeem`,`One identity.`,`One confirmed action.`],referrals:[`people`,`Referral programme`,`Bring a friend.`,`Both get rewarded.`],\"qr-signs\":[`pin`,`QR signs`,`At your counter.`,`Into their wallet.`],\"join-pages\":[`people`,`Customer join pages`,`Your next regular`,`starts here.`],\"browser-wallet\":[`wallet`,`Browser wallet`,`Open in a browser.`,`Keep on the home screen.`],\"native-wallets\":[`wallet`,`Native wallet passes`,`Another way`,`to keep your card close.`],\"kardy-rewards\":[`search`,`The Kardy Rewards`,`Get discovered.`,`Become their usual.`],\"email-preferences\":[`mail`,`Email preferences`,`Their inbox.`,`Their choice.`],members:[`people`,`Members`,`Know your regulars.`,`See their progress.`],analytics:[`sliders`,`Reporting`,`Your programme.`,`At a glance.`],outlets:[`pin`,`Outlets`,`Different neighbourhoods.`,`One programme.`],\"team-access\":[`people`,`Team access`,`Your team.`,`The right access.`],\"multiple-brands\":[`people`,`Multiple brands`,`Your brands.`,`One merchant account.`],broadcasts:[`mail`,`Broadcasts`,`A little news.`,`Another visit.`],\"merchant-mcp\":[`plug`,`Merchant MCP`,`Your favourite agent.`,`Meet your workspace.`],\"usage-limits\":[`sliders`,`Usage \u0026 limits`,`Room to grow.`,`Clear boundaries.`]};const FeatureScene=({type})=>{if(type===`branded-cards`||type===`rewards`)return _jsxs(`div`,{className:`bf-pair`,children:[_jsxs(FeaturePanel,{title:type===`rewards`?`Your reward`:`Card design`,children:[_jsx(FeatureField,{label:type===`rewards`?`Reward`:`Business name`,value:type===`rewards`?`A coffee, on us`:`Sunday Coffee`}),type===`rewards`?_jsxs(_Fragment,{children:[_jsx(FeatureField,{label:`Stamps to unlock`,value:`10 stamps`}),_jsx(FeatureRow,{title:`Redeem at`,detail:`Orchard outlet`,icon:`pin`})]}):_jsxs(_Fragment,{children:[_jsx(`small`,{className:`bf-label`,children:`Brand colour`}),_jsx(`div`,{className:`bf-swatches`,children:[`#ca1c67`,`#e5b8c9`,`#dbe5ce`,`#171a18`].map((color,i)=>_jsx(`span`,{style:{background:color},children:i===0\u0026\u0026_jsx(FeatureIcon,{name:`check`})},color))}),_jsx(FeatureRow,{title:`Saved design`,detail:`Drift artwork · heart stamps`,icon:`sliders`})]})]}),_jsxs(`div`,{className:`bf-card-wrap`,children:[_jsx(`small`,{className:`bf-label`,children:`MEMBER CARD PREVIEW`}),_jsx(FeatureCard,{})]})]});if(type===`referrals`)return _jsxs(_Fragment,{children:[_jsxs(`div`,{className:`bf-pair`,children:[_jsxs(FeaturePanel,{children:[_jsx(FeaturePerson,{name:`Jamie`,detail:`Your conversation`}),_jsx(`div`,{className:`bf-chat`,children:`Coffee at my usual spot? Use my invite—we both get bonus stamps after your first purchase.`}),_jsxs(`div`,{className:`bf-invite`,children:[_jsx(FeatureBrand,{}),_jsx(FeatureRow,{title:`Join with Amelia’s invite`,end:`↗`})]}),_jsx(`small`,{className:`bf-receipt`,children:`Sent by Amelia ✓✓`})]}),_jsxs(FeaturePanel,{title:`First purchase`,subtitle:`At Sunday Coffee`,children:[_jsx(`div`,{className:`bf-coffee`,children:_jsx(FeatureIcon,{})}),_jsx(FeatureRow,{title:`Purchase confirmed`,detail:`Staff issue Jamie’s first stamp.`,icon:`check`}),_jsx(FeaturePill,{children:`Qualification complete`})]})]}),_jsxs(`div`,{className:`bf-bonus`,children:[_jsx(`span`,{className:`bf-label`,children:`BOTH EARN BONUS STAMPS`}),_jsxs(`div`,{className:`bf-pair`,children:[_jsxs(`div`,{children:[_jsx(FeaturePerson,{name:`Amelia`,detail:`Invited a friend`}),_jsxs(`strong`,{children:[`+2 `,_jsx(`small`,{children:`bonus stamps`})]})]}),_jsxs(`div`,{children:[_jsx(FeaturePerson,{name:`Jamie`,detail:`Joined through the invite`,green:true}),_jsxs(`strong`,{children:[`+1 `,_jsx(`small`,{children:`bonus stamp`})]})]})]}),_jsx(`small`,{children:`After the first qualifying purchase and staff-issued stamp—not just signup.`})]})]});if(type===`merchant-mcp`)return _jsxs(_Fragment,{children:[_jsxs(FeaturePanel,{children:[_jsxs(`div`,{className:`bf-mcp-header`,children:[_jsx(`span`,{className:`bf-mcp-mark`,children:_jsx(`img`,{src:`/images/landing/mcp-mascot.svg`,alt:``})}),_jsxs(`div`,{className:`bf-mcp-identity`,children:[_jsxs(`div`,{className:`bf-mcp-lockup`,children:[_jsx(`img`,{src:`/images/landing/mcp-logo.svg`,alt:``}),_jsx(`span`,{children:`MCP`})]}),_jsx(`small`,{children:`Your merchant workspace`})]}),_jsx(FeaturePill,{children:`3 tools`})]}),[[`get_programme`,`Your brand, at a glance`],[`list_rewards`,`Rewards \u0026 stamp goals`],[`list_outlets`,`Where rewards can be claimed`]].map(([name,description])=>_jsxs(`div`,{className:`bf-tool`,children:[_jsx(FeatureIcon,{name:`wrench`}),_jsxs(`div`,{children:[_jsx(`span`,{children:name}),_jsx(`small`,{children:description})]}),_jsx(FeatureIcon,{name:`check`})]},name)),_jsxs(`div`,{className:`bf-split-note`,children:[_jsxs(`span`,{className:`bf-mcp-access`,children:[_jsx(FeatureIcon,{name:`lock`}),`Read-only access`]}),_jsx(`span`,{children:`Owner-approved OAuth`})]})]}),_jsx(FeatureBranches,{children:[`Claude`,`Codex`,`Other clients`].map((name,i)=>_jsxs(`div`,{className:`bf-client`,children:[_jsx(`span`,{className:`bf-client-mark bf-client-${i}`,children:i\u003c2?_jsx(`img`,{src:`/images/landing/${i===1?`mcp-codex`:`claude`}.svg`,alt:``}):_jsx(FeatureIcon,{name:`plug`})}),_jsx(`b`,{children:name})]},name))}),_jsx(`div`,{className:`bf-under-note bf-mcp-boundary`,children:`One merchant. Your permissions. Your choice of agent.`}),_jsx(`div`,{className:`bf-example`,children:`Example connection · Owner approval required`})]});if(type===`broadcasts`)return _jsxs(FeaturePanel,{children:[_jsx(FeatureRow,{title:`Sunday Coffee`,detail:`Member broadcast`,end:_jsx(FeaturePill,{children:`Draft`}),icon:`coffee`}),_jsx(FeatureField,{label:`To`,value:`Opted-in members only`}),_jsxs(`div`,{className:`bf-email`,children:[_jsx(`small`,{children:`SUBJECT`}),_jsx(`b`,{children:`Something new is brewing.`}),_jsx(`span`,{children:`Your next neighbourhood favourite is here.`}),_jsx(`span`,{children:`Come by this weekend and try our new menu.`})]}),_jsxs(`div`,{className:`bf-split-note`,children:[_jsx(`span`,{children:`Unsubscribe · Manage preferences`}),_jsx(`span`,{children:`Preview only`})]})]});if(type===`members`)return _jsxs(FeaturePanel,{title:`Members`,subtitle:`Sunday Coffee · example records`,children:[_jsxs(`div`,{className:`bf-search`,children:[_jsx(FeatureIcon,{name:`search`}),`Search members`]}),[[`Amelia`,`5 / 8 stamps`],[`Jamie`,`2 / 8 stamps`],[`Sarah`,`Ready to redeem`]].map(([name,detail],i)=>_jsxs(`div`,{className:`bf-member-row`,children:[_jsx(FeaturePerson,{name,detail:`Active membership`,green:i===1}),_jsx(FeaturePill,{children:detail})]},name))]});if(type===`analytics`)return _jsxs(FeaturePanel,{title:`Overview`,subtitle:`This month · UTC · example data`,children:[_jsx(`div`,{className:`bf-metrics`,children:[[`Visits`,`248`],[`Rewards redeemed`,`38`],[`Active stores`,`2`]].map(([label,value])=>_jsxs(`div`,{children:[_jsx(`small`,{children:label}),_jsx(`strong`,{children:value})]},label))}),_jsx(FeatureRow,{title:`Location performance`,detail:`Visits and redemptions by outlet`,icon:`pin`}),_jsx(FeatureRow,{title:`Orchard`,detail:`164 recorded visits`,end:`26 claims`}),_jsx(FeatureRow,{title:`Joo Chiat`,detail:`84 recorded visits`,end:`12 claims`})]});if(type===`usage-limits`)return _jsxs(FeaturePanel,{title:`Usage \u0026 limits`,subtitle:`Illustrative Growth workspace`,children:[_jsxs(`div`,{className:`bf-usage`,children:[_jsx(FeatureRow,{title:`Stored members`,end:`800 / 1,000`}),_jsx(`div`,{className:`bf-meter`,children:_jsx(`span`,{style:{width:`80%`}})}),_jsx(FeaturePill,{children:`80% used · plan ahead`}),_jsx(FeatureRow,{title:`MCP tool calls`,detail:`This UTC calendar month`,end:`250 / 1,000`}),_jsx(`div`,{className:`bf-meter`,children:_jsx(`span`,{style:{width:`25%`}})})]}),_jsx(FeatureRow,{title:`Usage stops at the limit`,detail:`No automatic overage billing.`,icon:`lock`})]});if([`outlets`,`team-access`,`multiple-brands`].includes(type))return _jsxs(_Fragment,{children:[_jsx(`div`,{className:`bf-root`,children:_jsx(FeaturePanel,{children:type===`outlets`?_jsx(FeatureBrand,{}):_jsx(FeaturePerson,{name:`Amelia Tan`,detail:type===`multiple-brands`?`One merchant account`:`Organisation Owner`})})}),_jsx(FeatureBranches,{children:(type===`outlets`?[[`Orchard`,`Active outlet`],[`Joo Chiat`,`Active outlet`],[`Tiong Bahru`,`Active outlet`]]:type===`team-access`?[[`Amelia`,`Owner`],[`Daniel`,`Manager`],[`Jamie`,`Staff`]]:[[`Sunday Coffee`,`Owner`],[`Forma Studio`,`Manager`],[`Good Company`,`Staff`]]).map(([name,detail],i)=>_jsxs(`div`,{className:`bf-node`,children:[type===`outlets`?_jsx(FeatureIcon,{name:`pin`}):type===`multiple-brands`?_jsx(FeatureBrand,{name:[`sunday-coffee`,`forma-studio`,`good-company`][i]}):_jsx(FeatureAvatar,{name,green:i===1}),_jsx(`b`,{children:name}),_jsx(`small`,{children:detail})]},name))}),_jsx(`div`,{className:`bf-under-note`,children:type===`outlets`?`Shared rewards and member progress across the brand.`:type===`team-access`?`Roles apply to the organisation, not to individual outlets.`:`Separate teams, programmes and permissions for each brand.`})]});if(type===`email-preferences`)return _jsxs(FeaturePanel,{title:`Email preferences`,subtitle:`Choose separately for each brand`,children:[[[`Sunday Coffee`,true],[`Forma Studio`,false]].map(([name,enabled])=>_jsxs(`div`,{className:`bf-member-row`,children:[_jsx(FeatureRow,{title:name,detail:`Member emails`,icon:`mail`}),_jsxs(`div`,{className:`bf-toggle-wrap`,children:[_jsx(`span`,{className:enabled?`bf-toggle bf-toggle-on`:`bf-toggle`}),_jsx(`small`,{children:enabled?`Opted in`:`Opted out`})]})]},name)),_jsx(FeatureRow,{title:`You’re in control`,detail:`Change your choice at any time.`,icon:`check`})]});if(type===`kardy-rewards`)return _jsxs(FeaturePanel,{children:[_jsxs(`div`,{className:`bf-search`,children:[_jsx(FeatureIcon,{name:`search`}),`Search places or perks`]}),_jsxs(`div`,{className:`bf-categories`,children:[_jsx(FeaturePill,{children:`All`}),_jsx(`span`,{children:`Food \u0026 drink`}),_jsx(`span`,{children:`Wellness`})]}),_jsxs(`div`,{className:`bf-offer`,children:[_jsx(FeatureBrand,{}),_jsxs(`div`,{children:[_jsx(`b`,{children:`A coffee, on us.`}),_jsx(FeatureIcon,{})]}),_jsx(`small`,{children:`Sunday Coffee · member reward`})]})]});if(type===`scanning`)return _jsxs(`div`,{className:`bf-pair`,children:[_jsxs(`div`,{className:`bf-card-wrap`,children:[_jsx(FeatureCard,{}),_jsx(`div`,{className:`bf-under-note`,children:`Customer shows their Kardy QR`})]}),_jsxs(FeaturePanel,{title:`Membership found`,subtitle:`Sunday Coffee`,children:[_jsx(FeaturePerson,{name:`Amelia`,detail:`Active membership`}),_jsx(FeatureRow,{title:`7 / 10 stamps`,detail:`A coffee, on us`,icon:`gift`}),_jsx(`div`,{className:`bf-action`,children:`Add stamp`}),_jsx(`small`,{className:`bf-under-note`,children:`Staff confirm the action after the purchase. Scanning alone adds nothing.`})]})]});if(type===`qr-signs`)return _jsxs(`div`,{className:`bf-pair`,children:[_jsxs(FeaturePanel,{title:`Join our programme`,children:[_jsx(FeatureBrand,{}),_jsxs(`div`,{className:`bf-qr-placeholder`,children:[_jsx(FeatureIcon,{name:`search`}),_jsxs(`span`,{children:[`Your generated`,_jsx(`br`,{}),`join QR`]})]}),_jsx(`div`,{className:`bf-under-note`,children:`Sunday Coffee · Orchard`})]}),_jsxs(`div`,{className:`bf-card-wrap`,children:[_jsx(FeatureField,{label:`Destination`,value:`Customer join page`}),_jsx(FeatureField,{label:`Outlet`,value:`Orchard`}),_jsx(FeatureRow,{title:`Print, place, test`,detail:`A sign at the counter helps customers join.`,icon:`check`})]})]});if(type===`join-pages`)return _jsxs(`div`,{className:`bf-device-pair`,children:[_jsxs(FeaturePhone,{children:[_jsx(FeatureBrand,{}),_jsx(`b`,{className:`bf-device-heading`,children:`Your next coffee starts here.`}),_jsx(FeatureField,{label:`Name`,value:`Amelia Tan`}),_jsx(FeatureField,{label:`Email`,value:`amelia@example.com`}),_jsx(`div`,{className:`bf-action`,children:`Create account \u0026 join`})]}),_jsxs(`div`,{className:`bf-device-note`,children:[_jsx(FeaturePill,{children:`Sunday Coffee`}),_jsx(`b`,{children:`One Kardy account.`}),_jsx(`span`,{children:`Join this programme with your new or existing account.`}),_jsx(FeatureRow,{title:`Membership ready`,detail:`Then earn stamps in store.`,icon:`wallet`})]})]});if(type===`browser-wallet`)return _jsxs(`div`,{className:`bf-device-pair`,children:[_jsxs(FeaturePhone,{children:[_jsx(`small`,{className:`bf-wallet-greeting`,children:`Good morning, Amelia`}),_jsxs(`div`,{className:`bf-wallet-heading`,children:[_jsx(`b`,{children:`Your wallet`}),_jsx(`span`,{children:_jsx(`img`,{src:`/images/landing/mcp-mascot.svg`,alt:``})})]}),_jsx(FeatureCard,{}),_jsx(`p`,{className:`bf-wallet-instruction`,children:`Show this QR code to the staff to scan.`}),_jsxs(`div`,{className:`bf-wallet-nav`,children:[_jsxs(`span`,{children:[_jsx(FeatureIcon,{name:`wallet`}),`Wallet`]}),_jsxs(`span`,{children:[_jsx(FeatureIcon,{name:`pin`}),`Places`]}),_jsxs(`span`,{children:[_jsx(FeatureIcon,{name:`gift`}),`Rewards`]}),_jsxs(`span`,{children:[_jsx(FeatureIcon,{name:`activity`}),`Activity`]})]})]}),_jsxs(`div`,{className:`bf-device-note`,children:[_jsx(`span`,{className:`bf-app-mark`,children:_jsx(`img`,{src:`/images/landing/mcp-mascot.svg`,alt:``})}),_jsx(`b`,{children:`Kardy on your home screen`}),_jsx(`span`,{children:`Choose Add to Home Screen in a supported browser.`}),_jsx(FeaturePill,{children:`Progressive web app`}),_jsx(`small`,{children:`No app-store download.`})]})]});if(type===`native-wallets`)return _jsxs(_Fragment,{children:[_jsx(`div`,{className:`bf-native-wallets`,children:[`apple`,`google`].map(platform=>_jsxs(`div`,{className:`bf-native-example`,children:[_jsxs(`div`,{className:`bf-wallet-brand`,children:[_jsx(`img`,{src:`/images/${platform}-wallet-icon.${platform===`apple`?`jpg`:`png`}`,alt:``}),_jsx(`b`,{children:platform===`apple`?`Apple Wallet`:`Google Wallet`})]}),_jsxs(`div`,{className:`bf-native-pass bf-native-pass-${platform}`,children:[_jsxs(`div`,{className:`bf-native-top`,children:[_jsx(`span`,{children:`Sunday Coffee`}),platform===`apple`\u0026\u0026_jsxs(`span`,{className:`bf-native-progress`,children:[_jsx(`small`,{children:`STAMPS`}),_jsx(`b`,{children:`5 / 8`})]})]}),_jsxs(`div`,{className:`bf-native-details`,children:[_jsx(`small`,{children:platform===`apple`?`MEMBERSHIP`:`Your loyalty, up to date`}),_jsx(`b`,{children:platform===`apple`?`Sunday Coffee`:`5 / 8 stamps`}),platform===`apple`\u0026\u0026_jsxs(`div`,{className:`bf-native-reward`,children:[_jsx(`small`,{children:`YOUR NEXT REWARD`}),_jsx(`span`,{children:`A coffee, on us`})]})]}),_jsxs(`div`,{className:`bf-native-qr`,children:[_jsx(`img`,{src:`/images/sample-wallet-qr.svg`,alt:``}),_jsx(`small`,{children:`Sample QR · Not a live pass`})]})]})]},platform))}),_jsx(`div`,{className:`bf-under-note`,children:`Your membership, in your preferred wallet. Saving is optional and depends on setup.`})]});return null};const copy=featureSceneCopy[type];if(!copy)return null;return _jsx(`div`,{className:`kardy-feature-art`,role:`img`,\"aria-label\":`${copy[1]} illustration. ${copy[2]} ${copy[3]} Example interface; see the caption and instructions below.`,children:_jsxs(`div`,{\"aria-hidden\":`true`,children:[_jsxs(`div`,{className:`bf-intro`,children:[_jsxs(`span`,{children:[_jsx(FeatureIcon,{name:copy[0]}),copy[1]]}),_jsxs(`div`,{className:`bf-headline`,children:[copy[2],_jsx(`br`,{}),_jsx(`em`,{children:copy[3]})]})]}),_jsx(`div`,{className:`bf-scene bf-scene-${type}`,children:[`members`,`analytics`,`usage-limits`,`broadcasts`].includes(type)?_jsxs(`div`,{className:`bf-safari`,children:[_jsxs(`div`,{className:`bf-safari-toolbar`,children:[_jsxs(`span`,{className:`bf-safari-dots`,children:[_jsx(`i`,{}),_jsx(`i`,{}),_jsx(`i`,{})]}),_jsxs(`span`,{className:`bf-safari-address`,children:[_jsx(FeatureIcon,{name:`lock`}),`merchants.getkardy.com`]})]}),_jsx(`div`,{className:`bf-safari-content`,children:_jsx(FeatureScene,{type})})]}):_jsx(FeatureScene,{type})}),type!==`merchant-mcp`\u0026\u0026_jsx(`div`,{className:`bf-example`,children:`Illustrative example · not a live account`})]})})};function _createMdxContent(props){const _components={a:`a`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Frame,Heading,_MdxComponentBoundary}=_components;if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Where:`}),` Merchant workspace → `,_jsx(_components.strong,{children:`Locations`}),`.`]}),`\n`,_jsx(Frame,{caption:`Concept illustration: physical outlets share one brand programme.`,children:_jsx(_MdxComponentBoundary,{name:`FeatureIllustration`,children:_jsx(FeatureIllustration,{type:`outlets`})})}),`\n`,_jsx(_components.p,{children:`Create one brand for a chain, then add each shop as an outlet.`}),`\n`,_jsx(_components.p,{children:`Each outlet belongs to exactly one business. A business has its own subscription,\ninvoices and payment settings, separate from other businesses under the same login.\nNew businesses start with one outlet; additional locations are arranged after setup.`}),`\n`,_jsx(Heading,{level:`2`,id:`add-or-update-an-outlet`,children:`Add or update an outlet`}),`\n`,_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Locations`}),` in your merchant workspace. Select a store name, or use its\nthree-dot menu and choose `,_jsx(_components.strong,{children:`View store`}),`, to open its read-only overview.\nChoose `,_jsx(_components.strong,{children:`Edit location`}),` to change the address, contact details, coordinates or status.\n`,_jsx(_components.strong,{children:`Location overview`}),` returns without saving; a successful save returns to the overview.\nSelect `,_jsx(_components.strong,{children:`Add store`}),` to create a location. Enter its details and choose `,_jsx(_components.strong,{children:`Save store`}),`;\nonly that store is saved. `,_jsx(_components.strong,{children:`All locations`}),` returns to the list.`]}),`\n`,_jsxs(_components.p,{children:[`Outlets are peers; there is no main-store designation to manage. QR signs default\nto `,_jsx(_components.strong,{children:`All locations`}),`. Choose a specific active outlet when you need an outlet-specific sign.`]}),`\n`,_jsx(_components.p,{children:`Postal code is required during setup. Unit number and outlet phone are optional;\nyou do not need to enter map coordinates.`}),`\n`,_jsx(Heading,{level:`2`,id:`keep-progress-with-the-brand`,children:`Keep progress with the brand`}),`\n`,_jsx(_components.p,{children:`A member’s loyalty membership belongs to the brand. Visits can be recorded at different\noutlets without creating a new membership at each one. Choose the correct outlet\nwhen scanning so visit reporting stays accurate.`}),`\n`,_jsx(Heading,{level:`2`,id:`compare-outlet-activity`,children:`Compare outlet activity`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Locations`}),` focuses on the store network and performance table, without repeating\nan all-locations statistics panel. Open a store to see `,_jsx(_components.strong,{children:`Performance this month`}),`\nand its daily or monthly visit graph. Use `,_jsx(_components.strong,{children:`Refresh visits`}),` for the latest totals.\nFor date-filtered brand totals, use `,_jsx(_components.strong,{children:`Overview`}),`.`]}),`\n`,_jsx(_components.p,{children:`Visits count staff-issued stamp events attributed to a location, not foot traffic\nor read-only QR checks. Dates use UTC. The daily graph includes today’s partial\nactivity; the monthly graph includes the current month so far. Daily comparisons\nuse the corresponding day 30 days earlier, which may be a complete day.`}),`\n`,_jsx(_components.p,{children:`When the activity history exceeds the reporting limit or cannot be fully loaded,\nthe graph shows unavailable rather than an estimated trend. Exact totals can still\nbe displayed separately. Demo values are illustrative.`}),`\n`,_jsxs(_components.p,{children:[`The compact store table includes an address preview, country flag where supported, and an active-status indicator.\n`,_jsx(_components.strong,{children:`Compare by`}),` changes the ranking metric; the highest value is marked beside that\nmetric, including ties. An inactive store does not show the active pulse.`]}),`\n`,_jsxs(_components.p,{children:[`Each location overview shows this month’s visits, rewards redeemed and unique\nmembers who received a stamp. Monthly statistics use UTC; incomplete totals show\n`,_jsx(_components.strong,{children:`Unavailable`}),`, not zero.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Recent activity`}),` shows recorded scans, stamps and reward redemptions, newest\nfirst, ten per page across all dates. Search by member name or code, filter by\nactivity type and use Previous/Next for older entries. Each row shows the member, the recorded staff account, the reward name\nwhen available, and the timestamp in the outlet’s time zone.`]}),`\n`,_jsx(_components.p,{children:`Read-only membership checks and failed scans are not recorded in this activity\nlog. A missing staff name does not erase attribution: the recorded account ID is\nshown when permissions prevent displaying the name. Activity is read-only and\navailable to Owners and Managers in the same organisation.`}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/features/analytics`,children:`Dashboard and reporting`}),` for location leaders, reporting\nperiods and the meaning of incomplete data.`]}),`\n`,_jsx(Heading,{level:`2`,id:`preserve-history`,children:`Preserve history`}),`\n`,_jsx(_components.p,{children:`For an outlet that is no longer serving members, review its status before removing it.\nScan and redemption records are audit history and must not be deleted to hide a mistake.`}),`\n`,_jsxs(_components.p,{children:[`Outlet-specific team restrictions are not yet documented as available. See\n`,_jsx(_components.a,{href:`/features/team-access`,children:`roles`}),` before planning access for your team.`]}),`\n`,_jsx(Heading,{level:`2`,id:`additional-outlets`,children:`Additional outlets`}),`\n`,_jsx(_MdxComponentBoundary,{name:`MerchantFlow`,children:_jsx(MerchantFlow,{type:`outlets`})}),`\n`,_jsxs(_components.p,{children:[`Arrange billing and an outlet allowance before adding or reactivating stores beyond\nyour capacity. See `,_jsx(_components.a,{href:`/features/usage-limits`,children:`usage limits`}),`; additional outlets do not\nautomatically multiply other allowances.`]}),`\n`,_jsxs(_components.p,{children:[`Each business has one subscription with a paid outlet quantity. Three Growth\noutlets cost S$150/month. Where enabled, use `,_jsx(_components.strong,{children:`Settings → Billing`}),` to buy more\ncapacity; payment must be confirmed before extra outlets can be activated.\nCreating a location does not itself purchase capacity or change the charge.`]}),`\n`,_jsxs(_components.p,{children:[`Pause unwanted locations before scheduling a lower paid quantity for the next\nrenewal. Pausing or deleting a location alone does not reduce your bill. If the\nbilling control is unavailable, contact Kardy before activating additional outlets.\nThe introductory offer applies only to each business’s first outlet, not every\nnew location. See `,_jsx(_components.a,{href:`/features/plans`,children:`plans and activation`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{MerchantFlow,FeatureIllustration,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Outlet management","description":"Keep several physical shops under one brand and one programme.","href":"/features/outlets"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[148,31821,")=>null;const FeatureIllustration=()=>null;function _createM"]]},"mdxExtracts":{"tableOfContents":[{"title":"Add or update an outlet","slug":"add-or-update-an-outlet","depth":2,"children":[]},{"title":"Keep progress with the brand","slug":"keep-progress-with-the-brand","depth":2,"children":[]},{"title":"Compare outlet activity","slug":"compare-outlet-activity","depth":2,"children":[]},{"title":"Preserve history","slug":"preserve-history","depth":2,"children":[]},{"title":"Additional outlets","slug":"additional-outlets","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/kardy/c47778b92ead9347/navigation-progress.js","/_mintlify/custom/kardy/943c5e0fcd541608/merchant-flow-runtime.js"],"subdomain":"kardy","siteName":"Kardy Docs","title":"Outlet management - Kardy Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-20T11:25:41.767Z","originalFileLocation":"features/outlets.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Keep several physical shops under one brand and one programme.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Kardy Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index, follow, max-image-preview:large\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kardy/rF7dZO_7mgPtZexT/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/kardy/rF7dZO_7mgPtZexT/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kardy/rF7dZO_7mgPtZexT/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kardy/rF7dZO_7mgPtZexT/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kardy/rF7dZO_7mgPtZexT/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kardy/rF7dZO_7mgPtZexT/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kardy/rF7dZO_7mgPtZexT/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kardy/rF7dZO_7mgPtZexT/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kardy/rF7dZO_7mgPtZexT/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Outlet management - Kardy Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Keep several physical shops under one brand and one programme.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Kardy Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.getkardy.com/features/outlets\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://kardy.mintlify.app/_mintlify/api/og/v2?division=Merchant+workspace\u0026amp;title=Outlet+management\u0026amp;description=Keep+several+physical+shops+under+one+brand+and+one+programme.\u0026amp;theme=789ad54e876c5230cbb28a18\u0026amp;signature=6e1f38c1ca5b6daab0ac0b28b1a7824963124e1ece28c2d72ddf0fdde90d46f6\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Outlet management - Kardy Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Keep several physical shops under one brand and one programme.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://kardy.mintlify.app/_mintlify/api/og/v2?division=Merchant+workspace\u0026amp;title=Outlet+management\u0026amp;description=Keep+several+physical+shops+under+one+brand+and+one+programme.\u0026amp;theme=789ad54e876c5230cbb28a18\u0026amp;signature=6e1f38c1ca5b6daab0ac0b28b1a7824963124e1ece28c2d72ddf0fdde90d46f6\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/kardy/rF7dZO_7mgPtZexT/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Kardy Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#42001C\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.getkardy.com/features/outlets\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/features/outlets.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.getkardy.com/#organization\",\"name\":\"Kardy Docs\",\"url\":\"https://docs.getkardy.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/kardy/Mog1AEmsXW_pC6SU/images/logo-light.svg?fit=max\u0026auto=format\u0026n=Mog1AEmsXW_pC6SU\u0026q=85\u0026s=f6630c7547635e402a1b83f57da29a0d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.getkardy.com#website\",\"name\":\"Kardy Docs\",\"url\":\"https://docs.getkardy.com\",\"publisher\":{\"@id\":\"https://docs.getkardy.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.getkardy.com/features/outlets#webpage\",\"url\":\"https://docs.getkardy.com/features/outlets\",\"name\":\"Outlet management\",\"description\":\"Keep several physical shops under one brand and one programme.\",\"dateModified\":\"2026-09-20T11:25:41.767Z\",\"isPartOf\":{\"@id\":\"https://docs.getkardy.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.getkardy.com/features/outlets#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.getkardy.com/features/outlets#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Features\",\"item\":\"https://docs.getkardy.com/features/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Merchant workspace\",\"item\":\"https://docs.getkardy.com/features/members\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Outlet management\",\"item\":\"https://docs.getkardy.com/features/outlets\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.getkardy.com/features/outlets#article\",\"headline\":\"Outlet management\",\"name\":\"Outlet management\",\"description\":\"Keep several physical shops under one brand and one programme.\",\"url\":\"https://docs.getkardy.com/features/outlets\",\"mainEntityOfPage\":{\"@id\":\"https://docs.getkardy.com/features/outlets#webpage\"},\"dateModified\":\"2026-09-20T11:25:41.767Z\",\"publisher\":{\"@id\":\"https://docs.getkardy.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.getkardy.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Kardy Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Kardy Docs","nav":{"global":null,"tabs":[{"tab":"Start here","pages":[{"title":"Start here","href":"/intro"}]},{"tab":"Features","groups":[{"group":"Features","pages":[{"title":"Features","href":"/features/overview"},{"group":"Loyalty programme","icon":"gift","pages":[{"title":"Branded membership cards","sidebarTitle":"Branded cards","href":"/features/branded-cards"},{"title":"Stamps and rewards","href":"/features/rewards"},{"title":"QR scanning and redemption","sidebarTitle":"Scan and redeem","href":"/features/scanning"},{"title":"Referral rewards","href":"/features/referrals"},{"title":"Birthday rewards","href":"/features/birthday-rewards"}]},{"group":"Customer experience","icon":"wallet","pages":[{"title":"QR signs","href":"/features/qr-signs"},{"title":"Customer join pages","href":"/features/join-pages"},{"title":"Browser wallet and PWA","sidebarTitle":"Browser wallet","href":"/features/browser-wallet"},{"title":"Apple Wallet and Google Wallet","sidebarTitle":"Apple \u0026 Google Wallet","href":"/features/native-wallets"},{"title":"Kardy Rewards","href":"/features/kardy-rewards"},{"title":"Membership email preferences","sidebarTitle":"Email preferences","href":"/features/email-preferences"}]},{"group":"Merchant workspace","icon":"store","pages":[{"title":"Member management","href":"/features/members"},{"title":"Dashboard and reporting","sidebarTitle":"Reporting","href":"/features/analytics"},{"title":"Reports and PDF exports","href":"/features/weekly-reports"},{"title":"Activity list view","sidebarTitle":"Activity list view","href":"/features/activities"},{"title":"Merchant notifications","href":"/features/merchant-notifications"},{"title":"Live view","description":"Follow recent loyalty activity layered over an interactive colour globe.","href":"/features/live-view"},{"title":"Outlet management","href":"/features/outlets"},{"title":"Team roles and access","sidebarTitle":"Team \u0026 access","description":"Invite teammates, manage organisation roles, and transfer ownership securely.","href":"/features/team-access"},{"title":"Multiple businesses and outlets","href":"/features/multiple-brands"}]},{"group":"Broadcasts","icon":"envelope","tag":"Coming soon","pages":[{"title":"Broadcasts","href":"/features/broadcasts"}]}]},{"group":"Plans \u0026 capacity","pages":[{"title":"Plans and activation","href":"/features/plans"},{"title":"Usage and capacity limits","sidebarTitle":"Usage \u0026 limits","href":"/features/usage-limits"}]}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/quick-start"}]},{"tab":"Customers","pages":[{"title":"Customers","href":"/customer-journey/overview"}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp/overview"}]},{"tab":"Technical","pages":[{"title":"Technical","href":"/technical/overview"}]}]},"title":"Outlet management - Kardy Docs","buildId":"dpl_48qhjNLiu9iJQQSZJz9Fa2ihBbPH","deploymentId":"dpl_48qhjNLiu9iJQQSZJz9Fa2ihBbPH","dynamics":["07c022d89b"],"chunks":["Frame-a9VIxNFT.js","DynamicMarkdown-Cp6hhEk1.js"]}