@boost33/ui 0.8.0-next.2 → 0.8.0-next.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +74 -0
- package/dist/components/AppShell/AppShell.module.css.js +16 -16
- package/dist/components/TopBar/TopBar.js +17 -17
- package/dist/components/TopBar/TopBar.js.map +1 -1
- package/dist/components/TopBar/TopBar.module.css.js +5 -5
- package/dist/components/WalletChip/WalletChip.d.ts +6 -1
- package/dist/components/WalletChip/WalletChip.js +123 -101
- package/dist/components/WalletChip/WalletChip.js.map +1 -1
- package/dist/components/WalletChip/WalletChip.module.css.js +89 -87
- package/dist/components/WalletChip/WalletChip.module.css.js.map +1 -1
- package/dist/components/WalletChip/format.d.ts +6 -0
- package/dist/components/WalletChip/format.js +22 -17
- package/dist/components/WalletChip/format.js.map +1 -1
- package/dist/components/WalletChip/labels.d.ts +21 -3
- package/dist/components/WalletChip/labels.js +10 -8
- package/dist/components/WalletChip/labels.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { fillTemplate as n } from "../../fill-template.js";
|
|
2
|
-
const
|
|
2
|
+
const s = Object.freeze({
|
|
3
3
|
region: "Wallet balance",
|
|
4
4
|
name: "Wallet",
|
|
5
5
|
unit: "tokens",
|
|
@@ -16,19 +16,20 @@ const i = Object.freeze({
|
|
|
16
16
|
popover: "Token balance",
|
|
17
17
|
grantedFigure: "%amount% granted",
|
|
18
18
|
purchasedFigure: "%amount% purchased",
|
|
19
|
-
grantedNote: "Included each month
|
|
19
|
+
grantedNote: "Included each month · resets %date%",
|
|
20
20
|
grantedNoteUndated: "Included each month.",
|
|
21
21
|
purchasedNote: "Yours to keep. These never expire.",
|
|
22
22
|
open: "Open",
|
|
23
23
|
buyTokens: "Buy tokens",
|
|
24
24
|
pastZero: "past zero",
|
|
25
25
|
pastZeroLong: "tokens past zero",
|
|
26
|
-
pastZeroBalance: "Wallet balance %amount% tokens past zero"
|
|
26
|
+
pastZeroBalance: "Wallet balance %amount% tokens past zero",
|
|
27
|
+
thresholdNote: "You've used %percent% of this month's grant."
|
|
27
28
|
});
|
|
28
|
-
function
|
|
29
|
+
function d(r) {
|
|
29
30
|
const t = Object.fromEntries(
|
|
30
31
|
Object.entries(r ?? {}).filter(([, e]) => e !== void 0)
|
|
31
|
-
), a = { ...
|
|
32
|
+
), a = { ...s, ...t };
|
|
32
33
|
return {
|
|
33
34
|
...a,
|
|
34
35
|
grantExpiry: (e) => n(a.grantExpiry, { date: e }),
|
|
@@ -38,11 +39,12 @@ function p(r) {
|
|
|
38
39
|
grantedFigure: (e) => n(a.grantedFigure, { amount: e }),
|
|
39
40
|
purchasedFigure: (e) => n(a.purchasedFigure, { amount: e }),
|
|
40
41
|
grantedNote: (e) => n(a.grantedNote, { date: e }),
|
|
41
|
-
pastZeroBalance: (e) => n(a.pastZeroBalance, { amount: e })
|
|
42
|
+
pastZeroBalance: (e) => n(a.pastZeroBalance, { amount: e }),
|
|
43
|
+
thresholdNote: (e) => n(a.thresholdNote, { percent: e })
|
|
42
44
|
};
|
|
43
45
|
}
|
|
44
46
|
export {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
+
s as defaultWalletChipLabels,
|
|
48
|
+
d as resolveWalletChipLabels
|
|
47
49
|
};
|
|
48
50
|
//# sourceMappingURL=labels.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labels.js","sources":["../../../src/components/WalletChip/labels.ts"],"sourcesContent":["// The chip is the only component in the package that renders words. Every one\n// of them lives here as a prop with an English default, so a French-default\n// consumer (the first two are) can translate the chip without the package\n// taking an i18n dependency -- CLAUDE.md, \"a component here renders what it is\n// given\". This is the same argument grantExpires and burnNote already made,\n// applied to the strings that were still English literals in the render.\n//\n// Three of those strings carry a value, and word order is not a property of\n// English: \"Granted expires 30 Sep\" puts the date where English puts it, and a\n// translation cannot be reassembled from fragments on the consumer's side. They\n// are supplied whole, as a template that spells the value's position with a\n// `%placeholder%`.\n//\n// ── Every field is a string, and that is the whole type (B33-1278) ───────────\n//\n// Each of those three was once `string | ((…) => string)`. The function half is\n// gone, and the reason is that it could not be used by the consumers this package\n// has. A function is the one thing that cannot be a prop of a Client Component\n// rendered from a React Server Component: React's Flight serializer walks the\n// whole prop graph and throws on any function it finds, nested or not, in\n// production as well as in development:\n//\n// Functions cannot be passed directly to Client Components unless you\n// explicitly expose it by marking it with \"use server\".\n//\n// `WalletChip` is a client module and `AppShell.wallet` is a ReactNode slot, so\n// it is the *consumer's page* that constructs `<WalletChip …/>` -- and under the\n// App Router that page is a Server Component by default, which is how both\n// consumers render it, because reading the balance is a server read. So the\n// function half was type-legal and fatal in production for the only way anyone\n// uses the component, and nothing in the type said so: `tsc` accepted it, the dev\n// server accepted it, and it threw at serialisation time (B33-880 for the first\n// half of this, B33-1278 for the rest). Score covered the hole from outside, with\n// a runtime `typeof raw === 'string'` guard and five tests walking the prop graph,\n// because -- in its own words -- neither `tsc` nor the dev server will.\n//\n// What the function form was *for* was logic a template cannot express: ICU\n// plurals, an `Intl.ListFormat` call. That capability is not lost, it moves to\n// where ICU already lives. A consumer selecting a plural form does the selection\n// in its own catalogue and passes this package the finished sentence, which is\n// what both consumers already do with next-intl. No default label in this package\n// is count-dependent, so no default needed it (see `unit` below).\n//\n// B33-876 added a fourth of the same kind, `railFigure`. The rail's balance is\n// a number the `locale` prop formats -- \"4.6\" or \"4,6\" -- followed by a mark\n// that is a word and not a number: English \"k\", German \"Tsd.\", and French with\n// a space in front of it that English does not have. Intl cannot supply it (its\n// own compact notation renders German four-digit balances unabbreviated, which\n// does not fit a 56px rail -- see format.ts), so it belongs here, in the same\n// template shape, for the same reason: the consumer owns where the mark goes.\n\nimport { fillTemplate } from '../../fill-template'\n\n/**\n * Every user-facing string the chip renders. Supplied whole -- the strings that\n * carry a value take a `%placeholder%` template rather than fragments, because\n * word order is not a property of English and cannot be reassembled on the\n * consumer's side.\n *\n * **Every field is a `string`.** `grantExpiry`, `railFigure`, `railBalance` and\n * `bar` are templates: plain strings marking each value's position with a\n * `%placeholder%` -- `'Granted expires %date% · burns first'`. So the whole\n * `labels` object is data all the way down, it survives the React Server Component\n * boundary, and a Next App Router page can build it. There is no function form:\n * it only ever worked from a Client Component and nothing in the type said so\n * (B33-1278). A sentence needing logic a template cannot express -- a plural rule,\n * an `Intl.ListFormat` call -- is computed in the consumer's own catalogue, where\n * ICU already lives, and passed here finished.\n *\n * In a template, a `%name%` the label does not define is left exactly as written\n * -- a locale whose copy genuinely pairs two percent signs is not mangled, and a\n * misspelled placeholder shows up in the rendering rather than silently\n * blanking. A placeholder a template omits is simply not rendered: a locale that\n * does not need a figure is allowed not to name it.\n *\n * **The delimiter is `%name%`, not `{name}`** (B33-1277). A brace is ICU\n * MessageFormat argument syntax, so a consumer storing these templates in its own\n * next-intl catalogue could not read them back through its own formatter. It can\n * now. `src/fill-template.ts` carries the reasoning, including why `%{name}` and\n * `{{name}}` would both have kept the collision. A `{braced}` name in a template\n * is ordinary text here and is passed through untouched.\n */\nexport interface WalletChipLabels {\n /** Accessible name for the expanded chip's status region. Default \"Wallet balance\". */\n region: string\n /** The chip header. Default \"Wallet\". */\n name: string\n /**\n * The unit rendered beside the figure. Default \"tokens\".\n *\n * A single string, and so not count-dependent: a balance of one renders \"1\n * tokens\" in English. That has been true since B33-849 and B33-1278 did not\n * change it -- `unit` never had the function form, so dropping that form took\n * nothing away here. It is also a state the chip is unlikely to reach: a\n * one-token balance is an all-but-empty wallet. If a locale needs the unit to\n * agree with the figure, the shape to add is a count-aware field, which is a\n * decision and not a refactor; nothing in the package invents one meanwhile.\n */\n unit: string\n /** Screen-reader-only text in the figure when the balance is unknown. Default \"Balance unknown\". */\n balanceUnknown: string\n /** The granted side of the split -- granted burns first. Default \"Granted\". */\n granted: string\n /** The purchased side of the split -- purchased never expires. Default \"Purchased\". */\n purchased: string\n /**\n * The footer, around the preformatted expiry date. Supplied whole so the\n * consumer owns word order.\n *\n * Placeholder: `%date%`. Default (en) `Granted expires %date% · burns first`.\n */\n grantExpiry: string\n /** The top-up button. Default \"Top up\". */\n topUp: string\n /**\n * The rail's abbreviated balance, around the one-decimal-thousand figure\n * (e.g. \"4.6\"). Both the visible text in the 56px rail and the figure that\n * `railBalance` is given.\n *\n * Placeholder: `%figure%`. Default (en) `%figure%k`.\n *\n * The figure itself is formatted for `locale` -- \"4.6\" in `en-US`, \"4,6\" in\n * `fr-FR` -- but the mark after it is a word, and locales disagree about it:\n * French writes \"4,6 k\" with a space, German abbreviates a thousand \"Tsd.\".\n * So the mark is a label like every other word the chip renders, and a\n * template rather than a bare suffix, because a locale is entitled to put the\n * mark somewhere other than the end (B33-876).\n */\n railFigure: string\n /**\n * The rail group's accessible name, around the abbreviated balance (e.g. \"4.6k\").\n *\n * Placeholder: `%balance%`. Default (en) `Wallet balance %balance%`.\n */\n railBalance: string\n /** The rail group's accessible name when the balance is unknown. Default \"Wallet balance unknown\". */\n railBalanceUnknown: string\n /** Screen-reader-only marker on the rail when the balance is unknown. Default \"unknown\". */\n railUnknown: string\n /**\n * The bar's accessible label, around the three preformatted figures. Assembled\n * whole rather than concatenated from fragments -- the shape that cannot be\n * translated at all otherwise.\n *\n * Placeholders: `%granted%`, `%purchased%`, `%remaining%`. Default (en)\n * `%granted% granted and %purchased% purchased of %remaining% remaining`.\n */\n bar: string\n /**\n * The top-bar chip's popover, named for a screen reader: a disclosure panel\n * carries no widget role, so it takes an `aria-label` (ADR-0010). Default\n * \"Token balance\". `placement=\"topbar\"` only (B33-1712).\n */\n popover: string\n /**\n * The popover's granted line, around the preformatted amount (board 21:\n * \"3,420 granted\"). Placeholder `%amount%`. Default `%amount% granted`.\n */\n grantedFigure: string\n /** The purchased line, on the same terms. Placeholder `%amount%`. Default `%amount% purchased`. */\n purchasedFigure: string\n /**\n * The note under the granted line when `grantExpires` is known (board 21).\n * Placeholder `%date%`, the preformatted reset date. Default\n * `Included each month. Resets %date%.`\n */\n grantedNote: string\n /**\n * The same note when `grantExpires` is not supplied, so the chip never prints\n * a reset date nobody gave it. Default `Included each month.`\n */\n grantedNoteUndated: string\n /** The note under the purchased line. Default `Yours to keep. These never expire.` */\n purchasedNote: string\n /** The popover's link to the Wallet (`walletHref`). Default \"Open\". */\n open: string\n /** The popover's buy button (`onTopUp`). Default \"Buy tokens\". */\n buyTokens: string\n /**\n * The top-bar chip's unit when the account is past zero (`totalOnly` with a negative `balance`,\n * B33-1712), after the figure for how far past zero it is: \"420 past zero\".\n * The Wallet's own past-zero screen says it in these words rather than with a\n * minus sign, and the chip follows it. Default `past zero`.\n */\n pastZero: string\n /**\n * The same, in the popover, where there is room for the noun. Default\n * `tokens past zero`.\n */\n pastZeroLong: string\n /**\n * The past-zero pill's accessible name. A template: `%amount%` is the\n * formatted figure past zero. Default `Wallet balance %amount% tokens past zero`.\n */\n pastZeroBalance: string\n}\n\n/**\n * The English defaults. A consumer that passes nothing renders exactly what the\n * chip rendered before this prop existed, so the wallet baselines do not move.\n *\n * **Every field is a string, and now by construction.** That is what makes\n * `labels={defaultWalletChipLabels}` and\n * `labels={{ ...defaultWalletChipLabels, name: 'Portefeuille' }}` -- the pattern\n * the specimen shows and this package's own advice recommends -- legal from a\n * Server Component (B33-880). It used to be a runtime fact pinned by a test,\n * because `WalletChipLabels` admitted functions on four fields and `satisfies`\n * could not tell the two apart (B33-1029). With the union gone the compiler\n * carries it: a function here is a type error at the `satisfies`, and\n * `tests/wallet-chip-labels.type-test.ts` asserts the all-strings shape of the\n * interface itself so the guarantee cannot be lost by widening one field.\n *\n * Frozen because it is a public export reaching four products on a version bump.\n * `const` protects the binding, not the contents: without the freeze, a consumer\n * aliasing it by reference -- `const mine = defaultWalletChipLabels; mine.name =\n * 'Portefeuille'` -- would silently rename every chip in the process (B33-877).\n */\nexport const defaultWalletChipLabels = Object.freeze({\n region: 'Wallet balance',\n name: 'Wallet',\n unit: 'tokens',\n balanceUnknown: 'Balance unknown',\n granted: 'Granted',\n purchased: 'Purchased',\n grantExpiry: 'Granted expires %date% · burns first',\n topUp: 'Top up',\n railFigure: '%figure%k',\n railBalance: 'Wallet balance %balance%',\n railBalanceUnknown: 'Wallet balance unknown',\n railUnknown: 'unknown',\n bar: '%granted% granted and %purchased% purchased of %remaining% remaining',\n popover: 'Token balance',\n grantedFigure: '%amount% granted',\n purchasedFigure: '%amount% purchased',\n grantedNote: 'Included each month. Resets %date%.',\n grantedNoteUndated: 'Included each month.',\n purchasedNote: 'Yours to keep. These never expire.',\n open: 'Open',\n buyTokens: 'Buy tokens',\n pastZero: 'past zero',\n pastZeroLong: 'tokens past zero',\n pastZeroBalance: 'Wallet balance %amount% tokens past zero',\n} satisfies WalletChipLabels)\n\n/**\n * The labels as the render consumes them: the four templates presented as\n * functions of their values, so the component writes `t.bar(…)` and never handles\n * a template itself.\n *\n * This is internal -- it is not exported from `src/index.ts` -- and it stays a\n * function shape now that `WalletChipLabels` holds only strings, for two reasons.\n * The interpolation has to happen somewhere, and one site per label is the whole\n * of it; and the call is where B33-875's laziness lives, so a label for an element\n * that does not render is not interpolated at all.\n */\nexport interface ResolvedWalletChipLabels\n extends Omit<WalletChipLabels, 'grantExpiry' | 'railFigure' | 'railBalance' | 'bar' | 'grantedFigure' | 'purchasedFigure' | 'grantedNote' | 'pastZeroBalance'> {\n grantExpiry: (date: string) => string\n grantedFigure: (amount: string) => string\n purchasedFigure: (amount: string) => string\n grantedNote: (date: string) => string\n railFigure: (figure: string) => string\n railBalance: (balance: string) => string\n bar: (granted: string, purchased: string, remaining: string) => string\n pastZeroBalance: (amount: string) => string\n}\n\n/**\n * Merge a consumer's partial `labels` onto the English defaults, treating an\n * explicitly-`undefined` field as unsupplied, and present the four templates as\n * functions of their values.\n *\n * A next-intl `t('...')` returns `undefined` on a missed key, so\n * `{ name: undefined }` is what one missing translation out of thirteen looks like\n * at the call site -- it must fall back to English, not overwrite the default\n * with `undefined` and blank the header, unname the button, or hand\n * `fillTemplate` an `undefined` template (B33-873). A plain object spread copies\n * the `undefined` across; a per-field skip does not.\n */\nexport function resolveWalletChipLabels(labels?: Partial<WalletChipLabels>): ResolvedWalletChipLabels {\n const supplied = Object.fromEntries(\n Object.entries(labels ?? {}).filter(([, value]) => value !== undefined),\n ) as Partial<WalletChipLabels>\n const merged = { ...defaultWalletChipLabels, ...supplied }\n return {\n ...merged,\n grantExpiry: (date) => fillTemplate(merged.grantExpiry, { date }),\n railFigure: (figure) => fillTemplate(merged.railFigure, { figure }),\n railBalance: (balance) => fillTemplate(merged.railBalance, { balance }),\n bar: (granted, purchased, remaining) => fillTemplate(merged.bar, { granted, purchased, remaining }),\n grantedFigure: (amount) => fillTemplate(merged.grantedFigure, { amount }),\n purchasedFigure: (amount) => fillTemplate(merged.purchasedFigure, { amount }),\n grantedNote: (date) => fillTemplate(merged.grantedNote, { date }),\n pastZeroBalance: (amount) => fillTemplate(merged.pastZeroBalance, { amount }),\n }\n}\n"],"names":["defaultWalletChipLabels","resolveWalletChipLabels","labels","supplied","value","merged","date","fillTemplate","figure","balance","granted","purchased","remaining","amount"],"mappings":";AAyNO,MAAMA,IAA0B,OAAO,OAAO;AAAA,EACnD,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,aAAa;AAAA,EACb,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,aAAa;AAAA,EACb,KAAK;AAAA,EACL,SAAS;AAAA,EACT,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,MAAM;AAAA,EACN,WAAW;AAAA,EACX,UAAU;AAAA,EACV,cAAc;AAAA,EACd,iBAAiB;AACnB,CAA4B;AAqCrB,SAASC,EAAwBC,GAA8D;AACpG,QAAMC,IAAW,OAAO;AAAA,IACtB,OAAO,QAAQD,KAAU,EAAE,EAAE,OAAO,CAAC,CAAA,EAAGE,CAAK,MAAMA,MAAU,MAAS;AAAA,EAAA,GAElEC,IAAS,EAAE,GAAGL,GAAyB,GAAGG,EAAA;AAChD,SAAO;AAAA,IACL,GAAGE;AAAA,IACH,aAAa,CAACC,MAASC,EAAaF,EAAO,aAAa,EAAE,MAAAC,GAAM;AAAA,IAChE,YAAY,CAACE,MAAWD,EAAaF,EAAO,YAAY,EAAE,QAAAG,GAAQ;AAAA,IAClE,aAAa,CAACC,MAAYF,EAAaF,EAAO,aAAa,EAAE,SAAAI,GAAS;AAAA,IACtE,KAAK,CAACC,GAASC,GAAWC,MAAcL,EAAaF,EAAO,KAAK,EAAE,SAAAK,GAAS,WAAAC,GAAW,WAAAC,EAAA,CAAW;AAAA,IAClG,eAAe,CAACC,MAAWN,EAAaF,EAAO,eAAe,EAAE,QAAAQ,GAAQ;AAAA,IACxE,iBAAiB,CAACA,MAAWN,EAAaF,EAAO,iBAAiB,EAAE,QAAAQ,GAAQ;AAAA,IAC5E,aAAa,CAACP,MAASC,EAAaF,EAAO,aAAa,EAAE,MAAAC,GAAM;AAAA,IAChE,iBAAiB,CAACO,MAAWN,EAAaF,EAAO,iBAAiB,EAAE,QAAAQ,GAAQ;AAAA,EAAA;AAEhF;"}
|
|
1
|
+
{"version":3,"file":"labels.js","sources":["../../../src/components/WalletChip/labels.ts"],"sourcesContent":["// The chip is the only component in the package that renders words. Every one\n// of them lives here as a prop with an English default, so a French-default\n// consumer (the first two are) can translate the chip without the package\n// taking an i18n dependency -- CLAUDE.md, \"a component here renders what it is\n// given\". This is the same argument grantExpires and burnNote already made,\n// applied to the strings that were still English literals in the render.\n//\n// Three of those strings carry a value, and word order is not a property of\n// English: \"Granted expires 30 Sep\" puts the date where English puts it, and a\n// translation cannot be reassembled from fragments on the consumer's side. They\n// are supplied whole, as a template that spells the value's position with a\n// `%placeholder%`.\n//\n// ── Every field is a string, and that is the whole type (B33-1278) ───────────\n//\n// Each of those three was once `string | ((…) => string)`. The function half is\n// gone, and the reason is that it could not be used by the consumers this package\n// has. A function is the one thing that cannot be a prop of a Client Component\n// rendered from a React Server Component: React's Flight serializer walks the\n// whole prop graph and throws on any function it finds, nested or not, in\n// production as well as in development:\n//\n// Functions cannot be passed directly to Client Components unless you\n// explicitly expose it by marking it with \"use server\".\n//\n// `WalletChip` is a client module and `AppShell.wallet` is a ReactNode slot, so\n// it is the *consumer's page* that constructs `<WalletChip …/>` -- and under the\n// App Router that page is a Server Component by default, which is how both\n// consumers render it, because reading the balance is a server read. So the\n// function half was type-legal and fatal in production for the only way anyone\n// uses the component, and nothing in the type said so: `tsc` accepted it, the dev\n// server accepted it, and it threw at serialisation time (B33-880 for the first\n// half of this, B33-1278 for the rest). Score covered the hole from outside, with\n// a runtime `typeof raw === 'string'` guard and five tests walking the prop graph,\n// because -- in its own words -- neither `tsc` nor the dev server will.\n//\n// What the function form was *for* was logic a template cannot express: ICU\n// plurals, an `Intl.ListFormat` call. That capability is not lost, it moves to\n// where ICU already lives. A consumer selecting a plural form does the selection\n// in its own catalogue and passes this package the finished sentence, which is\n// what both consumers already do with next-intl. No default label in this package\n// is count-dependent, so no default needed it (see `unit` below).\n//\n// B33-876 added a fourth of the same kind, `railFigure`. The rail's balance is\n// a number the `locale` prop formats -- \"4.6\" or \"4,6\" -- followed by a mark\n// that is a word and not a number: English \"k\", German \"Tsd.\", and French with\n// a space in front of it that English does not have. Intl cannot supply it (its\n// own compact notation renders German four-digit balances unabbreviated, which\n// does not fit a 56px rail -- see format.ts), so it belongs here, in the same\n// template shape, for the same reason: the consumer owns where the mark goes.\n\nimport { fillTemplate } from '../../fill-template'\n\n/**\n * Every user-facing string the chip renders. Supplied whole -- the strings that\n * carry a value take a `%placeholder%` template rather than fragments, because\n * word order is not a property of English and cannot be reassembled on the\n * consumer's side.\n *\n * **Every field is a `string`.** `grantExpiry`, `railFigure`, `railBalance` and\n * `bar` are templates: plain strings marking each value's position with a\n * `%placeholder%` -- `'Granted expires %date% · burns first'`. So the whole\n * `labels` object is data all the way down, it survives the React Server Component\n * boundary, and a Next App Router page can build it. There is no function form:\n * it only ever worked from a Client Component and nothing in the type said so\n * (B33-1278). A sentence needing logic a template cannot express -- a plural rule,\n * an `Intl.ListFormat` call -- is computed in the consumer's own catalogue, where\n * ICU already lives, and passed here finished.\n *\n * In a template, a `%name%` the label does not define is left exactly as written\n * -- a locale whose copy genuinely pairs two percent signs is not mangled, and a\n * misspelled placeholder shows up in the rendering rather than silently\n * blanking. A placeholder a template omits is simply not rendered: a locale that\n * does not need a figure is allowed not to name it.\n *\n * **The delimiter is `%name%`, not `{name}`** (B33-1277). A brace is ICU\n * MessageFormat argument syntax, so a consumer storing these templates in its own\n * next-intl catalogue could not read them back through its own formatter. It can\n * now. `src/fill-template.ts` carries the reasoning, including why `%{name}` and\n * `{{name}}` would both have kept the collision. A `{braced}` name in a template\n * is ordinary text here and is passed through untouched.\n */\nexport interface WalletChipLabels {\n /** Accessible name for the expanded chip's status region. Default \"Wallet balance\". */\n region: string\n /** The chip header. Default \"Wallet\". */\n name: string\n /**\n * The unit rendered beside the figure. Default \"tokens\".\n *\n * A single string, and so not count-dependent: a balance of one renders \"1\n * tokens\" in English. That has been true since B33-849 and B33-1278 did not\n * change it -- `unit` never had the function form, so dropping that form took\n * nothing away here. It is also a state the chip is unlikely to reach: a\n * one-token balance is an all-but-empty wallet. If a locale needs the unit to\n * agree with the figure, the shape to add is a count-aware field, which is a\n * decision and not a refactor; nothing in the package invents one meanwhile.\n */\n unit: string\n /** Screen-reader-only text in the figure when the balance is unknown. Default \"Balance unknown\". */\n balanceUnknown: string\n /** The granted side of the split -- granted burns first. Default \"Granted\". */\n granted: string\n /** The purchased side of the split -- purchased never expires. Default \"Purchased\". */\n purchased: string\n /**\n * The footer, around the preformatted expiry date. Supplied whole so the\n * consumer owns word order.\n *\n * Placeholder: `%date%`. Default (en) `Granted expires %date% · burns first`.\n */\n grantExpiry: string\n /** The top-up button. Default \"Top up\". */\n topUp: string\n /**\n * The rail's abbreviated balance, around the one-decimal-thousand figure\n * (e.g. \"4.6\"). Both the visible text in the 56px rail and the figure that\n * `railBalance` is given.\n *\n * Placeholder: `%figure%`. Default (en) `%figure%k`.\n *\n * The figure itself is formatted for `locale` -- \"4.6\" in `en-US`, \"4,6\" in\n * `fr-FR` -- but the mark after it is a word, and locales disagree about it:\n * French writes \"4,6 k\" with a space, German abbreviates a thousand \"Tsd.\".\n * So the mark is a label like every other word the chip renders, and a\n * template rather than a bare suffix, because a locale is entitled to put the\n * mark somewhere other than the end (B33-876).\n */\n railFigure: string\n /**\n * The rail group's accessible name, around the abbreviated balance (e.g. \"4.6k\").\n *\n * Placeholder: `%balance%`. Default (en) `Wallet balance %balance%`.\n */\n railBalance: string\n /** The rail group's accessible name when the balance is unknown. Default \"Wallet balance unknown\". */\n railBalanceUnknown: string\n /** Screen-reader-only marker on the rail when the balance is unknown. Default \"unknown\". */\n railUnknown: string\n /**\n * The bar's accessible label, around the three preformatted figures. Assembled\n * whole rather than concatenated from fragments -- the shape that cannot be\n * translated at all otherwise.\n *\n * Placeholders: `%granted%`, `%purchased%`, `%remaining%`. Default (en)\n * `%granted% granted and %purchased% purchased of %remaining% remaining`.\n */\n bar: string\n /**\n * The top-bar chip's popover, named for a screen reader: a disclosure panel\n * carries no widget role, so it takes an `aria-label` (ADR-0010). Default\n * \"Token balance\". `placement=\"topbar\"` only (B33-1712).\n */\n popover: string\n /**\n * The popover's granted line, around the preformatted amount (board 21:\n * \"3,420 granted\"). Placeholder `%amount%`. Default `%amount% granted`.\n */\n grantedFigure: string\n /** The purchased line, on the same terms. Placeholder `%amount%`. Default `%amount% purchased`. */\n purchasedFigure: string\n /**\n * The note under the granted line when `grantExpires` is known (board 21).\n * Placeholder `%date%`, the same date the sidebar card prints in\n * `grantExpiry`: the day this month's grant expires and the next one lands.\n * One date, said two ways -- \"expires\" where the card warns about burn order,\n * \"resets\" where the popover explains what the grant is.\n *\n * Default `Included each month · resets %date%`, with nothing after the date.\n * Until 0.8.0-next.3 it ended `Resets %date%.`, and a locale that abbreviates\n * months with a full stop printed two (\"30 sept..\", Score). Keep a\n * translation's punctuation off the end of `%date%` for the same reason.\n */\n grantedNote: string\n /**\n * The same note when `grantExpires` is not supplied, so the chip never prints\n * a reset date nobody gave it. Default `Included each month.`\n */\n grantedNoteUndated: string\n /** The note under the purchased line. Default `Yours to keep. These never expire.` */\n purchasedNote: string\n /** The popover's link to the Wallet (`walletHref`). Default \"Open\". */\n open: string\n /** The popover's buy button (`onTopUp`). Default \"Buy tokens\". */\n buyTokens: string\n /**\n * The top-bar chip's unit when the account is past zero (`totalOnly` with a negative `balance`,\n * B33-1712), after the figure for how far past zero it is: \"420 past zero\".\n * The Wallet's own past-zero screen says it in these words rather than with a\n * minus sign, and the chip follows it. Default `past zero`.\n */\n pastZero: string\n /**\n * The same, in the popover, where there is room for the noun. Default\n * `tokens past zero`.\n */\n pastZeroLong: string\n /**\n * The past-zero pill's accessible name. A template: `%amount%` is the\n * formatted figure past zero. Default `Wallet balance %amount% tokens past zero`.\n */\n pastZeroBalance: string\n /**\n * The top-bar popover's line once this cycle's grant is past the threshold\n * (80% burned, B33-1710): the at-a-glance warning the sidebar card's pill\n * carried, moved into the bar's popover. Also appended to the chip's\n * accessible name, so the warning is not colour alone. A template:\n * `%percent%` is the burned share, formatted for `locale` (\"87%\", \"87 %\").\n * Default `You've used %percent% of this month's grant.`\n */\n thresholdNote: string\n}\n\n/**\n * The English defaults. A consumer that passes nothing renders exactly what the\n * chip rendered before this prop existed, so the wallet baselines do not move.\n *\n * **Every field is a string, and now by construction.** That is what makes\n * `labels={defaultWalletChipLabels}` and\n * `labels={{ ...defaultWalletChipLabels, name: 'Portefeuille' }}` -- the pattern\n * the specimen shows and this package's own advice recommends -- legal from a\n * Server Component (B33-880). It used to be a runtime fact pinned by a test,\n * because `WalletChipLabels` admitted functions on four fields and `satisfies`\n * could not tell the two apart (B33-1029). With the union gone the compiler\n * carries it: a function here is a type error at the `satisfies`, and\n * `tests/wallet-chip-labels.type-test.ts` asserts the all-strings shape of the\n * interface itself so the guarantee cannot be lost by widening one field.\n *\n * Frozen because it is a public export reaching four products on a version bump.\n * `const` protects the binding, not the contents: without the freeze, a consumer\n * aliasing it by reference -- `const mine = defaultWalletChipLabels; mine.name =\n * 'Portefeuille'` -- would silently rename every chip in the process (B33-877).\n */\nexport const defaultWalletChipLabels = Object.freeze({\n region: 'Wallet balance',\n name: 'Wallet',\n unit: 'tokens',\n balanceUnknown: 'Balance unknown',\n granted: 'Granted',\n purchased: 'Purchased',\n grantExpiry: 'Granted expires %date% · burns first',\n topUp: 'Top up',\n railFigure: '%figure%k',\n railBalance: 'Wallet balance %balance%',\n railBalanceUnknown: 'Wallet balance unknown',\n railUnknown: 'unknown',\n bar: '%granted% granted and %purchased% purchased of %remaining% remaining',\n popover: 'Token balance',\n grantedFigure: '%amount% granted',\n purchasedFigure: '%amount% purchased',\n grantedNote: 'Included each month · resets %date%',\n grantedNoteUndated: 'Included each month.',\n purchasedNote: 'Yours to keep. These never expire.',\n open: 'Open',\n buyTokens: 'Buy tokens',\n pastZero: 'past zero',\n pastZeroLong: 'tokens past zero',\n pastZeroBalance: 'Wallet balance %amount% tokens past zero',\n thresholdNote: \"You've used %percent% of this month's grant.\",\n} satisfies WalletChipLabels)\n\n/**\n * The labels as the render consumes them: the four templates presented as\n * functions of their values, so the component writes `t.bar(…)` and never handles\n * a template itself.\n *\n * This is internal -- it is not exported from `src/index.ts` -- and it stays a\n * function shape now that `WalletChipLabels` holds only strings, for two reasons.\n * The interpolation has to happen somewhere, and one site per label is the whole\n * of it; and the call is where B33-875's laziness lives, so a label for an element\n * that does not render is not interpolated at all.\n */\nexport interface ResolvedWalletChipLabels\n extends Omit<WalletChipLabels, 'grantExpiry' | 'railFigure' | 'railBalance' | 'bar' | 'grantedFigure' | 'purchasedFigure' | 'grantedNote' | 'pastZeroBalance' | 'thresholdNote'> {\n grantExpiry: (date: string) => string\n grantedFigure: (amount: string) => string\n purchasedFigure: (amount: string) => string\n grantedNote: (date: string) => string\n railFigure: (figure: string) => string\n railBalance: (balance: string) => string\n bar: (granted: string, purchased: string, remaining: string) => string\n pastZeroBalance: (amount: string) => string\n thresholdNote: (percent: string) => string\n}\n\n/**\n * Merge a consumer's partial `labels` onto the English defaults, treating an\n * explicitly-`undefined` field as unsupplied, and present the four templates as\n * functions of their values.\n *\n * A next-intl `t('...')` returns `undefined` on a missed key, so\n * `{ name: undefined }` is what one missing translation out of thirteen looks like\n * at the call site -- it must fall back to English, not overwrite the default\n * with `undefined` and blank the header, unname the button, or hand\n * `fillTemplate` an `undefined` template (B33-873). A plain object spread copies\n * the `undefined` across; a per-field skip does not.\n */\nexport function resolveWalletChipLabels(labels?: Partial<WalletChipLabels>): ResolvedWalletChipLabels {\n const supplied = Object.fromEntries(\n Object.entries(labels ?? {}).filter(([, value]) => value !== undefined),\n ) as Partial<WalletChipLabels>\n const merged = { ...defaultWalletChipLabels, ...supplied }\n return {\n ...merged,\n grantExpiry: (date) => fillTemplate(merged.grantExpiry, { date }),\n railFigure: (figure) => fillTemplate(merged.railFigure, { figure }),\n railBalance: (balance) => fillTemplate(merged.railBalance, { balance }),\n bar: (granted, purchased, remaining) => fillTemplate(merged.bar, { granted, purchased, remaining }),\n grantedFigure: (amount) => fillTemplate(merged.grantedFigure, { amount }),\n purchasedFigure: (amount) => fillTemplate(merged.purchasedFigure, { amount }),\n grantedNote: (date) => fillTemplate(merged.grantedNote, { date }),\n pastZeroBalance: (amount) => fillTemplate(merged.pastZeroBalance, { amount }),\n thresholdNote: (percent) => fillTemplate(merged.thresholdNote, { percent }),\n }\n}\n"],"names":["defaultWalletChipLabels","resolveWalletChipLabels","labels","supplied","value","merged","date","fillTemplate","figure","balance","granted","purchased","remaining","amount","percent"],"mappings":";AAyOO,MAAMA,IAA0B,OAAO,OAAO;AAAA,EACnD,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,aAAa;AAAA,EACb,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,aAAa;AAAA,EACb,KAAK;AAAA,EACL,SAAS;AAAA,EACT,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,MAAM;AAAA,EACN,WAAW;AAAA,EACX,UAAU;AAAA,EACV,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,eAAe;AACjB,CAA4B;AAsCrB,SAASC,EAAwBC,GAA8D;AACpG,QAAMC,IAAW,OAAO;AAAA,IACtB,OAAO,QAAQD,KAAU,EAAE,EAAE,OAAO,CAAC,CAAA,EAAGE,CAAK,MAAMA,MAAU,MAAS;AAAA,EAAA,GAElEC,IAAS,EAAE,GAAGL,GAAyB,GAAGG,EAAA;AAChD,SAAO;AAAA,IACL,GAAGE;AAAA,IACH,aAAa,CAACC,MAASC,EAAaF,EAAO,aAAa,EAAE,MAAAC,GAAM;AAAA,IAChE,YAAY,CAACE,MAAWD,EAAaF,EAAO,YAAY,EAAE,QAAAG,GAAQ;AAAA,IAClE,aAAa,CAACC,MAAYF,EAAaF,EAAO,aAAa,EAAE,SAAAI,GAAS;AAAA,IACtE,KAAK,CAACC,GAASC,GAAWC,MAAcL,EAAaF,EAAO,KAAK,EAAE,SAAAK,GAAS,WAAAC,GAAW,WAAAC,EAAA,CAAW;AAAA,IAClG,eAAe,CAACC,MAAWN,EAAaF,EAAO,eAAe,EAAE,QAAAQ,GAAQ;AAAA,IACxE,iBAAiB,CAACA,MAAWN,EAAaF,EAAO,iBAAiB,EAAE,QAAAQ,GAAQ;AAAA,IAC5E,aAAa,CAACP,MAASC,EAAaF,EAAO,aAAa,EAAE,MAAAC,GAAM;AAAA,IAChE,iBAAiB,CAACO,MAAWN,EAAaF,EAAO,iBAAiB,EAAE,QAAAQ,GAAQ;AAAA,IAC5E,eAAe,CAACC,MAAYP,EAAaF,EAAO,eAAe,EAAE,SAAAS,GAAS;AAAA,EAAA;AAE9E;"}
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.btn-primary,.btn-quiet,.btn-danger{cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.btn-primary{border:none;background:var(--color-primary);color:var(--color-primary-foreground)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-quiet{background:transparent;color:var(--color-foreground-secondary)}.btn-quiet:hover:not(:disabled){background:var(--color-surface-muted)}.btn-danger{border:1px solid var(--color-danger);background:var(--color-danger);color:var(--color-neutral-0)}.btn-danger:hover:not(:disabled){border-color:color-mix(in srgb,var(--color-danger) 85%,var(--color-neutral-950));background:color-mix(in srgb,var(--color-danger) 85%,var(--color-neutral-950))}.btn-primary:disabled,.btn-quiet:disabled,.btn-danger:disabled{opacity:.55;cursor:not-allowed}.spinner{box-sizing:border-box;width:var(--spacing-4_5);height:var(--spacing-4_5);border:2px solid var(--color-neutral-0);border-right-color:transparent;border-radius:var(--radius-full);animation:boost33-spin var(--dur-spin) linear infinite}.spinner--sm{width:var(--spacing-3_5);height:var(--spacing-3_5)}.spinner--primary{border-color:var(--color-primary);border-right-color:transparent}@keyframes boost33-spin{to{transform:rotate(360deg)}}.sk{display:block;border-radius:var(--radius-md);background:var(--color-surface-muted);animation:boost33-pulse var(--dur-pulse) ease-in-out infinite}.sk-group{animation:boost33-appear var(--dur-base) var(--ease-out) var(--dur-fast) both}.reveal{animation:boost33-appear var(--dur-base) var(--ease-out) both}@keyframes boost33-pulse{50%{opacity:.55}}@keyframes boost33-appear{0%{opacity:0}}@media(prefers-reduced-motion:no-preference){.btn-primary:active:not(:disabled),.btn-quiet:active:not(:disabled),.btn-danger:active:not(:disabled){transform:scale(.98)}}@media(prefers-reduced-motion:reduce){.sk,.sk-group,.reveal,.spinner{animation:none}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important}}._sidebar_197wz_7{display:flex;flex-direction:column;box-sizing:border-box;width:var(--container-sidebar);height:100%;padding:var(--spacing-4) var(--spacing-3);border-right:1px solid var(--color-border);background:var(--color-background);font-family:var(--font-sans)}._sidebar_197wz_7[data-collapsed=true]{width:var(--container-sidebar-rail)}._sidebar_197wz_7>nav{flex-shrink:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin:calc(-1 * var(--spacing-1));padding:var(--spacing-1);scroll-padding:var(--spacing-1)}@media(prefers-reduced-motion:reduce){._sidebar_197wz_7>nav{scroll-behavior:auto}}._section_wg5c6_5{display:flex;flex-direction:column}._header_wg5c6_13{margin:0;padding:var(--spacing-2) var(--spacing-2_5);color:var(--color-foreground-muted);font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-wider);text-transform:uppercase}._wordmark_ccf4z_4{display:flex;align-items:center;gap:var(--spacing-2_5);font-family:var(--font-display)}a._wordmark_ccf4z_4{border-radius:var(--radius-lg);text-decoration:none}a._wordmark_ccf4z_4:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._mark_ccf4z_32{display:inline-flex;flex:0 0 var(--spacing-6);align-items:center;justify-content:center;width:var(--spacing-6);height:var(--spacing-6)}._mark_ccf4z_32 svg{width:100%;height:100%}._name_ccf4z_50{color:var(--color-foreground);font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight)}._wordmark_ccf4z_4[data-collapsed=true] ._name_ccf4z_50{position:absolute;overflow:hidden;clip-path:inset(50%);width:1px;height:1px;white-space:nowrap}._wordmark_ccf4z_4[data-collapsed=true]{justify-content:center}._tile_w89ja_12{fill:var(--color-neutral-950)}._ring_w89ja_16{fill:var(--color-primary)}._mark_w89ja_24{display:block}._link_w89ja_33{display:inline-flex;vertical-align:top;border-radius:var(--radius-lg);text-decoration:none}._link_w89ja_33:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._mark_1jt5g_6{display:block}._ground_1jt5g_17{rx:var(--radius-product-tile)}._row_1vu2t_4{display:flex;align-items:center;width:100%;gap:var(--spacing-2_5);padding:var(--spacing-2) var(--spacing-2_5);border:none;border-radius:var(--radius-lg);background:transparent;font-family:var(--font-sans);text-align:left;text-decoration:none;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}._row_1vu2t_4:hover{background:var(--color-surface-muted)}._row_1vu2t_4[data-active=true]{background:var(--color-surface)}._row_1vu2t_4:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._icon_1vu2t_41{display:inline-flex;flex:0 0 var(--spacing-4);align-items:center;justify-content:center;width:var(--spacing-4);height:var(--spacing-4);color:var(--color-foreground-secondary)}._icon_1vu2t_41 svg{width:100%;height:100%}._row_1vu2t_4[data-active=true] ._icon_1vu2t_41{color:var(--color-foreground)}._row_1vu2t_4[data-collapsed=true]{justify-content:center}._label_1vu2t_66{flex:1 1 auto;min-width:0;overflow:hidden;color:var(--color-foreground-secondary);font-size:var(--text-nav-label);font-weight:var(--font-weight-regular);text-overflow:ellipsis;white-space:nowrap}._row_1vu2t_4[data-active=true] ._label_1vu2t_66{color:var(--color-foreground)}._row_1vu2t_4[data-collapsed=true] ._label_1vu2t_66{position:absolute;overflow:hidden;clip-path:inset(50%);width:1px;height:1px;white-space:nowrap}._trailingSlot_1vu2t_106{display:flex;flex:0 0 var(--spacing-5_5);height:var(--spacing-4);align-items:center;justify-content:flex-end;width:var(--spacing-5_5);font-family:var(--font-sans)}._row_1vu2t_4[data-collapsed=true] ._trailingSlot_1vu2t_106{display:none}._count_1vu2t_122{color:var(--color-foreground-muted);font-size:var(--text-xs);font-weight:var(--font-weight-medium);line-height:var(--spacing-4)}._countUrgent_1vu2t_134{display:inline-flex;box-sizing:border-box;min-width:var(--spacing-5);height:var(--spacing-4_5);align-items:center;justify-content:center;padding:0 var(--spacing-1_5);border-radius:var(--radius-full);background:var(--color-orange-600);color:var(--color-primary-foreground);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold)}._dot_1vu2t_152{width:var(--spacing-1_75);height:var(--spacing-1_75);border-radius:var(--radius-full);background:var(--color-warning)}._srOnly_1vu2t_151{position:absolute;overflow:hidden;width:1px;height:1px;clip-path:inset(50%);white-space:nowrap}@media(prefers-reduced-motion:reduce){._row_1vu2t_4{transition:none}}._primary_qxhao_26,._outlined_qxhao_27{display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;gap:var(--spacing-2);border-radius:var(--radius-lg);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);line-height:var(--spacing-4);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}._primary_qxhao_26{height:var(--spacing-10);padding:0 var(--spacing-4);border:none;background:var(--color-neutral-950);color:var(--color-neutral-0)}._primary_qxhao_26:hover{background:var(--color-neutral-800)}._primary_qxhao_26[data-tone=accent]{background:var(--color-orange-600);color:var(--color-primary-foreground)}._primary_qxhao_26[data-tone=accent]:hover{background:var(--color-orange-700)}._outlined_qxhao_27{height:var(--spacing-8);padding:0 var(--spacing-3);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-foreground)}._outlined_qxhao_27:hover{background:var(--color-surface-muted)}._quiet_qxhao_77{padding:0;border:none;background:transparent;color:var(--color-foreground);font-family:var(--font-sans);font-size:inherit;font-weight:var(--font-weight-medium);line-height:inherit;text-decoration:none;cursor:pointer}._quiet_qxhao_77:hover{text-decoration:underline}._primary_qxhao_26:focus-visible,._outlined_qxhao_27:focus-visible,._quiet_qxhao_77:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._primary_qxhao_26 svg,._outlined_qxhao_27 svg{width:var(--spacing-4);height:var(--spacing-4);flex-shrink:0}@media(prefers-reduced-motion:reduce){._primary_qxhao_26,._outlined_qxhao_27{transition:none}}._chip_qvtyk_37{--chip-lift: 0px;position:relative;box-sizing:border-box;width:100%;padding:calc(var(--spacing-3) + var(--chip-lift));border:1px solid var(--color-border);border-radius:var(--radius-2xl);background:transparent;font-family:var(--font-sans)}._chip_qvtyk_37:not([data-unknown]):hover,._chip_qvtyk_37:not([data-unknown]):focus-within,._chip_qvtyk_37[data-threshold]{--chip-lift: var(--spacing-0_5);box-shadow:var(--shadow-overlay)}._chip_qvtyk_37:not([data-threshold]):not([data-unknown]):hover,._chip_qvtyk_37:not([data-threshold]):not([data-unknown]):focus-within{background:var(--color-surface)}._chip_qvtyk_37:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._header_qvtyk_74{display:flex;align-items:center;gap:var(--spacing-2)}._chip_qvtyk_37:not([data-threshold]):not([data-unknown]) ._header_qvtyk_74{padding-right:var(--spacing-topup-reserve)}._name_qvtyk_83{min-width:0;overflow:hidden;color:var(--color-foreground-muted);font-size:var(--text-xs);font-weight:var(--font-weight-medium);line-height:var(--leading-tight);text-overflow:ellipsis;white-space:nowrap}._pill_qvtyk_162{padding:var(--spacing-0_5) var(--spacing-2);border-radius:var(--radius-full);background:var(--color-warning-subtle);color:var(--color-warning);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold)}._figure_qvtyk_171{display:flex;align-items:baseline;gap:var(--spacing-1_5);margin-top:calc(var(--spacing-2_5) + var(--chip-lift))}._amount_qvtyk_186{color:var(--color-foreground);font-family:var(--font-mono);font-size:var(--text-2xl);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-tight);line-height:var(--leading-none)}._unit_qvtyk_195{color:var(--color-foreground-muted);font-size:var(--text-xs)}._retry_qvtyk_200{width:var(--spacing-3);height:var(--spacing-3);color:var(--color-foreground-muted)}._bar_qvtyk_209{display:flex;overflow:hidden;width:100%;height:calc(var(--spacing-1_25) + var(--chip-lift));margin-top:calc(var(--spacing-2_5) + var(--chip-lift));border-radius:var(--radius-full)}._bar_qvtyk_209[data-tone=rest]{background:var(--color-surface-muted)}._bar_qvtyk_209[data-tone=threshold]{background:var(--color-warning-subtle)}._bar_qvtyk_209[data-tone=unknown]{background:var(--color-surface-muted)}._segmentGranted_qvtyk_230,._segmentPurchased_qvtyk_231{height:100%;transition:width var(--dur-fast) var(--ease-out)}._segmentGranted_qvtyk_230{background:var(--color-grant)}._segmentPurchased_qvtyk_231{background:var(--color-purchased)}._details_qvtyk_275{display:none}._chip_qvtyk_37:hover ._details_qvtyk_275,._chip_qvtyk_37:focus-within ._details_qvtyk_275{display:block}._split_qvtyk_284{display:flex;flex-direction:column;gap:var(--spacing-1);margin:var(--spacing-2_5) 0 0}._splitRow_qvtyk_291{display:flex;align-items:center;justify-content:space-between}._splitLabel_qvtyk_297{display:flex;align-items:center;gap:var(--spacing-1_5);color:var(--color-foreground);font-size:var(--text-xs)}._splitAmount_qvtyk_305{margin:0;color:var(--color-foreground);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums}._dotGranted_qvtyk_313,._dotPurchased_qvtyk_314{width:var(--spacing-1_5);height:var(--spacing-1_5);border-radius:var(--radius-full)}._dotGranted_qvtyk_313{background:var(--color-grant)}._dotPurchased_qvtyk_314{background:var(--color-purchased)}._footer_qvtyk_328{margin:var(--spacing-3) 0 0;padding-top:var(--spacing-1);border-top:1px solid var(--color-border);color:var(--color-foreground-muted);font-size:var(--text-2xs)}._burnNote_qvtyk_336{margin:var(--spacing-2_5) 0 0;color:var(--color-foreground-secondary);font-size:var(--text-2xs);line-height:var(--leading-snug)}._topUp_qvtyk_87:not([data-grown=true]){position:absolute;top:calc(var(--spacing-3) + var(--chip-lift));right:calc(var(--spacing-3) + var(--chip-lift));font-size:var(--text-xs);opacity:0;transition:opacity var(--dur-fast) var(--ease-out)}._chip_qvtyk_37:hover ._topUp_qvtyk_87,._chip_qvtyk_37:focus-within ._topUp_qvtyk_87,._topUp_qvtyk_87:focus-visible{opacity:1}._topUp_qvtyk_87[data-grown=true]{width:100%;margin-top:var(--spacing-2_5)}._rail_qvtyk_387{--chip-lift: 0px;position:relative;display:flex;box-sizing:border-box;width:100%;flex-direction:column;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2);font-family:var(--font-sans)}._railIcon_qvtyk_401{width:var(--spacing-6);height:var(--spacing-6);color:var(--color-foreground-secondary)}._railFigure_qvtyk_407{color:var(--color-foreground);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}._rail_qvtyk_387 ._bar_qvtyk_209{height:var(--spacing-0_5);margin-top:0}._srOnly_qvtyk_420{position:absolute;overflow:hidden;clip-path:inset(50%);width:1px;height:1px;white-space:nowrap}@media(prefers-reduced-motion:reduce){._segmentGranted_qvtyk_230,._segmentPurchased_qvtyk_231,._topUp_qvtyk_87{transition:none}}._topRoot_qvtyk_444{position:relative;font-family:var(--font-sans)}._topTrigger_qvtyk_453{display:flex;box-sizing:border-box;height:var(--spacing-8);align-items:center;gap:var(--spacing-2_5);padding:0 var(--spacing-3);border:none;border-radius:var(--radius-lg);background:var(--color-surface-muted);font-family:var(--font-sans);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}._topTrigger_qvtyk_453:hover,._topTrigger_qvtyk_453[aria-expanded=true]{background:var(--color-border)}._topTrigger_qvtyk_453:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._topFigure_qvtyk_482{display:flex;align-items:baseline;gap:var(--spacing-1_25);white-space:nowrap}._topAmount_qvtyk_489{color:var(--color-foreground);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);line-height:var(--spacing-4)}._topUnit_qvtyk_497{color:var(--color-foreground-muted);font-size:var(--text-2xs);line-height:var(--spacing-3_5)}._topTrigger_qvtyk_453:hover ._topUnit_qvtyk_497,._topTrigger_qvtyk_453[aria-expanded=true] ._topUnit_qvtyk_497{color:var(--color-foreground-secondary)}._topChevron_qvtyk_508{width:var(--spacing-3);height:var(--spacing-3);flex-shrink:0;color:var(--color-foreground-muted)}._topBar_qvtyk_518,._popBar_qvtyk_519{display:flex;overflow:hidden;flex-shrink:0;border-radius:var(--radius-sm)}._topBar_qvtyk_518{width:var(--spacing-11);height:var(--spacing-1_5);gap:var(--spacing-0_5)}._popover_qvtyk_534{position:absolute;z-index:1;top:100%;left:0;display:flex;width:var(--container-token-popover);box-sizing:border-box;flex-direction:column;gap:var(--spacing-4);margin-top:var(--spacing-1_5);padding:var(--spacing-5);border-radius:var(--radius-2xl);background:var(--color-surface);box-shadow:var(--shadow-overlay)}._popHead_qvtyk_551{display:flex;align-items:baseline;justify-content:space-between;gap:var(--spacing-3)}._popFigure_qvtyk_558{display:flex;align-items:baseline;gap:var(--spacing-2)}._popAmount_qvtyk_566{color:var(--color-foreground);font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight);line-height:var(--leading-none)}._popUnit_qvtyk_575{color:var(--color-foreground-secondary);font-size:var(--text-sm)}._popBar_qvtyk_519{width:100%;height:var(--spacing-2);gap:var(--spacing-0_75)}._legend_qvtyk_589{display:flex;flex-direction:column;gap:var(--spacing-3);margin:0;padding:0;list-style:none}._legendText_qvtyk_598{display:flex;flex-direction:column}._legendRow_qvtyk_603{display:flex;align-items:flex-start;gap:var(--spacing-2_5)}._swatchGranted_qvtyk_609,._swatchPurchased_qvtyk_610{width:var(--spacing-2_25);height:var(--spacing-2_25);flex-shrink:0;margin-top:var(--spacing-1);border-radius:var(--radius-sm)}._swatchGranted_qvtyk_609{background:var(--color-grant)}._swatchPurchased_qvtyk_610{background:var(--color-purchased)}._legendFigure_qvtyk_626{color:var(--color-foreground);font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--spacing-4_5)}._legendNote_qvtyk_634{color:var(--color-foreground-muted);font-size:var(--text-xs);line-height:var(--spacing-4)}._popFoot_qvtyk_641{display:flex;flex-direction:column;gap:var(--spacing-3);padding-top:var(--spacing-3_5);border-top:1px solid var(--color-border)}._popNote_qvtyk_649{margin:0;color:var(--color-foreground-secondary);font-size:var(--text-sm);line-height:var(--spacing-4_5)}._buy_qvtyk_658{width:100%}@media(prefers-reduced-motion:reduce){._topTrigger_qvtyk_453{transition:none}}._bar_1lxv8_9{display:flex;align-items:center;gap:var(--spacing-5);box-sizing:border-box;height:var(--spacing-12);padding:0 var(--spacing-8);border-bottom:1px solid var(--color-border);background:var(--color-surface);font-family:var(--font-sans)}._start_1lxv8_25,._end_1lxv8_26{display:flex;min-width:0;flex:1 1 0;align-items:center}._start_1lxv8_25{gap:var(--spacing-5)}._end_1lxv8_26{justify-content:flex-end;gap:var(--spacing-3)}._centre_1lxv8_45{display:flex;flex:0 0 auto;align-items:center;gap:var(--spacing-2)}._label_1lxv8_54{color:var(--color-foreground-muted);font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--spacing-4);white-space:nowrap}._label_1lxv8_54[data-after-switcher=true]{padding-left:var(--spacing-8)}@supports (animation-timeline: --a) and (timeline-scope: --a){@container style(--boost33-shell-timeline: on){._bar_1lxv8_9{position:relative;z-index:1;animation:_scrolled_1lxv8_1 linear both;animation-timeline:--boost33-shell-scroll;animation-range:0 var(--spacing-10)}}}@keyframes _scrolled_1lxv8_1{to{box-shadow:var(--shadow-scrolled)}}._button_oj9om_6{display:inline-flex;box-sizing:border-box;width:var(--spacing-8);height:var(--spacing-8);flex-shrink:0;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-lg);background:var(--color-surface-muted);color:var(--color-foreground);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}._button_oj9om_6:hover{background:var(--color-border)}._button_oj9om_6:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._bell_oj9om_33{width:var(--spacing-4);height:var(--spacing-4)}._dot_oj9om_42{fill:var(--color-primary)}._button_oj9om_6:hover ._dot_oj9om_42{fill:var(--color-orange-600)}._srOnly_oj9om_41{position:absolute;overflow:hidden;width:1px;height:1px;clip-path:inset(50%);white-space:nowrap}@media(prefers-reduced-motion:reduce){._button_oj9om_6{transition:none}}._header_i17td_42{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-8);padding:var(--spacing-4_5) var(--spacing-8) var(--spacing-4);background:var(--color-surface);font-family:var(--font-sans)}._headings_i17td_52{display:flex;min-width:0;flex-direction:column;gap:var(--spacing-1)}._title_i17td_33{margin:0;color:var(--color-foreground);font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}._subtitle_i17td_74{margin:0;color:var(--color-foreground-secondary);font-size:var(--text-base);font-weight:var(--font-weight-regular);line-height:var(--leading-snug)}._actions_i17td_82{display:flex;flex:0 0 auto;align-items:center;gap:var(--spacing-2)}._shell_1rvaz_13{display:flex;height:100%;flex-direction:column;background:var(--color-surface);font-family:var(--font-sans)}._body_1rvaz_24{display:flex;min-height:0;flex:1}._appName_1rvaz_39{flex-shrink:0;margin:0;padding:var(--spacing-1) var(--spacing-2_5) var(--spacing-3_5);overflow:hidden;color:var(--color-foreground-muted);font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight);line-height:var(--spacing-5);text-overflow:ellipsis;white-space:nowrap}._foot_1rvaz_65{display:flex;flex-direction:column;gap:var(--spacing-0_5);margin-block-start:auto;padding-block-start:var(--spacing-4)}._actionSlot_1rvaz_79{display:flex;flex-shrink:0;margin-block-start:auto;padding-block-start:var(--spacing-4)}._actionSlot_1rvaz_79+._foot_1rvaz_65{margin-block-start:var(--spacing-4);padding-block-start:var(--spacing-2_5);border-top:1px solid var(--color-border)}._action_1rvaz_79{width:100%}._action_1rvaz_79[data-collapsed=true]{width:var(--spacing-10);padding:0}._srOnly_1rvaz_103{position:absolute;overflow:hidden;width:1px;height:1px;clip-path:inset(50%);white-space:nowrap}._nav_1rvaz_116{display:flex;flex-direction:column;gap:var(--spacing-4)}._main_1rvaz_125{display:flex;min-width:0;flex:1;flex-direction:column}._content_1rvaz_146{flex:1;min-height:0;overflow-y:auto;background:var(--color-surface)}@supports (animation-timeline: --a) and (timeline-scope: --a){._shell_1rvaz_13{timeline-scope:--boost33-shell-scroll;--boost33-shell-timeline: on}._content_1rvaz_146{scroll-timeline:--boost33-shell-scroll block}}._phoneChrome_1rvaz_201{display:none}@media not (min-width:48rem){._shell_1rvaz_13[data-chrome-from=md]>:not(._body_1rvaz_24,._phoneChrome_1rvaz_201),._shell_1rvaz_13[data-chrome-from=md] ._body_1rvaz_24>:not(._main_1rvaz_125){display:none}._shell_1rvaz_13[data-chrome-from=md]{height:auto}._shell_1rvaz_13[data-chrome-from=md]>._phoneChrome_1rvaz_201{display:contents}._shell_1rvaz_13[data-chrome-from=md] ._content_1rvaz_146{overflow-y:visible}}@media not (min-width:64rem){._shell_1rvaz_13[data-chrome-from=lg]>:not(._body_1rvaz_24,._phoneChrome_1rvaz_201),._shell_1rvaz_13[data-chrome-from=lg] ._body_1rvaz_24>:not(._main_1rvaz_125){display:none}._shell_1rvaz_13[data-chrome-from=lg]{height:auto}._shell_1rvaz_13[data-chrome-from=lg]>._phoneChrome_1rvaz_201{display:contents}._shell_1rvaz_13[data-chrome-from=lg] ._content_1rvaz_146{overflow-y:visible}}@media not (min-width:80rem){._shell_1rvaz_13[data-chrome-from=xl]>:not(._body_1rvaz_24,._phoneChrome_1rvaz_201),._shell_1rvaz_13[data-chrome-from=xl] ._body_1rvaz_24>:not(._main_1rvaz_125){display:none}._shell_1rvaz_13[data-chrome-from=xl]{height:auto}._shell_1rvaz_13[data-chrome-from=xl]>._phoneChrome_1rvaz_201{display:contents}._shell_1rvaz_13[data-chrome-from=xl] ._content_1rvaz_146{overflow-y:visible}}._root_18wu0_8{position:relative;font-family:var(--font-sans)}._trigger_18wu0_17{display:flex;box-sizing:border-box;width:100%;align-items:center;gap:var(--spacing-2);height:var(--spacing-8);padding:0 var(--spacing-3);border:none;border-radius:var(--radius-lg);background:var(--color-surface-muted);font-family:var(--font-sans);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}._trigger_18wu0_17:hover,._trigger_18wu0_17[aria-expanded=true]{background:var(--color-border)}._trigger_18wu0_17:focus-visible,._railTrigger_18wu0_52:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._triggerName_18wu0_62{overflow:hidden;flex:1;color:var(--color-foreground);font-family:var(--font-display);font-size:var(--text-base);font-weight:var(--font-weight-semibold);line-height:var(--spacing-4_5);text-align:left;text-overflow:ellipsis;white-space:nowrap}._chevron_18wu0_79{width:var(--spacing-3);height:var(--spacing-3);flex-shrink:0;color:var(--color-foreground-muted);transition:transform var(--dur-fast) var(--ease-out)}._trigger_18wu0_17[aria-expanded=true] ._chevron_18wu0_79{transform:rotate(180deg)}._railTrigger_18wu0_52{display:flex;box-sizing:border-box;width:100%;min-height:var(--spacing-6);align-items:flex-start;justify-content:center;padding:0;border:none;background:transparent;cursor:pointer}._panel_18wu0_127{position:absolute;z-index:1;top:100%;left:0;display:flex;width:var(--container-app-switcher);box-sizing:border-box;flex-direction:column;gap:var(--spacing-1);margin-top:var(--spacing-1_5);padding:var(--spacing-2);border-radius:var(--radius-2xl);background:var(--color-surface);box-shadow:var(--shadow-overlay)}._hubRow_18wu0_147,._productRow_18wu0_148{display:flex;box-sizing:border-box;width:100%;align-items:center;gap:var(--spacing-3);border:none;font-family:var(--font-sans);text-align:left;text-decoration:none;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}._hubRow_18wu0_147{margin-bottom:var(--spacing-1);padding:var(--spacing-2_75) var(--spacing-3);border-radius:var(--radius-xl);background:var(--color-neutral-950);color:var(--color-neutral-0)}._hubRow_18wu0_147:hover{background:var(--color-neutral-800)}._hubRow_18wu0_147 ._rowText_18wu0_179{flex:1;gap:var(--spacing-0_5)}._hubRow_18wu0_147 ._rowName_18wu0_184{color:var(--color-neutral-0);font-size:var(--text-base);font-weight:var(--font-weight-semibold);line-height:var(--spacing-4_5)}._hubRow_18wu0_147 ._rowSub_18wu0_191{color:var(--color-neutral-400);font-size:var(--text-sm);line-height:var(--spacing-4)}._hubMark_18wu0_197{width:var(--spacing-5);height:var(--spacing-5);flex-shrink:0;color:var(--color-neutral-0)}._hubChevron_18wu0_204{width:var(--spacing-4);height:var(--spacing-4);flex-shrink:0;color:var(--color-neutral-0)}._productRow_18wu0_148{padding:var(--spacing-2_25) var(--spacing-3);border-radius:var(--radius-lg);background:transparent;color:var(--color-foreground-secondary)}._productRow_18wu0_148:hover,._productRow_18wu0_148[data-current=true]{background:var(--color-surface-muted)}._hubRow_18wu0_147:focus-visible,._productRow_18wu0_148:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._productRow_18wu0_148[data-current=true] ._rowName_18wu0_184{color:var(--color-foreground);font-weight:var(--font-weight-semibold)}._productRow_18wu0_148[data-entitled=false] ._rowName_18wu0_184{color:var(--color-foreground-muted)}._group_18wu0_250{display:flex;flex-direction:column}._groupLabel_18wu0_258{margin:0;padding:var(--spacing-2) var(--spacing-3);color:var(--color-foreground-muted);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);line-height:var(--spacing-3_5);text-transform:uppercase}._products_18wu0_269{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}._rowText_18wu0_179{display:flex;min-width:0;flex-direction:column}._rowName_18wu0_184{overflow:hidden;font-size:var(--text-nav-label);font-weight:var(--font-weight-regular);line-height:var(--spacing-4_5);text-overflow:ellipsis;white-space:nowrap}._productRow_18wu0_148 ._rowName_18wu0_184{flex:1}._rowSub_18wu0_191{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._tag_18wu0_305{flex-shrink:0;padding:var(--spacing-0_5) var(--spacing-1_5);border-radius:var(--radius-full);background:var(--color-surface-muted);color:var(--color-foreground-muted);font-size:var(--text-2xs);font-weight:var(--font-weight-medium)}._trailing_18wu0_317{display:flex;min-width:var(--spacing-5);flex-shrink:0;align-items:center;justify-content:flex-end}._check_18wu0_325{width:var(--spacing-4);height:var(--spacing-4);color:var(--color-foreground)}._trailingValue_18wu0_333{color:var(--color-foreground-muted);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--spacing-4);white-space:nowrap}._trailingDot_18wu0_343{width:var(--spacing-1_75);height:var(--spacing-1_75);border-radius:var(--radius-full);background:var(--color-primary)}._srOnly_18wu0_342{position:absolute;overflow:hidden;width:1px;height:1px;clip-path:inset(50%);white-space:nowrap}._chevronRight_18wu0_359{width:var(--spacing-4);height:var(--spacing-4);flex-shrink:0}@media(prefers-reduced-motion:reduce){._chevron_18wu0_79{transition:none}}._panel_1hhcn_36{display:flex;width:var(--container-notification-panel);box-sizing:border-box;flex-direction:column;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-2xl);background:var(--color-surface);box-shadow:var(--shadow-overlay);font-family:var(--font-sans)}._header_1hhcn_54{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-3_5) var(--spacing-4) var(--spacing-2_5)}._title_1hhcn_62{margin:0;color:var(--color-foreground);font-size:var(--text-base);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight)}._header_1hhcn_54 ._markAll_1hhcn_74{font-size:var(--text-xs);line-height:var(--leading-snug)}._tab_1hhcn_79:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._tabs_1hhcn_88{display:flex;align-items:center;gap:var(--spacing-4_5);padding-inline:var(--spacing-4);border-bottom:1px solid var(--color-border)}._tab_1hhcn_79{display:flex;align-items:center;gap:var(--spacing-1_25);padding:var(--spacing-2) 0 var(--spacing-2_5);border:none;border-bottom:2px solid transparent;background:transparent;color:var(--color-foreground-muted);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-weight-regular);line-height:var(--leading-tight);cursor:pointer}._tab_1hhcn_79[aria-pressed=true]{border-bottom-color:var(--color-foreground);color:var(--color-foreground);font-weight:var(--font-weight-semibold)}._count_1hhcn_123{padding:var(--spacing-0_25) var(--spacing-1_25);border-radius:var(--radius-full);background:var(--color-surface-muted);color:var(--color-foreground-muted);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight)}._list_1hhcn_133{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}._row_1hhcn_148{display:flex;box-sizing:border-box;width:100%;align-items:flex-start;gap:var(--spacing-2_5);padding:var(--spacing-2_5) var(--spacing-4);color:var(--color-foreground);font-family:var(--font-sans);text-align:left;text-decoration:none}._row_1hhcn_148[href]:hover{background:var(--color-surface-muted)}._row_1hhcn_148[href]:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}._sourceMark_1hhcn_179{display:block;flex-shrink:0;margin-top:var(--spacing-0_25);color:var(--color-primary-foreground)}._sourceMarkGround_1hhcn_188{rx:var(--radius-product-tile);fill:var(--color-neutral-950)}._rowText_1hhcn_193{display:flex;min-width:0;flex:1;flex-direction:column;gap:var(--spacing-0_5)}._rowTitle_1hhcn_204{color:var(--color-foreground-secondary);font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--leading-snug)}._row_1hhcn_148[data-unread=true] ._rowTitle_1hhcn_204{color:var(--color-foreground)}._rowMeta_1hhcn_215{color:var(--color-foreground-muted);font-size:var(--text-xs);line-height:var(--leading-snug)}._unreadSlot_1hhcn_226{display:flex;width:var(--spacing-4);flex-shrink:0;justify-content:center;padding-top:var(--spacing-1)}._dot_1hhcn_235{width:var(--spacing-1_5);height:var(--spacing-1_5);flex-shrink:0;border-radius:var(--radius-full);background:var(--color-primary)}._empty_1hhcn_250{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-2_5);padding:var(--spacing-10) var(--spacing-6) var(--spacing-11)}._emptyGlyph_1hhcn_259{display:block;width:var(--spacing-7);height:var(--spacing-7);flex-shrink:0;color:var(--color-foreground-disabled)}._emptyText_1hhcn_267{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-0_5)}._emptyTitle_1hhcn_274{margin:0;color:var(--color-foreground-secondary);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight)}._emptyBody_1hhcn_282{margin:0;color:var(--color-foreground-muted);font-size:var(--text-xs);line-height:var(--leading-snug);text-align:center}._footer_1hhcn_291{display:flex;align-items:center;justify-content:center;padding:var(--spacing-2_5) var(--spacing-4);border-top:1px solid var(--color-border)}._footer_1hhcn_291 ._viewAll_1hhcn_300{font-size:var(--text-xs);line-height:var(--leading-snug)}._srOnly_1hhcn_307{position:absolute;overflow:hidden;width:1px;height:1px;clip-path:inset(50%);white-space:nowrap}._panel_4usug_54{display:flex;box-sizing:border-box;width:var(--container-account-menu);flex-direction:column;padding:var(--spacing-1_5);border:1px solid var(--color-border);border-radius:var(--radius-2xl);background:var(--color-surface);box-shadow:var(--shadow-overlay);font-family:var(--font-sans)}._person_4usug_72{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3_5) var(--spacing-3)}._personAvatar_4usug_85{display:block;width:var(--spacing-9_5);height:var(--spacing-9_5);flex-shrink:0;border-radius:var(--radius-full);background:var(--color-border-strong);object-fit:cover}._personText_4usug_98{display:flex;min-width:0;flex-direction:column;gap:var(--spacing-0_5)}._personName_4usug_106{overflow:hidden;color:var(--color-foreground);font-size:var(--text-nav-label);font-weight:var(--font-weight-semibold);line-height:var(--leading-snug);text-overflow:ellipsis;white-space:nowrap}._personEmail_4usug_122{overflow:hidden;color:var(--color-foreground-muted);font-size:var(--text-xs);line-height:var(--leading-snug);text-overflow:ellipsis;white-space:nowrap}._org_4usug_147{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-1);margin-inline:var(--spacing-1_5);padding:var(--spacing-2_25) var(--spacing-3);border-radius:var(--radius-xl);background:var(--color-neutral-50)}._orgIdentity_4usug_161{display:flex;min-width:0;align-items:center;gap:var(--spacing-2_25)}._orgTile_4usug_178{display:grid;width:var(--spacing-5_5);height:var(--spacing-5_5);flex-shrink:0;border-radius:var(--radius-lg);background:var(--color-neutral-950);color:var(--color-primary-foreground);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);place-items:center}._orgName_4usug_194{overflow:hidden;color:var(--color-foreground);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);text-overflow:ellipsis;white-space:nowrap}._orgRole_4usug_209{flex-shrink:0;padding:var(--spacing-0_5) var(--spacing-2);border-radius:var(--radius-full);background:var(--color-neutral-950);color:var(--color-primary-foreground);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);white-space:nowrap}._divider_4usug_143{margin:var(--spacing-1_5);border:none;border-top:1px solid var(--color-border)}._rows_4usug_242{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}._row_4usug_48{display:flex;box-sizing:border-box;width:100%;align-items:flex-start;gap:var(--spacing-2_5);padding:var(--spacing-2_25) var(--spacing-3);border:none;border-radius:var(--radius-xl);background:transparent;color:var(--color-foreground);font-family:var(--font-sans);text-align:left;text-decoration:none;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}._row_4usug_48:hover{background:var(--color-neutral-50)}._row_4usug_48:hover ._rowDescription_4usug_299{color:var(--color-foreground-secondary)}._row_4usug_48:hover ._lane_4usug_303{color:var(--color-foreground)}._row_4usug_48:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}._row_4usug_48[data-single-line=true]{align-items:center}._row_4usug_48[data-single-line=true] ._lane_4usug_303{margin-top:0}._lane_4usug_303{display:block;width:var(--spacing-4);height:var(--spacing-4);flex-shrink:0;margin-top:var(--spacing-0_5);color:var(--color-foreground-muted)}._lane_4usug_303 svg{display:block;width:100%;height:100%}._rowText_4usug_347{display:flex;min-width:0;flex-direction:column;gap:var(--spacing-0_5)}._rowLabel_4usug_365{overflow:hidden;color:var(--color-foreground);font-size:var(--text-nav-label);font-weight:var(--font-weight-semibold);line-height:var(--leading-snug);text-overflow:ellipsis;white-space:nowrap}._row_4usug_48[data-single-line=true] ._rowLabel_4usug_365{color:var(--color-foreground-secondary);font-weight:var(--font-weight-regular)}._rowDescription_4usug_299{color:var(--color-foreground-muted);font-size:var(--text-xs);line-height:var(--leading-snug)}@media(prefers-reduced-motion:reduce){._row_4usug_48{transition:none}}:root{--shadow-overlay: 0px 16px 40px -10px var(--shadow-overlay-color);--shadow-lift: 0px 10px 24px -14px color-mix(in srgb, var(--color-neutral-950) 28%, transparent);--shadow-scrolled: 0px 6px 16px -12px color-mix(in srgb, var(--color-neutral-950) 35%, transparent)}._panel_1hdli_22{display:flex;overflow:clip;box-sizing:border-box;width:var(--container-command-palette);flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-2xl);background:var(--color-surface);box-shadow:var(--shadow-overlay);font-family:var(--font-sans)}._searchRow_1hdli_38{display:flex;box-sizing:border-box;width:100%;align-items:center;flex-shrink:0;gap:var(--spacing-2_5);padding:var(--spacing-4);border-bottom:1px solid var(--color-border)}._searchGlyph_1hdli_49{width:var(--spacing-4);height:var(--spacing-4);flex-shrink:0;color:var(--color-foreground-muted)}._input_1hdli_63{min-width:0;flex:1;border:none;background:transparent;color:var(--color-foreground);font-family:var(--font-sans);font-size:var(--text-md);font-weight:var(--font-weight-medium)}._input_1hdli_63::placeholder{color:var(--color-foreground-muted)}._input_1hdli_63:focus{outline:none}._dismissKey_1hdli_94{flex-shrink:0;padding:var(--spacing-1) var(--spacing-1_5);border-radius:var(--radius-md);background:var(--color-surface-muted);color:var(--color-foreground-muted);font-size:var(--text-2xs)}._results_1hdli_109,._group_1hdli_115{display:flex;flex-direction:column;padding-block:var(--spacing-1)}._groupHeading_1hdli_127{margin:0;padding:var(--spacing-3) var(--spacing-4) var(--spacing-1_5);color:var(--color-foreground-muted);font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase}._row_1hdli_146{display:flex;box-sizing:border-box;height:var(--spacing-10);align-items:center;gap:var(--spacing-2_5);margin-inline:var(--spacing-2);padding-inline:var(--spacing-2);border:none;border-radius:var(--radius-lg);background:transparent;color:var(--color-foreground);font-family:var(--font-sans);font-size:var(--text-nav-label);text-align:left;text-decoration:none;cursor:pointer}._row_1hdli_146:hover{background:var(--color-surface-muted)}._row_1hdli_146[aria-selected=true]{background:var(--color-surface-muted);font-weight:var(--font-weight-medium)}._icon_1hdli_184{display:flex;width:var(--spacing-5_5);height:var(--spacing-5_5);flex-shrink:0;align-items:center;justify-content:center;color:var(--color-foreground-muted)}._label_1hdli_197{overflow:hidden;min-width:0;text-overflow:ellipsis;white-space:nowrap}._empty_1hdli_209{margin:0;padding:var(--spacing-5) var(--spacing-4);color:var(--color-foreground-muted);font-size:var(--text-xs)}._footer_1hdli_217{display:flex;box-sizing:border-box;width:100%;align-items:center;flex-shrink:0;padding:var(--spacing-2) var(--spacing-4);border-top:1px solid var(--color-border)}._hints_1hdli_227{color:var(--color-foreground-muted);font-size:var(--text-xs)}._root_g1823_11{--dots-size: var(--spacing-8);--dots-speed: var(--dur-dots);--dots-ease: var(--ease-in-out-quint);--dots-gap: calc(var(--dots-size) * .14);--dots-dot: calc((var(--dots-size) - var(--dots-gap) * 2) / 3);display:inline-flex;align-items:center;justify-content:center}._grid_g1823_25{display:grid;gap:var(--dots-gap);grid-template-columns:repeat(3,var(--dots-dot))}._dot_g1823_31{width:var(--dots-dot);height:var(--dots-dot);border-radius:var(--radius-full);background:currentColor;opacity:1;animation:_dots-pulse_g1823_1 var(--dots-speed) var(--dots-ease) infinite backwards;animation-delay:calc(var(--dots-step, 0) * var(--dots-speed) / 4)}._dot_g1823_31:nth-child(1){--dots-step: 0}._dot_g1823_31:nth-child(2),._dot_g1823_31:nth-child(4){--dots-step: 1}._dot_g1823_31:nth-child(3),._dot_g1823_31:nth-child(5),._dot_g1823_31:nth-child(7){--dots-step: 2}._dot_g1823_31:nth-child(6),._dot_g1823_31:nth-child(8){--dots-step: 3}._dot_g1823_31:nth-child(9){--dots-step: 4}@keyframes _dots-pulse_g1823_1{0%,to{opacity:.2;transform:scale(.7)}50%{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){._dot_g1823_31{animation:none}}:root{--dur-instant: 80ms;--dur-fast: .15s;--dur-base: .22s;--dur-slow: .32s;--dur-bold: .7s;--dur-hero: .9s;--dur-spin: .7s;--dur-pulse: 1.6s;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--lift-sm: -1px;--lift-md: -2px;--rise: 8px;--stagger: 40ms;--duration-fast: var(--dur-fast);--easing-standard: var(--ease-out);--dur-dots: 1s;--ease-in-out-quint: cubic-bezier(.83, 0, .17, 1)}._root_1pg11_6{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:var(--spacing-4);overflow:hidden;background-color:var(--color-neutral-1000);color:var(--color-neutral-0);--launch-accent: var(--launch-accent-input, var(--color-neutral-0));isolation:isolate}._glow_1pg11_9{position:absolute;top:50%;left:50%;z-index:0;width:298.333%;height:238.222%;transform:translate(-50%);border-radius:50%;background-image:radial-gradient(circle farthest-corner at 50% 50% in oklab,var(--color-orange-500) 0%,var(--color-orange-600) 28%,var(--color-orange-700) 48%,oklab(from var(--color-orange-700) l a b / 0%) 72%);filter:blur(5.5vmax)}._backdrop_1pg11_103{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden}._content_1pg11_16{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-5);inline-size:min(280px,100%)}._dots_1pg11_139{--dots-size: var(--spacing-6);color:var(--launch-accent);mix-blend-mode:soft-light;opacity:1}._bar_1pg11_178{position:relative;inline-size:100%;block-size:var(--spacing-1);overflow:hidden;border-radius:var(--radius-full)}._track_1pg11_186{position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--launch-accent) 35%,transparent);mix-blend-mode:soft-light;opacity:.75}._fill_1pg11_194{position:absolute;inset-block:0;inset-inline-start:0;inline-size:calc(var(--launch-progress, 0) * 1%);border-radius:inherit;background:var(--color-neutral-0);transition:inline-size var(--dur-fast) var(--ease-out)}._bar_1pg11_178[data-indeterminate=true] ._fill_1pg11_194{inline-size:33.333%;animation:_launch-indeterminate_1pg11_1 calc(var(--dur-dots) * 1.5) var(--ease-out) infinite}@keyframes _launch-indeterminate_1pg11_1{0%{inset-inline-start:-33.333%}to{inset-inline-start:100%}}._caption_1pg11_220{margin:0;opacity:.8;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--leading-normal);text-align:center}@media(prefers-reduced-motion:reduce){._fill_1pg11_194{transition:none}._bar_1pg11_178[data-indeterminate=true] ._fill_1pg11_194{inset-inline-start:33.333%;animation:none}}@media(prefers-contrast){._root_1pg11_6{--launch-accent: var(--color-neutral-0)}._glow_1pg11_9,._backdrop_1pg11_103{display:none}._dots_1pg11_139,._track_1pg11_186{mix-blend-mode:normal;opacity:1}}:root{--color-neutral-0: #FFFFFF;--color-neutral-50: #F7F7F8;--color-neutral-100: #EFEFF1;--color-neutral-200: #E5E5EA;--color-neutral-300: #D9D9D9;--color-neutral-400: #C1C1C2;--color-neutral-500: #8E8E93;--color-neutral-600: #6B6B6B;--color-neutral-700: #525252;--color-neutral-800: #3A3A3C;--color-neutral-900: #292929;--color-neutral-950: #1D1D1B;--color-neutral-1000: #000000;--color-orange-50: #FDF3EE;--color-orange-100: #FBE2D5;--color-orange-200: #F7C3A8;--color-orange-300: #F0A173;--color-orange-400: #EB7147;--color-orange-500: #E9521E;--color-orange-600: #C2410C;--color-orange-700: #9A3412;--color-sand-100: #FBF3E4;--color-sand-300: #F3D6AC;--color-sand-600: #8A6510;--color-green-100: #DDF0E4;--color-green-600: #157F3D;--color-crimson-100: #F7DEE1;--color-crimson-600: #A3182B;--color-blue-100: #DEE6FA;--color-blue-600: #2A5BD7;--color-background: var(--color-neutral-50);--color-surface: var(--color-neutral-0);--color-surface-muted: var(--color-neutral-100);--color-border: var(--color-neutral-200);--color-border-strong: var(--color-neutral-300);--color-foreground: var(--color-neutral-950);--color-foreground-secondary: var(--color-neutral-700);--color-foreground-muted: var(--color-neutral-600);--color-foreground-disabled: var(--color-neutral-400);--color-primary: var(--color-orange-500);--color-primary-hover: var(--color-orange-600);--color-primary-foreground: var(--color-neutral-0);--color-primary-subtle: var(--color-orange-50);--color-primary-border: var(--color-orange-200);--color-success: var(--color-green-600);--color-success-subtle: var(--color-green-100);--color-warning: var(--color-sand-600);--color-warning-subtle: var(--color-sand-300);--color-danger: var(--color-crimson-600);--color-danger-subtle: var(--color-crimson-100);--color-info: var(--color-blue-600);--color-info-subtle: var(--color-blue-100);--color-grant: var(--color-sand-600);--color-purchased: var(--color-neutral-950);--shadow-overlay-color: rgb(29 29 27 / 20%);--font-display: var(--boost33-font-display, Outfit), ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-sans: var(--boost33-font-sans, Inter), ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: var(--boost33-font-mono, "Geist Mono"), ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--text-3xs: 9px;--text-2xs: 11px;--text-xs: 12px;--text-sm: 13px;--text-base: 15px;--text-md: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--text-4xl: 36px;--text-5xl: 46px;--text-6xl: 60px;--text-7xl: 78px;--text-nav-label: 14px;--text-settings-group-label: 10px;--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--tracking-tighter: -.03em;--tracking-tight: -.02em;--tracking-normal: 0em;--tracking-wide: .04em;--tracking-wider: .09em;--tracking-caps: .05em;--tracking-settings-title: -.01em;--leading-none: 100%;--leading-tight: 120%;--leading-snug: 135%;--leading-normal: 150%;--leading-relaxed: 170%;--breakpoint-mobile: 390px;--breakpoint-desktop: 1440px;--container-sidebar: 264px;--container-sidebar-rail: 56px;--container-command-palette: 560px;--container-content: 1440px;--container-account-menu: 312px;--container-app-switcher: 360px;--container-token-popover: 340px;--container-notification-panel: 360px;--spacing-1: 4px;--spacing-2: 8px;--spacing-3: 12px;--spacing-4: 16px;--spacing-4_5: 18px;--spacing-5: 20px;--spacing-6: 24px;--spacing-7: 28px;--spacing-8: 32px;--spacing-10: 40px;--spacing-11: 44px;--spacing-12: 48px;--spacing-16: 64px;--spacing-20: 80px;--spacing-2_5: 10px;--spacing-5_5: 22px;--spacing-1_5: 6px;--spacing-1_25: 5px;--spacing-0_5: 2px;--spacing-2_25: 9px;--spacing-3_5: 14px;--spacing-2_75: 11px;--spacing-1_75: 7px;--spacing-0_75: 3px;--spacing-0_25: 1px;--spacing-settings-crumb: 7px;--spacing-topup-reserve: 68px;--spacing-wallet-segment-min: 3px;--spacing-9_5: 38px;--radius-none: 0px;--radius-xs: 2px;--radius-sm: 3px;--radius-md: 4px;--radius-lg: 6px;--radius-xl: 8px;--radius-2xl: 12px;--radius-full: 9999px;--radius-product-tile: 25%}._root_1y1aa_41{container-type:inline-size}._frame_1y1aa_47{display:flex;min-height:100vh;background:var(--color-background);color:var(--color-foreground);font-family:var(--font-sans)}._sidebar_1y1aa_59{display:flex;box-sizing:border-box;width:var(--container-sidebar);flex-shrink:0;flex-direction:column;padding:0 var(--spacing-3);border-right:1px solid var(--color-border);background:var(--color-neutral-50)}._sidebar_1y1aa_59 a{text-decoration:none}._back_1y1aa_76{display:flex;align-items:center;gap:var(--spacing-2_5);padding:var(--spacing-4) var(--spacing-2_5) var(--spacing-3_5);color:var(--color-foreground)}._backLabel_1y1aa_84{font-size:var(--text-nav-label);font-weight:var(--font-weight-semibold);line-height:var(--spacing-4_5)}._glyph_1y1aa_91{display:block;width:var(--spacing-4);height:var(--spacing-4);flex-shrink:0}._title_1y1aa_99{padding:var(--spacing-2_5) var(--spacing-2_5) var(--spacing-4)}._titleText_1y1aa_103{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-settings-title);line-height:var(--spacing-6)}._group_1y1aa_112{display:flex;flex-direction:column;gap:var(--spacing-0_25)}._group_1y1aa_112+._group_1y1aa_112{padding-top:var(--spacing-5)}._groupLabel_1y1aa_124{padding:0 var(--spacing-2_5) var(--spacing-2)}._groupLabelText_1y1aa_128{color:var(--color-foreground-muted);font-size:var(--text-settings-group-label);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-caps);line-height:var(--spacing-3);text-transform:uppercase}._item_1y1aa_140{display:flex;align-items:center;gap:var(--spacing-2_5);padding:var(--spacing-2) var(--spacing-2_5);border-radius:var(--radius-lg);color:var(--color-foreground-muted)}._item_1y1aa_140[aria-current=page]{background:var(--color-surface);color:var(--color-foreground)}._icon_1y1aa_157{display:flex;width:var(--spacing-4);height:var(--spacing-4);flex-shrink:0;align-items:center;justify-content:center}._icon_1y1aa_157>svg{width:100%;height:100%}._label_1y1aa_171{flex-grow:1;color:var(--color-foreground-secondary);font-size:var(--text-nav-label);font-weight:var(--font-weight-regular);line-height:var(--spacing-4)}._item_1y1aa_140[aria-current=page] ._label_1y1aa_171{color:var(--color-foreground);font-weight:var(--font-weight-semibold)}._swatch_1y1aa_186{width:var(--spacing-4);height:var(--spacing-4);flex-shrink:0;border-radius:var(--radius-md);background:var(--color-neutral-300)}._spacer_1y1aa_195{flex-grow:1}._signOut_1y1aa_201{margin-bottom:var(--spacing-4)}._column_1y1aa_207{display:flex;min-width:0;flex-basis:0;flex-direction:column;flex-grow:1}._header_1y1aa_216{display:flex;box-sizing:border-box;height:var(--spacing-12);flex-shrink:0;align-items:center;justify-content:space-between;padding:0 var(--spacing-5);border-bottom:1px solid var(--color-border)}._headerStart_1y1aa_227{display:flex;align-items:center;gap:var(--spacing-3)}._panelMark_1y1aa_237{display:flex;color:var(--color-foreground-muted)}._crumbs_1y1aa_244{display:flex;align-items:center;gap:var(--spacing-settings-crumb);margin:0;padding:0;font-size:var(--text-sm);line-height:var(--spacing-4);list-style:none}._crumbStep_1y1aa_255{display:flex;align-items:center;gap:var(--spacing-settings-crumb)}._crumb_1y1aa_244{color:var(--color-foreground-muted);text-decoration:none}._crumbSeparator_1y1aa_266{color:var(--color-foreground-disabled)}._crumbCurrent_1y1aa_270{color:var(--color-foreground);font-weight:var(--font-weight-semibold);text-decoration:none}._headerEnd_1y1aa_276,._helpLinks_1y1aa_282{display:flex;align-items:center;gap:var(--spacing-4_5)}._helpLink_1y1aa_282{color:var(--color-foreground-secondary);font-size:var(--text-sm);line-height:var(--leading-normal);text-decoration:none}._content_1y1aa_298{display:flex;flex-direction:column;flex-grow:1;background:var(--color-surface)}._pageHead_1y1aa_307{display:flex;flex-shrink:0;align-items:flex-start;justify-content:space-between;gap:var(--spacing-6);padding:var(--spacing-7) var(--spacing-8) var(--spacing-6);border-bottom:1px solid var(--color-border);background:var(--color-surface)}._pageHeadText_1y1aa_318{display:flex;flex-direction:column;gap:var(--spacing-1)}._pageTitle_1y1aa_325{margin:0;font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight);line-height:var(--spacing-6)}._pageDescription_1y1aa_335{margin:0;color:var(--color-foreground-muted);font-size:var(--text-xs);line-height:var(--spacing-4)}@container (max-width: 767px){._frame_1y1aa_47{flex-direction:column}._sidebar_1y1aa_59{width:auto;flex-direction:row;align-items:center;gap:var(--spacing-0_5);padding:var(--spacing-1_5) var(--spacing-2);overflow-x:auto;border-right:none;border-bottom:1px solid var(--color-border);white-space:nowrap}._sidebar_1y1aa_59 a{flex-shrink:0}._title_1y1aa_99,._groupLabel_1y1aa_124,._spacer_1y1aa_195,._helpLinks_1y1aa_282,._panelMark_1y1aa_237{display:none}._group_1y1aa_112{flex-direction:row;gap:var(--spacing-0_5)}._group_1y1aa_112+._group_1y1aa_112{padding-top:0}._back_1y1aa_76,._signOut_1y1aa_201{margin:0;padding:var(--spacing-2) var(--spacing-2_5)}._header_1y1aa_216{padding:0 var(--spacing-4)}._pageHead_1y1aa_307{flex-wrap:wrap;padding:var(--spacing-5) var(--spacing-4) var(--spacing-4_5)}}
|
|
1
|
+
.btn-primary,.btn-quiet,.btn-danger{cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.btn-primary{border:none;background:var(--color-primary);color:var(--color-primary-foreground)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-quiet{background:transparent;color:var(--color-foreground-secondary)}.btn-quiet:hover:not(:disabled){background:var(--color-surface-muted)}.btn-danger{border:1px solid var(--color-danger);background:var(--color-danger);color:var(--color-neutral-0)}.btn-danger:hover:not(:disabled){border-color:color-mix(in srgb,var(--color-danger) 85%,var(--color-neutral-950));background:color-mix(in srgb,var(--color-danger) 85%,var(--color-neutral-950))}.btn-primary:disabled,.btn-quiet:disabled,.btn-danger:disabled{opacity:.55;cursor:not-allowed}.spinner{box-sizing:border-box;width:var(--spacing-4_5);height:var(--spacing-4_5);border:2px solid var(--color-neutral-0);border-right-color:transparent;border-radius:var(--radius-full);animation:boost33-spin var(--dur-spin) linear infinite}.spinner--sm{width:var(--spacing-3_5);height:var(--spacing-3_5)}.spinner--primary{border-color:var(--color-primary);border-right-color:transparent}@keyframes boost33-spin{to{transform:rotate(360deg)}}.sk{display:block;border-radius:var(--radius-md);background:var(--color-surface-muted);animation:boost33-pulse var(--dur-pulse) ease-in-out infinite}.sk-group{animation:boost33-appear var(--dur-base) var(--ease-out) var(--dur-fast) both}.reveal{animation:boost33-appear var(--dur-base) var(--ease-out) both}@keyframes boost33-pulse{50%{opacity:.55}}@keyframes boost33-appear{0%{opacity:0}}@media(prefers-reduced-motion:no-preference){.btn-primary:active:not(:disabled),.btn-quiet:active:not(:disabled),.btn-danger:active:not(:disabled){transform:scale(.98)}}@media(prefers-reduced-motion:reduce){.sk,.sk-group,.reveal,.spinner{animation:none}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important}}._sidebar_197wz_7{display:flex;flex-direction:column;box-sizing:border-box;width:var(--container-sidebar);height:100%;padding:var(--spacing-4) var(--spacing-3);border-right:1px solid var(--color-border);background:var(--color-background);font-family:var(--font-sans)}._sidebar_197wz_7[data-collapsed=true]{width:var(--container-sidebar-rail)}._sidebar_197wz_7>nav{flex-shrink:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin:calc(-1 * var(--spacing-1));padding:var(--spacing-1);scroll-padding:var(--spacing-1)}@media(prefers-reduced-motion:reduce){._sidebar_197wz_7>nav{scroll-behavior:auto}}._section_wg5c6_5{display:flex;flex-direction:column}._header_wg5c6_13{margin:0;padding:var(--spacing-2) var(--spacing-2_5);color:var(--color-foreground-muted);font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-wider);text-transform:uppercase}._wordmark_ccf4z_4{display:flex;align-items:center;gap:var(--spacing-2_5);font-family:var(--font-display)}a._wordmark_ccf4z_4{border-radius:var(--radius-lg);text-decoration:none}a._wordmark_ccf4z_4:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._mark_ccf4z_32{display:inline-flex;flex:0 0 var(--spacing-6);align-items:center;justify-content:center;width:var(--spacing-6);height:var(--spacing-6)}._mark_ccf4z_32 svg{width:100%;height:100%}._name_ccf4z_50{color:var(--color-foreground);font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight)}._wordmark_ccf4z_4[data-collapsed=true] ._name_ccf4z_50{position:absolute;overflow:hidden;clip-path:inset(50%);width:1px;height:1px;white-space:nowrap}._wordmark_ccf4z_4[data-collapsed=true]{justify-content:center}._tile_w89ja_12{fill:var(--color-neutral-950)}._ring_w89ja_16{fill:var(--color-primary)}._mark_w89ja_24{display:block}._link_w89ja_33{display:inline-flex;vertical-align:top;border-radius:var(--radius-lg);text-decoration:none}._link_w89ja_33:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._mark_1jt5g_6{display:block}._ground_1jt5g_17{rx:var(--radius-product-tile)}._row_1vu2t_4{display:flex;align-items:center;width:100%;gap:var(--spacing-2_5);padding:var(--spacing-2) var(--spacing-2_5);border:none;border-radius:var(--radius-lg);background:transparent;font-family:var(--font-sans);text-align:left;text-decoration:none;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}._row_1vu2t_4:hover{background:var(--color-surface-muted)}._row_1vu2t_4[data-active=true]{background:var(--color-surface)}._row_1vu2t_4:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._icon_1vu2t_41{display:inline-flex;flex:0 0 var(--spacing-4);align-items:center;justify-content:center;width:var(--spacing-4);height:var(--spacing-4);color:var(--color-foreground-secondary)}._icon_1vu2t_41 svg{width:100%;height:100%}._row_1vu2t_4[data-active=true] ._icon_1vu2t_41{color:var(--color-foreground)}._row_1vu2t_4[data-collapsed=true]{justify-content:center}._label_1vu2t_66{flex:1 1 auto;min-width:0;overflow:hidden;color:var(--color-foreground-secondary);font-size:var(--text-nav-label);font-weight:var(--font-weight-regular);text-overflow:ellipsis;white-space:nowrap}._row_1vu2t_4[data-active=true] ._label_1vu2t_66{color:var(--color-foreground)}._row_1vu2t_4[data-collapsed=true] ._label_1vu2t_66{position:absolute;overflow:hidden;clip-path:inset(50%);width:1px;height:1px;white-space:nowrap}._trailingSlot_1vu2t_106{display:flex;flex:0 0 var(--spacing-5_5);height:var(--spacing-4);align-items:center;justify-content:flex-end;width:var(--spacing-5_5);font-family:var(--font-sans)}._row_1vu2t_4[data-collapsed=true] ._trailingSlot_1vu2t_106{display:none}._count_1vu2t_122{color:var(--color-foreground-muted);font-size:var(--text-xs);font-weight:var(--font-weight-medium);line-height:var(--spacing-4)}._countUrgent_1vu2t_134{display:inline-flex;box-sizing:border-box;min-width:var(--spacing-5);height:var(--spacing-4_5);align-items:center;justify-content:center;padding:0 var(--spacing-1_5);border-radius:var(--radius-full);background:var(--color-orange-600);color:var(--color-primary-foreground);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold)}._dot_1vu2t_152{width:var(--spacing-1_75);height:var(--spacing-1_75);border-radius:var(--radius-full);background:var(--color-warning)}._srOnly_1vu2t_151{position:absolute;overflow:hidden;width:1px;height:1px;clip-path:inset(50%);white-space:nowrap}@media(prefers-reduced-motion:reduce){._row_1vu2t_4{transition:none}}._primary_qxhao_26,._outlined_qxhao_27{display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;gap:var(--spacing-2);border-radius:var(--radius-lg);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);line-height:var(--spacing-4);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}._primary_qxhao_26{height:var(--spacing-10);padding:0 var(--spacing-4);border:none;background:var(--color-neutral-950);color:var(--color-neutral-0)}._primary_qxhao_26:hover{background:var(--color-neutral-800)}._primary_qxhao_26[data-tone=accent]{background:var(--color-orange-600);color:var(--color-primary-foreground)}._primary_qxhao_26[data-tone=accent]:hover{background:var(--color-orange-700)}._outlined_qxhao_27{height:var(--spacing-8);padding:0 var(--spacing-3);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-foreground)}._outlined_qxhao_27:hover{background:var(--color-surface-muted)}._quiet_qxhao_77{padding:0;border:none;background:transparent;color:var(--color-foreground);font-family:var(--font-sans);font-size:inherit;font-weight:var(--font-weight-medium);line-height:inherit;text-decoration:none;cursor:pointer}._quiet_qxhao_77:hover{text-decoration:underline}._primary_qxhao_26:focus-visible,._outlined_qxhao_27:focus-visible,._quiet_qxhao_77:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._primary_qxhao_26 svg,._outlined_qxhao_27 svg{width:var(--spacing-4);height:var(--spacing-4);flex-shrink:0}@media(prefers-reduced-motion:reduce){._primary_qxhao_26,._outlined_qxhao_27{transition:none}}._chip_z1nut_37{--chip-lift: 0px;position:relative;box-sizing:border-box;width:100%;padding:calc(var(--spacing-3) + var(--chip-lift));border:1px solid var(--color-border);border-radius:var(--radius-2xl);background:transparent;font-family:var(--font-sans)}._chip_z1nut_37:not([data-unknown]):hover,._chip_z1nut_37:not([data-unknown]):focus-within,._chip_z1nut_37[data-threshold]{--chip-lift: var(--spacing-0_5);box-shadow:var(--shadow-overlay)}._chip_z1nut_37:not([data-threshold]):not([data-unknown]):hover,._chip_z1nut_37:not([data-threshold]):not([data-unknown]):focus-within{background:var(--color-surface)}._chip_z1nut_37:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._header_z1nut_74{display:flex;align-items:center;gap:var(--spacing-2)}._chip_z1nut_37:not([data-threshold]):not([data-unknown]) ._header_z1nut_74{padding-right:var(--spacing-topup-reserve)}._name_z1nut_83{min-width:0;overflow:hidden;color:var(--color-foreground-muted);font-size:var(--text-xs);font-weight:var(--font-weight-medium);line-height:var(--leading-tight);text-overflow:ellipsis;white-space:nowrap}._pill_z1nut_162{padding:var(--spacing-0_5) var(--spacing-2);border-radius:var(--radius-full);background:var(--color-warning-subtle);color:var(--color-warning);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold)}._figure_z1nut_171{display:flex;align-items:baseline;gap:var(--spacing-1_5);margin-top:calc(var(--spacing-2_5) + var(--chip-lift))}._amount_z1nut_186{color:var(--color-foreground);font-family:var(--font-mono);font-size:var(--text-2xl);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-tight);line-height:var(--leading-none)}._unit_z1nut_195{color:var(--color-foreground-muted);font-size:var(--text-xs)}._retry_z1nut_200{width:var(--spacing-3);height:var(--spacing-3);color:var(--color-foreground-muted)}._bar_z1nut_209{display:flex;overflow:hidden;width:100%;height:calc(var(--spacing-1_25) + var(--chip-lift));margin-top:calc(var(--spacing-2_5) + var(--chip-lift));border-radius:var(--radius-full)}._bar_z1nut_209[data-tone=rest]{background:var(--color-surface-muted)}._bar_z1nut_209[data-tone=threshold]{background:var(--color-warning-subtle)}._bar_z1nut_209[data-tone=unknown]{background:var(--color-surface-muted)}._segmentGranted_z1nut_230,._segmentPurchased_z1nut_231{height:100%;transition:width var(--dur-fast) var(--ease-out)}._segmentGranted_z1nut_230{background:var(--color-grant)}._segmentPurchased_z1nut_231{background:var(--color-purchased)}._details_z1nut_275{display:none}._chip_z1nut_37:hover ._details_z1nut_275,._chip_z1nut_37:focus-within ._details_z1nut_275{display:block}._split_z1nut_284{display:flex;flex-direction:column;gap:var(--spacing-1);margin:var(--spacing-2_5) 0 0}._splitRow_z1nut_291{display:flex;align-items:center;justify-content:space-between}._splitLabel_z1nut_297{display:flex;align-items:center;gap:var(--spacing-1_5);color:var(--color-foreground);font-size:var(--text-xs)}._splitAmount_z1nut_305{margin:0;color:var(--color-foreground);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums}._dotGranted_z1nut_313,._dotPurchased_z1nut_314{width:var(--spacing-1_5);height:var(--spacing-1_5);border-radius:var(--radius-full)}._dotGranted_z1nut_313{background:var(--color-grant)}._dotPurchased_z1nut_314{background:var(--color-purchased)}._footer_z1nut_328{margin:var(--spacing-3) 0 0;padding-top:var(--spacing-1);border-top:1px solid var(--color-border);color:var(--color-foreground-muted);font-size:var(--text-2xs)}._burnNote_z1nut_336{margin:var(--spacing-2_5) 0 0;color:var(--color-foreground-secondary);font-size:var(--text-2xs);line-height:var(--leading-snug)}._topUp_z1nut_87:not([data-grown=true]){position:absolute;top:calc(var(--spacing-3) + var(--chip-lift));right:calc(var(--spacing-3) + var(--chip-lift));font-size:var(--text-xs);opacity:0;transition:opacity var(--dur-fast) var(--ease-out)}._chip_z1nut_37:hover ._topUp_z1nut_87,._chip_z1nut_37:focus-within ._topUp_z1nut_87,._topUp_z1nut_87:focus-visible{opacity:1}._topUp_z1nut_87[data-grown=true]{width:100%;margin-top:var(--spacing-2_5)}._rail_z1nut_387{--chip-lift: 0px;position:relative;display:flex;box-sizing:border-box;width:100%;flex-direction:column;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2);font-family:var(--font-sans)}._railIcon_z1nut_401{width:var(--spacing-6);height:var(--spacing-6);color:var(--color-foreground-secondary)}._railFigure_z1nut_407{color:var(--color-foreground);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}._rail_z1nut_387 ._bar_z1nut_209{height:var(--spacing-0_5);margin-top:0}._srOnly_z1nut_420{position:absolute;overflow:hidden;clip-path:inset(50%);width:1px;height:1px;white-space:nowrap}@media(prefers-reduced-motion:reduce){._segmentGranted_z1nut_230,._segmentPurchased_z1nut_231,._topUp_z1nut_87{transition:none}}._topRoot_z1nut_444{position:relative;font-family:var(--font-sans)}._topTrigger_z1nut_453{display:flex;box-sizing:border-box;height:var(--spacing-8);align-items:center;gap:var(--spacing-2_5);padding:0 var(--spacing-3);border:none;border-radius:var(--radius-lg);background:var(--color-surface-muted);font-family:var(--font-sans);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}._topTrigger_z1nut_453:hover,._topTrigger_z1nut_453[aria-expanded=true]{background:var(--color-border)}._topTrigger_z1nut_453:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._topFigure_z1nut_482{display:flex;align-items:baseline;gap:var(--spacing-1_25);white-space:nowrap}._topAmount_z1nut_489{color:var(--color-foreground);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);line-height:var(--spacing-4)}._topUnit_z1nut_497{color:var(--color-foreground-muted);font-size:var(--text-2xs);line-height:var(--spacing-3_5)}._topTrigger_z1nut_453:hover ._topUnit_z1nut_497,._topTrigger_z1nut_453[aria-expanded=true] ._topUnit_z1nut_497{color:var(--color-foreground-secondary)}._topChevron_z1nut_508{width:var(--spacing-3);height:var(--spacing-3);flex-shrink:0;color:var(--color-foreground-muted)}._topBar_z1nut_518,._popBar_z1nut_519{display:flex;overflow:hidden;flex-shrink:0;border-radius:var(--radius-sm)}._topBar_z1nut_518{width:var(--spacing-11);height:var(--spacing-1_5);gap:var(--spacing-0_5)}._popover_z1nut_534{position:absolute;z-index:1;top:100%;left:0;display:flex;width:var(--container-token-popover);max-width:calc(100vw - var(--spacing-8));box-sizing:border-box;flex-direction:column;gap:var(--spacing-4);margin-top:var(--spacing-1_5);padding:var(--spacing-5);border-radius:var(--radius-2xl);background:var(--color-surface);box-shadow:var(--shadow-overlay)}._popHead_z1nut_554{display:flex;align-items:baseline;justify-content:space-between;gap:var(--spacing-3)}._popFigure_z1nut_561{display:flex;align-items:baseline;gap:var(--spacing-2)}._popAmount_z1nut_569{color:var(--color-foreground);font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight);line-height:var(--leading-none)}._popUnit_z1nut_578{color:var(--color-foreground-secondary);font-size:var(--text-sm)}._popBar_z1nut_519{width:100%;height:var(--spacing-2);gap:var(--spacing-0_75)}._legend_z1nut_592{display:flex;flex-direction:column;gap:var(--spacing-3);margin:0;padding:0;list-style:none}._legendText_z1nut_601{display:flex;flex-direction:column}._legendRow_z1nut_606{display:flex;align-items:flex-start;gap:var(--spacing-2_5)}._swatchGranted_z1nut_612,._swatchPurchased_z1nut_613{width:var(--spacing-2_25);height:var(--spacing-2_25);flex-shrink:0;margin-top:var(--spacing-1);border-radius:var(--radius-sm)}._swatchGranted_z1nut_612{background:var(--color-grant)}._swatchPurchased_z1nut_613{background:var(--color-purchased)}._legendFigure_z1nut_629{color:var(--color-foreground);font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--spacing-4_5)}._legendNote_z1nut_637{color:var(--color-foreground-muted);font-size:var(--text-xs);line-height:var(--spacing-4)}._popFoot_z1nut_644{display:flex;flex-direction:column;gap:var(--spacing-3);padding-top:var(--spacing-3_5);border-top:1px solid var(--color-border)}._popNote_z1nut_652{margin:0;color:var(--color-foreground-secondary);font-size:var(--text-sm);line-height:var(--spacing-4_5)}._popWarning_z1nut_662{margin:0;color:var(--color-warning);font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--spacing-4_5)}._topBar_z1nut_518[data-tone=threshold],._popBar_z1nut_519[data-tone=threshold]{background:var(--color-warning-subtle)}._buy_z1nut_681{width:100%}@media(prefers-reduced-motion:reduce){._topTrigger_z1nut_453{transition:none}}._bar_1fqrh_9{display:grid;grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr);container:boost33-top-bar / inline-size;align-items:center;gap:var(--spacing-5);box-sizing:border-box;height:var(--spacing-12);padding:0 var(--spacing-8);border-bottom:1px solid var(--color-border);background:var(--color-surface);font-family:var(--font-sans)}._start_1fqrh_40,._end_1fqrh_41{display:flex;align-items:center}._start_1fqrh_40{grid-column:1;gap:var(--spacing-5)}._end_1fqrh_41{grid-column:3;justify-content:flex-end;gap:var(--spacing-3)}._centre_1fqrh_60{display:flex;grid-column:2;align-items:center;gap:var(--spacing-2)}._label_1fqrh_69{color:var(--color-foreground-muted);font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--spacing-4);white-space:nowrap}._label_1fqrh_69[data-after-switcher=true]{padding-left:var(--spacing-8)}@container boost33-top-bar (width < 80rem){._label_1fqrh_69{position:absolute;overflow:hidden;width:1px;height:1px;clip-path:inset(50%);white-space:nowrap}._label_1fqrh_69[data-after-switcher=true]{padding-left:0}._label_1fqrh_69[data-after-switcher=true]+*{margin-left:var(--spacing-6)}}@supports (animation-timeline: --a) and (timeline-scope: --a){@container style(--boost33-shell-timeline: on){._bar_1fqrh_9{position:relative;z-index:1;animation:_scrolled_1fqrh_1 linear both;animation-timeline:--boost33-shell-scroll;animation-range:0 var(--spacing-10)}}}@keyframes _scrolled_1fqrh_1{to{box-shadow:var(--shadow-scrolled)}}._button_oj9om_6{display:inline-flex;box-sizing:border-box;width:var(--spacing-8);height:var(--spacing-8);flex-shrink:0;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-lg);background:var(--color-surface-muted);color:var(--color-foreground);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}._button_oj9om_6:hover{background:var(--color-border)}._button_oj9om_6:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._bell_oj9om_33{width:var(--spacing-4);height:var(--spacing-4)}._dot_oj9om_42{fill:var(--color-primary)}._button_oj9om_6:hover ._dot_oj9om_42{fill:var(--color-orange-600)}._srOnly_oj9om_41{position:absolute;overflow:hidden;width:1px;height:1px;clip-path:inset(50%);white-space:nowrap}@media(prefers-reduced-motion:reduce){._button_oj9om_6{transition:none}}._header_i17td_42{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-8);padding:var(--spacing-4_5) var(--spacing-8) var(--spacing-4);background:var(--color-surface);font-family:var(--font-sans)}._headings_i17td_52{display:flex;min-width:0;flex-direction:column;gap:var(--spacing-1)}._title_i17td_33{margin:0;color:var(--color-foreground);font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}._subtitle_i17td_74{margin:0;color:var(--color-foreground-secondary);font-size:var(--text-base);font-weight:var(--font-weight-regular);line-height:var(--leading-snug)}._actions_i17td_82{display:flex;flex:0 0 auto;align-items:center;gap:var(--spacing-2)}._shell_l6zer_13{display:flex;height:100%;flex-direction:column;background:var(--color-surface);font-family:var(--font-sans)}._body_l6zer_24{display:flex;min-height:0;flex:1}._appName_l6zer_39{flex-shrink:0;margin:0;padding:var(--spacing-1) var(--spacing-2_5) var(--spacing-3_5);overflow:hidden;color:var(--color-foreground-muted);font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight);line-height:var(--spacing-5);text-overflow:ellipsis;white-space:nowrap}._foot_l6zer_65{display:flex;flex-direction:column;gap:var(--spacing-0_5);margin-block-start:auto;padding-block-start:var(--spacing-4)}._actionSlot_l6zer_79{display:flex;flex-shrink:0;margin-block-start:auto;padding-block-start:var(--spacing-4)}._actionSlot_l6zer_79+._foot_l6zer_65{margin-block-start:var(--spacing-4);padding-block-start:var(--spacing-2_5);border-top:1px solid var(--color-border)}._action_l6zer_79{width:100%}._action_l6zer_79[data-collapsed=true]{width:var(--spacing-10);padding:0}._srOnly_l6zer_103{position:absolute;overflow:hidden;width:1px;height:1px;clip-path:inset(50%);white-space:nowrap}._nav_l6zer_116{display:flex;flex-direction:column;gap:var(--spacing-4)}._main_l6zer_125{display:flex;min-width:0;flex:1;flex-direction:column}._content_l6zer_146{flex:1;min-height:0;overflow-y:auto;background:var(--color-surface)}@supports (animation-timeline: --a) and (timeline-scope: --a){._shell_l6zer_13{timeline-scope:--boost33-shell-scroll;--boost33-shell-timeline: on}._content_l6zer_146{scroll-timeline:--boost33-shell-scroll block}}._phoneChrome_l6zer_207{display:none}@media not (min-width:48rem){._shell_l6zer_13[data-chrome-from=md]>:not(._body_l6zer_24,._phoneChrome_l6zer_207),._shell_l6zer_13[data-chrome-from=md] ._body_l6zer_24>:not(._main_l6zer_125){display:none}._shell_l6zer_13[data-chrome-from=md]{height:auto;min-height:100dvh}._shell_l6zer_13[data-chrome-from=md]>._phoneChrome_l6zer_207{display:contents}._shell_l6zer_13[data-chrome-from=md] ._content_l6zer_146{overflow-y:visible}}@media not (min-width:64rem){._shell_l6zer_13[data-chrome-from=lg]>:not(._body_l6zer_24,._phoneChrome_l6zer_207),._shell_l6zer_13[data-chrome-from=lg] ._body_l6zer_24>:not(._main_l6zer_125){display:none}._shell_l6zer_13[data-chrome-from=lg]{height:auto;min-height:100dvh}._shell_l6zer_13[data-chrome-from=lg]>._phoneChrome_l6zer_207{display:contents}._shell_l6zer_13[data-chrome-from=lg] ._content_l6zer_146{overflow-y:visible}}@media not (min-width:80rem){._shell_l6zer_13[data-chrome-from=xl]>:not(._body_l6zer_24,._phoneChrome_l6zer_207),._shell_l6zer_13[data-chrome-from=xl] ._body_l6zer_24>:not(._main_l6zer_125){display:none}._shell_l6zer_13[data-chrome-from=xl]{height:auto;min-height:100dvh}._shell_l6zer_13[data-chrome-from=xl]>._phoneChrome_l6zer_207{display:contents}._shell_l6zer_13[data-chrome-from=xl] ._content_l6zer_146{overflow-y:visible}}._root_18wu0_8{position:relative;font-family:var(--font-sans)}._trigger_18wu0_17{display:flex;box-sizing:border-box;width:100%;align-items:center;gap:var(--spacing-2);height:var(--spacing-8);padding:0 var(--spacing-3);border:none;border-radius:var(--radius-lg);background:var(--color-surface-muted);font-family:var(--font-sans);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}._trigger_18wu0_17:hover,._trigger_18wu0_17[aria-expanded=true]{background:var(--color-border)}._trigger_18wu0_17:focus-visible,._railTrigger_18wu0_52:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._triggerName_18wu0_62{overflow:hidden;flex:1;color:var(--color-foreground);font-family:var(--font-display);font-size:var(--text-base);font-weight:var(--font-weight-semibold);line-height:var(--spacing-4_5);text-align:left;text-overflow:ellipsis;white-space:nowrap}._chevron_18wu0_79{width:var(--spacing-3);height:var(--spacing-3);flex-shrink:0;color:var(--color-foreground-muted);transition:transform var(--dur-fast) var(--ease-out)}._trigger_18wu0_17[aria-expanded=true] ._chevron_18wu0_79{transform:rotate(180deg)}._railTrigger_18wu0_52{display:flex;box-sizing:border-box;width:100%;min-height:var(--spacing-6);align-items:flex-start;justify-content:center;padding:0;border:none;background:transparent;cursor:pointer}._panel_18wu0_127{position:absolute;z-index:1;top:100%;left:0;display:flex;width:var(--container-app-switcher);box-sizing:border-box;flex-direction:column;gap:var(--spacing-1);margin-top:var(--spacing-1_5);padding:var(--spacing-2);border-radius:var(--radius-2xl);background:var(--color-surface);box-shadow:var(--shadow-overlay)}._hubRow_18wu0_147,._productRow_18wu0_148{display:flex;box-sizing:border-box;width:100%;align-items:center;gap:var(--spacing-3);border:none;font-family:var(--font-sans);text-align:left;text-decoration:none;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}._hubRow_18wu0_147{margin-bottom:var(--spacing-1);padding:var(--spacing-2_75) var(--spacing-3);border-radius:var(--radius-xl);background:var(--color-neutral-950);color:var(--color-neutral-0)}._hubRow_18wu0_147:hover{background:var(--color-neutral-800)}._hubRow_18wu0_147 ._rowText_18wu0_179{flex:1;gap:var(--spacing-0_5)}._hubRow_18wu0_147 ._rowName_18wu0_184{color:var(--color-neutral-0);font-size:var(--text-base);font-weight:var(--font-weight-semibold);line-height:var(--spacing-4_5)}._hubRow_18wu0_147 ._rowSub_18wu0_191{color:var(--color-neutral-400);font-size:var(--text-sm);line-height:var(--spacing-4)}._hubMark_18wu0_197{width:var(--spacing-5);height:var(--spacing-5);flex-shrink:0;color:var(--color-neutral-0)}._hubChevron_18wu0_204{width:var(--spacing-4);height:var(--spacing-4);flex-shrink:0;color:var(--color-neutral-0)}._productRow_18wu0_148{padding:var(--spacing-2_25) var(--spacing-3);border-radius:var(--radius-lg);background:transparent;color:var(--color-foreground-secondary)}._productRow_18wu0_148:hover,._productRow_18wu0_148[data-current=true]{background:var(--color-surface-muted)}._hubRow_18wu0_147:focus-visible,._productRow_18wu0_148:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._productRow_18wu0_148[data-current=true] ._rowName_18wu0_184{color:var(--color-foreground);font-weight:var(--font-weight-semibold)}._productRow_18wu0_148[data-entitled=false] ._rowName_18wu0_184{color:var(--color-foreground-muted)}._group_18wu0_250{display:flex;flex-direction:column}._groupLabel_18wu0_258{margin:0;padding:var(--spacing-2) var(--spacing-3);color:var(--color-foreground-muted);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);line-height:var(--spacing-3_5);text-transform:uppercase}._products_18wu0_269{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}._rowText_18wu0_179{display:flex;min-width:0;flex-direction:column}._rowName_18wu0_184{overflow:hidden;font-size:var(--text-nav-label);font-weight:var(--font-weight-regular);line-height:var(--spacing-4_5);text-overflow:ellipsis;white-space:nowrap}._productRow_18wu0_148 ._rowName_18wu0_184{flex:1}._rowSub_18wu0_191{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._tag_18wu0_305{flex-shrink:0;padding:var(--spacing-0_5) var(--spacing-1_5);border-radius:var(--radius-full);background:var(--color-surface-muted);color:var(--color-foreground-muted);font-size:var(--text-2xs);font-weight:var(--font-weight-medium)}._trailing_18wu0_317{display:flex;min-width:var(--spacing-5);flex-shrink:0;align-items:center;justify-content:flex-end}._check_18wu0_325{width:var(--spacing-4);height:var(--spacing-4);color:var(--color-foreground)}._trailingValue_18wu0_333{color:var(--color-foreground-muted);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--spacing-4);white-space:nowrap}._trailingDot_18wu0_343{width:var(--spacing-1_75);height:var(--spacing-1_75);border-radius:var(--radius-full);background:var(--color-primary)}._srOnly_18wu0_342{position:absolute;overflow:hidden;width:1px;height:1px;clip-path:inset(50%);white-space:nowrap}._chevronRight_18wu0_359{width:var(--spacing-4);height:var(--spacing-4);flex-shrink:0}@media(prefers-reduced-motion:reduce){._chevron_18wu0_79{transition:none}}._panel_1hhcn_36{display:flex;width:var(--container-notification-panel);box-sizing:border-box;flex-direction:column;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-2xl);background:var(--color-surface);box-shadow:var(--shadow-overlay);font-family:var(--font-sans)}._header_1hhcn_54{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-3_5) var(--spacing-4) var(--spacing-2_5)}._title_1hhcn_62{margin:0;color:var(--color-foreground);font-size:var(--text-base);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight)}._header_1hhcn_54 ._markAll_1hhcn_74{font-size:var(--text-xs);line-height:var(--leading-snug)}._tab_1hhcn_79:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._tabs_1hhcn_88{display:flex;align-items:center;gap:var(--spacing-4_5);padding-inline:var(--spacing-4);border-bottom:1px solid var(--color-border)}._tab_1hhcn_79{display:flex;align-items:center;gap:var(--spacing-1_25);padding:var(--spacing-2) 0 var(--spacing-2_5);border:none;border-bottom:2px solid transparent;background:transparent;color:var(--color-foreground-muted);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-weight-regular);line-height:var(--leading-tight);cursor:pointer}._tab_1hhcn_79[aria-pressed=true]{border-bottom-color:var(--color-foreground);color:var(--color-foreground);font-weight:var(--font-weight-semibold)}._count_1hhcn_123{padding:var(--spacing-0_25) var(--spacing-1_25);border-radius:var(--radius-full);background:var(--color-surface-muted);color:var(--color-foreground-muted);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight)}._list_1hhcn_133{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}._row_1hhcn_148{display:flex;box-sizing:border-box;width:100%;align-items:flex-start;gap:var(--spacing-2_5);padding:var(--spacing-2_5) var(--spacing-4);color:var(--color-foreground);font-family:var(--font-sans);text-align:left;text-decoration:none}._row_1hhcn_148[href]:hover{background:var(--color-surface-muted)}._row_1hhcn_148[href]:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}._sourceMark_1hhcn_179{display:block;flex-shrink:0;margin-top:var(--spacing-0_25);color:var(--color-primary-foreground)}._sourceMarkGround_1hhcn_188{rx:var(--radius-product-tile);fill:var(--color-neutral-950)}._rowText_1hhcn_193{display:flex;min-width:0;flex:1;flex-direction:column;gap:var(--spacing-0_5)}._rowTitle_1hhcn_204{color:var(--color-foreground-secondary);font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--leading-snug)}._row_1hhcn_148[data-unread=true] ._rowTitle_1hhcn_204{color:var(--color-foreground)}._rowMeta_1hhcn_215{color:var(--color-foreground-muted);font-size:var(--text-xs);line-height:var(--leading-snug)}._unreadSlot_1hhcn_226{display:flex;width:var(--spacing-4);flex-shrink:0;justify-content:center;padding-top:var(--spacing-1)}._dot_1hhcn_235{width:var(--spacing-1_5);height:var(--spacing-1_5);flex-shrink:0;border-radius:var(--radius-full);background:var(--color-primary)}._empty_1hhcn_250{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-2_5);padding:var(--spacing-10) var(--spacing-6) var(--spacing-11)}._emptyGlyph_1hhcn_259{display:block;width:var(--spacing-7);height:var(--spacing-7);flex-shrink:0;color:var(--color-foreground-disabled)}._emptyText_1hhcn_267{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-0_5)}._emptyTitle_1hhcn_274{margin:0;color:var(--color-foreground-secondary);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight)}._emptyBody_1hhcn_282{margin:0;color:var(--color-foreground-muted);font-size:var(--text-xs);line-height:var(--leading-snug);text-align:center}._footer_1hhcn_291{display:flex;align-items:center;justify-content:center;padding:var(--spacing-2_5) var(--spacing-4);border-top:1px solid var(--color-border)}._footer_1hhcn_291 ._viewAll_1hhcn_300{font-size:var(--text-xs);line-height:var(--leading-snug)}._srOnly_1hhcn_307{position:absolute;overflow:hidden;width:1px;height:1px;clip-path:inset(50%);white-space:nowrap}._panel_4usug_54{display:flex;box-sizing:border-box;width:var(--container-account-menu);flex-direction:column;padding:var(--spacing-1_5);border:1px solid var(--color-border);border-radius:var(--radius-2xl);background:var(--color-surface);box-shadow:var(--shadow-overlay);font-family:var(--font-sans)}._person_4usug_72{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3_5) var(--spacing-3)}._personAvatar_4usug_85{display:block;width:var(--spacing-9_5);height:var(--spacing-9_5);flex-shrink:0;border-radius:var(--radius-full);background:var(--color-border-strong);object-fit:cover}._personText_4usug_98{display:flex;min-width:0;flex-direction:column;gap:var(--spacing-0_5)}._personName_4usug_106{overflow:hidden;color:var(--color-foreground);font-size:var(--text-nav-label);font-weight:var(--font-weight-semibold);line-height:var(--leading-snug);text-overflow:ellipsis;white-space:nowrap}._personEmail_4usug_122{overflow:hidden;color:var(--color-foreground-muted);font-size:var(--text-xs);line-height:var(--leading-snug);text-overflow:ellipsis;white-space:nowrap}._org_4usug_147{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-1);margin-inline:var(--spacing-1_5);padding:var(--spacing-2_25) var(--spacing-3);border-radius:var(--radius-xl);background:var(--color-neutral-50)}._orgIdentity_4usug_161{display:flex;min-width:0;align-items:center;gap:var(--spacing-2_25)}._orgTile_4usug_178{display:grid;width:var(--spacing-5_5);height:var(--spacing-5_5);flex-shrink:0;border-radius:var(--radius-lg);background:var(--color-neutral-950);color:var(--color-primary-foreground);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);place-items:center}._orgName_4usug_194{overflow:hidden;color:var(--color-foreground);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);text-overflow:ellipsis;white-space:nowrap}._orgRole_4usug_209{flex-shrink:0;padding:var(--spacing-0_5) var(--spacing-2);border-radius:var(--radius-full);background:var(--color-neutral-950);color:var(--color-primary-foreground);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);white-space:nowrap}._divider_4usug_143{margin:var(--spacing-1_5);border:none;border-top:1px solid var(--color-border)}._rows_4usug_242{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}._row_4usug_48{display:flex;box-sizing:border-box;width:100%;align-items:flex-start;gap:var(--spacing-2_5);padding:var(--spacing-2_25) var(--spacing-3);border:none;border-radius:var(--radius-xl);background:transparent;color:var(--color-foreground);font-family:var(--font-sans);text-align:left;text-decoration:none;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}._row_4usug_48:hover{background:var(--color-neutral-50)}._row_4usug_48:hover ._rowDescription_4usug_299{color:var(--color-foreground-secondary)}._row_4usug_48:hover ._lane_4usug_303{color:var(--color-foreground)}._row_4usug_48:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}._row_4usug_48[data-single-line=true]{align-items:center}._row_4usug_48[data-single-line=true] ._lane_4usug_303{margin-top:0}._lane_4usug_303{display:block;width:var(--spacing-4);height:var(--spacing-4);flex-shrink:0;margin-top:var(--spacing-0_5);color:var(--color-foreground-muted)}._lane_4usug_303 svg{display:block;width:100%;height:100%}._rowText_4usug_347{display:flex;min-width:0;flex-direction:column;gap:var(--spacing-0_5)}._rowLabel_4usug_365{overflow:hidden;color:var(--color-foreground);font-size:var(--text-nav-label);font-weight:var(--font-weight-semibold);line-height:var(--leading-snug);text-overflow:ellipsis;white-space:nowrap}._row_4usug_48[data-single-line=true] ._rowLabel_4usug_365{color:var(--color-foreground-secondary);font-weight:var(--font-weight-regular)}._rowDescription_4usug_299{color:var(--color-foreground-muted);font-size:var(--text-xs);line-height:var(--leading-snug)}@media(prefers-reduced-motion:reduce){._row_4usug_48{transition:none}}:root{--shadow-overlay: 0px 16px 40px -10px var(--shadow-overlay-color);--shadow-lift: 0px 10px 24px -14px color-mix(in srgb, var(--color-neutral-950) 28%, transparent);--shadow-scrolled: 0px 6px 16px -12px color-mix(in srgb, var(--color-neutral-950) 35%, transparent)}._panel_1hdli_22{display:flex;overflow:clip;box-sizing:border-box;width:var(--container-command-palette);flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-2xl);background:var(--color-surface);box-shadow:var(--shadow-overlay);font-family:var(--font-sans)}._searchRow_1hdli_38{display:flex;box-sizing:border-box;width:100%;align-items:center;flex-shrink:0;gap:var(--spacing-2_5);padding:var(--spacing-4);border-bottom:1px solid var(--color-border)}._searchGlyph_1hdli_49{width:var(--spacing-4);height:var(--spacing-4);flex-shrink:0;color:var(--color-foreground-muted)}._input_1hdli_63{min-width:0;flex:1;border:none;background:transparent;color:var(--color-foreground);font-family:var(--font-sans);font-size:var(--text-md);font-weight:var(--font-weight-medium)}._input_1hdli_63::placeholder{color:var(--color-foreground-muted)}._input_1hdli_63:focus{outline:none}._dismissKey_1hdli_94{flex-shrink:0;padding:var(--spacing-1) var(--spacing-1_5);border-radius:var(--radius-md);background:var(--color-surface-muted);color:var(--color-foreground-muted);font-size:var(--text-2xs)}._results_1hdli_109,._group_1hdli_115{display:flex;flex-direction:column;padding-block:var(--spacing-1)}._groupHeading_1hdli_127{margin:0;padding:var(--spacing-3) var(--spacing-4) var(--spacing-1_5);color:var(--color-foreground-muted);font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase}._row_1hdli_146{display:flex;box-sizing:border-box;height:var(--spacing-10);align-items:center;gap:var(--spacing-2_5);margin-inline:var(--spacing-2);padding-inline:var(--spacing-2);border:none;border-radius:var(--radius-lg);background:transparent;color:var(--color-foreground);font-family:var(--font-sans);font-size:var(--text-nav-label);text-align:left;text-decoration:none;cursor:pointer}._row_1hdli_146:hover{background:var(--color-surface-muted)}._row_1hdli_146[aria-selected=true]{background:var(--color-surface-muted);font-weight:var(--font-weight-medium)}._icon_1hdli_184{display:flex;width:var(--spacing-5_5);height:var(--spacing-5_5);flex-shrink:0;align-items:center;justify-content:center;color:var(--color-foreground-muted)}._label_1hdli_197{overflow:hidden;min-width:0;text-overflow:ellipsis;white-space:nowrap}._empty_1hdli_209{margin:0;padding:var(--spacing-5) var(--spacing-4);color:var(--color-foreground-muted);font-size:var(--text-xs)}._footer_1hdli_217{display:flex;box-sizing:border-box;width:100%;align-items:center;flex-shrink:0;padding:var(--spacing-2) var(--spacing-4);border-top:1px solid var(--color-border)}._hints_1hdli_227{color:var(--color-foreground-muted);font-size:var(--text-xs)}._root_g1823_11{--dots-size: var(--spacing-8);--dots-speed: var(--dur-dots);--dots-ease: var(--ease-in-out-quint);--dots-gap: calc(var(--dots-size) * .14);--dots-dot: calc((var(--dots-size) - var(--dots-gap) * 2) / 3);display:inline-flex;align-items:center;justify-content:center}._grid_g1823_25{display:grid;gap:var(--dots-gap);grid-template-columns:repeat(3,var(--dots-dot))}._dot_g1823_31{width:var(--dots-dot);height:var(--dots-dot);border-radius:var(--radius-full);background:currentColor;opacity:1;animation:_dots-pulse_g1823_1 var(--dots-speed) var(--dots-ease) infinite backwards;animation-delay:calc(var(--dots-step, 0) * var(--dots-speed) / 4)}._dot_g1823_31:nth-child(1){--dots-step: 0}._dot_g1823_31:nth-child(2),._dot_g1823_31:nth-child(4){--dots-step: 1}._dot_g1823_31:nth-child(3),._dot_g1823_31:nth-child(5),._dot_g1823_31:nth-child(7){--dots-step: 2}._dot_g1823_31:nth-child(6),._dot_g1823_31:nth-child(8){--dots-step: 3}._dot_g1823_31:nth-child(9){--dots-step: 4}@keyframes _dots-pulse_g1823_1{0%,to{opacity:.2;transform:scale(.7)}50%{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){._dot_g1823_31{animation:none}}:root{--dur-instant: 80ms;--dur-fast: .15s;--dur-base: .22s;--dur-slow: .32s;--dur-bold: .7s;--dur-hero: .9s;--dur-spin: .7s;--dur-pulse: 1.6s;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--lift-sm: -1px;--lift-md: -2px;--rise: 8px;--stagger: 40ms;--duration-fast: var(--dur-fast);--easing-standard: var(--ease-out);--dur-dots: 1s;--ease-in-out-quint: cubic-bezier(.83, 0, .17, 1)}._root_1pg11_6{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:var(--spacing-4);overflow:hidden;background-color:var(--color-neutral-1000);color:var(--color-neutral-0);--launch-accent: var(--launch-accent-input, var(--color-neutral-0));isolation:isolate}._glow_1pg11_9{position:absolute;top:50%;left:50%;z-index:0;width:298.333%;height:238.222%;transform:translate(-50%);border-radius:50%;background-image:radial-gradient(circle farthest-corner at 50% 50% in oklab,var(--color-orange-500) 0%,var(--color-orange-600) 28%,var(--color-orange-700) 48%,oklab(from var(--color-orange-700) l a b / 0%) 72%);filter:blur(5.5vmax)}._backdrop_1pg11_103{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden}._content_1pg11_16{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-5);inline-size:min(280px,100%)}._dots_1pg11_139{--dots-size: var(--spacing-6);color:var(--launch-accent);mix-blend-mode:soft-light;opacity:1}._bar_1pg11_178{position:relative;inline-size:100%;block-size:var(--spacing-1);overflow:hidden;border-radius:var(--radius-full)}._track_1pg11_186{position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--launch-accent) 35%,transparent);mix-blend-mode:soft-light;opacity:.75}._fill_1pg11_194{position:absolute;inset-block:0;inset-inline-start:0;inline-size:calc(var(--launch-progress, 0) * 1%);border-radius:inherit;background:var(--color-neutral-0);transition:inline-size var(--dur-fast) var(--ease-out)}._bar_1pg11_178[data-indeterminate=true] ._fill_1pg11_194{inline-size:33.333%;animation:_launch-indeterminate_1pg11_1 calc(var(--dur-dots) * 1.5) var(--ease-out) infinite}@keyframes _launch-indeterminate_1pg11_1{0%{inset-inline-start:-33.333%}to{inset-inline-start:100%}}._caption_1pg11_220{margin:0;opacity:.8;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--leading-normal);text-align:center}@media(prefers-reduced-motion:reduce){._fill_1pg11_194{transition:none}._bar_1pg11_178[data-indeterminate=true] ._fill_1pg11_194{inset-inline-start:33.333%;animation:none}}@media(prefers-contrast){._root_1pg11_6{--launch-accent: var(--color-neutral-0)}._glow_1pg11_9,._backdrop_1pg11_103{display:none}._dots_1pg11_139,._track_1pg11_186{mix-blend-mode:normal;opacity:1}}:root{--color-neutral-0: #FFFFFF;--color-neutral-50: #F7F7F8;--color-neutral-100: #EFEFF1;--color-neutral-200: #E5E5EA;--color-neutral-300: #D9D9D9;--color-neutral-400: #C1C1C2;--color-neutral-500: #8E8E93;--color-neutral-600: #6B6B6B;--color-neutral-700: #525252;--color-neutral-800: #3A3A3C;--color-neutral-900: #292929;--color-neutral-950: #1D1D1B;--color-neutral-1000: #000000;--color-orange-50: #FDF3EE;--color-orange-100: #FBE2D5;--color-orange-200: #F7C3A8;--color-orange-300: #F0A173;--color-orange-400: #EB7147;--color-orange-500: #E9521E;--color-orange-600: #C2410C;--color-orange-700: #9A3412;--color-sand-100: #FBF3E4;--color-sand-300: #F3D6AC;--color-sand-600: #8A6510;--color-green-100: #DDF0E4;--color-green-600: #157F3D;--color-crimson-100: #F7DEE1;--color-crimson-600: #A3182B;--color-blue-100: #DEE6FA;--color-blue-600: #2A5BD7;--color-background: var(--color-neutral-50);--color-surface: var(--color-neutral-0);--color-surface-muted: var(--color-neutral-100);--color-border: var(--color-neutral-200);--color-border-strong: var(--color-neutral-300);--color-foreground: var(--color-neutral-950);--color-foreground-secondary: var(--color-neutral-700);--color-foreground-muted: var(--color-neutral-600);--color-foreground-disabled: var(--color-neutral-400);--color-primary: var(--color-orange-500);--color-primary-hover: var(--color-orange-600);--color-primary-foreground: var(--color-neutral-0);--color-primary-subtle: var(--color-orange-50);--color-primary-border: var(--color-orange-200);--color-success: var(--color-green-600);--color-success-subtle: var(--color-green-100);--color-warning: var(--color-sand-600);--color-warning-subtle: var(--color-sand-300);--color-danger: var(--color-crimson-600);--color-danger-subtle: var(--color-crimson-100);--color-info: var(--color-blue-600);--color-info-subtle: var(--color-blue-100);--color-grant: var(--color-sand-600);--color-purchased: var(--color-neutral-950);--shadow-overlay-color: rgb(29 29 27 / 20%);--font-display: var(--boost33-font-display, Outfit), ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-sans: var(--boost33-font-sans, Inter), ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: var(--boost33-font-mono, "Geist Mono"), ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--text-3xs: 9px;--text-2xs: 11px;--text-xs: 12px;--text-sm: 13px;--text-base: 15px;--text-md: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--text-4xl: 36px;--text-5xl: 46px;--text-6xl: 60px;--text-7xl: 78px;--text-nav-label: 14px;--text-settings-group-label: 10px;--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--tracking-tighter: -.03em;--tracking-tight: -.02em;--tracking-normal: 0em;--tracking-wide: .04em;--tracking-wider: .09em;--tracking-caps: .05em;--tracking-settings-title: -.01em;--leading-none: 100%;--leading-tight: 120%;--leading-snug: 135%;--leading-normal: 150%;--leading-relaxed: 170%;--breakpoint-mobile: 390px;--breakpoint-desktop: 1440px;--container-sidebar: 264px;--container-sidebar-rail: 56px;--container-command-palette: 560px;--container-content: 1440px;--container-account-menu: 312px;--container-app-switcher: 360px;--container-token-popover: 340px;--container-notification-panel: 360px;--spacing-1: 4px;--spacing-2: 8px;--spacing-3: 12px;--spacing-4: 16px;--spacing-4_5: 18px;--spacing-5: 20px;--spacing-6: 24px;--spacing-7: 28px;--spacing-8: 32px;--spacing-10: 40px;--spacing-11: 44px;--spacing-12: 48px;--spacing-16: 64px;--spacing-20: 80px;--spacing-2_5: 10px;--spacing-5_5: 22px;--spacing-1_5: 6px;--spacing-1_25: 5px;--spacing-0_5: 2px;--spacing-2_25: 9px;--spacing-3_5: 14px;--spacing-2_75: 11px;--spacing-1_75: 7px;--spacing-0_75: 3px;--spacing-0_25: 1px;--spacing-settings-crumb: 7px;--spacing-topup-reserve: 68px;--spacing-wallet-segment-min: 3px;--spacing-9_5: 38px;--radius-none: 0px;--radius-xs: 2px;--radius-sm: 3px;--radius-md: 4px;--radius-lg: 6px;--radius-xl: 8px;--radius-2xl: 12px;--radius-full: 9999px;--radius-product-tile: 25%}._root_1y1aa_41{container-type:inline-size}._frame_1y1aa_47{display:flex;min-height:100vh;background:var(--color-background);color:var(--color-foreground);font-family:var(--font-sans)}._sidebar_1y1aa_59{display:flex;box-sizing:border-box;width:var(--container-sidebar);flex-shrink:0;flex-direction:column;padding:0 var(--spacing-3);border-right:1px solid var(--color-border);background:var(--color-neutral-50)}._sidebar_1y1aa_59 a{text-decoration:none}._back_1y1aa_76{display:flex;align-items:center;gap:var(--spacing-2_5);padding:var(--spacing-4) var(--spacing-2_5) var(--spacing-3_5);color:var(--color-foreground)}._backLabel_1y1aa_84{font-size:var(--text-nav-label);font-weight:var(--font-weight-semibold);line-height:var(--spacing-4_5)}._glyph_1y1aa_91{display:block;width:var(--spacing-4);height:var(--spacing-4);flex-shrink:0}._title_1y1aa_99{padding:var(--spacing-2_5) var(--spacing-2_5) var(--spacing-4)}._titleText_1y1aa_103{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-settings-title);line-height:var(--spacing-6)}._group_1y1aa_112{display:flex;flex-direction:column;gap:var(--spacing-0_25)}._group_1y1aa_112+._group_1y1aa_112{padding-top:var(--spacing-5)}._groupLabel_1y1aa_124{padding:0 var(--spacing-2_5) var(--spacing-2)}._groupLabelText_1y1aa_128{color:var(--color-foreground-muted);font-size:var(--text-settings-group-label);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-caps);line-height:var(--spacing-3);text-transform:uppercase}._item_1y1aa_140{display:flex;align-items:center;gap:var(--spacing-2_5);padding:var(--spacing-2) var(--spacing-2_5);border-radius:var(--radius-lg);color:var(--color-foreground-muted)}._item_1y1aa_140[aria-current=page]{background:var(--color-surface);color:var(--color-foreground)}._icon_1y1aa_157{display:flex;width:var(--spacing-4);height:var(--spacing-4);flex-shrink:0;align-items:center;justify-content:center}._icon_1y1aa_157>svg{width:100%;height:100%}._label_1y1aa_171{flex-grow:1;color:var(--color-foreground-secondary);font-size:var(--text-nav-label);font-weight:var(--font-weight-regular);line-height:var(--spacing-4)}._item_1y1aa_140[aria-current=page] ._label_1y1aa_171{color:var(--color-foreground);font-weight:var(--font-weight-semibold)}._swatch_1y1aa_186{width:var(--spacing-4);height:var(--spacing-4);flex-shrink:0;border-radius:var(--radius-md);background:var(--color-neutral-300)}._spacer_1y1aa_195{flex-grow:1}._signOut_1y1aa_201{margin-bottom:var(--spacing-4)}._column_1y1aa_207{display:flex;min-width:0;flex-basis:0;flex-direction:column;flex-grow:1}._header_1y1aa_216{display:flex;box-sizing:border-box;height:var(--spacing-12);flex-shrink:0;align-items:center;justify-content:space-between;padding:0 var(--spacing-5);border-bottom:1px solid var(--color-border)}._headerStart_1y1aa_227{display:flex;align-items:center;gap:var(--spacing-3)}._panelMark_1y1aa_237{display:flex;color:var(--color-foreground-muted)}._crumbs_1y1aa_244{display:flex;align-items:center;gap:var(--spacing-settings-crumb);margin:0;padding:0;font-size:var(--text-sm);line-height:var(--spacing-4);list-style:none}._crumbStep_1y1aa_255{display:flex;align-items:center;gap:var(--spacing-settings-crumb)}._crumb_1y1aa_244{color:var(--color-foreground-muted);text-decoration:none}._crumbSeparator_1y1aa_266{color:var(--color-foreground-disabled)}._crumbCurrent_1y1aa_270{color:var(--color-foreground);font-weight:var(--font-weight-semibold);text-decoration:none}._headerEnd_1y1aa_276,._helpLinks_1y1aa_282{display:flex;align-items:center;gap:var(--spacing-4_5)}._helpLink_1y1aa_282{color:var(--color-foreground-secondary);font-size:var(--text-sm);line-height:var(--leading-normal);text-decoration:none}._content_1y1aa_298{display:flex;flex-direction:column;flex-grow:1;background:var(--color-surface)}._pageHead_1y1aa_307{display:flex;flex-shrink:0;align-items:flex-start;justify-content:space-between;gap:var(--spacing-6);padding:var(--spacing-7) var(--spacing-8) var(--spacing-6);border-bottom:1px solid var(--color-border);background:var(--color-surface)}._pageHeadText_1y1aa_318{display:flex;flex-direction:column;gap:var(--spacing-1)}._pageTitle_1y1aa_325{margin:0;font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight);line-height:var(--spacing-6)}._pageDescription_1y1aa_335{margin:0;color:var(--color-foreground-muted);font-size:var(--text-xs);line-height:var(--spacing-4)}@container (max-width: 767px){._frame_1y1aa_47{flex-direction:column}._sidebar_1y1aa_59{width:auto;flex-direction:row;align-items:center;gap:var(--spacing-0_5);padding:var(--spacing-1_5) var(--spacing-2);overflow-x:auto;border-right:none;border-bottom:1px solid var(--color-border);white-space:nowrap}._sidebar_1y1aa_59 a{flex-shrink:0}._title_1y1aa_99,._groupLabel_1y1aa_124,._spacer_1y1aa_195,._helpLinks_1y1aa_282,._panelMark_1y1aa_237{display:none}._group_1y1aa_112{flex-direction:row;gap:var(--spacing-0_5)}._group_1y1aa_112+._group_1y1aa_112{padding-top:0}._back_1y1aa_76,._signOut_1y1aa_201{margin:0;padding:var(--spacing-2) var(--spacing-2_5)}._header_1y1aa_216{padding:0 var(--spacing-4)}._pageHead_1y1aa_307{flex-wrap:wrap;padding:var(--spacing-5) var(--spacing-4) var(--spacing-4_5)}}
|