cartethyia 2.7.5 → 2.7.7
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/.env.example +8 -3
- package/README.md +26 -2
- package/dist/dashboard/assets/BannedPage-B05aF8Dg.js +1 -0
- package/dist/dashboard/assets/BannedPage-B05aF8Dg.js.gz +0 -0
- package/dist/dashboard/assets/CliToolDetailPage-CLUhmjUy.js +3 -0
- package/dist/dashboard/assets/CliToolDetailPage-CLUhmjUy.js.gz +0 -0
- package/dist/dashboard/assets/CliToolsPage-CQmrqqrk.js +1 -0
- package/dist/dashboard/assets/CliToolsPage-CQmrqqrk.js.gz +0 -0
- package/dist/dashboard/assets/CombosPage-CHG_1Wr3.js +1 -0
- package/dist/dashboard/assets/CombosPage-CHG_1Wr3.js.gz +0 -0
- package/dist/dashboard/assets/{ConsoleLogPage-D5rol2j2.js → ConsoleLogPage-DPgbklad.js} +1 -1
- package/dist/dashboard/assets/ConsoleLogPage-DPgbklad.js.gz +0 -0
- package/dist/dashboard/assets/{CustomizationPage-BKj_r0rp.js → CustomizationPage-pnfAqr_-.js} +1 -1
- package/dist/dashboard/assets/CustomizationPage-pnfAqr_-.js.gz +0 -0
- package/dist/dashboard/assets/HealthEventsModal-DGJuU2A6.js +1 -0
- package/dist/dashboard/assets/HealthEventsModal-DGJuU2A6.js.gz +0 -0
- package/dist/dashboard/assets/{InjectSystemPromptPanel-B5nZvmf0.js → InjectSystemPromptPanel-C-e2AMz6.js} +245 -2
- package/dist/dashboard/assets/InjectSystemPromptPanel-C-e2AMz6.js.gz +0 -0
- package/dist/dashboard/assets/LoginPage-J8wPbmfT.js +1 -0
- package/dist/dashboard/assets/LoginPage-J8wPbmfT.js.gz +0 -0
- package/dist/dashboard/assets/{ModelPicker-DnQPSIA8.js → ModelPicker-C6WlpU5E.js} +1 -1
- package/dist/dashboard/assets/ModelPicker-C6WlpU5E.js.gz +0 -0
- package/dist/dashboard/assets/OverviewPage-BSQnF2Lp.js +1 -0
- package/dist/dashboard/assets/OverviewPage-BSQnF2Lp.js.gz +0 -0
- package/dist/dashboard/assets/ProviderDetailPage-DK_e0FJz.js +7 -0
- package/dist/dashboard/assets/ProviderDetailPage-DK_e0FJz.js.gz +0 -0
- package/dist/dashboard/assets/ProviderIcon-jjqXJDA3.js +1 -0
- package/dist/dashboard/assets/ProviderIcon-jjqXJDA3.js.gz +0 -0
- package/dist/dashboard/assets/ProvidersPage-D_a3r6Gc.js +1 -0
- package/dist/dashboard/assets/ProvidersPage-D_a3r6Gc.js.gz +0 -0
- package/dist/dashboard/assets/{ProxyPage-5SnUSy3j.js → ProxyPage-BBTRBAQ3.js} +1 -1
- package/dist/dashboard/assets/ProxyPage-BBTRBAQ3.js.gz +0 -0
- package/dist/dashboard/assets/QuotaPage-B2WqMSG1.js +1 -0
- package/dist/dashboard/assets/QuotaPage-B2WqMSG1.js.gz +0 -0
- package/dist/dashboard/assets/{SettingsPage-BJtRZ4qD.js → SettingsPage-D7xp5Ij_.js} +1 -1
- package/dist/dashboard/assets/SettingsPage-D7xp5Ij_.js.gz +0 -0
- package/dist/dashboard/assets/SetupPage-LND6_Ss7.js +1 -0
- package/dist/dashboard/assets/SetupPage-LND6_Ss7.js.gz +0 -0
- package/dist/dashboard/assets/{StudioPage-BfAb5-o_.js → StudioPage-BzNnm6Bi.js} +4 -4
- package/dist/dashboard/assets/StudioPage-BzNnm6Bi.js.gz +0 -0
- package/dist/dashboard/assets/ToolIcon-CfeLA-Z_.js +1 -0
- package/dist/dashboard/assets/ToolIcon-CfeLA-Z_.js.gz +0 -0
- package/dist/dashboard/assets/{UsagePage-BNzeZ2Vk.js → UsagePage-C1TbL24N.js} +13 -13
- package/dist/dashboard/assets/UsagePage-C1TbL24N.js.gz +0 -0
- package/dist/dashboard/assets/api-keys-KvX83mRe.js +1 -0
- package/dist/dashboard/assets/api-keys-KvX83mRe.js.gz +0 -0
- package/dist/dashboard/assets/app-DRnQLhsc.js +9 -0
- package/dist/dashboard/assets/app-DRnQLhsc.js.gz +0 -0
- package/dist/dashboard/assets/app-mweRcsKp.css +2 -0
- package/dist/dashboard/assets/app-mweRcsKp.css.gz +0 -0
- package/dist/dashboard/assets/{assert-C0K-c4eo.js → assert-CidQVoNo.js} +1 -1
- package/dist/dashboard/assets/assert-CidQVoNo.js.gz +0 -0
- package/dist/dashboard/assets/{badge-DfbhQU4k.js → badge-BaX2GTrn.js} +1 -1
- package/dist/dashboard/assets/badge-BaX2GTrn.js.gz +0 -0
- package/dist/dashboard/assets/{banner-BllT4LcF.js → banner-DFH4Bkte.js} +1 -1
- package/dist/dashboard/assets/banner-DFH4Bkte.js.gz +0 -0
- package/dist/dashboard/assets/{card-CtkX66Wd.js → card-CxDw0lK6.js} +1 -1
- package/dist/dashboard/assets/card-CxDw0lK6.js.gz +0 -0
- package/dist/dashboard/assets/circle-question-mark-Cz4un8sH.js +1 -0
- package/dist/dashboard/assets/circle-question-mark-Cz4un8sH.js.gz +0 -0
- package/dist/dashboard/assets/{cli-tools-CQXVMn4P.js → cli-tools-Bwv5-zGZ.js} +1 -1
- package/dist/dashboard/assets/cli-tools-Bwv5-zGZ.js.gz +0 -0
- package/dist/dashboard/assets/{clipboard-button-BQqBQd2n.js → clipboard-button-DfS1ntiq.js} +1 -1
- package/dist/dashboard/assets/clipboard-button-DfS1ntiq.js.gz +0 -0
- package/dist/dashboard/assets/dialog-BK-NRr5u.js +1 -0
- package/dist/dashboard/assets/dialog-BK-NRr5u.js.gz +0 -0
- package/dist/dashboard/assets/{drawer-BrTEZ8zu.js → drawer-QqPul6sC.js} +1 -1
- package/dist/dashboard/assets/drawer-QqPul6sC.js.gz +0 -0
- package/dist/dashboard/assets/entry-BMlYJVFj.js +1 -0
- package/dist/dashboard/assets/entry-BMlYJVFj.js.gz +0 -0
- package/dist/dashboard/assets/entry-Dmx7gBiN.js +1 -0
- package/dist/dashboard/assets/entry-Dmx7gBiN.js.gz +0 -0
- package/dist/dashboard/assets/entry-vqGb8yVz.js +4 -0
- package/dist/dashboard/assets/entry-vqGb8yVz.js.gz +0 -0
- package/dist/dashboard/assets/formatters-DP-5E01-.js +1 -0
- package/dist/dashboard/assets/formatters-DP-5E01-.js.gz +0 -0
- package/dist/dashboard/assets/house-h9AZlJuT.js +1 -0
- package/dist/dashboard/assets/house-h9AZlJuT.js.gz +0 -0
- package/dist/dashboard/assets/{index-FQlj0HUT.js → index-D36vCZht.js} +2 -2
- package/dist/dashboard/assets/index-D36vCZht.js.gz +0 -0
- package/dist/dashboard/assets/{inline-C4gU5iOL.js → inline-CHJQwxLa.js} +1 -1
- package/dist/dashboard/assets/inline-CHJQwxLa.js.gz +0 -0
- package/dist/dashboard/assets/{input-BHHX_Tmm.js → input-BlmlizVV.js} +1 -1
- package/dist/dashboard/assets/input-BlmlizVV.js.gz +0 -0
- package/dist/dashboard/assets/{layout-CajrYUnD.js → layout-Bz93I-yE.js} +1 -1
- package/dist/dashboard/assets/layout-Bz93I-yE.js.gz +0 -0
- package/dist/dashboard/assets/{list-row-Bx2I7XUe.js → list-row-Ml16KCfu.js} +1 -1
- package/dist/dashboard/assets/list-row-Ml16KCfu.js.gz +0 -0
- package/dist/dashboard/assets/{live-DNNqRbj2.js → live-7_QpnYGu.js} +1 -1
- package/dist/dashboard/assets/live-7_QpnYGu.js.gz +0 -0
- package/dist/dashboard/assets/{mutation-Rr0TIvcj.js → mutation-GU7XdEjz.js} +1 -1
- package/dist/dashboard/assets/mutation-GU7XdEjz.js.gz +0 -0
- package/dist/dashboard/assets/{network-C5UBACrJ.js → network-CuMDaTzT.js} +1 -1
- package/dist/dashboard/assets/network-CuMDaTzT.js.gz +0 -0
- package/dist/dashboard/assets/numbers-CoqpaDMx.js +2 -0
- package/dist/dashboard/assets/numbers-CoqpaDMx.js.gz +0 -0
- package/dist/dashboard/assets/{pagination-Xsi9Qx04.js → pagination-B5aOoweZ.js} +1 -1
- package/dist/dashboard/assets/pagination-B5aOoweZ.js.gz +0 -0
- package/dist/dashboard/assets/providers/zai.webp +0 -0
- package/dist/dashboard/assets/providers/zcode.webp +0 -0
- package/dist/dashboard/assets/{query-keys-BloKtaXJ.js → query-keys-YSoQOUh6.js} +1 -1
- package/dist/dashboard/assets/{query-keys-BloKtaXJ.js.gz → query-keys-YSoQOUh6.js.gz} +0 -0
- package/dist/dashboard/assets/quota-DJ1QlAOq.js +1 -0
- package/dist/dashboard/assets/quota-DJ1QlAOq.js.gz +0 -0
- package/dist/dashboard/assets/{routing-in0f_IfK.js → routing-fnCsxgNO.js} +1 -1
- package/dist/dashboard/assets/routing-fnCsxgNO.js.gz +0 -0
- package/dist/dashboard/assets/{select-BLULNqTp.js → select-C9Ssle9b.js} +2 -2
- package/dist/dashboard/assets/select-C9Ssle9b.js.gz +0 -0
- package/dist/dashboard/assets/{settings-CcGczj6I.js → settings-BxslsErn.js} +1 -1
- package/dist/dashboard/assets/settings-BxslsErn.js.gz +0 -0
- package/dist/dashboard/assets/{stack-D2lIR0tg.js → stack-j7cXjgYX.js} +1 -1
- package/dist/dashboard/assets/stack-j7cXjgYX.js.gz +0 -0
- package/dist/dashboard/assets/{state-DTARjfiW.js → state-DHmEnLa2.js} +1 -1
- package/dist/dashboard/assets/state-DHmEnLa2.js.gz +0 -0
- package/dist/dashboard/assets/{switch-c0oPSnqW.js → switch-DmZcyTIC.js} +1 -1
- package/dist/dashboard/assets/switch-DmZcyTIC.js.gz +0 -0
- package/dist/dashboard/assets/{useMutation-m8WGNPrz.js → useMutation-CbCP4w1o.js} +1 -1
- package/dist/dashboard/assets/useMutation-CbCP4w1o.js.gz +0 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/dashboard/index.html.gz +0 -0
- package/dist/dashboard/precompressed-assets.json +57 -57
- package/migrations/full-postgres/0042_add_telemetry_degenerate_stop.sql +14 -0
- package/migrations/full-postgres/0043_add_provider_custom_user_agent.sql +14 -0
- package/migrations/lite-sqlite3/0042_add_telemetry_degenerate_stop.sql +12 -0
- package/migrations/lite-sqlite3/0043_add_provider_custom_user_agent.sql +10 -0
- package/package.json +3 -1
- package/src/boot/dependencies.ts +10 -2
- package/src/config/providers.ts +13 -7
- package/src/config/security.ts +1 -1
- package/src/config/spec.ts +31 -17
- package/src/config/usage.ts +27 -0
- package/src/console/api-keys/routes.ts +19 -23
- package/src/console/cli-tools/cartethyia-websearch-plugin.ts +186 -0
- package/src/console/cli-tools/contracts.ts +39 -295
- package/src/console/cli-tools/fs-ops.ts +29 -0
- package/src/console/cli-tools/injectors/claude.ts +3 -3
- package/src/console/cli-tools/injectors/codex.ts +6 -6
- package/src/console/cli-tools/injectors/driver.ts +8 -105
- package/src/console/cli-tools/injectors/kilo.ts +146 -21
- package/src/console/cli-tools/injectors/opencode.ts +68 -17
- package/src/console/cli-tools/routes.ts +6 -0
- package/src/console/cli-tools/service.ts +7 -6
- package/src/console/observability/contracts.ts +6 -0
- package/src/console/observability/store.ts +3 -0
- package/src/console/providers/catalog/contracts.ts +4 -0
- package/src/console/providers/catalog/routes.ts +1 -0
- package/src/console/providers/detail/routes.ts +8 -0
- package/src/console/providers/detail/store.ts +4 -0
- package/src/console/quota/account-quota-tenant.ts +74 -0
- package/src/console/share/share-stats.ts +7 -9
- package/src/observability/event-log.ts +7 -0
- package/src/observability/event-query.ts +2 -0
- package/src/observability/telemetry-buffer.ts +9 -1
- package/src/persistence/boot.ts +13 -4
- package/src/persistence/schema.ts +15 -1
- package/src/persistence/stores/api-key-store.ts +19 -1
- package/src/protocol/canonical-model.ts +7 -0
- package/src/protocol/dsml.ts +5 -76
- package/src/protocol/request/gemini.ts +20 -1
- package/src/protocol/tool-identity.ts +15 -1
- package/src/providers/adapters/compatible-adapter.ts +29 -1
- package/src/providers/default-registry.ts +20 -4
- package/src/providers/discovery/discovery-types.ts +18 -0
- package/src/providers/discovery/probe-phases.ts +45 -0
- package/src/providers/discovery/probing-service.ts +41 -6
- package/src/providers/integrations/antigravity/antigravity-protocol.ts +108 -16
- package/src/providers/integrations/antigravity/antigravity-quota.ts +18 -6
- package/src/providers/integrations/antigravity/antigravity.ts +44 -11
- package/src/providers/integrations/codex/codex.ts +28 -1
- package/src/providers/integrations/cursor/cursor.ts +2 -3
- package/src/providers/integrations/github/github-discovery.ts +15 -2
- package/src/providers/integrations/github/github-oauth.ts +178 -9
- package/src/providers/integrations/github/github.ts +95 -14
- package/src/providers/integrations/kiro/kiro.ts +1 -2
- package/src/providers/integrations/qoder/chat-proto.ts +328 -0
- package/src/providers/integrations/qoder/claim-qoder-credits.ts +258 -0
- package/src/providers/integrations/qoder/qoder-adapter.ts +275 -0
- package/src/providers/integrations/qoder/qoder-auth.ts +201 -0
- package/src/providers/integrations/qoder/qoder-body.ts +78 -0
- package/src/providers/integrations/qoder/qoder-catalog.ts +14 -4
- package/src/providers/integrations/qoder/qoder-chat.ts +514 -0
- package/src/providers/integrations/qoder/qoder-cosy.ts +162 -0
- package/src/providers/integrations/qoder/qoder-grpc.ts +667 -0
- package/src/providers/integrations/qoder/qoder-ide.ts +584 -0
- package/src/providers/integrations/qoder/qoder-oauth.ts +4 -4
- package/src/providers/integrations/qoder/qoder-quota.ts +1 -1
- package/src/providers/integrations/qoder/qoder-realm.ts +40 -4
- package/src/providers/integrations/qoder/qoder-types.ts +51 -0
- package/src/providers/integrations/qoder/qoder-umid.ts +123 -8
- package/src/providers/integrations/qoder/qoder.ts +147 -1830
- package/src/providers/integrations/trae/trae.ts +2 -2
- package/src/providers/operations/account-error-classification.ts +67 -17
- package/src/providers/operations/byok-wire-profile.ts +19 -15
- package/src/providers/provider-contracts.ts +7 -0
- package/src/providers/provider-usage.ts +24 -55
- package/src/security/abuse.ts +5 -5
- package/src/security/admission/service.ts +11 -4
- package/src/security/api-key-auth.ts +5 -3
- package/src/transport/dispatch/attempt-finalize.ts +69 -21
- package/src/transport/dispatch/attempt-loop.ts +22 -0
- package/src/transport/dispatch/upstream.ts +4 -2
- package/src/transport/failure-policy.ts +15 -1
- package/src/transport/guards/error-lifecycle.ts +4 -0
- package/src/transport/request/state.ts +6 -0
- package/src/transport/routing/route-catalog.ts +8 -0
- package/src/transport/routing/route-model.ts +4 -0
- package/src/transport/routing/router.ts +8 -110
- package/src/transport/surface/reasoning-summary.ts +9 -14
- package/src/transport/vision-handoff.ts +83 -28
- package/dist/dashboard/assets/BannedPage-Cj15GsMp.js +0 -1
- package/dist/dashboard/assets/BannedPage-Cj15GsMp.js.gz +0 -0
- package/dist/dashboard/assets/ClaimGiftsButton-D83pBJ6J.js +0 -1
- package/dist/dashboard/assets/ClaimGiftsButton-D83pBJ6J.js.gz +0 -0
- package/dist/dashboard/assets/CliToolDetailPage-DZKmVuJN.js +0 -1
- package/dist/dashboard/assets/CliToolDetailPage-DZKmVuJN.js.gz +0 -0
- package/dist/dashboard/assets/CliToolsPage-BIccZmeL.js +0 -1
- package/dist/dashboard/assets/CliToolsPage-BIccZmeL.js.gz +0 -0
- package/dist/dashboard/assets/CombosPage-DEEKkYD-.js +0 -1
- package/dist/dashboard/assets/CombosPage-DEEKkYD-.js.gz +0 -0
- package/dist/dashboard/assets/ConsoleLogPage-D5rol2j2.js.gz +0 -0
- package/dist/dashboard/assets/CustomizationPage-BKj_r0rp.js.gz +0 -0
- package/dist/dashboard/assets/InjectSystemPromptPanel-B5nZvmf0.js.gz +0 -0
- package/dist/dashboard/assets/LoginPage-DkXb6dx-.js +0 -1
- package/dist/dashboard/assets/LoginPage-DkXb6dx-.js.gz +0 -0
- package/dist/dashboard/assets/ModelPicker-DnQPSIA8.js.gz +0 -0
- package/dist/dashboard/assets/OverviewPage-Ci2wQKUz.js +0 -1
- package/dist/dashboard/assets/OverviewPage-Ci2wQKUz.js.gz +0 -0
- package/dist/dashboard/assets/ProviderDetailPage-odlgYrOg.js +0 -5
- package/dist/dashboard/assets/ProviderDetailPage-odlgYrOg.js.gz +0 -0
- package/dist/dashboard/assets/ProviderIcon-EfeloBn4.js +0 -1
- package/dist/dashboard/assets/ProviderIcon-EfeloBn4.js.gz +0 -0
- package/dist/dashboard/assets/ProvidersPage-CqFBQEB8.js +0 -1
- package/dist/dashboard/assets/ProvidersPage-CqFBQEB8.js.gz +0 -0
- package/dist/dashboard/assets/ProxyPage-5SnUSy3j.js.gz +0 -0
- package/dist/dashboard/assets/QuotaPage-CmnMDzhP.js +0 -1
- package/dist/dashboard/assets/QuotaPage-CmnMDzhP.js.gz +0 -0
- package/dist/dashboard/assets/SettingsPage-BJtRZ4qD.js.gz +0 -0
- package/dist/dashboard/assets/SetupPage-WTa0sktC.js +0 -1
- package/dist/dashboard/assets/SetupPage-WTa0sktC.js.gz +0 -0
- package/dist/dashboard/assets/StudioPage-BfAb5-o_.js.gz +0 -0
- package/dist/dashboard/assets/ToolIcon-K1ckcDKg.js +0 -1
- package/dist/dashboard/assets/ToolIcon-K1ckcDKg.js.gz +0 -0
- package/dist/dashboard/assets/UsagePage-BNzeZ2Vk.js.gz +0 -0
- package/dist/dashboard/assets/api-keys-l29JROPv.js +0 -1
- package/dist/dashboard/assets/api-keys-l29JROPv.js.gz +0 -0
- package/dist/dashboard/assets/app--PJWq8_C.css +0 -2
- package/dist/dashboard/assets/app--PJWq8_C.css.gz +0 -0
- package/dist/dashboard/assets/app-Bgd3zANQ.js +0 -9
- package/dist/dashboard/assets/app-Bgd3zANQ.js.gz +0 -0
- package/dist/dashboard/assets/assert-C0K-c4eo.js.gz +0 -0
- package/dist/dashboard/assets/badge-DfbhQU4k.js.gz +0 -0
- package/dist/dashboard/assets/banner-BllT4LcF.js.gz +0 -0
- package/dist/dashboard/assets/card-CtkX66Wd.js.gz +0 -0
- package/dist/dashboard/assets/cli-tools-CQXVMn4P.js.gz +0 -0
- package/dist/dashboard/assets/clipboard-button-BQqBQd2n.js.gz +0 -0
- package/dist/dashboard/assets/dialog-BEK7KP0H.js +0 -1
- package/dist/dashboard/assets/dialog-BEK7KP0H.js.gz +0 -0
- package/dist/dashboard/assets/drawer-BrTEZ8zu.js.gz +0 -0
- package/dist/dashboard/assets/entry-CHWxbS56.js +0 -1
- package/dist/dashboard/assets/entry-CHWxbS56.js.gz +0 -0
- package/dist/dashboard/assets/entry-EBHJ3DrE.js +0 -1
- package/dist/dashboard/assets/entry-EBHJ3DrE.js.gz +0 -0
- package/dist/dashboard/assets/entry-LCS85hiq.js +0 -4
- package/dist/dashboard/assets/entry-LCS85hiq.js.gz +0 -0
- package/dist/dashboard/assets/formatters-BAACA727.js +0 -1
- package/dist/dashboard/assets/formatters-BAACA727.js.gz +0 -0
- package/dist/dashboard/assets/github-badge-YSCE4UC2.js +0 -1
- package/dist/dashboard/assets/github-badge-YSCE4UC2.js.gz +0 -0
- package/dist/dashboard/assets/index-FQlj0HUT.js.gz +0 -0
- package/dist/dashboard/assets/inline-C4gU5iOL.js.gz +0 -0
- package/dist/dashboard/assets/input-BHHX_Tmm.js.gz +0 -0
- package/dist/dashboard/assets/layout-CajrYUnD.js.gz +0 -0
- package/dist/dashboard/assets/list-row-Bx2I7XUe.js.gz +0 -0
- package/dist/dashboard/assets/live-DNNqRbj2.js.gz +0 -0
- package/dist/dashboard/assets/mutation-Rr0TIvcj.js.gz +0 -0
- package/dist/dashboard/assets/network-C5UBACrJ.js.gz +0 -0
- package/dist/dashboard/assets/numbers-CUWAZK4J.js +0 -2
- package/dist/dashboard/assets/numbers-CUWAZK4J.js.gz +0 -0
- package/dist/dashboard/assets/pagination-Xsi9Qx04.js.gz +0 -0
- package/dist/dashboard/assets/providers/zai-coding-plan.svg +0 -6
- package/dist/dashboard/assets/providers/zai-coding-plan.svg.gz +0 -0
- package/dist/dashboard/assets/quota-DvQbD_sr.js +0 -1
- package/dist/dashboard/assets/quota-DvQbD_sr.js.gz +0 -0
- package/dist/dashboard/assets/routing-in0f_IfK.js.gz +0 -0
- package/dist/dashboard/assets/select-BLULNqTp.js.gz +0 -0
- package/dist/dashboard/assets/settings-CcGczj6I.js.gz +0 -0
- package/dist/dashboard/assets/stack-D2lIR0tg.js.gz +0 -0
- package/dist/dashboard/assets/state-DTARjfiW.js.gz +0 -0
- package/dist/dashboard/assets/switch-c0oPSnqW.js.gz +0 -0
- package/dist/dashboard/assets/useMutation-m8WGNPrz.js.gz +0 -0
- package/src/console/cli-tools/injectors/cline.ts +0 -110
- package/src/console/cli-tools/injectors/copilot.ts +0 -108
- package/src/console/cli-tools/injectors/cowork.ts +0 -64
- package/src/console/cli-tools/injectors/deepseek-tui.ts +0 -85
- package/src/console/cli-tools/injectors/droid.ts +0 -96
- package/src/console/cli-tools/injectors/grok-build.ts +0 -70
- package/src/console/cli-tools/injectors/hermes.ts +0 -101
- package/src/console/cli-tools/injectors/jcode.ts +0 -115
- package/src/console/cli-tools/injectors/openclaw.ts +0 -161
- package/src/providers/integrations/qoder/qoder-text-tools.ts +0 -277
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,r as n,t as r}from"./jsx-runtime-CXUMngI_.js";import{i}from"./terminal-0_IjPWTk.js";import{S as a,k as o,l as s,s as c,y as l}from"./numbers-CUWAZK4J.js";import{t as u}from"./chevron-left-Bf6CaTSJ.js";import{t as d}from"./chevron-right-BXIy5l3h.js";import{t as f}from"./eye-off-Bk5g2luF.js";import{a as p,c as m,d as h,f as g,i as ee,l as _,m as v,n as y,o as b,p as x,r as S,s as C,t as w,u as T}from"./ClaimGiftsButton-D83pBJ6J.js";import{i as E,n as D,r as O,t as k}from"./state-DTARjfiW.js";import{t as A}from"./dialog-BEK7KP0H.js";import{t as te}from"./refresh-cw-BqJFk4sU.js";import{t as j}from"./rotate-ccw-CufcqITi.js";import{t as M}from"./trash-Cppn5c3R.js";import{t as N}from"./zap-C4EeVW4q.js";import{l as P}from"./query-keys-BloKtaXJ.js";import{B as ne}from"./entry-LCS85hiq.js";import{n as re,t as F}from"./card-CtkX66Wd.js";import{t as I}from"./switch-c0oPSnqW.js";import{t as L}from"./badge-DfbhQU4k.js";import{t as R}from"./select-BLULNqTp.js";import{t as z}from"./ProviderIcon-EfeloBn4.js";import{t as ie}from"./stack-D2lIR0tg.js";import{n as B}from"./inline-C4gU5iOL.js";import{t as V}from"./layout-CajrYUnD.js";import{a as H,c as U,i as W,l as G,n as K,o as q,r as J,s as ae,t as oe}from"./quota-DvQbD_sr.js";var Y=e(`calendar-check`,[[`path`,{d:`M8 2v3`,key:`1ioesn`}],[`path`,{d:`M16 2v3`,key:`otl347`}],[`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`,key:`h1oib`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`m9 15 2 2 4-4`,key:`1grp1n`}]]),X=e(`clock-3`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6h4`,key:`135r8i`}]]),Z=t(n(),1),Q=r();function $(e){let t=e.quota?.windows.map(e=>e.resetsAt?new Date(e.resetsAt).getTime():1/0)??[];return Math.min(...t,1/0)}function se({account:e,onClose:t}){let n=p(e.id,!0),r=h(e.id),i=n.data?.credits??[],a=e=>e?new Date(e).toLocaleString():`—`,o=e=>e?new Date(e).toLocaleString():`—`,l=e=>{if(!e)return``;let t=new Date(e).getTime()-Date.now();if(!Number.isFinite(t))return``;if(t<=0)return`expired`;let n=Math.floor(t/864e5);if(n>=1)return`in ${n}d`;let r=Math.floor(t/36e5);return r>=1?`in ${r}h`:`in ${Math.max(1,Math.floor(t/6e4))}m`};return(0,Q.jsx)(A,{open:!0,onClose:t,size:`lg`,title:`Saved Rate-Limit Resets — ${e.name}`,children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-7`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-6 rounded-control border border-inner-border bg-surface-2 px-8 py-6`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,Q.jsx)(N,{size:14,className:`text-status-success`}),(0,Q.jsx)(`span`,{className:`text-body font-semibold`,children:`Available resets`})]}),(0,Q.jsx)(`p`,{className:`mt-2 text-text-tertiary text-badge leading-normal`,children:`Each credit lifts a spent rate-limit window before its natural reset.`})]}),(0,Q.jsxs)(L,{tone:n.data&&n.data.availableCount>0?`ok`:`disabled`,dot:!0,children:[n.data?.availableCount??0,` reset`,(n.data?.availableCount??0)===1?``:`s`]})]}),n.isPending?(0,Q.jsx)(O,{compact:!0,label:`Reading saved resets…`}):n.isError?(0,Q.jsx)(D,{compact:!0,message:`Failed to read saved resets`,onRetry:()=>void n.refetch()}):i.length===0?(0,Q.jsx)(k,{compact:!0,title:`No saved resets`,message:`This account has no saved rate-limit reset credits right now.`,icon:(0,Q.jsx)(N,{size:20})}):(0,Q.jsx)(`div`,{className:`max-h-170 overflow-y-auto rounded-control border border-inner-border`,children:(0,Q.jsx)(V,{headers:[`Status`,`Title`,`Granted`,`Expires`,``],children:i.map(e=>{let t=(e.status??`available`)===`available`,n=l(e.expiresAt);return(0,Q.jsxs)(`tr`,{children:[(0,Q.jsx)(`td`,{className:`whitespace-nowrap align-middle`,children:(0,Q.jsx)(L,{tone:t?`ok`:e.status===`expired`?`disabled`:`warn`,children:e.status??`available`})}),(0,Q.jsx)(`td`,{className:`text-caption font-medium whitespace-nowrap align-middle text-text-primary`,children:e.title??`Rate-limit reset`}),(0,Q.jsx)(`td`,{className:`text-badge whitespace-nowrap tabular-nums align-middle text-text-secondary`,children:a(e.grantedAt)}),(0,Q.jsxs)(`td`,{className:`text-badge whitespace-nowrap tabular-nums align-middle text-text-secondary`,children:[o(e.expiresAt),n&&(0,Q.jsxs)(`span`,{className:`ml-3 text-text-tertiary`,children:[`(`,n,`)`]})]}),(0,Q.jsx)(`td`,{className:`whitespace-nowrap text-right align-middle`,children:(0,Q.jsx)(s,{size:`sm`,variant:t?`primary`:`secondary`,disabled:!t||r.isPending,onClick:()=>r.mutate({creditId:e.id},{onSuccess:e=>{e.ok?c.success(e.message??`Rate limit reset applied`):c.error(e.message??`Rate limit reset failed`)},onError:e=>{c.error(P(e,`Unable to redeem rate-limit reset`))}}),children:`Use`})})]},e.id)})})}),(0,Q.jsx)(B,{justify:`flex-end`,gap:`0px`,children:(0,Q.jsx)(s,{variant:`secondary`,size:`sm`,onClick:t,children:`Close`})})]})})}function ce({accounts:e}){let t=(0,Z.useMemo)(()=>{let t=new Map;for(let n of e){if(!S(n.provider))continue;let e=t.get(n.provider);e?e.count+=1:t.set(n.provider,{id:n.provider,label:n.providerName||n.provider,count:1})}return[...t.values()]},[e]),[n,r]=(0,Z.useState)(``),i=(t.find(e=>e.id===n)??t[0])?.id??``,o=x(i),l=i.length===0||o.isPending||t.length===0;return(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2.5`,"aria-label":`Daily growth actions`,children:[(0,Q.jsx)(`div`,{className:`min-w-0 w-67.5`,children:(0,Q.jsx)(R,{"aria-label":`Provider for the daily growth pass`,value:i,onValueChange:r,className:`w-full h-16`,options:t.length>0?t.map(e=>({value:e.id,label:`${e.label} · ${e.count}`})):[{value:``,label:`No buddy providers`}]})}),(0,Q.jsx)(s,{variant:`secondary`,size:`sm`,title:`Send the activity report, then claim the daily check-in, for every account of this provider`,"aria-label":`Run the daily growth pass for this provider`,disabled:l,className:`shrink-0`,icon:o.isPending?(0,Q.jsx)(a,{size:13,className:`animate-spin`}):(0,Q.jsx)(Y,{size:13}),onClick:()=>o.mutate(void 0,{onSuccess:e=>{let t=e.data.filter(e=>!e.report.ok).length;t===0?c.success(e.message):c.error(`${e.message} — ${t} report${t===1?``:`s`} failed`)},onError:e=>c.error(P(e,`Unable to run the daily growth pass`))}),children:`Daily growth`})]})}function le({account:e,onToggle:t,onDelete:n,onShowHealth:r,onShowResets:o}){let f=m(e.id),h=g(e.id),_=S(e.provider),v=ee(e.provider),y=p(e.id,v),b=e.quota,[x,C]=(0,Z.useState)(0),T=b?.windows??[],E=q(T,x),D=E.pageCount;(0,Z.useEffect)(()=>{C(e=>Math.min(e,Math.max(0,D-1)))},[D]);let O=f.isPending||h.isPending,k=y.data?.availableCount??0,[A,te]=(0,Z.useState)(null),[ne,re]=(0,Z.useState)(!1),L=e.checkin?.attemptedToday??!1,R=`${A?A.state===`claimed`?`Checked in${A.credit===null?``:` +${A.credit}`}${A.streakDays===null?``:` · ${A.streakDays}d streak`}`:A.state===`already_claimed`?`Check-in attempted · already claimed`:A.state===`not_eligible`?`Check-in attempted · not eligible`:A.state===`event_ended`?`Check-in attempted · event ended`:`Check-in attempted · unavailable`:L?`Check-in attempted today`:`Check-in due`}${ne?` · Reported today`:``}`,ie=T.reduce((e,t)=>{if(G(t)!==`current`)return e;let n=t.limit;if(typeof n!=`number`||!Number.isFinite(n))return e;let r=typeof t.remaining==`number`&&Number.isFinite(t.remaining)?t.remaining:typeof t.used==`number`&&Number.isFinite(t.used)?n-t.used:typeof t.remainingPercent==`number`&&Number.isFinite(t.remainingPercent)?n*t.remainingPercent/100:null;return r===null?e:e+Math.max(0,r)},0),B=(f.error?P(f.error,`Unable to refresh this account`):null)??b?.refreshError??b?.error??e.health?.sanitizedMessage,V=H(B),U=V===`Quota tracking is not supported for this provider`?null:V,X=oe(e.credentialHint,e.name),$=e.health?.status??`unknown`;return(0,Q.jsxs)(F,{className:`flex h-full flex-col overflow-hidden`,"aria-busy":O,children:[(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-5 px-7 py-4`,children:[(0,Q.jsx)(z,{icon:e.providerIcon,name:e.providerName,size:32}),(0,Q.jsxs)(`div`,{className:`flex-[1_1_160px]`,children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-4`,children:[(0,Q.jsx)(`div`,{className:`truncate text-caption font-bold text-text-primary text-body`,children:e.providerName}),b?.plan&&(0,Q.jsx)(`span`,{className:`shrink-0 rounded-chip bg-accent-soft px-4 py-1 text-micro font-semibold text-accent`,children:b.plan})]}),(0,Q.jsx)(`div`,{className:`truncate text-badge text-text-secondary`,children:X.primary}),X.secondary!==null&&(0,Q.jsx)(`div`,{className:`truncate text-micro text-text-tertiary`,children:X.secondary}),b&&(0,Q.jsx)(`div`,{className:`truncate text-micro text-text-tertiary`,children:K(b.lastSuccessAt??b.fetchedAt)}),v&&(0,Q.jsx)(`div`,{className:`truncate text-micro flex items-center gap-2 text-text-tertiary`,title:`Saved rate-limit reset credits available on this account`,children:y.isPending?`Checking saved resets…`:k>0?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(N,{size:10,className:`text-status-success shrink-0`,"aria-hidden":`true`}),(0,Q.jsxs)(`span`,{className:`reset-credit-live`,children:[k,` rate-limit reset`,k===1?``:`s`,` available`]})]}):`No rate-limit resets available`}),_&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{title:`Daily growth state: manual pass result, else the sweep ledger for today`,className:`truncate text-micro text-text-tertiary`,children:h.isPending?`Running growth pass…`:R}),T.some(e=>typeof e.limit==`number`&&Number.isFinite(e.limit))&&(0,Q.jsxs)(`div`,{className:`truncate text-micro text-text-tertiary`,children:[`Total credits: `,ie.toLocaleString(void 0,{maximumFractionDigits:2})]})]})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.75 gap-3 ml-auto`,children:[e.provider===`zcode-start`&&(0,Q.jsx)(w,{accountId:e.id,accountName:e.name}),v&&(0,Q.jsx)(s,{variant:`ghost`,size:`icon`,className:`w-16 h-16 p-0`,title:y.isPending?`Checking saved rate-limit resets…`:k>0?`Saved rate-limit resets (${k} available)`:`Saved rate-limit resets`,"aria-label":`Open saved rate-limit resets for ${e.name}`,disabled:O,onClick:()=>o(e),children:(0,Q.jsx)(N,{size:14})}),_&&(0,Q.jsx)(s,{variant:`ghost`,size:`icon`,className:`w-16 h-16 p-0`,title:`Daily growth pass (check-in + activity report) — ${R}`,"aria-label":`Run daily growth pass for ${e.name}`,disabled:O,onClick:()=>h.mutate(void 0,{onSuccess:e=>{let t=e.checkin.data;t&&te({state:t.state,credit:t.credit,streakDays:t.streakDays}),e.report.ok&&re(!0),e.ok?c.success(e.message):c.error(e.message)},onError:e=>{c.error(P(e,`Unable to run daily growth pass`))}}),children:h.isPending?(0,Q.jsx)(a,{size:14,className:`animate-spin`}):(0,Q.jsx)(Y,{size:14})}),(0,Q.jsx)(s,{variant:`ghost`,size:`sm`,title:$===`active`?`Health & Error Log`:`${$} — Inspect account health details`,"aria-label":$===`active`?`Health log for ${e.name}`:`Account is ${$} — inspect health details for ${e.name}`,disabled:O,onClick:()=>r(e),icon:(0,Q.jsx)(i,{size:12})}),(0,Q.jsx)(s,{variant:`ghost`,size:`sm`,title:`Refresh quota`,"aria-label":`Refresh ${e.name} quota`,disabled:O,onClick:()=>f.mutate(),icon:f.isPending?(0,Q.jsx)(a,{size:12,className:`animate-spin`}):(0,Q.jsx)(j,{size:12})}),(0,Q.jsx)(s,{variant:`ghost`,size:`sm`,title:`Delete account`,"aria-label":`Delete ${e.name}`,onClick:()=>n(e),className:`text-red`,icon:(0,Q.jsx)(M,{size:12})}),(0,Q.jsx)(I,{checked:e.active,disabled:f.isPending,onChange:n=>t(e,n),label:``,id:`switch-${e.id}`})]})]}),U&&(0,Q.jsxs)(`div`,{className:`flex items-center justify-center gap-4 border-t border-inner-border px-8 py-5 text-center text-badge text-red`,role:`alert`,children:[(0,Q.jsx)(l,{size:13,className:`shrink-0`}),(0,Q.jsx)(`span`,{children:U})]}),b?.windows.length?(0,Q.jsxs)(`div`,{className:`quota-window-list flex flex-1 flex-col gap-4 border-t border-inner-border px-7 py-4.5`,children:[(0,Q.jsx)(`div`,{className:`quota-window-section-label text-micro font-bold tracking-label text-text-tertiary`,children:`QUOTA WINDOWS`}),E.items.map((e,t)=>{let n=G(e);if(n!==`current`)return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2 text-badge`,children:[(0,Q.jsx)(`span`,{className:`font-semibold text-text-primary`,children:J(e.label)}),e.modelIds?.length?(0,Q.jsxs)(`span`,{className:`text-text-secondary`,children:[`Models: `,e.modelIds.join(`, `)]}):null,(0,Q.jsx)(`span`,{className:`text-text-tertiary`,children:n===`expired`?`Expired`:`Not started yet · Starts ${new Date(e.startsAt).toLocaleString()}`})]},`${e.kind??e.label}:${e.startsAt}:${t}`);let r=e.remainingPercent??null,i=typeof e.limit==`number`&&Number.isFinite(e.limit)?e.limit:null,a=typeof e.remaining==`number`&&Number.isFinite(e.remaining)?e.remaining:null,o=typeof e.used==`number`&&Number.isFinite(e.used)?e.used:i!==null&&e.usedPercent!==null&&e.usedPercent!==void 0?i*e.usedPercent/100:null,s=ae(r),c=r===null?0:Math.max(0,Math.min(100,r)),l=e=>e.toLocaleString(void 0,{maximumFractionDigits:2}),u=e=>{let t=Math.round(e*10)/10;return t>0&&t<.1?`<0.1`:t.toLocaleString(void 0,{maximumFractionDigits:1})},d=J(e.label);return(0,Q.jsxs)(`div`,{className:`quota-window-row grid grid-cols-quota-window min-w-0 items-center gap-x-6 gap-y-2 max-small:grid-cols-[minmax(0,1fr)_auto] max-small:gap-x-4 max-small:gap-y-2.5`,children:[(0,Q.jsxs)(`div`,{className:`quota-window-heading min-w-0 max-small:col-start-1`,children:[(0,Q.jsx)(`span`,{className:`text-badge font-semibold text-text-primary`,children:d}),e.modelIds?.length?(0,Q.jsxs)(`div`,{className:`text-micro text-text-tertiary`,children:[`Models: `,e.modelIds.join(`, `)]}):null]}),(0,Q.jsx)(`div`,{className:`quota-bar-track quota-window-bar min-w-0 w-full h-5 rounded-tiny bg-inner-border overflow-hidden max-small:col-span-full max-small:row-start-2`,role:`progressbar`,"aria-label":`${d} remaining quota`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":r===null?void 0:c,"aria-valuetext":r===null?a===null?`Quota only`:`${l(a)} credits remaining`:`${u(r)}% remaining`,children:(0,Q.jsx)(`div`,{className:`quota-bar-fill h-full rounded-tiny transition-[width] duration-(--dur-macro) ease-spring`,style:{width:`${c}%`,background:s.bar}})}),(0,Q.jsx)(`span`,{className:`quota-window-remaining whitespace-nowrap text-badge font-bold tabular-nums max-small:col-start-2 max-small:row-start-1`,style:{color:s.text},children:r===null?a===null?`—`:`${l(a)} left`:`${u(r)}%`}),(0,Q.jsxs)(`div`,{className:`quota-window-details col-span-full flex min-w-0 items-center justify-end gap-6 text-micro text-text-tertiary max-small:row-start-3 max-small:flex-wrap max-small:justify-between max-small:gap-4`,children:[(0,Q.jsx)(`span`,{className:`quota-window-usage mr-auto tabular-nums max-small:min-w-0`,children:o!==null&&i!==null?`${l(o)} / ${l(i)} Credits`:a===null?`Quota only`:`${l(a)} Credits remaining`}),e.resetsAt&&(0,Q.jsx)(`span`,{className:`quota-window-reset whitespace-nowrap tabular-nums text-right max-small:ml-auto`,children:W(e.resetsAt,e.recurring)})]})]},`${e.kind??e.label}:${e.resetsAt??`none`}:${t}`)}),E.pageCount>1&&(0,Q.jsxs)(`nav`,{"aria-label":`Quota windows for ${e.name}`,className:`quota-window-pagination mt-auto flex items-center justify-between gap-4 border-t border-inner-border pt-4 max-small:flex-wrap`,children:[(0,Q.jsxs)(`span`,{"aria-live":`polite`,className:`text-micro text-text-tertiary`,children:[`Showing `,E.startIndex+1,`–`,E.startIndex+E.items.length,` of `,T.length]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(s,{variant:`ghost`,size:`sm`,"aria-label":`Previous quota windows for ${e.name}`,disabled:E.page===0,icon:(0,Q.jsx)(u,{size:13}),onClick:()=>C(E.page-1),className:`h-14 px-4 py-0`,children:`Previous`}),(0,Q.jsx)(s,{variant:`ghost`,size:`sm`,"aria-label":`Next quota windows for ${e.name}`,disabled:E.page>=E.pageCount-1,icon:(0,Q.jsx)(d,{size:13}),onClick:()=>C(E.page+1),className:`h-14 px-4 py-0`,children:`Next`})]})]})]}):U?null:(0,Q.jsx)(`div`,{className:`border-t border-inner-border px-7 py-9 text-center text-badge text-text-tertiary`,children:O||e.pending?`Fetching quota…`:`No quota data`})]})}function ue(){let[e,t]=(0,Z.useState)(`all`),[n,r]=(0,Z.useState)(`all`),[i,a]=(0,Z.useState)(!1),{data:l,isLoading:u,isError:d,error:p,isFetching:m,dataUpdatedAt:h,refetch:g}=C(),ee=(0,Z.useMemo)(()=>[...l?.providers??[]].sort((e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:`base`})),[l?.providers]),x=(0,Z.useMemo)(()=>l?.accounts??[],[l?.accounts]),S=l?.refreshing??0,w=_(),[D,O]=(0,Z.useState)(null),A=v(),j=T(),M=b(),[N,P]=(0,Z.useState)(null);(0,Z.useEffect)(()=>{w.isPending||O(null)},[w.isPending]);let[I,L]=(0,Z.useState)(null),[z,B]=(0,Z.useState)(null),V=(0,Z.useMemo)(()=>{let t=x.filter(t=>{if(e!==`all`&&t.provider!==e)return!1;let r=!!t.quota?.windows.length;return n===`untracked`?!r:!(!r||n===`active`&&!t.active||n===`disabled`&&t.active)}),r=(e,t)=>e.providerName.localeCompare(t.providerName,void 0,{sensitivity:`base`})||e.name.localeCompare(t.name,void 0,{sensitivity:`base`});return[...t].sort(i?(e,t)=>$(e)-$(t)||r(e,t):r)},[n,x,i,e]),H=async(e,t)=>{try{await A.mutateAsync({id:e.id,active:t}),c.success(`${e.name} ${t?`enabled`:`disabled`}`)}catch(e){c.error(e instanceof Error?e.message:`Unable to update account`)}},W=async()=>{let e=x.filter(e=>e.active&&U(e.quota?.windows??[]).empty);await j.mutateAsync({ids:e.map(e=>e.id),active:!1}),c.success(`Disabled ${e.length} empty accounts`)},G=async()=>{let e=x.filter(e=>!e.active&&U(e.quota?.windows??[]).available);await j.mutateAsync({ids:e.map(e=>e.id),active:!0}),c.success(`Enabled ${e.length} available accounts`)},K=async e=>{await M.mutateAsync(e.id),c.success(`${e.name} deleted`)},q=h>0?new Date(h).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}):`Not updated`,J=x.filter(e=>U(e.quota?.windows??[]).empty).length;return(0,Q.jsxs)(ie,{gap:`16px`,className:`dashboard-page min-h-0 flex-1`,children:[(0,Q.jsx)(F,{children:(0,Q.jsxs)(re,{className:`flex flex-col gap-5`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-5`,children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-center gap-4`,children:[(0,Q.jsx)(R,{"aria-label":`Filter quota by provider`,value:e,onValueChange:t,className:`w-full h-16 max-small:w-80`,options:[{value:`all`,label:`All Providers`},...ee.map(e=>({value:e.id,label:e.name}))]}),(0,Q.jsx)(R,{"aria-label":`Filter quota by account`,value:n,onValueChange:r,className:`w-full h-16 max-small:w-67.5`,options:[{value:`all`,label:`With quota`},{value:`active`,label:`Active`},{value:`disabled`,label:`Disabled`},{value:`untracked`,label:`No quota`}]})]}),(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4`,children:[(0,Q.jsx)(s,{variant:i?`secondary`:`ghost`,size:`sm`,onClick:()=>a(e=>!e),"aria-pressed":i,icon:(0,Q.jsx)(X,{size:13}),children:`Expiring first`}),(0,Q.jsx)(s,{variant:`ghost`,size:`sm`,className:`text-red`,disabled:J===0||m,onClick:()=>void W(),icon:(0,Q.jsx)(f,{size:13}),children:`Turn off Empty`}),(0,Q.jsx)(s,{variant:`ghost`,size:`sm`,className:`text-green`,disabled:m,onClick:()=>void G(),icon:(0,Q.jsx)(o,{size:13}),children:`Turn on Available`})]})]}),(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-4 border-t border-inner-border pt-5`,children:[(0,Q.jsxs)(`span`,{className:`text-badge text-text-tertiary`,children:[V.length,` shown`,J>0?` · ${J} empty`:``]}),(0,Q.jsxs)(`span`,{className:`flex min-w-0 flex-wrap items-center gap-x-5 gap-y-3 text-badge text-text-tertiary`,children:[S>0?`Refreshing ${S} account${S===1?``:`s`}…`:`Auto-refresh 60s · ${q}`,(0,Q.jsx)(ce,{accounts:x}),(0,Q.jsx)(s,{variant:`secondary`,size:`sm`,title:`Queue quota refresh`,"aria-label":`Queue quota refresh`,disabled:m||w.isPending||x.length===0,icon:(0,Q.jsx)(te,{size:13,className:w.isPending?`animate-spin`:void 0}),onClick:()=>w.mutate({accountIds:x.map(e=>e.id),onProgress:(e,t)=>O({done:e,total:t})},{onSuccess:e=>{c.success(e.failed===0?`Refreshed ${e.succeeded} quota${e.succeeded===1?``:`s`}`:`Refreshed ${e.succeeded}, ${e.failed} failed`)},onError:e=>c.error(e instanceof Error?e.message:`Unable to refresh quota`)}),children:D&&D.total>0?`Refresh ${D.done}/${D.total}`:`Refresh`})]})]})]})}),(0,Q.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-6`,children:u?(0,Q.jsx)(E,{className:`min-h-0 flex flex-1 flex-col items-center justify-center`,kind:`loading`,title:`Loading quota data`,description:`Reading provider account limits…`}):d?(0,Q.jsx)(E,{className:`min-h-0 flex flex-1 flex-col items-center justify-center`,kind:`error`,title:`Unable to load quota data`,description:p instanceof Error?p.message:`Check the console session and retry.`,action:(0,Q.jsx)(s,{variant:`secondary`,onClick:()=>void g(),children:`Retry`})}):V.length===0?(0,Q.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-12 border border-dashed border-transparent rounded-card bg-transparent text-center`,children:(0,Q.jsx)(k,{title:`No account quota data`,message:`Nothing is reporting a quota window yet. Add a provider account and its limits will appear here.`})}):(0,Q.jsx)(`div`,{className:`quota-account-grid scroll-region min-h-0 flex-1 gap-6 [align-content:start]`,children:V.map(e=>(0,Q.jsx)(le,{account:e,onToggle:(e,t)=>void H(e,t),onDelete:e=>P(e),onShowHealth:e=>L(e),onShowResets:e=>B(e)},e.id))})}),I&&(0,Q.jsx)(y,{summary:{providerId:I.provider,accountId:I.id,title:I.name,status:I.health?.status??`unknown`,errorCategory:I.health?.lastErrorCategory??void 0,errorMessage:I.health?.sanitizedMessage??void 0,emptyMessage:`Status transitions, rate limits, quota refreshes, check-ins, and auto-recoveries will appear here.`},onClose:()=>L(null)}),z&&(0,Q.jsx)(se,{account:z,onClose:()=>B(null)}),(0,Q.jsx)(ne,{open:N!==null,onClose:()=>P(null),onConfirm:async()=>{N&&await K(N)},title:`Delete account?`,message:`Delete "${N?.name}"? This cannot be undone.`,confirmLabel:`Delete`,danger:!0})]})}export{ue as default};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,r as n,t as r}from"./jsx-runtime-CXUMngI_.js";import{l as i}from"./numbers-CUWAZK4J.js";import{o as a,t as o}from"./query-keys-BloKtaXJ.js";import{R as s,et as c,tt as l}from"./entry-LCS85hiq.js";import{n as u}from"./input-BHHX_Tmm.js";import{t as d}from"./layout-CajrYUnD.js";import{t as f}from"./backup-file-gdKIlg8U.js";var p=e(`user-plus`,[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,key:`1yyitq`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}],[`line`,{x1:`19`,x2:`19`,y1:`8`,y2:`14`,key:`1bvyxn`}],[`line`,{x1:`22`,x2:`16`,y1:`11`,y2:`11`,key:`1shjgl`}]]),m=t(n(),1),h=r();function g(){let e=l(),[t,n]=(0,m.useState)(null),[r,d]=(0,m.useState)(`admin`),[g,y]=(0,m.useState)(``),[b,x]=(0,m.useState)(``),[S,C]=(0,m.useState)(``),[w,T]=(0,m.useState)(null),[E,D]=(0,m.useState)(!1),[O,k]=(0,m.useState)(`create`),[A,j]=(0,m.useState)(null),[M,N]=(0,m.useState)(null),P=(0,m.useRef)(null);(0,m.useEffect)(()=>{let t=!0;return a(`/auth/first-boot`).then(r=>{t&&(n(r.requires_setup),r.requires_setup||e(`/login`,{replace:!0}))}).catch(()=>{t&&n(!0)}),()=>{t=!1}},[e]);let F=async n=>{if(n.preventDefault(),t===!1){T(`This console already has an account. Sign in instead.`);return}if(!r.trim()){T(`Administrator username is required.`);return}if(b.length<8){T(`Administrator password must be at least 8 characters.`);return}if(b!==S){T(`Passwords do not match.`);return}D(!0),T(null);try{let t=await a(`/auth/setup`,{method:`POST`,body:JSON.stringify({username:r.trim(),password:b,...g.trim()?{display_name:g.trim()}:{}})});if(t.status!==`success`){T(t.message??`Setup failed. Please try again.`);return}s.removeQueries({queryKey:o.session.current}),e(`/login`,{replace:!0})}catch(e){if(e&&typeof e==`object`&&`message`in e){let t=e.message;if(typeof t==`string`){T(t);return}}T(`An unexpected network error occurred.`)}finally{D(!1)}},I=async t=>{D(!0),T(null);try{if(b.length<8){T(`Administrator password must be at least 8 characters.`);return}if(b!==S){T(`Passwords do not match.`);return}let n=await f(t),i=await a(`/auth/setup/restore`,{method:`POST`,body:JSON.stringify({backup:n,username:r.trim(),password:b,...g.trim()?{display_name:g.trim()}:{}})});if(i.status!==`success`){T(i.message??`Restore failed. Please try again.`);return}s.removeQueries({queryKey:o.session.current}),e(`/login`,{replace:!0})}catch(e){if(e instanceof Error){T(e.message);return}T(`An unexpected network error occurred.`)}finally{D(!1)}},L=e=>{if(j(e),T(null),e===null){N(null);return}f(e).then(async t=>{try{let n=await a(`/auth/setup/inspect`,{method:`POST`,body:JSON.stringify({backup:t})});if(n.status!==`success`){N(null),T(n.message??`Could not read that backup.`);return}N({fileName:e.name,version:n.version??0,exportedAt:n.exportedAt??``,rows:n.rows??[],total:n.total??0,warnings:n.warnings??[]})}catch{N(null)}}).catch(e=>{N(null),T(e instanceof Error?e.message:`That file is not a JSON backup.`)})};return t===!1?(0,h.jsx)(`main`,{className:`auth-viewport`,children:(0,h.jsxs)(`div`,{className:`card-solid auth-window`,children:[(0,h.jsxs)(`div`,{className:`auth-header`,children:[(0,h.jsx)(`div`,{className:`auth-logo`,"aria-hidden":`true`}),(0,h.jsx)(`h1`,{className:`auth-title`,children:`Account Already Registered`}),(0,h.jsx)(`p`,{className:`auth-desc`,children:`This console already has an administrator account, so setup is closed. Sign in with the account that was created.`})]}),(0,h.jsxs)(`div`,{className:`flex flex-col gap-7`,children:[(0,h.jsx)(v,{message:`Setup is already finished. Creating a second administrator is not possible from here.`}),(0,h.jsx)(c,{to:`/login`,className:`no-underline`,children:(0,h.jsx)(i,{variant:`primary`,type:`button`,className:`w-full h-20`,children:`Go to sign in`})})]})]})}):(0,h.jsx)(`main`,{className:`auth-viewport`,children:(0,h.jsxs)(`div`,{className:`card-solid auth-window`,children:[(0,h.jsxs)(`div`,{className:`auth-header`,children:[(0,h.jsx)(`div`,{className:`auth-logo`,"aria-hidden":`true`}),(0,h.jsx)(`h1`,{className:`auth-title`,children:`Cartethyia Console Setup`}),O===`create`?(0,h.jsx)(`p`,{className:`auth-desc`,children:`Configure the administrator account for Cartethyia AI Gateway`}):null]}),(0,h.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 mb-7`,children:[(0,h.jsx)(i,{type:`button`,variant:O===`create`?`primary`:`secondary`,onClick:()=>k(`create`),children:`New account`}),(0,h.jsx)(i,{type:`button`,variant:O===`restore`?`primary`:`secondary`,onClick:()=>k(`restore`),children:`Restore`})]}),O===`restore`?(0,h.jsxs)(`div`,{className:`flex flex-col gap-7`,children:[(0,h.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,h.jsx)(`span`,{className:`text-text-secondary text-caption`,children:`Backup file`}),(0,h.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-border-subtle px-3 py-2.5`,children:[(0,h.jsx)(i,{type:`button`,variant:`secondary`,size:`sm`,onClick:()=>P.current?.click(),disabled:E||t===null,children:`Choose file…`}),(0,h.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-caption text-text-secondary`,children:A?.name??`No file chosen`})]})]}),(0,h.jsx)(`input`,{ref:P,id:`setup-backup`,type:`file`,accept:`application/json,.json,.gz,application/gzip`,disabled:E,className:`hidden`,onChange:e=>{let t=e.target.files?.[0]??null;L(t),e.target.value=``}}),M?(0,h.jsx)(_,{preview:M}):null,(0,h.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,h.jsx)(`p`,{className:`m-0 text-text-secondary text-caption`,children:`Backups carry settings only — no logins. Create the administrator for this install.`}),(0,h.jsx)(u,{label:`Administrator Username`,id:`restore-username`,value:r,onChange:e=>d(e.target.value),required:!0,autoComplete:`username`}),(0,h.jsx)(u,{label:`Master Password`,hint:`(min. 8 chars)`,id:`restore-password`,type:`password`,required:!0,minLength:8,value:b,onChange:e=>x(e.target.value),autoComplete:`new-password`}),(0,h.jsx)(u,{label:`Confirm Password`,id:`restore-confirm`,type:`password`,required:!0,minLength:8,value:S,onChange:e=>C(e.target.value),autoComplete:`new-password`})]}),w?(0,h.jsx)(v,{message:w}):null,(0,h.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,h.jsx)(i,{type:`button`,variant:`secondary`,onClick:()=>k(`create`),disabled:E,children:`Cancel`}),(0,h.jsx)(i,{type:`button`,variant:`primary`,disabled:E||t===null||A===null,onClick:()=>{A&&I(A)},children:E?`Restoring…`:`Restore this backup`})]})]}):(0,h.jsxs)(`form`,{onSubmit:F,className:`flex flex-col gap-7`,children:[(0,h.jsx)(u,{label:`Administrator Username`,id:`setup-username`,value:r,onChange:e=>d(e.target.value),required:!0,autoComplete:`username`,placeholder:`e.g. admin, risun`}),(0,h.jsx)(u,{label:`Display Name`,hint:`(optional)`,id:`display-name`,value:g,onChange:e=>y(e.target.value),autoComplete:`name`,placeholder:`e.g. Administrator, risun`}),(0,h.jsx)(u,{label:`Master Password`,hint:`(min. 8 chars)`,id:`setup-password`,type:`password`,required:!0,minLength:8,value:b,onChange:e=>x(e.target.value),autoComplete:`new-password`}),(0,h.jsx)(u,{label:`Confirm Password`,id:`setup-confirm`,type:`password`,required:!0,minLength:8,value:S,onChange:e=>C(e.target.value),autoComplete:`new-password`}),w?(0,h.jsx)(v,{message:w}):null,(0,h.jsx)(i,{variant:`primary`,type:`submit`,disabled:E||t===null,className:`w-full mt-3 h-20`,icon:(0,h.jsx)(p,{size:15}),children:E?`Initializing…`:`Complete Setup`})]})]})})}function _({preview:e}){let t=e.rows.filter(e=>!e.supported),n=e.rows.filter(e=>e.supported),r=e.exportedAt?e.exportedAt.replace(`T`,` `).slice(0,19):`unknown`;return(0,h.jsxs)(`div`,{className:`flex flex-col gap-2 p-3 border border-inner-border rounded-control bg-surface-2`,children:[(0,h.jsxs)(`div`,{className:`flex items-center flex-wrap gap-1.5`,children:[(0,h.jsx)(`span`,{className:`min-w-0 overflow-hidden whitespace-nowrap text-ellipsis text-body font-semibold`,title:e.fileName,children:e.fileName}),(0,h.jsxs)(`span`,{className:`inline-flex items-center flex-none px-3.5 py-px border border-inner-border rounded-md bg-surface-2 text-text-secondary text-badge tabular-nums`,children:[`v`,e.version]}),t.length>0?(0,h.jsxs)(`span`,{className:`inline-flex items-center flex-none px-3.5 py-px border rounded-md bg-surface-2 text-badge tabular-nums border-warning-line text-status-warning`,children:[t.length,` unsupported`]}):null]}),(0,h.jsxs)(`p`,{className:`m-0 text-text-secondary text-caption`,children:[e.total,` rows across `,e.rows.length,` tables · exported `,r]}),t.length>0?(0,h.jsx)(`p`,{className:`m-0 text-caption text-status-warning`,children:t.length===e.rows.length?`None of these tables exist in this build, so nothing can be restored.`:`This build no longer has some of these tables. The rest still restores.`}):null,e.rows.length===0?(0,h.jsx)(`p`,{className:`m-0 text-text-secondary text-caption`,children:`This backup is empty.`}):(0,h.jsx)(`div`,{className:`max-h-110 overflow-auto`,children:(0,h.jsx)(d,{headers:[`Table`,`Section`,`Rows`],dense:!0,children:[...n,...t].map(e=>(0,h.jsxs)(`tr`,{children:[(0,h.jsx)(`td`,{children:e.table}),(0,h.jsx)(`td`,{children:e.section}),(0,h.jsx)(`td`,{className:`text-right`,children:e.supported?e.count:(0,h.jsx)(`span`,{className:`inline-flex items-center flex-none px-3.5 py-px border rounded-md bg-surface-2 text-badge tabular-nums border-warning-line text-status-warning`,children:`unsupported`})})]},`${e.section}/${e.table}`))})})]})}function v({message:e}){return(0,h.jsx)(`div`,{className:`py-5 px-7 rounded-control bg-red-soft text-red text-caption font-medium`,role:`alert`,children:e})}export{g as default};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e,r as t,t as n}from"./jsx-runtime-CXUMngI_.js";var r=e(t(),1),i=n(),a={claude:{file:`claude-code`,ext:`svg`},codex:{file:`codex`,ext:`webp`},cline:{file:`cline`,ext:`webp`},opencode:{file:`opencode`,ext:`webp`},droid:{file:`droid`,ext:`webp`},hermes:{file:`hermes`,ext:`webp`},"grok-build":{file:`grok-build`,ext:`svg`},copilot:{file:`copilot`,ext:`webp`},"deepseek-tui":{file:`deepseek-tui`,ext:`webp`},jcode:{file:`jcode`,ext:`webp`},kilo:{file:`kilocode`,ext:`webp`},openclaw:{file:`openclaw`,ext:`webp`},cowork:{file:`claude`,ext:`webp`},cursor:{file:`cursor`,ext:`webp`},roo:{file:`roo`,ext:`webp`},continue:{file:`continue`,ext:`webp`},amp:{file:`amp`,ext:`webp`},qwen:{file:`qwen`,ext:`webp`}},o=new Set;function s({toolId:e,name:t,color:n,size:s=36}){let[c,l]=(0,r.useState)(()=>!e||o.has(e)),u=e?a[e]:void 0,d=t.split(/\s+/).filter(Boolean).slice(0,2).map(e=>e[0]?.toUpperCase()??``).join(``)||`?`;if(!u||c){let e=n||`var(--accent)`;return(0,i.jsx)(`div`,{"aria-hidden":`true`,style:{width:`${s}px`,height:`${s}px`,borderRadius:`10px`,display:`grid`,placeItems:`center`,fontSize:`${Math.max(11,Math.floor(s*.35))}px`,fontWeight:700,color:`white`,background:e,boxShadow:`0 4px 12px ${e}33`,flexShrink:0},children:d})}return(0,i.jsx)(`div`,{style:{width:`${s}px`,height:`${s}px`,borderRadius:`10px`,background:`var(--surface-2)`,display:`grid`,placeItems:`center`,flexShrink:0,overflow:`hidden`,border:`1px solid var(--inner-border)`},"aria-label":`${t} icon`,children:(0,i.jsx)(`img`,{src:`/assets/providers/${u.file}.${u.ext}`,alt:``,width:s,height:s,loading:`lazy`,decoding:`async`,style:{width:`100%`,height:`100%`,objectFit:`contain`,padding:u.ext===`svg`?`1px`:`2px`},onError:()=>{e&&o.add(e),l(!0)}})})}export{s as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,T as t,t as n,v as r}from"./assert-C0K-c4eo.js";import{a as i,i as a,o,t as s}from"./query-keys-BloKtaXJ.js";import{t as c}from"./useMutation-m8WGNPrz.js";function l(){let e=t();return c({mutationFn:e=>o(`/api-keys`,{method:`POST`,body:JSON.stringify(e)}),onSuccess:async()=>{await e.invalidateQueries({queryKey:s.apiKeys.all})}})}function u(){let e=t();return c({mutationFn:({keyId:e,request:t})=>o(`/api-keys/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify(t)}),onSuccess:async()=>{await e.invalidateQueries({queryKey:s.apiKeys.all})}})}function d(){let e=t();return c({mutationFn:e=>o(`/api-keys/reorder`,{method:`POST`,body:JSON.stringify({keyIds:e})}),onSuccess:async()=>{await e.invalidateQueries({queryKey:s.apiKeys.all})}})}function f(){let e=t();return c({mutationFn:e=>o(`/api-keys/${encodeURIComponent(e)}`,{method:`DELETE`}),onSuccess:async()=>{await e.invalidateQueries({queryKey:s.apiKeys.all})}})}function p(){let e=t();return c({mutationFn:({keyId:e,reason:t,minutes:n})=>o(`/api-keys/${encodeURIComponent(e)}/ban`,{method:`POST`,body:JSON.stringify({reason:t,...n===void 0?{}:{minutes:n}})}),onSuccess:async()=>{await e.invalidateQueries({queryKey:s.apiKeys.all})}})}function m(){let e=t();return c({mutationFn:({keyId:e})=>o(`/api-keys/${encodeURIComponent(e)}/unban`,{method:`POST`}),onSuccess:async()=>{await e.invalidateQueries({queryKey:s.apiKeys.all})}})}function h(t){return e({queryKey:s.apiKeys.shareLink(t??``),queryFn:e=>o(`/api-keys/${encodeURIComponent(t??``)}/share`,{signal:r(e)}),enabled:t!==null})}function g(){let e=t();return c({mutationFn:({keyId:e,...t})=>o(`/api-keys/${encodeURIComponent(e)}/share`,{method:`POST`,body:JSON.stringify(t)}),onSuccess:async(t,{keyId:n})=>{await e.invalidateQueries({queryKey:s.apiKeys.shareLink(n)}),await e.invalidateQueries({queryKey:s.apiKeys.all})}})}function _(){let e=t();return c({mutationFn:({keyId:e})=>o(`/api-keys/${encodeURIComponent(e)}/regenerate`,{method:`POST`}),onSuccess:async(t,{keyId:n})=>{await e.invalidateQueries({queryKey:s.apiKeys.all}),await e.invalidateQueries({queryKey:s.apiKeys.shareLink(n)})}})}function v(){return c({mutationFn:({keyId:e})=>o(`/api-keys/${encodeURIComponent(e)}/reveal`,{method:`POST`})})}function y(){return e({queryKey:s.apiKeys.all,queryFn:e=>o(`/api-keys`,{signal:r(e)}).then(n),...a})}function b(t,n){return e({queryKey:[...s.apiKeys.sharedKeys(t??``),n],queryFn:e=>{let i=new URLSearchParams({limit:String(n.limit),offset:String(n.offset),sort:n.sortBy,order:n.order,status:n.status});return o(`/api-keys/${encodeURIComponent(t??``)}/shared-keys?${i}`,{signal:r(e)})},enabled:t!==null,refetchInterval:i.live,refetchIntervalInBackground:!1})}function x(){let e=t();return c({mutationFn:({parentKeyId:e,scope:t})=>o(`/api-keys/${encodeURIComponent(e)}/shared-keys/revoke-scope`,{method:`POST`,body:JSON.stringify({scope:t})}),onSuccess:async(t,{parentKeyId:n})=>{await e.invalidateQueries({queryKey:s.apiKeys.sharedKeys(n)}),await e.invalidateQueries({queryKey:s.apiKeys.all})}})}function S(t,n){return e({queryKey:s.apiKeys.sharedKeyActivity(t??``,n??``),queryFn:e=>o(`/api-keys/${encodeURIComponent(t??``)}/shared-keys/${encodeURIComponent(n??``)}/activity`,{signal:r(e)}),enabled:t!==null&&n!==null,refetchInterval:i.live,refetchIntervalInBackground:!1})}function C(){let e=t();return c({mutationFn:({childKeyId:e})=>o(`/api-keys/${encodeURIComponent(e)}`,{method:`DELETE`}),onSuccess:async(t,{parentKeyId:n,deferInvalidation:r})=>{r||(await e.invalidateQueries({queryKey:s.apiKeys.sharedKeys(n)}),await e.invalidateQueries({queryKey:s.apiKeys.all}))}})}export{d as a,C as c,h as d,S as f,u as h,_ as i,x as l,m,p as n,v as o,b as p,l as r,f as s,y as t,g as u};
|
|
Binary file
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:var(--font-sans);--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:var(--font-mono);--color-red-500:#fb2c36;--color-black:#000;--color-white:#fff;--spacing:2px;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.03em;--tracking-normal:0em;--tracking-wide:.06em;--leading-tight:1.25;--leading-snug:1.3;--leading-normal:1.5;--leading-relaxed:1.625;--leading-loose:1.55;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--blur-xl:24px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--text-badge:11px;--text-caption:12px;--text-body:13px;--text-body-lg:14px;--text-display:21px;--tracking-label:.08em;--banner-line-alpha:40%;--banner-surface-alpha:8%;--radius-micro:var(--radius-micro);--radius-tiny:var(--radius-tiny);--radius-chip:var(--radius-chip);--radius-narrow:var(--radius-narrow);--radius-inset:var(--radius-inset);--radius-control:var(--radius-control);--radius-panel:var(--radius-panel);--radius-card:var(--radius-card);--radius-hero:var(--radius-hero);--radius-sidebar:var(--radius-sidebar);--radius-pill:var(--radius-pill);--radius-full:9999px;--color-story-white:var(--text-primary);--color-story-night:var(--story-night);--color-story-core:var(--story-core);--color-story-blossom:var(--story-blossom);--color-story-voices:var(--story-voices);--color-story-red:var(--story-red);--color-story-denial:var(--story-denial);--color-story-shore:var(--story-shore);--font-head:var(--font-head);--shadow-card:var(--shadow-card);--shadow-popout:var(--shadow-popout);--ease-spring:var(--ease-spring);--z-index-header:40;--z-index-mobile-overlay:45;--z-index-mobile-panel:46;--animate-message-in:message-in .15s ease-out both;--animate-typing-bounce:typing-bounce 1.2s ease-in-out infinite;--animate-stream-caret:stream-caret 1.2s ease-in-out infinite;--animate-pulse-subtle:pulse-subtle 1.6s ease-in-out infinite;--leading-chat:1.35;--grid-template-columns-qris:280px minmax(0, 1fr);--grid-template-columns-qris-compact:140px minmax(0, 1fr);--grid-template-columns-access:minmax(0, 1fr) minmax(0, 1.4fr);--container-qris-badge:220px;--container-bubble-narrow:88%;--container-bubble-form:70vw;--height-route:calc(100dvh - 104px);--grid-template-columns-quota-window:minmax(120px, auto) minmax(0, 1fr) auto;--grid-template-columns-quota-account:repeat(auto-fill, minmax(min(420px, 100%), 1fr))}@supports (color:lab(0% 0 0)){:root,:host{--color-red-500:lab(55.4814% 75.0732 48.8528)}}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:before,:after{box-sizing:border-box;margin:0;padding:0}}@layer components{.app-sidebar nav,.dialog-panel .modal-body,.drawer-body,.scroll-region{scrollbar-width:thin;scrollbar-color:var(--inner-border) transparent}html{scrollbar-width:none}html::-webkit-scrollbar{display:none}.app-sidebar nav::-webkit-scrollbar{width:8px;height:8px}.dialog-panel .modal-body::-webkit-scrollbar{width:8px;height:8px}.drawer-body::-webkit-scrollbar{width:8px;height:8px}.scroll-region::-webkit-scrollbar{width:8px;height:8px}.app-sidebar nav::-webkit-scrollbar-thumb{background:var(--inner-border);border-radius:var(--radius-pill)}.dialog-panel .modal-body::-webkit-scrollbar-thumb{background:var(--inner-border);border-radius:var(--radius-pill)}.drawer-body::-webkit-scrollbar-thumb{background:var(--inner-border);border-radius:var(--radius-pill)}.scroll-region::-webkit-scrollbar-thumb{background:var(--inner-border);border-radius:var(--radius-pill)}.app-sidebar nav::-webkit-scrollbar-track{background:0 0}.dialog-panel .modal-body::-webkit-scrollbar-track{background:0 0}.drawer-body::-webkit-scrollbar-track{background:0 0}.scroll-region::-webkit-scrollbar-track{background:0 0}.scroll-region{overflow-y:auto}html{background:var(--page-bg);color:var(--text-primary);font-size:14px;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;overflow:visible}body{min-height:100dvh;font-family:var(--font-sans);color:var(--text-primary);background-color:var(--page-bg);background-attachment:fixed;margin:0}html[data-ambient-glow=off] body{background-image:none}html[data-glass-depth="2"]{--glass-depth:2}#root{flex-direction:column;min-height:100dvh;display:flex}::selection{background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){::selection{background:color-mix(in srgb, var(--text-primary) 18%, transparent)}}::selection{color:var(--text-primary)}@layer base{button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}button:disabled{cursor:not-allowed;opacity:.55}h1,h2,h3,.topbar-title,.brand-name,.auth-title{font-family:var(--font-head);letter-spacing:-.015em;font-weight:700}pre,code{word-break:break-all}}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.card-glass,html[data-glass-enabled=true] .card-solid{--card-glass-depth:var(--glass-depth,1);background:var(--surface-1)!important}@supports (color:color-mix(in lab, red, red)){.card-glass,html[data-glass-enabled=true] .card-solid{background:color-mix(in srgb, var(--surface-1) calc(40% + var(--blur-cards,30) * 0.55%), transparent)!important}}.card-glass,html[data-glass-enabled=true] .card-solid{border:1px solid var(--inner-border);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(calc((100 - var(--blur-cards,30)) * var(--blur-cards-depth,30) * .01px))!important;backdrop-filter:blur(calc((100 - var(--blur-cards,30)) * var(--blur-cards-depth,30) * .01px))!important}html[data-glass-enabled=true] .card-solid .bg-surface-1,html[data-glass-enabled=true] .card-solid .bg-surface-2,html[data-glass-enabled=true] .card-solid .bg-surface-3,html[data-glass-enabled=true] .card-solid .bg-code-surface,html[data-glass-enabled=true] .card-solid .stat-card,html[data-glass-enabled=true] .card-solid .backup-section-option,html[data-glass-enabled=true] .card-solid .nested-panel{background-color:var(--surface-1)!important}@supports (color:color-mix(in lab, red, red)){html[data-glass-enabled=true] .card-solid .bg-surface-1,html[data-glass-enabled=true] .card-solid .bg-surface-2,html[data-glass-enabled=true] .card-solid .bg-surface-3,html[data-glass-enabled=true] .card-solid .bg-code-surface,html[data-glass-enabled=true] .card-solid .stat-card,html[data-glass-enabled=true] .card-solid .backup-section-option,html[data-glass-enabled=true] .card-solid .nested-panel{background-color:color-mix(in srgb, var(--surface-1) calc(40% + var(--blur-cards,30) * 0.55%), transparent)!important}}.card-solid .card-solid{background:var(--surface-1)!important}@supports (color:color-mix(in lab, red, red)){.card-solid .card-solid{background:color-mix(in srgb, var(--surface-1) calc(40% + var(--blur-cards,30) * 0.55%), transparent)!important}}.card-solid .card-solid{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(calc(10px + (var(--card-glass-depth,1) * 4px)))!important;backdrop-filter:blur(calc(10px + (var(--card-glass-depth,1) * 4px)))!important}.app-sidebar,.app-topbar,.app-topbar-popover{background:var(--surface-1)!important}@supports (color:color-mix(in lab, red, red)){.app-sidebar,.app-topbar,.app-topbar-popover{background:color-mix(in srgb, var(--surface-1) calc(40% + var(--blur-chrome,30) * 0.55%), transparent)!important}}.app-sidebar,.app-topbar,.app-topbar-popover{-webkit-backdrop-filter:blur(calc((100 - var(--blur-chrome,30)) * var(--blur-chrome-depth,30) * .01px))!important;backdrop-filter:blur(calc((100 - var(--blur-chrome,30)) * var(--blur-chrome-depth,30) * .01px))!important}html[data-blur-cards-on=false] .card-solid,html[data-blur-cards-on=false] .card-glass,html[data-blur-chrome-on=false] .app-sidebar,html[data-blur-chrome-on=false] .app-topbar,html[data-blur-chrome-on=false] .app-topbar-popover,html[data-blur-cards-on=false] .user-card-content,html[data-blur-cards-on=false] .composer-glass{background:var(--surface-1)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}html[data-render-mode=pretty] .card-glass,html[data-render-mode=pretty] .card-solid,html[data-render-mode=pretty] .user-card-content,html[data-render-mode=pretty] .composer-glass{background:var(--surface-1)!important}@supports (color:color-mix(in lab, red, red)){html[data-render-mode=pretty] .card-glass,html[data-render-mode=pretty] .card-solid,html[data-render-mode=pretty] .user-card-content,html[data-render-mode=pretty] .composer-glass{background:color-mix(in srgb, var(--surface-1) calc(40% + var(--blur-cards,30) * 0.55%), transparent)!important}}html[data-render-mode=pretty] .card-glass,html[data-render-mode=pretty] .card-solid,html[data-render-mode=pretty] .user-card-content,html[data-render-mode=pretty] .composer-glass{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}html[data-render-mode=pretty] .app-sidebar,html[data-render-mode=pretty] .app-topbar,html[data-render-mode=pretty] .app-topbar-popover{background:var(--surface-1)!important}@supports (color:color-mix(in lab, red, red)){html[data-render-mode=pretty] .app-sidebar,html[data-render-mode=pretty] .app-topbar,html[data-render-mode=pretty] .app-topbar-popover{background:color-mix(in srgb, var(--surface-1) calc(40% + var(--blur-chrome,30) * 0.55%), transparent)!important}}html[data-render-mode=pretty] .app-sidebar,html[data-render-mode=pretty] .app-topbar,html[data-render-mode=pretty] .app-topbar-popover{-webkit-backdrop-filter:blur(calc((100 - var(--blur-chrome,30)) * var(--blur-chrome-depth,30) * .01px))!important;backdrop-filter:blur(calc((100 - var(--blur-chrome,30)) * var(--blur-chrome-depth,30) * .01px))!important}html[data-render-mode=extreme] .card-glass,html[data-render-mode=extreme] .card-solid,html[data-render-mode=extreme] .user-card-content,html[data-render-mode=extreme] .composer-glass{background:var(--surface-1)!important}@supports (color:color-mix(in lab, red, red)){html[data-render-mode=extreme] .card-glass,html[data-render-mode=extreme] .card-solid,html[data-render-mode=extreme] .user-card-content,html[data-render-mode=extreme] .composer-glass{background:color-mix(in srgb, var(--surface-1) calc(40% + var(--blur-cards,30) * 0.55%), transparent)!important}}html[data-render-mode=extreme] .card-glass,html[data-render-mode=extreme] .card-solid,html[data-render-mode=extreme] .user-card-content,html[data-render-mode=extreme] .composer-glass{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}html[data-render-mode=extreme] .app-sidebar,html[data-render-mode=extreme] .app-topbar,html[data-render-mode=extreme] .app-topbar-popover{background:var(--surface-1)!important}@supports (color:color-mix(in lab, red, red)){html[data-render-mode=extreme] .app-sidebar,html[data-render-mode=extreme] .app-topbar,html[data-render-mode=extreme] .app-topbar-popover{background:color-mix(in srgb, var(--surface-1) calc(40% + var(--blur-chrome,30) * 0.55%), transparent)!important}}html[data-render-mode=extreme] .app-sidebar,html[data-render-mode=extreme] .app-topbar,html[data-render-mode=extreme] .app-topbar-popover{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.card-solid[data-depth="1"],.card-glass[data-depth="1"],.card-muted[data-depth="1"]{--card-glass-depth:1}.card-solid[data-depth="2"],.card-glass[data-depth="2"],.card-muted[data-depth="2"]{--card-glass-depth:2}.card-solid[data-depth="3"],.card-glass[data-depth="3"],.card-muted[data-depth="3"]{--card-glass-depth:3}.card-compact{line-height:1.35}.card-compact .card-body-content{padding:10px 14px}.card-compact .card-header-bar{padding:8px 14px}.card-header-bar{border-bottom:1px solid var(--inner-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.card-header-left{align-items:center;gap:10px;min-width:0;display:flex}.card-header-leading{flex-shrink:0;align-items:center;gap:2px;display:flex}.card-header-action{flex-wrap:wrap;flex-shrink:1;justify-content:flex-end;align-items:center;gap:8px;min-width:0;max-width:100%;margin-left:auto;display:flex}.card-header-icon{border-radius:var(--radius-pill);background:var(--accent-soft);width:28px;height:28px;color:var(--accent);flex-shrink:0;place-items:center;display:grid}.card-header-icon svg{width:15px;height:15px}.card-header-icon[data-tone=purple]{background:var(--purple-soft);color:var(--purple)}.card-header-icon[data-tone=orange]{background:var(--orange-soft);color:var(--orange)}.card-header-titles{min-width:0}.card-header-title{color:var(--text-primary);font-size:14px;font-weight:700}.card-header-subtitle{color:var(--text-tertiary);margin-top:1px;font-size:11.5px}.card-header-subtitle-row{flex-flow:column wrap;align-items:flex-start;gap:4px;min-width:0;margin-top:1px;display:flex}.card-header-subtitle-row .card-header-subtitle{margin:0}.card-body-content{padding:12px 14px}.btn-labeled .btn-label{white-space:nowrap}@container rule-row (width<=820px){.btn-labeled{justify-content:center;gap:0;width:30px;padding:0}.btn-labeled .btn-label{display:none}}.model-card{transition:border-color .12s}.model-card:hover{border-color:var(--border-strong)}.model-card-delete:hover{color:var(--red);background:var(--red-soft)}.form-group{flex-direction:column;gap:6px;width:100%;display:flex}.form-label{font-size:var(--text-body);color:var(--text-primary);justify-content:space-between;align-items:center;font-weight:600;display:flex}.form-hint{color:var(--text-tertiary);font-size:11px;font-weight:400}.form-error{color:var(--red);margin-top:4px;font-size:11.5px}.switch-container{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:inline-flex}.switch-container.is-disabled{cursor:not-allowed;opacity:.55}.switch-track{border-radius:var(--radius-control);width:42px;height:24px;transition:background-color .16s var(--ease-spring), border-color .16s var(--ease-spring);background-color:var(--track);border:1px solid var(--inner-border);cursor:inherit;align-items:center;padding:2px;display:flex;position:relative}.switch-track.is-checked{background-color:var(--accent)}.switch-thumb{background-color:var(--surface-1);width:18px;height:18px;transition:transform .18s var(--ease-spring), background-color .18s var(--ease-spring);border-radius:9999px;display:block;transform:translate(0);box-shadow:0 2px 4px #0003}.switch-track.is-checked .switch-thumb{background-color:var(--accent-foreground);transform:translate(18px)}.usage-floor-switch .switch-track,.usage-floor-switch .switch-thumb{border-radius:var(--radius-tiny)}.switch-label{color:var(--text-primary);font-size:13px;font-weight:500}.data-table-container{scrollbar-width:thin;width:100%;max-width:100%;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%;min-width:100%;font-size:12.5px}.data-table th{text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary);border-bottom:1px solid var(--inner-border);white-space:nowrap;padding:7px 10px;font-size:10.5px;font-weight:700}.data-table thead th{z-index:2;background:var(--surface-1);box-shadow:inset 0 -1px 0 var(--inner-border);position:sticky;top:0}.proxy-table-scroll{margin-top:14px;overflow:hidden;container:rule-row/inline-size}.proxy-table-scroll .data-table thead th:first-child{border-top-left-radius:var(--radius-card)}.proxy-table-scroll .data-table thead th:last-child{border-top-right-radius:var(--radius-card)}.proxy-table-scroll .data-table thead th{padding-top:16px;padding-bottom:12px}.proxy-table-scroll .data-table th:last-child,.proxy-table-scroll .data-table td:last-child{padding-left:72px}.data-table td{border-bottom:1px solid var(--inner-border);color:var(--text-secondary);vertical-align:middle;padding:7px 10px}.data-table tr:last-child td{border-bottom:none}.data-table .btn-sm{height:26px;padding:0 6px}main>.state-viewport{min-height:clamp(220px,100dvh - 270px,1000px)}.dashboard-page:only-child{min-height:clamp(240px,100dvh - 200px,1200px)}.card-body-content>.state-viewport{flex:auto;min-height:0}.state-box{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;width:100%;max-width:420px;padding:32px 24px;display:flex}.state-box-icon{border-radius:var(--radius-pill);background:var(--hover);width:44px;height:44px;color:var(--text-tertiary);place-items:center;display:grid}.state-box-icon-danger{background:var(--red)}@supports (color:color-mix(in lab, red, red)){.state-box-icon-danger{background:color-mix(in srgb, var(--red) 12%, transparent)}}.state-box-icon-danger{color:var(--red)}.state-box h3{color:var(--text-primary);font-size:14px;font-weight:700}.state-box p{color:var(--text-secondary);max-width:360px;font-size:12px}.state-box-label{font-weight:500}.auth-viewport{--auth-backdrop-veil:.35;background-image:linear-gradient(var(--page-bg), var(--page-bg)), url(/assets/brand/login_register.jpg);place-items:center;min-height:100dvh;padding:24px;display:grid}@supports (color:color-mix(in lab, red, red)){.auth-viewport{background-image:linear-gradient(color-mix(in srgb, var(--page-bg) calc(var(--auth-backdrop-veil) * 100%), transparent), color-mix(in srgb, var(--page-bg) calc(var(--auth-backdrop-veil) * 100%), transparent)), url(/assets/brand/login_register.jpg)}}.auth-viewport{background-position:50%,50%;background-repeat:no-repeat,no-repeat;background-size:cover,cover;background-attachment:fixed,fixed}.app-shell-root .auth-viewport{background:0 0}[data-theme=dark] .auth-viewport{--auth-backdrop-veil:.5}.auth-window{border-radius:var(--radius-card);background:var(--surface-1);width:min(100%,420px);padding:36px 32px}@supports (color:color-mix(in lab, red, red)){.auth-window{background:color-mix(in srgb, var(--surface-1) 78%, transparent)}}.auth-window{-webkit-backdrop-filter:blur(16px)saturate(120%);backdrop-filter:blur(16px)saturate(120%);box-shadow:0 18px 40px -20px #00000080}.auth-header{text-align:center;margin-bottom:24px}.auth-logo{border-radius:var(--radius-control);background:var(--accent) center / cover no-repeat url(/assets/brand/favicon.jpg);width:48px;height:48px;color:var(--accent-foreground);place-items:center;margin:0 auto 14px;font-size:22px;font-weight:800;display:grid}.auth-title{letter-spacing:-.02em;color:var(--text-primary);font-size:20px;font-weight:700}.auth-desc{color:var(--text-secondary);margin-top:4px;font-size:12.5px}.github-badge{border:1px solid var(--inner-border);background:var(--surface-2);min-height:34px;color:var(--text-secondary);border-radius:6px;align-items:center;gap:8px;padding:0 10px;text-decoration:none;transition:border-color .16s,color .16s;display:inline-flex}.github-badge:hover{border-color:var(--border-strong);color:var(--text-primary)}.github-badge:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.github-badge-metric{width:auto;height:20px;display:block}.github-split{align-items:stretch;display:inline-flex;position:relative}.github-split .github-badge{border-top-right-radius:0;border-bottom-right-radius:0}.github-split-toggle{border:1px solid var(--inner-border);background:var(--surface-2);width:34px;color:var(--text-secondary);cursor:pointer;border-left:0;border-top-right-radius:6px;border-bottom-right-radius:6px;justify-content:center;align-items:center;padding:0;transition:border-color .16s,color .16s,background-color .16s;display:inline-flex}.github-split-toggle:hover{border-color:var(--border-strong);color:var(--text-primary)}.github-split-toggle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.github-split-toggle[aria-expanded=true]{border-color:var(--border-strong);color:var(--text-primary)}.github-split-menu{z-index:40;border:1px solid var(--border-strong);background:var(--surface-1);border-radius:8px;flex-direction:column;min-width:230px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #00000052}.github-split-item{color:var(--text-secondary);border-radius:5px;align-items:center;gap:9px;padding:7px 9px;text-decoration:none;display:flex}.github-split-item:hover,.github-split-item:focus-visible{background:var(--surface-2);color:var(--text-primary)}.github-split-item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.github-split-item-text{flex-direction:column;gap:1px;min-width:0;display:flex}.github-split-item-label{font-size:12px;font-weight:600;line-height:1.25}.github-split-item-hint{color:var(--text-tertiary);font-size:11px;line-height:1.25}input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex:none}.toast-surface{background:var(--glass-bg-2)!important;border-color:var(--glass-border-2)!important;color:var(--text-primary)!important}.toast-surface [data-content],.toast-surface [data-description]{color:var(--text-primary)!important}.app-shell-frame{flex:1 0 auto;width:100%;display:block;container:app-shell/inline-size}.app-shell-root{z-index:10;width:100%;min-height:100vh;box-sizing:border-box;grid-template-columns:minmax(252px,min(280px,18%)) minmax(0,1fr);gap:16px;min-height:100dvh;margin:0 auto;padding:16px;display:grid;position:relative}.app-shell-root[data-page-scroll=contained]{grid-template-rows:minmax(0,1fr);height:100dvh;min-height:100dvh}@container app-shell (width<=860px){.app-shell-root{grid-template-columns:minmax(0,1fr);gap:12px;padding:12px}.app-shell-root[data-drawer=open] .app-main-column{z-index:1;position:relative}.app-shell-root[data-drawer=open] .app-main-column:before{content:"";z-index:50;border-radius:var(--radius-card);pointer-events:auto;background:#0000009e;position:absolute;inset:0}}.app-sidebar{border-radius:var(--radius-sidebar);z-index:30;box-sizing:border-box;flex-direction:column;align-self:start;gap:4px;width:100%;min-width:0;height:calc(100dvh - 32px);padding:18px 14px;display:flex;position:sticky;top:16px;overflow-y:auto}@container app-shell (width<=860px){.app-sidebar{z-index:80;width:min(280px,100vw - 24px);max-width:280px;height:calc(100dvh - 24px);transition:transform .28s var(--ease-spring);box-shadow:var(--shadow-popout);position:fixed;top:12px;bottom:12px;left:12px;transform:translate(calc(-100% - 24px))}.app-sidebar.is-open{transform:translate(0)}}.app-bg{z-index:-1;pointer-events:none;background:var(--page-bg);position:fixed;inset:0}.custom-background{contain:none;z-index:0;pointer-events:none;opacity:var(--bg-opacity,.4);position:fixed;inset:0;overflow:hidden}.custom-background-media{top:calc(50% + var(--bg-y,0%));left:calc(50% + var(--bg-x,0%));object-fit:cover;width:100%;height:100%;transform:translate(-50%, -50%) scale(var(--bg-scale,1));filter:blur(var(--bg-blur,0px));position:absolute}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.brand-header{border-bottom:1px solid var(--inner-border);align-items:center;gap:10px;padding:4px 8px 16px;display:flex}.brand-icon{border-radius:var(--radius-control);background:var(--accent);width:36px;height:36px;color:var(--accent-foreground);place-items:center;font-size:16px;font-weight:800;display:grid}.brand-meta{flex:1;min-width:0}.brand-name{letter-spacing:-.02em;color:var(--text-primary);align-items:center;gap:6px;font-size:15px;font-weight:700;display:flex}.brand-version-badge{color:var(--text-tertiary);align-items:center;gap:3px;margin-top:1px;font-size:10px;font-weight:600;display:inline-flex}.brand-version-link{color:inherit;text-decoration:none}.brand-version-link:hover{color:var(--text-primary)}.brand-update-badge{letter-spacing:.02em;color:var(--status-danger);background:color-mix(in srgb, var(--status-danger) 14%, transparent);transition:background var(--dur-micro) var(--ease-spring), color var(--dur-micro) var(--ease-spring);border-radius:6px;align-items:center;gap:3px;padding:1px 6px;font-size:9.5px;font-weight:700;text-decoration:none;display:inline-flex}.brand-update-badge:hover{color:var(--accent-foreground);background:var(--status-danger)}.nav-group-section{margin-top:9px}.nav-group-section:first-child{margin-top:0}.nav-group-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);padding:3px 10px 4px;font-size:10px;font-weight:700}.nav-items-container{flex-direction:column;gap:1px;display:flex;position:relative}.sidebar-active-indicator{border-radius:var(--radius-control);border:1px solid var(--inner-border);background:var(--active-pill);transition:transform var(--dur-macro) var(--ease-spring), height var(--dur-macro) var(--ease-spring), opacity var(--dur-macro) var(--ease-spring);pointer-events:none;position:absolute;left:0;right:0;box-shadow:0 2px 8px #0000000a}.nav-link-item{border-radius:var(--radius-control);color:var(--text-secondary);transition:color var(--dur-micro) var(--ease-spring), transform var(--dur-micro) var(--ease-spring);align-items:center;gap:8px;padding:5.4px 10px;font-size:12.75px;font-weight:500;text-decoration:none;display:flex;position:relative}.nav-link-item:hover{color:var(--text-primary)}.nav-link-item.active{color:var(--text-primary);font-weight:600}.nav-link-item:active{transform:scale(.98)}.nav-link-icon{flex-shrink:0;place-items:center;width:18px;height:18px;display:grid}.nav-link-icon svg{width:16px;height:16px}.nav-link-badge{background:var(--accent-soft);color:var(--accent);border-radius:6px;margin-left:auto;padding:2px 7px;font-size:10px;font-weight:700}.sidebar-user-card{border-top:1px solid var(--inner-border);margin-top:auto;padding-top:14px}.user-card-content{border-radius:var(--radius-card);border:1px solid var(--inner-border);background:color-mix(in srgb, var(--surface-1) calc(40% + var(--blur-cards,30) * 0.55%), transparent);align-items:center;gap:10px;padding:8px 10px;display:flex;-webkit-backdrop-filter:blur(calc((100 - var(--blur-cards,30)) * var(--blur-cards-depth,30) * .01px))!important;backdrop-filter:blur(calc((100 - var(--blur-cards,30)) * var(--blur-cards-depth,30) * .01px))!important}.user-avatar{border-radius:var(--radius-full);color:#fff;background:linear-gradient(135deg,#ff9f0a,#ff375f);flex-shrink:0;place-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:grid}.user-info{flex:1;min-width:0}.user-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.user-role{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.app-main-column{box-sizing:border-box;z-index:1;flex-direction:column;gap:16px;min-width:0;max-width:100%;height:100%;display:flex;position:relative}main.route-enter{flex-direction:column;flex:auto;min-width:0;min-height:calc(100dvh - 104px);display:flex}.app-shell-root[data-page-scroll=contained] .app-main-column{min-height:0}.app-shell-root[data-page-scroll=contained] main.route-enter{min-height:0;overflow:hidden}main.route-enter>:only-child,main.route-enter>:only-child>.card-solid:last-child{flex:auto}main.route-enter .card-body-content{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}main.route-enter .card-body-content>.data-table-container{box-sizing:border-box;min-width:100%;max-width:100%}main.route-enter .state-viewport{flex:auto;min-height:clamp(220px,100dvh - 270px,1000px)}main.route-enter .state-viewport-compact{min-height:0}.dashboard-page{flex-direction:column;gap:16px;width:100%;min-width:0;max-width:100%;display:flex}.app-topbar{z-index:40;border-radius:var(--radius-card);border:1px solid var(--inner-border);box-shadow:var(--shadow-card);align-items:center;gap:12px;padding:8px 14px;display:flex;position:sticky;top:16px}.app-topbar-popover{width:min(340px,100vw - 40px);max-height:calc(100vh - 108px);flex-direction:column;max-height:calc(100dvh - 108px);display:flex;position:fixed;top:84px;right:24px;overflow:hidden}@media (max-width:640px){.app-topbar-popover{width:min(340px,100vw - 32px);right:16px}}.topbar-menu-btn{border-radius:var(--radius-control);border:1px solid var(--inner-border);background:var(--hover);width:38px;height:38px;color:var(--text-primary);flex-shrink:0;place-items:center;display:none}@container app-shell (width<=860px){.topbar-menu-btn{display:grid}.topbar-title-icon{display:none}}.topbar-meta{flex:auto;min-width:0}.topbar-title{letter-spacing:-.02em;color:var(--text-primary);align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.topbar-title-icon{color:var(--text-tertiary);flex-shrink:0}.topbar-subtitle{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.topbar-actions{align-items:center;gap:8px;display:flex}.topbar-button{border-radius:var(--radius-control);border:1px solid var(--inner-border);background:var(--hover);height:38px;color:var(--text-secondary);transition:all var(--dur-micro) var(--ease-spring);align-items:center;gap:8px;padding:0 12px;font-size:12.5px;font-weight:500;display:inline-flex}.topbar-button:hover{background:var(--active-pill);color:var(--text-primary);border-color:var(--border-strong)}.topbar-icon-button{border-radius:var(--radius-control);border:1px solid var(--inner-border);background:var(--hover);width:38px;height:38px;color:var(--text-secondary);transition:all var(--dur-micro) var(--ease-spring);place-items:center;padding:0;display:grid}.topbar-icon-button:hover{background:var(--active-pill);color:var(--text-primary)}.topbar-donate-button{white-space:nowrap;border-radius:var(--radius-control);border:1px solid var(--inner-border);background:var(--hover);height:38px;color:var(--text-secondary);flex-direction:row;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.topbar-donate-button:hover{background:var(--active-pill);color:var(--text-primary)}.topbar-icon-button:active{transform:scale(.92)}@media (max-width:640px){.topbar-button span,.topbar-button kbd{display:none}.topbar-button{place-items:center;width:38px;height:38px;padding:0;display:grid}.topbar-title{font-size:14.5px}.topbar-subtitle{display:none}.section-header{flex-direction:column;align-items:flex-start;gap:8px}.section-header-action,.section-header-action button{width:100%}}.status-indicator-dot{border-radius:var(--radius-full);flex-shrink:0;width:7px;height:7px}.status-indicator-dot.online{background:var(--green)}.status-indicator-dot.offline{background:var(--red)}.status-indicator-dot.pulse{animation:1.8s infinite pulse-subtle}html[data-app=share],html[data-app=share] body{height:auto;min-height:100%;overflow:hidden auto}html[data-app=share] #root{height:auto;min-height:100vh;min-height:100dvh;overflow:visible}html[data-app=share] body{--share-backdrop-veil:.8;background:0 0}html[data-app=share] .share-backdrop{z-index:0;background-image:linear-gradient(color-mix(in srgb, var(--page-bg) calc(var(--share-backdrop-veil) * 100%), transparent), color-mix(in srgb, var(--page-bg) calc(var(--share-backdrop-veil) * 100%), transparent)), url(/assets/brand/bansos_page.png);pointer-events:none;background-position:50%,50% 28%;background-repeat:no-repeat,no-repeat;background-size:cover,cover;position:fixed;inset:0}html[data-app=share] .share-header{z-index:var(--z-index-header);background-color:var(--page-bg);justify-content:center;padding:0 24px;transition:padding .26s,background-color .26s;display:flex;position:fixed;inset:0 0 auto}html[data-app=share] .share-header[data-scrolled=true]{background-color:#0000;padding:8px 16px}html[data-app=share] .share-header-inner{justify-content:space-between;align-items:center;gap:16px;width:min(100%,960px);min-height:66px;margin-inline:auto;transition:width .26s,min-height .26s,border-radius .26s,background-color .26s,box-shadow .26s;display:flex}html[data-app=share] .share-header-inner[data-scrolled=true]{border:1px solid var(--glass-border-2);border-radius:var(--radius-pill);background-color:var(--glass-bg);-webkit-backdrop-filter:blur(12px)saturate(1.5);backdrop-filter:blur(12px)saturate(1.5);width:min(720px,100vw - 32px);min-height:56px;padding-inline:12px;box-shadow:0 12px 32px -12px #0009}html[data-app=share][data-theme=dark] body{--share-backdrop-veil:.6}html[data-app=landing]{height:auto;min-height:100%;background:var(--page-bg);min-height:100dvh;color:var(--text-primary);font-size:16px;overflow:hidden auto}html[data-app=landing] body{height:auto;min-height:100%;background:var(--page-bg);min-height:100dvh;color:var(--text-primary);background-image:none;overflow:visible}html[data-app=landing] #root{height:auto;min-height:100%;min-height:100dvh;display:block;overflow:visible}html[data-app=landing] .landing-signal-grid{border-top:1px solid color-mix(in srgb, var(--color-story-white) 18%, transparent);grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;max-width:650px;margin-top:32px;padding-top:16px;display:grid}html[data-app=landing] .landing-signal-tile{border:1px solid color-mix(in srgb, var(--color-story-white) 16%, transparent);border-radius:var(--radius-control);background:color-mix(in srgb, var(--color-story-white) 3%, transparent);align-items:center;gap:10px;min-width:0;padding:10px 12px;display:flex}html[data-app=landing] .landing-signal-icon{border:1px solid color-mix(in srgb, var(--story-accent) 35%, transparent);border-radius:var(--radius-chip);background:color-mix(in srgb, var(--story-accent) 8%, transparent);width:28px;height:28px;color:var(--story-accent);flex:none;place-items:center;display:grid}html[data-app=landing] .landing-signal-copy{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}html[data-app=landing] .landing-signal-label{color:color-mix(in srgb, var(--color-story-white) 60%, transparent);font-family:var(--font-mono);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:9px;font-weight:500;line-height:1.2;overflow:hidden}html[data-app=landing] .landing-signal-value{color:var(--color-story-white);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:700;line-height:1}html[data-app=landing] .landing-header{z-index:var(--z-index-header);background-color:var(--story-deep);justify-content:center;padding:0 24px;transition:padding .26s,background-color .26s;display:flex;position:fixed;inset:0 0 auto}html[data-app=landing] .landing-header[data-scrolled=true]{background-color:#0000;padding:8px 16px}html[data-app=landing] .landing-header-inner{box-sizing:border-box;justify-content:space-between;align-items:center;gap:16px;width:min(100%,1280px);height:72px;margin-inline:auto;transition:width .26s,height .26s,border-radius .26s,border-color .26s,background-color .26s,box-shadow .26s;display:flex;position:relative}html[data-app=landing] .landing-header-inner[data-scrolled=true]{border:1px solid color-mix(in srgb, var(--story-accent) 20%, transparent);border-radius:var(--radius-pill);background-color:var(--story-deep);width:min(720px,100vw - 32px);height:56px;box-shadow:0 12px 32px -12px #000000c2, 0 0 0 1px color-mix(in srgb, var(--story-accent) 10%, transparent);padding-inline:12px}html[data-app=landing] .landing-header-brand{color:var(--color-story-white);flex-shrink:0;align-items:center;gap:10px;text-decoration:none;display:inline-flex}html[data-app=landing] .landing-header-desktop-nav{align-items:center;gap:4px;display:none}html[data-app=landing] .landing-header-desktop-nav a,html[data-app=landing] .landing-header-desktop-nav button{border-radius:var(--radius-inset);height:36px;color:color-mix(in srgb, var(--color-story-white) 68%, transparent);font-size:var(--text-badge);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding-inline:14px;font-family:inherit;font-weight:600;text-decoration:none;transition:color .16s,background-color .16s;display:inline-flex}html[data-app=landing] .landing-header-desktop-nav a:hover,html[data-app=landing] .landing-header-desktop-nav button:hover{background-color:color-mix(in srgb, var(--color-story-white) 10%, transparent);color:var(--color-story-white)}html[data-app=landing] .landing-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}html[data-app=landing] .landing-header-github,html[data-app=landing] .landing-header-control,html[data-app=landing] .landing-header-menu-toggle{box-sizing:border-box;border:1px solid color-mix(in srgb, var(--color-story-white) 25%, transparent);border-radius:var(--radius-control);background-color:color-mix(in srgb, var(--color-story-white) 8%, transparent);min-height:38px;color:var(--color-story-white);font-size:var(--text-badge);flex-shrink:0;justify-content:center;align-items:center;gap:8px;padding-inline:12px;font-family:inherit;font-weight:700;text-decoration:none;transition:border-color .16s,background-color .16s,color .16s;display:inline-flex}html[data-app=landing] .landing-header-github{min-height:38px;color:var(--color-story-white);background:0 0;border:0;padding-inline:0}html[data-app=landing] .landing-header-github .github-badge{border-color:color-mix(in srgb, var(--color-story-white) 25%, transparent);background-color:color-mix(in srgb, var(--color-story-white) 8%, transparent);min-height:38px;color:var(--color-story-white)}html[data-app=landing] .landing-header-github .github-badge:hover{border-color:var(--color-story-white);background-color:var(--color-story-white);color:var(--story-deep)}html[data-app=landing] .landing-header-github .github-split-toggle{border-color:color-mix(in srgb, var(--color-story-white) 25%, transparent);background-color:color-mix(in srgb, var(--color-story-white) 8%, transparent);color:var(--color-story-white)}html[data-app=landing] .landing-header-github .github-split-toggle:hover,html[data-app=landing] .landing-header-github .github-split-toggle[aria-expanded=true],html[data-app=landing] .landing-header-control:hover{border-color:var(--color-story-white);background-color:var(--color-story-white);color:var(--story-deep)}html[data-app=landing] .landing-header-control{white-space:nowrap;cursor:pointer}html[data-app=landing] .landing-header-show-all{display:none}html[data-app=landing] .landing-header-show-all.is-active{border-color:var(--color-story-white);background-color:var(--color-story-white);color:var(--story-deep)}html[data-app=landing] .landing-header-menu-toggle{cursor:pointer;width:38px;height:38px;padding:0;display:none}html[data-app=landing] .landing-header-menu-toggle:focus-visible,html[data-app=landing] .landing-header-desktop-nav a:focus-visible,html[data-app=landing] .landing-header-desktop-nav button:focus-visible,html[data-app=landing] .landing-header-control:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}html[data-app=landing] .landing-header-menu-overlay,html[data-app=landing] .landing-header-mobile-nav{display:none}html[data-app=landing] .landing-header-menu-overlay{z-index:var(--z-index-mobile-overlay);opacity:0;pointer-events:none;background-color:#0000009e;transition:opacity .15s;position:fixed;inset:0}html[data-app=landing] .landing-header-menu-overlay[data-open=true]{opacity:1;pointer-events:auto}html[data-app=landing] .landing-header-mobile-nav{z-index:var(--z-index-mobile-panel);box-sizing:border-box;border:1px solid color-mix(in srgb, var(--story-accent) 22%, transparent);border-radius:var(--radius-panel);background-color:var(--story-deep);opacity:0;pointer-events:none;grid-template-columns:minmax(0,1fr);gap:4px;width:min(560px,100vw - 32px);max-height:calc(100dvh - 88px);padding:10px;transition:opacity .15s,transform .15s;position:fixed;top:72px;left:50%;overflow-y:auto;transform:translate(-50%,-8px);box-shadow:0 18px 42px -16px #000000c7}html[data-app=landing] .landing-header-mobile-nav[data-open=true]{opacity:1;pointer-events:auto;transform:translate(-50%)}html[data-app=landing] .landing-header-mobile-nav>div{min-height:36px}html[data-app=landing] .landing-header-mobile-nav>button{border-radius:var(--radius-inset);min-height:44px;transition:background-color .15s,color .15s}html[data-app=landing] .landing-header-mobile-nav>button:hover,html[data-app=landing] .landing-header-mobile-nav>button:focus-visible{background-color:color-mix(in srgb, var(--color-story-white) 9%, transparent);color:var(--color-story-white)}html[data-app=landing] .landing-header-mobile-nav>button:focus-visible,html[data-app=landing] .landing-header-mobile-nav>a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}html[data-app=landing] .landing-header-mobile-nav>a{border-radius:var(--radius-control);min-height:44px;margin-top:4px}html[data-app=landing] .landing-story-shell{width:min(calc(100% - 2 * var(--landing-story-gutter)), var(--landing-story-max-width));grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start;column-gap:clamp(2rem,5vw,5rem);display:grid}html[data-app=landing] .landing-story-visual{height:var(--landing-story-figure-height)}@media (min-width:641px){html[data-app=landing] .landing-header-show-all{display:inline-flex}}@media (min-width:1025px){html[data-app=landing] .landing-header-desktop-nav{display:flex}html[data-app=landing] .landing-header-inner[data-scrolled=true]{width:min(900px,100vw - 32px)}}@media (max-width:1024px){html[data-app=landing] .landing-header-console{display:inline-flex}html[data-app=landing] .landing-header-show-all{display:none}}@media (max-width:640px){html[data-app=landing] .landing-header{padding-inline:16px}html[data-app=landing] .landing-header-inner{gap:8px}html[data-app=landing] .landing-header-inner[data-scrolled=true]{padding-inline:10px}html[data-app=landing] .landing-header-show-all,html[data-app=landing] .landing-header-github .github-badge-metric{display:none}html[data-app=landing] .landing-header-github{width:auto;padding-inline:0}html[data-app=landing] .landing-header-github .github-badge{padding-inline:10px}}@media (max-width:380px){html[data-app=landing] .landing-header-brand small{display:none}}@media (max-width:820px){html[data-app=landing] .landing-story-shell{width:calc(100% - 2 * var(--landing-story-tablet-gutter));align-items:stretch;gap:var(--landing-story-stack-gap);flex-direction:column;display:flex}html[data-app=landing] .landing-story-visual{height:var(--landing-story-tablet-figure-height);max-width:var(--landing-story-figure-max-width);margin-inline:auto}}@media (max-width:700px){html[data-app=landing] .landing-signal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:18px;padding-top:10px}html[data-app=landing] .landing-signal-tile{gap:8px;padding:9px}html[data-app=landing] .landing-signal-label{font-size:10px}html[data-app=landing] main>article{align-items:flex-start;min-height:0;padding-block:80px 16px}html[data-app=landing] .landing-story-shell{width:calc(100% - 2 * var(--landing-story-mobile-gutter));gap:10px}html[data-app=landing] .landing-story-visual{aspect-ratio:2.35;height:auto}html[data-app=landing] .landing-story-shell>div>h1{letter-spacing:-.035em;max-width:15ch;margin-top:10px;font-size:clamp(29px,8vw,36px);line-height:.98}html[data-app=landing] .landing-story-description{max-width:none;margin-top:12px;font-size:clamp(15px,4vw,16px);line-height:1.5}}@media (max-width:700px) and (max-height:760px){html[data-app=landing] main>article{padding-block:80px 16px}html[data-app=landing] .landing-story-shell{gap:10px}html[data-app=landing] .landing-story-visual{aspect-ratio:2.4}html[data-app=landing] .landing-story-description{margin-top:12px}html[data-app=landing] .landing-signal-grid{gap:6px;margin-top:14px;padding-top:8px}html[data-app=landing] .landing-signal-tile{gap:6px;padding:7px}html[data-app=landing] .landing-signal-icon{width:24px;height:24px}html[data-app=landing] .landing-story-shell>div>div:last-child{margin-top:8px}}::view-transition-group(story-backdrop){animation-duration:.62s;animation-timing-function:cubic-bezier(.22,.61,.36,1)}::view-transition-group(story-copy){animation-duration:.62s;animation-timing-function:cubic-bezier(.22,.61,.36,1)}::view-transition-old(story-backdrop){animation-duration:.62s}::view-transition-new(story-backdrop){animation-duration:.62s}::view-transition-old(story-copy){animation-duration:.42s}::view-transition-new(story-copy){animation-duration:.42s}@keyframes story-reveal-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes motion-route-in{0%{top:6px}to{top:0}}@keyframes popout-in{0%{opacity:0;transform:translateY(-8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes dialog-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-overlay-out{0%{opacity:1}to{opacity:0}}@keyframes dialog-panel-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:none}}@keyframes dialog-panel-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(8px)scale(.97)}}@keyframes drawer-panel-in{0%{transform:translate(105%)}to{transform:translate(0)}}@keyframes drawer-panel-out{0%{transform:translate(0)}to{transform:translate(105%)}}@keyframes pulse-subtle{0%,to{opacity:1}50%{opacity:.45}}@keyframes message-in{0%{opacity:0}to{opacity:1}}@keyframes stream-caret{0%,to{opacity:.4;transform:translateY(0)}50%{opacity:1;transform:translateY(-1px)}}@keyframes typing-bounce{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.thinking-clamp{max-height:7.5em}.media-preview-frame{max-height:calc(100dvh - 16rem)}.svg-preview-frame{max-height:50vh}@keyframes reset-credit-sheen{0%{background-position:-160% 0}to{background-position:260% 0}}@keyframes reset-credit-glow{0%,to{filter:drop-shadow(0 0 #0000)}50%{filter:drop-shadow(0 0 4px color-mix(in srgb, var(--status-success) 55%, transparent))}}.reset-credit-live{background:linear-gradient(100deg, var(--text-tertiary) 32%, var(--status-success) 50%, var(--text-tertiary) 68%);color:#0000;background-size:220% 100%;-webkit-background-clip:text;background-clip:text;animation:2.4s linear infinite reset-credit-sheen,2.4s ease-in-out infinite reset-credit-glow;display:inline-block}@media (prefers-reduced-motion:reduce){.reset-credit-live{color:var(--status-success);-webkit-text-fill-color:currentColor;background:0 0;animation:none}}.route-enter{animation:motion-route-in var(--dur-macro) var(--ease-spring) both;position:relative}.popout-enter{animation:popout-in var(--dur-micro) var(--ease-spring) both;transform-origin:100% 0}.dialog-overlay{animation:dialog-overlay-in var(--dur-macro) var(--ease-spring) both}.dialog-overlay.closing{animation:dialog-overlay-out var(--dur-micro) var(--ease-spring) both}.dialog-panel{width:min(var(--dialog-width,520px), calc(100vw - 32px));max-height:calc(100dvh - 48px);animation:dialog-panel-in var(--dur-macro) var(--ease-spring) both}.dialog-panel.expanded{width:min(1160px,100vw - 32px)}.dialog-panel.closing{animation:dialog-panel-out var(--dur-micro) var(--ease-spring) both}@media (max-width:640px){.dialog-overlay{padding-bottom:calc(12px + env(safe-area-inset-bottom))}.dialog-panel{max-height:calc(100dvh - 24px)}.dialog-panel.expanded{width:min(1160px,100vw - 24px)}}.drawer-overlay{animation:dialog-overlay-in .18s var(--ease-spring) both}.drawer-overlay.closing,.drawer-overlay[data-state=closing]{animation:dialog-overlay-out var(--dur-micro) var(--ease-spring) both}.drawer-panel{animation:drawer-panel-in .22s var(--ease-spring) both}.drawer-panel.closing,.drawer-panel[data-state=closing]{animation:drawer-panel-out .22s var(--ease-spring) both}.composer-glass{background:color-mix(in srgb, var(--surface-1) calc(40% + var(--blur-cards,30) * 0.55%), transparent);-webkit-backdrop-filter:blur(calc((100 - var(--blur-cards,30)) * var(--blur-cards-depth,30) * .01px))!important;backdrop-filter:blur(calc((100 - var(--blur-cards,30)) * var(--blur-cards-depth,30) * .01px))!important}@media (max-width:640px){.studio-model-picker{max-width:calc(100vw - 210px)}}.blur-slider{appearance:none;background:linear-gradient(to right, var(--text-primary) var(--fill,0%), var(--surface-active) var(--fill,0%))}.blur-slider::-webkit-slider-thumb{appearance:none;border:3px solid var(--surface-1);border-radius:var(--radius-full);width:22px;height:22px;box-shadow:0 0 0 1px var(--inner-border);background:#fff}.blur-slider::-moz-range-thumb{border:3px solid var(--surface-1);border-radius:var(--radius-full);width:16px;height:16px;box-shadow:0 0 0 1px var(--inner-border);background:#fff}.code-chip-value{font:inherit}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,120px),1fr))}.provider-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}.routing-controls-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}.quota-account-grid{grid-template-columns:var(--grid-template-columns-quota-account);display:grid}}@layer utilities{.\@container,.\[container-type\:inline-size\]{container-type:inline-size}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.inset-x-4{inset-inline:calc(var(--spacing) * 4)}.inset-y-4{inset-block:calc(var(--spacing) * 4)}.-top-3{top:calc(var(--spacing) * -3)}.-top-4\.5{top:calc(var(--spacing) * -4.5)}.top-0{top:0}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-9{top:calc(var(--spacing) * 9)}.top-full{top:100%}.-right-3{right:calc(var(--spacing) * -3)}.-right-11{right:calc(var(--spacing) * -11)}.right-0{right:0}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-5{right:calc(var(--spacing) * 5)}.right-auto{right:auto}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-0{left:0}.left-3{left:calc(var(--spacing) * 3)}.left-5{left:calc(var(--spacing) * 5)}.left-auto{left:auto}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-30{z-index:30}.z-50{z-index:50}.z-card{z-index:2}.z-chip{z-index:4}.z-drawer{z-index:1000}.z-floating{z-index:30}.z-modal{z-index:1100}.z-popover{z-index:50}.z-toast{z-index:9999}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.row-start-1{grid-row-start:1}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:700px){.container{max-width:700px}}@media (min-width:820px){.container{max-width:820px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1180px){.container{max-width:1180px}}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.m-auto{margin:auto}.mx-0{margin-inline:0}.mx-auto{margin-inline:auto}.-my-1{margin-block:calc(var(--spacing) * -1)}.my-4{margin-block:calc(var(--spacing) * 4)}.-mt-3{margin-top:calc(var(--spacing) * -3)}.mt-0{margin-top:0}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-1\.75{margin-top:calc(var(--spacing) * 1.75)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-3\.5{margin-top:calc(var(--spacing) * 3.5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-auto{margin-top:auto}.mt-px{margin-top:1px}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-auto{margin-right:auto}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-7{margin-bottom:calc(var(--spacing) * 7)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.mb-10\.5{margin-bottom:calc(var(--spacing) * 10.5)}.-ml-0\.5{margin-left:calc(var(--spacing) * -.5)}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2\.5{margin-left:calc(var(--spacing) * 2.5)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-8{margin-left:calc(var(--spacing) * 8)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.list-item{display:list-item}.table{display:table}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-13{width:calc(var(--spacing) * 13);height:calc(var(--spacing) * 13)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-17{width:calc(var(--spacing) * 17);height:calc(var(--spacing) * 17)}.size-full{width:100%;height:100%}.h-1{height:var(--spacing)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-13{height:calc(var(--spacing) * 13)}.h-14{height:calc(var(--spacing) * 14)}.h-15{height:calc(var(--spacing) * 15)}.h-16{height:calc(var(--spacing) * 16)}.h-18{height:calc(var(--spacing) * 18)}.h-19{height:calc(var(--spacing) * 19)}.h-20{height:calc(var(--spacing) * 20)}.h-22{height:calc(var(--spacing) * 22)}.h-36{height:calc(var(--spacing) * 36)}.h-48{height:calc(var(--spacing) * 48)}.h-60{height:calc(var(--spacing) * 60)}.h-66{height:calc(var(--spacing) * 66)}.h-75{height:calc(var(--spacing) * 75)}.h-80{height:calc(var(--spacing) * 80)}.h-95{height:calc(var(--spacing) * 95)}.h-113\.5{height:calc(var(--spacing) * 113.5)}.h-\[min\(62svh\,540px\)\]{height:min(62svh,540px)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-route{height:var(--height-route)}.max-h-28{max-height:calc(var(--spacing) * 28)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-75{max-height:calc(var(--spacing) * 75)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-110{max-height:calc(var(--spacing) * 110)}.max-h-112{max-height:calc(var(--spacing) * 112)}.max-h-128{max-height:calc(var(--spacing) * 128)}.max-h-140{max-height:calc(var(--spacing) * 140)}.max-h-150{max-height:calc(var(--spacing) * 150)}.max-h-160{max-height:calc(var(--spacing) * 160)}.max-h-168{max-height:calc(var(--spacing) * 168)}.max-h-170{max-height:calc(var(--spacing) * 170)}.max-h-180{max-height:calc(var(--spacing) * 180)}.max-h-190{max-height:calc(var(--spacing) * 190)}.max-h-210{max-height:calc(var(--spacing) * 210)}.max-h-230{max-height:calc(var(--spacing) * 230)}.max-h-280{max-height:calc(var(--spacing) * 280)}.max-h-\[46vh\]{max-height:46vh}.max-h-\[var\(--radix-select-content-available-height\)\]{max-height:var(--radix-select-content-available-height)}.max-h-none{max-height:none}.max-h-route{max-height:var(--height-route)}.min-h-0{min-height:0}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-10\.5{min-height:calc(var(--spacing) * 10.5)}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-13{min-height:calc(var(--spacing) * 13)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-17{min-height:calc(var(--spacing) * 17)}.min-h-18{min-height:calc(var(--spacing) * 18)}.min-h-21{min-height:calc(var(--spacing) * 21)}.min-h-22{min-height:calc(var(--spacing) * 22)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-32{min-height:calc(var(--spacing) * 32)}.min-h-38{min-height:calc(var(--spacing) * 38)}.min-h-40{min-height:calc(var(--spacing) * 40)}.min-h-65{min-height:calc(var(--spacing) * 65)}.min-h-110{min-height:calc(var(--spacing) * 110)}.min-h-160{min-height:calc(var(--spacing) * 160)}.min-h-dvh{min-height:100dvh}.min-h-screen{min-height:100vh}.w-1{width:var(--spacing)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-6{width:calc(var(--spacing) * 6)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-13{width:calc(var(--spacing) * 13)}.w-15{width:calc(var(--spacing) * 15)}.w-16{width:calc(var(--spacing) * 16)}.w-18{width:calc(var(--spacing) * 18)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-26{width:calc(var(--spacing) * 26)}.w-29{width:calc(var(--spacing) * 29)}.w-36{width:calc(var(--spacing) * 36)}.w-38{width:calc(var(--spacing) * 38)}.w-39{width:calc(var(--spacing) * 39)}.w-40{width:calc(var(--spacing) * 40)}.w-67\.5{width:calc(var(--spacing) * 67.5)}.w-100{width:calc(var(--spacing) * 100)}.w-128{width:calc(var(--spacing) * 128)}.w-140{width:calc(var(--spacing) * 140)}.w-224{width:calc(var(--spacing) * 224)}.w-\[66\%\]{width:66%}.w-\[calc\(100\%-4px\)\]{width:calc(100% - 4px)}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.max-w-70{max-width:calc(var(--spacing) * 70)}.max-w-90{max-width:calc(var(--spacing) * 90)}.max-w-100{max-width:calc(var(--spacing) * 100)}.max-w-105{max-width:calc(var(--spacing) * 105)}.max-w-110{max-width:calc(var(--spacing) * 110)}.max-w-120{max-width:calc(var(--spacing) * 120)}.max-w-140{max-width:calc(var(--spacing) * 140)}.max-w-150{max-width:calc(var(--spacing) * 150)}.max-w-160{max-width:calc(var(--spacing) * 160)}.max-w-260{max-width:calc(var(--spacing) * 260)}.max-w-280{max-width:calc(var(--spacing) * 280)}.max-w-380{max-width:calc(var(--spacing) * 380)}.max-w-480{max-width:calc(var(--spacing) * 480)}.max-w-640{max-width:calc(var(--spacing) * 640)}.max-w-\[545px\]{max-width:545px}.max-w-\[calc\(100\%-var\(--spacing\)\*10\)\]{max-width:calc(100% - var(--spacing) * 10)}.max-w-\[calc\(100vw-var\(--spacing\)\*8\)\]{max-width:calc(100vw - var(--spacing) * 8)}.max-w-bubble-form{max-width:var(--container-bubble-form)}.max-w-full{max-width:100%}.max-w-qris-badge{max-width:var(--container-qris-badge)}.min-w-0{min-width:0}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-38{min-width:calc(var(--spacing) * 38)}.min-w-44{min-width:calc(var(--spacing) * 44)}.min-w-46{min-width:calc(var(--spacing) * 46)}.min-w-55{min-width:calc(var(--spacing) * 55)}.min-w-64{min-width:calc(var(--spacing) * 64)}.min-w-74{min-width:calc(var(--spacing) * 74)}.min-w-90{min-width:calc(var(--spacing) * 90)}.min-w-110{min-width:calc(var(--spacing) * 110)}.min-w-140{min-width:calc(var(--spacing) * 140)}.min-w-\[13ch\]{min-width:13ch}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.flex-\[1_1_20rem\]{flex:20rem}.flex-\[1_1_160px\]{flex:160px}.flex-auto{flex:auto}.flex-none{flex:none}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-60{flex-basis:calc(var(--spacing) * 60)}.basis-110{flex-basis:calc(var(--spacing) * 110)}.basis-auto{flex-basis:auto}.basis-full{flex-basis:100%}.border-collapse{border-collapse:collapse}.translate-x-8{--tw-translate-x:calc(var(--spacing) * 8);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-108{--tw-scale-x:108%;--tw-scale-y:108%;--tw-scale-z:108%;scale:var(--tw-scale-x) var(--tw-scale-y)}.-rotate-90{rotate:-90deg}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-message-in{animation:var(--animate-message-in)}.animate-pulse{animation:var(--animate-pulse)}.animate-pulse-subtle{animation:var(--animate-pulse-subtle)}.animate-spin{animation:var(--animate-spin)}.animate-stream-caret{animation:var(--animate-stream-caret)}.animate-typing-bounce{animation:var(--animate-typing-bounce)}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.cursor-zoom-in{cursor:zoom-in}.touch-pan-x{--tw-pan-x:pan-x;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.touch-pan-y{--tw-pan-y:pan-y;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.touch-none{touch-action:none}.resize-none{resize:none}.resize-y{resize:vertical}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.grid-cols-access{grid-template-columns:var(--grid-template-columns-access)}.grid-cols-qris{grid-template-columns:var(--grid-template-columns-qris)}.grid-cols-quota-window{grid-template-columns:var(--grid-template-columns-quota-window)}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.\[align-content\:start\]{align-content:start}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-evenly{justify-content:space-evenly}.justify-start{justify-content:flex-start}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-1\.75{gap:calc(var(--spacing) * 1.75)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-4\.5{gap:calc(var(--spacing) * 4.5)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-5\.25{gap:calc(var(--spacing) * 5.25)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-7{gap:calc(var(--spacing) * 7)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-9{gap:calc(var(--spacing) * 9)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-12{gap:calc(var(--spacing) * 12)}.gap-16{gap:calc(var(--spacing) * 16)}.gap-\[8px\]{gap:8px}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-1{row-gap:var(--spacing)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-inner-border>:not(:last-child)){border-color:var(--inner-border)}.self-center{align-self:center}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-clip{overflow-x:clip}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.rounded{border-radius:.25rem}.rounded-\[50\%\]{border-radius:50%}.rounded-card{border-radius:var(--radius-card)}.rounded-chip{border-radius:var(--radius-chip)}.rounded-composer{border-radius:10px}.rounded-control{border-radius:var(--radius-control)}.rounded-full{border-radius:9999px}.rounded-hero{border-radius:var(--radius-hero)}.rounded-inset,.rounded-lg{border-radius:var(--radius-inset)}.rounded-md{border-radius:var(--radius-chip)}.rounded-micro{border-radius:var(--radius-micro)}.rounded-narrow{border-radius:var(--radius-narrow)}.rounded-panel{border-radius:var(--radius-panel)}.rounded-pill{border-radius:var(--radius-pill)}.rounded-sidebar{border-radius:var(--radius-sidebar)}.rounded-tiny{border-radius:var(--radius-tiny)}.rounded-xl{border-radius:var(--radius-control)}.rounded-tl-none{border-top-left-radius:0}.rounded-tr-none{border-top-right-radius:0}.rounded-br-none{border-bottom-right-radius:0}.rounded-br-tiny{border-bottom-right-radius:var(--radius-tiny)}.rounded-bl-none{border-bottom-left-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-\[color-mix\(in_srgb\,var\(--green\)_40\%\,transparent\)\]{border-color:var(--green)}@supports (color:color-mix(in lab, red, red)){.border-\[color-mix\(in_srgb\,var\(--green\)_40\%\,transparent\)\]{border-color:color-mix(in srgb,var(--green) 40%,transparent)}}.border-accent,.border-accent\/25{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.border-accent\/25{border-color:color-mix(in oklab, var(--accent) 25%, transparent)}}.border-accent\/30{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.border-accent\/30{border-color:color-mix(in oklab, var(--accent) 30%, transparent)}}.border-border-strong{border-color:var(--border-strong)}.border-border-subtle{border-color:var(--border-subtle)}.border-current{border-color:currentColor}.border-glass-border-2{border-color:var(--glass-border-2)}.border-inner-border{border-color:var(--inner-border)}.border-orange{border-color:var(--orange)}.border-orange-soft{border-color:var(--orange-soft)}.border-red-soft{border-color:var(--red-soft)}.border-story-white\/10{border-color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.border-story-white\/10{border-color:color-mix(in oklab, var(--text-primary) 10%, transparent)}}.border-story-white\/20{border-color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.border-story-white\/20{border-color:color-mix(in oklab, var(--text-primary) 20%, transparent)}}.border-story-white\/25{border-color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.border-story-white\/25{border-color:color-mix(in oklab, var(--text-primary) 25%, transparent)}}.border-teal-soft{border-color:var(--teal-soft)}.border-transparent{border-color:#0000}.border-warning-line{border-color:var(--status-warning)}@supports (color:color-mix(in lab, red, red)){.border-warning-line{border-color:color-mix(in srgb, var(--status-warning) 45%, transparent)}}.bg-\[\#090d16\]{background-color:#090d16}.bg-\[\#fff\]{background-color:#fff}.bg-\[color-mix\(in_srgb\,var\(--red\)_8\%\,transparent\)\]{background-color:var(--red)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--red\)_8\%\,transparent\)\]{background-color:color-mix(in srgb,var(--red) 8%,transparent)}}.bg-accent{background-color:var(--accent)}.bg-accent-foreground{background-color:var(--accent-foreground)}.bg-accent-soft{background-color:var(--accent-soft)}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab, red, red)){.bg-black\/70{background-color:color-mix(in oklab, var(--color-black) 70%, transparent)}}.bg-code-surface{background-color:var(--code-surface)}.bg-current{background-color:currentColor}.bg-glass-bg{background-color:var(--glass-bg)}.bg-green-soft,.bg-green-soft\/40{background-color:var(--green-soft)}@supports (color:color-mix(in lab, red, red)){.bg-green-soft\/40{background-color:color-mix(in oklab, var(--green-soft) 40%, transparent)}}.bg-hover{background-color:var(--hover)}.bg-inner-border{background-color:var(--inner-border)}.bg-input-bg{background-color:var(--input-bg)}.bg-kbd-bg{background-color:var(--kbd-bg)}.bg-orange-soft{background-color:var(--orange-soft)}.bg-overlay{background-color:#0006}.bg-popover-bg{background-color:var(--popover-bg)}.bg-red{background-color:var(--red)}.bg-red-soft{background-color:var(--red-soft)}.bg-status-danger{background-color:var(--status-danger)}.bg-status-info-soft{background-color:var(--status-info-soft)}.bg-status-success{background-color:var(--status-success)}.bg-story-deep{background-color:var(--story-deep)}.bg-story-ink{background-color:var(--story-ink)}.bg-story-surface{background-color:var(--story-surface)}.bg-story-white,.bg-story-white\/6{background-color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.bg-story-white\/6{background-color:color-mix(in oklab, var(--text-primary) 6%, transparent)}}.bg-story-white\/8{background-color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.bg-story-white\/8{background-color:color-mix(in oklab, var(--text-primary) 8%, transparent)}}.bg-surface-1{background-color:var(--surface-1)}.bg-surface-2{background-color:var(--surface-2)}.bg-surface-active{background-color:var(--surface-active)}.bg-surface-muted{background-color:var(--surface-muted)}.bg-teal{background-color:var(--teal)}.bg-teal-soft{background-color:var(--teal-soft)}.bg-text-primary{background-color:var(--text-primary)}.bg-text-secondary{background-color:var(--text-secondary)}.bg-text-tertiary{background-color:var(--text-tertiary)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-window-close{background-color:#ff5f57}.bg-window-expand{background-color:#28c840}.bg-window-minimize{background-color:#febc2e}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-\[linear-gradient\(to_right\,color-mix\(in_srgb\,var\(--accent\)_20\%\,transparent\)\,transparent\)\]{background-image:linear-gradient(to right,var(--accent),transparent)}@supports (color:color-mix(in lab, red, red)){.bg-\[linear-gradient\(to_right\,color-mix\(in_srgb\,var\(--accent\)_20\%\,transparent\)\,transparent\)\]{background-image:linear-gradient(to right,color-mix(in srgb,var(--accent) 20%,transparent),transparent)}}.bg-\[linear-gradient\(to_right\,color-mix\(in_srgb\,var\(--story-accent\)_2\.4\%\,transparent\)_1px\,transparent_1px\)\,linear-gradient\(to_bottom\,color-mix\(in_srgb\,var\(--story-accent\)_2\.4\%\,transparent\)_1px\,transparent_1px\)\]{background-image:linear-gradient(to right,var(--story-accent) 1px,transparent 1px),linear-gradient(to bottom,var(--story-accent) 1px,transparent 1px)}@supports (color:color-mix(in lab, red, red)){.bg-\[linear-gradient\(to_right\,color-mix\(in_srgb\,var\(--story-accent\)_2\.4\%\,transparent\)_1px\,transparent_1px\)\,linear-gradient\(to_bottom\,color-mix\(in_srgb\,var\(--story-accent\)_2\.4\%\,transparent\)_1px\,transparent_1px\)\]{background-image:linear-gradient(to right,color-mix(in srgb,var(--story-accent) 2.4%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in srgb,var(--story-accent) 2.4%,transparent) 1px,transparent 1px)}}.bg-\[linear-gradient\(to_right\,red_1px\,transparent_1px\)\]{background-image:linear-gradient(90deg,red 1px,#0000 1px)}.bg-none{background-image:none}.from-story-deep\/85{--tw-gradient-from:var(--story-deep)}@supports (color:color-mix(in lab, red, red)){.from-story-deep\/85{--tw-gradient-from:color-mix(in oklab, var(--story-deep) 85%, transparent)}}.from-story-deep\/85{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-surface-2{--tw-gradient-from:var(--surface-2);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-hover{--tw-gradient-via:var(--hover);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-story-deep\/10{--tw-gradient-via:var(--story-deep)}@supports (color:color-mix(in lab, red, red)){.via-story-deep\/10{--tw-gradient-via:color-mix(in oklab, var(--story-deep) 10%, transparent)}}.via-story-deep\/10{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-surface-2{--tw-gradient-to:var(--surface-2);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-\[length\:44px_100\%\,100\%_40px\]{background-size:44px 100%,100% 40px}.bg-cover{background-size:cover}.bg-center{background-position:50%}.fill-teal{fill:var(--teal)}.fill-text-primary{fill:var(--text-primary)}.fill-track{fill:var(--track)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-center{object-position:center}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-7{padding:calc(var(--spacing) * 7)}.p-8{padding:calc(var(--spacing) * 8)}.p-9{padding:calc(var(--spacing) * 9)}.p-10{padding:calc(var(--spacing) * 10)}.p-12{padding:calc(var(--spacing) * 12)}.p-16{padding:calc(var(--spacing) * 16)}.px-0{padding-inline:0}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-4\.5{padding-inline:calc(var(--spacing) * 4.5)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-7{padding-inline:calc(var(--spacing) * 7)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-9{padding-inline:calc(var(--spacing) * 9)}.px-12{padding-inline:calc(var(--spacing) * 12)}.px-\[7px\]{padding-inline:7px}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-1\.75{padding-block:calc(var(--spacing) * 1.75)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-4\.5{padding-block:calc(var(--spacing) * 4.5)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-9{padding-block:calc(var(--spacing) * 9)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-px{padding-block:1px}.pt-0{padding-top:0}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-7{padding-top:calc(var(--spacing) * 7)}.pt-9{padding-top:calc(var(--spacing) * 9)}.pt-40{padding-top:calc(var(--spacing) * 40)}.pt-44{padding-top:calc(var(--spacing) * 44)}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-18{padding-right:calc(var(--spacing) * 18)}.pr-20{padding-right:calc(var(--spacing) * 20)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pb-17\.5{padding-bottom:calc(var(--spacing) * 17.5)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pl-0{padding-left:0}.pl-1{padding-left:var(--spacing)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-15{padding-left:calc(var(--spacing) * 15)}.pl-16{padding-left:calc(var(--spacing) * 16)}.pl-36{padding-left:calc(var(--spacing) * 36)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.font-head{font-family:var(--font-head)}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[clamp\(38px\,4\.4vw\,68px\)\]{font-size:clamp(38px,4.4vw,68px)}.text-badge{font-size:11px}.text-body{font-size:13px}.text-body-lg{font-size:14px}.text-caption{font-size:12px}.text-display{font-size:21px}.text-hero{font-size:28px}.text-lead{font-size:16px}.text-micro{font-size:10px}.text-story-hero{font-size:clamp(38px,4.4vw,68px)}.text-title{font-size:18px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-14{--tw-leading:calc(var(--spacing) * 14);line-height:calc(var(--spacing) * 14)}.leading-\[0\.98\]{--tw-leading:.98;line-height:.98}.leading-\[1\.3\]{--tw-leading:1.3;line-height:1.3}.leading-\[1\.4\]{--tw-leading:1.4;line-height:1.4}.leading-\[1\.05\]{--tw-leading:1.05;line-height:1.05}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-\[1\.15\]{--tw-leading:1.15;line-height:1.15}.leading-\[1\.35\]{--tw-leading:1.35;line-height:1.35}.leading-\[1\]{--tw-leading:1;line-height:1}.leading-chat{--tw-leading:var(--leading-chat);line-height:var(--leading-chat)}.leading-loose{--tw-leading:var(--leading-loose);line-height:var(--leading-loose)}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.01em\]{--tw-tracking:-.01em;letter-spacing:-.01em}.tracking-\[-0\.02em\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-\[-0\.045em\]{--tw-tracking:-.045em;letter-spacing:-.045em}.tracking-\[0\.04em\]{--tw-tracking:.04em;letter-spacing:.04em}.tracking-\[0\.05em\]{--tw-tracking:.05em;letter-spacing:.05em}.tracking-code{--tw-tracking:.18em;letter-spacing:.18em}.tracking-label{--tw-tracking:.08em;letter-spacing:.08em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-balance{text-wrap:balance}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.\[overflow-wrap\:break-word\],.break-words{overflow-wrap:break-word}.wrap-anywhere{overflow-wrap:anywhere}.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.\!text-red{color:var(--red)!important}.text-\[inherit\]{color:inherit}.text-accent{color:var(--accent)}.text-accent-foreground{color:var(--accent-foreground)}.text-green{color:var(--green)}.text-inherit{color:inherit}.text-orange{color:var(--orange)}.text-purple{color:var(--purple)}.text-red{color:var(--red)}.text-red-500{color:var(--color-red-500)}.text-status-danger{color:var(--status-danger)}.text-status-info{color:var(--status-info)}.text-status-success{color:var(--status-success)}.text-status-warning{color:var(--status-warning)}.text-story-accent{color:var(--story-accent)}.text-story-deep{color:var(--story-deep)}.text-story-ink{color:var(--story-ink)}.text-story-white,.text-story-white\/50{color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.text-story-white\/50{color:color-mix(in oklab, var(--text-primary) 50%, transparent)}}.text-story-white\/65{color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.text-story-white\/65{color:color-mix(in oklab, var(--text-primary) 65%, transparent)}}.text-story-white\/70{color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.text-story-white\/70{color:color-mix(in oklab, var(--text-primary) 70%, transparent)}}.text-story-white\/75{color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.text-story-white\/75{color:color-mix(in oklab, var(--text-primary) 75%, transparent)}}.text-surface-1{color:var(--surface-1)}.text-teal{color:var(--teal)}.text-text-primary{color:var(--text-primary)}.text-text-secondary{color:var(--text-secondary)}.text-text-tertiary{color:var(--text-tertiary)}.text-white{color:var(--color-white)}.text-window-close-ink{color:#7a1c17}.text-window-expand-ink{color:#0b5a22}.text-window-minimize-ink{color:#6d4b00}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.caret-text-primary{caret-color:var(--text-primary)}.accent-accent{accent-color:var(--accent)}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-45{opacity:.45}.opacity-50{opacity:.5}.opacity-55{opacity:.55}.opacity-60{opacity:.6}.opacity-65{opacity:.65}.opacity-70{opacity:.7}.opacity-72{opacity:.72}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-100{opacity:1}.opacity-\[0\.35\]{opacity:.35}.mix-blend-screen{mix-blend-mode:screen}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_1px_2px_rgba\(…\)\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,rgba(…));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_20px_60px_rgba\(0\,0\,0\,0\.45\)\]{--tw-shadow:0 20px 60px var(--tw-shadow-color,#00000073);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-card{--tw-shadow:var(--shadow-card);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-composer{--tw-shadow:0 8px 28px -18px var(--tw-shadow-color,#0000008c);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-glow-success{--tw-shadow:0 0 8px var(--tw-shadow-color,#34d399b3);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-popout{--tw-shadow:var(--shadow-popout);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-ribbon{--tw-shadow:0 1px 3px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-window{--tw-shadow:0 24px 70px -15px var(--tw-shadow-color,#000000a6), 0 0 0 1px var(--tw-shadow-color,var(--inner-border));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-dialog{--tw-backdrop-blur:blur(6px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-saturate-150{--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[border-color\,background-color\,color\]{transition-property:border-color,background-color,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[border-color\,background-color\]{transition-property:border-color,background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[border-color\,box-shadow\]{transition-property:border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[filter\]{transition-property:filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[outline-offset\]{transition-property:outline-offset;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[transform\,border-color\,box-shadow\]{transition-property:transform,border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.delay-100{transition-delay:.1s}.delay-150{transition-delay:.15s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.duration-\(--dur-macro\){--tw-duration:var(--dur-macro);transition-duration:var(--dur-macro)}.duration-\(--dur-micro\){--tw-duration:var(--dur-micro);transition-duration:var(--dur-micro)}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-spring{--tw-ease:var(--ease-spring);transition-timing-function:var(--ease-spring)}.ease-standard{--tw-ease:ease;transition-timing-function:ease}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.\[animation-delay\:0\.3s\]{animation-delay:.3s}.\[animation-delay\:0\.15s\]{animation-delay:.15s}.\[container-name\:account-list\]{container-name:account-list}.\[user-select\:all\]{-webkit-user-select:all;user-select:all}.group-open\:rotate-180:is(:where(.group):is([open],:popover-open,:open) *){rotate:180deg}@media (hover:hover){.group-hover\:scale-104:is(:where(.group):hover *){--tw-scale-x:104%;--tw-scale-y:104%;--tw-scale-z:104%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:text-text-primary:is(:where(.group):hover *){color:var(--text-primary)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.file\:mr-4::file-selector-button{margin-right:calc(var(--spacing) * 4)}.file\:h-full::file-selector-button{height:100%}.file\:cursor-pointer::file-selector-button{cursor:pointer}.file\:rounded-l-control::file-selector-button{border-top-left-radius:var(--radius-control);border-bottom-left-radius:var(--radius-control)}.file\:rounded-r-none::file-selector-button{border-top-right-radius:0;border-bottom-right-radius:0}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:border-r::file-selector-button{border-right-style:var(--tw-border-style);border-right-width:1px}.file\:border-inner-border::file-selector-button{border-color:var(--inner-border)}.file\:bg-surface-1::file-selector-button{background-color:var(--surface-1)}.file\:px-5::file-selector-button{padding-inline:calc(var(--spacing) * 5)}.file\:py-0::file-selector-button{padding-block:0}.file\:font-sans::file-selector-button{font-family:var(--font-sans)}.file\:text-badge::file-selector-button{font-size:11px}.file\:font-semibold::file-selector-button{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.file\:text-text-primary::file-selector-button{color:var(--text-primary)}.placeholder\:text-text-tertiary::placeholder{color:var(--text-tertiary)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:inset-x-0:before{content:var(--tw-content);inset-inline:0}.before\:top-0:before{content:var(--tw-content);top:0}.before\:h-0\.5:before{content:var(--tw-content);height:calc(var(--spacing) * .5)}.before\:bg-accent:before{content:var(--tw-content);background-color:var(--accent)}.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-0:after{content:var(--tw-content);inset:0}.after\:bg-gradient-to-b:after{content:var(--tw-content);--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.after\:from-story-deep\/4:after{content:var(--tw-content);--tw-gradient-from:var(--story-deep)}@supports (color:color-mix(in lab, red, red)){.after\:from-story-deep\/4:after{--tw-gradient-from:color-mix(in oklab, var(--story-deep) 4%, transparent)}}.after\:from-story-deep\/4:after{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.after\:via-story-deep\/30:after{content:var(--tw-content);--tw-gradient-via:var(--story-deep)}@supports (color:color-mix(in lab, red, red)){.after\:via-story-deep\/30:after{--tw-gradient-via:color-mix(in oklab, var(--story-deep) 30%, transparent)}}.after\:via-story-deep\/30:after{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.after\:to-story-deep\/60:after{content:var(--tw-content);--tw-gradient-to:var(--story-deep)}@supports (color:color-mix(in lab, red, red)){.after\:to-story-deep\/60:after{--tw-gradient-to:color-mix(in oklab, var(--story-deep) 60%, transparent)}}.after\:to-story-deep\/60:after{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.focus-within\:border-text-tertiary:focus-within{border-color:var(--text-tertiary)}.focus-within\:opacity-100:focus-within{opacity:1}@media (hover:hover){.hover\:w-\[40px\]:hover{width:40px}.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:scale-112:hover{--tw-scale-x:112%;--tw-scale-y:112%;--tw-scale-z:112%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-accent:hover{border-color:var(--accent)}.hover\:border-border-strong:hover{border-color:var(--border-strong)}.hover\:border-current:hover{border-color:currentColor}.hover\:border-red:hover{border-color:var(--red)}.hover\:bg-accent-hover:hover{background-color:var(--accent-hover)}.hover\:bg-accent-soft:hover{background-color:var(--accent-soft)}.hover\:bg-active-pill:hover{background-color:var(--active-pill)}.hover\:bg-hover:hover{background-color:var(--hover)}.hover\:bg-inner-border:hover{background-color:var(--inner-border)}.hover\:bg-red-soft:hover{background-color:var(--red-soft)}.hover\:bg-story-white\/18:hover{background-color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-story-white\/18:hover{background-color:color-mix(in oklab, var(--text-primary) 18%, transparent)}}.hover\:bg-surface-hover:hover{background-color:var(--surface-hover)}.hover\:bg-surface-muted:hover{background-color:var(--surface-muted)}.hover\:text-red:hover{color:var(--red)}.hover\:text-text-primary:hover{color:var(--text-primary)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-card:hover{--tw-shadow:var(--shadow-card);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-window:hover{--tw-shadow:0 24px 70px -15px var(--tw-shadow-color,#000000a6), 0 0 0 1px var(--tw-shadow-color,var(--inner-border));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:outline:hover{outline-style:var(--tw-outline-style);outline-width:1px}.hover\:outline-2:hover{outline-style:var(--tw-outline-style);outline-width:2px}.hover\:outline-accent:hover{outline-color:var(--accent)}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.file\:hover\:bg-surface-hover::file-selector-button:hover{background-color:var(--surface-hover)}}.focus\:border-accent:focus{border-color:var(--accent)}.focus\:shadow-focus:focus{--tw-shadow:0 0 0 2px var(--tw-shadow-color,var(--accent))}@supports (color:color-mix(in lab, red, red)){.focus\:shadow-focus:focus{--tw-shadow:0 0 0 2px var(--tw-shadow-color,color-mix(in srgb, var(--accent) 15%, transparent))}}.focus\:shadow-focus:focus{box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-story-white\/30:focus-visible{--tw-ring-color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-story-white\/30:focus-visible{--tw-ring-color:color-mix(in oklab, var(--text-primary) 30%, transparent)}}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-1:focus-visible{outline-offset:1px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-accent:focus-visible{outline-color:var(--accent)}.focus-visible\:outline-current:focus-visible{outline-color:currentColor}.focus-visible\:outline-focus-ring:focus-visible{outline-color:var(--focus-ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\:scale-97:active{--tw-scale-x:97%;--tw-scale-y:97%;--tw-scale-z:97%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\:scale-\[0\.97\]:active{scale:.97}.active\:cursor-grabbing:active{cursor:grabbing}@media (hover:hover){.enabled\:hover\:border-border-strong:enabled:hover{border-color:var(--border-strong)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:text-text-tertiary:disabled{color:var(--text-tertiary)}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-35:disabled{opacity:.35}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:file\:cursor-not-allowed:disabled::file-selector-button{cursor:not-allowed}.has-checked\:border-accent:has(:checked){border-color:var(--accent)}.has-checked\:bg-accent-soft:has(:checked){background-color:var(--accent-soft)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:cursor-default[aria-disabled=true]{cursor:default}.aria-disabled\:opacity-70[aria-disabled=true]{opacity:.7}.data-\[disabled\]\:cursor-not-allowed[data-disabled]{cursor:not-allowed}.data-\[disabled\]\:opacity-40[data-disabled]{opacity:.4}.data-\[highlighted\]\:bg-surface-hover[data-highlighted]{background-color:var(--surface-hover)}.data-\[state\=checked\]\:font-semibold[data-state=checked]{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.data-\[state\=open\]\:block[data-state=open]{display:block}@media (prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}}@media not all and (min-width:1180px){.max-wide\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media not all and (min-width:820px){.max-medium\:mt-0{margin-top:0}.max-medium\:ml-0{margin-left:0}.max-medium\:grid{display:grid}.max-medium\:hidden{display:none}.max-medium\:inline-flex{display:inline-flex}.max-medium\:h-80{height:calc(var(--spacing) * 80)}.max-medium\:min-h-0{min-height:0}.max-medium\:w-\[calc\(100\%-8px\)\]{width:calc(100% - 8px)}.max-medium\:w-auto{width:auto}.max-medium\:w-full{width:100%}.max-medium\:max-w-bubble-narrow{max-width:var(--container-bubble-narrow)}.max-medium\:min-w-0{min-width:0}.max-medium\:flex-\[1_1_160px\]{flex:160px}.max-medium\:flex-auto{flex:auto}.max-medium\:flex-none{flex:none}.max-medium\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.max-medium\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.max-medium\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.max-medium\:flex-col{flex-direction:column}.max-medium\:items-start{align-items:flex-start}.max-medium\:items-stretch{align-items:stretch}.max-medium\:justify-between{justify-content:space-between}.max-medium\:gap-2{gap:calc(var(--spacing) * 2)}.max-medium\:gap-3{gap:calc(var(--spacing) * 3)}.max-medium\:gap-4{gap:calc(var(--spacing) * 4)}.max-medium\:overflow-x-auto{overflow-x:auto}.max-medium\:p-5{padding:calc(var(--spacing) * 5)}.max-medium\:px-5{padding-inline:calc(var(--spacing) * 5)}.max-medium\:py-36{padding-block:calc(var(--spacing) * 36)}}@media not all and (min-width:700px){.max-compact\:mt-5{margin-top:calc(var(--spacing) * 5)}.max-compact\:h-21{height:calc(var(--spacing) * 21)}.max-compact\:max-w-full{max-width:100%}.max-compact\:px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.max-compact\:px-8{padding-inline:calc(var(--spacing) * 8)}.max-compact\:py-52{padding-block:calc(var(--spacing) * 52)}.max-compact\:pb-16{padding-bottom:calc(var(--spacing) * 16)}.max-compact\:text-badge{font-size:11px}.max-compact\:text-body{font-size:13px}.max-compact\:text-story-hero-compact{font-size:clamp(34px,10.5vw,56px)}.max-compact\:leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}}@media not all and (min-width:640px){.max-small\:inset-0{inset:0}.max-small\:left-4{left:calc(var(--spacing) * 4)}.max-small\:col-span-full{grid-column:1/-1}.max-small\:col-start-1{grid-column-start:1}.max-small\:col-start-2{grid-column-start:2}.max-small\:row-start-1{grid-row-start:1}.max-small\:row-start-2{grid-row-start:2}.max-small\:row-start-3{grid-row-start:3}.max-small\:ml-0{margin-left:0}.max-small\:ml-auto{margin-left:auto}.max-small\:grid{display:grid}.max-small\:h-auto{height:auto}.max-small\:h-dvh{height:100dvh}.max-small\:max-h-dvh{max-height:100dvh}.max-small\:min-h-15{min-height:calc(var(--spacing) * 15)}.max-small\:w-67\.5{width:calc(var(--spacing) * 67.5)}.max-small\:w-80{width:calc(var(--spacing) * 80)}.max-small\:w-auto{width:auto}.max-small\:w-fit{width:-moz-fit-content;width:fit-content}.max-small\:w-full{width:100%}.max-small\:w-screen{width:100vw}.max-small\:max-w-45{max-width:calc(var(--spacing) * 45)}.max-small\:max-w-\[calc\(100\%-var\(--spacing\)\*8\)\]{max-width:calc(100% - var(--spacing) * 8)}.max-small\:max-w-full{max-width:100%}.max-small\:min-w-0{min-width:0}.max-small\:flex-none{flex:none}.max-small\:shrink-0{flex-shrink:0}.max-small\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.max-small\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.max-small\:grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.max-small\:flex-col{flex-direction:column}.max-small\:flex-nowrap{flex-wrap:nowrap}.max-small\:flex-wrap{flex-wrap:wrap}.max-small\:items-start{align-items:flex-start}.max-small\:items-stretch{align-items:stretch}.max-small\:justify-between{justify-content:space-between}.max-small\:justify-end{justify-content:flex-end}.max-small\:gap-2{gap:calc(var(--spacing) * 2)}.max-small\:gap-3{gap:calc(var(--spacing) * 3)}.max-small\:gap-4{gap:calc(var(--spacing) * 4)}.max-small\:gap-x-4{column-gap:calc(var(--spacing) * 4)}.max-small\:gap-y-2\.5{row-gap:calc(var(--spacing) * 2.5)}.max-small\:self-end{align-self:flex-end}.max-small\:justify-self-end{justify-self:flex-end}.max-small\:rounded-none{border-radius:0}.max-small\:border-none{--tw-border-style:none;border-style:none}.max-small\:p-3{padding:calc(var(--spacing) * 3)}.max-small\:p-6{padding:calc(var(--spacing) * 6)}.max-small\:px-3{padding-inline:calc(var(--spacing) * 3)}.max-small\:px-4{padding-inline:calc(var(--spacing) * 4)}.max-small\:py-2{padding-block:calc(var(--spacing) * 2)}.max-small\:py-4{padding-block:calc(var(--spacing) * 4)}.max-small\:pt-4{padding-top:calc(var(--spacing) * 4)}.max-small\:pb-3{padding-bottom:calc(var(--spacing) * 3)}.max-small\:text-center{text-align:center}.max-small\:leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}}@media not all and (min-width:48rem){.max-md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}}@media not all and (min-width:40rem){.max-sm\:hidden{display:none}.max-sm\:w-auto{width:auto}.max-sm\:min-w-32{min-width:calc(var(--spacing) * 32)}.max-sm\:min-w-40{min-width:calc(var(--spacing) * 40)}.max-sm\:min-w-56{min-width:calc(var(--spacing) * 56)}.max-sm\:flex-none{flex:none}.max-sm\:grid-cols-qris-compact{grid-template-columns:var(--grid-template-columns-qris-compact)}.max-sm\:flex-col{flex-direction:column}.max-sm\:items-stretch{align-items:stretch}.max-sm\:gap-3{gap:calc(var(--spacing) * 3)}.max-sm\:self-start{align-self:flex-start}.max-sm\:p-4{padding:calc(var(--spacing) * 4)}.max-sm\:p-5{padding:calc(var(--spacing) * 5)}.max-sm\:pt-3{padding-top:calc(var(--spacing) * 3)}.max-sm\:text-caption{font-size:12px}.max-sm\:text-lead{font-size:16px}.max-sm\:leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}}@media (min-width:640px){.min-\[640px\]\:inline-flex{display:inline-flex}}@media (min-width:641px){.min-\[641px\]\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:820px){.min-\[820px\]\:w-\[40px\]{width:40px}.min-medium\:w-56{width:calc(var(--spacing) * 56)}.min-\[820px\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:40rem){.sm\:inline-flex{display:inline-flex}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:justify-start{justify-content:flex-start}.sm\:gap-6{gap:calc(var(--spacing) * 6)}}@media (min-width:64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.\[\&_\.btn\]\:w-full .btn{width:100%}.\[\&_\.btn\]\:min-w-0 .btn{min-width:0}.\[\&_\.form-group\]\:gap-2 .form-group{gap:calc(var(--spacing) * 2)}.\[\&_\.radix-select-trigger\]\:bg-hover .radix-select-trigger{background-color:var(--hover)}.\[\&_\.radix-select-trigger\]\:font-semibold .radix-select-trigger{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_\.radix-select-trigger\]\:text-text-primary .radix-select-trigger{color:var(--text-primary)}.\[\&_\.state-box\]\:gap-3 .state-box{gap:calc(var(--spacing) * 3)}.\[\&_\.state-box\]\:py-4 .state-box{padding-block:calc(var(--spacing) * 4)}.\[\&_\.state-box-icon\]\:size-15 .state-box-icon{width:calc(var(--spacing) * 15);height:calc(var(--spacing) * 15)}@media not all and (min-width:640px){.max-small\:\[\&_button\]\:w-full button{width:100%}}.\[\&_code\]\:overflow-hidden code{overflow:hidden}.\[\&_code\]\:font-mono code{font-family:var(--font-mono)}.\[\&_code\]\:text-caption code{font-size:12px}.\[\&_code\]\:text-ellipsis code{text-overflow:ellipsis}.\[\&_code\]\:whitespace-nowrap code{white-space:nowrap}.\[\&_code\]\:text-text-primary code{color:var(--text-primary)}.\[\&_ol\]\:m-0 ol{margin:0}.\[\&_ol\]\:mb-4 ol{margin-bottom:calc(var(--spacing) * 4)}.\[\&_ol\:last-child\]\:mb-0 ol:last-child{margin-bottom:0}.\[\&_p\]\:m-0 p{margin:0}.\[\&_p\]\:my-2 p{margin-block:calc(var(--spacing) * 2)}.\[\&_p\]\:mb-4 p{margin-bottom:calc(var(--spacing) * 4)}.\[\&_p\:first-child\]\:mt-0 p:first-child{margin-top:0}.\[\&_p\:last-child\]\:mb-0 p:last-child{margin-bottom:0}.\[\&_pre\]\:m-0 pre{margin:0}.\[\&_pre\]\:mb-4 pre{margin-bottom:calc(var(--spacing) * 4)}.\[\&_pre\]\:overflow-x-auto pre{overflow-x:auto}.\[\&_pre\]\:rounded-control pre{border-radius:var(--radius-control)}.\[\&_pre\]\:bg-surface-muted pre{background-color:var(--surface-muted)}.\[\&_pre\]\:px-6 pre{padding-inline:calc(var(--spacing) * 6)}.\[\&_pre\]\:py-5 pre{padding-block:calc(var(--spacing) * 5)}.\[\&_pre\]\:font-mono pre{font-family:var(--font-mono)}.\[\&_pre\]\:text-caption pre{font-size:12px}.\[\&_pre\:last-child\]\:mb-0 pre:last-child{margin-bottom:0}.\[\&_span\]\:font-mono span{font-family:var(--font-mono)}.\[\&_span\]\:text-micro span{font-size:10px}.\[\&_span\]\:text-text-tertiary span{color:var(--text-tertiary)}.\[\&_strong\]\:font-semibold strong{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_svg\]\:mt-1\.5 svg{margin-top:calc(var(--spacing) * 1.5)}.\[\&_svg\]\:size-3 svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\]\:size-6\.5 svg{width:calc(var(--spacing) * 6.5);height:calc(var(--spacing) * 6.5)}.\[\&_svg\]\:size-7\.5 svg{width:calc(var(--spacing) * 7.5);height:calc(var(--spacing) * 7.5)}.\[\&_svg\]\:size-\[30px\] svg{width:30px;height:30px}.\[\&_svg\]\:flex-none svg{flex:none}.\[\&_svg\]\:text-text-tertiary svg{color:var(--text-tertiary)}.\[\&_svg\]\:transition-transform svg{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.\[\&_svg\]\:duration-150 svg{--tw-duration:.15s;transition-duration:.15s}.\[\&_svg\]\:ease-spring svg{--tw-ease:var(--ease-spring);transition-timing-function:var(--ease-spring)}.data-\[state\=open\]\:\[\&_svg\]\:rotate-180[data-state=open] svg,.\[\&_svg\[data-open\=true\]\]\:rotate-180 svg[data-open=true]{rotate:180deg}.\[\&_td\]\:border-b td{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_td\]\:border-surface-muted td{border-color:var(--surface-muted)}.\[\&_td\]\:px-4 td{padding-inline:calc(var(--spacing) * 4)}.\[\&_td\]\:px-5 td{padding-inline:calc(var(--spacing) * 5)}.\[\&_td\]\:py-2\.5 td{padding-block:calc(var(--spacing) * 2.5)}.\[\&_td\]\:py-4 td{padding-block:calc(var(--spacing) * 4)}.\[\&_td\]\:text-text-secondary td{color:var(--text-secondary)}.\[\&_td\]\:tabular-nums td{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.\[\&_th\]\:border-b th{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_th\]\:border-inner-border th{border-color:var(--inner-border)}.\[\&_th\]\:px-4 th{padding-inline:calc(var(--spacing) * 4)}.\[\&_th\]\:px-5 th{padding-inline:calc(var(--spacing) * 5)}.\[\&_th\]\:py-2\.5 th{padding-block:calc(var(--spacing) * 2.5)}.\[\&_th\]\:py-3 th{padding-block:calc(var(--spacing) * 3)}.\[\&_th\]\:text-left th{text-align:left}.\[\&_th\]\:font-mono th{font-family:var(--font-mono)}.\[\&_th\]\:text-micro th{font-size:10px}.\[\&_th\]\:font-bold th{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.\[\&_th\]\:font-semibold th{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_th\]\:tracking-label th{--tw-tracking:.08em;letter-spacing:.08em}.\[\&_th\]\:tracking-normal th{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.\[\&_th\]\:text-text-secondary th{color:var(--text-secondary)}.\[\&_th\]\:text-text-tertiary th{color:var(--text-tertiary)}.\[\&_th\]\:normal-case th{text-transform:none}.\[\&_th\]\:uppercase th{text-transform:uppercase}.\[\&_thead_th\]\:sticky thead th{position:sticky}.\[\&_thead_th\]\:top-0 thead th{top:0}.\[\&_thead_th\]\:z-card thead th{z-index:2}.\[\&_thead_th\]\:bg-surface-2 thead th{background-color:var(--surface-2)}.\[\&_tr\:last-child_td\]\:border-b-0 tr:last-child td{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.\[\&_ul\]\:m-0 ul{margin:0}.\[\&_ul\]\:mb-4 ul{margin-bottom:calc(var(--spacing) * 4)}.\[\&_ul\:last-child\]\:mb-0 ul:last-child{margin-bottom:0}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}.\[\&\>\*\]\:w-full>*{width:100%}.\[\&\>\*\]\:min-w-0>*{min-width:0}.\[\&\>button\]\:w-full>button{width:100%}.\[\&\>button\]\:shrink-0>button{flex-shrink:0}.\[\&\>button\]\:cursor-pointer>button{cursor:pointer}.\[\&\>button\]\:justify-between>button{justify-content:space-between}.\[\&\>code\]\:block>code{display:block}.\[\&\>code\]\:min-w-0>code{min-width:0}.\[\&\>code\]\:flex-1>code{flex:1}.\[\&\>code\]\:overflow-hidden>code{overflow:hidden}.\[\&\>code\]\:rounded-inset>code{border-radius:var(--radius-inset)}.\[\&\>code\]\:border>code{border-style:var(--tw-border-style);border-width:1px}.\[\&\>code\]\:border-inner-border>code{border-color:var(--inner-border)}.\[\&\>code\]\:bg-code-surface>code{background-color:var(--code-surface)}.\[\&\>code\]\:p-5>code{padding:calc(var(--spacing) * 5)}.\[\&\>code\]\:font-mono>code{font-family:var(--font-mono)}.\[\&\>code\]\:text-caption>code{font-size:12px}.\[\&\>code\]\:leading-normal>code{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.\[\&\>code\]\:text-ellipsis>code{text-overflow:ellipsis}.\[\&\>code\]\:whitespace-nowrap>code{white-space:nowrap}.\[\&\>code\]\:text-text-primary>code{color:var(--text-primary)}.\[\&\>div\:last-child\]\:flex-wrap>div:last-child{flex-wrap:wrap}.\[\&\>input\]\:min-h-11>input{min-height:calc(var(--spacing) * 11)}.\[\&\>input\]\:w-full>input{width:100%}.\[\&\>input\]\:rounded-control>input{border-radius:var(--radius-control)}.\[\&\>input\]\:border>input{border-style:var(--tw-border-style);border-width:1px}.\[\&\>input\]\:border-inner-border>input{border-color:var(--inner-border)}.\[\&\>input\]\:bg-surface-1>input{background-color:var(--surface-1)}.\[\&\>input\]\:px-3>input{padding-inline:calc(var(--spacing) * 3)}.\[\&\>input\]\:text-body>input{font-size:13px}.\[\&\>input\]\:font-medium>input{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&\>input\]\:text-text-primary>input{color:var(--text-primary)}.\[\&\>input\]\:focus-visible\:outline-2>input:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.\[\&\>input\]\:focus-visible\:outline-offset-2>input:focus-visible{outline-offset:2px}.\[\&\>input\]\:focus-visible\:outline-focus-ring>input:focus-visible{outline-color:var(--focus-ring)}.\[\&\>p\]\:my-0>p{margin-block:0}.\[\&\>span\]\:flex>span{display:flex}.\[\&\>span\]\:inline-flex>span{display:inline-flex}.\[\&\>span\]\:h-8>span{height:calc(var(--spacing) * 8)}.\[\&\>span\]\:items-center>span{align-items:center}.\[\&\>span\]\:gap-1>span{gap:var(--spacing)}.\[\&\>span\]\:overflow-hidden>span{overflow:hidden}.\[\&\>span\]\:border-0>span{border-style:var(--tw-border-style);border-width:0}.\[\&\>span\]\:border-r>span{border-right-style:var(--tw-border-style);border-right-width:1px}.\[\&\>span\]\:border-r-inner-border>span{border-right-color:var(--inner-border)}.\[\&\>span\]\:bg-transparent>span{background-color:#0000}.\[\&\>span\]\:px-2\.5>span{padding-inline:calc(var(--spacing) * 2.5)}.\[\&\>span\]\:font-mono>span{font-family:var(--font-mono)}.\[\&\>span\]\:font-sans>span{font-family:var(--font-sans)}.\[\&\>span\]\:text-micro>span{font-size:10px}.\[\&\>span\]\:leading-none>span{--tw-leading:1;line-height:1}.\[\&\>span\]\:text-ellipsis>span{text-overflow:ellipsis}.\[\&\>span\]\:whitespace-nowrap>span{white-space:nowrap}.\[\&\>span\]\:text-inherit>span{color:inherit}.\[\&\>span\]\:text-text-tertiary>span{color:var(--text-tertiary)}.\[\&\>span\]\:tabular-nums>span{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}@media not all and (min-width:640px){.max-small\:\[\&\>span\]\:w-fit>span{width:-moz-fit-content;width:fit-content}.max-small\:\[\&\>span\]\:max-w-full>span{max-width:100%}.max-small\:\[\&\>span\]\:text-center>span{text-align:center}.max-small\:\[\&\>span\]\:break-words>span{overflow-wrap:break-word}.max-small\:\[\&\>span\]\:whitespace-normal>span{white-space:normal}}.\[\&\>span\:last-child\]\:border-r-0>span:last-child{border-right-style:var(--tw-border-style);border-right-width:0}.\[\&\>strong\]\:font-head>strong{font-family:var(--font-head)}.\[\&\>strong\]\:font-sans>strong{font-family:var(--font-sans)}.\[\&\>strong\]\:text-body-lg>strong{font-size:14px}.\[\&\>strong\]\:font-semibold>strong{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&\>strong\]\:text-green>strong{color:var(--green)}.\[\&\>strong\]\:text-text-primary>strong{color:var(--text-primary)}.mlab-turn:focus-within .\[\.mlab-turn\:focus-within_\&\]\:opacity-100,.mlab-turn:hover .\[\.mlab-turn\:hover_\&\]\:opacity-100{opacity:1}details[open] .\[details\[open\]_\&\]\:rotate-180{rotate:180deg}}:root{--story-accent:var(--status-info);--story-ink:var(--text-primary);--story-muted:var(--text-secondary);--story-deep:var(--page-bg);--story-surface:var(--surface-1);--story-night:var(--status-info);--story-core:var(--purple);--story-blossom:var(--red);--story-voices:var(--purple);--story-red:var(--status-danger);--story-denial:var(--status-warning);--story-shore:var(--teal);--landing-story-max-width:1496px;--landing-story-gutter:96px;--landing-story-tablet-gutter:24px;--landing-story-mobile-gutter:16px;--landing-story-stack-gap:36px;--landing-story-figure-height:min(62svh, 480px);--landing-story-tablet-figure-height:min(45svh, 420px);--landing-story-figure-max-width:600px;--landing-story-mobile-aspect:3 / 2;--page-bg:#f7f3ed;--ease-spring:cubic-bezier(.32, .72, 0, 1);--dur-micro:.15s;--dur-macro:.25s;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--font-head:"Space Grotesk", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--radius-micro:3px;--radius-tiny:5px;--radius-chip:6px;--radius-narrow:7px;--radius-inset:8px;--radius-control:9px;--radius-panel:10px;--radius-card:12px;--radius-hero:14px;--radius-sidebar:12px;--radius-pill:10px;--topbar-height:56px;--surface-1:#fffdf8;--surface-2:#fffefc;--surface-muted:#f3eee8;--surface-hover:#ece6de;--surface-active:#e4ddd4;--text-primary:#2d2926;--text-secondary:#5c544e;--text-tertiary:#8a8078;--border-subtle:#e4d7cb;--border-strong:#d8c7b8;--inner-border:var(--border-subtle);--glass-border:var(--border-strong);--accent:#2e2e32;--accent-soft:#eeebe7;--accent-foreground:#fff;--accent-hover:#1c1c1f;--status-success:#4c9368;--status-danger:#c95145;--status-warning:#d97706;--status-info:#3b82f6;--status-info-soft:#e8f1fe;--green:var(--status-success);--red:var(--status-danger);--orange:#e67e22;--teal:#0d9488;--purple:#8b5cf6;--green-soft:#edf5ef;--red-soft:#f7ebe8;--orange-soft:#fbf0e4;--teal-soft:#e6f6f5;--purple-soft:#f3effc;--focus-ring:#2e2e32;--track:#e5d8c9;--code-surface:#f9f5ee;--popover-bg:#fffefb;--hover:var(--surface-muted);--active-pill:var(--surface-hover);--kbd-bg:#f2e9de;--input-bg:var(--surface-2);--border-soft:var(--border-subtle);--glass-bg:#fffdf8e0;--glass-bg-2:#fffefcf0;--glass-border-2:#ffffffc7;--shadow-card:0 1px 2px #5338240a, 0 10px 28px -4px #53382414;--shadow-popout:0 20px 50px -10px #5338242e, 0 0 0 1px var(--inner-border);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--page-bg:#08080b;--surface-1:#1c1c20;--surface-2:#222228;--surface-muted:#2a2a30;--surface-hover:#313137;--surface-active:#38383f;--text-primary:#f5f5f7;--text-secondary:#c4c4c8;--text-tertiary:#8d8d93;--border-subtle:#2f2f36;--border-strong:#3a3a42;--inner-border:var(--border-subtle);--glass-border:var(--border-strong);--accent:#f5f5f7;--accent-soft:#2a2a2f;--accent-foreground:#0b0b0f;--accent-hover:#fff;--status-success:#34d399;--status-danger:#f87171;--status-warning:#fbbf24;--status-info:#60a5fa;--status-info-soft:#1e2a3d;--green:var(--status-success);--red:var(--status-danger);--orange:#fb923c;--teal:#2dd4bf;--purple:#c084fc;--green-soft:#223228;--red-soft:#332625;--orange-soft:#2f2f34;--teal-soft:#243234;--purple-soft:#2c2634;--focus-ring:#f5f5f7;--track:#2d2d34;--code-surface:#202026;--popover-bg:#1c1c20;--hover:var(--surface-muted);--active-pill:var(--surface-hover);--kbd-bg:#23232a;--glass-bg:#1c1c20bf;--glass-bg-2:#222228e0;--glass-border-2:#ffffff29;--shadow-card:0 1px 2px #0000004d, 0 16px 40px #00000073;--shadow-popout:0 24px 60px -12px #000000a6, 0 0 0 1px var(--inner-border);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-pan-x{syntax:"*";inherits:false}@property --tw-pan-y{syntax:"*";inherits:false}@property --tw-pinch-zoom{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@container account-list (width<=560px){.account-row{grid-template-columns:auto minmax(0,1fr);row-gap:8px}.account-row-actions{grid-column:1/-1;justify-content:flex-start}}.signal-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,110px),1fr))}.account-row-grid{grid-template-columns:auto minmax(0,1fr) auto}.popover-max{max-width:calc(100vw - 2rem)}.estimate-dot{width:13px;height:13px}.routing-slider{appearance:none;border-radius:var(--radius-control);border:1px solid var(--inner-border);background:var(--surface-2);cursor:pointer;--slider-fill:var(--accent);height:20px}.routing-slider[data-unlimited=true]{--slider-fill:var(--status-success)}.routing-slider:focus-visible{border-color:var(--accent);outline:none}.routing-slider::-webkit-slider-runnable-track{border-radius:var(--radius-control);background:linear-gradient(to right, var(--slider-fill) var(--slider-pct,0%), transparent var(--slider-pct,0%));height:20px}.routing-slider::-webkit-slider-thumb{appearance:none;background:var(--accent-foreground);width:8px;height:12px;box-shadow:0 0 0 1px color-mix(in srgb, var(--text-primary) 35%, transparent);border-radius:3px;margin-top:4px}.routing-slider::-moz-range-track{border-radius:var(--radius-control);background:0 0;height:20px}.routing-slider::-moz-range-progress{border-radius:var(--radius-control) 0 0 var(--radius-control);background:var(--slider-fill);height:20px}.routing-slider::-moz-range-thumb{background:var(--accent-foreground);width:8px;height:12px;box-shadow:0 0 0 1px color-mix(in srgb, var(--text-primary) 35%, transparent);border:none;border-radius:3px}.banner{--banner-accent:var(--status-info)}.banner[data-tone=success]{--banner-accent:var(--status-success);--banner-ink:var(--status-success)}.banner[data-tone=danger]{--banner-accent:var(--status-danger);--banner-ink:var(--status-danger)}.banner[data-tone=warning]{--banner-accent:var(--status-warning);--banner-ink:var(--text-secondary)}.banner[data-surface=page]{--banner-line:color-mix(in srgb, var(--banner-accent) var(--banner-line-alpha), transparent);--banner-surface:color-mix(in srgb, var(--banner-accent) var(--banner-surface-alpha), transparent)}.banner[data-surface=raised]{--banner-line:color-mix(in srgb, var(--banner-accent) var(--banner-line-alpha), var(--inner-border));--banner-surface:color-mix(in srgb, var(--banner-accent) var(--banner-surface-alpha), var(--surface-2))}.banner{border-color:var(--banner-line);background:var(--banner-surface);color:var(--banner-ink)}.stat-card-value{font-family:var(--font-mono,monospace);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-weight:700;line-height:1.15}.stat-card-value[data-fit=default]{font-size:var(--text-display)}.stat-card-value[data-fit=medium]{font-size:var(--text-body-lg)}.stat-card-value[data-fit=long]{font-size:var(--text-caption);letter-spacing:-.01em}.donate-qr-grid{grid-template-columns:minmax(0,1fr)}@media (min-width:1024px){.donate-qr-grid{grid-template-columns:minmax(0,220px) minmax(0,1fr)}}.donate-qr-image{max-width:220px}.settings-page{flex-direction:column;flex:auto;gap:18px;min-width:0;display:flex}.settings-row{grid-template-columns:minmax(0,1fr) minmax(180px,300px);align-items:start;gap:12px 24px;min-width:0;padding:15px 0;display:grid}.settings-row+.settings-row{border-top:1px solid var(--border-subtle)}.settings-group-head+.settings-row{border-top:0}.settings-row-text{min-width:0}.settings-row-label{font-weight:600;font-size:var(--text-body);cursor:default;display:block}label.settings-row-label{cursor:pointer}.settings-row-hint{color:var(--text-tertiary);font-size:var(--text-caption);max-width:52ch;margin:3px 0 0;line-height:1.5}.settings-row-control{justify-self:end;width:100%;min-width:0}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:18px;min-width:0;display:grid}.settings-row-banner{padding:0 0 15px}@media (max-width:820px){.settings-row{grid-template-columns:minmax(0,1fr)}.settings-row-control{justify-self:start}}.settings-actions{border-top:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:flex-end;gap:10px;padding-top:16px;display:flex}.settings-group-head{font-size:var(--text-caption);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-tertiary);padding:18px 0 2px;font-weight:600}.settings-group-head:first-child{padding-top:4px}.settings-bucket-grid{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:12px;min-width:0;display:grid}
|
|
Binary file
|