Connect an agent to read your programme, rewards and outlets.
Where: Merchant Settings → Agent connections.
Concept illustration with generic client symbols. Merchant access is Owner-approved and read-only.
Connect Claude, Codex or another compatible MCP client using OAuth or an expiring
manual key. Only the organisation Owner can approve connections and manage keys.
Agent connections shows an MCP limits summary before the setup controls:
Growth: 1,000 tool calls per UTC calendar month, shared across the workspace.
Request rate: 120 requests per minute per workspace; pause before retrying a rate-limit error.
Connections: up to 10 active connections per brand, including manual keys and OAuth.
Scale has an agreed finite monthly allowance. Use View your actual limit,
remaining calls and reset date to check the configured allowance, which may
differ from the Growth default. These are existing limits, not automatic overage charges.The Owner chooses scopes and can revoke access. OAuth requests require the correct
resource and approved redirect. Manual keys expire and are shown only once.All keys and OAuth clients share the workspace allowance.
See its counting rules and reset date before scheduling agent activity.Open Settings → Usage & limits → MCP usage as the Owner to see calls used,
remaining calls, the monthly limit and the next reset date. Choose Refresh usage
for the latest totals. Each authorised tool request and each results page counts
once. Setup and discovery do not consume monthly calls; separate burst limits apply.The allowance resets on the first day of the month at 00:00 UTC, not on your
billing renewal date. Replacing a key or reconnecting an agent does not reset it.
At the cap, wait for the reset or contact Kardy for more capacity. Daily usage
history is not available yet. This is Kardy workspace usage, not your agent
provider’s token usage or subscription balance.
Implemented on dev; production rollout is separate. Your agent provider may
apply its own subscription or usage charges.
Connect Claude, Codex or another client
Simple setup steps and OAuth illustrations.
Security and troubleshooting
Protocol details, scopes and errors.
{"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.4006","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":"mcp/overview","slug":"/mcp/overview","pageMetadata":{"title":"Merchant MCP","description":"Connect an agent to read your programme, rewards and outlets.","href":"/mcp/overview"},"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: \"Connect an agent to read your programme, rewards and outlets.\"\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`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Card,CardGroup,Frame,Heading,Note,Table,_MdxComponentBoundary}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Where:`}),` Merchant `,_jsx(_components.strong,{children:`Settings → Agent connections`}),`.`]}),`\n`,_jsx(Frame,{caption:`Concept illustration with generic client symbols. Merchant access is Owner-approved and read-only.`,children:_jsx(_MdxComponentBoundary,{name:`FeatureIllustration`,children:_jsx(FeatureIllustration,{type:`merchant-mcp`})})}),`\n`,_jsx(_components.p,{children:`Connect Claude, Codex or another compatible MCP client using OAuth or an expiring\nmanual key. Only the organisation Owner can approve connections and manage keys.`}),`\n`,_jsx(Heading,{level:`2`,id:`how-an-agent-reads-your-business`,children:`How an agent reads your business`}),`\n`,_jsx(_MdxComponentBoundary,{name:`MerchantFlow`,children:_jsx(MerchantFlow,{type:`mcp-read`})}),`\n`,_jsx(Heading,{level:`2`,id:`available-tools`,children:`Available tools`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Tool`}),_jsx(_components.th,{children:`Reads`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`get_programme`}),_jsx(_components.td,{children:`Brand name, slug and tagline`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`list_rewards`}),_jsx(_components.td,{children:`Active rewards, stamp goals and redemption outlets`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`list_outlets`}),_jsx(_components.td,{children:`Active outlets and business addresses`})]})]})]}),`\n`,_jsx(_components.p,{children:`Access is read-only. Customer records, loyalty changes, billing and team changes\nare outside the available tools.`}),`\n`,_jsx(Heading,{level:`2`,id:`permissions-and-usage`,children:`Permissions and usage`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Agent connections`}),` shows an `,_jsx(_components.strong,{children:`MCP limits`}),` summary before the setup controls:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Growth:`}),` 1,000 tool calls per UTC calendar month, shared across the workspace.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Request rate:`}),` 120 requests per minute per workspace; pause before retrying a rate-limit error.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Connections:`}),` up to 10 active connections per brand, including manual keys and OAuth.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Scale has an agreed finite monthly allowance. Use `,_jsx(_components.strong,{children:`View your actual limit,\nremaining calls and reset date`}),` to check the configured allowance, which may\ndiffer from the Growth default. These are existing limits, not automatic overage charges.`]}),`\n`,_jsx(_components.p,{children:`The Owner chooses scopes and can revoke access. OAuth requests require the correct\nresource and approved redirect. Manual keys expire and are shown only once.`}),`\n`,_jsxs(_components.p,{children:[`All keys and OAuth clients share the `,_jsx(_components.a,{href:`/features/usage-limits`,children:`workspace allowance`}),`.\nSee its counting rules and reset date before scheduling agent activity.`]}),`\n`,_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Settings → Usage \u0026 limits → MCP usage`}),` as the Owner to see calls used,\nremaining calls, the monthly limit and the next reset date. Choose `,_jsx(_components.strong,{children:`Refresh usage`}),`\nfor the latest totals. Each authorised tool request and each results page counts\nonce. Setup and discovery do not consume monthly calls; separate burst limits apply.`]}),`\n`,_jsxs(_components.p,{children:[`The allowance resets on the first day of the month at `,_jsx(_components.strong,{children:`00:00 UTC`}),`, not on your\nbilling renewal date. Replacing a key or reconnecting an agent does not reset it.\nAt the cap, wait for the reset or contact Kardy for more capacity. Daily usage\nhistory is not available yet. This is Kardy workspace usage, not your agent\nprovider’s token usage or subscription balance.`]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Implemented on dev; production rollout is separate. Your agent provider may\napply its own subscription or usage charges.`})}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Connect Claude, Codex or another client`,icon:`plug`,href:`/mcp/connect`,children:_jsx(_components.p,{children:`Simple setup steps and OAuth illustrations.`})}),_jsx(Card,{title:`Security and troubleshooting`,icon:`shield`,href:`/mcp/reference`,children:_jsx(_components.p,{children:`Protocol details, scopes and errors.`})})]})]})}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":"Merchant MCP","description":"Connect an agent to read your programme, rewards and outlets.","href":"/mcp/overview"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[148,31821,")=>null;const FeatureIllustration=()=>null;function _createM"]]},"mdxExtracts":{"tableOfContents":[{"title":"How an agent reads your business","slug":"how-an-agent-reads-your-business","depth":2,"children":[]},{"title":"Available tools","slug":"available-tools","depth":2,"children":[]},{"title":"Permissions and usage","slug":"permissions-and-usage","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":"Merchant MCP - Kardy Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-20T11:25:41.756Z","originalFileLocation":"mcp/overview.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=\"Connect an agent to read your programme, rewards and outlets.\">\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=\"Merchant MCP - Kardy Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Connect an agent to read your programme, rewards and outlets.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Kardy Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.getkardy.com/mcp/overview\">\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+MCP\u0026amp;title=Merchant+MCP\u0026amp;description=Connect+an+agent+to+read+your+programme%2C+rewards+and+outlets.\u0026amp;theme=789ad54e876c5230cbb28a18\u0026amp;signature=38ef28ff27efa579171a00d2f61b1acb0145e24564b4d404a9bcb77c59fab91e\">\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=\"Merchant MCP - Kardy Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Connect an agent to read your programme, rewards and outlets.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://kardy.mintlify.app/_mintlify/api/og/v2?division=Merchant+MCP\u0026amp;title=Merchant+MCP\u0026amp;description=Connect+an+agent+to+read+your+programme%2C+rewards+and+outlets.\u0026amp;theme=789ad54e876c5230cbb28a18\u0026amp;signature=38ef28ff27efa579171a00d2f61b1acb0145e24564b4d404a9bcb77c59fab91e\">\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/mcp/overview\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/mcp/overview.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/mcp/overview#webpage\",\"url\":\"https://docs.getkardy.com/mcp/overview\",\"name\":\"Merchant MCP\",\"description\":\"Connect an agent to read your programme, rewards and outlets.\",\"dateModified\":\"2026-09-20T11:25:41.756Z\",\"isPartOf\":{\"@id\":\"https://docs.getkardy.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.getkardy.com/mcp/overview#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.getkardy.com/mcp/overview#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Kardy Docs\",\"item\":\"https://docs.getkardy.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Merchant MCP\",\"item\":\"https://docs.getkardy.com/mcp/overview\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.getkardy.com/mcp/overview#article\",\"headline\":\"Merchant MCP\",\"name\":\"Merchant MCP\",\"description\":\"Connect an agent to read your programme, rewards and outlets.\",\"url\":\"https://docs.getkardy.com/mcp/overview\",\"mainEntityOfPage\":{\"@id\":\"https://docs.getkardy.com/mcp/overview#webpage\"},\"dateModified\":\"2026-09-20T11:25:41.756Z\",\"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","pages":[{"title":"Features","href":"/features/overview"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/quick-start"}]},{"tab":"Customers","pages":[{"title":"Customers","href":"/customer-journey/overview"}]},{"tab":"MCP","groups":[{"group":"Merchant MCP","pages":[{"title":"Merchant MCP","href":"/mcp/overview"},{"title":"Connect your agent","description":"Connect Claude, Codex or another AI agent to your Kardy merchant workspace.","href":"/mcp/connect"}]},{"group":"Reference","pages":[{"title":"MCP technical reference","href":"/mcp/reference"},{"title":"MCP errors","href":"/mcp/errors"}]}]},{"tab":"Technical","pages":[{"title":"Technical","href":"/technical/overview"}]}]},"title":"Merchant MCP - Kardy Docs","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["07c022d89b"],"chunks":["Frame-DYplxqhs.js","DynamicMarkdown-Cc6AuSHS.js"]}