cartethyia 2.4.4 → 2.4.6
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 +4 -1
- package/README.md +18 -0
- package/dist/dashboard/assets/AccountCooldown-ChpdzxRH.js.gz +0 -0
- package/dist/dashboard/assets/{BannedPage-TDue2X0p.js → BannedPage-QhvbJB9o.js} +1 -1
- package/dist/dashboard/assets/BannedPage-QhvbJB9o.js.gz +0 -0
- package/dist/dashboard/assets/{CliToolDetailPage-qaHXuiI5.js → CliToolDetailPage-Bcy150Jo.js} +1 -1
- package/dist/dashboard/assets/CliToolDetailPage-Bcy150Jo.js.gz +0 -0
- package/dist/dashboard/assets/{CliToolsPage-BFuQBKez.js → CliToolsPage-DyNXefph.js} +1 -1
- package/dist/dashboard/assets/CliToolsPage-DyNXefph.js.gz +0 -0
- package/dist/dashboard/assets/CombosPage-Cak0ljnO.js +1 -0
- package/dist/dashboard/assets/CombosPage-Cak0ljnO.js.gz +0 -0
- package/dist/dashboard/assets/ConsoleLogPage-CATpAEOz.js +1 -0
- package/dist/dashboard/assets/ConsoleLogPage-CATpAEOz.js.gz +0 -0
- package/dist/dashboard/assets/{CustomizationPage-BhglcqyR.js → CustomizationPage-D6jEU7nL.js} +1 -1
- package/dist/dashboard/assets/CustomizationPage-D6jEU7nL.js.gz +0 -0
- package/dist/dashboard/assets/HealthEventsModal-CZkpn0a7.js +1 -0
- package/dist/dashboard/assets/HealthEventsModal-CZkpn0a7.js.gz +0 -0
- package/dist/dashboard/assets/{LoginPage-CeqROJrT.js → LoginPage-BJlMVN4U.js} +1 -1
- package/dist/dashboard/assets/LoginPage-BJlMVN4U.js.gz +0 -0
- package/dist/dashboard/assets/ModelPicker-Br3CXEau.js +1 -0
- package/dist/dashboard/assets/ModelPicker-Br3CXEau.js.gz +0 -0
- package/dist/dashboard/assets/{OverviewPage-CRXSAITY.js → OverviewPage-CQxXbo2g.js} +1 -1
- package/dist/dashboard/assets/OverviewPage-CQxXbo2g.js.gz +0 -0
- package/dist/dashboard/assets/ProviderDetailPage--0RBNh99.js +3 -0
- package/dist/dashboard/assets/ProviderDetailPage--0RBNh99.js.gz +0 -0
- package/dist/dashboard/assets/ProviderIcon-paOCq8I0.js.gz +0 -0
- package/dist/dashboard/assets/ProvidersPage-1M-C3mbu.js +1 -0
- package/dist/dashboard/assets/ProvidersPage-1M-C3mbu.js.gz +0 -0
- package/dist/dashboard/assets/ProxyPage-CXiumA53.js +7 -0
- package/dist/dashboard/assets/ProxyPage-CXiumA53.js.gz +0 -0
- package/dist/dashboard/assets/QuotaPage-BGDIfIYP.js +1 -0
- package/dist/dashboard/assets/QuotaPage-BGDIfIYP.js.gz +0 -0
- package/dist/dashboard/assets/{SettingsPage-YxRml8AT.js → SettingsPage-BHW4Zt06.js} +1 -1
- package/dist/dashboard/assets/SettingsPage-BHW4Zt06.js.gz +0 -0
- package/dist/dashboard/assets/SetupPage-VOYC_lIa.js +1 -0
- package/dist/dashboard/assets/SetupPage-VOYC_lIa.js.gz +0 -0
- package/dist/dashboard/assets/SortableList-DpOTnGuH.js +1 -0
- package/dist/dashboard/assets/SortableList-DpOTnGuH.js.gz +0 -0
- package/dist/dashboard/assets/StudioPage-BNIDLiU6.js +31 -0
- package/dist/dashboard/assets/StudioPage-BNIDLiU6.js.gz +0 -0
- package/dist/dashboard/assets/ToolIcon-K1ckcDKg.js.gz +0 -0
- package/dist/dashboard/assets/{UsagePage-B6LA4ewF.js → UsagePage-BAFaSDQV.js} +14 -14
- package/dist/dashboard/assets/UsagePage-BAFaSDQV.js.gz +0 -0
- package/dist/dashboard/assets/api-keys-BETfaMYZ.js +1 -0
- package/dist/dashboard/assets/api-keys-BETfaMYZ.js.gz +0 -0
- package/dist/dashboard/assets/app-BLCvGdzb.css +2 -0
- package/dist/dashboard/assets/app-BLCvGdzb.css.gz +0 -0
- package/dist/dashboard/assets/{app-BDJWMThu.js → app-Cjq7nrwu.js} +3 -3
- package/dist/dashboard/assets/app-Cjq7nrwu.js.gz +0 -0
- package/dist/dashboard/assets/arrow-left-CpBxkoxI.js.gz +0 -0
- package/dist/dashboard/assets/arrow-right-Dl5yKnp8.js.gz +0 -0
- package/dist/dashboard/assets/{assert-Bwh6DJTK.js → assert-7J6_LVD3.js} +1 -1
- package/dist/dashboard/assets/assert-7J6_LVD3.js.gz +0 -0
- package/dist/dashboard/assets/backup-file-gdKIlg8U.js.gz +0 -0
- package/dist/dashboard/assets/{badge-BwmwEOgA.js → badge-BTyGk_DL.js} +1 -1
- package/dist/dashboard/assets/badge-BTyGk_DL.js.gz +0 -0
- package/dist/dashboard/assets/{banner-BKBfKTqn.js → banner-bujTWYM4.js} +1 -1
- package/dist/dashboard/assets/banner-bujTWYM4.js.gz +0 -0
- package/dist/dashboard/assets/brain-Cwed_72z.js.gz +0 -0
- package/dist/dashboard/assets/{card-BTdbRFFg.js → card-B0Bnx5CA.js} +1 -1
- package/dist/dashboard/assets/card-B0Bnx5CA.js.gz +0 -0
- package/dist/dashboard/assets/check-D69FzdvC.js.gz +0 -0
- package/dist/dashboard/assets/chevron-right-BXIy5l3h.js.gz +0 -0
- package/dist/dashboard/assets/circle-alert-CntYHV5v.js.gz +0 -0
- package/dist/dashboard/assets/circle-check-BU3v_mFW.js.gz +0 -0
- package/dist/dashboard/assets/cli-tools-DE2ug812.js +1 -0
- package/dist/dashboard/assets/cli-tools-DE2ug812.js.gz +0 -0
- package/dist/dashboard/assets/clipboard-button-R_rArH8S.js +1 -0
- package/dist/dashboard/assets/clipboard-button-R_rArH8S.js.gz +0 -0
- package/dist/dashboard/assets/cog-CdWhsajs.js.gz +0 -0
- package/dist/dashboard/assets/copy-ngmQ9zcZ.js.gz +0 -0
- package/dist/dashboard/assets/{dialog-iocKA3jr.js → dialog-BWIP_EvW.js} +1 -1
- package/dist/dashboard/assets/dialog-BWIP_EvW.js.gz +0 -0
- package/dist/dashboard/assets/dialog-actions-B1axpEg7.js.gz +0 -0
- package/dist/dashboard/assets/download-A0SW9OCW.js.gz +0 -0
- package/dist/dashboard/assets/download-dRFo5_Wu.js.gz +0 -0
- package/dist/dashboard/assets/{drawer-CDKOTZdY.js → drawer-BKcgVugF.js} +1 -1
- package/dist/dashboard/assets/drawer-BKcgVugF.js.gz +0 -0
- package/dist/dashboard/assets/entry-7dpgvpJ3.js +4 -0
- package/dist/dashboard/assets/entry-7dpgvpJ3.js.gz +0 -0
- package/dist/dashboard/assets/entry-CcWkGR4a.js +1 -0
- package/dist/dashboard/assets/entry-CcWkGR4a.js.gz +0 -0
- package/dist/dashboard/assets/entry-kTiTFrvh.js +1 -0
- package/dist/dashboard/assets/entry-kTiTFrvh.js.gz +0 -0
- package/dist/dashboard/assets/eye-C_hawfH4.js.gz +0 -0
- package/dist/dashboard/assets/eye-off-Bk5g2luF.js.gz +0 -0
- package/dist/dashboard/assets/fingerprint-pattern-BWuHtbW4.js.gz +0 -0
- package/dist/dashboard/assets/gauge-BbIMy7MB.js.gz +0 -0
- package/dist/dashboard/assets/github-badge-Booc5mNe.js +1 -0
- package/dist/dashboard/assets/github-badge-Booc5mNe.js.gz +0 -0
- package/dist/dashboard/assets/image-BPaouViG.js.gz +0 -0
- package/dist/dashboard/assets/{index-BA_ni9Ix.js → index-D70pChfn.js} +2 -2
- package/dist/dashboard/assets/index-D70pChfn.js.gz +0 -0
- package/dist/dashboard/assets/{inline-DCejSLlA.js → inline-D1TCqM2D.js} +1 -1
- package/dist/dashboard/assets/inline-D1TCqM2D.js.gz +0 -0
- package/dist/dashboard/assets/{input-Bn4_kNav.js → input-B9oyU93y.js} +1 -1
- package/dist/dashboard/assets/input-B9oyU93y.js.gz +0 -0
- package/dist/dashboard/assets/jsx-runtime-CXUMngI_.js.gz +0 -0
- package/dist/dashboard/assets/key-round-UkavsGxp.js.gz +0 -0
- package/dist/dashboard/assets/layers-2-glBbjl.js.gz +0 -0
- package/dist/dashboard/assets/{layout-Bv-NxqZ5.js → layout-BArzXirQ.js} +1 -1
- package/dist/dashboard/assets/layout-BArzXirQ.js.gz +0 -0
- package/dist/dashboard/assets/{list-row-BLA0sldD.js → list-row-BVZzaoHF.js} +1 -1
- package/dist/dashboard/assets/list-row-BVZzaoHF.js.gz +0 -0
- package/dist/dashboard/assets/{live-YlifPYox.js → live-EmuIayqp.js} +1 -1
- package/dist/dashboard/assets/live-EmuIayqp.js.gz +0 -0
- package/dist/dashboard/assets/log-in-BmRjy60c.js.gz +0 -0
- package/dist/dashboard/assets/message-circle-CCxGwRvv.js.gz +0 -0
- package/dist/dashboard/assets/{model-bans-CVvHZ-qz.js → model-bans-CSPQ9xB0.js} +1 -1
- package/dist/dashboard/assets/model-bans-CSPQ9xB0.js.gz +0 -0
- package/dist/dashboard/assets/mutation-BkoLM5Ba.js +1 -0
- package/dist/dashboard/assets/mutation-BkoLM5Ba.js.gz +0 -0
- package/dist/dashboard/assets/numbers-CFL4_Dqc.js.gz +0 -0
- package/dist/dashboard/assets/pencil-768ysRAr.js.gz +0 -0
- package/dist/dashboard/assets/plus-DIdX_g-x.js.gz +0 -0
- package/dist/dashboard/assets/power-off-Yjw9GMJh.js +1 -0
- package/dist/dashboard/assets/power-off-Yjw9GMJh.js.gz +0 -0
- package/dist/dashboard/assets/privacy-mode-GM8bej85.js +1 -0
- package/dist/dashboard/assets/privacy-mode-GM8bej85.js.gz +0 -0
- package/dist/dashboard/assets/providers/agentrouter.svg.gz +0 -0
- package/dist/dashboard/assets/providers/aihubmix.svg.gz +0 -0
- package/dist/dashboard/assets/providers/alibaba-coding-plan.svg.gz +0 -0
- package/dist/dashboard/assets/providers/alibaba.svg.gz +0 -0
- package/dist/dashboard/assets/providers/antigravity.svg.gz +0 -0
- package/dist/dashboard/assets/providers/bai.svg.gz +0 -0
- package/dist/dashboard/assets/providers/blackbox.svg.gz +0 -0
- package/dist/dashboard/assets/providers/claude-code.svg.gz +0 -0
- package/dist/dashboard/assets/providers/exa.svg.gz +0 -0
- package/dist/dashboard/assets/providers/gmi-cloud.svg.gz +0 -0
- package/dist/dashboard/assets/providers/inferhub.svg.gz +0 -0
- package/dist/dashboard/assets/providers/muse.svg.gz +0 -0
- package/dist/dashboard/assets/providers/nous-research.svg.gz +0 -0
- package/dist/dashboard/assets/providers/openai-light.svg.gz +0 -0
- package/dist/dashboard/assets/providers/parallel.svg.gz +0 -0
- package/dist/dashboard/assets/providers/tokenharbor.svg.gz +0 -0
- package/dist/dashboard/assets/providers/zai-coding-plan.svg.gz +0 -0
- package/dist/dashboard/assets/{query-keys-ROf-g1Wi.js → query-keys-D7wX2vM5.js} +1 -1
- package/dist/dashboard/assets/query-keys-D7wX2vM5.js.gz +0 -0
- package/dist/dashboard/assets/quota-DZGyp0N5.js.gz +0 -0
- package/dist/dashboard/assets/refresh-cw-BqJFk4sU.js.gz +0 -0
- package/dist/dashboard/assets/rotate-ccw-CufcqITi.js.gz +0 -0
- package/dist/dashboard/assets/route-CNSNj9Zm.js.gz +0 -0
- package/dist/dashboard/assets/{routing-jntw9-Ui.js → routing-BExgxxBU.js} +1 -1
- package/dist/dashboard/assets/routing-BExgxxBU.js.gz +0 -0
- package/dist/dashboard/assets/scaling-nWE4Cx8f.js.gz +0 -0
- package/dist/dashboard/assets/search-JOKus9rb.js.gz +0 -0
- package/dist/dashboard/assets/{select-CGUuTQmj.js → select-C9mMoEpJ.js} +1 -1
- package/dist/dashboard/assets/select-C9mMoEpJ.js.gz +0 -0
- package/dist/dashboard/assets/settings-C4_Gn_wq.js +1 -0
- package/dist/dashboard/assets/settings-C4_Gn_wq.js.gz +0 -0
- package/dist/dashboard/assets/shield-check-DVS0Foqh.js.gz +0 -0
- package/dist/dashboard/assets/sliders-horizontal-ClG7dBeJ.js.gz +0 -0
- package/dist/dashboard/assets/sparkles-BRaRUxAU.js.gz +0 -0
- package/dist/dashboard/assets/{stack-C1kTcOmP.js → stack-Ca5HxI5i.js} +1 -1
- package/dist/dashboard/assets/stack-Ca5HxI5i.js.gz +0 -0
- package/dist/dashboard/assets/{state-DHKdg-pm.js → state-CzUPfLXo.js} +1 -1
- package/dist/dashboard/assets/state-CzUPfLXo.js.gz +0 -0
- package/dist/dashboard/assets/stream-retry-5QnVuSSo.js.gz +0 -0
- package/dist/dashboard/assets/{switch-DIDeAiz9.js → switch-DOUIky_i.js} +1 -1
- package/dist/dashboard/assets/switch-DOUIky_i.js.gz +0 -0
- package/dist/dashboard/assets/terminal-Bd4ee8TA.js +1 -0
- package/dist/dashboard/assets/terminal-Bd4ee8TA.js.gz +0 -0
- package/dist/dashboard/assets/toast-C76WrMhc.js +2 -0
- package/dist/dashboard/assets/toast-C76WrMhc.js.gz +0 -0
- package/dist/dashboard/assets/tokens-DDxMbSRL.js.gz +0 -0
- package/dist/dashboard/assets/trash-Cppn5c3R.js.gz +0 -0
- package/dist/dashboard/assets/use-clipboard-B0Sy03fE.js.gz +0 -0
- package/dist/dashboard/assets/use-presence-BSZEBx7U.js.gz +0 -0
- package/dist/dashboard/assets/use-reduced-motion-C4B0R6Sz.js.gz +0 -0
- package/dist/dashboard/assets/use-timeout-BwcBBRrT.js.gz +0 -0
- package/dist/dashboard/assets/{useMutation-DVmwOKU-.js → useMutation-D87FZwH0.js} +1 -1
- package/dist/dashboard/assets/useMutation-D87FZwH0.js.gz +0 -0
- package/dist/dashboard/assets/wrench-B6E1oEuY.js.gz +0 -0
- package/dist/dashboard/index.html +1 -1
- package/dist/dashboard/index.html.gz +0 -0
- package/dist/dashboard/precompressed-assets.json +123 -0
- package/migrations/full-postgres/0013_add_providers_tenant_id_index.sql +22 -0
- package/migrations/full-postgres/0014_add_provider_accounts_tenant_id_index.sql +21 -0
- package/migrations/lite-sqlite3/0000_baseline.sql +4 -2
- package/migrations/lite-sqlite3/0013_add_providers_tenant_id_index.sql +4 -0
- package/migrations/lite-sqlite3/0014_add_provider_accounts_tenant_id_index.sql +4 -0
- package/package.json +25 -30
- package/scripts/cli/{carte-launcher.cjs → bin/carte.cjs} +8 -8
- package/scripts/cli/{cli-launcher.cjs → bin/cartethyia.cjs} +167 -134
- package/scripts/cli/command/admin.ts +65 -0
- package/scripts/cli/command/console-menu.ts +227 -0
- package/scripts/cli/{doctor.ts → command/doctor.ts} +257 -258
- package/scripts/cli/{setup.ts → command/setup.ts} +8 -12
- package/scripts/cli/command/start.ts +13 -0
- package/scripts/cli/command/tray.ts +165 -0
- package/scripts/cli/command/update.ts +23 -0
- package/scripts/cli/{runtime-state.ts → gateway/drain-token.ts} +78 -78
- package/scripts/cli/gateway/spawn.ts +101 -0
- package/scripts/cli/gateway/stop.ts +51 -0
- package/scripts/cli/main.ts +94 -0
- package/scripts/cli/support/bun.ts +27 -0
- package/scripts/cli/support/env.ts +99 -0
- package/scripts/cli/support/platform.ts +64 -0
- package/scripts/cli/support/services.ts +88 -0
- package/scripts/cli/support/startup-signal.ts +23 -0
- package/scripts/cli/support/version.ts +37 -0
- package/scripts/cli/tray/hidden-window.vbs +28 -0
- package/scripts/cli/{tray.ts → tray/index.ts} +3 -3
- package/scripts/cli/{tray.ps1 → tray/windows.ps1} +107 -98
- package/scripts/cli/ui/background.ts +49 -0
- package/src/boot/app.ts +3 -1
- package/src/boot/dependencies.ts +36 -13
- package/src/config/providers.ts +27 -1
- package/src/config/spec.ts +11 -0
- package/src/console/backup/routes.ts +8 -0
- package/src/console/cli-tools/contracts.ts +6 -6
- package/src/console/console-router.ts +5 -3
- package/src/console/dashboard-assets.ts +81 -11
- package/src/console/observability/contracts.ts +54 -22
- package/src/console/observability/routes.ts +31 -6
- package/src/console/observability/store.ts +68 -28
- package/src/console/providers/catalog/public-model-store.ts +91 -60
- package/src/console/providers/catalog/store.ts +5 -1
- package/src/console/quota/account-quota-tenant.ts +9 -6
- package/src/console/response-compression.ts +69 -2
- package/src/console/routing/pools/probe-verdict.ts +72 -0
- package/src/console/share/share-router.ts +7 -4
- package/src/console/share/share-stats.ts +12 -5
- package/src/console/shared/read-through-cache.ts +133 -7
- package/src/console/updates/repository-updates.ts +39 -34
- package/src/network/outbound-fetch.ts +113 -25
- package/src/network/tls/bun-client-hello.ts +112 -0
- package/src/observability/event-log.ts +29 -8
- package/src/observability/metrics.ts +40 -13
- package/src/observability/runtime-metrics.ts +7 -0
- package/src/persistence/schema.ts +40 -2
- package/src/protocol/response/codex.ts +9 -75
- package/src/protocol/tool-identity.ts +43 -9
- package/src/providers/authentication/jwt-validator.ts +130 -187
- package/src/providers/authentication/oauth-flow-store.ts +16 -9
- package/src/providers/default-registry.ts +4 -0
- package/src/providers/discovery/catalog/catalog-format.ts +20 -0
- package/src/providers/discovery/models-dev-catalog.ts +39 -22
- package/src/providers/discovery/probe-wire.ts +29 -5
- package/src/providers/integrations/buddy/buddy-catalog-shared.ts +3 -2
- package/src/providers/integrations/buddy/buddy-cli-headers.ts +88 -0
- package/src/providers/integrations/buddy/buddy-conversation-headers.ts +4 -0
- package/src/providers/integrations/buddy/buddy-discovery-shared.ts +33 -1
- package/src/providers/integrations/buddy/buddy-identity.ts +46 -0
- package/src/providers/integrations/buddy/buddy-oauth-shared.ts +37 -1
- package/src/providers/integrations/buddy/buddy-usage-store.ts +40 -5
- package/src/providers/integrations/buddy/codebuddy/provider.ts +2 -2
- package/src/providers/integrations/buddy/codebuddy/shared.ts +106 -73
- package/src/providers/integrations/buddy/workbuddy/cn-provider.ts +5 -2
- package/src/providers/integrations/buddy/workbuddy/quota.ts +172 -159
- package/src/providers/integrations/buddy/workbuddy/shared.ts +200 -171
- package/src/providers/integrations/codex/codex.ts +5 -8
- package/src/providers/integrations/factory/factory-oauth.ts +7 -11
- package/src/providers/integrations/opencode/opencode-go-quota.ts +130 -0
- package/src/providers/integrations/opencode/provider.ts +42 -3
- package/src/providers/integrations/qoder/qoder-oauth.ts +3 -9
- package/src/providers/integrations/shared/install-id.ts +29 -2
- package/src/providers/operations/client-versions.ts +11 -1
- package/src/providers/operations/model-catalog-cache.ts +18 -3
- package/src/providers/operations/provider-catalog-service.ts +76 -0
- package/src/transport/dispatch/attempt-finalize.ts +7 -1
- package/src/transport/dispatch/attempt-loop.ts +9 -7
- package/src/transport/dispatch/empty-stream.ts +17 -26
- package/src/transport/failure-policy.ts +20 -0
- package/src/transport/routing/route-catalog.ts +42 -3
- package/src/transport/surface/chat/encode.ts +18 -31
- package/src/transport/surface/messages/stream.ts +3 -2
- package/src/transport/translation/tool-repair.ts +37 -16
- package/src/workers/account-identity-sweep.ts +14 -12
- package/src/workers/daily-checkin.ts +62 -0
- package/src/workers/quota-refresh-sweep.ts +27 -2
- package/dist/dashboard/assets/CombosPage-B7ETkfVH.js +0 -1
- package/dist/dashboard/assets/ConsoleLogPage-vkZBxMVo.js +0 -1
- package/dist/dashboard/assets/HealthEventsModal-DDkHfwpV.js +0 -1
- package/dist/dashboard/assets/ModelPicker-CAiPR5Vd.js +0 -1
- package/dist/dashboard/assets/ProviderDetailPage-cNAD_6uN.js +0 -3
- package/dist/dashboard/assets/ProvidersPage-Cv5tdxlx.js +0 -1
- package/dist/dashboard/assets/ProxyPage-CWvMfzjj.js +0 -7
- package/dist/dashboard/assets/QuotaPage-IYQOOHR4.js +0 -1
- package/dist/dashboard/assets/SetupPage-BPDNo3Ek.js +0 -1
- package/dist/dashboard/assets/SortableList-Bol1ASmI.js +0 -1
- package/dist/dashboard/assets/StudioPage-BE5DJONZ.js +0 -31
- package/dist/dashboard/assets/api-keys-CjIGQhe7.js +0 -1
- package/dist/dashboard/assets/app-Cjgo4-Lf.css +0 -2
- package/dist/dashboard/assets/cli-tools-DccaOfhX.js +0 -1
- package/dist/dashboard/assets/clipboard-button-DQmMikNQ.js +0 -1
- package/dist/dashboard/assets/entry-DTiWhIY-.js +0 -4
- package/dist/dashboard/assets/entry-Dm3PpDCO.js +0 -1
- package/dist/dashboard/assets/entry-keNDZ_Wz.js +0 -1
- package/dist/dashboard/assets/github-badge-BuAJr8oU.js +0 -1
- package/dist/dashboard/assets/mutation-BIizFZav.js +0 -1
- package/dist/dashboard/assets/privacy-mode-CQjbZ3xk.js +0 -1
- package/dist/dashboard/assets/settings-BAS6QbmJ.js +0 -1
- package/dist/dashboard/assets/terminal-C9mZ4Ugm.js +0 -1
- package/dist/dashboard/assets/toast-DKAdP2mo.js +0 -2
- package/scripts/cli/cli.ts +0 -766
- package/scripts/cli/version.ts +0 -66
- package/scripts/operations/probe-egress.ts +0 -335
- package/scripts/operations/restart.ts +0 -120
- package/scripts/shared/env.ts +0 -269
- /package/{tray-assets → scripts/cli/tray/assets}/cartethyia.ico +0 -0
- /package/{tray-assets → scripts/cli/tray/assets}/cartethyia.png +0 -0
- /package/scripts/cli/{menu.ts → ui/prompt.ts} +0 -0
- /package/scripts/cli/{wordmark.ts → ui/wordmark.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{S as e,_ as t,t as n,w as r}from"./assert-Bwh6DJTK.js";import{a as i,i as a,r as o,t as s}from"./query-keys-ROf-g1Wi.js";import{t as c}from"./useMutation-DVmwOKU-.js";function l(){let e=r();return c({mutationFn:e=>i(`/api-keys`,{method:`POST`,body:JSON.stringify(e)}),onSuccess:async()=>{await e.invalidateQueries({queryKey:s.apiKeys.all})}})}function u(){let e=r();return c({mutationFn:({keyId:e,request:t})=>i(`/api-keys/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify(t)}),onSuccess:async()=>{await e.invalidateQueries({queryKey:s.apiKeys.all})}})}function d(){let e=r();return c({mutationFn:e=>i(`/api-keys/reorder`,{method:`POST`,body:JSON.stringify({keyIds:e})}),onSuccess:async()=>{await e.invalidateQueries({queryKey:s.apiKeys.all})}})}function f(){let e=r();return c({mutationFn:e=>i(`/api-keys/${encodeURIComponent(e)}`,{method:`DELETE`}),onSuccess:async()=>{await e.invalidateQueries({queryKey:s.apiKeys.all})}})}function p(n){return e({queryKey:s.apiKeys.shareLink(n??``),queryFn:e=>i(`/api-keys/${encodeURIComponent(n??``)}/share`,{signal:t(e)}),enabled:n!==null})}function m(){let e=r();return c({mutationFn:({keyId:e,...t})=>i(`/api-keys/${encodeURIComponent(e)}/share`,{method:`POST`,body:JSON.stringify(t)}),onSuccess:async(t,{keyId:n})=>{await e.invalidateQueries({queryKey:s.apiKeys.shareLink(n)})}})}function h(){let e=r();return c({mutationFn:({keyId:e})=>i(`/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 g(){return c({mutationFn:({keyId:e})=>i(`/api-keys/${encodeURIComponent(e)}/reveal`,{method:`POST`})})}function _(){return e({queryKey:s.apiKeys.all,queryFn:e=>i(`/api-keys`,{signal:t(e)}).then(n),...o})}function v(n){return e({queryKey:s.apiKeys.sharedKeys(n??``),queryFn:e=>i(`/api-keys/${encodeURIComponent(n??``)}/shared-keys`,{signal:t(e)}),enabled:n!==null,refetchInterval:a.live,refetchIntervalInBackground:!1})}function y(n,r){return e({queryKey:s.apiKeys.sharedKeyActivity(n??``,r??``),queryFn:e=>i(`/api-keys/${encodeURIComponent(n??``)}/shared-keys/${encodeURIComponent(r??``)}/activity`,{signal:t(e)}),enabled:n!==null&&r!==null,refetchInterval:a.live,refetchIntervalInBackground:!1})}function b(){let e=r();return c({mutationFn:({childKeyId:e})=>i(`/api-keys/${encodeURIComponent(e)}`,{method:`DELETE`}),onSuccess:async(t,{parentKeyId:n})=>{await e.invalidateQueries({queryKey:s.apiKeys.sharedKeys(n)}),await e.invalidateQueries({queryKey:s.apiKeys.all})}})}export{g as a,m as c,v as d,u as f,d as i,p as l,l as n,f as o,h as r,b as s,_ as t,y as u};
|
|
@@ -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-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-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-black:#000;--color-white:#fff;--spacing:2px;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-normal:0em;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--leading-loose:2;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--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;--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;--leading-chat:1.35;--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))}}@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{-webkit-backdrop-filter:blur(calc((100 - var(--blur-cards,30)) * var(--blur-cards-depth,30) * .01px));border:1px solid var(--inner-border);box-shadow:var(--shadow-card)}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}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(calc(10px + (var(--card-glass-depth,1) * 4px)))}.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}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{-webkit-backdrop-filter:none;background:var(--surface-1)!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{color:var(--text-primary);justify-content:space-between;align-items:center;font-size:12px;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%);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}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%;max-width:1560px;min-height:100vh;box-sizing:border-box;grid-template-columns:272px 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{color:var(--accent);background:var(--accent-soft);transition:background var(--dur-micro) var(--ease-spring);border-radius:6px;align-items:center;gap:2px;padding:0 5px;font-size:9.5px;font-weight:700;text-decoration:none;display:inline-flex}.brand-update-badge:hover{background:var(--active-pill)}.nav-group-section{margin-top:14px}.nav-group-section:first-child{margin-top:0}.nav-group-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);padding:4px 10px 6px;font-size:10.5px;font-weight:700}.nav-items-container{flex-direction:column;gap:2px;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:10px;padding:8px 10px;font-size:13.5px;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);-webkit-backdrop-filter:blur(calc((100 - var(--blur-cards,30)) * var(--blur-cards-depth,30) * .01px));align-items:center;gap:10px;padding:8px 10px;display:flex}.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-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{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);padding-inline:10px}html[data-app=landing] .landing-header-github:hover,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-menu-toggle,html[data-app=landing] .landing-header-menu-overlay{display:inline-flex}html[data-app=landing] .landing-header-menu-overlay{display:block}html[data-app=landing] .landing-header-mobile-nav{display:grid}html[data-app=landing] .landing-header-console{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:38px;padding-inline:0}}@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))}@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\/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-6{top:calc(var(--spacing) * 6)}.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-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-6{right:calc(var(--spacing) * 6)}.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-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\.5{margin-bottom:calc(var(--spacing) * 10.5)}.-ml-0\.5{margin-left:calc(var(--spacing) * -.5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\.5{margin-left:calc(var(--spacing) * 2.5)}.ml-3{margin-left:calc(var(--spacing) * 3)}.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}.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}.table{display:table}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.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-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.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-18{width:calc(var(--spacing) * 18);height:calc(var(--spacing) * 18)}.size-19{width:calc(var(--spacing) * 19);height:calc(var(--spacing) * 19)}.size-full{width:100%;height:100%}.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-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-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-\[min\(calc\(var\(--spacing\)\*340\)\,calc\(100dvh-var\(--spacing\)\*20\)\)\]{max-height:min(calc(var(--spacing) * 340), calc(100dvh - var(--spacing) * 20))}.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{min-height:calc(var(--spacing) * 10)}.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-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-180{min-height:calc(var(--spacing) * 180)}.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-64{width:calc(var(--spacing) * 64)}.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%}.min-w-0{min-width:0}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-20{min-width:calc(var(--spacing) * 20)}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-38{min-width:calc(var(--spacing) * 38)}.min-w-46{min-width:calc(var(--spacing) * 46)}.min-w-55{min-width:calc(var(--spacing) * 55)}.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_10rem\]{flex:10rem}.flex-\[1_1_20rem\]{flex:20rem}.flex-\[1_1_160px\]{flex:160px}.flex-auto{flex:auto}.flex-none{flex:none}.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-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}.columns-2{columns:2}.break-inside-avoid{break-inside:avoid}.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-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}.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-x-8{column-gap:calc(var(--spacing) * 8)}.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)}.gap-y-5{row-gap:calc(var(--spacing) * 5)}.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-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\/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-orange\/30{border-color:var(--orange)}@supports (color:color-mix(in lab, red, red)){.border-orange\/30{border-color:color-mix(in oklab, var(--orange) 30%, transparent)}}.border-red-soft{border-color:var(--red-soft)}.border-story-white,.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{background-color:var(--green-soft)}.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-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-br{--tw-gradient-position:to bottom right in oklab;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-orange-soft{--tw-gradient-from:var(--orange-soft);--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-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)}.p-\[clamp\(calc\(var\(--spacing\)\*12\)\,5vw\,calc\(var\(--spacing\)\*22\)\)\]{padding:clamp(calc(var(--spacing) * 12), 5vw, calc(var(--spacing) * 22))}.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\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.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-5{padding-right:calc(var(--spacing) * 5)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pr-18{padding-right:calc(var(--spacing) * 18)}.pr-20{padding-right:calc(var(--spacing) * 20)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.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-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-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--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\.55\]{--tw-leading:1.55;line-height:1.55}.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\.03em\]{--tw-tracking:-.03em;letter-spacing:-.03em}.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-\[0\.06em\]{--tw-tracking:.06em;letter-spacing:.06em}.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)}.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-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}.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)}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-65{opacity:.65}.opacity-70{opacity:.7}.opacity-72{opacity:.72}.opacity-75{opacity:.75}.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-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-\[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\:-translate-y-px:hover{--tw-translate-y:-1px;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-orange:hover{border-color:var(--orange)}.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-story-white\/90:hover{background-color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-story-white\/90:hover{background-color:color-mix(in oklab, var(--text-primary) 90%, 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\: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\: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\:columns-1{columns:1}.max-medium\:grid-cols-1{grid-template-columns:repeat(1,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-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-\[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\: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\: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-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\:h-\[clamp\(calc\(var\(--spacing\)\*85\)\,34dvh\,calc\(var\(--spacing\)\*130\)\)\]{height:clamp(calc(var(--spacing) * 85), 34dvh, calc(var(--spacing) * 130))}.max-sm\:h-auto{height:auto}.max-sm\:max-h-130{max-height:calc(var(--spacing) * 130)}.max-sm\:max-h-\[calc\(100dvh-var\(--spacing\)\*10\)\]{max-height:calc(100dvh - var(--spacing) * 10)}.max-sm\:max-h-\[min\(52dvh\,calc\(var\(--spacing\)\*210\)\)\]{max-height:min(52dvh, calc(var(--spacing) * 210))}.max-sm\:min-h-0{min-height:0}.max-sm\:min-h-85{min-height:calc(var(--spacing) * 85)}.max-sm\:w-auto{width:auto}.max-sm\:w-full{width:100%}.max-sm\:max-w-240{max-width:calc(var(--spacing) * 240)}.max-sm\:min-w-32{min-width:calc(var(--spacing) * 32)}.max-sm\:flex-none{flex:none}.max-sm\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.max-sm\:flex-col{flex-direction:column}.max-sm\:place-items-end{place-items:end}.max-sm\:items-stretch{align-items:stretch}.max-sm\:gap-3{gap:calc(var(--spacing) * 3)}.max-sm\:gap-6{gap:calc(var(--spacing) * 6)}.max-sm\:self-start{align-self:flex-start}.max-sm\:rounded-card{border-radius:var(--radius-card)}.max-sm\:object-contain{object-fit:contain}.max-sm\:p-5{padding:calc(var(--spacing) * 5)}.max-sm\:p-11{padding:calc(var(--spacing) * 11)}}@media (min-width:640px){.min-\[640px\]\:inline-flex{display:inline-flex}}@media (min-width:820px){.min-\[820px\]\:w-\[40px\]{width:40px}.min-\[820px\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:40rem){.sm\:right-0{right:0}.sm\:left-auto{left:auto}.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}}@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}.\[\&\>\*\]\:flex-auto>*{flex:auto}.\[\&\>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-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)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{S as e,_ as t,w as n}from"./assert-Bwh6DJTK.js";import{a as r,r as i,t as a}from"./query-keys-ROf-g1Wi.js";import{t as o}from"./useMutation-DVmwOKU-.js";function s(){return e({queryKey:a.cliTools.registry,queryFn:e=>r(`/cli-tools/registry`,{signal:t(e)}),...i})}function c(){return e({queryKey:a.cliTools.statuses,queryFn:e=>r(`/cli-tools/all-statuses`,{signal:t(e)}),...i})}function l(n,o){return e({queryKey:a.cliTools.mappings(n,o),queryFn:e=>r(`/cli-tools/${encodeURIComponent(n)}/mappings?keyId=${encodeURIComponent(o)}`,{signal:t(e)}),enabled:n.length>0&&o.length>0,...i})}function u(){let e=n();return o({mutationFn:({toolId:e,keyId:t,input:n})=>r(`/cli-tools/${encodeURIComponent(e)}/mappings`,{method:`POST`,body:JSON.stringify({...n,keyId:t})}),onSuccess:async(t,{toolId:n,keyId:r})=>{await e.invalidateQueries({queryKey:a.cliTools.mappings(n,r)})}})}function d(){let e=n();return o({mutationFn:({toolId:e,keyId:t})=>r(`/cli-tools/${encodeURIComponent(e)}/mappings/reset`,{method:`POST`,body:JSON.stringify({keyId:t})}),onSuccess:async(t,{toolId:n,keyId:r})=>{await e.invalidateQueries({queryKey:a.cliTools.mappings(n,r)})}})}function f(){let e=n();return o({mutationFn:({toolId:e,keyId:t,input:n})=>r(`/cli-tools/${encodeURIComponent(e)}/download`,{method:`POST`,body:JSON.stringify({...n,models:n.modelIds,keyId:t})}),onSuccess:async(t,{toolId:n,keyId:r})=>{await Promise.all([e.invalidateQueries({queryKey:a.cliTools.statuses}),e.invalidateQueries({queryKey:a.cliTools.mappings(n,r)})])}})}export{s as a,l as i,d as n,c as o,u as r,f as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./jsx-runtime-CXUMngI_.js";import{t as n}from"./check-D69FzdvC.js";import{n as r,t as i}from"./toast-DKAdP2mo.js";import{t as a}from"./copy-ngmQ9zcZ.js";import{t as o}from"./use-clipboard-B0Sy03fE.js";var s=e(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),c=e(`sticky-note`,[[`path`,{d:`M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z`,key:`1dfntj`}],[`path`,{d:`M15 3v5a1 1 0 0 0 1 1h5`,key:`6s6qgf`}]]),l=t();function u({value:e,label:t=`Copy`,copiedLabel:s=`Copied`,unavailableMessage:c=`Clipboard unavailable on this origin`,...u}){let{copied:d,copy:f}=o(),p=async()=>{await f(e)||i.error(c)};return(0,l.jsx)(r,{...u,icon:d?(0,l.jsx)(n,{size:13}):(0,l.jsx)(a,{size:13}),onClick:()=>void p(),children:d?s:t})}export{c as n,s as r,u as t};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginPage-CeqROJrT.js","assets/jsx-runtime-CXUMngI_.js","assets/toast-DKAdP2mo.js","assets/app-BDJWMThu.js","assets/app-Cjgo4-Lf.css","assets/log-in-BmRjy60c.js","assets/query-keys-ROf-g1Wi.js","assets/input-Bn4_kNav.js","assets/eye-off-Bk5g2luF.js","assets/eye-C_hawfH4.js","assets/SetupPage-BPDNo3Ek.js","assets/layout-Bv-NxqZ5.js","assets/backup-file-gdKIlg8U.js","assets/BannedPage-TDue2X0p.js","assets/OverviewPage-CRXSAITY.js","assets/model-bans-CVvHZ-qz.js","assets/assert-Bwh6DJTK.js","assets/useMutation-DVmwOKU-.js","assets/mutation-BIizFZav.js","assets/fingerprint-pattern-BWuHtbW4.js","assets/check-D69FzdvC.js","assets/select-CGUuTQmj.js","assets/chevron-right-BXIy5l3h.js","assets/SortableList-Bol1ASmI.js","assets/stack-C1kTcOmP.js","assets/copy-ngmQ9zcZ.js","assets/download-A0SW9OCW.js","assets/gauge-BbIMy7MB.js","assets/state-DHKdg-pm.js","assets/key-round-UkavsGxp.js","assets/clipboard-button-DQmMikNQ.js","assets/use-clipboard-B0Sy03fE.js","assets/dialog-iocKA3jr.js","assets/use-presence-BSZEBx7U.js","assets/pencil-768ysRAr.js","assets/plus-DIdX_g-x.js","assets/refresh-cw-BqJFk4sU.js","assets/route-CNSNj9Zm.js","assets/search-JOKus9rb.js","assets/shield-check-DVS0Foqh.js","assets/settings-BAS6QbmJ.js","assets/sparkles-BRaRUxAU.js","assets/trash-Cppn5c3R.js","assets/card-BTdbRFFg.js","assets/download-dRFo5_Wu.js","assets/tokens-DDxMbSRL.js","assets/badge-BwmwEOgA.js","assets/ModelPicker-CAiPR5Vd.js","assets/ProviderIcon-paOCq8I0.js","assets/switch-DIDeAiz9.js","assets/inline-DCejSLlA.js","assets/api-keys-CjIGQhe7.js","assets/cli-tools-DccaOfhX.js","assets/quota-DZGyp0N5.js","assets/UsagePage-B6LA4ewF.js","assets/terminal-C9mZ4Ugm.js","assets/drawer-CDKOTZdY.js","assets/circle-check-BU3v_mFW.js","assets/cog-CdWhsajs.js","assets/image-BPaouViG.js","assets/scaling-nWE4Cx8f.js","assets/wrench-B6E1oEuY.js","assets/use-reduced-motion-C4B0R6Sz.js","assets/numbers-CFL4_Dqc.js","assets/use-timeout-BwcBBRrT.js","assets/banner-BKBfKTqn.js","assets/live-YlifPYox.js","assets/stream-retry-5QnVuSSo.js","assets/ProviderDetailPage-cNAD_6uN.js","assets/arrow-left-CpBxkoxI.js","assets/brain-Cwed_72z.js","assets/circle-alert-CntYHV5v.js","assets/layers-2-glBbjl.js","assets/privacy-mode-CQjbZ3xk.js","assets/rotate-ccw-CufcqITi.js","assets/list-row-BLA0sldD.js","assets/routing-jntw9-Ui.js","assets/HealthEventsModal-DDkHfwpV.js","assets/AccountCooldown-ChpdzxRH.js","assets/ProvidersPage-Cv5tdxlx.js","assets/dialog-actions-B1axpEg7.js","assets/CombosPage-B7ETkfVH.js","assets/arrow-right-Dl5yKnp8.js","assets/QuotaPage-IYQOOHR4.js","assets/sliders-horizontal-ClG7dBeJ.js","assets/ProxyPage-CWvMfzjj.js","assets/SettingsPage-YxRml8AT.js","assets/CliToolsPage-BFuQBKez.js","assets/ToolIcon-K1ckcDKg.js","assets/CliToolDetailPage-qaHXuiI5.js","assets/ConsoleLogPage-vkZBxMVo.js","assets/CustomizationPage-BhglcqyR.js","assets/StudioPage-BE5DJONZ.js","assets/message-circle-CCxGwRvv.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{n as e,o as t,r as n,t as r}from"./jsx-runtime-CXUMngI_.js";import{t as i}from"./index-BA_ni9Ix.js";import{c as a,o,r as s,s as c,t as l}from"./app-BDJWMThu.js";import{i as u,n as d,r as f,t as p}from"./terminal-C9mZ4Ugm.js";import{_ as m,c as h,f as g,g as _,h as v,l as y,m as b,n as x,o as ee,p as te,s as ne,t as S,u as re}from"./toast-DKAdP2mo.js";import{t as ie}from"./dialog-iocKA3jr.js";import{C as ae,S as C,_ as w,d as oe,f as se,g as ce,h as le,m as ue,n as de,p as fe,r as pe,s as me,u as he,w as T}from"./assert-Bwh6DJTK.js";import{A as ge,C as _e,D as E,E as ve,N as ye,O as be,S as xe,T as Se,_ as D,a as O,c as k,d as Ce,g as we,h as Te,i as A,n as Ee,r as j,s as De,t as M,u as Oe,v as ke,x as Ae,y as je}from"./query-keys-ROf-g1Wi.js";import{t as Me}from"./mutation-BIizFZav.js";import{t as N}from"./useMutation-DVmwOKU-.js";import{t as Ne}from"./dialog-actions-B1axpEg7.js";var Pe=e(`bell`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]),Fe=e(`cpu`,[[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M17 20v2`,key:`1rnc9c`}],[`path`,{d:`M17 2v2`,key:`11trls`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M2 17h2`,key:`7oei6x`}],[`path`,{d:`M2 7h2`,key:`asdhe0`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`M20 17h2`,key:`1fpfkl`}],[`path`,{d:`M20 7h2`,key:`1o8tra`}],[`path`,{d:`M7 20v2`,key:`4gnj0m`}],[`path`,{d:`M7 2v2`,key:`1i4yhu`}],[`rect`,{x:`4`,y:`4`,width:`16`,height:`16`,rx:`2`,key:`1vbyd7`}],[`rect`,{x:`8`,y:`8`,width:`8`,height:`8`,rx:`1`,key:`z9xiuo`}]]),Ie=e(`layout-dashboard`,[[`rect`,{width:`7`,height:`9`,x:`3`,y:`3`,rx:`1`,key:`10lvy0`}],[`rect`,{width:`7`,height:`5`,x:`14`,y:`3`,rx:`1`,key:`16une8`}],[`rect`,{width:`7`,height:`9`,x:`14`,y:`12`,rx:`1`,key:`1hutg5`}],[`rect`,{width:`7`,height:`5`,x:`3`,y:`16`,rx:`1`,key:`ldoo1y`}]]),Le=e(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),Re=e(`memory-stick`,[[`path`,{d:`M12 12v-2`,key:`fwoke6`}],[`path`,{d:`M12 18v-2`,key:`qj6yno`}],[`path`,{d:`M16 12v-2`,key:`heuere`}],[`path`,{d:`M16 18v-2`,key:`s1ct0w`}],[`path`,{d:`M2 11h1.5`,key:`15p63e`}],[`path`,{d:`M20 18v-2`,key:`12ehxp`}],[`path`,{d:`M20.5 11H22`,key:`khsy7a`}],[`path`,{d:`M4 18v-2`,key:`1c3oqr`}],[`path`,{d:`M8 12v-2`,key:`1mwtfd`}],[`path`,{d:`M8 18v-2`,key:`qcmpov`}],[`rect`,{x:`2`,y:`6`,width:`20`,height:`10`,rx:`2`,key:`1qcswk`}]]),ze=e(`monitor`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`,key:`1svkeh`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`,key:`vw1qmm`}]]),Be=e(`palette`,[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`,key:`e79jfc`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`,key:`1okk4w`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`,key:`f64h9f`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`,key:`qy21gx`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`fotxhn`}]]),Ve=e(`rocket`,[[`path`,{d:`M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5`,key:`qeys4`}],[`path`,{d:`M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09`,key:`u4xsad`}],[`path`,{d:`M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z`,key:`676m9`}],[`path`,{d:`M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05`,key:`92ym6u`}]]),He=e(`scroll-text`,[[`path`,{d:`M15 12h-5`,key:`r7krc0`}],[`path`,{d:`M15 8h-5`,key:`1khuty`}],[`path`,{d:`M19 17V5a2 2 0 0 0-2-2H4`,key:`zz82l3`}],[`path`,{d:`M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3`,key:`1ph1d7`}]]),Ue=e(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),We=e(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),Ge=e(`shield-alert`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M12 8v4`,key:`1got3b`}],[`path`,{d:`M12 16h.01`,key:`1drbdi`}]]),Ke=e(`timer`,[[`line`,{x1:`10`,x2:`14`,y1:`2`,y2:`2`,key:`14vaq8`}],[`line`,{x1:`12`,x2:`15`,y1:`14`,y2:`11`,key:`17fdiu`}],[`circle`,{cx:`12`,cy:`14`,r:`8`,key:`1e1u0o`}]]),qe=class extends je{#e;#t;#n;constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}build(e,t,n){let r=new Me({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=Je(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=Je(e);if(typeof t==`string`){let n=this.#t.get(t);if(n){if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=Je(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}return!0}runNext(e){let t=Je(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){D.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>Se(t,e))}findAll(e={}){return this.getAll().filter(t=>Se(e,t))}notify(e){D.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return D.batch(()=>Promise.all(e.map(e=>e.continue().catch(E))))}};function Je(e){return e.options.scope?.id}var Ye=class extends je{#e;constructor(e={}){super(),this.config=e,this.#e=new Map}build(e,t,n){let r=t.queryKey,i=t.queryHash??_e(r,t),a=this.get(i);return a||(a=new Ce({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){D.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>ve(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>ve(e,t)):t}notify(e){D.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){D.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){D.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},Xe=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new Ye,this.#t=e.mutationCache||new qe,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=ke.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=we.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(ge(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=Ae(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return D.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;D.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return D.batch(()=>{let r=n.findAll(e),i=new Set(r);return r.forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,predicate:e=>i.has(e)},t)})}cancelQueries(e,t={}){let n={revert:!0,...t},r=D.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(E).catch(E)}invalidateQueries(e,t={}){return D.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=D.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(E)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(E)}async query(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t),r=n.isStaleByTime(ge(t.staleTime,n))?await n.fetch(t):n.state.data,i=t.select;return i?i(r):r}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(ge(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(E).catch(E)}infiniteQuery(e){return e._type=`infinite`,this.query(e)}fetchInfiniteQuery(e){return e._type=`infinite`,this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(E).catch(E)}ensureInfiniteQueryData(e){return e._type=`infinite`,this.ensureQueryData(e)}resumePausedMutations(){return we.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(xe(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{be(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(xe(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{be(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=_e(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===ye&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},P=t(n(),1),Ze=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,Qe=/^[\\/]{2}/;function $e(e,t){return t+e.replace(/\\/g,`/`)}var et=`popstate`;function tt(e){return typeof e==`object`&&!!e&&`pathname`in e&&`search`in e&&`hash`in e&&`state`in e&&`key`in e}function nt(e={}){function t(e,t){let n=t.state?.masked,{pathname:r,search:i,hash:a}=n||e.location;return at(``,{pathname:r,search:i,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||`default`,n?{pathname:e.location.pathname,search:e.location.search,hash:e.location.hash}:void 0)}function n(e,t){return typeof t==`string`?t:L(t)}return ot(t,n,null,e)}function F(e,t){if(e===!1||e==null)throw Error(t)}function I(e,t){if(!e){typeof console<`u`&&console.warn(t);try{throw Error(t)}catch{}}}function rt(){return Math.random().toString(36).substring(2,10)}function it(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function at(e,t,n=null,r,i){return{pathname:typeof e==`string`?e:e.pathname,search:``,hash:``,...typeof t==`string`?R(t):t,state:n,key:t&&t.key||r||rt(),mask:i}}function L({pathname:e=`/`,search:t=``,hash:n=``}){return t&&t!==`?`&&(e+=t.charAt(0)===`?`?t:`?`+t),n&&n!==`#`&&(e+=n.charAt(0)===`#`?n:`#`+n),e}function R(e){let t={};if(e){let n=e.indexOf(`#`);n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf(`?`);r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function ot(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:a=!1}=r,o=i.history,s=`POP`,c=null,l=u();l??(l=0,o.replaceState({...o.state,idx:l},``));function u(){return(o.state||{idx:null}).idx}function d(){s=`POP`;let e=u(),t=e==null?null:e-l;l=e,c&&c({action:s,location:h.location,delta:t})}function f(e,t){s=`PUSH`;let r=tt(e)?e:at(h.location,e,t);n&&n(r,e),l=u()+1;let d=it(r,l),f=h.createHref(r.mask||r);try{o.pushState(d,``,f)}catch(e){if(e instanceof DOMException&&e.name===`DataCloneError`)throw e;i.location.assign(f)}a&&c&&c({action:s,location:h.location,delta:1})}function p(e,t){s=`REPLACE`;let r=tt(e)?e:at(h.location,e,t);n&&n(r,e),l=u();let i=it(r,l),d=h.createHref(r.mask||r);o.replaceState(i,``,d),a&&c&&c({action:s,location:h.location,delta:0})}function m(e){return st(i,e)}let h={get action(){return s},get location(){return e(i,o)},listen(e){if(c)throw Error(`A history only accepts one active listener`);return i.addEventListener(et,d),c=e,()=>{i.removeEventListener(et,d),c=null}},createHref(e){return t(i,e)},createURL:m,encodeLocation(e){let t=m(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:f,replace:p,go(e){return o.go(e)}};return h}function st(e,t,n=!1){let r=`http://localhost`;e&&(r=e.location.origin===`null`?e.location.href:e.location.origin),F(r,`No window.location.(origin|href) available to create URL`);let i=typeof t==`string`?t:L(t);return i=i.replace(/ $/,`%20`),!n&&Qe.test(i)&&(i=r+i),new URL(i,r)}function ct(e,t,n=`/`){return lt(e,t,n,!1)}function lt(e,t,n,r,i){let a=z((typeof t==`string`?R(t):t).pathname||`/`,n);if(a==null)return null;let o=i??ut(e),s=null,c=Dt(a);for(let e=0;s==null&&e<o.length;++e)s=Ct(o[e],c,r);return s}function ut(e){let t=dt(e);return pt(t),t}function dt(e,t=[],n=[],r=``,i=!1){let a=(e,a,o=i,s)=>{let c={relativePath:s===void 0?e.path||``:s,caseSensitive:e.caseSensitive===!0,childrenIndex:a,route:e};if(c.relativePath.startsWith(`/`)){if(!c.relativePath.startsWith(r)&&o)return;F(c.relativePath.startsWith(r),`Absolute route path "${c.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),c.relativePath=c.relativePath.slice(r.length)}let l=B([r,c.relativePath]),u=n.concat(c);e.children&&e.children.length>0&&(F(e.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${l}".`),dt(e.children,t,u,l,o)),(e.path!=null||e.index)&&t.push({path:l,score:xt(l,e.index),routesMeta:u.map((e,t)=>{let[n,r]=Et(e.relativePath,e.caseSensitive,t===u.length-1);return{...e,matcher:n,compiledParams:r}})})};return e.forEach((e,t)=>{if(e.path===``||!e.path?.includes(`?`))a(e,t);else for(let n of ft(e.path))a(e,t,!0,n)}),t}function ft(e){let t=e.split(`/`);if(t.length===0)return[];let[n,...r]=t,i=n.endsWith(`?`),a=n.replace(/\?$/,``);if(r.length===0)return i?[a,``]:[a];let o=ft(r.join(`/`)),s=[];return s.push(...o.map(e=>e===``?a:[a,e].join(`/`))),i&&s.push(...o),s.map(t=>e.startsWith(`/`)&&t===``?`/`:t)}function pt(e){e.sort((e,t)=>e.score===t.score?St(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)):t.score-e.score)}var mt=/^:[\w-]+$/,ht=3,gt=2,_t=1,vt=10,yt=-2,bt=e=>e===`*`;function xt(e,t){let n=e.split(`/`),r=n.length;return n.some(bt)&&(r+=yt),t&&(r+=gt),n.filter(e=>!bt(e)).reduce((e,t)=>e+(mt.test(t)?ht:t===``?_t:vt),r)}function St(e,t){return e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n])?e[e.length-1]-t[t.length-1]:0}function Ct(e,t,n=!1){let{routesMeta:r}=e,i={},a=`/`,o=[];for(let e=0;e<r.length;++e){let s=r[e],c=e===r.length-1,l=a===`/`?t:t.slice(a.length)||`/`,u={path:s.relativePath,caseSensitive:s.caseSensitive,end:c},d=s.matcher&&s.compiledParams?Tt(u,l,s.matcher,s.compiledParams):wt(u,l),f=s.route;if(!d&&c&&n&&!r[r.length-1].route.index&&(d=wt({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},l)),!d)return null;Object.assign(i,d.params),o.push({params:i,pathname:B([a,d.pathname]),pathnameBase:Ft(B([a,d.pathnameBase])),route:f}),d.pathnameBase!==`/`&&(a=B([a,d.pathnameBase]))}return o}function wt(e,t){typeof e==`string`&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=Et(e.path,e.caseSensitive,e.end);return Tt(e,t,n,r)}function Tt(e,t,n,r){let i=t.match(n);if(!i)return null;let a=i[0],o=V(a,1),s=i.slice(1);return{params:r.reduce((e,{paramName:t,isOptional:n},r)=>{if(t===`*`){let e=s[r]||``;o=V(a.slice(0,a.length-e.length),1)}let i=s[r];return e[t]=n&&!i?void 0:(i||``).replace(/%2F/g,`/`),e},{}),pathname:a,pathnameBase:o,pattern:e}}function Et(e,t=!1,n=!0){I(e===`*`||!e.endsWith(`*`)||e.endsWith(`/*`),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,`/*`)}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,`/*`)}".`);let r=[],i=`^`+e.replace(/\/*\*?$/,``).replace(/^\/*/,`/`).replace(/[\\.*+^${}|()[\]]/g,`\\$&`).replace(/\/:([\w-]+)(\?)?/g,(e,t,n,i,a)=>{if(r.push({paramName:t,isOptional:n!=null}),n){let t=a.charAt(i+e.length);return t&&t!==`/`?`/([^\\/]*)`:`(?:/([^\\/]*))?`}return`/([^\\/]+)`}).replace(/\/([\w-]+)\?(\/|$)/g,`(/$1)?$2`);return e.endsWith(`*`)?(r.push({paramName:`*`}),i+=e===`*`||e===`/*`?`(.*)$`:`(?:\\/(.+)|\\/*)$`):n?i+=`\\/*$`:e!==``&&e!==`/`&&(i+=`(?:(?=\\/|$))`),[new RegExp(i,t?void 0:`i`),r]}function Dt(e){try{return e.split(`/`).map(e=>decodeURIComponent(e).replace(/\//g,`%2F`)).join(`/`)}catch(t){return I(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function z(e,t){if(t===`/`)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith(`/`)?t.length-1:t.length,r=e.charAt(n);return r&&r!==`/`?null:e.slice(n)||`/`}function Ot(e,t=`/`){let{pathname:n,search:r=``,hash:i=``}=typeof e==`string`?R(e):e,a;return n?(n=Pt(n),a=n.startsWith(`/`)||n.startsWith(`\\`)?kt(n.substring(1),`/`):kt(n,t)):a=t,{pathname:a,search:It(r),hash:Lt(i)}}function kt(e,t){let n=V(t).split(`/`);return e.split(`/`).forEach(e=>{e===`..`?n.length>1&&n.pop():e!==`.`&&n.push(e)}),n.length>1?n.join(`/`):`/`}function At(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function jt(e){return e.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function Mt(e){let t=jt(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function Nt(e,t,n,r=!1){let i;typeof e==`string`?i=R(e):(i={...e},F(!i.pathname||!i.pathname.includes(`?`),At(`?`,`pathname`,`search`,i)),F(!i.pathname||!i.pathname.includes(`#`),At(`#`,`pathname`,`hash`,i)),F(!i.search||!i.search.includes(`#`),At(`#`,`search`,`hash`,i)));let a=e===``||i.pathname===``,o=a?`/`:i.pathname,s;if(o==null)s=n;else{let e=t.length-1;if(!r&&o.startsWith(`..`)){let t=o.split(`/`);for(;t[0]===`..`;)t.shift(),--e;i.pathname=t.join(`/`)}s=e>=0?t[e]:`/`}let c=Ot(i,s),l=o&&o!==`/`&&o.endsWith(`/`),u=(a||o===`.`)&&n.endsWith(`/`);return!c.pathname.endsWith(`/`)&&(l||u)&&(c.pathname+=`/`),c}var Pt=e=>e.replace(/[\\/]{2,}/g,`/`),B=e=>Pt(e.join(`/`));function V(e,t=0){let n=e.length;for(;n>t&&e.charCodeAt(n-1)===47;)n--;return n===e.length?e:e.slice(0,n)}var Ft=e=>V(e).replace(/^\/*/,`/`),It=e=>!e||e===`?`?``:e.startsWith(`?`)?e:`?`+e,Lt=e=>!e||e===`#`?``:e.startsWith(`#`)?e:`#`+e,Rt=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||``,this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function zt(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.internal==`boolean`&&`data`in e}function Bt(e){return B(e.map(e=>e.route.path).filter(Boolean))||`/`}var Vt=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function Ht(e,t){let n=e;if(typeof n!=`string`||!Ze.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,i=!1;if(Vt)try{let e=new URL(window.location.href),r=Qe.test(n)?new URL($e(n,e.protocol)):new URL(n),a=z(r.pathname,t);r.origin===e.origin&&a!=null?n=a+r.search+r.hash:i=!0}catch{I(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:i,to:n}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);var Ut=new URL(`http://localhost`);function Wt(e){if(e.createURL)return e.createURL(`/`);try{return new URL(e.createHref(`/`),Ut)}catch{return Ut}}function Gt(e,t){return e.origin===t.origin&&(e.origin!==`null`||e.protocol===t.protocol&&e.host===t.host)}function Kt(e,t){if(e.startsWith(`//`))return!0;let n=t.protocol.toLowerCase();return e.toLowerCase().startsWith(n)?t.host===``||e.slice(n.length).startsWith(`//`):!1}function qt(e,t,n,r){let i=null;try{i=e==null?null:new URL(e,n)}catch{}let a=new URL(t,n),o=i!=null&&!Gt(i,n),s=!Gt(a,n);if(r===`reject`){if(o||s)throw Error(`External navigation is not allowed`)}else if(s&&(i==null||!Kt(e,i)||!Gt(i,a)))throw Error(`External navigation is not allowed`)}var Jt=[`POST`,`PUT`,`PATCH`,`DELETE`];new Set(Jt);var Yt=[`GET`,...Jt];new Set(Yt);var Xt=[`about:`,`blob:`,`chrome:`,`chrome-untrusted:`,`content:`,`data:`,`devtools:`,`file:`,`filesystem:`,`javascript:`];function Zt(e){try{return Xt.includes(new URL(e).protocol)}catch{return!1}}var H=P.createContext(null);H.displayName=`DataRouter`;var Qt=P.createContext(null);Qt.displayName=`DataRouterState`;var $t=P.createContext(!1);function en(){return P.useContext($t)}var tn=P.createContext({isTransitioning:!1});tn.displayName=`ViewTransition`;var nn=P.createContext(new Map);nn.displayName=`Fetchers`;var rn=P.createContext(null);rn.displayName=`Await`;var U=P.createContext(null);U.displayName=`Navigation`;var an=P.createContext(null);an.displayName=`Location`;var W=P.createContext({outlet:null,matches:[],isDataRoute:!1});W.displayName=`Route`;var on=P.createContext(null);on.displayName=`RouteError`;var sn=`REACT_ROUTER_ERROR`,cn=`REDIRECT`,ln=`ROUTE_ERROR_RESPONSE`;function un(e){if(e.startsWith(`${sn}:${cn}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`&&typeof t.location==`string`&&typeof t.reloadDocument==`boolean`&&typeof t.replace==`boolean`)return t}catch{}}function dn(e){if(e.startsWith(`${sn}:${ln}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`)return new Rt(t.status,t.statusText,t.data)}catch{}}function fn(e,{relative:t}={}){F(pn(),`useHref() may be used only in the context of a <Router> component.`);let{basename:n,navigator:r}=P.useContext(U),{hash:i,pathname:a,search:o}=vn(e,{relative:t}),s=a;return n!==`/`&&(s=a===`/`?n:B([n,a])),r.createHref({pathname:s,search:o,hash:i})}function pn(){return P.useContext(an)!=null}function G(){return F(pn(),`useLocation() may be used only in the context of a <Router> component.`),P.useContext(an).location}var mn=`You should call navigate() in a React.useEffect(), not when your component is first rendered.`;function hn(e){P.useContext(U).static||P.useLayoutEffect(e)}function K(){let{isDataRoute:e}=P.useContext(W);return e?Fn():gn()}function gn(){F(pn(),`useNavigate() may be used only in the context of a <Router> component.`);let e=P.useContext(H),{basename:t,navigator:n}=P.useContext(U),{matches:r}=P.useContext(W),{pathname:i}=G(),a=JSON.stringify(Mt(r)),o=P.useRef(!1);return hn(()=>{o.current=!0}),P.useCallback((r,s={})=>{if(I(o.current,mn),!o.current)return;if(typeof r==`number`){n.go(r);return}let c=Nt(r,JSON.parse(a),i,s.relative===`path`);e==null&&t!==`/`&&(c.pathname=c.pathname===`/`?t:B([t,c.pathname])),qt(typeof r==`string`?r:L(r),n.createHref(c),Wt(n),`reject`),(s.replace?n.replace:n.push)(c,s.state,s)},[t,n,a,i,e])}P.createContext(null);function _n(){let{matches:e}=P.useContext(W);return e[e.length-1]?.params??{}}function vn(e,{relative:t}={}){let{matches:n}=P.useContext(W),{pathname:r}=G(),i=JSON.stringify(Mt(n));return P.useMemo(()=>Nt(e,JSON.parse(i),r,t===`path`),[e,i,r,t])}function yn(e,t){return bn(e,t)}function bn(e,t,n){F(pn(),`useRoutes() may be used only in the context of a <Router> component.`);let{navigator:r}=P.useContext(U),{matches:i}=P.useContext(W),a=i[i.length-1],o=a?a.params:{},s=a?a.pathname:`/`,c=a?a.pathnameBase:`/`,l=a&&a.route;{let e=l&&l.path||``;Ln(s,!l||e.endsWith(`*`)||e.endsWith(`*?`),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${s}" (under <Route path="${e}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
|
|
3
|
-
|
|
4
|
-
Please change the parent <Route path="${e}"> to <Route path="${e===`/`?`*`:`${e}/*`}">.`)}let u=G(),d;if(t){let e=typeof t==`string`?R(t):t;F(c===`/`||e.pathname?.startsWith(c),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${e.pathname}" was given in the \`location\` prop.`),d=e}else d=u;let f=d.pathname||`/`,p=f;if(c!==`/`){let e=c.replace(/^\//,``).split(`/`);p=`/`+f.replace(/^\//,``).split(`/`).slice(e.length).join(`/`)}let m=n&&n.state.matches.length?n.state.matches.map(e=>Object.assign(e,{route:n.manifest[e.route.id]||e.route})):ct(e,{pathname:p});I(l||m!=null,`No routes matched location "${d.pathname}${d.search}${d.hash}" `),I(m==null||m[m.length-1].route.element!==void 0||m[m.length-1].route.Component!==void 0||m[m.length-1].route.lazy!==void 0,`Matched leaf route at location "${d.pathname}${d.search}${d.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let h=Dn(m&&m.map(e=>Object.assign({},e,{params:Object.assign({},o,e.params),pathname:B([c,r.encodeLocation?r.encodeLocation(e.pathname.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathname]),pathnameBase:e.pathnameBase===`/`?c:B([c,r.encodeLocation?r.encodeLocation(e.pathnameBase.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathnameBase])})),i,n);return t&&h?P.createElement(an.Provider,{value:{location:{pathname:`/`,search:``,hash:``,state:null,key:`default`,mask:void 0,...d},navigationType:`POP`}},h):h}function xn(){let e=Pn(),t=zt(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r=`rgba(200,200,200, 0.5)`,i={padding:`0.5rem`,backgroundColor:r},a={padding:`2px 4px`,backgroundColor:r},o=null;return console.error(`Error handled by React Router default ErrorBoundary:`,e),o=P.createElement(P.Fragment,null,P.createElement(`p`,null,`💿 Hey developer 👋`),P.createElement(`p`,null,`You can provide a way better UX than this when your app throws errors by providing your own `,P.createElement(`code`,{style:a},`ErrorBoundary`),` or`,` `,P.createElement(`code`,{style:a},`errorElement`),` prop on your route.`)),P.createElement(P.Fragment,null,P.createElement(`h2`,null,`Unexpected Application Error!`),P.createElement(`h3`,{style:{fontStyle:`italic`}},t),n?P.createElement(`pre`,{style:i},n):null,o)}var Sn=P.createElement(xn,null),Cn=class extends P.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!==`idle`&&e.revalidation===`idle`?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error===void 0?t.error:e.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error(`React Router caught the following error during render`,e)}render(){let e=this.state.error;if(this.context&&typeof e==`object`&&e&&`digest`in e&&typeof e.digest==`string`){let t=dn(e.digest);t&&(e=t)}let t=e===void 0?this.props.children:P.createElement(W.Provider,{value:this.props.routeContext},P.createElement(on.Provider,{value:e,children:this.props.component}));return this.context?P.createElement(Tn,{error:e},t):t}};Cn.contextType=$t;var wn=new WeakMap;function Tn({children:e,error:t}){let{basename:n,navigator:r}=P.useContext(U);if(typeof t==`object`&&t&&`digest`in t&&typeof t.digest==`string`){let e=un(t.digest);if(e){let i=wn.get(t);if(i)throw i;let a=Ht(e.location,n),o=a.absoluteURL||a.to;if(qt(e.location,o,Wt(r),`allow-explicit`),Zt(o))throw Error(`Invalid redirect location`);if(Vt&&!wn.get(t)){if(a.isExternal||e.reloadDocument)window.location.href=o;else{let n=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(a.to,{replace:e.replace}));throw wn.set(t,n),n}}return P.createElement(`meta`,{httpEquiv:`refresh`,content:`0;url=${o}`})}}return e}function En({routeContext:e,match:t,children:n}){let r=P.useContext(H);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),P.createElement(W.Provider,{value:e},n)}function Dn(e,t=[],n){let r=n?.state;if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let i=e,a=r?.errors;if(a!=null){let e=i.findIndex(e=>e.route.id&&a?.[e.route.id]!==void 0);F(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(a).join(`,`)}`),i=i.slice(0,Math.min(i.length,e+1))}let o=!1,s=-1;if(n&&r){o=r.renderFallback;for(let e=0;e<i.length;e++){let t=i[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(s=e),t.route.id){let{loaderData:e,errors:a}=r,c=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!a||a[t.route.id]===void 0);if(t.route.lazy||c){n.isStatic&&(o=!0),i=s>=0?i.slice(0,s+1):[i[0]];break}}}}let c=n?.onError,l=r&&c?(e,t)=>{c(e,{location:r.location,params:r.matches?.[0]?.params??{},pattern:Bt(r.matches),errorInfo:t})}:void 0;return i.reduceRight((e,n,c)=>{let u,d=!1,f=null,p=null;r&&(u=a&&n.route.id?a[n.route.id]:void 0,f=n.route.errorElement||Sn,o&&(s<0&&c===0?(Ln(`route-fallback`,!1,"No `HydrateFallback` element provided to render during initial hydration"),d=!0,p=null):s===c&&(d=!0,p=n.route.hydrateFallbackElement||null)));let m=t.concat(i.slice(0,c+1)),h=()=>{let t;return t=u?f:d?p:n.route.Component?P.createElement(n.route.Component,null):n.route.element?n.route.element:e,P.createElement(En,{match:n,routeContext:{outlet:e,matches:m,isDataRoute:r!=null},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||c===0)?P.createElement(Cn,{location:r.location,revalidation:r.revalidation,component:f,error:u,children:h(),routeContext:{outlet:null,matches:m,isDataRoute:!0},onError:l}):h()},null)}function On(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function kn(e){let t=P.useContext(H);return F(t,On(e)),t}function An(e){let t=P.useContext(Qt);return F(t,On(e)),t}function jn(e){let t=P.useContext(W);return F(t,On(e)),t}function Mn(e){let t=jn(e),n=t.matches[t.matches.length-1];return F(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function Nn(){return Mn(`useRouteId`)}function Pn(){let e=P.useContext(on),t=An(`useRouteError`),n=Mn(`useRouteError`);return e===void 0?t.errors?.[n]:e}function Fn(){let{router:e}=kn(`useNavigate`),t=Mn(`useNavigate`),n=P.useRef(!1);return hn(()=>{n.current=!0}),P.useCallback(async(r,i={})=>{I(n.current,mn),n.current&&(typeof r==`number`?await e.navigate(r):await e.navigate(r,{fromRouteId:t,...i}))},[e,t])}var In={};function Ln(e,t,n){!t&&!In[e]&&(In[e]=!0,I(!1,n))}P.memo(Rn);function Rn({routes:e,manifest:t,future:n,state:r,isStatic:i,onError:a}){return bn(e,void 0,{manifest:t,state:r,isStatic:i,onError:a,future:n})}function zn({to:e,replace:t,state:n,relative:r}){F(pn(),`<Navigate> may be used only in the context of a <Router> component.`);let{static:i,navigator:a}=P.useContext(U);I(!i,`<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.`);let{matches:o}=P.useContext(W),{pathname:s}=G(),c=K(),l=Nt(e,Mt(o),s,r===`path`);qt(typeof e==`string`?e:L(e),a.createHref(l),Wt(a),`reject`);let u=JSON.stringify(l);return P.useEffect(()=>{c(JSON.parse(u),{replace:t,state:n,relative:r})},[c,u,r,t,n]),null}function q(e){F(!1,`A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.`)}function Bn({basename:e=`/`,children:t=null,location:n,navigationType:r=`POP`,navigator:i,static:a=!1,useTransitions:o}){F(!pn(),`You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`);let s=e.replace(/^\/*/,`/`),c=P.useMemo(()=>({basename:s,navigator:i,static:a,useTransitions:o,future:{}}),[s,i,a,o]);typeof n==`string`&&(n=R(n));let{pathname:l=`/`,search:u=``,hash:d=``,state:f=null,key:p=`default`,mask:m}=n,h=P.useMemo(()=>{let e=z(l,s);return e==null?null:{location:{pathname:e,search:u,hash:d,state:f,key:p,mask:m},navigationType:r}},[s,l,u,d,f,p,r,m]);return I(h!=null,`<Router basename="${s}"> is not able to match the URL "${l}${u}${d}" because it does not start with the basename, so the <Router> won't render anything.`),h==null?null:P.createElement(U.Provider,{value:c},P.createElement(an.Provider,{children:t,value:h}))}function Vn({children:e,location:t}){return yn(Hn(e),t)}P.Component;function Hn(e,t=[]){let n=[];return P.Children.forEach(e,(e,r)=>{if(!P.isValidElement(e))return;let i=[...t,r];if(e.type===P.Fragment){n.push.apply(n,Hn(e.props.children,i));return}F(e.type===q,`[${typeof e.type==`string`?e.type:e.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),F(!e.props.index||!e.props.children,`An index route cannot have child routes.`);let a={id:e.props.id||i.join(`-`),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,middleware:e.props.middleware,loader:e.props.loader,action:e.props.action,hydrateFallbackElement:e.props.hydrateFallbackElement,HydrateFallback:e.props.HydrateFallback,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:e.props.hasErrorBoundary===!0||e.props.ErrorBoundary!=null||e.props.errorElement!=null,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(a.children=Hn(e.props.children,i)),n.push(a)}),n}var Un=`get`,Wn=`application/x-www-form-urlencoded`;function Gn(e){return typeof HTMLElement<`u`&&e instanceof HTMLElement}function Kn(e){return Gn(e)&&e.tagName.toLowerCase()===`button`}function qn(e){return Gn(e)&&e.tagName.toLowerCase()===`form`}function Jn(e){return Gn(e)&&e.tagName.toLowerCase()===`input`}function Yn(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Xn(e,t){return e.button===0&&(!t||t===`_self`)&&!Yn(e)}function Zn(e=``){return new URLSearchParams(typeof e==`string`||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(e=>[n,e]):[[n,r]])},[]))}function Qn(e,t){let n=Zn(e);return t&&t.forEach((e,r)=>{n.has(r)||t.getAll(r).forEach(e=>{n.append(r,e)})}),n}var $n=null;function er(){if($n===null)try{new FormData(document.createElement(`form`),0),$n=!1}catch{$n=!0}return $n}var tr=new Set([`application/x-www-form-urlencoded`,`multipart/form-data`,`text/plain`]);function nr(e){return e!=null&&!tr.has(e)?(I(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Wn}"`),null):e}function rr(e,t){let n,r,i,a,o;if(qn(e)){let o=e.getAttribute(`action`);r=o?z(o,t):null,n=e.getAttribute(`method`)||Un,i=nr(e.getAttribute(`enctype`))||Wn,a=new FormData(e)}else if(Kn(e)||Jn(e)&&(e.type===`submit`||e.type===`image`)){let o=e.form;if(o==null)throw Error(`Cannot submit a <button> or <input type="submit"> without a <form>`);let s=e.getAttribute(`formaction`)||o.getAttribute(`action`);if(r=s?z(s,t):null,n=e.getAttribute(`formmethod`)||o.getAttribute(`method`)||Un,i=nr(e.getAttribute(`formenctype`))||nr(o.getAttribute(`enctype`))||Wn,a=new FormData(o,e),!er()){let{name:t,type:n,value:r}=e;if(n===`image`){let e=t?`${t}.`:``;a.append(`${e}x`,`0`),a.append(`${e}y`,`0`)}else t&&a.append(t,r)}}else if(Gn(e))throw Error(`Cannot submit element that is not <form>, <button>, or <input type="submit|image">`);else n=Un,r=null,i=Wn,o=e;return a&&i===`text/plain`&&(o=a,a=void 0),{action:r,method:n.toLowerCase(),encType:i,formData:a,body:o}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function ir(e,t){if(e===!1||e==null)throw Error(t)}function ar(e,t,n,r){let i=typeof e==`string`?new URL(e,typeof window>`u`?`server://singlefetch/`:window.location.origin):e;return i.pathname=n?i.pathname.endsWith(`/`)?`${i.pathname}_.${r}`:`${i.pathname}.${r}`:i.pathname===`/`?`_root.${r}`:t&&z(i.pathname,t)===`/`?`${V(t)}/_root.${r}`:`${V(i.pathname)}.${r}`,i}async function or(e,t){if(e.id in t)return t[e.id];try{let n=await i(()=>import(e.module),[]);return t[e.id]=n,n}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function sr(e){return e!=null&&typeof e.page==`string`}function cr(e){return e==null?!1:e.href==null?e.rel===`preload`&&typeof e.imageSrcSet==`string`&&typeof e.imageSizes==`string`:typeof e.rel==`string`&&typeof e.href==`string`}async function lr(e,t,n){return mr((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await or(r,n);return e.links?e.links():[]}return[]}))).flat(1).filter(cr).filter(e=>e.rel===`stylesheet`||e.rel===`preload`).map(e=>e.rel===`stylesheet`?{...e,rel:`prefetch`,as:`style`}:{...e,rel:`prefetch`}))}function ur(e,t,n,r,i,a){let o=(e,t)=>!n[t]||e.route.id!==n[t].route.id,s=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith(`*`)&&n[t].params[`*`]!==e.params[`*`];return a===`assets`?t.filter((e,t)=>o(e,t)||s(e,t)):a===`data`?t.filter((t,a)=>{let c=r.routes[t.route.id];if(!c||!c.hasLoader)return!1;if(o(t,a)||s(t,a))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if(typeof r==`boolean`)return r}return!0}):[]}function dr(e,t,{includeHydrateFallback:n}={}){return fr(e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let i=[r.module];return r.clientActionModule&&(i=i.concat(r.clientActionModule)),r.clientLoaderModule&&(i=i.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(i=i.concat(r.hydrateFallbackModule)),r.imports&&(i=i.concat(r.imports)),i}).flat(1))}function fr(e){return[...new Set(e)]}function pr(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function mr(e,t){let n=new Set,r=new Set(t);return e.reduce((e,i)=>{if(t&&!sr(i)&&i.as===`script`&&i.href&&r.has(i.href))return e;let a=JSON.stringify(pr(i));return n.has(a)||(n.add(a),e.push({key:a,link:i})),e},[])}function hr(){let e=P.useContext(H);return ir(e,`You must render this element inside a <DataRouterContext.Provider> element`),e}function gr(){let e=P.useContext(Qt);return ir(e,`You must render this element inside a <DataRouterStateContext.Provider> element`),e}var _r=P.createContext(void 0);_r.displayName=`FrameworkContext`;function vr(){let e=P.useContext(_r);return ir(e,`You must render this element inside a <HydratedRouter> element`),e}function yr(e,t){let n=P.useContext(_r),[r,i]=P.useState(!1),[a,o]=P.useState(!1),{onFocus:s,onBlur:c,onMouseEnter:l,onMouseLeave:u,onTouchStart:d}=t,f=P.useRef(null);P.useEffect(()=>{if(e===`render`&&o(!0),e===`viewport`){let e=new IntersectionObserver(e=>{e.forEach(e=>{o(e.isIntersecting)})},{threshold:.5});return f.current&&e.observe(f.current),()=>{e.disconnect()}}},[e]),P.useEffect(()=>{if(r){let e=setTimeout(()=>{o(!0)},100);return()=>{clearTimeout(e)}}},[r]);let p=()=>{i(!0)},m=()=>{i(!1),o(!1)};return n?e===`intent`?[a,f,{onFocus:br(s,p),onBlur:br(c,m),onMouseEnter:br(l,p),onMouseLeave:br(u,m),onTouchStart:br(d,p)}]:[a,f,{}]:[!1,f,{}]}function br(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function xr({page:e,...t}){let n=en(),{nonce:r}=vr(),{router:i}=hr(),a=P.useMemo(()=>ct(i.routes,e,i.basename),[i.routes,e,i.basename]);return a?(t.nonce==null&&r&&(t={...t,nonce:r}),n?P.createElement(Cr,{page:e,matches:a,...t}):P.createElement(wr,{page:e,matches:a,...t})):null}function Sr(e){let{manifest:t,routeModules:n}=vr(),[r,i]=P.useState([]);return P.useEffect(()=>{let r=!1;return lr(e,t,n).then(e=>{r||i(e)}),()=>{r=!0}},[e,t,n]),r}function Cr({page:e,matches:t,...n}){let r=G(),{future:i}=vr(),{basename:a}=hr(),o=P.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=ar(e,a,i.v8_trailingSlashAwareDataRequests,`rsc`),o=!1,s=[];for(let e of t)typeof e.route.shouldRevalidate==`function`?o=!0:s.push(e.route.id);return o&&s.length>0&&n.searchParams.set(`_routes`,s.join(`,`)),[n.pathname+n.search]},[a,i.v8_trailingSlashAwareDataRequests,e,r,t]);return P.createElement(P.Fragment,null,o.map(e=>P.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})))}function wr({page:e,matches:t,...n}){let r=G(),{future:i,manifest:a,routeModules:o}=vr(),{basename:s}=hr(),{loaderData:c,matches:l}=gr(),u=P.useMemo(()=>ur(e,t,l,a,r,`data`),[e,t,l,a,r]),d=P.useMemo(()=>ur(e,t,l,a,r,`assets`),[e,t,l,a,r]),f=P.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=new Set,l=!1;if(t.forEach(e=>{let t=a.routes[e.route.id];t&&t.hasLoader&&(!u.some(t=>t.route.id===e.route.id)&&e.route.id in c&&o[e.route.id]?.shouldRevalidate||t.hasClientLoader?l=!0:n.add(e.route.id))}),n.size===0)return[];let d=ar(e,s,i.v8_trailingSlashAwareDataRequests,`data`);return l&&n.size>0&&d.searchParams.set(`_routes`,t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(`,`)),[d.pathname+d.search]},[s,i.v8_trailingSlashAwareDataRequests,c,r,a,u,t,e,o]),p=P.useMemo(()=>dr(d,a),[d,a]),m=Sr(d);return P.createElement(P.Fragment,null,f.map(e=>P.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})),p.map(e=>P.createElement(`link`,{key:e,rel:`modulepreload`,href:e,...n})),m.map(({key:e,link:t})=>P.createElement(`link`,{key:e,nonce:n.nonce,...t,crossOrigin:t.crossOrigin??n.crossOrigin})))}function Tr(...e){return t=>{e.forEach(e=>{typeof e==`function`?e(t):e!=null&&(e.current=t)})}}P.Component;var Er=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;try{Er&&(window.__reactRouterVersion=`7.18.3`)}catch{}function Dr({basename:e,children:t,useTransitions:n,window:r}){let i=P.useRef();i.current??=nt({window:r,v5Compat:!0});let a=i.current,[o,s]=P.useState({action:a.action,location:a.location}),c=P.useCallback(e=>{n===!1?s(e):P.startTransition(()=>s(e))},[n]);return P.useLayoutEffect(()=>a.listen(c),[a,c]),P.createElement(Bn,{basename:e,children:t,location:o.location,navigationType:o.action,navigator:a,useTransitions:n})}var Or=P.forwardRef(function({onClick:e,discover:t=`render`,prefetch:n=`none`,relative:r,reloadDocument:i,replace:a,mask:o,state:s,target:c,to:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f,...p},m){let{basename:h,navigator:g,useTransitions:_}=P.useContext(U),v=typeof l==`string`&&Ze.test(l),y=Ht(l,h);l=y.to;let b=fn(l,{relative:r}),x=G(),ee=null;if(o){let e=Nt(o,[],x.mask?x.mask.pathname:`/`,!0);h!==`/`&&(e.pathname=e.pathname===`/`?h:B([h,e.pathname])),ee=g.createHref(e)}let[te,ne,S]=yr(n,p),re=Nr(l,{replace:a,mask:o,state:s,target:c,preventScrollReset:u,relative:r,viewTransition:d,defaultShouldRevalidate:f,useTransitions:_});function ie(t){e&&e(t),t.defaultPrevented||re(t)}let ae=!(y.isExternal||i),C=P.createElement(`a`,{...p,...S,href:(ae?ee:void 0)||y.absoluteURL||b,onClick:ae?ie:e,ref:Tr(m,ne),target:c,"data-discover":!v&&t===`render`?`true`:void 0});return te&&!v?P.createElement(P.Fragment,null,C,P.createElement(xr,{page:b})):C});Or.displayName=`Link`;var kr=P.forwardRef(function({"aria-current":e=`page`,caseSensitive:t=!1,className:n=``,end:r=!1,style:i,to:a,viewTransition:o,children:s,...c},l){let u=vn(a,{relative:c.relative}),d=G(),f=P.useContext(Qt),{navigator:p,basename:m}=P.useContext(U),h=f!=null&&zr(u)&&o===!0,g=p.encodeLocation?p.encodeLocation(u).pathname:u.pathname,_=d.pathname,v=f&&f.navigation&&f.navigation.location?f.navigation.location.pathname:null;t||(_=_.toLowerCase(),v=v?v.toLowerCase():null,g=g.toLowerCase()),v&&m&&(v=z(v,m)||v);let y=g!==`/`&&g.endsWith(`/`)?g.length-1:g.length,b=_===g||!r&&_.startsWith(g)&&_.charAt(y)===`/`,x=v!=null&&(v===g||!r&&v.startsWith(g)&&v.charAt(g.length)===`/`),ee={isActive:b,isPending:x,isTransitioning:h},te=b?e:void 0,ne;ne=typeof n==`function`?n(ee):[n,b?`active`:null,x?`pending`:null,h?`transitioning`:null].filter(Boolean).join(` `);let S=typeof i==`function`?i(ee):i;return P.createElement(Or,{...c,"aria-current":te,className:ne,ref:l,style:S,to:a,viewTransition:o},typeof s==`function`?s(ee):s)});kr.displayName=`NavLink`;var Ar=P.forwardRef(({discover:e=`render`,fetcherKey:t,navigate:n,reloadDocument:r,replace:i,state:a,method:o=Un,action:s,onSubmit:c,relative:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f,...p},m)=>{let{useTransitions:h}=P.useContext(U),g=Lr(),_=Rr(s,{relative:l}),v=o.toLowerCase()===`get`?`get`:`post`,y=typeof s==`string`&&Ze.test(s);return P.createElement(`form`,{ref:m,method:v,action:_,onSubmit:r?c:e=>{if(c&&c(e),e.defaultPrevented)return;e.preventDefault();let r=e.nativeEvent.submitter,s=r?.getAttribute(`formmethod`)||o,p=()=>g(r||e.currentTarget,{fetcherKey:t,method:s,navigate:n,replace:i,state:a,relative:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f});h&&n!==!1?P.startTransition(()=>p()):p()},...p,"data-discover":!y&&e===`render`?`true`:void 0})});Ar.displayName=`Form`;function jr(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Mr(e){let t=P.useContext(H);return F(t,jr(e)),t}function Nr(e,{target:t,replace:n,mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,defaultShouldRevalidate:c,useTransitions:l}={}){let u=K(),d=G(),f=vn(e,{relative:o});return P.useCallback(p=>{if(Xn(p,t)){p.preventDefault();let t=n===void 0?L(d)===L(f):n,m=()=>u(e,{replace:t,mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,defaultShouldRevalidate:c});l?P.startTransition(()=>m()):m()}},[d,u,f,n,r,i,t,e,a,o,s,c,l])}function Pr(e){I(typeof URLSearchParams<`u`,"You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=P.useRef(Zn(e)),n=P.useRef(!1),r=G(),i=P.useMemo(()=>Qn(r.search,n.current?null:t.current),[r.search]),a=K();return[i,P.useCallback((e,t)=>{let r=Zn(typeof e==`function`?e(new URLSearchParams(i)):e);n.current=!0,a(`?`+r,t)},[a,i])]}var Fr=0,Ir=()=>`__${String(++Fr)}__`;function Lr(){let{router:e}=Mr(`useSubmit`),{basename:t}=P.useContext(U),n=Nn(),r=e.fetch,i=e.navigate;return P.useCallback(async(e,a={})=>{let{action:o,method:s,encType:c,formData:l,body:u}=rr(e,t);if(a.navigate===!1){let e=a.fetcherKey||Ir();await r(e,n,a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,flushSync:a.flushSync})}else await i(a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,replace:a.replace,state:a.state,fromRouteId:n,flushSync:a.flushSync,viewTransition:a.viewTransition})},[r,i,t,n])}function Rr(e,{relative:t}={}){let{basename:n}=P.useContext(U),r=P.useContext(W);F(r,`useFormAction must be used inside a RouteContext`);let[i]=r.matches.slice(-1),a={...vn(e||`.`,{relative:t})},o=G();if(e==null){a.search=o.search;let e=new URLSearchParams(a.search),t=e.getAll(`index`);if(t.some(e=>e===``)){e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();a.search=n?`?${n}`:``}}return(!e||e===`.`)&&i.route.index&&(a.search=a.search?a.search.replace(/^\?/,`?index&`):`?index`),n!==`/`&&(a.pathname=a.pathname===`/`?n:B([n,a.pathname])),L(a)}function zr(e,{relative:t}={}){let n=P.useContext(tn);F(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=Mr(`useViewTransitionState`),i=vn(e,{relative:t});if(!n.isTransitioning)return!1;let a=z(n.currentLocation.pathname,r)||n.currentLocation.pathname,o=z(n.nextLocation.pathname,r)||n.nextLocation.pathname;return wt(i.pathname,o)!=null||wt(i.pathname,a)!=null}var Br=t(a(),1),Vr=c(),Hr=`cartethyia.customization`,J=`media`,Ur=`background`,Wr=1,Gr=`/console-backgrounds.jpg`;function Kr(){let{promise:e,resolve:t,reject:n}=Promise.withResolvers(),r=indexedDB.open(Hr,Wr);return r.onupgradeneeded=()=>{let e=r.result;e.objectStoreNames.contains(J)||e.createObjectStore(J)},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error??Error(`Could not open the media database.`)),e}function qr(e){let{promise:t,resolve:n,reject:r}=Promise.withResolvers();return e.onsuccess=()=>n(e.result),e.onerror=()=>r(e.error??Error(`The media database rejected the request.`)),t}function Jr(e,t){let{promise:n,resolve:r,reject:i}=Promise.withResolvers();return e.oncomplete=()=>r(),e.onerror=()=>i(e.error??Error(t)),n}async function Yr(){let e=await Kr();try{let t=await qr(e.transaction(J,`readonly`).objectStore(J).get(Ur));if(!t||!t.blob)return null;let n=t;return{blob:n.blob,kind:n.kind,url:URL.createObjectURL(n.blob)}}finally{e.close()}}async function Xr(e,t){let n=await Kr();try{let r=n.transaction(J,`readwrite`);r.objectStore(J).put({blob:e,kind:t},Ur),await Jr(r,`Could not store the background.`)}finally{n.close()}}async function Zr(){let e=await Kr();try{let t=e.transaction(J,`readwrite`);t.objectStore(J).delete(Ur),await Jr(t,`Could not remove the background.`)}finally{e.close()}}var Qr=2560,$r=.85;async function ei(e){let t=await createImageBitmap(e).catch(()=>null);if(!t)return e;try{let n=Math.max(t.width,t.height),r=Math.min(1,Qr/n),i=document.createElement(`canvas`);i.width=Math.max(1,Math.round(t.width*r)),i.height=Math.max(1,Math.round(t.height*r));let a=i.getContext(`2d`);return a?(a.drawImage(t,0,0,i.width,i.height),await ri(i)??e):e}finally{t.close()}}var ti=4294967296,ni=268435456;function ri(e){let{promise:t,resolve:n}=Promise.withResolvers();return e.toBlob(e=>n(e),`image/webp`,$r),t}function ii(e){return e.type.startsWith(`image/`)?`image`:e.type.startsWith(`video/`)?`video`:null}var ai=[`none`,`frosted`,`vibrancy`,`heavy`],Y={backgroundSet:!1,backgroundEnabled:!0,backgroundRevision:0,backgroundOpacity:20,backgroundScale:100,backgroundX:0,backgroundY:0,backgroundBlur:5,blurCards:`frosted`,blurChrome:`frosted`,blurCardsAmount:45,blurCardsDepth:20,blurChromeAmount:25,blurChromeDepth:10,blurCardsEnabled:!0,blurChromeEnabled:!0,emptyOutline:!1},oi=`cartethyia.customization`,si=`cartethyia-customization-change`,ci=[`cards`,`chrome`];function li(e){return typeof e==`string`&&ai.includes(e)}function X(e,t,n,r){let i=typeof e==`number`?e:Number(e);return Number.isFinite(i)?Math.min(n,Math.max(t,i)):r}function ui(e){let t=typeof e==`object`&&e&&!Array.isArray(e)?e:{};return{backgroundSet:t.backgroundSet===!0,backgroundRevision:X(t.backgroundRevision,0,2**53-1,0),backgroundEnabled:typeof t.backgroundEnabled==`boolean`?t.backgroundEnabled:Y.backgroundEnabled,backgroundOpacity:X(t.backgroundOpacity,0,100,Y.backgroundOpacity),backgroundScale:X(t.backgroundScale,100,180,Y.backgroundScale),backgroundX:X(t.backgroundX,-100,100,Y.backgroundX),backgroundY:X(t.backgroundY,-100,100,Y.backgroundY),backgroundBlur:X(t.backgroundBlur,0,100,Y.backgroundBlur),blurCards:li(t.blurCards)?t.blurCards:Y.blurCards,blurChrome:li(t.blurChrome)?t.blurChrome:Y.blurChrome,blurCardsAmount:X(t.blurCardsAmount,0,100,Y.blurCardsAmount),blurChromeAmount:X(t.blurChromeAmount,0,100,Y.blurChromeAmount),blurCardsDepth:X(t.blurCardsDepth,0,100,Y.blurCardsDepth),blurChromeDepth:X(t.blurChromeDepth,0,100,Y.blurChromeDepth),blurCardsEnabled:t.blurCardsEnabled!==!1,blurChromeEnabled:t.blurChromeEnabled!==!1,emptyOutline:t.emptyOutline===!0}}var di=null;function fi(){if(di)return di;if(typeof window>`u`)return Y;try{di=ui(JSON.parse(window.localStorage.getItem(oi)??`null`))}catch{di={...Y}}return di}function pi(e){if(typeof document>`u`)return;let t=document.documentElement;t.dataset.blurCards=e.blurCards,t.dataset.blurChrome=e.blurChrome,t.style.setProperty(`--blur-cards`,`${e.blurCardsAmount}`),t.style.setProperty(`--blur-chrome`,`${e.blurChromeAmount}`),t.style.setProperty(`--blur-cards-depth`,`${e.blurCardsDepth}`),t.style.setProperty(`--blur-chrome-depth`,`${e.blurChromeDepth}`),t.dataset.blurCardsOn=e.blurCardsEnabled?`true`:`false`,t.dataset.blurChromeOn=e.blurChromeEnabled?`true`:`false`,t.dataset.emptyOutline=e.emptyOutline?`true`:`false`,t.dataset.bgActive=e.backgroundEnabled?`true`:`false`,t.style.setProperty(`--bg-opacity`,(e.backgroundOpacity/100).toFixed(2)),t.style.setProperty(`--bg-scale`,(e.backgroundScale/100).toFixed(2)),t.style.setProperty(`--bg-x`,`${e.backgroundX}%`),t.style.setProperty(`--bg-y`,`${e.backgroundY}%`),t.style.setProperty(`--bg-blur`,`${Math.round(e.backgroundBlur*.4)}px`)}function mi(e){try{window.localStorage.setItem(oi,JSON.stringify(e))}catch{}}function hi(e){let t=ui({...fi(),...e});return di=t,typeof window<`u`&&(mi(t),pi(t),window.dispatchEvent(new CustomEvent(si))),t}function gi(){let[e,t]=(0,P.useState)(fi);return(0,P.useEffect)(()=>{let e=()=>t(fi());return window.addEventListener(si,e),window.addEventListener(`storage`,e),()=>{window.removeEventListener(si,e),window.removeEventListener(`storage`,e)}},[]),[e,e=>t(hi(e))]}var _i=ci,Z=r(),vi=`(max-width: 767px)`,yi=`(prefers-reduced-motion: reduce)`;function bi(e){let[t,n]=(0,P.useState)(()=>typeof window<`u`&&window.matchMedia(e).matches);return(0,P.useEffect)(()=>{let t=window.matchMedia(e),r=()=>n(t.matches);return r(),t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)},[e]),t}function xi(){let[e,t]=(0,P.useState)(()=>typeof document>`u`||!document.hidden);return(0,P.useEffect)(()=>{let e=()=>t(!document.hidden);return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]),e}function Si(){let[e]=gi(),[t,n]=(0,P.useState)(null),r=bi(vi),i=bi(yi),a=xi();(0,P.useEffect)(()=>{if(!e.backgroundSet){n(e=>(e&&URL.revokeObjectURL(e.url),{blob:new Blob,kind:`image`,url:Gr}));return}let t=!1,r=null;return Yr().then(e=>{if(t){e&&URL.revokeObjectURL(e.url);return}r=e,n(e)}).catch(()=>{t||n(null)}),()=>{t=!0,r&&URL.revokeObjectURL(r.url)}},[e.backgroundSet,e.backgroundRevision]);let o=(0,P.useRef)(null),s=t?.kind===`video`&&!r&&!i&&a;return(0,P.useEffect)(()=>{let e=o.current;if(e){if(s){e.play().catch(()=>{});return}e.pause()}},[s]),!t||!e.backgroundEnabled?null:(0,Z.jsx)(`div`,{className:`custom-background`,"data-kind":t.kind,"data-playing":s?`true`:`false`,"aria-hidden":`true`,children:t.kind===`video`?(0,Z.jsx)(`video`,{ref:o,className:`custom-background-media`,src:t.url,autoPlay:s,loop:!0,muted:!0,playsInline:!0,preload:r?`metadata`:`auto`}):(0,Z.jsx)(`img`,{className:`custom-background-media`,src:t.url,alt:``})})}function Ci({open:e,onClose:t,onConfirm:n,title:r,message:i,confirmLabel:a=`Confirm`,cancelLabel:o=`Cancel`,danger:s}){let[c,l]=(0,P.useState)(null),[u,d]=(0,P.useState)(!1);return(0,P.useEffect)(()=>{e&&(l(null),d(!1))},[e]),(0,Z.jsx)(ie,{open:e,onClose:t,title:r,description:i,children:(0,Z.jsxs)(`div`,{className:`flex flex-col gap-8 py-2 px-0`,children:[(0,Z.jsx)(`p`,{className:`text-body text-text-secondary leading-normal`,children:i}),c?(0,Z.jsx)(`p`,{role:`alert`,className:`text-caption text-red`,children:c}):null,(0,Z.jsxs)(Ne,{children:[(0,Z.jsx)(x,{variant:`secondary`,size:`sm`,onClick:t,disabled:u,children:o}),(0,Z.jsx)(x,{variant:s?`danger`:`primary`,size:`sm`,onClick:()=>{u||(l(null),d(!0),Promise.resolve().then(()=>n()).then(()=>t()).catch(e=>{l(k(e,`Action failed. Please try again.`)),d(!1)}))},disabled:u,children:u?`Working…`:a})]})]})})}var Q=new Xe({defaultOptions:{queries:j,mutations:Ee}});function wi(e){let[t,n]=(e.trim().replace(/^v/i,``).split(`+`,1)[0]??``).split(`-`,2);if(t===void 0||!/^\d+\.\d+\.\d+$/.test(t))return null;let r=t.split(`.`).map(Number);if(r.length!==3||r.some(e=>!Number.isSafeInteger(e)||e<0))return null;let i=n===void 0||n.length===0?[]:n.split(`.`).map(e=>/^\d+$/.test(e)?Number(e):e);return i.some(e=>typeof e==`number`&&(!Number.isSafeInteger(e)||e<0))?null:{core:[r[0]??0,r[1]??0,r[2]??0],prerelease:i}}function Ti(e,t){if(e===void 0||t===void 0)return!1;let n=wi(e),r=wi(t);return n===null||r===null?t.trim()!==e.trim():Ei(r,n)>0}function Ei(e,t){for(let n=0;n<e.core.length;n+=1){let r=e.core[n]??0,i=t.core[n]??0;if(r!==i)return r>i?1:-1}if(e.prerelease.length===0&&t.prerelease.length>0)return 1;if(e.prerelease.length>0&&t.prerelease.length===0)return-1;for(let n=0;n<Math.max(e.prerelease.length,t.prerelease.length);n+=1){let r=e.prerelease[n],i=t.prerelease[n];if(r===void 0)return-1;if(i===void 0)return 1;if(r!==i)return typeof r==`number`&&typeof i==`string`?-1:typeof r==`string`&&typeof i==`number`||r>i?1:-1}return 0}var Di=5e3,Oi=new WeakMap;function ki(e,t){if(t!==`/`&&t!==`/providers`&&t!==`/proxy`)return Promise.resolve();let n=Date.now(),r=Oi.get(e);if(r!==void 0){if(r>n)return Promise.resolve();Oi.delete(e)}return e.fetchQuery({queryKey:M.system.health,queryFn:e=>O(`/system/health`,{signal:w(e)}).then(oe),...j}).then(()=>{Oi.delete(e)}).catch(t=>{Te(t)||Oi.set(e,Date.now()+Di)})}function Ai(){return C({queryKey:M.session.current,queryFn:()=>De(),staleTime:6e4,gcTime:3e5,retry:!1,refetchOnWindowFocus:!1})}function ji(){return C({queryKey:M.system.health,queryFn:e=>O(`/system/health`,{signal:w(e)}).then(oe),...j,refetchInterval:A.status})}function Mi(){return C({queryKey:M.releases.githubLatest,queryFn:e=>O(`/updates/release`,{signal:w(e)}).then(pe),...j,staleTime:18e5,refetchInterval:18e5,retry:!1})}function Ni(e){return C({queryKey:M.usageAnalytics.summary(e),queryFn:t=>O(`/system/usage/summary?period=${encodeURIComponent(e)}`,{signal:w(t)}).then(ce),...j,refetchInterval:A.status})}function Pi(e){return C({queryKey:M.usageAnalytics.chart(e),queryFn:t=>O(`/system/usage/chart?period=${encodeURIComponent(e)}`,{signal:w(t)}).then(fe),...j,refetchInterval:A.status})}function Fi(e,t){return C({queryKey:M.usageAnalytics.by(e,t),queryFn:n=>O(`/system/usage/by-${t}?period=${encodeURIComponent(e)}`,{signal:w(n)}).then(se),...j,refetchInterval:A.status})}function Ii(e,t=50,n){let r=n==null?``:`&httpStatus=${encodeURIComponent(String(n))}`;return C({queryKey:M.usageAnalytics.requests(e,t,n),queryFn:n=>O(`/system/usage/requests?period=${encodeURIComponent(e)}&limit=${encodeURIComponent(String(t))}${r}`,{signal:w(n)}).then(le),...j,placeholderData:e=>e,refetchInterval:A.live})}function Li(e){return C({queryKey:M.usageAnalytics.requestDetail(e??`_`),queryFn:t=>{if(!e)throw{status:400,code:`invalid_request`,message:`Request is required`};return O(`/system/usage/requests/${encodeURIComponent(e)}`,{signal:w(t)}).then(ue)},enabled:e!==null,...j})}function Ri(e){return C({queryKey:M.audit.list(e??{}),queryFn:t=>{let n=new URLSearchParams;e?.action&&n.set(`action`,e.action),e?.actor&&n.set(`actor`,e.actor),e?.cursor&&n.set(`cursor`,e.cursor),e?.limit&&n.set(`limit`,String(e.limit));let r=n.toString()?`?${n.toString()}`:``;return O(`/audit${r}`,{signal:w(t)}).then(de)},...j})}function zi(){return C({queryKey:M.providers.all,queryFn:e=>O(`/providers`,{signal:w(e)}).then(he),...j,staleTime:6e4,gcTime:6e5,refetchInterval:A.catalog})}function Bi(e){return C({queryKey:M.providers.models(e),queryFn:t=>{if(!e)throw{status:400,code:`invalid_request`,message:`Provider is required`};return O(`/providers/${encodeURIComponent(e)}/models`,{signal:w(t)}).then(me)},...j,staleTime:3e5,gcTime:6e5,enabled:!!e})}function Vi(){let e=T();return N({mutationFn:({providerId:e,modelIds:t,wireFamily:n,metadata:r})=>O(`/providers/${encodeURIComponent(e)}/models`,{method:`POST`,body:JSON.stringify({modelIds:t,...n?{wireFamily:n}:{},...r?{metadata:r}:{}})}),onSuccess:async(t,n)=>{await e.invalidateQueries({queryKey:M.providers.models(n.providerId)}),S.success(`Models registered`,`${n.modelIds.length} model(s) added to ${n.providerId}`)},onError:e=>{S.error(`Failed to register models`,k(e))}})}function Hi(){let e=T();return N({mutationFn:({providerId:e,request:t})=>O(`/providers/${encodeURIComponent(e)}/models/probe`,{method:`POST`,body:JSON.stringify(t)}),onSettled:async(t,n,r)=>{await ea(e,r.providerId)}})}function Ui(){return N({mutationFn:e=>O(`/providers/connection-test`,{method:`POST`,body:JSON.stringify(e)})})}function Wi(){let e=T();return N({mutationFn:({providerId:e,request:t})=>O(`/providers/${encodeURIComponent(e)}/accounts/probe`,{method:`POST`,body:JSON.stringify(t)}),onSettled:async(t,n,r)=>{await ea(e,r.providerId)}})}function Gi(){let e=T();return N({mutationFn:({providerId:e,request:t})=>O(`/providers/${encodeURIComponent(e)}/models`,{method:`PATCH`,body:JSON.stringify(t)}),onSuccess:async(t,n)=>{await e.invalidateQueries({queryKey:M.providers.models(n.providerId)})}})}function Ki(){let e=T();return N({mutationFn:({providerId:e,modelId:t,route:n,metadata:r})=>O(`/providers/${encodeURIComponent(e)}/models`,{method:`PATCH`,body:JSON.stringify({modelId:t,route:n,enabled:!0,metadata:r})}),onSuccess:async(t,n)=>{await e.invalidateQueries({queryKey:M.providers.models(n.providerId)}),S.success(`Model updated`,`${n.modelId} limits and capabilities saved`)},onError:e=>{S.error(`Failed to update model`,k(e))}})}function qi(){let e=T();return N({mutationFn:({providerId:e,request:t})=>O(`/providers/${encodeURIComponent(e)}/models`,{method:`DELETE`,body:JSON.stringify(t)}),onSuccess:async(t,n)=>{await e.invalidateQueries({queryKey:M.providers.models(n.providerId)})}})}function Ji(e){return C({queryKey:M.providers.accounts(e),queryFn:t=>O(`/providers/${encodeURIComponent(e??``)}/accounts`,{signal:w(t)}),enabled:!!e,...j,staleTime:3e4,gcTime:6e5})}function Yi(){let e=T();return N({mutationFn:({providerId:e,request:t})=>O(`/providers/${encodeURIComponent(e)}/accounts`,{method:`POST`,body:JSON.stringify(t)}),onSuccess:async(t,n)=>{await Promise.all([e.invalidateQueries({queryKey:M.providers.accounts(n.providerId)}),e.invalidateQueries({queryKey:M.providers.all})])}})}function Xi(){let e=T();return N({mutationFn:({providerId:e,accounts:t})=>O(`/providers/${encodeURIComponent(e)}/accounts/batch`,{method:`POST`,body:JSON.stringify({accounts:t})}),onSuccess:async(t,n)=>{await Promise.all([e.invalidateQueries({queryKey:M.providers.accounts(n.providerId)}),e.invalidateQueries({queryKey:M.providers.all})])}})}function Zi(){let e=T();return N({mutationFn:({providerId:e,accountId:t,request:n})=>O(`/providers/${encodeURIComponent(e)}/accounts/${encodeURIComponent(t)}`,{method:`PATCH`,body:JSON.stringify(n)}),onSuccess:async(t,n)=>{await Promise.all([e.invalidateQueries({queryKey:M.providers.accounts(n.providerId)}),e.invalidateQueries({queryKey:M.providers.all})])}})}function Qi(e,t){return C({queryKey:M.providers.healthEvents(e,t),queryFn:n=>O(`/providers/${encodeURIComponent(e??``)}/accounts/${encodeURIComponent(t??``)}/health-events`,{signal:w(n)}),enabled:!!e&&!!t,...j,refetchInterval:A.status})}async function $i(e,t){await e.invalidateQueries({predicate:e=>{let n=e.queryKey;return n[0]===`console`&&n[1]===`providers`&&n[2]===t&&n[3]===`accounts`&&n[5]===`health-events`}})}async function ea(e,t){await Promise.all([e.invalidateQueries({queryKey:M.providers.accounts(t)}),$i(e,t),e.invalidateQueries({queryKey:M.providers.all})])}function ta(){let e=T();return N({mutationFn:({providerId:e,accountId:t})=>O(`/providers/${encodeURIComponent(e)}/accounts/${encodeURIComponent(t)}/recover`,{method:`POST`,body:`{}`}),onSuccess:async(t,n)=>{await Promise.all([e.invalidateQueries({queryKey:M.providers.accounts(n.providerId)}),e.invalidateQueries({queryKey:M.providers.healthEvents(n.providerId,n.accountId)}),e.invalidateQueries({queryKey:M.providers.all})]),S.success(`Account recovered`)},onError:e=>{S.error(`Could not recover the account.`,k(e))}})}function na(){return N({mutationFn:({providerId:e,accountIds:t})=>O(`/providers/${encodeURIComponent(e)}/accounts/export`,{method:`POST`,body:JSON.stringify({accountIds:t})})})}function ra(){return N({mutationFn:({providerId:e,accountLabel:t,parameters:n})=>O(`/providers/${encodeURIComponent(e)}/oauth/authorize`,{method:`POST`,body:JSON.stringify({...t?{accountLabel:t}:{},...n&&Object.keys(n).length>0?{parameters:n}:{}})})})}function ia(){let e=T();return N({mutationFn:({providerId:e,code:t,state:n})=>O(`/providers/${encodeURIComponent(e)}/oauth/callback?${new URLSearchParams({code:t,state:n}).toString()}`),onSuccess:async(t,n)=>{await ea(e,n.providerId)}})}function aa(){return N({mutationFn:({providerId:e,accountLabel:t,parameters:n})=>O(`/providers/${encodeURIComponent(e)}/oauth/device/start`,{method:`POST`,body:JSON.stringify({...t?{accountLabel:t}:{},...n&&Object.keys(n).length>0?{parameters:n}:{}})})})}function oa(){let e=T();return N({mutationFn:({providerId:e,credential:t,fields:n,accountLabel:r})=>O(`/providers/${encodeURIComponent(e)}/oauth/import`,{method:`POST`,body:JSON.stringify({credential:t,...n&&Object.keys(n).length>0?{fields:n}:{},...r?{accountLabel:r}:{}})}),onSuccess:async(t,n)=>{await ea(e,n.providerId),await e.invalidateQueries({queryKey:M.quota.all})}})}function sa(){let e=T();return N({mutationFn:({providerId:e,deviceAuthId:t})=>O(`/providers/${encodeURIComponent(e)}/oauth/device/poll`,{method:`POST`,body:JSON.stringify({deviceAuthId:t})}),onSuccess:async(t,n)=>{t.status===`complete`&&await Promise.all([e.invalidateQueries({queryKey:M.providers.accounts(n.providerId)}),e.invalidateQueries({queryKey:M.providers.healthEvents(n.providerId,t.accountId)}),e.invalidateQueries({queryKey:M.quota.all}),ea(e,n.providerId)])}})}function ca(){let e=T();return N({mutationFn:e=>O(`/providers`,{method:`POST`,body:JSON.stringify(e)}),onSuccess:async t=>{await Promise.all([e.invalidateQueries({queryKey:M.providers.all}),e.invalidateQueries({queryKey:M.modelRouting.all})]),S.success(`Provider created`,t.label??t.providerId)},onError:e=>{S.error(`Failed to create provider`,k(e))}})}function la(){let e=T();return N({mutationFn:({providerId:e,enabled:t})=>O(`/providers/platform/global/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify({enabled:t})}),onSuccess:async(t,{providerId:n})=>{await Promise.all([e.invalidateQueries({queryKey:M.providers.all}),e.invalidateQueries({queryKey:M.providers.detail(n)})])}})}function ua(e={}){let t=T();return N({mutationFn:e=>O(`/providers/${encodeURIComponent(e)}/models/sync`,{method:`POST`,body:`{}`}),onSuccess:async(n,r)=>{await t.invalidateQueries({queryKey:M.providers.models(r)}),e.silent||S.success(`Models fetched`,n.synced>0?`${n.synced} new model${n.synced===1?``:`s`} added`:`No new models found`)},onError:t=>{e.silent||S.error(`Failed to fetch models`,k(t))}})}function da(){let e=T();return N({mutationFn:e=>O(`/providers/${encodeURIComponent(e)}`,{method:`DELETE`}),onSuccess:async(t,n)=>{await Promise.all([e.invalidateQueries({queryKey:M.providers.all}),e.invalidateQueries({queryKey:M.quota.all}),e.invalidateQueries({queryKey:M.modelRouting.all})]),S.success(`Provider deleted`,n)},onError:e=>{S.error(`Failed to delete provider`,k(e))}})}var fa={name:`cartethyia`,version:`2.4.4`,description:`A powerful, self-hosted reverse proxy for OpenAI- and Anthropic-compatible AI clients, powered by native Bun and Elysia. It serves both protocols from a single server, routes every model across any configured provider, and translates requests and responses in real time — streaming and prompt caching included. Underneath it runs a full delivery engine: per-account health tracking, quota and cooldown enforcement, automatic failover across pools and providers, usage accounting, and telemetry. Point OpenCode, Cline, Claude Code, Codex, or any compatible client at Cartethyia and it keeps its native protocol while the gateway absorbs every provider-specific difference behind it. Runs on embedded SQLite or external PostgreSQL with optional Redis coordination, ships as a global CLI with a system-tray console, and needs only Bun 1.4+ alongside Node.js/npm.`,license:`GPL-3.0-only`,type:`module`,packageManager:`bun@1.4.0`,repository:{type:`git`,url:`git+https://github.com/risunCode/Cartethyia.git`},homepage:`https://github.com/risunCode/Cartethyia#readme`,bugs:{url:`https://github.com/risunCode/Cartethyia/issues`},keywords:[`ai`,`gateway`,`llm`,`bun`,`self-hosted`],bin:{cartethyia:`scripts/cli/cli-launcher.cjs`,carte:`scripts/cli/carte-launcher.cjs`},files:[`scripts/cli/`,`scripts/operations/probe-egress.ts`,`scripts/operations/restart.ts`,`scripts/shared/env.ts`,`src/`,`migrations/`,`dist/dashboard/`,`tray-assets/`,`.env.example`,`README.md`],workspaces:[`dashboard`],engines:{bun:`>=1.4.0`},scripts:{dev:`bun run dev:stack`,"dev:watch":`bun run scripts/dev/supervisor.ts`,test:`bun run scripts/test/run.ts`,build:`bun run scripts/build/build.ts`,prepack:`bun run dashboard:build`,setup:`bun run scripts/cli/setup.ts`,start:`bun run scripts/operations/start-production.ts`,doctor:`bun run scripts/cli/doctor.ts`,"probe:egress":`bun run scripts/operations/probe-egress.ts`,restart:`bun run scripts/operations/restart.ts`,"build:aot":`bun run scripts/build/aot.ts`,"dev:stack":`concurrently -n BACKEND,DASHBOARD -c cyan,magenta --kill-others-on-fail "bun run dev:backend" "bun run dashboard:dev"`,typecheck:`tsc --noEmit`,"test:watch":`bun run scripts/test/run.ts --watch`,"test-db:up":`docker compose -f docker-compose.test.yml up -d --wait postgres-test`,"dev:backend":`bun run --hot src/main.ts`,"dev:console-auth":`bun run scripts/dev/console-session.ts`,"dev:visual-baseline":`bun run scripts/dev/visual-baseline.ts`,"build:binary":`bun run scripts/build/binary.ts`,"test:backend":`bun run scripts/test/run.ts --scope backend`,"test-db:down":`docker compose -f docker-compose.test.yml down`,"dashboard:dev":`bun run --cwd dashboard dev`,"test-db:check":`bun run scripts/test/db-check.ts`,"dashboard:test":`bun run scripts/test/run.ts --scope dashboard`,"test-db:reset":`docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d --wait postgres-test`,"dashboard:build":`bun run --cwd dashboard build`,"dashboard:typecheck":`bun run --cwd dashboard typecheck`},dependencies:{"@bufbuild/protobuf":`^2.14.1`,"@electric-sql/pglite":`^0.5.8`,"drizzle-orm":`0.45.2`,elysia:`^2.0.0-beta.16`,enquirer:`^2.4.1`,"exact-mirror":`^1.2.6`,impit:`^0.14.5`,ioredis:`6.0.0`,pg:`8.23.0`,pino:`^10.3.1`,"pino-pretty":`^13.1.3`,"socks-proxy-agent":`^10.1.0`,systray2:`2.1.4`,typebox:`1.3.27`,undici:`^8.10.2`,ws:`8.22.0`},devDependencies:{"@types/pg":`8.11.10`,"@types/ws":`8.18.1`,"bun-types":`1.4.0`,concurrently:`^10.0.5`,typescript:`5.9.2`}}.version,pa=`v${fa.replace(/\.0$/,``)} (Zhezhi)`,ma=[{label:`Main`,items:[{label:`Overview`,path:`/`,icon:Ie},{label:`Usage`,path:`/usage`,icon:u},{label:`Providers`,path:`/providers`,icon:Ue},{label:`Model Lab`,path:`/model-lab`,icon:_}]},{label:`Control`,items:[{label:`Combos & Routes`,path:`/combos`,icon:Fe},{label:`Quota Management`,path:`/quota`,icon:Ge},{label:`Proxy & Requests`,path:`/proxy`,icon:d},{label:`CLI Tools`,path:`/cli-tools`,icon:p}]},{label:`System`,items:[{label:`Customization`,path:`/customization`,icon:Be},{label:`Console Log`,path:`/console-log`,icon:He},{label:`Settings`,path:`/settings`,icon:We}]}],ha={"/":{title:`Overview`,sub:`Gateway health, capacity, and live metrics`,icon:Ie},"/usage":{title:`Usage & Metrics`,sub:`Token economics, requests, and cost breakdown`,icon:u},"/providers":{title:`Provider Catalog`,sub:`Upstream credentials, models, and latency`,icon:Ue},"/combos":{title:`Combos & Routing`,sub:`Failover policies, model aliases, and weighted routes`,icon:Fe},"/quota":{title:`Quota Management`,sub:`Rate limits, leases, and tenant quotas`,icon:Ge},"/proxy":{title:`Proxy & Requests`,sub:`Network pools, SOCKS5/HTTP egress, and dispatch`,icon:d},"/customization":{title:`Customization`,sub:`Background, transparency, and blur`,icon:Be},"/model-lab":{title:`Model Lab`,sub:`Chat a routed model without leaving the console`,icon:_},"/console-log":{title:`Console Log`,sub:`Live server logs and audit trail`,icon:He},"/cli-tools":{title:`CLI Tools`,sub:`Claude Code CLI, OpenCode, and local developer tool integrations`,icon:p},"/settings":{title:`Settings`,sub:`Account security, runtime preferences, and state recovery`,icon:We}},ga={title:`Console`,sub:`Cartethyia AI Gateway Administration`,icon:Ie};function _a(e,t){let n=/^\/providers\/([^/]+)\/?$/.exec(e);if(n?.[1]){let e=t.find(e=>e.providerId===n[1]);return{title:e?.label||e?.displayName||n[1],sub:`Routing, accounts, models, and health`,icon:Ue}}let r=/^\/cli-tools\/([^/]+)\/?$/.exec(e);return r?.[1]?{title:`CLI Tool`,sub:`${r[1]} — mappings, endpoints, and downloadable config`,icon:p}:ha[e]??ga}function va(){try{return ji()}catch{return{data:void 0,isError:!1,isFetching:!1,isPending:!1}}}function ya(){let[e,t]=(0,P.useState)(()=>h()),n=ne(e);return(0,P.useEffect)(()=>{let e=()=>t(h());return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[]),(0,P.useEffect)(()=>{ee(e)},[e]),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>{let e=n?`light`:`dark`;t(e),y(e)},"aria-label":`Toggle theme`,"aria-pressed":n,className:`topbar-icon-button`,title:n?`Switch to light mode`:`Switch to dark mode`,children:(0,Z.jsx)(`span`,{className:`grid place-items-center`,children:n?(0,Z.jsx)(g,{size:17}):(0,Z.jsx)(te,{size:17})},n?`sun`:`moon`)})}var ba=new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hourCycle:`h23`}),xa=new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hourCycle:`h23`,timeZone:`UTC`});function Sa(e){if(!Number.isFinite(e)||e<0)return`Unavailable`;let t=Math.floor(e);if(t<60)return`${t}s`;let n=Math.floor(t/60),r=n%60,i=Math.floor(n/60),a=i%24,o=Math.floor(i/24);return o>0?`${o}d ${a}h ${r}m`:i>0?`${i}h ${r}m`:`${n}m`}function Ca(e){if(!Number.isFinite(e)||e<0)return`Unavailable`;let t=e>=1024**3?{divisor:1024**3,label:`GiB`}:{divisor:1024**2,label:`MiB`};return`${(e/t.divisor).toFixed(1)} ${t.label}`}function wa({icon:e,label:t,value:n,detail:r,title:i}){return(0,Z.jsxs)(`div`,{className:`min-w-0 rounded-control border border-inner-border bg-surface-2 p-3`,title:i,children:[(0,Z.jsxs)(`dt`,{className:`flex items-center gap-2 text-micro font-medium text-text-tertiary`,children:[(0,Z.jsx)(e,{size:13,strokeWidth:1.8,className:`shrink-0`,"aria-hidden":`true`}),(0,Z.jsx)(`span`,{children:t})]}),(0,Z.jsx)(`dd`,{className:`mt-1 truncate font-mono text-caption font-semibold tabular-nums text-text-primary`,children:n}),r?(0,Z.jsx)(`dd`,{className:`mt-1 text-micro text-text-secondary`,children:r}):null]})}function Ta({health:e}){let[t,n]=(0,P.useState)(!1),[r,i]=(0,P.useState)(()=>new Date),a=(0,P.useRef)(null),s=(0,P.useRef)(null);(0,P.useEffect)(()=>{if(!t)return;i(new Date);let e=window.setInterval(()=>i(new Date),1e3);return()=>window.clearInterval(e)},[t]),(0,P.useEffect)(()=>{if(!t)return;let e=e=>{let t=e.target;s.current&&!s.current.contains(t)&&a.current&&!a.current.contains(t)&&n(!1)},r=e=>{e.key===`Escape`&&n(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,r),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,r)}},[t]);let c=e?e.status===`healthy`?`All systems operational`:e.status===`degraded`?`Gateway degraded`:`Gateway unhealthy`:`System health unavailable`,l=e?e.status===`healthy`?`Postgres & Redis admission connected.`:e.status===`degraded`?`Check connection logs.`:`Gateway is reporting an unhealthy status.`:`Live gateway metrics are not available.`,u=e&&[Number.isFinite(e.memory_percent)?`${e.memory_percent.toFixed(1)}% of system RAM`:void 0,e.database_in_process?`In-process DB included`:void 0].filter(Boolean).join(` · `)||void 0,d=e?Number.isFinite(e.cpu_cores)&&e.cpu_cores>0?`1-min load · ${e.cpu_cores} cores`:`Normalized 1-min load`:void 0;return(0,Z.jsxs)(`div`,{className:`relative`,children:[(0,Z.jsx)(`button`,{ref:a,type:`button`,className:`topbar-icon-button`,"aria-label":`Notifications`,"aria-expanded":t,"aria-haspopup":`dialog`,onClick:()=>n(e=>!e),children:(0,Z.jsx)(Pe,{size:17})}),t?(0,Br.createPortal)((0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{"aria-hidden":`true`,className:`fixed inset-0 z-floating bg-overlay backdrop-blur-dialog`,onClick:()=>n(!1)}),(0,Z.jsxs)(`div`,{ref:s,role:`dialog`,"aria-label":`Notifications`,className:`app-topbar-popover popout-enter glass rounded-sidebar border border-inner-border bg-popover-bg p-5 shadow-popout z-popover`,children:[(0,Z.jsxs)(`div`,{className:`mb-3 flex shrink-0 items-center justify-between`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-3 font-bold text-body-lg`,children:[(0,Z.jsx)(`span`,{className:`w-13 h-13 rounded-pill bg-accent-soft text-accent grid place-items-center`,children:(0,Z.jsx)(Pe,{size:13})}),(0,Z.jsx)(`span`,{children:`Notifications`})]}),(0,Z.jsx)(`button`,{type:`button`,"aria-label":`Close notifications`,onClick:()=>n(!1),className:`cursor-pointer border-none bg-transparent p-2 text-caption text-text-tertiary`,children:(0,Z.jsx)(o,{size:14})})]}),(0,Z.jsxs)(`div`,{className:`scroll-region min-h-0 flex-1 flex flex-col gap-3`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 rounded-card border border-inner-border bg-surface-2 p-4`,children:[(0,Z.jsx)(`span`,{className:`mt-0.5 grid w-12 h-12 shrink-0 place-items-center rounded-control bg-surface-1 text-text-secondary`,children:(0,Z.jsx)(Ue,{size:16,"aria-hidden":`true`})}),(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`p`,{className:`font-semibold text-caption`,children:c}),(0,Z.jsx)(`p`,{className:`text-badge text-text-secondary mt-1`,children:l})]})]}),(0,Z.jsxs)(`dl`,{"aria-label":`Runtime metrics`,className:`grid grid-cols-2 gap-2`,children:[(0,Z.jsx)(wa,{icon:m,label:`Local time`,value:ba.format(r)}),(0,Z.jsx)(wa,{icon:v,label:`UTC`,value:xa.format(r)}),(0,Z.jsx)(wa,{icon:Ke,label:`Uptime`,value:e?Sa(e.uptime_seconds):`Unavailable`,detail:e&&Number.isFinite(e.uptime_seconds)&&e.uptime_seconds>=0?`Gateway process running`:void 0}),(0,Z.jsx)(wa,{icon:Re,label:`Process RSS`,value:e?Ca(e.memory_bytes):`Unavailable`,detail:u,title:`Process resident set size; percentage is share of system RAM.`}),(0,Z.jsx)(wa,{icon:Fe,label:`CPU load`,value:e&&Number.isFinite(e.cpu_percent)?`${e.cpu_percent.toFixed(1)}%`:`Unavailable`,detail:d,title:`One-minute load average normalized by the number of CPU cores.`}),(0,Z.jsx)(wa,{icon:ze,label:`Runtime`,value:e?.platform?.trim()||`Unavailable`,detail:e?.platform?.trim()?`Gateway host platform`:void 0,title:e?.platform?.trim()||`Runtime platform unavailable`})]}),(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 rounded-card border border-inner-border bg-surface-2 p-4`,children:[(0,Z.jsx)(`span`,{className:`mt-0.5 grid w-12 h-12 shrink-0 place-items-center rounded-control bg-surface-1 text-text-secondary`,children:(0,Z.jsx)(Ve,{size:16,"aria-hidden":`true`})}),(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`p`,{className:`font-semibold text-caption`,children:pa}),(0,Z.jsx)(`p`,{className:`text-badge text-text-secondary mt-1`,children:`High-performance AI Gateway & Protocol Orchestrator.`})]})]})]})]})]}),document.body):null]})}function Ea({group:e,pathname:t,onIntent:n}){return(0,Z.jsxs)(`div`,{className:`nav-group-section`,children:[(0,Z.jsx)(`p`,{className:`nav-group-title`,children:e.label}),(0,Z.jsx)(Da,{items:e.items,pathname:t,onIntent:n})]})}function Da({items:e,pathname:t,onIntent:n}){let r=(0,P.useRef)(null),[i,a]=(0,P.useState)({top:0,height:0,opacity:0});return(0,P.useLayoutEffect)(()=>{let e=r.current;if(!e)return;let t=e.querySelector(`[data-active="true"]`);if(!t){a(e=>({...e,opacity:0}));return}let n=e.getBoundingClientRect(),i=t.getBoundingClientRect();a({top:i.top-n.top,height:i.height,opacity:1})},[t,e]),(0,Z.jsxs)(`div`,{ref:r,className:`nav-items-container`,children:[(0,Z.jsx)(`div`,{className:`sidebar-active-indicator`,style:{transform:`translateY(${i.top}px)`,height:`${i.height}px`,opacity:i.opacity},"aria-hidden":`true`}),e.map(e=>{let r=e.path===`/`?t===`/`:t===e.path||t.startsWith(`${e.path}/`);return(0,Z.jsxs)(kr,{to:e.path,end:e.path===`/`,"data-active":r?`true`:void 0,className:`nav-link-item ${r?`active`:``}`,onMouseEnter:()=>n(e.path),onFocus:()=>n(e.path),children:[(0,Z.jsx)(e.icon,{size:17,className:`nav-link-icon`}),(0,Z.jsx)(`span`,{children:e.label}),e.badge?(0,Z.jsx)(`span`,{className:`nav-link-badge`,children:e.badge}):null]},e.path)})]})}function Oa({user:e,children:t}){let n=K(),r=G(),[i,a]=(0,P.useState)(!1),[o,c]=(0,P.useState)(!1),[u,d]=(0,P.useState)(!1),p=va(),m=Mi(),h=p.data?.version??fa,g=m.data?.tag_name?.replace(/^v/,``),_=Ti(h,g),v=zi(),y=e=>{ki(Q,e)};(0,P.useEffect)(()=>{a(!1)},[r.pathname]),(0,P.useEffect)(()=>{let e=()=>a(!1);return window.addEventListener(`cartethyia:overlay-open`,e),()=>window.removeEventListener(`cartethyia:overlay-open`,e)},[]),(0,P.useLayoutEffect)(()=>{window.scrollTo(0,0)},[r.pathname]);let b=async()=>{c(!0);try{await O(`/auth/logout`,{method:`POST`})}finally{Q.clear(),n(`/login`,{replace:!0})}};(0,P.useEffect)(()=>(document.documentElement.dataset.glassEnabled=`true`,pi(fi()),()=>{delete document.documentElement.dataset.glassEnabled}),[]);let x=_a(r.pathname,v.data??[]);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:`app-bg`,"aria-hidden":`true`}),(0,Z.jsx)(`div`,{className:`app-shell-frame`,children:(0,Z.jsxs)(`div`,{className:`app-shell-root`,"data-drawer":i?`open`:void 0,"data-page-scroll":r.pathname===`/console-log`?`contained`:void 0,onClick:e=>{i&&e.target.closest(`.app-main-column`)&&a(!1)},children:[(0,Z.jsxs)(`aside`,{className:`glass app-sidebar ${i?`is-open`:``}`,"aria-label":`Dashboard navigation`,children:[(0,Z.jsxs)(`div`,{className:`brand-header`,children:[(0,Z.jsx)(`div`,{"aria-hidden":`true`,className:`brand-icon overflow-hidden p-0`,children:(0,Z.jsx)(`img`,{src:`/assets/brand/sidebar_ico.jpg`,alt:`Cartethyia`,onError:e=>{e.currentTarget.onerror=null,e.currentTarget.src=`/assets/brand/sidebar_ico.jpg`},className:`w-full h-full object-cover block`})}),(0,Z.jsxs)(`div`,{className:`brand-meta`,children:[(0,Z.jsx)(`div`,{className:`brand-name`,children:(0,Z.jsx)(`span`,{children:`Cartethyia`})}),(0,Z.jsxs)(`div`,{className:`brand-version-badge`,children:[(0,Z.jsx)(`a`,{href:s,target:`_blank`,rel:`noreferrer`,className:`brand-version-link`,children:pa}),_?(0,Z.jsxs)(`a`,{href:m.data?.html_url??l,target:`_blank`,rel:`noreferrer`,className:`brand-update-badge`,title:g===void 0?`A newer Cartethyia release is available on GitHub`:`Update available on GitHub: v${g}`,children:[(0,Z.jsx)(Ve,{size:9,className:`shrink-0`,"aria-hidden":`true`}),`update`]}):null]})]})]}),(0,Z.jsx)(`nav`,{className:`flex-1 overflow-y-auto py-2 px-0`,children:ma.map(e=>(0,Z.jsx)(Ea,{group:e,pathname:r.pathname,onIntent:y},e.label))}),(0,Z.jsx)(`div`,{className:`sidebar-user-card`,children:(0,Z.jsxs)(`div`,{className:`user-card-content`,children:[(0,Z.jsx)(`div`,{className:`user-avatar`,"aria-hidden":`true`,children:(e.displayName??e.email).slice(0,2).toUpperCase()}),(0,Z.jsxs)(`div`,{className:`user-info`,children:[(0,Z.jsx)(`p`,{className:`user-name`,children:e.displayName||`Admin`}),(0,Z.jsx)(`p`,{className:`user-role`,children:e.email})]}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>d(!0),disabled:o,"aria-label":`Sign out`,title:`Sign out`,className:`topbar-icon-button w-15 h-15 rounded-inset`,children:(0,Z.jsx)(Le,{size:14})})]})})]}),(0,Z.jsxs)(`div`,{className:`app-main-column`,children:[(0,Z.jsx)(Si,{}),(0,Z.jsxs)(`header`,{className:`glass app-topbar`,children:[(0,Z.jsx)(`button`,{type:`button`,"aria-label":`Open navigation`,className:`topbar-menu-btn`,onClick:()=>a(!0),children:(0,Z.jsx)(f,{size:18})}),(0,Z.jsxs)(`div`,{className:`topbar-meta`,children:[(0,Z.jsxs)(`h1`,{className:`topbar-title`,children:[(0,Z.jsx)(x.icon,{className:`topbar-title-icon`,size:16,"aria-hidden":`true`}),x.title]}),(0,Z.jsx)(`p`,{className:`topbar-subtitle`,children:x.sub})]}),(0,Z.jsxs)(`div`,{className:`topbar-actions`,children:[(0,Z.jsx)(ya,{}),(0,Z.jsx)(Ta,{health:p.data})]})]}),(0,Z.jsx)(`main`,{className:`route-enter w-full min-w-0`,children:t})]})]})}),(0,Z.jsx)(Ci,{open:u,onClose:()=>d(!1),onConfirm:b,title:`Sign out?`,message:`You will need to sign in again to open the console.`,confirmLabel:`Sign out`,danger:!0})]})}var ka=class extends P.Component{state={error:null};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error(`[console] route render failed:`,e,t.componentStack)}componentDidUpdate(e){e.resetKey!==this.props.resetKey&&this.state.error!==null&&this.setState({error:null})}render(){return this.state.error===null?this.props.children:(0,Z.jsx)(`main`,{className:`auth-viewport`,children:(0,Z.jsxs)(`div`,{className:`card-solid auth-window border border-red-soft`,children:[(0,Z.jsxs)(`div`,{className:`auth-header`,children:[(0,Z.jsx)(`h1`,{className:`auth-title`,children:`Console view failed`}),(0,Z.jsx)(`p`,{className:`auth-desc`,children:`This view could not be rendered.`})]}),(0,Z.jsxs)(`div`,{className:`rounded-panel border border-inner-border bg-surface-2 p-7 leading-normal text-caption text-text-secondary`,children:[(0,Z.jsx)(`strong`,{className:`block text-text-primary mb-2`,children:`Rendering error`}),(0,Z.jsx)(`span`,{className:`select-text break-words`,children:this.state.error.message})]}),(0,Z.jsx)(`button`,{type:`button`,className:`btn btn-primary inline-flex w-full items-center justify-center rounded-control bg-accent font-semibold text-accent-foreground mt-3 h-20 text-caption`,onClick:()=>window.location.reload(),children:`Reload console`})]})})}},Aa=3e5;function ja(e){return`cartethyia:lazy-retry:${e}`}function Ma(e,t){if(e===null)return!0;let n=Number(e);return!Number.isFinite(n)||t-n>Aa}function Na(){try{return typeof sessionStorage>`u`?void 0:sessionStorage}catch{return}}function $(e,t,n={}){let r=n.storage??Na(),i=n.reload??(()=>{window.location.reload()}),a=n.now??(()=>Date.now()),o=ja(t);return(0,P.lazy)(async()=>{try{let t=await e();try{r?.removeItem(o)}catch{}return t}catch(e){let t=null;try{t=r?.getItem(o)??null}catch{t=null}if(Ma(t,a())){try{r?.setItem(o,String(a()))}catch{}return i(),new Promise(()=>{})}throw e}})}function Pa(){return(0,Z.jsxs)(`div`,{role:`status`,"aria-label":`Loading console`,className:`min-h-dvh flex flex-col items-center justify-center gap-6 text-text-tertiary`,children:[(0,Z.jsx)(b,{size:22,className:`animate-spin`,"aria-hidden":`true`}),(0,Z.jsx)(`p`,{className:`text-caption`,children:`Loading console…`})]})}var Fa=$(()=>i(()=>import(`./LoginPage-CeqROJrT.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),`login`),Ia=$(()=>i(()=>import(`./SetupPage-BPDNo3Ek.js`),__vite__mapDeps([10,1,2,3,4,6,7,8,9,11,12])),`setup`),La=$(()=>i(()=>import(`./BannedPage-TDue2X0p.js`),__vite__mapDeps([13,1])),`banned`),Ra=$(()=>i(()=>import(`./OverviewPage-CRXSAITY.js`),__vite__mapDeps([14,1,15,16,6,17,18,19,20,21,3,4,2,22,23,24,25,26,8,9,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,7,47,48,49,50,51,52,11,53])),`overview`),za=$(()=>i(()=>import(`./UsagePage-B6LA4ewF.js`),__vite__mapDeps([54,1,55,56,3,4,2,33,15,16,6,17,18,20,21,57,58,25,26,8,9,59,28,5,37,60,61,62,43,44,45,63,24,50,11,64,65,66,67])),`usage`),Ba=$(()=>i(()=>import(`./ProviderDetailPage-cNAD_6uN.js`),__vite__mapDeps([68,1,55,69,70,19,20,21,3,4,2,71,57,58,25,26,8,9,27,59,28,29,72,32,33,34,35,73,36,74,38,42,61,16,6,43,44,45,63,46,7,48,49,24,50,53,75,76,17,18,77,11,78,64,65])),`provider-detail`),Va=$(()=>i(()=>import(`./ProvidersPage-Cv5tdxlx.js`),__vite__mapDeps([79,1,21,3,4,20,2,8,9,28,32,33,35,42,6,80,43,46,7,48,49,24,50,75,78])),`providers`),Ha=$(()=>i(()=>import(`./CombosPage-B7ETkfVH.js`),__vite__mapDeps([81,1,3,4,82,21,20,2,23,24,25,28,72,32,33,34,35,37,38,42,6,80,43,31,7,8,9,47,16,45,46,48,50,75,76,17,18,64])),`combos`),Ua=$(()=>i(()=>import(`./QuotaPage-IYQOOHR4.js`),__vite__mapDeps([83,1,55,20,21,3,4,2,22,8,28,32,33,36,74,84,42,6,43,46,48,49,24,50,11,53,77,16,17,18])),`quota`),Wa=$(()=>i(()=>import(`./ProxyPage-CWvMfzjj.js`),__vite__mapDeps([85,1,55,21,3,4,20,2,26,8,9,27,28,32,33,34,35,73,74,39,42,16,6,17,18,43,44,63,46,7,49,24,50,11,66,67])),`proxy`),Ga=$(()=>i(()=>import(`./SettingsPage-YxRml8AT.js`),__vite__mapDeps([86,1,21,3,4,20,2,26,9,28,32,33,40,16,6,17,18,42,43,44,7,8,49,24,65,12])),`settings`),Ka=$(()=>i(()=>import(`./CliToolsPage-BFuQBKez.js`),__vite__mapDeps([87,1,55,28,2,3,4,43,46,24,50,52,16,6,17,18,88,11])),`cli-tools`),qa=$(()=>i(()=>import(`./CliToolDetailPage-qaHXuiI5.js`),__vite__mapDeps([89,1,69,21,3,4,20,2,57,26,28,37,38,6,43,44,46,7,8,9,47,32,33,16,45,48,49,24,50,51,17,18,52,88])),`cli-tool-detail`),Ja=$(()=>i(()=>import(`./ConsoleLogPage-vkZBxMVo.js`),__vite__mapDeps([90,1,2,3,4,28,36,38,39,42,6,43,63,67,46,7,8,9,11])),`console-log`),Ya=$(()=>i(()=>import(`./CustomizationPage-BhglcqyR.js`),__vite__mapDeps([91,1,2,3,4,59,72,74,43,49,24,50])),`customization`),Xa=$(()=>i(()=>import(`./StudioPage-BE5DJONZ.js`),__vite__mapDeps([92,1,3,4,56,2,33,70,20,21,71,25,26,27,93,32,34,74,84,61,43,7,8,9,47,37,38,16,6,45,46,48,51,17,18])),`studio`);function Za(){let e=K(),t=G();return(0,P.useEffect)(()=>(Oe(n=>{if(Q.clear(),n===`banned`){e(`/banned`,{replace:!0});return}e(`/login?returnTo=${encodeURIComponent(t.pathname)}`,{replace:!0})}),()=>Oe(void 0)),[e,t.pathname]),null}function Qa(){let e=G();return(0,Z.jsx)(ka,{resetKey:`${e.pathname}${e.search}`,children:(0,Z.jsx)(P.Suspense,{fallback:(0,Z.jsx)(Pa,{}),children:(0,Z.jsxs)(Vn,{children:[(0,Z.jsx)(q,{path:`/login`,element:(0,Z.jsx)(Fa,{})}),(0,Z.jsx)(q,{path:`/setup`,element:(0,Z.jsx)(Ia,{})}),(0,Z.jsx)(q,{path:`/banned`,element:(0,Z.jsx)(La,{})}),(0,Z.jsx)(q,{path:`/*`,element:(0,Z.jsx)($a,{})})]})})})}function $a(){let[e,t]=(0,P.useState)({kind:`loading`}),n=G(),r=K(),[i]=(0,P.useState)(()=>n.pathname);return(0,P.useEffect)(()=>{let e=new AbortController;return Q.fetchQuery({queryKey:M.session.current,queryFn:()=>De(),staleTime:6e4}).then(n=>{if(!e.signal.aborted){if(n){Q.setQueryData(M.session.current,n),t({kind:`ready`,user:n}),n.isFirstBoot&&i!==`/setup`&&r(`/setup`,{replace:!0});return}Q.removeQueries({queryKey:M.session.current}),O(`/auth/first-boot`,{signal:e.signal}).then(n=>{e.signal.aborted||t({kind:`unauthenticated`,needsSetup:n.requires_setup})}).catch(()=>{e.signal.aborted||t({kind:`unauthenticated`,needsSetup:!1})})}}).catch(n=>{e.signal.aborted||(typeof n==`object`&&n&&`status`in n&&n.status===403?t({kind:`blocked`}):t({kind:`unauthenticated`,needsSetup:!1}))}),()=>e.abort()},[i,r]),e.kind===`loading`?null:e.kind===`blocked`?(0,Z.jsx)(zn,{to:`/banned`,replace:!0}):e.kind===`unauthenticated`?(0,Z.jsx)(zn,{to:e.needsSetup?`/setup`:`/login?returnTo=${encodeURIComponent(n.pathname)}`,replace:!0}):(0,Z.jsx)(Oa,{user:e.user,children:(0,Z.jsx)(ka,{resetKey:n.pathname,children:(0,Z.jsxs)(Vn,{children:[(0,Z.jsx)(q,{path:`/`,element:(0,Z.jsx)(Ra,{})}),(0,Z.jsx)(q,{path:`/usage`,element:(0,Z.jsx)(za,{})}),(0,Z.jsx)(q,{path:`/providers`,element:(0,Z.jsx)(Va,{})}),(0,Z.jsx)(q,{path:`/providers/:providerId`,element:(0,Z.jsx)(Ba,{})}),(0,Z.jsx)(q,{path:`/combos`,element:(0,Z.jsx)(Ha,{})}),(0,Z.jsx)(q,{path:`/quota`,element:(0,Z.jsx)(Ua,{})}),(0,Z.jsx)(q,{path:`/proxy`,element:(0,Z.jsx)(Wa,{})}),(0,Z.jsx)(q,{path:`/console-log`,element:(0,Z.jsx)(Ja,{})}),(0,Z.jsx)(q,{path:`/customization`,element:(0,Z.jsx)(Ya,{})}),(0,Z.jsx)(q,{path:`/model-lab`,element:(0,Z.jsx)(Xa,{})}),(0,Z.jsx)(q,{path:`/cli-tools`,element:(0,Z.jsx)(Ka,{})}),(0,Z.jsx)(q,{path:`/cli-tools/:toolId`,element:(0,Z.jsx)(qa,{})}),(0,Z.jsx)(q,{path:`/settings`,element:(0,Z.jsx)(Ga,{})}),(0,Z.jsx)(q,{path:`*`,element:(0,Z.jsx)(zn,{to:`/`,replace:!0})})]})})})}function eo(){return(0,Z.jsx)(ae,{client:Q,children:(0,Z.jsxs)(Dr,{basename:`/console`,children:[(0,Z.jsx)(Za,{}),(0,Z.jsx)(Qa,{}),(0,Z.jsx)(re,{position:`top-right`,offset:{top:`6rem`,right:`1rem`},mobileOffset:{top:`6rem`,left:`1rem`,right:`1rem`},visibleToasts:2,richColors:!0,duration:5e3,toastOptions:{className:`toast-surface select-text`,descriptionClassName:`select-text`,classNames:{title:`select-text`},style:{background:`var(--glass-bg-2)`,border:`1px solid var(--glass-border-2)`,color:`var(--text-primary)`,fontSize:`12.5px`,userSelect:`text`},actionButtonStyle:{background:`var(--accent)`,color:`var(--accent-foreground)`},cancelButtonStyle:{background:`var(--surface-muted)`,color:`var(--text-primary)`}}})]})})}function to(e){document.title=`Cartethyia Console`,(0,Vr.createRoot)(e).render((0,Z.jsx)(P.StrictMode,{children:(0,Z.jsx)(eo,{})}))}export{Ge as $,Pi as A,ti as B,Ui as C,Ri as D,Zi as E,Ci as F,Yr as G,Gr as H,_i as I,Or as J,ei as K,Y as L,Ii as M,Ni as N,Ai as O,Q as P,Ke as Q,hi as R,ua as S,Ki as T,Zr as U,ni as V,ii as W,_n as X,K as Y,Pr as Z,ta as _,Yi as a,ra as b,qi as c,sa as d,Ue as et,Wi as f,zi as g,Bi as h,ca as i,Li as j,Fi as k,na as l,Ji as m,to as mountConsole,Qi as n,Ie as nt,Xi as o,Hi as p,Xr as q,ia as r,da as s,fa as t,He as tt,oa as u,Vi as v,la as w,aa as x,Gi as y,gi as z};
|