import { AssetIndexEntry, PaymentWizardRoute } from '@openreceive/provider-data'; export { PaymentWizardRoute, PaymentWizardRouteRequest, getPaymentWizardRoutes, loadPayTutorialImages, payTutorialImage } from '@openreceive/provider-data'; import { P as PaymentIconId, a as ParseOpenReceiveOptionalIntegerOptions, b as PaymentMethod, R as ResolvedTheme, T as ThemePreference, c as PaymentMethodOption, d as TickingValueOptions, e as TickingValueController, f as TransientFeedbackOptions, g as TransientFeedbackController, C as CheckoutInvoiceSnapshot, U as UnixSeconds, S as SwapDisplayModel, h as CheckoutSnapshot, i as SwapDepositRisk, j as CheckoutState, k as TransactionDetailsInput, l as TransactionDetailRow, m as CreateCheckoutStateOptions, n as CheckoutStatusModelInput, o as CheckoutStatusModel, p as CheckoutPaymentMethod, B as BrowserLoggerOption, q as ThemeAttributeTarget, r as CheckoutElementAttributes, s as CheckoutElementAttributeOptions, t as CheckoutElementEventHandlers, u as CheckoutElementListeners, v as CreateCheckoutShellOptions, w as CheckoutShellElements, x as CheckoutShellOptions, y as CheckoutShellModel, z as CreateOpenReceiveThemeToggleElementOptions, A as ThemeToggleElementAttributeOptions, D as ThemeToggleElementAttributes, E as StoredThemeModelOptions, F as ThemeModel, G as ThemeModelOptions, H as ReadThemePreferenceOptions, I as ThemeControlTargets, J as ThemeStorageOptions, K as PaymentWizardControllerOptions, L as PaymentWizardController, M as PaymentWizardSelection, N as PaymentWizardModel, W as WizardRouteAssetDisplay, O as WizardRouteDisplay, Q as PaymentWizardSelectionAction } from './status-BC2Rl8KA.js'; export { V as BrowserLogContext, X as BrowserLogger, Y as BrowserRequestError, Z as CheckoutController, _ as CheckoutControllerOptions, $ as CheckoutPhase, a0 as CheckoutShellRootAttributes, a1 as CheckoutStatusRefresh, a2 as OPENRECEIVE_CHECKOUT_DATA_ATTRIBUTES, a3 as OPENRECEIVE_CHECKOUT_DATA_SELECTORS, a4 as OPENRECEIVE_CHECKOUT_ELEMENT_ATTRIBUTES, a5 as OPENRECEIVE_CHECKOUT_ELEMENT_EVENTS, a6 as OPENRECEIVE_CHECKOUT_ELEMENT_PARTS, a7 as OPENRECEIVE_CHECKOUT_ELEMENT_PART_SELECTORS, a8 as OPENRECEIVE_CHECKOUT_ELEMENT_SLOTS, a9 as OPENRECEIVE_CHECKOUT_ELEMENT_TAG_NAME, aa as OPENRECEIVE_COPY_FEEDBACK_MS, ab as OPENRECEIVE_DEFAULT_POLL_INTERVAL_MS, ac as OPENRECEIVE_DEFAULT_PREFIX, ad as OPENRECEIVE_PAYMENT_WIZARD_ATTRIBUTES, ae as OPENRECEIVE_PAYMENT_WIZARD_SELECTORS, af as OPENRECEIVE_PROVIDER_PREVIEW_LIMIT, ag as OPENRECEIVE_STYLE_ROOT_ATTRIBUTE, ah as OPENRECEIVE_STYLE_ROOT_SELECTOR, ai as OPENRECEIVE_THEME_STORAGE_KEY, aj as OPENRECEIVE_THEME_TOGGLE_ELEMENT_ATTRIBUTES, ak as OPENRECEIVE_THEME_TOGGLE_ELEMENT_EVENTS, al as OPENRECEIVE_THEME_TOGGLE_ELEMENT_PARTS, am as OPENRECEIVE_THEME_TOGGLE_ELEMENT_PART_SELECTORS, an as OPENRECEIVE_THEME_TOGGLE_ELEMENT_TAG_NAME, ao as QrEncoder, ap as QrSvgController, aq as QrSvgControllerOptions, ar as Status, as as SwapCopyRow, at as SwapRefundStaging, au as WizardProviderDisplay, av as assertDisplayInvoice, aw as copyInvoice, ax as createCheckoutActionEvent, ay as createCheckoutController, az as createCheckoutErrorEvent, aA as createCheckoutProviderCopyEvent, aB as createCheckoutStateEvent, aC as createQrPayloadSvg, aD as createQrSvg, aE as createQrSvgController, aF as createStatusFetcher, aG as createThemeChangeEvent, aH as currentCheckoutUrl, aI as deriveCheckoutStateLabels, aJ as deriveStatus, aK as enterCheckoutResumePath, aL as escapeHtml, aM as formatAmountCaption, aN as formatDepositAmount, aO as formatFiatAmount, aP as formatMsats, aQ as formatSwapLimit, aR as formatUnixTime, aS as openWallet, aT as paymentIconSvgs, aU as prepareCheckout, aV as requestCheckout } from './status-BC2Rl8KA.js'; import '@openreceive/core'; /** Each packaged payment icon as a `data:image/svg+xml` URI, keyed by id. */ declare const paymentIconUrls: Readonly>; /** * Shared daisyUI / Tailwind class strings for OpenReceive checkout UI. * Kept as string constants so Tailwind can scan them for the prebuilt stylesheet. */ declare const orClasses: { /** * The drop-in's own box. It is a size QUERY CONTAINER (container-type: inline-size): every * `@sm:` / `@md:` / `@lg:` variant below keys on this element's inline size, * never on the viewport — the host decides how wide the checkout is, and a * 560px card on a 1280px page must lay out like a 560px screen. The rem * breakpoints are the viewport ones (see styles.source.css). daisyUI paints * the theme's base-100 on this root, so it pads and rounds itself too: a * painted surface with content flush against its edges is never right. No * container variant may appear on THIS string — a container cannot query * itself. */ readonly root: "grid gap-3 min-w-0 rounded-box p-4 @container/openreceive"; /** * What the payer is buying, above the amount. Present only when the host * returned a `description` from its amount hook — the checkout renders the * total and never the order, so this is the one line of order context the * default path has. */ readonly orderDescription: "text-base font-semibold leading-snug m-0 min-w-0"; readonly paymentLayout: "grid gap-3 grid-cols-[auto_minmax(0,1fr)] gap-x-3 @md:gap-x-5 items-start min-w-0"; readonly paymentLayoutExpired: "grid gap-3 grid-cols-1 items-start min-w-0"; readonly lightningPane: "grid gap-2 items-start justify-items-start min-w-0"; readonly qr: "justify-self-start w-[min(148px,38cqw)] @md:w-[min(200px,36cqw)] [&_svg]:block [&_svg]:w-full [&_svg]:h-auto"; readonly satsDetail: "text-base-content/60 text-sm leading-snug justify-self-start max-w-[min(148px,38cqw)] @md:max-w-[min(200px,36cqw)]"; readonly invoiceTitle: "m-0 text-sm font-semibold leading-tight"; readonly paymentInfo: "grid gap-1.5 min-w-0 content-start"; readonly meta: "flex flex-wrap gap-1.5 items-center"; readonly metaItem: "badge badge-ghost badge-sm min-h-6"; readonly stateSettled: "badge badge-success badge-sm"; readonly statePending: "badge badge-ghost badge-sm"; readonly actions: "flex flex-wrap gap-2 justify-start"; readonly btn: "btn btn-outline"; readonly btnGhost: "btn btn-ghost"; readonly copyIcon: "shrink-0 size-4"; readonly themeToggle: "btn btn-outline btn-sm gap-2 justify-self-end"; readonly paymentStatus: "flex items-center gap-2.5 min-w-0"; readonly paymentStatusBody: "grid gap-0.5 min-w-0 flex-1"; readonly paymentStatusTitle: "text-base font-semibold leading-tight min-w-0"; readonly paymentStatusDetail: "text-base-content/60 text-sm leading-snug"; readonly spinner: "loading loading-spinner loading-md text-warning"; /** Spinner on a primary button — inherit the button foreground, not the warning color. */ readonly continueSpinner: "loading loading-spinner loading-md shrink-0"; readonly settledIcon: "size-8 shrink-0 text-success"; readonly countdown: "text-base-content/60 text-sm"; readonly countdownStrong: "text-base-content font-semibold"; /** The spinner/notice body of the creating, minting and create-error screens; sits inside `root`, which pads. */ readonly creating: "grid gap-2 place-items-center"; readonly wizard: "overflow-hidden rounded-box border border-base-content/20 bg-base-200 grid gap-0"; readonly wizardHeader: "grid gap-0.5 p-3 @sm:px-5 @sm:py-4"; readonly wizardHeaderTitle: "text-lg font-bold m-0 @sm:text-xl"; readonly wizardHeaderSubtitle: "text-base-content/65 text-sm m-0 mt-0.5"; readonly wizardBody: "border-t border-base-content/15 grid gap-3 p-4 @sm:p-5"; readonly methodBody: "border-t border-base-content/15 grid gap-3 p-3 @sm:p-5 @container/methods"; readonly methodGrid: "grid grid-cols-1 items-stretch gap-2 @min-[18rem]/methods:grid-cols-2 @sm/openreceive:gap-3 @md/openreceive:grid-cols-3 @lg/openreceive:grid-cols-4"; readonly methodCardUnavailable: "flex h-full min-h-24 min-w-0 w-full flex-col items-center justify-start gap-1.5 rounded-box border border-base-content/20 bg-base-100 px-2.5 py-3 text-center text-base-content opacity-50 cursor-not-allowed shadow-sm"; readonly methodCurrenciesLoading: "col-span-full flex min-h-24 w-full flex-col items-center justify-center gap-2 rounded-box border border-dashed border-base-content/25 bg-base-100 px-2.5 py-3 text-center text-base-content/70 shadow-sm"; readonly methodCardReady: "flex h-full min-h-24 min-w-0 w-full flex-col items-center justify-start gap-1.5 rounded-box border border-base-content/20 bg-base-100 px-2.5 py-3 text-center text-base-content shadow-sm transition-colors hover:border-base-content/45 hover:bg-base-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary cursor-pointer"; readonly methodCardActiveBitcoin: "border-warning bg-warning/10 ring-1 ring-warning/50"; readonly methodCardActiveUsdt: "border-success bg-success/10 ring-1 ring-success/50"; readonly methodCardActiveUsdc: "border-info bg-info/10 ring-1 ring-info/50"; readonly methodCardActiveSol: "border-primary bg-primary/10 ring-1 ring-primary/50"; readonly methodCardActiveEth: "border-secondary bg-secondary/10 ring-1 ring-secondary/50"; readonly methodCardActiveDefault: "border-primary bg-primary/10 ring-1 ring-primary/50"; readonly methodIconWrap: "grid size-8 shrink-0 place-items-center overflow-hidden rounded-full @sm/openreceive:size-10"; readonly methodIcon: "size-8 aspect-square @sm/openreceive:size-10"; readonly methodTitle: "block whitespace-normal break-words font-bold text-sm @sm/openreceive:text-base"; readonly methodTitleWrap: "min-w-0 w-full text-center"; readonly methodDetail: "text-base-content/60 text-xs leading-snug"; /** * The line under a tile's name: what the Bitcoin tile is, or the networks a * coin can arrive on. Visible at EVERY width — a grid of five bare coin names * is a grid of five questions, and the answer is one short line long. */ readonly methodTileDetail: "block whitespace-normal break-words text-xs leading-snug text-base-content/60"; /** Limit / unavailable hint under a payment tile — visible at all breakpoints. */ readonly methodLimitHint: "block px-1 text-center text-xs leading-snug text-base-content/55"; readonly methodNetworkReveal: "rounded-box border border-base-content/20 bg-base-100 p-3"; /** * Hidden only below 18rem, never by a bare `hidden`: a host page's own * `.hidden` (Tailwind v3, Bootstrap 3's `!important`, a theme's plain CSS) is * often unlayered and would beat any rule of ours that reveals it again. */ readonly methodNetworkRevealDesktop: "@max-[18rem]/methods:hidden"; readonly methodNetworkRevealMobile: "border-l border-base-content/30 pl-2 @min-[18rem]/methods:hidden"; readonly methodNetworkRevealMobileUsdt: "border-l border-success/40 pl-2 @min-[18rem]/methods:hidden"; readonly methodNetworkRevealMobileUsdc: "border-l border-info/40 pl-2 @min-[18rem]/methods:hidden"; readonly methodNetworkRevealAnim: "grid overflow-hidden transition-[grid-template-rows,opacity,margin] duration-200 ease-out motion-reduce:transition-none @min-[18rem]/methods:hidden"; readonly methodNetworkRevealAnimOpen: "mt-2 grid-rows-[1fr] opacity-100"; readonly methodNetworkRevealAnimClosed: "grid-rows-[0fr] opacity-0"; readonly methodNetworkRevealInner: "min-h-0 overflow-hidden"; readonly methodNetworkLayout: "grid gap-3 @lg/openreceive:grid-cols-[9rem_minmax(0,1fr)_minmax(8rem,auto)] @lg/openreceive:items-start"; readonly methodNetworkHeading: "break-words text-sm font-semibold text-base-content m-0"; readonly methodNetworkHint: "break-words mt-0.5 text-xs text-base-content/55 m-0"; readonly methodNetworkGrid: "grid grid-cols-[repeat(auto-fit,minmax(min(100%,10rem),1fr))] gap-2 items-start"; readonly methodNetworkButton: "btn h-auto min-h-11 min-w-0 w-full flex-wrap justify-start gap-2 rounded-field border border-base-content/25 bg-base-100 px-3 py-2 text-sm text-base-content shadow-sm hover:border-base-content/45 hover:bg-base-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary"; readonly methodNetworkButtonUnavailable: "btn h-auto min-h-11 min-w-0 w-full flex-wrap justify-start gap-2 rounded-field border border-base-content/20 bg-base-100 px-3 py-2 text-sm text-base-content opacity-50 cursor-not-allowed shadow-sm pointer-events-none"; readonly methodNetworkLabel: "min-w-0 whitespace-normal break-words text-left"; readonly methodNetworkButtonActiveUsdt: "border-success bg-success/10 ring-1 ring-success/50"; readonly methodNetworkButtonActiveUsdc: "border-info bg-info/10 ring-1 ring-info/50"; readonly methodNetworkButtonActiveDefault: "border-primary bg-primary/10 ring-1 ring-primary/50"; readonly methodNetworkIcon: "size-6 shrink-0 aspect-square"; readonly methodNetworkCheck: "ml-auto grid size-5 place-items-center rounded-full bg-success text-[0.65rem] text-success-content"; readonly methodNetworkCheckUsdc: "ml-auto grid size-5 place-items-center rounded-full bg-info text-[0.65rem] text-info-content"; readonly methodNetworkSummary: "mt-2 flex flex-wrap items-center gap-1.5 text-xs text-base-content/65 m-0"; readonly methodNetworkSummaryIcon: "grid size-4 place-items-center rounded-full bg-success text-[0.65rem] text-success-content"; readonly methodNetworkSummaryIconUsdc: "grid size-4 place-items-center rounded-full bg-info text-[0.65rem] text-info-content"; readonly methodConfirmDesktop: "btn btn-primary h-auto min-h-11 min-w-0 w-full whitespace-normal break-words gap-2 px-2 py-2"; readonly methodTile: "grid h-full min-w-0 content-start gap-0.5"; readonly breadcrumbs: "breadcrumbs text-sm"; readonly breadcrumbCurrent: "font-bold"; readonly routePicker: "grid grid-cols-2 @md:grid-cols-4 gap-2"; readonly routeButton: "card card-border bg-base-100 grid gap-1.5 content-start min-h-[120px] p-2.5 text-left cursor-pointer hover:border-primary"; readonly routeButtonSelected: "card card-border bg-base-100 grid gap-1.5 content-start min-h-[120px] p-2.5 text-left border-primary ring-2 ring-primary/30"; readonly wizardResults: "grid gap-2.5"; readonly wizardEmpty: "alert"; readonly wizardRoute: "grid gap-3"; readonly wizardRouteHeading: "flex flex-wrap items-center gap-2"; readonly providerGrid: "grid grid-cols-1 @md:grid-cols-2 gap-2"; readonly providerCard: "card card-border bg-base-100 p-3 grid gap-2 items-center grid-cols-[minmax(0,1fr)_auto] @md:grid-cols-[minmax(0,1fr)_auto_auto] @md:gap-x-2 @md:gap-y-1"; readonly providerHeading: "flex gap-2 items-center min-w-0"; readonly providerIcon: "rounded size-7 shrink-0"; readonly providerName: "font-semibold truncate m-0 min-w-0"; readonly providerKind: "text-base-content/60 text-sm m-0 justify-self-end text-right"; readonly providerActions: "col-span-2 flex w-full @md:col-span-1 @md:w-auto @md:justify-self-end"; readonly providerOpen: "btn btn-outline btn-sm w-full @md:w-auto"; readonly swapActions: "grid gap-2.5 grid-cols-1 @md:grid-cols-3"; readonly swapAction: "grid gap-2"; readonly swapEstimate: "text-base-content/60 m-0 text-sm"; readonly swapWarning: "alert alert-warning text-sm"; readonly swapNetworkWarning: "alert alert-error alert-soft text-sm items-start gap-3"; /** * Same deposit heading on a rail whose address format pins both the chain and * the asset (`SwapDepositRisk` "pinned"): identical layout, no alarm colour * and no warning triangle. A red banner on every rail is read on none. */ readonly swapNetworkNotice: "alert alert-soft text-sm items-start gap-3"; readonly swapNetworkWarningIcon: "size-6 shrink-0 stroke-current"; readonly swapNetworkWarningContent: "grid gap-1 min-w-0 w-full"; readonly swapNetworkWarningTitle: "font-bold m-0"; readonly swapNetworkWarningBody: "m-0"; readonly swapNetworkWarningEmphasis: "font-bold underline"; readonly swapProgress: "text-base-content/60 m-0"; readonly swapInstruction: "m-0 text-base-content text-base font-bold text-center @md:text-left"; readonly swapStart: "btn btn-outline"; readonly swapPanel: "grid gap-3"; readonly swapDepositLayout: "grid gap-3 @md:grid-cols-[auto_minmax(0,1fr)] @md:gap-x-5 @md:items-start min-w-0"; readonly swapDepositSide: "grid gap-3 min-w-0 content-start"; readonly swapHeading: "flex flex-wrap gap-2 items-center justify-between"; /** * The heading on the three refund states. Same content as `swapHeading`, in * an alert: "Refund needed" is not a section title, it is the payer being * told their money did not go where they sent it for. */ readonly swapRefundHeading: "alert alert-error alert-soft items-start gap-3 text-left"; /** * The return callout, which sits ABOVE the refund form rather than under the * support details. It is the sentence that decides whether the payer can come * back at all, and a payer who has to leave for an address in another wallet * reads it before they go, not after they scroll past the form. */ readonly swapRefundReturn: "alert alert-warning alert-soft items-start gap-3 text-left"; readonly swapRefundReturnTitle: "font-bold m-0"; readonly swapRefundReturnBody: "m-0 font-semibold"; readonly swapHeadingTitle: "text-lg font-semibold"; readonly swapHeadingDetail: "text-base-content/60"; readonly swapQr: "block h-auto w-[min(208px,100%)]"; /** * The white card the code sits on. A QR is only scannable against white, and a * bare code floating on the panel background reads as an artifact of the page * rather than the thing to point a phone at. */ readonly swapQrFrame: "grid place-items-center justify-self-center rounded-box border border-base-content/15 bg-white p-3 @md:justify-self-start [&_svg]:block [&_svg]:h-auto [&_svg]:w-[min(208px,100%)]"; readonly swapDetails: "grid gap-2 m-0"; readonly swapDetailsDt: "text-base-content/60 text-xs font-bold uppercase"; readonly swapDetailsDd: "grid gap-2 grid-cols-[minmax(0,1fr)_auto] items-center m-0"; readonly swapDetailsCode: "min-w-0 break-all font-mono text-sm"; readonly swapDetailsInput: "input input-sm w-full min-w-0 font-mono text-sm outline-none! focus:outline-none! focus:outline-offset-0!"; readonly swapDetailsActions: "flex flex-wrap gap-2 justify-end"; readonly detailCopy: "btn btn-sm btn-square btn-ghost"; readonly swapDetailsLink: "btn btn-sm btn-outline"; readonly swapBreakdown: "grid gap-2 rounded-box border border-base-content/15 bg-base-100 px-3 py-2.5"; readonly swapBreakdownTitle: "m-0 text-base-content/60 text-xs font-bold uppercase"; readonly swapBreakdownRows: "grid grid-cols-[1fr_auto] gap-x-3 gap-y-1.5 items-baseline m-0"; readonly swapWaitingTitle: "flex items-baseline justify-between gap-3 min-w-0"; readonly swapCountdown: "shrink-0 text-base-content font-semibold tabular-nums"; readonly swapBack: "btn btn-sm btn-outline justify-self-start"; readonly swapSupport: "collapse collapse-arrow bg-base-200"; readonly swapSupportTitle: "collapse-title font-bold min-h-0 py-2"; readonly swapSupportContent: "collapse-content"; readonly transactionDetails: "collapse collapse-arrow bg-base-200"; readonly transactionDetailsTitle: "collapse-title font-bold min-h-0 py-2"; readonly transactionDetailsContent: "collapse-content"; readonly swapRefund: "grid gap-2 rounded-box border border-base-content/15 bg-base-100 px-3 py-2.5"; /** Section titles inside a card: the breakdown, the refund form, the keep-this note. */ readonly swapSectionTitle: "m-0 text-base-content/60 text-xs font-bold uppercase tracking-wide"; readonly swapRefundReason: "m-0 text-base-content/60 text-sm"; readonly swapRefundInstruction: "m-0 text-sm"; /** * What the provider says about the money — sent, expected, coming back — as a * quiet fact table. Not copy rows: nobody pastes "0.04 SOL" anywhere, and a * column of copy buttons on the worst screen in the flow reads as four more * things to do. */ readonly swapFacts: "grid gap-1.5 rounded-box border border-base-content/15 bg-base-100 px-3 py-2.5 m-0"; readonly swapFactsRow: "grid grid-cols-[minmax(0,1fr)_auto] items-baseline gap-3"; readonly swapFactsLabel: "text-base-content/60 text-sm m-0"; readonly swapFactsValue: "text-sm m-0 tabular-nums"; /** * The way back into this payment, on every screen and not only the refund * one. A payer with no account has nothing else that reaches this page again, * and the moment to copy it is BEFORE the deposit goes wrong. */ readonly keepOrder: "grid gap-1.5 rounded-box border border-base-content/15 bg-base-100 px-3 py-2.5"; readonly keepOrderBody: "m-0 text-base-content/60 text-sm"; readonly swapRefundInput: "input input-bordered w-full"; readonly swapRefundInputInvalid: "input input-bordered input-error w-full"; readonly swapRefundError: "m-0 text-error text-sm"; readonly swapRefundHint: "m-0 text-warning text-sm"; readonly tutorialModal: "modal modal-open"; readonly tutorialBox: "modal-box grid gap-3 max-w-[min(440px,100%)]"; readonly tutorialHeader: "flex gap-2 items-center justify-between"; readonly tutorialTitle: "flex items-center gap-2.5 min-w-0"; readonly tutorialHeaderLogo: "size-9 rounded shrink-0"; readonly tutorialClose: "btn btn-sm btn-square btn-ghost"; readonly tutorialFrame: "flex items-center justify-center min-h-0 overflow-hidden rounded-box border border-base-content/20 bg-base-200"; readonly tutorialImage: "block w-auto max-w-full h-auto max-h-[min(66vh,720px)] object-contain"; /** The step directive ("Tap Withdraw"): a callout in the Bitcoin accent so it reads as the instruction, not a label. */ readonly tutorialCaption: "m-0 rounded-box border border-warning/40 bg-warning/10 px-4 py-2.5 text-lg font-bold text-center"; readonly tutorialIntro: "grid gap-3 p-4 text-center"; readonly tutorialProviderLogo: "justify-self-center size-[52px] rounded"; readonly tutorialCopy: "btn btn-outline justify-self-center min-w-[min(240px,100%)]"; readonly tutorialCopyMessage: "text-success font-bold"; readonly tutorialProgress: "m-0 text-base-content/60 text-xs text-center"; readonly tutorialSteps: "flex gap-1.5 justify-center"; readonly tutorialStep: "badge badge-xs badge-ghost size-2 p-0"; readonly tutorialStepActive: "badge badge-xs badge-neutral size-2 p-0"; readonly tutorialControls: "grid grid-cols-2 gap-2"; }; declare const checkoutLabels: { readonly copyInvoice: "Copy invoice"; readonly copied: "Copied!"; readonly openWallet: "Open Wallet"; readonly bitcoinLightningInvoice: "Bitcoin Lightning invoice"; readonly paymentStatus: { readonly waitingTitle: "Waiting for payment"; readonly waitingDetail: "Keep this page open while we verify settlement."; readonly settledTitle: "Payment received"; readonly settledDetail: "Backend settlement verified."; readonly expiredTitle: "Invoice expired"; readonly expiredDetail: "Create a fresh invoice to keep going."; }; readonly countdownPrefix: "Invoice expires in"; readonly startOver: "Start over"; readonly wizardTitle: "Pay this invoice"; readonly wizardSubtitle: "Choose how you want to pay."; readonly paymentMethod: "Payment method"; /** Breadcrumb back-link once a method (or swap) is already selected. */ readonly switchPaymentMethod: "Switch payment method"; readonly loadingCurrencies: "Loading currencies..."; readonly emptyBitcoin: "Choose Bitcoin Lightning."; readonly openProvider: "How To Pay"; readonly tutorialTitlePrefix: "Pay a Lightning invoice with"; readonly tutorialIntroPrefix: "It's easy to make this payment using"; readonly tutorialIntroCopy: "The first step is to copy the invoice to your clipboard."; readonly tutorialCopiedContinue: "Copied! Click next below to continue with tutorial."; readonly tutorialExit: "Exit"; readonly lightningNetwork: "Lightning Network"; readonly chooseNetwork: "Choose network"; readonly selectNetwork: "Select network"; readonly continue: "Continue"; readonly preparingPayment: "Preparing payment"; readonly networkSummary: "{asset} will be sent on {network}."; readonly chooseAssetNetwork: "Choose {asset} network"; readonly selectNetworkToContinue: "Select a network to continue"; readonly transactionDetails: "Transaction details"; readonly viewOnExplorer: "Explorer"; readonly decodeInvoice: "Decode"; /** * Deposit heading for a rail whose address does NOT pin the chain, or whose * asset is a token an exchange will happily withdraw on the wrong one — the * two ways a deposit is actually lost. See `SwapDepositRisk`. */ readonly wrongCurrencyOrNetworkTitle: "Wrong currency or network = lost funds"; /** * Deposit heading for a rail whose address format pins both the chain and the * asset (SOL on Solana). Deliberately quiet: an alarm shown on every rail is * read on none, and the rails where it is load-bearing — USDT on four * networks, ETH on six — are the ones that pay for the erosion. */ readonly sendExactAmountTitle: "Send the exact amount"; readonly swapStartFailedTitle: "Could not prepare the payment address"; readonly tryAgain: "Try again"; readonly payWithLightningInstead: "Pay with Lightning instead"; readonly supportReviewNeeded: "This payment needs support review."; readonly supportReviewFacts: "Contact the shop with the payment details below — they identify this deposit."; readonly preparingPaymentAddress: "Preparing payment address"; readonly preparingPaymentAddressDetail: "Getting your {asset} payment address…"; readonly createPaymentAddress: "Create {asset} ({network}) payment address"; readonly paymentBreakdown: "Payment breakdown"; readonly cartTotal: "Cart total"; readonly youSend: "You send"; readonly swapAndNetworkFees: "Swap + network fees"; readonly refundAddressPlaceholder: "{network} refund address"; readonly reviewRefundAddress: "Review refund address"; readonly confirmRefund: "Confirm refund"; readonly confirmRefundTo: "Confirm refund to {address}."; readonly submitting: "Submitting..."; readonly tutorialBack: "Back"; readonly tutorialNext: "Next"; readonly tutorialClose: "Close"; /** * The deposit panel's copy rows. Every value the payer has to REPRODUCE gets a * labelled row with a copy button — the amount included, because on token * rails the QR carries no amount and the payer types it by hand. */ readonly swapCopyAddress: "Address"; readonly swapCopyMemo: "Memo"; readonly swapCopyAmount: "Amount"; /** Out-of-range swap asset: both renderers build this panel from one model. */ readonly swapUnavailableTitle: "{asset} unavailable"; readonly swapUnavailableFallback: "{asset} is not available for this amount."; readonly swapUnavailableMinimumOnly: "Minimum {minimum} {asset}."; readonly swapUnavailableRange: "Accepted range: {minimum}–{maximum} {asset}."; readonly swapUnavailableHint: "Choose another asset above, or pay the Lightning invoice at the top of this page."; /** * One-sentence form of the same limit, for a grid that DISABLES a tile rather * than navigating to the four-part pane above — a tooltip or caption has room * for a sentence and nowhere to put a title, a detail, a range and a hint. * Built by `swapOptionLimitSentence`, from the same figures as * `swapOptionLimitMessage`, so the tile and the pane can never quote * different numbers. */ readonly swapCartMinimumSentence: "To pay with {asset}, your cart total must be at least {amount}."; readonly swapCartMaximumSentence: "To pay with {asset}, your cart total must be at most {amount}."; /** Same sentence when the provider only reported PAY-side limits. */ readonly swapPayMinimumSentence: "To pay with {asset}, the minimum is {amount} {asset}."; readonly swapPayMaximumSentence: "To pay with {asset}, the maximum is {amount} {asset}."; /** * Shown on the refund screen so the payer can return after closing the tab — * and TRUE ONLY IF THIS CHECKOUT HAS A URL TO RETURN TO. Both are reached * through {@link SwapDisplayModel.refundReturnLabel}, which picks between * them from what the host declared; neither should be rendered directly. */ /** Heading over the return callout on the refund screens. */ readonly refundReturnTitle: "Save this before you go"; /** Label on the copy row beside the return warning, when there is a URL. */ readonly refundReturnUrlLabel: "This page"; readonly refundReturnWarning: "Bookmark this page, or copy its URL. You need it to return to this refund screen."; /** * The same screen when the checkout is NOT resumable — no synced URL, no * per-order route. Telling that payer to bookmark the page would send them * back to an empty checkout with their deposit unreachable, so it says the * true thing instead. */ readonly refundNoReturnWarning: string; /** * The same "how you get back here" fact, BEFORE anything has gone wrong. * * A payer has no account and gets no email from us: the reference and its URL * are the only things that reach this payment again, and the moment to copy * them is while the deposit is still in flight — not after a short send has * put a refund form on the screen. Rendered only on a checkout the host * declared resumable, for the same reason `refundReturnWarning` is: telling a * payer to keep a link that goes nowhere is worse than saying nothing. */ readonly keepOrderTitle: "Keep this order id"; readonly keepOrderBody: "It is the way back to this payment. The link is already in your address bar."; readonly keepOrderIdLabel: "Order id"; readonly keepOrderUrlLabel: "Checkout link"; /** The refund form's own heading, and the two lines above its input. */ readonly refundSectionTitle: "Refund this deposit"; readonly refundReasonLabel: "Reason: {reason}"; readonly refundAddressOwnership: "Use a {network} address you control. Do not paste the deposit address."; }; declare const checkoutElementStyles = ":host{display:block}/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--leading-tight:1.25;--leading-snug:1.375;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:where(:root),:root:has(input.theme-controller[value=light]:checked),[data-theme=light],:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(95% 0 0);--color-base-content:oklch(21% .006 285.885);--color-primary:oklch(45% .24 277.023);--color-primary-content:oklch(93% .034 272.788);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=dark]:checked),[data-theme=dark]{color-scheme:dark;--color-base-100:oklch(25.33% .016 252.42);--color-base-200:oklch(23.26% .014 253.1);--color-base-300:oklch(21.15% .012 254.09);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}@property --radialprogress{syntax:\"\";inherits:true;initial-value:0%}@property --aura-angle{syntax:\"\";inherits:false;initial-value:0deg}:root{scrollbar-color:currentColor #0000}@supports (color:color-mix(in lab, red, red)){:root{scrollbar-color:color-mix(in oklch, currentColor 35%, #0000) #0000}}:root{--fx-noise:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.34' numOctaves='4' stitchTiles='stitch'%3E%3C/feTurbulence%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23a)' opacity='0.2'%3E%3C/rect%3E%3C/svg%3E\");--page-scroll-lock:initial;--page-overflow:var(--page-scroll-lock) hidden}:root:not(span){overflow:var(--page-overflow)}:root{--page-has-backdrop:var(--page-scroll-lock) 1;--page-scroll-bg:var(--page-scroll-lock) var(--root-bg,#0000)}@supports (color:color-mix(in lab, red, red)){:root{--page-scroll-bg:var(--page-scroll-lock) color-mix(in srgb, var(--root-bg,#0000), oklch(0% 0 0) calc(var(--page-has-backdrop,0) * 40%))}}:root{background-image:var(--page-scroll-lock) linear-gradient(var(--root-bg,#0000), var(--root-bg,#0000));transition:var(--page-scroll-lock) background-color .3s ease-out;animation:var(--page-scroll-lock) set-page-has-scroll forwards;animation-timeline:var(--page-scroll-lock) scroll();--page-has-scroll:initial;scrollbar-gutter:var(--page-has-scroll) var(--page-scroll-lock) stable}@keyframes set-page-has-scroll{0%,to{--page-has-scroll: }}:root,[data-theme]{background-color:var(--root-bg);color:var(--color-base-content)}:root{background-color:var(--page-scroll-bg,var(--root-bg))}:where(:root,[data-theme]){--root-bg:var(--color-base-100)}}@layer components;@layer utilities{.\\@container\\/methods{container:methods/inline-size}.\\@container\\/openreceive{container:openreceive/inline-size}.\\@container{container-type:inline-size}@layer daisyui.l1.l2.l3{.modal{pointer-events:none;visibility:hidden;width:100%;max-width:none;height:100%;max-height:none;color:inherit;transition:overlay .3s allow-discrete, visibility .3s allow-discrete, background-color .3s ease-out, opacity .1s ease-out;overscroll-behavior:contain;z-index:999;scrollbar-gutter:auto;background-color:#0000;place-items:center;margin:0;padding:0;display:grid;position:fixed;inset:0;overflow:clip}.modal::backdrop{display:none}.modal[popover]{color:inherit;background:0 0;border:0;max-width:none;max-height:none;margin:0;padding:0;inset:0}.modal[popover]::backdrop{background-color:oklch(0% 0 0/.4);transition:background-color .3s ease-out}.tooltip{--tt-bg:var(--color-neutral);--tt-off:calc(100% + .5rem);--tt-tail:calc(100% + 1px + .25rem);--tt-tail-off:.5rem;display:inline-block;position:relative}.tooltip>.tooltip-content,.tooltip[data-tip]:before{border-radius:var(--radius-field);text-align:center;white-space:normal;max-width:20rem;color:var(--color-neutral-content);opacity:0;background-color:var(--tt-bg);pointer-events:none;z-index:2;--tw-content:attr(data-tip);content:var(--tw-content);width:max-content;padding-block:.25rem;padding-inline:.5rem;font-size:.875rem;line-height:1.25;position:absolute}.tooltip:after{opacity:0;background-color:var(--tt-bg);content:\"\";pointer-events:none;--mask-tooltip:url(\"data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A\");width:.625rem;height:.25rem;-webkit-mask-position:-1px 0;mask-position:-1px 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:var(--mask-tooltip);-webkit-mask-image:var(--mask-tooltip);mask-image:var(--mask-tooltip);display:block;position:absolute}@media (prefers-reduced-motion:no-preference){.tooltip>.tooltip-content,.tooltip[data-tip]:before,.tooltip:after{transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms}}:is(.tooltip:is([data-tip]:not([data-tip=\"\"]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=\"\"]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=\"\"]),:has(.tooltip-content:not(:empty))):has(:focus-visible))>.tooltip-content,:is(.tooltip:is([data-tip]:not([data-tip=\"\"]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=\"\"]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=\"\"]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before,:is(.tooltip:is([data-tip]:not([data-tip=\"\"]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=\"\"]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=\"\"]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after{opacity:1;--tt-pos:0rem}@media (prefers-reduced-motion:no-preference){:is(.tooltip:is([data-tip]:not([data-tip=\"\"]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=\"\"]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=\"\"]),:has(.tooltip-content:not(:empty))):has(:focus-visible))>.tooltip-content,:is(.tooltip:is([data-tip]:not([data-tip=\"\"]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=\"\"]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=\"\"]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before,:is(.tooltip:is([data-tip]:not([data-tip=\"\"]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=\"\"]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=\"\"]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}.tab:is(.tabs>.tab){cursor:pointer;appearance:none;text-align:center;webkit-user-select:none;-webkit-user-select:none;user-select:none;flex-wrap:wrap;justify-content:center;align-items:center;display:inline-flex;position:relative}@media (hover:hover){.tab:is(.tabs>.tab):hover{color:var(--color-base-content)}}.tab:is(.tabs>.tab){--tab-p:.75rem;--tab-bg:var(--color-base-100);--tab-border-color:var(--color-base-300);--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:0;--tab-radius-ee:0;--tab-order:0;--tab-radius-min:calc(.75rem - var(--border));--tab-radius-limit:min(var(--radius-field), var(--tab-radius-min));--tab-radius-grad:#0000 calc(69% - var(--border)), var(--tab-border-color) calc(69% - var(--border) + .25px), var(--tab-border-color) 69%, var(--tab-bg) calc(69% + .25px);order:var(--tab-order);height:var(--tab-height);padding-inline:var(--tab-p);border-color:#0000;font-size:.875rem}.tab:is(.tabs>.tab):is(input[type=radio]){min-width:fit-content}.tab:is(.tabs>.tab):is(input[type=radio]):after{--tw-content:attr(aria-label);content:var(--tw-content)}.tab:is(.tabs>.tab):is(label){position:relative}.tab:is(.tabs>.tab):is(label) input{cursor:pointer;appearance:none;opacity:0;position:absolute;inset:0}:is(.tab:is(.tabs>.tab):checked,.tab:is(.tabs>.tab):is(label:has(:checked)),.tab:is(.tabs>.tab):is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content{display:block}.tab:is(.tabs>.tab):not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.tab:is(.tabs>.tab):not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:color-mix(in oklab, var(--color-base-content) 50%, transparent)}}.tab:is(.tabs>.tab):not(input):empty{cursor:default;flex-grow:1}.tab:is(.tabs>.tab):focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.tab:is(.tabs>.tab):focus{outline-offset:2px;outline:2px solid #0000}}.tab:is(.tabs>.tab):focus-visible,.tab:is(.tabs>.tab):is(label:has(:checked:focus-visible)){outline-offset:-5px;outline:2px solid}.tab:is(.tabs>.tab)[disabled]{pointer-events:none;opacity:.4}.menu{--menu-active-fg:var(--color-neutral-content);--menu-active-bg:var(--color-neutral);flex-flow:column wrap;width:fit-content;padding:.5rem;font-size:.875rem;display:flex}.menu :where(li ul,li menu){white-space:nowrap;margin-inline-start:1rem;padding-inline-start:.5rem;position:relative}.menu :where(li ul,li menu):before{background-color:var(--color-base-content);opacity:.1;width:var(--border);content:\"\";inset-inline-start:0;position:absolute;top:.75rem;bottom:.75rem}.menu :where(li>.menu-dropdown:not(.menu-dropdown-show)){display:none}.menu :where(li:not(.menu-title)>:not(ul,menu,details,.menu-title,.btn)),.menu :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);text-align:start;-webkit-user-select:none;user-select:none;grid-auto-columns:minmax(auto,max-content) auto max-content;grid-auto-flow:column;align-content:flex-start;align-items:center;gap:.5rem;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:grid}.menu :where(li>details>summary){--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li>details>summary){outline-offset:2px;outline:2px solid #0000}}.menu :where(li>details>summary)::-webkit-details-marker{display:none}:is(.menu :where(li>details>summary),.menu :where(li>.menu-dropdown-toggle)):after{content:\"\";transform-origin:50%;pointer-events:none;justify-self:flex-end;width:.375rem;height:.375rem;transition-property:rotate,translate;transition-duration:.2s;display:block;translate:0 -1px;rotate:-135deg;box-shadow:inset 2px 2px}.menu details{interpolate-size:allow-keywords;overflow:hidden}.menu details::details-content{block-size:0}@media (prefers-reduced-motion:no-preference){.menu details::details-content{transition-behavior:allow-discrete;transition-property:block-size,content-visibility;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}}.menu details[open]::details-content{block-size:auto}.menu :where(li>details[open]>summary):after,.menu :where(li>.menu-dropdown-toggle.menu-dropdown-show):after{translate:0 1px;rotate:45deg}.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{color:var(--color-base-content);--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){box-shadow:inset 0 1px oklch(0% 0 0/.01),inset 0 -1px oklch(100% 0 0/.01)}.menu :where(li:empty){background-color:var(--color-base-content);opacity:.1;height:1px;margin:.5rem 1rem}.menu :where(li){flex-flow:column wrap;flex-shrink:0;align-items:stretch;display:flex;position:relative}.menu :where(li) .badge{justify-self:flex-end}.menu :where(li)>:not(ul,menu,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,menu,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li)>:not(ul,menu,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,menu,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{outline-offset:2px;outline:2px solid #0000}}.menu :where(li)>:not(ul,menu,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,menu,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{color:var(--menu-active-fg);background-color:var(--menu-active-bg);background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise)}:is(.menu :where(li)>:not(ul,menu,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,menu,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):not(:is(.menu :where(li)>:not(ul,menu,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,menu,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):active){box-shadow:0 2px calc(var(--depth) * 3px) -2px var(--menu-active-bg)}.menu :where(li).menu-disabled,.menu :where(li) [disabled]{pointer-events:none;color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.menu :where(li).menu-disabled,.menu :where(li) [disabled]{color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.menu .dropdown:focus-within .menu-dropdown-toggle:after{translate:0 1px;rotate:45deg}.menu .dropdown-content{margin-top:.5rem;padding:.5rem}.menu .dropdown-content:before{display:none}.dropdown{position-area:var(--anchor-v,bottom) var(--anchor-h,span-right);display:inline-block;position:relative}.dropdown>:not(:has(~[class*=dropdown-content])):focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.dropdown>:not(:has(~[class*=dropdown-content])):focus{outline-offset:2px;outline:2px solid #0000}}.dropdown .dropdown-content{position:absolute}.dropdown.dropdown-close .dropdown-content,.dropdown:not(details,.dropdown-open,.dropdown-hover:hover,:focus-within) .dropdown-content,.dropdown.dropdown-hover:not(:hover) [tabindex]:first-child:focus:not(:focus-visible)~.dropdown-content{transform-origin:top;opacity:0;display:none;scale:.95}.dropdown[popover],.dropdown .dropdown-content{z-index:999}@media (prefers-reduced-motion:no-preference){.dropdown[popover],.dropdown .dropdown-content{transition-behavior:allow-discrete;transition-property:opacity,scale,display,overlay;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation:.2s dropdown}}@starting-style{.dropdown[popover],.dropdown .dropdown-content{opacity:0;scale:.95}}:is(.dropdown:not(.dropdown-close).dropdown-open,.dropdown:not(.dropdown-close):not(.dropdown-hover):focus,.dropdown:not(.dropdown-close):focus-within)>[tabindex]:first-child{pointer-events:none}:is(.dropdown:not(.dropdown-close).dropdown-open,.dropdown:not(.dropdown-close):not(.dropdown-hover):focus,.dropdown:not(.dropdown-close):focus-within) .dropdown-content,.dropdown:not(.dropdown-close).dropdown-hover:hover .dropdown-content{opacity:1;scale:1}.dropdown:is(details){overflow:revert-layer}.dropdown:is(details) summary::-webkit-details-marker{display:none}.dropdown:where([popover]){background:0 0}.dropdown[popover]{color:inherit;position:fixed}@supports not (position-area:bottom){.dropdown[popover]{margin:auto}.dropdown[popover].dropdown-close{transform-origin:top;opacity:0;display:none;scale:.95}.dropdown[popover].dropdown-open:not(:popover-open){transform-origin:top;opacity:0;display:none;scale:.95}.dropdown[popover]::backdrop{background-color:oklab(0% none none/.3)}}:is(.dropdown[popover].dropdown-close,.dropdown[popover]:not(.dropdown-open,:popover-open)){transform-origin:top;opacity:0;display:none;scale:.95}:where(.btn){width:unset}.btn{--size:calc(var(--size-field,.25rem) * 10);--btn-p:1rem;--btn-fg:var(--color-base-content);cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;webkit-user-select:none;-webkit-user-select:none;user-select:none;border-width:var(--border);touch-action:manipulation;--btn-bg:var(--btn-color,var(--color-base-200));--btn-border:var(--btn-color,var(--color-base-200));border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow,transform;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex}@supports (color:color-mix(in lab, red, red)){.btn{--btn-border:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 calc(var(--depth) * 5%))}}.btn{--btn-soft-bg:initial;--btn-shadow:0 3px 2px -2px var(--btn-bg), 0 4px 3px -2px var(--btn-bg)}@supports (color:color-mix(in lab, red, red)){.btn{--btn-shadow:0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000)}}.btn{--btn-inset:0 .5px 0 .5px oklch(100% 0 0 / calc(var(--depth) * 6%));height:var(--size);padding-inline:var(--btn-p);font-size:var(--fontsize,.875rem);background-color:var(--btn-bg);color:var(--btn-fg);border-color:var(--btn-border);border-style:var(--btn-border-style,solid);outline-color:var(--btn-color,var(--color-base-content));--tw-prose-links:var(--btn-fg);background-image:none, var(--fx-noise);background-size:auto, calc(var(--noise,0) * 100%);text-shadow:0 .5px oklch(100% 0 0 / calc(var(--depth) * .15));box-shadow:var(--btn-inset) inset, var(--btn-shadow)}.btn:is([type=checkbox],[type=radio]){appearance:none}.btn:is([type=checkbox],[type=radio])[aria-label]:after{--tw-content:attr(aria-label);content:var(--tw-content)}.loading{pointer-events:none;aspect-ratio:1;vertical-align:middle;width:calc(var(--size-selector,.25rem) * 6);background-color:currentColor;display:inline-block;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='8s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='8s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E\");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:100%;mask-size:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}@media (prefers-reduced-motion:no-preference){.loading{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E\")}}.countdown{display:inline-flex}.countdown>*{visibility:hidden;--value-v:calc(mod(max(0, var(--value)), 1000));--value-hundreds:calc(round(to-zero, var(--value-v) / 100, 1));--value-tens:calc(round(to-zero, mod(var(--value-v), 100) / 10, 1));--value-ones:calc(mod(var(--value-v), 100));--show-hundreds:clamp(clamp(0, var(--digits,1) - 2, 1), var(--value-hundreds), 1);--show-tens:clamp(clamp(0, var(--digits,1) - 1, 1), var(--value-tens) + var(--show-hundreds), 1);--first-digits:calc(round(to-zero, var(--value-v) / 10, 1));height:1em;width:calc(1ch + var(--show-tens) * 1ch + var(--show-hundreds) * 1ch);direction:ltr;transition:width .4s ease-out .2s;display:inline-block;position:relative;overflow-y:clip}.countdown>:before,.countdown>:after{visibility:visible;--tw-content:\"00\\a 01\\a 02\\a 03\\a 04\\a 05\\a 06\\a 07\\a 08\\a 09\\a 10\\a 11\\a 12\\a 13\\a 14\\a 15\\a 16\\a 17\\a 18\\a 19\\a 20\\a 21\\a 22\\a 23\\a 24\\a 25\\a 26\\a 27\\a 28\\a 29\\a 30\\a 31\\a 32\\a 33\\a 34\\a 35\\a 36\\a 37\\a 38\\a 39\\a 40\\a 41\\a 42\\a 43\\a 44\\a 45\\a 46\\a 47\\a 48\\a 49\\a 50\\a 51\\a 52\\a 53\\a 54\\a 55\\a 56\\a 57\\a 58\\a 59\\a 60\\a 61\\a 62\\a 63\\a 64\\a 65\\a 66\\a 67\\a 68\\a 69\\a 70\\a 71\\a 72\\a 73\\a 74\\a 75\\a 76\\a 77\\a 78\\a 79\\a 80\\a 81\\a 82\\a 83\\a 84\\a 85\\a 86\\a 87\\a 88\\a 89\\a 90\\a 91\\a 92\\a 93\\a 94\\a 95\\a 96\\a 97\\a 98\\a 99\\a \";content:var(--tw-content);font-variant-numeric:tabular-nums;white-space:pre;text-align:end;direction:rtl;transition:all 1s cubic-bezier(1,0,0,1),width .2s ease-out .2s,opacity .2s ease-out .2s;position:absolute;overflow-x:clip}.countdown>:before{width:calc(1ch + var(--show-hundreds) * 1ch);top:calc(var(--first-digits) * -1em);opacity:var(--show-tens);inset-inline-end:0}.countdown>:after{width:1ch;top:calc(var(--value-ones) * -1em);inset-inline-start:0}.collapse{border-radius:var(--radius-box,1rem);isolation:isolate;grid-template-rows:max-content 0fr;grid-template-columns:minmax(0,1fr);width:100%;display:grid;position:relative}@media (prefers-reduced-motion:no-preference){.collapse{transition:grid-template-rows .2s}}.collapse>input:is([type=checkbox],[type=radio]){appearance:none;opacity:0;z-index:1;grid-row-start:1;grid-column-start:1;width:100%;min-height:1lh;padding:1rem;padding-inline-end:3rem;transition:background-color .2s ease-out}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close)),.collapse:not(.collapse-close):has(>input:is([type=checkbox],[type=radio]):checked){grid-template-rows:max-content 1fr}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>.collapse-content,.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){--overflow-delay:.2s;overflow:revert-layer;content-visibility:visible;min-height:fit-content}@supports not (content-visibility:visible){.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>.collapse-content,.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){visibility:visible}}.collapse:focus-visible,.collapse:has(>input:is([type=checkbox],[type=radio]):focus-visible),.collapse:has(summary:focus-visible){outline-color:var(--color-base-content);outline-offset:2px;outline-width:2px;outline-style:solid}.collapse:not(.collapse-close)>input[type=checkbox],.collapse:not(.collapse-close)>input[type=radio]:not(:checked),.collapse:not(.collapse-close)>.collapse-title{cursor:pointer}:is(.collapse[tabindex]:focus:not(.collapse-close,.collapse[open]),.collapse[tabindex]:focus-within:not(.collapse-close,.collapse[open]))>.collapse-title{cursor:unset}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>:where(.collapse-content),.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){padding-bottom:1rem}.collapse:is(details){width:100%}.collapse:is(details)::details-content{--overflow-delay:0s;height:0;overflow:clip}.collapse:is(details):where([open])::details-content{overflow:revert-layer;height:auto}@media (prefers-reduced-motion:no-preference){.collapse:is(details)::details-content{transition:overflow .2s allow-discrete var(--overflow-delay), content-visibility .2s allow-discrete, visibility .2s allow-discrete, min-height .2s ease-out allow-discrete, padding .1s ease-out 20ms, background-color .2s ease-out, height .2s;interpolate-size:allow-keywords}.collapse:is(details):where([open])::details-content{--overflow-delay:.2s}}.collapse:is(details)>summary{outline:none;display:block;position:relative}.collapse:is(details)>summary::-webkit-details-marker{display:none}.collapse-content{--overflow-delay:0s;content-visibility:hidden;min-height:0;cursor:unset;grid-row-start:2;grid-column-start:1;padding-left:1rem;padding-right:1rem;overflow:clip}@supports not (content-visibility:hidden){.collapse-content{visibility:hidden}}@media (prefers-reduced-motion:no-preference){.collapse-content{transition:overflow .2s allow-discrete var(--overflow-delay), content-visibility .2s allow-discrete, visibility .2s allow-discrete, min-height .2s ease-out allow-discrete, padding .1s ease-out 20ms, background-color .2s ease-out}}details>.collapse-content{content-visibility:visible}.filter{flex-wrap:wrap;display:flex}.filter [type=radio]{width:auto}.filter input{opacity:1;transition:visibility .1s allow-discrete, margin .1s, opacity .3s, padding .3s, border-width .1s;overflow:hidden;scale:1}.filter input.filter-reset{aspect-ratio:1}.filter input.filter-reset:after{--tw-content:\"\u00D7\";content:var(--tw-content)}.filter>input:not(:last-child),.filter>:not(:last-child) input{margin-inline-end:.25rem}.list{flex-direction:column;font-size:.875rem;display:flex}.list .list-row{--list-grid-cols:minmax(0, auto) 1fr;border-radius:var(--radius-box);word-break:break-word;grid-auto-flow:column;grid-template-columns:var(--list-grid-cols);gap:1rem;padding:1rem;display:grid;position:relative}:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{content:\"\";border-bottom:var(--border) solid;inset-inline:var(--radius-box);border-color:var(--color-base-content);position:absolute;bottom:0}@supports (color:color-mix(in lab, red, red)){:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{border-color:color-mix(in oklab, var(--color-base-content) 5%, transparent)}}.toast{translate:var(--toast-x,0) var(--toast-y,0);inset-inline:auto 1rem;background-color:#0000;flex-direction:column;gap:.5rem;width:max-content;max-width:calc(100vw - 2rem);display:flex;position:fixed;top:auto;bottom:1rem}@media (prefers-reduced-motion:no-preference){.toast>*{animation:.25s ease-out toast}}.toggle{border:var(--border) solid currentColor;color:var(--input-color);cursor:pointer;appearance:none;vertical-align:middle;webkit-user-select:none;-webkit-user-select:none;user-select:none;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--toggle-p), var(--radius-selector-max)) + min(var(--border), var(--radius-selector-max)));padding:var(--toggle-p);flex-shrink:0;grid-template-columns:0fr 1fr 1fr;place-content:center;display:inline-grid;position:relative;box-shadow:inset 0 1px}@supports (color:color-mix(in lab, red, red)){.toggle{box-shadow:0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000) inset}}.toggle{--input-color:var(--color-base-content);transition:color .3s,grid-template-columns .2s}@supports (color:color-mix(in lab, red, red)){.toggle{--input-color:color-mix(in oklab, var(--color-base-content) 50%, #0000)}}.toggle{--toggle-p:calc(var(--size) * .125);--size:calc(var(--size-selector,.25rem) * 6);width:calc((var(--size) * 2) - (var(--border) + var(--toggle-p)) * 2);height:var(--size)}.toggle>*{z-index:1;cursor:pointer;appearance:none;background-color:#0000;border:none;grid-column:2/span 1;grid-row-start:1;height:100%;padding:.125rem;transition:opacity .2s,rotate .4s}.toggle>:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.toggle>:focus{outline-offset:2px;outline:2px solid #0000}}.toggle>:nth-child(2){color:var(--color-base-100);rotate:0deg}.toggle>:nth-child(3){color:var(--color-base-100);opacity:0;rotate:-15deg}.toggle:has(:checked)>:nth-child(2){opacity:0;rotate:15deg}.toggle:has(:checked)>:nth-child(3){opacity:1;rotate:0deg}.toggle:before{aspect-ratio:1;border-radius:var(--radius-selector);--tw-content:\"\";content:var(--tw-content);width:100%;height:100%;box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px currentColor;background-color:currentColor;grid-row-start:1;grid-column-start:2;transition:background-color .1s,translate .2s,inset-inline-start .2s;position:relative;inset-inline-start:0;translate:0}@supports (color:color-mix(in lab, red, red)){.toggle:before{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000)}}.toggle:before{background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise)}@media (forced-colors:active){.toggle:before{outline-style:var(--tw-outline-style);outline-offset:calc(1px * -1);outline-width:1px}}@media print{.toggle:before{outline-offset:-1rem;outline:.25rem solid}}.toggle:focus-visible,.toggle:has(:focus-visible){outline-offset:2px;outline:2px solid}.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked){background-color:var(--color-base-100);--input-color:var(--color-base-content);grid-template-columns:1fr 1fr 0fr}:is(.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked)):before{background-color:currentColor}@starting-style{:is(.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked)):before{opacity:0}}.toggle:indeterminate{grid-template-columns:.5fr 1fr .5fr}.toggle:disabled{cursor:not-allowed;opacity:.3}.toggle:disabled:before{border:var(--border) solid currentColor;background-color:#0000}.input{appearance:none;background-color:var(--color-base-100);vertical-align:middle;white-space:nowrap;--size:calc(var(--size-field,.25rem) * var(--in-size-mul));--input-color:var(--color-base-content);flex-shrink:1;align-items:center;gap:.5rem;padding-inline:.75rem;display:inline-flex;position:relative}@supports (color:color-mix(in lab, red, red)){.input{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.input{cursor:text;width:clamp(3rem,20rem,100%);height:var(--size);font-size:max(var(--font-size,0rem), var(--font-size-min));touch-action:manipulation;border:var(--border) solid var(--input-color,#0000);box-shadow:0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field))}@supports (color:color-mix(in lab, red, red)){.input{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}.input input{appearance:none;background-color:#0000;border:none;width:100%;height:100%}.input input::placeholder{color:var(--color-base-content);opacity:.5}.input input:focus,.input input:focus-within{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.input input:focus,.input input:focus-within{outline-offset:2px;outline:2px solid #0000}}.input input::-webkit-calendar-picker-indicator{inset-inline-end:-.15em}.input::-webkit-inner-spin-button{margin-inline-end:-10px}.input::-webkit-calendar-picker-indicator{inset-inline-end:.75em}input.input,.input input{display:inline-flex;position:relative}:is(input.input,.input input)[type=url],:is(input.input,.input input)[type=email]{text-align:left}:is(input.input,.input input)::-webkit-datetime-edit{min-height:100%;text-align:inherit;align-items:center;display:grid}:is(input.input,.input input)::-webkit-date-and-time-value{min-height:100%;text-align:inherit;align-items:center;display:grid}:is(input.input,.input input)::-webkit-inner-spin-button{margin-block:calc(.25rem * var(--spin-my))}:is(input.input,.input input)::-webkit-calendar-picker-indicator{cursor:pointer;width:1em;height:1em;position:absolute}:is(input.input,.input input)::-webkit-color-swatch-wrapper{padding-block:.25rem}.input:focus,.input:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab, red, red)){.input:focus,.input:focus-within{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)}}.input:focus,.input:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}@media (pointer:coarse){@supports (-webkit-touch-callout:none){.input:focus,.input:focus-within{--font-size:1rem}}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200)}:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input):is(input),:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input) :is(input){color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input):is(input),:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input) :is(input){color:color-mix(in oklab, var(--color-base-content) 40%, transparent)}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{box-shadow:none}:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input)::placeholder,:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input) ::placeholder{color:var(--color-base-content);opacity:.2}.input:has(>input[disabled])>input[disabled]{cursor:not-allowed}.range{appearance:none;webkit-appearance:none;--range-thumb:var(--color-base-100);--range-thumb-size:calc(var(--size-selector,.25rem) * 6);--range-progress:currentColor;--range-fill:1;--range-p:.25rem;--range-bg:currentColor}@supports (color:color-mix(in lab, red, red)){.range{--range-bg:color-mix(in oklab, currentColor 10%, #0000)}}.range{--range-fill-x:calc((var(--range-dir,1) * -100cqw) - (var(--range-dir,1) * var(--range-thumb-size) / 2));--range-fill-y:0;--range-fill-spread:calc(100cqw * var(--range-fill));cursor:pointer;vertical-align:middle;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max)));width:clamp(3rem,20rem,100%);height:var(--range-thumb-size);background-color:#0000;border:none;overflow:hidden}[dir=rtl] .range{--range-dir:-1}.range:focus{outline:none}.range:focus-visible{outline-offset:2px;outline:2px solid}.range::-webkit-slider-runnable-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size) * .5)}@media (forced-colors:active){.range::-webkit-slider-runnable-track{border:1px solid}.range::-moz-range-track{border:1px solid}}.range::-webkit-slider-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max)));background-color:var(--range-thumb);height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p) solid;appearance:none;webkit-appearance:none;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px currentColor, 0 0 0 2rem var(--range-thumb) inset, var(--range-fill-x) var(--range-fill-y) 0 var(--range-fill-spread);position:relative;inset-block-start:50%;transform:translateY(-50%)}@supports (color:color-mix(in lab, red, red)){.range::-webkit-slider-thumb{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000), 0 0 0 2rem var(--range-thumb) inset, var(--range-fill-x) var(--range-fill-y) 0 var(--range-fill-spread)}}.range::-moz-range-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size) * .5)}.range::-moz-range-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p) solid;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px currentColor, 0 0 0 2rem var(--range-thumb) inset, var(--range-fill-x) var(--range-fill-y) 0 var(--range-fill-spread);background-color:currentColor;position:relative}@supports (color:color-mix(in lab, red, red)){.range::-moz-range-thumb{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000), 0 0 0 2rem var(--range-thumb) inset, var(--range-fill-x) var(--range-fill-y) 0 var(--range-fill-spread)}}.range:disabled{cursor:not-allowed;opacity:.3}.table{border-collapse:separate;--tw-border-spacing-x:0;--tw-border-spacing-y:0;width:100%;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y);border-radius:var(--radius-box);text-align:left;font-size:.875rem;position:relative}.table:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right}@media (hover:hover){:is(.table tr.row-hover,.table tr.row-hover:nth-child(2n)):hover{background-color:var(--color-base-200)}}.table :where(th,td){vertical-align:middle;padding-block:.75rem;padding-inline:1rem}.table :where(thead,tfoot){white-space:nowrap;color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.table :where(thead,tfoot){color:color-mix(in oklab, var(--color-base-content) 60%, transparent)}}.table :where(thead,tfoot){font-size:.875rem;font-weight:600}.table :where(tfoot tr:first-child :is(td,th)){border-top:var(--border) solid var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.table :where(tfoot tr:first-child :is(td,th)){border-top:var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000)}}.table :where(.table-pin-rows thead tr){z-index:1;background-color:var(--color-base-100);position:sticky;top:0}.table :where(.table-pin-rows tfoot tr){z-index:1;background-color:var(--color-base-100);position:sticky;bottom:0}.table :where(.table-pin-cols tr th){background-color:var(--color-base-100);position:sticky;left:0;right:0}.table :where(thead tr :is(td,th),tbody tr:not(:last-child) :is(td,th)){border-bottom:var(--border) solid var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.table :where(thead tr :is(td,th),tbody tr:not(:last-child) :is(td,th)){border-bottom:var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000)}}.aura{--aura-padding:.125rem;padding:var(--aura-padding);border-radius:calc(var(--aura-padding) + var(--aura-radius,var(--radius-box)));animation:aura var(--tw-duration,6s) linear infinite;background-image:conic-gradient(from var(--aura-angle), transparent 225deg, currentColor);display:inline-block;position:relative}.aura:has(>.card,>.alert){--aura-radius:var(--radius-box)}.aura:has(>.btn,>.input,>.select){--aura-radius:var(--radius-field)}.aura:has(>.checkbox,>.toggle,>.badge){--aura-radius:var(--radius-selector)}.aura:before,.aura:after{animation:inherit;background-color:inherit;background-image:inherit;border-radius:inherit;z-index:0;opacity:.7;filter:blur(.25rem);content:\"\";width:100%;height:100%;display:block;position:absolute;top:50%;left:50%;translate:-50% -50%}.aura:after{opacity:.3;filter:blur(1rem)}.aura>*{z-index:1;position:relative}.steps{counter-reset:step;grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid;overflow:auto hidden}.steps .step{text-align:center;--step-bg:var(--color-base-300);--step-fg:var(--color-base-content);grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid}.steps .step:before{width:100%;height:.5rem;color:var(--step-bg);background-color:var(--step-bg);content:\"\";border:1px solid;grid-row-start:1;grid-column-start:1;margin-inline-start:-100%;top:0}.steps .step>.step-icon,.steps .step:not(:has(.step-icon)):after{--tw-content:counter(step);content:var(--tw-content);counter-increment:step;z-index:1;color:var(--step-fg);background-color:var(--step-bg);border:1px solid var(--step-bg);border-radius:3.40282e38px;grid-row-start:1;grid-column-start:1;place-self:center;place-items:center;width:2rem;height:2rem;display:grid;position:relative}.steps .step:first-child:before{--tw-content:none;content:var(--tw-content)}.steps .step[data-content]:after{--tw-content:attr(data-content);content:var(--tw-content)}.select{appearance:none;background-color:var(--color-base-100);vertical-align:middle;--size:calc(var(--size-field,.25rem) * var(--sl-size-mul));--input-color:var(--color-base-content);flex-shrink:1;align-items:center;gap:.375rem;padding-inline:.75rem 1.75rem;display:inline-flex;position:relative}@supports (color:color-mix(in lab, red, red)){.select{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.select{width:clamp(3rem,20rem,100%);height:var(--size);font-size:max(var(--font-size,0rem), var(--font-size-min));touch-action:manipulation;white-space:nowrap;text-overflow:ellipsis;border:var(--border) solid var(--input-color,#0000);box-shadow:0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 20px) calc(1px + 50%),calc(100% - 16.1px) calc(1px + 50%);background-repeat:no-repeat;background-size:4px 4px,4px 4px;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));overflow:hidden}@supports (color:color-mix(in lab, red, red)){.select{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}[dir=rtl] .select{background-position:12px calc(1px + 50%),16px calc(1px + 50%)}[dir=rtl] .select::picker(select){translate:.5rem}[dir=rtl] .select select::picker(select){translate:.5rem}.select[multiple]{background-image:none;height:auto;padding-block:.75rem;padding-inline-end:.75rem;overflow:auto}.select select{appearance:none;width:calc(100% + 2.75rem);height:calc(100% - calc(var(--border) * 2));background:inherit;border-radius:inherit;border-style:none;align-items:center;margin-inline:-.75rem -1.75rem;padding-inline:.75rem 1.75rem}.select select::placeholder{color:var(--color-base-content);opacity:.5}.select select:focus,.select select:focus-within{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.select select:focus,.select select:focus-within{outline-offset:2px;outline:2px solid #0000}}.select select:not(:last-child){background-image:none;margin-inline-end:-1.375rem}:is(.select:focus,.select:focus-within,.select:open){--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab, red, red)){:is(.select:focus,.select:focus-within,.select:open){box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)}}:is(.select:focus,.select:focus-within,.select:open){outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;background-image:linear-gradient(135deg,#0000 50%,currentColor 50%),linear-gradient(45deg,currentColor 50%,#0000 50%)}.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200)}:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select):is(select),:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select) :is(select){color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select):is(select),:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select) :is(select){color:color-mix(in oklab, var(--color-base-content) 40%, transparent)}}.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select{box-shadow:none}:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select)::placeholder,:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select) ::placeholder{color:var(--color-base-content);opacity:.2}.select:has(>select[disabled])>select[disabled]{cursor:not-allowed}@supports (appearance:base-select){:is(.select,.select select){appearance:base-select}:is(.select,.select select)::picker(select){appearance:base-select}}:is(.select,.select select)::picker(select){color:inherit;border:var(--border) solid var(--color-base-200);border-radius:var(--radius-box);background-color:inherit;max-height:min(24rem,70dvh);box-shadow:0 2px calc(var(--depth) * 3px) -2px oklch(0% 0 0/.2);box-shadow:0 20px 25px -5px rgb(0 0 0/calc(var(--depth) * .1)), 0 8px 10px -6px rgb(0 0 0/calc(var(--depth) * .1));margin-block:.5rem;margin-inline:.5rem;padding:.5rem;translate:-.5rem}:is(.select,.select select)::picker-icon{display:none}:is(.select,.select select) selectedcontent{text-overflow:ellipsis;white-space:nowrap;width:100%;overflow:hidden}:is(.select,.select select) optgroup{padding-top:.5em}:is(.select,.select select) optgroup option:first-child{margin-top:.5em}:is(.select,.select select) option{border-radius:var(--radius-field);padding-block:.375rem;padding-inline:calc(.25rem * var(--option-px));white-space:normal;transition-property:color,background-color;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{outline-offset:2px;outline:2px solid #0000}}:is(.select,.select select) option:not(:disabled):active{background-color:var(--color-neutral);color:var(--color-neutral-content);box-shadow:0 2px calc(var(--depth) * 3px) -2px var(--color-neutral)}.collapse-title{grid-row-start:1;grid-column-start:1;width:100%;min-height:1lh;padding:1rem;padding-inline-end:3rem;transition:background-color .2s ease-out;position:relative}.checkbox{border:var(--border) solid var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.checkbox{border:var(--border) solid var(--input-color,color-mix(in oklab, var(--color-base-content) 20%, #0000))}}.checkbox{cursor:pointer;appearance:none;border-radius:var(--radius-selector);vertical-align:middle;color:var(--color-base-content);box-shadow:0 1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 0 #0000 inset, 0 0 #0000;--size:calc(var(--size-selector,.25rem) * 6);width:var(--size);height:var(--size);background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise);flex-shrink:0;padding:.25rem;transition:background-color .2s,box-shadow .2s;display:inline-block;position:relative}.checkbox:before{--tw-content:\"\";content:var(--tw-content);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);width:100%;height:100%;box-shadow:0px 3px 0 0px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;background-color:currentColor;font-size:1rem;line-height:.75;transition:clip-path .3s .1s,opacity .1s .1s,rotate .3s .1s,translate .3s .1s;display:block;rotate:45deg}.checkbox:focus-visible{outline:2px solid var(--input-color,currentColor);outline-offset:2px}.checkbox:checked,.checkbox[aria-checked=true]{background-color:var(--input-color,#0000);box-shadow:0 0 #0000 inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * .1))}:is(.checkbox:checked,.checkbox[aria-checked=true]):before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1}@media (forced-colors:active){:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:\"\u2714\uFE0E\";clip-path:none;background-color:#0000;rotate:0deg}}@media print{:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:\"\u2714\uFE0E\";clip-path:none;background-color:#0000;rotate:0deg}}.checkbox:indeterminate{background-color:var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.checkbox:indeterminate{background-color:var(--input-color,color-mix(in oklab, var(--color-base-content) 20%, #0000))}}.checkbox:indeterminate:before{opacity:1;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,80% 80%,80% 100%);translate:0 -35%;rotate:0deg}.radio{cursor:pointer;appearance:none;vertical-align:middle;border:var(--border) solid var(--input-color,currentColor);border-radius:3.40282e38px;flex-shrink:0;padding:.25rem;display:inline-block;position:relative}@supports (color:color-mix(in lab, red, red)){.radio{border:var(--border) solid var(--input-color,color-mix(in srgb, currentColor 20%, #0000))}}.radio{box-shadow:0 1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset;--size:calc(var(--size-selector,.25rem) * 6);width:var(--size);height:var(--size);color:var(--input-color,currentColor)}.radio:before{--tw-content:\"\";content:var(--tw-content);background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise);border-radius:3.40282e38px;width:100%;height:100%;display:block}.radio:focus-visible{outline:2px solid}.radio:checked,.radio[aria-checked=true]{background-color:var(--color-base-100);border-color:currentColor}@media (prefers-reduced-motion:no-preference){.radio:checked,.radio[aria-checked=true]{animation:.2s ease-out radio}}:is(.radio:checked,.radio[aria-checked=true]):before{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * .1));background-color:currentColor}@media (forced-colors:active){:is(.radio:checked,.radio[aria-checked=true]):before{outline-style:var(--tw-outline-style);outline-offset:calc(1px * -1);outline-width:1px}}@media print{:is(.radio:checked,.radio[aria-checked=true]):before{outline-offset:-1rem;outline:.25rem solid}}.rating{vertical-align:middle;--size:var(--size-selector,.25rem) * 6;display:inline-flex;position:relative}.rating input{cursor:pointer;appearance:none}.rating *{background-color:var(--color-base-content);opacity:.2;width:calc(var(--size) * 1);height:calc(var(--size));border-radius:0}@media (prefers-reduced-motion:no-preference){.rating *{animation:.25s ease-out rating}}.rating .rating-hidden{background-color:#0000;width:.5rem}.rating :checked,.rating [aria-checked=true],.rating [aria-current=true],.rating :has(~:checked,~[aria-checked=true],~[aria-current=true]){opacity:1}.rating :focus-visible{scale:1.1}@media (prefers-reduced-motion:no-preference){.rating :focus-visible{transition:scale .2s ease-out}}.rating :active:focus{animation:none;scale:1.1}.card{border-radius:var(--radius-box);outline-offset:2px;outline:2px solid #0000;flex-direction:column;transition:outline .2s ease-in-out;display:flex;position:relative}.card:focus-visible,.card[aria-checked=true],.card:has(>:checked,>:is([type=checkbox],[type=radio]):focus-visible){outline-color:currentColor}.card:has(>:checked:focus-visible),.card[aria-checked=true]:focus-visible,.card[aria-checked=true]:has(>:is([type=checkbox],[type=radio]):focus-visible){outline-width:4px}.card:has(>:is([type=checkbox],[type=radio])){cursor:pointer;-webkit-user-select:none;user-select:none}.card>:is([type=checkbox],[type=radio]){appearance:none}.progress{appearance:none;border-radius:var(--radius-box);background-color:currentColor;width:100%;height:.5rem;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.progress{background-color:color-mix(in oklab, currentcolor 20%, transparent)}}.progress{color:var(--color-base-content)}.progress:indeterminate{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%}@media (prefers-reduced-motion:no-preference){.progress:indeterminate{animation:5s ease-in-out infinite progress}}@supports ((-moz-appearance:none)){.progress:indeterminate::-moz-progress-bar{background-color:#0000}@media (prefers-reduced-motion:no-preference){.progress:indeterminate::-moz-progress-bar{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress}}.progress::-moz-progress-bar{border-radius:var(--radius-box);background-color:currentColor}}@supports ((-webkit-appearance:none)){.progress::-webkit-progress-bar{border-radius:var(--radius-box);background-color:#0000}.progress::-webkit-progress-value{border-radius:var(--radius-box);background-color:currentColor}}.textarea{appearance:none;border-radius:var(--radius-field);background-color:var(--color-base-100);vertical-align:middle;--input-color:var(--color-base-content);flex-shrink:1;min-height:5rem;padding-block:.5rem;padding-inline:.75rem}@supports (color:color-mix(in lab, red, red)){.textarea{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.textarea{width:clamp(3rem,20rem,100%);font-size:max(var(--font-size,0rem), var(--font-size-min));touch-action:manipulation;border:var(--border) solid var(--input-color,#0000);box-shadow:0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}@supports (color:color-mix(in lab, red, red)){.textarea{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}.textarea textarea{appearance:none;background-color:#0000;border:none}.textarea textarea::placeholder{color:var(--color-base-content);opacity:.5}.textarea textarea:focus,.textarea textarea:focus-within{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.textarea textarea:focus,.textarea textarea:focus-within{outline-offset:2px;outline:2px solid #0000}}.textarea:focus,.textarea:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab, red, red)){.textarea:focus,.textarea:focus-within{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)}}.textarea:focus,.textarea:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}@media (pointer:coarse){@supports (-webkit-touch-callout:none){.textarea:focus,.textarea:focus-within{--font-size:1rem}}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){color:color-mix(in oklab, var(--color-base-content) 40%, transparent)}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){box-shadow:none}:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder,:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled])) ::placeholder{color:var(--color-base-content);opacity:.2}.textarea:has(>textarea[disabled])>textarea[disabled]{cursor:not-allowed}.stack{grid-template-rows:3px 4px 1fr 4px 3px;grid-template-columns:3px 4px 1fr 4px 3px;display:inline-grid}.stack>*{width:100%;height:100%}.stack>:nth-child(n+2){opacity:.7;width:100%}.stack>:nth-child(2){z-index:2;opacity:.9}.stack>:first-child{z-index:3;width:100%}.tab-content{order:var(--tabcontent-order);--tabcontent-radius-ss:var(--radius-box);--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box);--tabcontent-order:1;width:100%;height:calc(100% - var(--tab-height) + var(--border));margin:var(--tabcontent-margin);border-color:#0000;border-width:var(--border);border-start-start-radius:var(--tabcontent-radius-ss);border-start-end-radius:var(--tabcontent-radius-se);border-end-end-radius:var(--tabcontent-radius-ee);border-end-start-radius:var(--tabcontent-radius-es);display:none}.modal-box{background-color:var(--color-base-100);border-top-left-radius:var(--modal-tl,var(--radius-box));border-top-right-radius:var(--modal-tr,var(--radius-box));border-bottom-left-radius:var(--modal-bl,var(--radius-box));border-bottom-right-radius:var(--modal-br,var(--radius-box));opacity:0;overscroll-behavior:contain;grid-row-start:1;grid-column-start:1;width:91.6667%;max-width:32rem;max-height:100vh;padding:1.5rem;transition:translate .3s ease-out,scale .3s ease-out,opacity .2s ease-out 50ms,box-shadow .3s ease-out;overflow-y:auto;scale:.95;box-shadow:0 25px 50px -12px oklch(0% 0 0/.25)}.breadcrumbs{max-width:100%;padding-block:.5rem;overflow-x:auto}.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol{white-space:nowrap;align-items:center;min-height:min-content;display:flex}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li{align-items:center;display:flex}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>*{cursor:pointer;align-items:center;gap:.5rem;display:flex}@media (hover:hover){:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:hover{text-decoration-line:underline}}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:focus{outline-offset:2px;outline:2px solid #0000}}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:focus-visible{outline-offset:2px;outline:2px solid}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li+:before{content:\"\";opacity:.4;background-color:#0000;border-top:1px solid;border-right:1px solid;width:.375rem;height:.375rem;margin-inline:.5rem .75rem;display:block;rotate:45deg}[dir=rtl] :is(:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li)+:before{rotate:-135deg}.label{white-space:nowrap;color:currentColor;align-items:center;gap:.375rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.label{color:color-mix(in oklab, currentcolor 60%, transparent)}}.label:has(input){cursor:pointer}.label:is(.input>*,.select>*){white-space:nowrap;height:calc(100% - .5rem);font-size:inherit;align-items:center;padding-inline:.75rem;display:flex}.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border) solid currentColor;margin-inline:-.75rem .75rem}@supports (color:color-mix(in lab, red, red)){.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border) solid color-mix(in oklab, currentColor 10%, #0000)}}.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border) solid currentColor;margin-inline:.75rem -.75rem}@supports (color:color-mix(in lab, red, red)){.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border) solid color-mix(in oklab, currentColor 10%, #0000)}}.status{aspect-ratio:1;border-radius:var(--radius-selector);background-color:var(--color-base-content);width:.5rem;height:.5rem;display:inline-block}@supports (color:color-mix(in lab, red, red)){.status{background-color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.status{vertical-align:middle;color:#0000004d;background-position:50%;background-repeat:no-repeat}@supports (color:color-mix(in lab, red, red)){.status{color:color-mix(in oklab, var(--color-black) 30%, transparent)}}.status{background-image:radial-gradient(circle at 35% 30%, oklch(1 0 0 / calc(var(--depth) * .5)), #0000);box-shadow:0 2px 3px -1px}@supports (color:color-mix(in lab, red, red)){.status{box-shadow:0 2px 3px -1px color-mix(in oklab, currentColor calc(var(--depth) * 100%), #0000)}}.badge{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border) solid var(--badge-color,var(--color-base-200));background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem) * 6);width:fit-content;height:var(--size);padding-inline:calc(var(--size) / 2 - var(--border));justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.alert{--alert-border-color:var(--color-base-200);border-radius:var(--radius-box);color:var(--color-base-content);background-color:var(--alert-color,var(--color-base-200));text-align:start;background-size:auto, calc(var(--noise) * 33%);background-image:none, var(--fx-noise);box-shadow:0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * .08)) inset, 0 1px #000, 0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * .08));border-style:solid;grid-template-columns:auto;grid-auto-flow:column;justify-content:start;place-items:center start;gap:1rem;padding-block:.75rem;padding-inline:1rem;font-size:.875rem;line-height:1.25rem;display:grid}@supports (color:color-mix(in lab, red, red)){.alert{box-shadow:0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * .08)) inset, 0 1px color-mix(in oklab, color-mix(in oklab, #000 20%, var(--alert-color,var(--color-base-200))) calc(var(--depth) * 20%), #0000), 0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * .08))}}.alert:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}.skeleton{border-radius:var(--radius-box);background-color:var(--color-base-300)}@media (prefers-reduced-motion:reduce){.skeleton{transition-duration:15s}}.skeleton{will-change:background-position;background-image:linear-gradient(105deg, #0000 0% 40%, var(--color-base-100) 50%, #0000 60% 100%);background-position-x:-50%;background-size:200%}@media (prefers-reduced-motion:no-preference){.skeleton{animation:1.8s ease-in-out infinite skeleton}}.link{cursor:pointer;text-decoration-line:underline}.link:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.link:focus{outline-offset:2px;outline:2px solid #0000}}.link:focus-visible{outline-offset:2px;outline:2px solid}.btn-outline{--btn-bg:#0000;color:var(--btn-rest-fg,var(--btn-color,var(--color-base-content)));--btn-border:var(--btn-color,var(--color-base-content));--btn-border-style:solid;--btn-inset:0 0 0 0 oklch(0% 0 0/0);--btn-shadow:0 0 0 0 oklch(0% 0 0/0);background-image:none}.btn-soft{--btn-bg:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.btn-soft{--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-content)) 8%, var(--btn-soft-bg,var(--color-base-100)))}}.btn-soft{color:var(--btn-rest-fg,var(--btn-color,var(--color-base-content)));--btn-border:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.btn-soft{--btn-border:color-mix(in oklab, var(--btn-color,var(--color-base-content)) 10%, var(--btn-soft-bg,var(--color-base-100)))}}.btn-soft{--btn-border-style:solid;--btn-inset:0 0 0 0 oklch(0% 0 0/0);--btn-shadow:0 0 0 0 oklch(0% 0 0/0);background-image:none}.btn-ghost{--btn-bg:#0000;color:var(--btn-rest-fg,var(--btn-color,var(--color-base-content,currentColor)));--btn-border:#0000;--btn-inset:0 0 0 0 oklch(0% 0 0/0);--btn-shadow:0 0 0 0 oklch(0% 0 0/0);background-image:none}.menu-title{color:var(--color-base-content);padding-block:.5rem;padding-inline:.75rem}@supports (color:color-mix(in lab, red, red)){.menu-title{color:color-mix(in oklab, var(--color-base-content) 40%, transparent)}}.menu-title{font-size:.875rem;font-weight:600}}@layer daisyui.l1.l2{.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal{pointer-events:auto;visibility:visible;opacity:1;transition:visibility 0s allow-discrete, background-color .3s ease-out, opacity .1s ease-out;background-color:oklch(0% 0 0/.4)}.modal:popover-open{pointer-events:auto;visibility:visible;opacity:1;transition:visibility 0s allow-discrete, background-color .3s ease-out, opacity .1s ease-out;background-color:oklch(0% 0 0/.4)}.modal:popover-open .modal-box{opacity:1;translate:0;scale:1}:root:has(.modal:popover-open){--page-scroll-lock: }:is(.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal) .modal-box{opacity:1;translate:0;scale:1}:root:has(:is(.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal)){--page-scroll-lock: }@starting-style{.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal{opacity:0}.modal:popover-open{opacity:0}}.tooltip>.tooltip-content,.tooltip[data-tip]:before{transform:translateX(var(--tt-trans,-50%)) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off) 50%}.tooltip:after{transform:translateX(var(--tt-trans,-50%)) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail) 50%}.collapse-arrow>.collapse-title:after{width:.5rem;height:.5rem;display:block;position:absolute;transform:translateY(-100%)rotate(45deg)}@media (prefers-reduced-motion:no-preference){.collapse-arrow>.collapse-title:after{transition-property:all;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}}.collapse-arrow>.collapse-title:after{content:\"\";transform-origin:75% 75%;pointer-events:none;top:50%;inset-inline-end:1.4rem;box-shadow:2px 2px}@media (prefers-reduced-motion:no-preference){.collapse[open].collapse-arrow>.collapse-title:after,.collapse.collapse-open.collapse-arrow>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}.collapse.collapse-open.collapse-plus>.collapse-title:after{--tw-content:\"\u2212\";content:var(--tw-content)}:is(.collapse[tabindex].collapse-arrow:focus:not(.collapse-close),.collapse.collapse-arrow[tabindex]:focus-within:not(.collapse-close))>.collapse-title:after,.collapse.collapse-arrow:not(.collapse-close)>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{transform:translateY(-50%)rotate(225deg)}.collapse[open].collapse-plus>.collapse-title:after,.collapse[tabindex].collapse-plus:focus:not(.collapse-close)>.collapse-title:after,.collapse.collapse-plus:not(.collapse-close)>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{--tw-content:\"\u2212\";content:var(--tw-content)}.list .list-row:has(.list-col-grow:first-child){--list-grid-cols:1fr}.list .list-row:has(.list-col-grow:nth-child(2)){--list-grid-cols:minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(3)){--list-grid-cols:minmax(0, auto) minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(4)){--list-grid-cols:minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(5)){--list-grid-cols:minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(6)){--list-grid-cols:minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr}.list .list-row>*{grid-row-start:1}.input{--in-size-mul:10;--font-size-min:.875rem;--spin-my:-3}.floating-label:has(.input){--top-mul:5;--font-size:.875rem}.steps .step-neutral+.step-neutral:before,.steps .step-neutral:after,.steps .step-neutral>.step-icon{--step-bg:var(--color-neutral);--step-fg:var(--color-neutral-content)}.steps .step-primary+.step-primary:before,.steps .step-primary:after,.steps .step-primary>.step-icon{--step-bg:var(--color-primary);--step-fg:var(--color-primary-content)}.steps .step-secondary+.step-secondary:before,.steps .step-secondary:after,.steps .step-secondary>.step-icon{--step-bg:var(--color-secondary);--step-fg:var(--color-secondary-content)}.steps .step-accent+.step-accent:before,.steps .step-accent:after,.steps .step-accent>.step-icon{--step-bg:var(--color-accent);--step-fg:var(--color-accent-content)}.steps .step-info+.step-info:before,.steps .step-info:after,.steps .step-info>.step-icon{--step-bg:var(--color-info);--step-fg:var(--color-info-content)}.steps .step-success+.step-success:before,.steps .step-success:after,.steps .step-success>.step-icon{--step-bg:var(--color-success);--step-fg:var(--color-success-content)}.steps .step-warning+.step-warning:before,.steps .step-warning:after,.steps .step-warning>.step-icon{--step-bg:var(--color-warning);--step-fg:var(--color-warning-content)}.steps .step-error+.step-error:before,.steps .step-error:after,.steps .step-error>.step-icon{--step-bg:var(--color-error);--step-fg:var(--color-error-content)}.select{--sl-size-mul:10;--font-size-min:.875rem;--option-px:3}.floating-label:has(.select){--top-mul:5;--font-size:.875rem}.swap{cursor:pointer;vertical-align:middle;webkit-user-select:none;-webkit-user-select:none;user-select:none;place-content:center;display:inline-grid;position:relative}.swap input{appearance:none;border:none}.swap>*{grid-row-start:1;grid-column-start:1}@media (prefers-reduced-motion:no-preference){.swap>*{transition-property:transform,rotate,opacity;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}}.swap .swap-on,.swap .swap-indeterminate,.swap input:indeterminate~.swap-on,.swap input:is(:checked,:indeterminate)~.swap-off{opacity:0}.swap input:checked~.swap-on,.swap input:indeterminate~.swap-indeterminate{opacity:1;backface-visibility:visible}.checkbox:disabled,.radio:disabled{cursor:not-allowed;opacity:.2}.rating{--size:var(--size-selector,.25rem) * 6}.textarea{--font-size-min:.875rem}.floating-label:has(.textarea){--top-mul:5;--font-size:.875rem}:is(.stack,.stack.stack-bottom)>*{grid-area:3/3/6/4}:is(.stack,.stack.stack-bottom)>:nth-child(2){grid-area:2/2/5/5}:is(.stack,.stack.stack-bottom)>:first-child{grid-area:1/1/4/6}.stack.stack-top>*{grid-area:1/3/4/4}.stack.stack-top>:nth-child(2){grid-area:2/2/5/5}.stack.stack-top>:first-child{grid-area:3/1/6/6}.stack.stack-start>*{grid-area:3/1/4/4}.stack.stack-start>:nth-child(2){grid-area:2/2/5/5}.stack.stack-start>:first-child{grid-area:1/3/6/6}.stack.stack-end>*{grid-area:3/3/4/6}.stack.stack-end>:nth-child(2){grid-area:2/2/5/5}.stack.stack-end>:first-child{grid-area:1/1/6/4}.btn-square{width:var(--size);height:var(--size);padding-inline:0}.btn-block{width:100%}.loading-md{width:calc(var(--size-selector,.25rem) * 6)}.aura-glow{background-image:radial-gradient(closest-corner,currentColor 0%,#0000 90%);animation:none}.aura-glow:before{animation:aura-glow var(--tw-duration,6s) ease-out infinite}.aura-glow:after{animation:aura-glow-after var(--tw-duration,6s) ease-out infinite}.menu-sm :where(li:not(.menu-title)>:not(ul,menu,details,.menu-title)),.menu-sm :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.25rem;padding-inline:.625rem;font-size:.75rem}.menu-sm .menu-title{padding-block:.5rem;padding-inline:.75rem}.badge-ghost{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}.loading-spinner{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='8s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='8s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E\")}@media (prefers-reduced-motion:no-preference){.loading-spinner{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E\")}}.badge-sm{--size:calc(var(--size-selector,.25rem) * 5);font-size:.75rem}.badge-xs{--size:calc(var(--size-selector,.25rem) * 4);font-size:.625rem}.alert-error{color:var(--color-error-content);--alert-border-color:var(--color-error);--alert-color:var(--color-error)}.alert-info{color:var(--color-info-content);--alert-border-color:var(--color-info);--alert-color:var(--color-info)}.alert-warning{color:var(--color-warning-content);--alert-border-color:var(--color-warning);--alert-color:var(--color-warning)}.input-sm{--in-size-mul:8;--font-size-min:.75rem;--spin-my:-2}.floating-label:has(.input-sm){--top-mul:4;--font-size:.75rem}.select-sm{--sl-size-mul:8;--font-size-min:.75rem;--option-px:2.5}.floating-label:has(.select-sm){--top-mul:4;--font-size:.75rem}.btn-primary{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);--btn-soft-bg:initial}.btn-sm{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem) * 8)}.badge-neutral{--badge-color:var(--color-neutral);--badge-fg:var(--color-neutral-content)}.badge-success{--badge-color:var(--color-success);--badge-fg:var(--color-success-content)}.card-border{border:var(--border) solid var(--color-base-200)}.input-error,.input-error:focus,.input-error:focus-within{--input-color:var(--color-error)}}@layer daisyui.l1{.btn:where(:checked:not(.filter [type=radio].btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}@media (hover:hover){.btn:hover{--btn-bg:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab, red, red)){.btn:hover{--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)}}.btn:hover{color:var(--btn-fg);--btn-border:var(--btn-bg)}@supports (color:color-mix(in lab, red, red)){.btn:hover{--btn-border:color-mix(in oklab, var(--btn-bg), #000 calc(var(--depth) * 5%))}}.btn:hover{--btn-border-style:solid;--btn-inset:0 .5px 0 .5px oklch(100% 0 0 / calc(var(--depth) * 6%));--btn-shadow:0 3px 2px -2px var(--btn-bg), 0 4px 3px -2px var(--btn-bg)}@supports (color:color-mix(in lab, red, red)){.btn:hover{--btn-shadow:0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000)}}}.btn:active:not(.btn-active){--btn-bg:var(--btn-color,var(--color-base-200));translate:0 .5px}@supports (color:color-mix(in lab, red, red)){.btn:active:not(.btn-active){--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 5%)}}.btn:active:not(.btn-active){color:var(--btn-fg,var(--color-base-content));--btn-border:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab, red, red)){.btn:active:not(.btn-active){--btn-border:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)}}.btn:active:not(.btn-active){--btn-border-style:solid;--btn-inset:0 0 0 0 oklch(0% 0 0/0);--btn-shadow:0 0 0 0 oklch(0% 0 0/0)}.btn:where(:checked:not(.filter [type=radio].btn),:not([type=radio],[type=checkbox]):focus-visible){--btn-bg:var(--btn-color,var(--color-base-200));color:var(--btn-fg,var(--color-base-content));--btn-border:var(--btn-bg)}@supports (color:color-mix(in lab, red, red)){.btn:where(:checked:not(.filter [type=radio].btn),:not([type=radio],[type=checkbox]):focus-visible){--btn-border:color-mix(in oklab, var(--btn-bg), #000 calc(var(--depth) * 5%))}}.btn:where(:checked:not(.filter [type=radio].btn),:not([type=radio],[type=checkbox]):focus-visible){--btn-border-style:solid;--btn-inset:0 .5px 0 .5px oklch(100% 0 0 / calc(var(--depth) * 6%));--btn-shadow:0 3px 2px -2px var(--btn-bg), 0 4px 3px -2px var(--btn-bg)}@supports (color:color-mix(in lab, red, red)){.btn:where(:checked:not(.filter [type=radio].btn),:not([type=radio],[type=checkbox]):focus-visible){--btn-shadow:0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000)}}.btn:where(:checked:not(.filter [type=radio].btn),:not([type=radio],[type=checkbox]):focus-visible){isolation:isolate}.btn:focus-visible,.btn:has(:focus-visible){isolation:isolate;outline-width:2px;outline-style:solid}.filter:not(:has(:checked:not(.filter-reset))) :is(.filter-reset,[type=reset]):not(:focus-visible){visibility:hidden}.filter:not(:has(:checked:not(.filter-reset))) :is(.filter-reset,[type=reset]):not(:focus-visible),.filter:not(:has(:focus-visible)):has(:checked:not(.filter-reset,[type=checkbox])) :is(input,button):not(:checked,.filter-reset,[type=reset]){opacity:0;border-width:0;width:0;margin-inline:0;padding-inline:0;scale:0}.alert-soft{color:var(--alert-color,var(--color-base-content));background:var(--alert-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.alert-soft{background:color-mix(in oklab, var(--alert-color,var(--color-base-content)) 8%, var(--color-base-100))}}.alert-soft{--alert-border-color:var(--alert-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.alert-soft{--alert-border-color:color-mix(in oklab, var(--alert-color,var(--color-base-content)) 10%, var(--color-base-100))}}.alert-soft{box-shadow:none;background-image:none}}@layer daisyui{.btn:is(:disabled,[disabled],[aria-disabled=true]){pointer-events:none;color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn:is(:disabled,[disabled],[aria-disabled=true]){color:color-mix(in oklch, var(--color-base-content) 20%, #0000)}}.btn:is(:disabled,[disabled],[aria-disabled=true]){--btn-bg:#0000;--btn-border:#0000;--btn-inset:0 0 0 0 oklch(0% 0 0/0);--btn-shadow:0 0 0 0 oklch(0% 0 0/0);background-image:none}.btn:is(:disabled,[disabled],[aria-disabled=true]):not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn:is(:disabled,[disabled],[aria-disabled=true]):not(.btn-link,.btn-ghost){background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}}.pointer-events-none{pointer-events:none}.countdown.countdown{line-height:1em}.collapse:not(td,tr,colgroup){visibility:revert-layer}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@layer daisyui.l1.l2.l3.l4{.card figure:first-child{border-start-start-radius:inherit;border-start-end-radius:inherit;border-end-end-radius:unset;border-end-start-radius:unset;overflow:hidden}.card figure:last-child{border-start-start-radius:unset;border-start-end-radius:unset;border-end-end-radius:inherit;border-end-start-radius:inherit;overflow:hidden}.card figure{justify-content:center;align-items:center;display:flex}}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.join{--join-ss:0;--join-se:0;--join-es:0;--join-ee:0;--join-v:0;--join-h:1;align-items:stretch;display:inline-flex}@scope(.join){:scope>:where(:focus,:has(:focus)){z-index:1}@media (hover:hover){:scope>:where(.btn:hover,:has(.btn:hover)){isolation:isolate}}:scope :where(:scope>:first-child){--join-ss:var(--radius-field);--join-se:calc(var(--radius-field) * var(--join-v));--join-es:calc(var(--radius-field) * var(--join-h));--join-ee:0}:scope :where(:scope>:last-child){--join-ss:0;--join-se:calc(var(--radius-field) * var(--join-h));--join-es:calc(var(--radius-field) * var(--join-v));--join-ee:var(--radius-field)}:scope :where(:scope>:only-child){--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}.z-10{z-index:10}.col-span-2{grid-column:span 2/span 2}.col-span-full{grid-column:1/-1}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.mt-0{margin-top:0}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.alert{border-width:var(--border);border-color:var(--alert-border-color,var(--color-base-200))}:root .prose{--tw-prose-body:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:root .prose{--tw-prose-body:color-mix(in oklab, var(--color-base-content) 80%, #0000)}}:root .prose{--tw-prose-headings:var(--color-base-content);--tw-prose-lead:var(--color-base-content);--tw-prose-links:var(--color-base-content);--tw-prose-bold:var(--color-base-content);--tw-prose-counters:var(--color-base-content);--tw-prose-bullets:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:root .prose{--tw-prose-bullets:color-mix(in oklab, var(--color-base-content) 50%, #0000)}}:root .prose{--tw-prose-hr:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:root .prose{--tw-prose-hr:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}:root .prose{--tw-prose-quotes:var(--color-base-content);--tw-prose-quote-borders:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:root .prose{--tw-prose-quote-borders:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}:root .prose{--tw-prose-captions:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:root .prose{--tw-prose-captions:color-mix(in oklab, var(--color-base-content) 50%, #0000)}}:root .prose{--tw-prose-code:var(--color-base-content);--tw-prose-pre-code:var(--color-neutral-content);--tw-prose-pre-bg:var(--color-neutral);--tw-prose-th-borders:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:root .prose{--tw-prose-th-borders:color-mix(in oklab, var(--color-base-content) 50%, #0000)}}:root .prose{--tw-prose-td-borders:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:root .prose{--tw-prose-td-borders:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}:root .prose{--tw-prose-kbd:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:root .prose{--tw-prose-kbd:color-mix(in oklab, var(--color-base-content) 80%, #0000)}}:root .prose :where(code):not(pre>code){background-color:var(--color-base-200);border-radius:var(--radius-selector);border:var(--border) solid var(--color-base-300);font-weight:inherit;padding-block:.2em;padding-inline:.5em}:root .prose :where(code):not(pre>code):before,:root .prose :where(code):not(pre>code):after{display:none}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-\\[52px\\]{width:52px;height:52px}.h-11{height:calc(var(--spacing) * 11)}.h-auto{height:auto}.h-full{height:100%}.max-h-\\[min\\(66vh\\,720px\\)\\]{max-height:min(66vh,720px)}.min-h-0{min-height:0}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-28{min-height:calc(var(--spacing) * 28)}.min-h-\\[120px\\]{min-height:120px}.w-\\[min\\(148px\\,38cqw\\)\\]{width:min(148px,38cqw)}.w-\\[min\\(208px\\,100\\%\\)\\]{width:min(208px,100%)}.w-auto{width:auto}.w-full{width:100%}.max-w-\\[min\\(148px\\,38cqw\\)\\]{max-width:min(148px,38cqw)}.max-w-\\[min\\(440px\\,100\\%\\)\\]{max-width:min(440px,100%)}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-\\[min\\(240px\\,100\\%\\)\\]{min-width:min(240px,100%)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\\[1fr_auto\\]{grid-template-columns:1fr auto}.grid-cols-\\[auto_minmax\\(0\\,1fr\\)\\]{grid-template-columns:auto minmax(0,1fr)}.grid-cols-\\[minmax\\(0\\,1fr\\)_auto\\]{grid-template-columns:minmax(0,1fr) auto}.grid-cols-\\[repeat\\(auto-fit\\,minmax\\(min\\(100\\%\\,10rem\\)\\,1fr\\)\\)\\]{grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr))}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.content-start{align-content:flex-start}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.justify-items-start{justify-items:start}.gap-0{gap:0}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\\.5{row-gap:calc(var(--spacing) * 1.5)}.justify-self-center{justify-self:center}.justify-self-end{justify-self:flex-end}.justify-self-start{justify-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-box{border-radius:var(--radius-box);border-radius:var(--radius-box)}.rounded-field{border-radius:var(--radius-field);border-radius:var(--radius-field)}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-base-300{border-color:var(--color-base-300)}.border-base-content,.border-base-content\\/15{border-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.border-base-content\\/15{border-color:color-mix(in oklab, var(--color-base-content) 15%, transparent)}}.border-base-content\\/20{border-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.border-base-content\\/20{border-color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.border-base-content\\/25{border-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.border-base-content\\/25{border-color:color-mix(in oklab, var(--color-base-content) 25%, transparent)}}.border-base-content\\/30{border-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.border-base-content\\/30{border-color:color-mix(in oklab, var(--color-base-content) 30%, transparent)}}.border-info,.border-info\\/40{border-color:var(--color-info)}@supports (color:color-mix(in lab, red, red)){.border-info\\/40{border-color:color-mix(in oklab, var(--color-info) 40%, transparent)}}.border-primary{border-color:var(--color-primary)}.border-secondary{border-color:var(--color-secondary)}.border-success,.border-success\\/40{border-color:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.border-success\\/40{border-color:color-mix(in oklab, var(--color-success) 40%, transparent)}}.border-warning,.border-warning\\/40{border-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\\/40{border-color:color-mix(in oklab, var(--color-warning) 40%, transparent)}}.bg-base-100{background-color:var(--color-base-100)}.bg-base-200{background-color:var(--color-base-200)}.bg-info,.bg-info\\/10{background-color:var(--color-info)}@supports (color:color-mix(in lab, red, red)){.bg-info\\/10{background-color:color-mix(in oklab, var(--color-info) 10%, transparent)}}.bg-primary,.bg-primary\\/10{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\\/10{background-color:color-mix(in oklab, var(--color-primary) 10%, transparent)}}.bg-secondary,.bg-secondary\\/10{background-color:var(--color-secondary)}@supports (color:color-mix(in lab, red, red)){.bg-secondary\\/10{background-color:color-mix(in oklab, var(--color-secondary) 10%, transparent)}}.bg-success,.bg-success\\/10{background-color:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.bg-success\\/10{background-color:color-mix(in oklab, var(--color-success) 10%, transparent)}}.bg-warning,.bg-warning\\/10{background-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\\/10{background-color:color-mix(in oklab, var(--color-warning) 10%, transparent)}}.bg-white{background-color:var(--color-white)}.stroke-current{stroke:currentColor}.object-contain{object-fit:contain}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:var(--spacing)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-1{padding-block:var(--spacing)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[0\\.65rem\\]{font-size:.65rem}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.text-base-content,.text-base-content\\/55{color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.text-base-content\\/55{color:color-mix(in oklab, var(--color-base-content) 55%, transparent)}}.text-base-content\\/60{color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.text-base-content\\/60{color:color-mix(in oklab, var(--color-base-content) 60%, transparent)}}.text-base-content\\/65{color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.text-base-content\\/65{color:color-mix(in oklab, var(--color-base-content) 65%, transparent)}}.text-base-content\\/70{color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.text-base-content\\/70{color:color-mix(in oklab, var(--color-base-content) 70%, transparent)}}.text-error{color:var(--color-error)}.text-info-content{color:var(--color-info-content)}.text-success{color:var(--color-success)}.text-success-content{color:var(--color-success-content)}.text-warning{color:var(--color-warning)}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.prose :where(a.btn:not(.btn-link)):not(:where([class~=not-prose],[class~=not-prose] *)){text-decoration-line:none}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-info,.ring-info\\/50{--tw-ring-color:var(--color-info)}@supports (color:color-mix(in lab, red, red)){.ring-info\\/50{--tw-ring-color:color-mix(in oklab, var(--color-info) 50%, transparent)}}.ring-primary,.ring-primary\\/30{--tw-ring-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.ring-primary\\/30{--tw-ring-color:color-mix(in oklab, var(--color-primary) 30%, transparent)}}.ring-primary\\/50{--tw-ring-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.ring-primary\\/50{--tw-ring-color:color-mix(in oklab, var(--color-primary) 50%, transparent)}}.ring-secondary,.ring-secondary\\/50{--tw-ring-color:var(--color-secondary)}@supports (color:color-mix(in lab, red, red)){.ring-secondary\\/50{--tw-ring-color:color-mix(in oklab, var(--color-secondary) 50%, transparent)}}.ring-success,.ring-success\\/50{--tw-ring-color:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.ring-success\\/50{--tw-ring-color:color-mix(in oklab, var(--color-success) 50%, transparent)}}.ring-warning,.ring-warning\\/50{--tw-ring-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.ring-warning\\/50{--tw-ring-color:color-mix(in oklab, var(--color-warning) 50%, transparent)}}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\,opacity\\,margin\\]{transition-property:grid-template-rows,opacity,margin;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.outline-none\\!{--tw-outline-style:none!important;outline-style:none!important}.select-all{-webkit-user-select:all;user-select:all}@media (hover:hover){.hover\\:border-base-content\\/45:hover{border-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.hover\\:border-base-content\\/45:hover{border-color:color-mix(in oklab, var(--color-base-content) 45%, transparent)}}.hover\\:border-primary:hover{border-color:var(--color-primary)}.hover\\:bg-base-100:hover{background-color:var(--color-base-100)}}.focus\\:outline-offset-0\\!:focus{outline-offset:0px!important}.focus\\:outline-none\\!:focus{--tw-outline-style:none!important;outline-style:none!important}.focus-visible\\:outline:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\\:outline-primary:focus-visible{outline-color:var(--color-primary)}@media (prefers-reduced-motion:reduce){.motion-reduce\\:transition-none{transition-property:none}}@container methods not (min-width:18rem){.\\@max-\\[18rem\\]\\/methods\\:hidden{display:none}}@container methods (min-width:18rem){.\\@min-\\[18rem\\]\\/methods\\:hidden{display:none}.\\@min-\\[18rem\\]\\/methods\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@container openreceive (min-width:40rem){.\\@sm\\/openreceive\\:size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.\\@sm\\/openreceive\\:gap-3{gap:calc(var(--spacing) * 3)}}@container (min-width:40rem){.\\@sm\\:p-5{padding:calc(var(--spacing) * 5)}.\\@sm\\:px-5{padding-inline:calc(var(--spacing) * 5)}.\\@sm\\:py-4{padding-block:calc(var(--spacing) * 4)}}@container openreceive (min-width:40rem){.\\@sm\\/openreceive\\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}}@container (min-width:40rem){.\\@sm\\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@container (min-width:48rem){.\\@md\\:col-span-1{grid-column:span 1/span 1}.\\@md\\:w-\\[min\\(200px\\,36cqw\\)\\]{width:min(200px,36cqw)}.\\@md\\:w-auto{width:auto}.\\@md\\:max-w-\\[min\\(200px\\,36cqw\\)\\]{max-width:min(200px,36cqw)}}@container openreceive (min-width:48rem){.\\@md\\/openreceive\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@container (min-width:48rem){.\\@md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.\\@md\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.\\@md\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.\\@md\\:grid-cols-\\[auto_minmax\\(0\\,1fr\\)\\]{grid-template-columns:auto minmax(0,1fr)}.\\@md\\:grid-cols-\\[minmax\\(0\\,1fr\\)_auto_auto\\]{grid-template-columns:minmax(0,1fr) auto auto}.\\@md\\:items-start{align-items:flex-start}.\\@md\\:gap-x-2{column-gap:calc(var(--spacing) * 2)}.\\@md\\:gap-x-5{column-gap:calc(var(--spacing) * 5)}.\\@md\\:gap-y-1{row-gap:var(--spacing)}.\\@md\\:justify-self-end{justify-self:flex-end}.\\@md\\:justify-self-start{justify-self:flex-start}.\\@md\\:text-left{text-align:left}}@container openreceive (min-width:64rem){.\\@lg\\/openreceive\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.\\@lg\\/openreceive\\:grid-cols-\\[9rem_minmax\\(0\\,1fr\\)_minmax\\(8rem\\,auto\\)\\]{grid-template-columns:9rem minmax(0,1fr) minmax(8rem,auto)}.\\@lg\\/openreceive\\:items-start{align-items:flex-start}}.\\[\\&_svg\\]\\:block svg{display:block}.\\[\\&_svg\\]\\:h-auto svg{height:auto}.\\[\\&_svg\\]\\:w-\\[min\\(208px\\,100\\%\\)\\] svg{width:min(208px,100%)}.\\[\\&_svg\\]\\:w-full svg{width:100%}}:host{display:block}:host([hidden]){display:none}@keyframes dropdown{0%{opacity:0}}@keyframes rotator{89.9999%,to{--first-item-position:0 0%}90%,99.9999%{--first-item-position:0 calc(var(--items) * 100%)}to{translate:0 -100%}}@keyframes radio{0%{padding:5px}50%{padding:3px}}@keyframes toast{0%{opacity:0;scale:.9}to{opacity:1;scale:1}}@keyframes skeleton{0%{background-position:150%}to{background-position:-50%}}@keyframes progress{50%{background-position-x:-115%}}@keyframes rating{0%,40%{filter:brightness(1.05)contrast(1.05);scale:1.1}}@keyframes aura{to{--aura-angle:360deg;transform:translateZ(1px)}}@keyframes aura-glow{20%,80%{opacity:.7;filter:blur(.25rem)}50%{opacity:1;filter:blur(.75rem)}}@keyframes aura-glow-after{20%,80%{opacity:.3;filter:blur(1rem)}50%{opacity:.6;filter:blur(1.5rem)}}@keyframes menu{0%{opacity:0}}@property --tw-rotate-x{syntax:\"*\";inherits:false}@property --tw-rotate-y{syntax:\"*\";inherits:false}@property --tw-rotate-z{syntax:\"*\";inherits:false}@property --tw-skew-x{syntax:\"*\";inherits:false}@property --tw-skew-y{syntax:\"*\";inherits:false}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-ordinal{syntax:\"*\";inherits:false}@property --tw-slashed-zero{syntax:\"*\";inherits:false}@property --tw-numeric-figure{syntax:\"*\";inherits:false}@property --tw-numeric-spacing{syntax:\"*\";inherits:false}@property --tw-numeric-fraction{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}"; declare const paymentMethods: readonly PaymentMethodOption[]; declare function parseOptionalInteger(value: string | null | undefined, options?: ParseOpenReceiveOptionalIntegerOptions): number | undefined; declare function parseBooleanAttribute(value: string | null | undefined): boolean | undefined; declare function parseResolvedTheme(value: string | null | undefined): ResolvedTheme | undefined; declare function parseThemePreference(value: string | null | undefined): ThemePreference | undefined; declare function parsePaymentMethod(value: string | null): PaymentMethod | null; declare function createTransientFeedbackController(options: TransientFeedbackOptions): TransientFeedbackController; declare function createTickingValueController(options: TickingValueOptions): TickingValueController; /** * Which of the two ways a deposit is lost is reachable on this rail — the input * to how loud the deposit panel is. See {@link SwapDepositRisk} for the * vocabulary and why native-vs-token is NOT the axis. * * Derived, never tabulated. A hand-kept rail list goes stale the day a rail is * added, and it would go stale in the unsafe direction: a new rail would * inherit whatever the last edit happened to leave. The two questions are asked * of the pay-in code itself, so an unclassifiable one falls through to the full * alarm. * * 1. Does the address FORMAT pin the chain? Only for networks * `swapAddressNetworkForPayInAsset` can name a checksum rule for, minus ETH: * a `0x…` address is byte-identical on every EVM chain. An unrecognized * network answers no. * 2. Is the asset that chain's NATIVE coin? `SOL_SOL` yes, `USDT_TRON` no. * Compared against the normalized network so the `TRON`/`TRX` spelling split * cannot make native TRX look like a token. */ declare function swapDepositRisk(payInAsset: string): SwapDepositRisk; /** * @param options.now Unix timestamp in **seconds** ({@link UnixSeconds}); the * provider countdown is measured against it. Milliseconds (`Date.now()`) * throw rather than pinning every deposit window at zero. * @param options.resumable Whether this checkout has a URL the payer can come * BACK to — a synced history path, or the host's own per-order route. It * decides {@link SwapDisplayModel.refundReturnLabel} and nothing else; the * refund form itself stays available either way, because a payer who is on * the screen right now can still submit one. Defaults to `false`: a host that * has not said it is resumable is the host whose payer must not be told to * bookmark the page. */ declare function createSwapDisplayModel(invoice: CheckoutInvoiceSnapshot, options?: { readonly now?: UnixSeconds; readonly resumable?: boolean; }): SwapDisplayModel | undefined; /** * The current swap attempt as a renderer should read it: the polled snapshot's * copy when it has one, the locally started attempt when the snapshot has not * caught up, and the staged refund address folded over either. Both shipped * renderers used to keep a near-identical copy of this; a headless UI holding * its own snapshot store wants the same three rules. * * `dismissedInvoiceId` is the "back to Lightning" / "switch payment method" * exit: while it is set, NO attempt is current until a new start or a refund * clears it. The payer walked away from the swap they were looking at, and every * older attempt in the snapshot is one they walked away from before that. The * snapshot copy is the fallback only when nothing was dismissed (a resumed * attempt this session never started). Falling back to "the first other swap" * reopened the previous coin's deposit once an order had two attempts, and * every further click re-dismissed the same one, so the exit stopped working. */ declare function selectCurrentSwapInvoice(snapshot: CheckoutSnapshot | undefined, options?: { readonly started?: CheckoutInvoiceSnapshot | null; readonly dismissedInvoiceId?: string | null; }): CheckoutInvoiceSnapshot | undefined; declare function swapAssetMatchesRoute(routeKey: string, payInAsset: string | undefined): boolean; /** Deposit networks that have a public block explorer in OpenReceive UI. */ type ExplorerNetwork = "ETH" | "SOL" | "TRON"; /** * Resolve the chain network from a `pay_in_asset` like `USDT_ETH` / `SOL_SOL`. * Returns undefined for unknown or Lightning-only values. */ declare function getExplorerNetwork(payInAsset: string | undefined): ExplorerNetwork | undefined; /** * Public block-explorer URL for an on-chain address or transaction. * Lightning identifiers are intentionally unsupported — use * {@link createLightningInvoiceDecodeUrl} for bolt11. */ declare function createBlockExplorerUrl(options: { readonly payInAsset?: string; readonly network?: ExplorerNetwork | string; readonly kind: "address" | "tx"; readonly value: string; }): string | undefined; /** * Link to an external bolt11 decoder, as `{decodeLinkUrl}?invoice={bolt11}`. * Strips an optional `lightning:` URI prefix. * * Off unless the host names a decoder: a bolt11 carries the amount, payee and * description, and fetching it hands the payer's IP to that third party too, so * OpenReceive never picks one on the host's behalf. Omit `decodeLinkUrl` and no * link is rendered. */ declare function createLightningInvoiceDecodeUrl(invoice: string, decodeLinkUrl?: string): string | undefined; /** What a detail row's value IS, which decides the link it can carry. */ type DetailLinkKind = "invoice" | "address" | "tx"; /** * External link metadata for a swap/transaction detail row (explorer or decode). * * `kind` is explicit, never inferred from the row's display label: dispatching * on English strings meant renaming a label — or localizing one — silently * killed its explorer or decode link, with nothing to notice. */ declare function createDetailExternalLink(options: { readonly kind: DetailLinkKind; readonly value: string; readonly payInAsset?: string; /** Host-configured bolt11 decoder. Omitted, no decode link is offered. */ readonly decodeLinkUrl?: string; }): { readonly href: string; readonly hrefLabel: string; } | undefined; /** * Build display rows for settled checkout / swap state from public OpenReceive * fields only. Omits undefined values; never surfaces NWC or send-payment secrets. * * A `checkout_lock` rail returns NO rows. That rail is the deferred placeholder * a prepared checkout carries before the payer has chosen anything, so there is * no transaction to describe yet — and a host following "transaction details on * the live checkout AND on the receipt" would otherwise open a caret over a * record of nothing. An empty array is already every caller's "render nothing" * signal, so the rule enforces itself and no host has to learn the rail * vocabulary to obey it. */ declare function createTransactionDetails(input: TransactionDetailsInput): TransactionDetailRow[]; declare function createTransactionDetailsFromState(state: Pick): TransactionDetailRow[]; /** * Everything a transaction-details panel accepts: a live checkout state, the * flat detail input, pre-built rows, or nothing. * * React's `` and the elements HTML renderer used to declare * this union and its resolver separately, byte-identically. Only the RENDERING * legitimately differs between them (React.createElement vs an HTML string); * which rows a source yields is one rule and lives here. */ type TransactionDetailsSource = CheckoutState | TransactionDetailsInput | readonly TransactionDetailRow[] | null | undefined; declare function resolveTransactionDetailRows(source: TransactionDetailsSource): TransactionDetailRow[]; /** * Choose the invoice the checkout UI should treat as primary. * * Prefers the active payable invoice; otherwise a bolt11-bearing invoice (Lightning), * preferring one that has settled. After a swap settles alongside a Lightning invoice, * the newest entry is often the settled swap shadow (rail "swap", no public bolt11) — * fall back to the payable Lightning invoice for QR/copy display. * * When Lightning was never minted (deferred create + swap-only), return the swap invoice * so settlement still drives paid/`onSettled` UI even though bolt11 is omitted. * * `checkout_lock` rails are deferred placeholders and are skipped. Returns `undefined` * only when the checkout still has only a checkout_lock (or no invoices). */ declare function selectCheckoutDisplayInvoice(snapshot: CheckoutSnapshot): CheckoutInvoiceSnapshot | undefined; /** * True when the given Lightning invoice has more than {@link OPENRECEIVE_LIGHTNING_REUSE_BUFFER_SECONDS} * seconds remaining. Pass an optional `now` (Unix seconds) for deterministic tests; defaults to the * current clock. */ declare function isReusableLightningInvoice(expiresAt: number, now?: UnixSeconds): boolean; declare function createCheckoutState(snapshot: CheckoutSnapshot, options?: CreateCheckoutStateOptions): CheckoutState; /** * Wrap ONE payment attempt as a whole checkout snapshot. * * The custom element's source of truth is HTML attributes, not a wire payload: * declarative and SSR usage give it one attempt's fields and nothing else. This * is the only place that invents the surrounding checkout, and it stays * conservative — checkout_id and reference fall back to the invoice id, and the * checkout counts as paid exactly when the attempt does. * * It takes a {@link CheckoutInvoiceSnapshot}, the canonical sub-part, rather * than the flattened CheckoutDisplayData shape it used to: an attempt read off * attributes is still an attempt. */ declare function createCheckoutSnapshotFromInvoice(attempt: CheckoutInvoiceSnapshot, identity?: { readonly checkout_id?: string; readonly reference?: string; }): CheckoutSnapshot; /** * The payer-facing status line: a phase, finished copy, and a countdown. No * step number anywhere — progress in this checkout is a STATUS, not a position, * and backwards movement is a breadcrumb (`checkoutLabels.switchPaymentMethod`) * rather than a step back. Both shipped renderers print `title`/`detail` * verbatim; a custom UI should too. * * The returned `phase` is NOT the source's. A non-terminal phase whose * countdown has reached zero is reported as `expired`, so the screen turns over * the moment the clock does instead of waiting for the next poll to disagree — * which is why a caller must render the model's `phase` and never the * snapshot's. */ declare function createCheckoutStatusModel(source?: CheckoutState | CheckoutStatusModelInput, options?: { readonly now?: UnixSeconds; }): CheckoutStatusModel; /** * Fold a started attempt (swap deposit or minted bolt11) into a snapshot: the * attempt becomes the active invoice, its predecessor entry and any * checkout_lock placeholder drop out, and polling re-keys onto it. */ declare function mergeAttemptIntoSnapshot(invoice: CheckoutInvoiceSnapshot, base: CheckoutSnapshot): CheckoutSnapshot; /** * {@link mergeAttemptIntoSnapshot} with a minimal fallback snapshot * for hosts that started an attempt before any checkout snapshot existed. */ declare function mergeAttemptIntoCheckout(invoice: CheckoutInvoiceSnapshot, previous: CheckoutSnapshot | undefined, reference: string): CheckoutSnapshot; /** * The flat prop surface of an OpenReceive checkout component. Every framework * package derives its props from this — directly (React, Vue) or by declaring * the same names because its prop syntax cannot be generated from a type * (Svelte, Angular). Framework-only additions (React's component/class-name * slots, the element wrappers' `options` escape hatch) sit beside it. */ interface CheckoutComponentProps { /** Snapshot mode: render this checkout directly. */ readonly checkout?: CheckoutSnapshot; /** Create mode: the component creates the checkout for this reference, then renders and polls. */ readonly reference?: string; /** * Base path the shipped router is mounted at. Default `/openreceive`. The ONLY * URL input: create, prepare, payment-check and the four swap routes are all * derived from it (see `checkoutRoutes` in ./routes.ts). */ readonly prefix?: string; /** * Header name the page's `` value is sent under on * every request. Default `X-CSRF-Token`, which Rails and Laravel read; * Django's CsrfViewMiddleware reads `X-CSRFToken`, WordPress REST reads * `X-WP-Nonce`. The meta tag name is fixed — the host renders the token into * it — only the header name varies by framework. */ readonly csrfHeader?: string; readonly paymentWizard?: boolean; /** * Base URL of an external bolt11 decoder. Omitted (the default), no "Decode" link is * rendered and the invoice is never sent to a third party. */ readonly decodeLinkUrl?: string; /** Default true: the checkout owns `data-theme` and renders the package theme toggle. */ readonly themeToggle?: boolean; readonly defaultTheme?: ThemePreference; readonly storageKey?: string; /** Create mode only: metadata sent with the create request. */ readonly metadata?: Record; /** * Create mode only. Opt into History API URL sync to `{resumePathPrefix}/{reference}` * (default `/checkout/:id`). Off by default — many hosts own routing themselves — and * skipped when `routeReference` is set. This controls URL mutation only; order-resume * data remains a host concern. */ readonly syncUrl?: boolean; /** Create mode only. History API path prefix when `syncUrl` is set. Default `/checkout`. */ readonly resumePathPrefix?: string; /** * Create mode only. Order id from the app router (e.g. Next.js). When set, the component * does not push/replace the URL itself. */ readonly routeReference?: string; /** * Create mode only. The payment hash of a swap attempt this order already has * in flight, so the checkout REOPENS it instead of starting over. * * `/checkouts/prepare` returns no attempts, so a checkout rebuilt from a * reference alone opens on the payment-method grid — which is the wrong * screen for a payer who was told to bookmark a refund. Supply the hash your * application stored beside the order and the deposit (or its refund screen) * comes back exactly as they left it. A hash the server will not serve is * ignored: the payer lands on the method grid rather than an error. * * The HASH and not the asset, because `/swaps/status` selects one attempt * with no reuse test while re-selecting the asset re-serves the committed * attempt only until it expires. See docs/guides/swap-refunds.md. */ readonly resumePaymentHash?: string; /** Rail of the remembered attempt; defaults to swap for existing integrations. */ readonly resumePaymentRail?: "lightning" | "swap"; /** * Does a payer who closes this tab have a URL that brings them back to this * checkout? It decides ONE thing: which of the two refund-return warnings the * swap deposit panel shows (`SwapDisplayModel.refundReturnLabel`). Telling a * payer to bookmark a page that will not bring them back is how a swap * deposit becomes unreachable, so the safe copy is the default. * * Unset, it is inferred from `syncUrl` / `routeReference` — both of which put * the order in the URL. Set it explicitly when the host owns a per-order * route the component cannot see, which is most snapshot-mode apps. */ readonly resumable?: boolean; } /** Which props only do something in create mode (no `checkout` snapshot). */ declare const CREATE_MODE_ONLY_PROPS: readonly ["metadata", "syncUrl", "resumePathPrefix", "routeReference", "resumePaymentHash", "resumePaymentRail"]; type CreateModeOnlyProp = (typeof CREATE_MODE_ONLY_PROPS)[number]; /** * What the check reads: the two mode props plus the create-only ones, derived * from the list above so the names exist once. */ interface CheckoutPropsValidation extends Pick { readonly framework: string; /** `null` as well as `undefined`: Angular binds an absent snapshot input as null. */ readonly checkout?: CheckoutSnapshot | null; readonly warn?: (message: string) => void; } /** * Boundary check for the checkout components: without it the missing-mode failure surfaces * as a `TypeError` thrown from inside a computed/reactive statement (in Angular, on every * change-detection pass) rather than as one clear error where the props are read. */ declare function validateCheckoutProps(props: CheckoutPropsValidation): void; /** * The swap attempt the wizard is showing. It stays host state — the element's * breadcrumb, refund draft and deposit panel read it, and React's wizard keeps * it in `useState` — so the session reaches it through accessors instead of * owning a second copy that could disagree. */ interface SwapSelection { started(): CheckoutInvoiceSnapshot | undefined; setStarted(invoice: CheckoutInvoiceSnapshot): void; dismissedInvoiceId(): string | null; setDismissedInvoiceId(invoiceId: string | null): void; setSelectedAsset(payInAsset: string | null): void; } /** * Everything {@link CheckoutSession.startSwap} needs, as ONE option. * * These three used to be three optional fields beside each other * (`swapSelection`, `swapPrefix`, `fetch`), which let a host supply two of them * and get silence: `startSwap` returned at its first `undefined` without a * throw, an `onError` or a state change, so the payer clicked Continue and the * screen did not move. They are only ever useful as a set, so they are one * field now and the mistake is no longer representable — a host either drives * swaps or it does not. */ interface CheckoutSwapOptions { /** The swap attempt the wizard is showing, over the host's own state. */ selection: SwapSelection; /** * The mount prefix swap routes are derived from. May still answer * `undefined` — a standalone wizard has no prefix until its host has one — * and a start attempted before then is reported through `onError` rather * than swallowed. */ prefix(): string | undefined; /** Read at call time so a host that swaps `globalThis.fetch` is honoured. */ fetch(): typeof globalThis.fetch | undefined; /** * Header name the page's `` is sent under on the * quote and start calls. Read at call time like the two above; `undefined` * means the default, `X-CSRF-Token`. */ csrfHeader?(): string | undefined; /** * Publish a freshly started swap attempt. The two hosts fold it into their * snapshot differently (the element re-keys its poll controller onto the * merged snapshot; React hands the attempt to whichever component owns the * snapshot), so the merge stays on the host side of this callback. */ onStarted?(invoice: CheckoutInvoiceSnapshot): void; } interface CheckoutSessionOptions { /** * The snapshot the host is rendering right now, read at call time — the * element's changes under it on every poll. */ snapshot(): CheckoutSnapshot | undefined; /** The order being paid, read at call time (the element's is an attribute). */ reference(): string | undefined; /** Endpoint is part of checkout identity; trailing slashes are equivalent. */ prefix?(): string | undefined; /** * Mint a Lightning invoice for this reference (POST `${prefix}/checkouts`). * The host closes over its own prefix, metadata and fetch. Answer `undefined` * to say "this host cannot mint" — React's payment wizard is such a host: it * asks its parent for Lightning through `onRequestLightning` instead. */ requestCheckout?(reference: string, signal?: AbortSignal): Promise | undefined; /** Publish a snapshot that now carries the Lightning attempt. */ onSnapshot?(snapshot: CheckoutSnapshot): void; /** * Swap support, all of it or none of it. Omit for a Lightning-only host: * {@link CheckoutSession.startSwap} then reports through `onError` instead * of doing nothing. */ swap?: CheckoutSwapOptions; logger?: BrowserLoggerOption; /** The host's error surface: a DOM `openreceive:error` event, or `onError`. */ onError(error: unknown): void; /** Session state changed — re-render. */ onChange(): void; } interface CheckoutSession { /** Lightning mint failure, shown inline in the wizard by the element. */ readonly wizardError: string | undefined; /** Swap-start failure, shown inline in the deposit slot with a retry button. */ readonly swapStartError: string | undefined; /** Create mode: the Lightning QR is deferred until the payer asks for it. */ readonly lightningRequested: boolean; /** True while a mint is in flight — the guard, and the spinner. */ readonly mintingLightning: boolean; /** In-flight swap create; a second click must not mint a colliding attempt. */ readonly startingSwapAsset: string | null; /** * Quotes observed for each pay-in asset, keyed by `pay_in_asset`. An entry * with `available: false` is why `startSwap` stopped before starting, and * carries the accepted range the host renders in its unavailable panel. */ readonly swapQuotes: Readonly>; /** Invalidate every outstanding action when identity changes. */ syncIdentity(): void; reset(): void; dispose(): void; capture(): { readonly signal: AbortSignal; isCurrent(): boolean; }; ensureLightning(): Promise; /** * Quote the pay-in asset, then start the swap when the quote confirms the * amount is in range. Both steps live HERE so the element and React behave * identically: an out-of-range amount is an unavailable quote in * {@link swapQuotes}, not a generic swap-start error. */ startSwap(payInAsset: string): Promise; /** A new order is being prepared: Lightning is deferred again. */ resetLightningRequest(): void; /** The payer left the focused swap flow, so the failure they left goes too. */ clearSwapStartError(): void; } declare function createCheckoutSession(options: CheckoutSessionOptions): CheckoutSession; /** * Attributes for `` in each of its three modes: * * - **create** (`snapshot === null`): routing + theming + the create-time options. * The element owns the whole lifecycle from `reference` (+ optional `prefix`). * - **deferred** (a snapshot with no payer bolt11 — amount locked, method grid * showing): the same set, because the element still has a Lightning mint ahead of * it, plus the locked amount. * - **snapshot** (a snapshot carrying a bolt11): the full invoice display set. The * attempt already exists, so create-time options no longer apply. */ declare function createCheckoutElementAttributes(snapshot: CheckoutSnapshot | null, options?: CheckoutElementAttributeOptions): CheckoutElementAttributes; declare function createThemeToggleElementAttributes(options?: ThemeToggleElementAttributeOptions): ThemeToggleElementAttributes; declare function createCheckoutElementListeners(handlers?: CheckoutElementEventHandlers): CheckoutElementListeners; declare function createCheckoutShellModel(snapshot: CheckoutSnapshot | null, options?: CheckoutShellOptions): CheckoutShellModel; declare function applyCheckoutElementAttributes(target: ThemeAttributeTarget, attributes: CheckoutElementAttributes): void; declare function createThemeToggleElement(options?: CreateOpenReceiveThemeToggleElementOptions): HTMLElement; declare function createCheckoutShell(snapshot: CheckoutSnapshot, options?: CreateCheckoutShellOptions): CheckoutShellElements; /** * What every swap call needs: the fetch to use, and the mount `prefix` its * route is derived from (see {@link checkoutRoutes}). `prefix` is the only * URL input — no call in this module takes a route of its own. */ interface SwapRequestOptions { readonly signal?: AbortSignal; readonly fetch: typeof globalThis.fetch; readonly prefix: string; readonly logger?: BrowserLoggerOption; readonly headers?: Readonly>; /** Header name the page's `` is sent under — see {@link requestHeaders}. */ readonly csrfHeader?: string; } /** * POST JSON through the mounted swap route set. * * `action` selects the route client-side and is never sent: the shipped schemas * are `additionalProperties: false`, so an extra key is a 400. Only the actions * listed here are routed — an unrecognized one throws rather than silently * posting to `${prefix}/payments/check`. Swap starts go through * `startSwapRequest`, which owns the /swaps route and its audit events. */ declare function postJson(options: SwapRequestOptions & { readonly body: Record; }): Promise; declare function normalizeSwapStartInvoice(body: unknown): CheckoutInvoiceSnapshot; /** * Start a swap on the mounted /swaps route. This is the only swap-start path, * so the swap.start.* audit events are emitted here — routing it through * postJson would log a start while posting somewhere else. */ declare function startSwapRequest(options: SwapRequestOptions & { readonly reference: string; readonly payInAsset: string; }): Promise; /** * Read one swap attempt by payment hash, as a normalized invoice snapshot. * * THIS IS THE ONLY WAY BACK TO AN ATTEMPT THE BROWSER NO LONGER HOLDS. * `POST /checkouts/prepare` answers with the amount and the pay-in catalog and * NO attempts, so a checkout rebuilt from a reference alone opens on the * payment-method grid — and re-selecting the same asset only re-serves the * committed attempt while it is still live and comfortably before expiry, after * which it mints a second deposit address. `/swaps/status` selects one attempt * and applies no reuse test, so it still answers for a deposit that stopped * being payable hours ago. That is what a payer told to bookmark a refund * screen actually needs; see docs/guides/swap-refunds.md. * * Rejects like its siblings — a `BrowserRequestError` carrying `status`, so a * caller can tell an unknown attempt (404) from an outage. {@link * resumeSwapAttempt} is the forgiving wrapper the renderers use. */ declare function requestSwapStatus(options: SwapRequestOptions & { readonly reference: string; readonly paymentHash: string; }): Promise; /** * A prepared snapshot, with the host's remembered swap attempt folded back in. * * A FAILURE IS SILENCE, NOT AN ERROR. The payment hash comes from the host's * own storage, which can hold a stale note — an attempt on another visitor's * order, or one the server will no longer serve. Neither is a reason to put an * error screen in front of a payer who can still start a fresh payment, so the * prepared snapshot is returned unchanged and the checkout opens on the method * grid exactly as it would have. * * Shared rather than written twice: React and the custom element both need it * for `resumePaymentHash`, and the rule above is the part that would drift. */ declare function resumeSwapAttempt(options: SwapRequestOptions & { readonly reference: string; readonly paymentHash: string; readonly snapshot: CheckoutSnapshot; }): Promise; /** Resume the host-selected rail; old callers continue to use swap recovery. */ declare function resumeCheckoutAttempt(options: SwapRequestOptions & { readonly reference: string; readonly paymentHash: string; readonly rail?: "lightning" | "swap"; readonly snapshot: CheckoutSnapshot; }): Promise; /** * Review-or-confirm a swap refund for one attempt, and return the normalized * swap invoice — carrying the staged refund address on review. * * `paymentHash` is what the route takes, so it is what this takes. Resolving an * attempt id to a hash is the job of whoever holds the snapshot: the controller * does it in {@link CheckoutController.stageSwapRefund}, which is what an * integration should be calling. */ declare function requestSwapRefund(options: SwapRequestOptions & { readonly reference?: string; readonly paymentHash: string; readonly refundAddress: string; readonly confirm: boolean; }): Promise; declare function readThemePreference(options?: ReadThemePreferenceOptions): ThemePreference; declare function writeThemePreference(theme: ThemePreference, options?: ThemeStorageOptions): void; declare function createThemeModel(theme: ThemePreference, options?: ThemeModelOptions): ThemeModel; declare function createStoredThemeModel(options?: StoredThemeModelOptions): ThemeModel; declare function syncStoredThemeControls(targets: ThemeControlTargets, options?: StoredThemeModelOptions): ThemeModel; declare function toggleStoredThemeControls(targets: ThemeControlTargets, options?: StoredThemeModelOptions): ThemeModel; declare function getWizardEmptyMessage(): string; declare function getRouteNetworkLabel(routeId: string): string; declare function createWizardRouteAssetDisplays(assets: readonly AssetIndexEntry[], options?: { readonly selectedRoute?: string | null; }): readonly WizardRouteAssetDisplay[]; /** * The wallet suggestions for each route, as displays. * * The registry answers ~37 providers for Lightning. Both shipped renderers draw * all of them, in a grid on the route screen where that is fine; a host putting * them under the invoice instead — beside a QR, in a fixed-height panel — wants * `providerPreviewLimit` and a "show all" affordance built from * {@link WizardRouteDisplay.providerCount}. `OPENRECEIVE_PROVIDER_PREVIEW_LIMIT` * is the number the shipped styles are drawn against. * * No default limit, deliberately: the renderers show the whole grid, and a * default that silently hid 33 wallets from them would be a worse bug than the * one it prevents. */ declare function createWizardRouteDisplays(routes: readonly PaymentWizardRoute[], options?: { /** Draw at most this many providers per route. Omitted, every one is drawn. */ readonly providerPreviewLimit?: number; }): readonly WizardRouteDisplay[]; declare function getPaymentMethodIconId(method: PaymentMethod): PaymentIconId; declare function getPaymentMethodIcon(method: PaymentMethod): string; /** Icon id for a swap network label (Tron → trx, Solana → sol, Ethereum → eth). */ declare function getNetworkIconId(networkLabel: string): PaymentIconId; declare function getNetworkIcon(networkLabel: string): string; /** * Icon id for a swap pay-in option card. Always the token/coin mark (USDT, * USDC, SOL, …). Network marks (Tron/Solana/Ethereum) belong only in the * network reveal via {@link getNetworkIconId}. */ declare function getSwapOptionIconId(option: { readonly label: string; }): PaymentIconId; declare function getSwapOptionIcon(option: { readonly label: string; }): string; interface SwapMethodGroup { readonly label: string; readonly options: readonly T[]; } type MethodGridEntry = { readonly kind: "method"; readonly method: PaymentMethodOption; } | { readonly kind: "swap"; readonly group: SwapMethodGroup; }; /** * Interleave payment methods with grouped swap coins in the preferred grid order. * When no swap options are present yet, returns the payment methods only. */ declare function buildMethodGridEntries(paymentMethods: readonly PaymentMethodOption[], swapOptions: readonly T[]): readonly MethodGridEntry[]; type PaymentAccentId = "bitcoin" | "usdt" | "usdc" | "sol" | "eth" | "default"; declare function swapPickerKey(label: string): string; declare function parseMethodPickerKey(key: string): { readonly kind: "method"; readonly methodId: string; } | null; declare function paymentAccentId(labelOrMethodId: string): PaymentAccentId; declare function assetButtonClasses(options: { readonly accent: PaymentAccentId; readonly selected: boolean; readonly disabled?: boolean; }): string; declare function networkButtonClasses(options: { readonly accent: PaymentAccentId; readonly selected: boolean; readonly disabled?: boolean; }): string; declare function networkMobileRevealClasses(accent: PaymentAccentId): string; declare function networkCheckClasses(accent: PaymentAccentId): string; declare function networkSummaryIconClasses(accent: PaymentAccentId): string; declare function formatNetworkSummary(assetLabel: string, networkLabel: string): string; /** * The line under a coin tile's name: the networks that coin can arrive on, * "Tron · Solana · Ethereum". * * Both renderers read it here, so a tile can never list different networks from * the reveal panel underneath it. Duplicates are dropped rather than repeated: * two USDT_SOL rows from a provider catalog are one network to a payer. */ declare function formatMethodNetworkDetail(options: readonly { readonly network_label: string; }[]): string; /** * What a compact-selector tile click means, resolved once. * * The network question exists ONLY because a deposit address is * network-specific and a wrong send is unrecoverable — which is exactly why it * must not be asked when it is not a real question. A single-network group * therefore resolves to `start_swap`, not `choose_network`: the rule is data * here, so a custom UI cannot ask a group with one answer which answer it wants. */ type WizardSelection = { readonly kind: "select_method"; readonly methodId: string; } | { readonly kind: "start_swap"; readonly payInAsset: string; } | { readonly kind: "choose_network"; readonly group: SwapMethodGroup; readonly groupKey: string; readonly heading: string; readonly panelId: string; readonly headingId: string; /** * The per-group choice map after the pick, from * {@link updateSelectedSwapAssetByGroup}: keyed by GROUP KEY * (`group.label` upper-cased), valued by the chosen option's * `pay_in_asset` — NOT its `network_label`. A deposit address is * network-specific, so the value has to be the thing that identifies the * address, and `pay_in_asset` is what every other seam here keys on. */ readonly selectedAssetByGroup: Record; } | { readonly kind: "none"; }; /** * Resolve a picker key against the grid: which of the three things a tile click * can mean, with everything that arm needs already in hand. * * `previousKey` is the tile that was open before, so a carried-over network * choice resolves the same way it does in both shipped renderers. */ declare function resolveWizardSelection(options: { readonly pickerKey: string; readonly previousKey?: string | null; readonly entries: readonly MethodGridEntry[]; /** Keyed by group key, valued by the chosen option's `pay_in_asset`. */ readonly selectedAssetByGroup?: Readonly>; }): WizardSelection; /** Invoice-side amount context for fiat swap-limit notes. */ interface SwapLimitContext { readonly amount_msats: number; readonly fiat?: { readonly currency: string; readonly value: string; }; } /** * The out-of-range swap panel, as data. Both renderers build the same panel * from this: the element writes HTML, React writes elements, and neither one * owns the copy or the range arithmetic. */ interface SwapUnavailableModel { readonly title: string; readonly detail: string; /** Accepted pay-in range, when the provider reported limits. */ readonly range?: string; readonly hint: string; } declare function createSwapUnavailableModel(option: Pick, checkout: SwapLimitContext | undefined): SwapUnavailableModel; /** * Short reason to show for an out-of-range swap asset. Prefers a fiat figure * ("Minimum amount $10.00") converted from the invoice-side limit using the * checkout's own rate, falling back to the pay-in asset's own units * ("Minimum 5 USDT") when the provider only reports pay-side limits, then to * the provider's generic message. */ declare function swapOptionLimitMessage(option: Pick, checkout: SwapLimitContext | undefined): string | undefined; /** * The same limit as {@link swapOptionLimitMessage}, as ONE finished sentence: * "To pay with SOL, your cart total must be at least $2.43." * * `createSwapUnavailableModel` answers the case where the payer PICKED an * unavailable asset and lands on a pane, which has room for a title, a detail, * a range and a hint. A grid that disables the tile instead has nowhere to put * four parts and needs one line — for a tooltip, a caption, an `aria-label`. * Both are built from the same figures, so the tile and the pane cannot quote * different numbers. * * Returns `undefined` for an option that is available; for an unavailable one * it always returns something, falling back to the provider's own message and * then to the generic sentence, so a caption is never blank. * * @param options.label Override the asset name in the sentence — pass the GROUP * label ("USDT") when the tile represents a group whose cheapest entry point * came from {@link swapGroupLimitOption}, so the sentence names what the payer * clicked rather than one network behind it. */ declare function swapOptionLimitSentence(option: Pick, checkout: SwapLimitContext | undefined, options?: { readonly label?: string; }): string | undefined; /** One method-grid tile, as data. */ type MethodGridDisplayEntry = { readonly kind: "method"; readonly method: PaymentMethodOption; readonly accent: PaymentAccentId; readonly disabled: boolean; } | { readonly kind: "swap"; readonly group: MethodGridGroupDisplay; }; /** * One coin's tile in the method grid, with every derivation both renderers used * to redo by hand. * * `needsNetworkStep` and `startPayInAsset` are the `options.length > 1` rule as * DATA: a tile either opens the network step or starts a swap outright, and a * renderer picking between two DOM attributes never re-derives which. */ interface MethodGridGroupDisplay { readonly label: string; /** The group's normalized key — how `selectedAssetByGroup` is keyed. */ readonly groupKey: string; readonly pickerKey: string; readonly accent: PaymentAccentId; readonly options: readonly T[]; readonly multiNetwork: boolean; /** This tile is the open one in the compact selector. */ readonly selected: boolean; /** A swap on one of this group's networks is being started right now. */ readonly starting: boolean; /** Every network in the group is out of range for this cart. */ readonly disabled: boolean; /** The option the tile's icon and title stand for. */ readonly displayOption: T; /** The payer's pick when there is one, else {@link displayOption}. */ readonly activeOption: T; readonly selectedOption?: T; /** * The SHORT tile message ("Minimum amount $2.71"), present only when the tile * is disabled — the pane's full sentence is a different string, deliberately * (see `swapOptionLimitSentence`). */ readonly limitMessage?: string; readonly panelId: string; readonly headingId: string; readonly heading: string; readonly needsNetworkStep: boolean; readonly startPayInAsset?: string; } /** The compact selector's Continue button, as data. */ interface MethodGridContinueDisplay { readonly payInAsset: string; readonly disabled: boolean; /** This exact asset is the one being started. */ readonly starting: boolean; /** Finished copy: the limit message, "Preparing payment", or "Continue". */ readonly label: string; } /** * The method grid as a display model — the last pane on the headless surface * that had none (routes have `createWizardRouteDisplays`, the deposit panel * `createSwapDisplayModel`, status `createCheckoutStatusModel`). */ interface MethodGridDisplay { readonly entries: readonly MethodGridDisplayEntry[]; /** A swap start is in flight, so every tile is inert. */ readonly gridBusy: boolean; /** The open tile has more than one network, so a choice is still owed. */ readonly networkRequired: boolean; readonly selectedGroup?: MethodGridGroupDisplay; readonly continueTarget?: MethodGridContinueDisplay; readonly canContinue: boolean; } /** * Build the method grid's display model from the grid entries plus the three * pieces of renderer state (which tile is open, which network each coin is set * to, which asset is starting) and the invoice-side amount the limit notes are * quoted against. */ declare function createMethodGridDisplay(options: { readonly entries: readonly MethodGridEntry[]; readonly selectedPickerKey?: string | null; /** Keyed by group key, valued by the chosen option's `pay_in_asset`. */ readonly selectedAssetByGroup?: Readonly>; /** The asset whose swap is being started, or null/undefined for none. */ readonly startingAsset?: string | null; readonly checkout?: SwapLimitContext; }): MethodGridDisplay; /** * Payer-facing validation for a swap refund address, shared by every refund * form: an empty address prompts for one, anything else is checked against the * pay-in asset's address format. */ declare function getSwapRefundFormError(payInAsset: string, address: string, networkLabel: string): string | undefined; declare function createPaymentWizardSelection(): PaymentWizardSelection; declare function createPaymentWizardModel(selection: PaymentWizardSelection): PaymentWizardModel; declare function updatePaymentWizardSelection(selection: PaymentWizardSelection, action: PaymentWizardSelectionAction): PaymentWizardSelection; declare function createPaymentWizardController(options?: PaymentWizardControllerOptions): PaymentWizardController; export { BrowserLoggerOption, type CheckoutComponentProps, CheckoutElementAttributeOptions, CheckoutElementAttributes, CheckoutElementEventHandlers, CheckoutElementListeners, CheckoutInvoiceSnapshot, CheckoutPaymentMethod, type CheckoutPropsValidation, type CheckoutSession, type CheckoutSessionOptions, CheckoutShellElements, CheckoutShellModel, CheckoutShellOptions, CheckoutSnapshot, CheckoutState, CheckoutStatusModel, type CheckoutSwapOptions, CreateCheckoutShellOptions, type DetailLinkKind, type MethodGridContinueDisplay, type MethodGridDisplay, type MethodGridDisplayEntry, type MethodGridEntry, type MethodGridGroupDisplay, PaymentIconId, PaymentMethod, PaymentWizardController, PaymentWizardModel, PaymentWizardSelection, ResolvedTheme, StoredThemeModelOptions, SwapDepositRisk, SwapDisplayModel, type SwapLimitContext, type SwapMethodGroup, type SwapSelection, type SwapUnavailableModel, ThemeModel, ThemeModelOptions, ThemePreference, ThemeToggleElementAttributeOptions, ThemeToggleElementAttributes, TransactionDetailRow, TransactionDetailsInput, type TransactionDetailsSource, TransientFeedbackController, UnixSeconds, WizardRouteAssetDisplay, WizardRouteDisplay, type WizardSelection, applyCheckoutElementAttributes, assetButtonClasses, buildMethodGridEntries, checkoutElementStyles, checkoutLabels, createBlockExplorerUrl, createCheckoutElementAttributes, createCheckoutElementListeners, createCheckoutSession, createCheckoutShell, createCheckoutShellModel, createCheckoutSnapshotFromInvoice, createCheckoutState, createCheckoutStatusModel, createDetailExternalLink, createLightningInvoiceDecodeUrl, createMethodGridDisplay, createPaymentWizardController, createPaymentWizardModel, createPaymentWizardSelection, createStoredThemeModel, createSwapDisplayModel, createSwapUnavailableModel, createThemeModel, createThemeToggleElement, createThemeToggleElementAttributes, createTickingValueController, createTransactionDetails, createTransactionDetailsFromState, createTransientFeedbackController, createWizardRouteAssetDisplays, createWizardRouteDisplays, formatMethodNetworkDetail, formatNetworkSummary, getExplorerNetwork, getNetworkIcon, getNetworkIconId, getPaymentMethodIcon, getPaymentMethodIconId, getRouteNetworkLabel, getSwapOptionIcon, getSwapOptionIconId, getSwapRefundFormError, getWizardEmptyMessage, isReusableLightningInvoice, mergeAttemptIntoCheckout, mergeAttemptIntoSnapshot, networkButtonClasses, networkCheckClasses, networkMobileRevealClasses, networkSummaryIconClasses, normalizeSwapStartInvoice, orClasses, parseBooleanAttribute, parseMethodPickerKey, parseOptionalInteger, parsePaymentMethod, parseResolvedTheme, parseThemePreference, paymentAccentId, paymentIconUrls, paymentMethods, postJson, readThemePreference, requestSwapRefund, requestSwapStatus, resolveTransactionDetailRows, resolveWizardSelection, resumeCheckoutAttempt, resumeSwapAttempt, selectCheckoutDisplayInvoice, selectCurrentSwapInvoice, startSwapRequest, swapAssetMatchesRoute, swapDepositRisk, swapOptionLimitMessage, swapOptionLimitSentence, swapPickerKey, syncStoredThemeControls, toggleStoredThemeControls, updatePaymentWizardSelection, validateCheckoutProps, writeThemePreference };