cartethyia 2.7.3 → 2.7.5

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.
Files changed (625) hide show
  1. package/.env.example +2 -0
  2. package/README.md +17 -5
  3. package/dist/dashboard/assets/{BannedPage-2TJD37Hb.js → BannedPage-Cj15GsMp.js} +1 -1
  4. package/dist/dashboard/assets/BannedPage-Cj15GsMp.js.gz +0 -0
  5. package/dist/dashboard/assets/ClaimGiftsButton-D83pBJ6J.js +1 -0
  6. package/dist/dashboard/assets/ClaimGiftsButton-D83pBJ6J.js.gz +0 -0
  7. package/dist/dashboard/assets/{CliToolDetailPage-xefJNRmJ.js → CliToolDetailPage-DZKmVuJN.js} +1 -1
  8. package/dist/dashboard/assets/CliToolDetailPage-DZKmVuJN.js.gz +0 -0
  9. package/dist/dashboard/assets/{CliToolsPage-Rj9iHQ3F.js → CliToolsPage-BIccZmeL.js} +1 -1
  10. package/dist/dashboard/assets/CliToolsPage-BIccZmeL.js.gz +0 -0
  11. package/dist/dashboard/assets/CombosPage-DEEKkYD-.js +1 -0
  12. package/dist/dashboard/assets/CombosPage-DEEKkYD-.js.gz +0 -0
  13. package/dist/dashboard/assets/ConsoleLogPage-D5rol2j2.js +1 -0
  14. package/dist/dashboard/assets/ConsoleLogPage-D5rol2j2.js.gz +0 -0
  15. package/dist/dashboard/assets/CustomizationPage-BKj_r0rp.js +1 -0
  16. package/dist/dashboard/assets/CustomizationPage-BKj_r0rp.js.gz +0 -0
  17. package/dist/dashboard/assets/InjectSystemPromptPanel-B5nZvmf0.js +656 -0
  18. package/dist/dashboard/assets/InjectSystemPromptPanel-B5nZvmf0.js.gz +0 -0
  19. package/dist/dashboard/assets/{LoginPage-C4w7vea-.js → LoginPage-DkXb6dx-.js} +1 -1
  20. package/dist/dashboard/assets/LoginPage-DkXb6dx-.js.gz +0 -0
  21. package/dist/dashboard/assets/{ModelPicker-BtPcAfot.js → ModelPicker-DnQPSIA8.js} +1 -1
  22. package/dist/dashboard/assets/ModelPicker-DnQPSIA8.js.gz +0 -0
  23. package/dist/dashboard/assets/OverviewPage-Ci2wQKUz.js +1 -0
  24. package/dist/dashboard/assets/OverviewPage-Ci2wQKUz.js.gz +0 -0
  25. package/dist/dashboard/assets/ProviderDetailPage-odlgYrOg.js +5 -0
  26. package/dist/dashboard/assets/ProviderDetailPage-odlgYrOg.js.gz +0 -0
  27. package/dist/dashboard/assets/ProviderIcon-EfeloBn4.js +1 -0
  28. package/dist/dashboard/assets/ProviderIcon-EfeloBn4.js.gz +0 -0
  29. package/dist/dashboard/assets/ProvidersPage-CqFBQEB8.js +1 -0
  30. package/dist/dashboard/assets/ProvidersPage-CqFBQEB8.js.gz +0 -0
  31. package/dist/dashboard/assets/ProxyPage-5SnUSy3j.js +9 -0
  32. package/dist/dashboard/assets/ProxyPage-5SnUSy3j.js.gz +0 -0
  33. package/dist/dashboard/assets/QuotaPage-CmnMDzhP.js +1 -0
  34. package/dist/dashboard/assets/QuotaPage-CmnMDzhP.js.gz +0 -0
  35. package/dist/dashboard/assets/SettingsPage-BJtRZ4qD.js +1 -0
  36. package/dist/dashboard/assets/SettingsPage-BJtRZ4qD.js.gz +0 -0
  37. package/dist/dashboard/assets/{SetupPage-BQS0Rx_u.js → SetupPage-WTa0sktC.js} +1 -1
  38. package/dist/dashboard/assets/SetupPage-WTa0sktC.js.gz +0 -0
  39. package/dist/dashboard/assets/{StudioPage-TP7voAQ0.js → StudioPage-BfAb5-o_.js} +3 -3
  40. package/dist/dashboard/assets/StudioPage-BfAb5-o_.js.gz +0 -0
  41. package/dist/dashboard/assets/UsagePage-BNzeZ2Vk.js +56 -0
  42. package/dist/dashboard/assets/UsagePage-BNzeZ2Vk.js.gz +0 -0
  43. package/dist/dashboard/assets/api-keys-l29JROPv.js +1 -0
  44. package/dist/dashboard/assets/api-keys-l29JROPv.js.gz +0 -0
  45. package/dist/dashboard/assets/app--PJWq8_C.css +2 -0
  46. package/dist/dashboard/assets/app--PJWq8_C.css.gz +0 -0
  47. package/dist/dashboard/assets/{assert-C0YYuZJ4.js → assert-C0K-c4eo.js} +1 -1
  48. package/dist/dashboard/assets/assert-C0K-c4eo.js.gz +0 -0
  49. package/dist/dashboard/assets/{badge-B_DMpMJN.js → badge-DfbhQU4k.js} +1 -1
  50. package/dist/dashboard/assets/badge-DfbhQU4k.js.gz +0 -0
  51. package/dist/dashboard/assets/{banner-DMrMPmth.js → banner-BllT4LcF.js} +1 -1
  52. package/dist/dashboard/assets/banner-BllT4LcF.js.gz +0 -0
  53. package/dist/dashboard/assets/brand/login_register.jpg +0 -0
  54. package/dist/dashboard/assets/brand/login_register_initial.jpg +0 -0
  55. package/dist/dashboard/assets/brand/og_bansos.jpg +0 -0
  56. package/dist/dashboard/assets/brand/og_image.jpg +0 -0
  57. package/dist/dashboard/assets/{card-Be5Uzamx.js → card-CtkX66Wd.js} +1 -1
  58. package/dist/dashboard/assets/card-CtkX66Wd.js.gz +0 -0
  59. package/dist/dashboard/assets/chevron-left-Bf6CaTSJ.js +1 -0
  60. package/dist/dashboard/assets/chevron-left-Bf6CaTSJ.js.gz +0 -0
  61. package/dist/dashboard/assets/{cli-tools-muFRphDu.js → cli-tools-CQXVMn4P.js} +1 -1
  62. package/dist/dashboard/assets/cli-tools-CQXVMn4P.js.gz +0 -0
  63. package/dist/dashboard/assets/{clipboard-button-DOfrVmsi.js → clipboard-button-BQqBQd2n.js} +1 -1
  64. package/dist/dashboard/assets/clipboard-button-BQqBQd2n.js.gz +0 -0
  65. package/dist/dashboard/assets/{dialog-C9omdjQt.js → dialog-BEK7KP0H.js} +1 -1
  66. package/dist/dashboard/assets/dialog-BEK7KP0H.js.gz +0 -0
  67. package/dist/dashboard/assets/{drawer-Bm8WKaGY.js → drawer-BrTEZ8zu.js} +1 -1
  68. package/dist/dashboard/assets/drawer-BrTEZ8zu.js.gz +0 -0
  69. package/dist/dashboard/assets/entry-CHWxbS56.js +1 -0
  70. package/dist/dashboard/assets/entry-CHWxbS56.js.gz +0 -0
  71. package/dist/dashboard/assets/{entry-q5HwZ8nN.js → entry-EBHJ3DrE.js} +1 -1
  72. package/dist/dashboard/assets/entry-EBHJ3DrE.js.gz +0 -0
  73. package/dist/dashboard/assets/entry-LCS85hiq.js +4 -0
  74. package/dist/dashboard/assets/entry-LCS85hiq.js.gz +0 -0
  75. package/dist/dashboard/assets/{formatters-BTScrQpe.js → formatters-BAACA727.js} +1 -1
  76. package/dist/dashboard/assets/formatters-BAACA727.js.gz +0 -0
  77. package/dist/dashboard/assets/{github-badge-Orjuzemr.js → github-badge-YSCE4UC2.js} +1 -1
  78. package/dist/dashboard/assets/github-badge-YSCE4UC2.js.gz +0 -0
  79. package/dist/dashboard/assets/{index-cPrX5vn6.js → index-FQlj0HUT.js} +2 -2
  80. package/dist/dashboard/assets/index-FQlj0HUT.js.gz +0 -0
  81. package/dist/dashboard/assets/{inline-Dvux8w-0.js → inline-C4gU5iOL.js} +1 -1
  82. package/dist/dashboard/assets/inline-C4gU5iOL.js.gz +0 -0
  83. package/dist/dashboard/assets/{input-CU1Rgf3p.js → input-BHHX_Tmm.js} +1 -1
  84. package/dist/dashboard/assets/input-BHHX_Tmm.js.gz +0 -0
  85. package/dist/dashboard/assets/{layout-C_7A6H55.js → layout-CajrYUnD.js} +1 -1
  86. package/dist/dashboard/assets/{layout-C_7A6H55.js.gz → layout-CajrYUnD.js.gz} +0 -0
  87. package/dist/dashboard/assets/{list-row-CzFvogbj.js → list-row-Bx2I7XUe.js} +1 -1
  88. package/dist/dashboard/assets/list-row-Bx2I7XUe.js.gz +0 -0
  89. package/dist/dashboard/assets/live-DNNqRbj2.js +1 -0
  90. package/dist/dashboard/assets/live-DNNqRbj2.js.gz +0 -0
  91. package/dist/dashboard/assets/minimize-2-BTmMTK4o.js +1 -0
  92. package/dist/dashboard/assets/minimize-2-BTmMTK4o.js.gz +0 -0
  93. package/dist/dashboard/assets/{mutation-JJGQm8TD.js → mutation-Rr0TIvcj.js} +1 -1
  94. package/dist/dashboard/assets/mutation-Rr0TIvcj.js.gz +0 -0
  95. package/dist/dashboard/assets/network-C5UBACrJ.js +1 -0
  96. package/dist/dashboard/assets/network-C5UBACrJ.js.gz +0 -0
  97. package/dist/dashboard/assets/numbers-CUWAZK4J.js +2 -0
  98. package/dist/dashboard/assets/numbers-CUWAZK4J.js.gz +0 -0
  99. package/dist/dashboard/assets/pagination-Xsi9Qx04.js +1 -0
  100. package/dist/dashboard/assets/pagination-Xsi9Qx04.js.gz +0 -0
  101. package/dist/dashboard/assets/{query-keys-CLaNz8Xz.js → query-keys-BloKtaXJ.js} +1 -1
  102. package/dist/dashboard/assets/query-keys-BloKtaXJ.js.gz +0 -0
  103. package/dist/dashboard/assets/quota-DvQbD_sr.js +1 -0
  104. package/dist/dashboard/assets/quota-DvQbD_sr.js.gz +0 -0
  105. package/dist/dashboard/assets/{routing-BEH32QOC.js → routing-in0f_IfK.js} +1 -1
  106. package/dist/dashboard/assets/routing-in0f_IfK.js.gz +0 -0
  107. package/dist/dashboard/assets/{select-B3iTetHN.js → select-BLULNqTp.js} +2 -2
  108. package/dist/dashboard/assets/select-BLULNqTp.js.gz +0 -0
  109. package/dist/dashboard/assets/settings-CcGczj6I.js +1 -0
  110. package/dist/dashboard/assets/settings-CcGczj6I.js.gz +0 -0
  111. package/dist/dashboard/assets/shield-BMQNxORh.js +1 -0
  112. package/dist/dashboard/assets/shield-BMQNxORh.js.gz +0 -0
  113. package/dist/dashboard/assets/{stack-KrOrm7JZ.js → stack-D2lIR0tg.js} +1 -1
  114. package/dist/dashboard/assets/stack-D2lIR0tg.js.gz +0 -0
  115. package/dist/dashboard/assets/{state-DLS7IDMy.js → state-DTARjfiW.js} +1 -1
  116. package/dist/dashboard/assets/state-DTARjfiW.js.gz +0 -0
  117. package/dist/dashboard/assets/{switch-42ItvbAs.js → switch-c0oPSnqW.js} +1 -1
  118. package/dist/dashboard/assets/switch-c0oPSnqW.js.gz +0 -0
  119. package/dist/dashboard/assets/{useMutation-Dmnfh1Ue.js → useMutation-m8WGNPrz.js} +1 -1
  120. package/dist/dashboard/assets/useMutation-m8WGNPrz.js.gz +0 -0
  121. package/dist/dashboard/console-backgrounds.jpg +0 -0
  122. package/dist/dashboard/console-backgrounds_initial.jpg +0 -0
  123. package/dist/dashboard/index.html +2 -2
  124. package/dist/dashboard/index.html.gz +0 -0
  125. package/dist/dashboard/precompressed-assets.json +59 -57
  126. package/migrations/full-postgres/0027_qoder_identity_genuine_seed.sql +9 -10
  127. package/migrations/full-postgres/0032_add_provider_pool_accounts.sql +53 -0
  128. package/migrations/full-postgres/0033_add_api_key_ban.sql +9 -0
  129. package/migrations/full-postgres/0034_add_api_key_ban_until.sql +7 -0
  130. package/migrations/full-postgres/0035_align_pool_account_status_enum.sql +21 -0
  131. package/migrations/full-postgres/0036_system_prompt_presets_refs.sql +10 -0
  132. package/migrations/full-postgres/0037_share_concurrency_scope.sql +3 -0
  133. package/migrations/full-postgres/0038_add_accounts_quota_snapshot.sql +7 -0
  134. package/migrations/full-postgres/0039_add_telemetry_provider_model_indexes.sql +13 -0
  135. package/migrations/full-postgres/0040_add_models_dialect.sql +3 -0
  136. package/migrations/full-postgres/0041_add_daily_checkin_ledger_account_fk.sql +7 -0
  137. package/migrations/lite-sqlite3/0027_qoder_identity_genuine_seed.sql +9 -10
  138. package/migrations/lite-sqlite3/0032_add_provider_pool_accounts.sql +44 -0
  139. package/migrations/lite-sqlite3/0033_add_api_key_ban.sql +8 -0
  140. package/migrations/lite-sqlite3/0034_add_api_key_ban_until.sql +5 -0
  141. package/migrations/lite-sqlite3/0035_align_pool_account_status_enum.sql +6 -0
  142. package/migrations/lite-sqlite3/0036_system_prompt_presets_refs.sql +14 -0
  143. package/migrations/lite-sqlite3/0037_share_concurrency_scope.sql +3 -0
  144. package/migrations/lite-sqlite3/0038_add_accounts_quota_snapshot.sql +4 -0
  145. package/migrations/lite-sqlite3/0039_add_telemetry_provider_model_indexes.sql +6 -0
  146. package/migrations/lite-sqlite3/0040_add_models_dialect.sql +3 -0
  147. package/migrations/lite-sqlite3/0041_add_daily_checkin_ledger_account_fk.sql +26 -0
  148. package/package.json +4 -5
  149. package/scripts/cli/update.ts +15 -41
  150. package/src/boot/app.ts +67 -10
  151. package/src/boot/dependencies.ts +786 -732
  152. package/src/boot/lifecycle.ts +11 -12
  153. package/src/config/cooldowns.ts +34 -55
  154. package/src/config/network.ts +8 -4
  155. package/src/config/package-paths.ts +1 -1
  156. package/src/config/providers.ts +13 -14
  157. package/src/config/resources.ts +0 -5
  158. package/src/config/runtime.ts +2 -5
  159. package/src/config/spec.ts +26 -6
  160. package/src/console/api-keys/ban-constants.ts +38 -0
  161. package/src/console/api-keys/contracts.ts +92 -31
  162. package/src/console/api-keys/routes.ts +131 -6
  163. package/src/console/audit/routes.ts +3 -3
  164. package/src/console/auth/access.ts +4 -4
  165. package/src/console/auth/account-reset.ts +5 -5
  166. package/src/console/auth/audit-recorder.ts +1 -1
  167. package/src/console/auth/lockout.ts +7 -3
  168. package/src/console/auth/row-coercion.ts +57 -12
  169. package/src/console/auth/session-resolver.ts +1 -1
  170. package/src/console/auth/session-service.ts +8 -2
  171. package/src/console/auth/session.ts +40 -34
  172. package/src/console/auth/setup-service.ts +4 -3
  173. package/src/console/auth/user-store.ts +1 -1
  174. package/src/console/backup/9router-map.ts +0 -3
  175. package/src/console/backup/contracts.ts +11 -9
  176. package/src/console/backup/export-endpoint.ts +11 -12
  177. package/src/console/backup/nine-router.ts +1 -7
  178. package/src/console/backup/routes.ts +32 -36
  179. package/src/console/backup/service.ts +468 -468
  180. package/src/console/backup/store.ts +47 -29
  181. package/src/console/backup/validate.ts +11 -1
  182. package/src/console/cli-tools/contracts.ts +7 -7
  183. package/src/console/cli-tools/injectors/cline.ts +110 -110
  184. package/src/console/cli-tools/injectors/codex.ts +181 -181
  185. package/src/console/cli-tools/injectors/copilot.ts +108 -108
  186. package/src/console/cli-tools/injectors/driver.ts +247 -247
  187. package/src/console/cli-tools/injectors/jcode.ts +115 -115
  188. package/src/console/cli-tools/injectors/openclaw.ts +161 -161
  189. package/src/console/cli-tools/injectors/opencode.ts +153 -153
  190. package/src/console/cli-tools/routes.ts +4 -4
  191. package/src/console/cli-tools/service.ts +1 -1
  192. package/src/console/cli-tools/store.ts +2 -2
  193. package/src/console/console-router-guards.ts +2 -2
  194. package/src/console/console-router.ts +36 -4
  195. package/src/console/dashboard-assets.ts +9 -9
  196. package/src/console/data-management/routes.ts +3 -3
  197. package/src/console/domain-registration.ts +18 -4
  198. package/src/console/inferhub/client.ts +0 -7
  199. package/src/console/inferhub/key-store.ts +1 -1
  200. package/src/console/inferhub/normalize.ts +2 -2
  201. package/src/console/inferhub/routes.ts +1 -1
  202. package/src/console/inferhub/types.ts +1 -1
  203. package/src/console/observability/contracts.ts +5 -1
  204. package/src/console/observability/live.ts +34 -21
  205. package/src/console/observability/logs.ts +4 -4
  206. package/src/console/observability/performance.ts +3 -3
  207. package/src/console/observability/routes.ts +3 -3
  208. package/src/console/observability/sse.ts +62 -8
  209. package/src/console/observability/store.ts +36 -20
  210. package/src/console/providers/catalog/catalog-projections.ts +1 -1
  211. package/src/console/providers/catalog/contracts.ts +82 -22
  212. package/src/console/providers/catalog/model-operations.ts +1 -1
  213. package/src/console/providers/catalog/provider-operations.ts +110 -17
  214. package/src/console/providers/catalog/public-model-store.ts +0 -0
  215. package/src/console/providers/catalog/routes.ts +30 -6
  216. package/src/console/providers/catalog/store-helpers.ts +349 -326
  217. package/src/console/providers/catalog/store.ts +1662 -1292
  218. package/src/console/providers/detail/routes.ts +4 -4
  219. package/src/console/providers/oauth/callback-listener.ts +100 -18
  220. package/src/console/providers/oauth/routes.ts +95 -16
  221. package/src/console/quota/account-quota-global.ts +41 -3
  222. package/src/console/quota/account-quota-shared.ts +10 -3
  223. package/src/console/quota/account-quota-tenant.ts +285 -67
  224. package/src/console/quota/account-test-egress.ts +4 -4
  225. package/src/console/quota/daily-growth-job.ts +308 -0
  226. package/src/console/quota/native-identity.ts +2 -2
  227. package/src/console/quota/quota-view.ts +1 -1
  228. package/src/console/remote-support/routes.ts +1 -1
  229. package/src/console/remote-support/service.ts +2 -2
  230. package/src/console/routing/model/contracts.ts +1 -1
  231. package/src/console/routing/model/routes.ts +3 -3
  232. package/src/console/routing/pools/contracts.ts +13 -10
  233. package/src/console/routing/pools/import-parse.ts +3 -3
  234. package/src/console/routing/pools/operations.ts +14 -7
  235. package/src/console/routing/pools/probe-verdict.ts +8 -3
  236. package/src/console/routing/pools/relay-deploy.ts +12 -12
  237. package/src/console/routing/pools/routes.ts +3 -3
  238. package/src/console/routing/pools/store.ts +21 -1
  239. package/src/console/settings/contracts.ts +29 -2
  240. package/src/console/settings/routes.ts +3 -3
  241. package/src/console/settings/store.ts +20 -0
  242. package/src/console/share/share-router.ts +112 -44
  243. package/src/console/share/share-stats.ts +109 -39
  244. package/src/console/share/share-usage.ts +1 -1
  245. package/src/console/shared/errors.ts +2 -2
  246. package/src/console/shared/object.ts +18 -0
  247. package/src/console/shared/read-through-cache.ts +42 -6
  248. package/src/console/shared/transaction.ts +14 -0
  249. package/src/console/system-prompt/contracts.ts +89 -12
  250. package/src/console/system-prompt/routes.ts +98 -45
  251. package/src/console/updates/apply-update.ts +244 -0
  252. package/src/console/updates/routes.ts +256 -98
  253. package/src/main.ts +11 -5
  254. package/src/network/http2-bidi.ts +1 -1
  255. package/src/network/ip-utils.ts +298 -0
  256. package/src/network/outbound-fetch.ts +76 -5
  257. package/src/network/pool/agent.ts +7 -6
  258. package/src/network/pool/byte-accounting.ts +1 -1
  259. package/src/network/pool/resolver.ts +55 -51
  260. package/src/network/pool/selector.ts +150 -136
  261. package/src/network/pool-cooldown-store.ts +71 -16
  262. package/src/network/pool-health-machine.ts +22 -2
  263. package/src/network/rate-limit-verdict.ts +68 -0
  264. package/src/network/retry.ts +1 -1
  265. package/src/network/ssrf.ts +24 -75
  266. package/src/observability/event-log.ts +2 -2
  267. package/src/observability/event-query.ts +286 -214
  268. package/src/observability/log-sanitize.ts +1 -1
  269. package/src/observability/metrics.ts +4 -4
  270. package/src/observability/payload-capture.ts +6 -5
  271. package/src/observability/payload-store.ts +1 -1
  272. package/src/observability/runtime-metrics.ts +1 -1
  273. package/src/observability/telemetry-buffer.ts +12 -3
  274. package/src/observability/telemetry-reconciliation.ts +3 -3
  275. package/src/observability/telemetry-status.ts +1 -1
  276. package/src/observability/token-speed.ts +1 -1
  277. package/src/persistence/connection-url.ts +1 -1
  278. package/src/persistence/db-handle.ts +1 -1
  279. package/src/persistence/db-pg.ts +2 -2
  280. package/src/persistence/db-sqlite.ts +10 -5
  281. package/src/persistence/dialect.ts +5 -1
  282. package/src/persistence/readiness.ts +19 -7
  283. package/src/persistence/redis.ts +1 -1
  284. package/src/persistence/schema.ts +177 -45
  285. package/src/persistence/shared-cache.ts +2 -2
  286. package/src/persistence/sort-order.ts +1 -1
  287. package/src/persistence/stores/api-key-store.ts +109 -4
  288. package/src/persistence/stores/share-store.ts +20 -8
  289. package/src/persistence/stores/telemetry-store.ts +1 -1
  290. package/src/persistence/system-prompt-store.ts +63 -18
  291. package/src/persistence/tenant-preferences.ts +1 -1
  292. package/src/persistence/ttl-cache.ts +3 -3
  293. package/src/persistence/usage-flush.ts +7 -2
  294. package/src/protocol/canonical-model.ts +1 -1
  295. package/src/protocol/codecs.ts +12 -16
  296. package/src/protocol/dsml.ts +3 -49
  297. package/src/protocol/gateway-error.ts +6 -3
  298. package/src/protocol/image-clamp.ts +2 -2
  299. package/src/protocol/image-generation.ts +2 -2
  300. package/src/protocol/reasoning-text.ts +1 -1
  301. package/src/protocol/reasoning.ts +7 -52
  302. package/src/protocol/registry.ts +50 -15
  303. package/src/protocol/request/chat.ts +46 -19
  304. package/src/protocol/request/codex.ts +1 -1
  305. package/src/protocol/request/messages.ts +46 -14
  306. package/src/protocol/request/responses.ts +19 -10
  307. package/src/protocol/response/chat.ts +27 -12
  308. package/src/protocol/response/codex.ts +2 -2
  309. package/src/protocol/response/gemini.ts +1 -1
  310. package/src/protocol/response/messages.ts +6 -6
  311. package/src/protocol/response/omp-tool-call-markup.ts +1 -1
  312. package/src/protocol/response/responses.ts +3 -3
  313. package/src/protocol/sse-decoder.ts +64 -4
  314. package/src/protocol/stop-reason.ts +2 -2
  315. package/src/protocol/think-split.ts +347 -0
  316. package/src/protocol/translation/attachment-integrity.ts +3 -3
  317. package/src/protocol/translation/cache-controls.ts +8 -20
  318. package/src/protocol/translation/capabilities.ts +8 -8
  319. package/src/protocol/translation/dialect/deepseek.ts +10 -0
  320. package/src/protocol/translation/dialect/inband.ts +39 -0
  321. package/src/protocol/translation/dialect/model-thinking.ts +89 -0
  322. package/src/protocol/translation/dialect/qwen.ts +114 -0
  323. package/src/protocol/translation/dialect/resolver.ts +83 -0
  324. package/src/protocol/translation/dialect/rules.ts +93 -0
  325. package/src/protocol/translation/dialect/thinking-ladder.ts +245 -0
  326. package/src/protocol/translation/dialect/types.ts +58 -0
  327. package/src/protocol/translation/quirks.ts +18 -4
  328. package/src/protocol/translation/thinking.ts +12 -252
  329. package/src/protocol/translation/tool-id.ts +3 -3
  330. package/src/protocol/translation/tool-repair.ts +1 -1
  331. package/src/protocol/upstream/post-json.ts +6 -1
  332. package/src/protocol/upstream/send-claude-messages.ts +3 -3
  333. package/src/providers/adapters/base-adapter.ts +1 -1
  334. package/src/providers/adapters/compatible-adapter.ts +44 -5
  335. package/src/providers/authentication/jwt-validator.ts +0 -5
  336. package/src/providers/authentication/oauth-client.ts +254 -253
  337. package/src/providers/authentication/oauth-flow-store.ts +42 -7
  338. package/src/providers/authentication/oauth-refresh-service.ts +2 -2
  339. package/src/providers/bundled-discovery-providers.ts +6 -30
  340. package/src/providers/configured-openai-providers.ts +82 -97
  341. package/src/providers/configured-provider.ts +1 -1
  342. package/src/providers/default-registry.ts +23 -35
  343. package/src/providers/discovery/catalog/catalog-format.ts +13 -2
  344. package/src/providers/discovery/discovery-types.ts +0 -1
  345. package/src/providers/discovery/openai-model-discovery.ts +2 -2
  346. package/src/providers/discovery/probe-phases.ts +50 -15
  347. package/src/providers/discovery/probing-service.ts +18 -20
  348. package/src/providers/integrations/agentrouter/agentrouter.ts +14 -5
  349. package/src/providers/integrations/alibabacp/alibabacp.ts +2 -2
  350. package/src/providers/integrations/anthropic.ts +4 -11
  351. package/src/providers/integrations/antigravity/antigravity-oauth.ts +0 -1
  352. package/src/providers/integrations/antigravity/antigravity-protocol.ts +0 -14
  353. package/src/providers/integrations/antigravity/antigravity.ts +15 -26
  354. package/src/providers/integrations/buddy/buddy-catalog-shared.ts +2 -2
  355. package/src/providers/integrations/buddy/buddy-chat-shared.ts +20 -4
  356. package/src/providers/integrations/buddy/buddy-cli-headers.ts +19 -52
  357. package/src/providers/integrations/buddy/buddy-discovery-shared.ts +37 -6
  358. package/src/providers/integrations/buddy/buddy-identity.ts +108 -1
  359. package/src/providers/integrations/buddy/buddy-media.ts +16 -16
  360. package/src/providers/integrations/buddy/buddy-oauth-shared.ts +1 -1
  361. package/src/providers/integrations/buddy/codebuddy/cn-provider.ts +1 -2
  362. package/src/providers/integrations/buddy/codebuddy/provider.ts +5 -16
  363. package/src/providers/integrations/buddy/codebuddy/shared.ts +30 -9
  364. package/src/providers/integrations/buddy/workbuddy/provider.ts +6 -10
  365. package/src/providers/integrations/buddy/workbuddy/shared.ts +21 -3
  366. package/src/providers/integrations/claude/claude-betas.ts +1 -1
  367. package/src/providers/integrations/claude/claude-cch.ts +148 -148
  368. package/src/providers/integrations/claude/claude-credentials.ts +1 -1
  369. package/src/providers/integrations/claude/claude-slow-lane-retry.ts +1 -1
  370. package/src/providers/integrations/claude/claude.ts +3 -10
  371. package/src/providers/integrations/claude/fallback-credit.ts +3 -7
  372. package/src/providers/integrations/cline/cline.ts +2 -2
  373. package/src/providers/integrations/cloudflareai/cloudflareai.ts +4 -7
  374. package/src/providers/integrations/codex/codex-device-code.ts +101 -101
  375. package/src/providers/integrations/codex/codex-errors.ts +1 -1
  376. package/src/providers/integrations/codex/codex-oauth.ts +0 -1
  377. package/src/providers/integrations/codex/codex.ts +14 -15
  378. package/src/providers/integrations/commandcode/commandcode.ts +76 -116
  379. package/src/providers/integrations/commandcode/quota.ts +132 -48
  380. package/src/providers/integrations/cursor/cursor-http2.ts +11 -14
  381. package/src/providers/integrations/cursor/cursor-quota.ts +2 -6
  382. package/src/providers/integrations/cursor/cursor-request.ts +0 -87
  383. package/src/providers/integrations/cursor/cursor-shared.ts +0 -4
  384. package/src/providers/integrations/cursor/cursor.ts +53 -20
  385. package/src/providers/integrations/cursor/protocol/framing.ts +0 -56
  386. package/src/providers/integrations/cursor/protocol/messages.ts +0 -96
  387. package/src/providers/integrations/factory/factory.ts +13 -13
  388. package/src/providers/integrations/gemini.ts +11 -11
  389. package/src/providers/integrations/github/github-discovery.ts +55 -10
  390. package/src/providers/integrations/github/github-oauth.ts +6 -5
  391. package/src/providers/integrations/github/github.ts +47 -20
  392. package/src/providers/integrations/grok/grok-oauth.ts +261 -261
  393. package/src/providers/integrations/grok/grok-quota-frame.ts +1 -1
  394. package/src/providers/integrations/grok/grok-quota.ts +16 -7
  395. package/src/providers/integrations/grok/grok-ratelimit-store.ts +0 -5
  396. package/src/providers/integrations/grok/grok-ratelimit.ts +3 -0
  397. package/src/providers/integrations/grok/grok.ts +88 -42
  398. package/src/providers/integrations/inferhub.ts +4 -11
  399. package/src/providers/integrations/kilo/kilo-oauth.ts +1 -1
  400. package/src/providers/integrations/kimi/kimi.ts +4 -11
  401. package/src/providers/integrations/kiro/kiro-cache.ts +31 -0
  402. package/src/providers/integrations/kiro/kiro-catalog.ts +31 -5
  403. package/src/providers/integrations/kiro/kiro-discovery.ts +47 -43
  404. package/src/providers/integrations/kiro/kiro-machine-id.ts +6 -3
  405. package/src/providers/integrations/kiro/kiro-oauth.ts +523 -255
  406. package/src/providers/integrations/kiro/kiro-quota.ts +35 -47
  407. package/src/providers/integrations/kiro/kiro-request.ts +8 -11
  408. package/src/providers/integrations/kiro/kiro-stream.ts +13 -0
  409. package/src/providers/integrations/kiro/kiro.ts +91 -78
  410. package/src/providers/integrations/muse/muse-oauth.ts +0 -1
  411. package/src/providers/integrations/muse/muse-quota.ts +0 -4
  412. package/src/providers/integrations/muse/muse.ts +6 -9
  413. package/src/providers/integrations/opencode/fingerprint.ts +7 -5
  414. package/src/providers/integrations/opencode/provider.ts +17 -24
  415. package/src/providers/integrations/perplexity.ts +2 -2
  416. package/src/providers/integrations/qoder/qoder-catalog.ts +132 -17
  417. package/src/providers/integrations/qoder/qoder-checkin.ts +26 -8
  418. package/src/providers/integrations/qoder/qoder-native-identity-store.ts +9 -8
  419. package/src/providers/integrations/qoder/qoder-oauth.ts +165 -25
  420. package/src/providers/integrations/qoder/qoder-quota.ts +48 -6
  421. package/src/providers/integrations/qoder/qoder-realm.ts +22 -28
  422. package/src/providers/integrations/qoder/qoder-sse.ts +159 -0
  423. package/src/providers/integrations/qoder/qoder-umid.ts +33 -38
  424. package/src/providers/integrations/qoder/qoder-virtual.ts +14 -2
  425. package/src/providers/integrations/qoder/qoder.ts +521 -63
  426. package/src/providers/integrations/shared/connect.ts +0 -54
  427. package/src/providers/integrations/shared/hash.ts +15 -0
  428. package/src/providers/integrations/shared/session-cache.ts +136 -0
  429. package/src/providers/integrations/tokenharbor.ts +2 -2
  430. package/src/providers/integrations/trae/trae-cache.ts +7 -87
  431. package/src/providers/integrations/trae/trae-catalog.ts +1 -6
  432. package/src/providers/integrations/trae/trae-protocol.ts +17 -8
  433. package/src/providers/integrations/trae/trae-realm.ts +0 -7
  434. package/src/providers/integrations/trae/trae.ts +59 -19
  435. package/src/providers/integrations/xai/xai-oauth.ts +5 -5
  436. package/src/providers/integrations/zcode/oauth.ts +1 -1
  437. package/src/providers/integrations/zcode-start-plan/gifts.ts +265 -0
  438. package/src/providers/integrations/zcode-start-plan/oauth.ts +154 -0
  439. package/src/providers/integrations/zcode-start-plan/provider.ts +131 -0
  440. package/src/providers/integrations/zcode-start-plan/quota.ts +152 -0
  441. package/src/providers/integrations/zcode-start-plan/zcode_prompt.json +10 -0
  442. package/src/providers/operations/account-error-classification.ts +131 -116
  443. package/src/providers/operations/account-health-service.ts +31 -39
  444. package/src/providers/operations/account-reset-service.ts +58 -1
  445. package/src/providers/operations/cli-platform.ts +31 -5
  446. package/src/providers/operations/client-version-resolver.ts +4 -6
  447. package/src/providers/operations/client-versions.ts +10 -7
  448. package/src/providers/operations/provider-catalog-seeder.ts +2 -0
  449. package/src/providers/operations/provider-catalog-service.ts +22 -6
  450. package/src/providers/operations/provider-credential-service.ts +35 -6
  451. package/src/providers/operations/upstream-deadline.ts +3 -3
  452. package/src/providers/provider-contracts.ts +65 -10
  453. package/src/providers/provider-credential-resolver.ts +1 -1
  454. package/src/providers/provider-metadata.ts +17 -2
  455. package/src/providers/provider-model-definition.ts +22 -1
  456. package/src/providers/provider-probe.ts +4 -2
  457. package/src/providers/provider-registry.ts +4 -4
  458. package/src/providers/provider-usage.ts +81 -16
  459. package/src/providers/quota/cache.ts +29 -0
  460. package/src/providers/quota/quota-contracts.ts +28 -10
  461. package/src/providers/quota/refresh.ts +29 -6
  462. package/src/providers/quota/snapshot.ts +94 -0
  463. package/src/providers/search/search-provider.ts +6 -8
  464. package/src/providers/search/search-providers.ts +2 -1
  465. package/src/security/abuse.ts +8 -8
  466. package/src/security/admission/reasons.ts +17 -17
  467. package/src/security/admission/service.ts +2 -2
  468. package/src/security/admission/ttl.ts +61 -61
  469. package/src/security/api-key-auth.ts +20 -8
  470. package/src/security/client-router-fingerprint.ts +4 -4
  471. package/src/security/credential-codec.ts +3 -3
  472. package/src/security/csrf.ts +2 -2
  473. package/src/security/ip-boundary.ts +16 -189
  474. package/src/security/model-access-rule.ts +1 -1
  475. package/src/security/outbound-headers.ts +18 -0
  476. package/src/shared/coerce.ts +19 -0
  477. package/src/shared/invoke-guard.ts +47 -0
  478. package/src/transport/contracts.ts +13 -4
  479. package/src/transport/dispatch/attempt-finalize.ts +5 -4
  480. package/src/transport/dispatch/attempt-loop.ts +10 -7
  481. package/src/transport/dispatch/capture-policy.ts +34 -37
  482. package/src/transport/dispatch/empty-stream.ts +28 -25
  483. package/src/transport/dispatch/generation.ts +33 -53
  484. package/src/transport/dispatch/leases.ts +8 -8
  485. package/src/transport/dispatch/native-shared.ts +127 -0
  486. package/src/transport/dispatch/proxy-request.ts +10 -8
  487. package/src/transport/dispatch/responses-compact.ts +35 -56
  488. package/src/transport/dispatch/retry-policy.ts +4 -67
  489. package/src/transport/dispatch/stream-bridge.ts +1 -1
  490. package/src/transport/dispatch/streaming/encoder.ts +18 -72
  491. package/src/transport/dispatch/streaming/finalize.ts +11 -10
  492. package/src/transport/dispatch/streaming/stream.ts +7 -3
  493. package/src/transport/dispatch/streaming/thinking-loop.ts +1 -1
  494. package/src/transport/dispatch/systemone.ts +27 -55
  495. package/src/transport/dispatch/token-count.ts +49 -46
  496. package/src/transport/dispatch/websearch.ts +24 -50
  497. package/src/transport/drain-endpoint.ts +3 -3
  498. package/src/transport/failure-policy.ts +19 -6
  499. package/src/transport/guards/auth-guard.ts +6 -11
  500. package/src/transport/guards/body-policy.ts +7 -7
  501. package/src/transport/guards/error-lifecycle.ts +18 -3
  502. package/src/transport/guards/guard-errors.ts +7 -3
  503. package/src/transport/guards/headroom-guard.ts +2 -2
  504. package/src/transport/guards/pipeline.ts +7 -7
  505. package/src/transport/guards/readiness-guard.ts +16 -2
  506. package/src/transport/guards/request-context.ts +15 -20
  507. package/src/transport/request/preparer.ts +306 -27
  508. package/src/transport/request/rtk/compress-request.ts +3 -3
  509. package/src/transport/request/rtk/rtk-constants.ts +2 -2
  510. package/src/transport/request/rtk/rtk-filters.ts +8 -8
  511. package/src/transport/request/state.ts +5 -20
  512. package/src/transport/request/system-prompt-injection.ts +74 -11
  513. package/src/transport/request/tenant-preferences.ts +22 -0
  514. package/src/transport/routing/candidate-index.ts +2 -2
  515. package/src/transport/routing/round-robin.ts +1 -1
  516. package/src/transport/routing/route-catalog.ts +113 -19
  517. package/src/transport/routing/route-model.ts +131 -38
  518. package/src/transport/routing/router.ts +154 -39
  519. package/src/transport/shutdown-notice.ts +21 -9
  520. package/src/transport/surface/adapters.ts +3 -3
  521. package/src/transport/surface/chat/encode.ts +7 -7
  522. package/src/transport/surface/chat/parse.ts +7 -7
  523. package/src/transport/surface/completion.ts +3 -3
  524. package/src/transport/surface/content-parts.ts +1 -1
  525. package/src/transport/surface/dialects.ts +2 -2
  526. package/src/transport/surface/messages/encode.ts +1 -1
  527. package/src/transport/surface/messages/parse.ts +3 -3
  528. package/src/transport/surface/responses/adapter.ts +1 -1
  529. package/src/transport/surface/responses/errors.ts +0 -9
  530. package/src/transport/vision-handoff-cache.ts +58 -0
  531. package/src/transport/vision-handoff.ts +376 -0
  532. package/src/workers/account-identity-sweep.ts +2 -2
  533. package/src/workers/buddy-growth-tasks.ts +392 -346
  534. package/src/workers/daily-checkin.ts +102 -49
  535. package/src/workers/maintenance-lease.ts +2 -35
  536. package/src/workers/oauth-refresh-sweep.ts +8 -1
  537. package/src/workers/quota-refresh-sweep.ts +120 -82
  538. package/src/workers/scheduler.ts +67 -4
  539. package/src/workers/sweep-runner.ts +24 -5
  540. package/src/workers/zcode-gift-claim.ts +108 -0
  541. package/dist/dashboard/assets/AccountCooldown-Bjo92Qat.js +0 -1
  542. package/dist/dashboard/assets/AccountCooldown-Bjo92Qat.js.gz +0 -0
  543. package/dist/dashboard/assets/BannedPage-2TJD37Hb.js.gz +0 -0
  544. package/dist/dashboard/assets/CliToolDetailPage-xefJNRmJ.js.gz +0 -0
  545. package/dist/dashboard/assets/CliToolsPage-Rj9iHQ3F.js.gz +0 -0
  546. package/dist/dashboard/assets/CombosPage-JEbYJFxw.js +0 -1
  547. package/dist/dashboard/assets/CombosPage-JEbYJFxw.js.gz +0 -0
  548. package/dist/dashboard/assets/ConsoleLogPage-C3xx_inM.js +0 -1
  549. package/dist/dashboard/assets/ConsoleLogPage-C3xx_inM.js.gz +0 -0
  550. package/dist/dashboard/assets/CustomizationPage-Dw306gJU.js +0 -1
  551. package/dist/dashboard/assets/CustomizationPage-Dw306gJU.js.gz +0 -0
  552. package/dist/dashboard/assets/HealthEventsModal-jaBo1TWV.js +0 -1
  553. package/dist/dashboard/assets/HealthEventsModal-jaBo1TWV.js.gz +0 -0
  554. package/dist/dashboard/assets/LoginPage-C4w7vea-.js.gz +0 -0
  555. package/dist/dashboard/assets/ModelPicker-BtPcAfot.js.gz +0 -0
  556. package/dist/dashboard/assets/OverviewPage-CGC5gNs1.js +0 -1
  557. package/dist/dashboard/assets/OverviewPage-CGC5gNs1.js.gz +0 -0
  558. package/dist/dashboard/assets/ProviderDetailPage-DQcthNGt.js +0 -4
  559. package/dist/dashboard/assets/ProviderDetailPage-DQcthNGt.js.gz +0 -0
  560. package/dist/dashboard/assets/ProviderIcon-FB6yS4v1.js +0 -1
  561. package/dist/dashboard/assets/ProviderIcon-FB6yS4v1.js.gz +0 -0
  562. package/dist/dashboard/assets/ProvidersPage-0OsXRGXe.js +0 -1
  563. package/dist/dashboard/assets/ProvidersPage-0OsXRGXe.js.gz +0 -0
  564. package/dist/dashboard/assets/ProxyPage-DdPc8slb.js +0 -9
  565. package/dist/dashboard/assets/ProxyPage-DdPc8slb.js.gz +0 -0
  566. package/dist/dashboard/assets/QuotaPage-Ci5O4BnH.js +0 -1
  567. package/dist/dashboard/assets/QuotaPage-Ci5O4BnH.js.gz +0 -0
  568. package/dist/dashboard/assets/SettingsPage-CDZjTt87.js +0 -1
  569. package/dist/dashboard/assets/SettingsPage-CDZjTt87.js.gz +0 -0
  570. package/dist/dashboard/assets/SetupPage-BQS0Rx_u.js.gz +0 -0
  571. package/dist/dashboard/assets/SortableList-BAL5npBC.js +0 -1
  572. package/dist/dashboard/assets/SortableList-BAL5npBC.js.gz +0 -0
  573. package/dist/dashboard/assets/StudioPage-TP7voAQ0.js.gz +0 -0
  574. package/dist/dashboard/assets/UsagePage-Cj_fEzhg.js +0 -56
  575. package/dist/dashboard/assets/UsagePage-Cj_fEzhg.js.gz +0 -0
  576. package/dist/dashboard/assets/api-keys-MbI7e7rt.js +0 -1
  577. package/dist/dashboard/assets/api-keys-MbI7e7rt.js.gz +0 -0
  578. package/dist/dashboard/assets/app-B2vyPoII.css +0 -2
  579. package/dist/dashboard/assets/app-B2vyPoII.css.gz +0 -0
  580. package/dist/dashboard/assets/assert-C0YYuZJ4.js.gz +0 -0
  581. package/dist/dashboard/assets/badge-B_DMpMJN.js.gz +0 -0
  582. package/dist/dashboard/assets/banner-DMrMPmth.js.gz +0 -0
  583. package/dist/dashboard/assets/card-Be5Uzamx.js.gz +0 -0
  584. package/dist/dashboard/assets/cli-tools-muFRphDu.js.gz +0 -0
  585. package/dist/dashboard/assets/clipboard-button-DOfrVmsi.js.gz +0 -0
  586. package/dist/dashboard/assets/dialog-C9omdjQt.js.gz +0 -0
  587. package/dist/dashboard/assets/drawer-Bm8WKaGY.js.gz +0 -0
  588. package/dist/dashboard/assets/entry-DS90gUks.js +0 -1
  589. package/dist/dashboard/assets/entry-DS90gUks.js.gz +0 -0
  590. package/dist/dashboard/assets/entry-j40LJotO.js +0 -4
  591. package/dist/dashboard/assets/entry-j40LJotO.js.gz +0 -0
  592. package/dist/dashboard/assets/entry-q5HwZ8nN.js.gz +0 -0
  593. package/dist/dashboard/assets/formatters-BTScrQpe.js.gz +0 -0
  594. package/dist/dashboard/assets/github-badge-Orjuzemr.js.gz +0 -0
  595. package/dist/dashboard/assets/index-cPrX5vn6.js.gz +0 -0
  596. package/dist/dashboard/assets/inline-Dvux8w-0.js.gz +0 -0
  597. package/dist/dashboard/assets/input-CU1Rgf3p.js.gz +0 -0
  598. package/dist/dashboard/assets/list-row-CzFvogbj.js.gz +0 -0
  599. package/dist/dashboard/assets/live-KaG15HLQ.js +0 -1
  600. package/dist/dashboard/assets/live-KaG15HLQ.js.gz +0 -0
  601. package/dist/dashboard/assets/minimize-2-D-MN8W8a.js +0 -1
  602. package/dist/dashboard/assets/minimize-2-D-MN8W8a.js.gz +0 -0
  603. package/dist/dashboard/assets/mutation-JJGQm8TD.js.gz +0 -0
  604. package/dist/dashboard/assets/numbers-BNDZnsUE.js +0 -2
  605. package/dist/dashboard/assets/numbers-BNDZnsUE.js.gz +0 -0
  606. package/dist/dashboard/assets/query-keys-CLaNz8Xz.js.gz +0 -0
  607. package/dist/dashboard/assets/quota-DZGyp0N5.js +0 -1
  608. package/dist/dashboard/assets/quota-DZGyp0N5.js.gz +0 -0
  609. package/dist/dashboard/assets/routing-BEH32QOC.js.gz +0 -0
  610. package/dist/dashboard/assets/select-B3iTetHN.js.gz +0 -0
  611. package/dist/dashboard/assets/settings-Dt3Eqbnq.js +0 -1
  612. package/dist/dashboard/assets/settings-Dt3Eqbnq.js.gz +0 -0
  613. package/dist/dashboard/assets/stack-KrOrm7JZ.js.gz +0 -0
  614. package/dist/dashboard/assets/state-DLS7IDMy.js.gz +0 -0
  615. package/dist/dashboard/assets/stream-retry-5QnVuSSo.js +0 -1
  616. package/dist/dashboard/assets/stream-retry-5QnVuSSo.js.gz +0 -0
  617. package/dist/dashboard/assets/switch-42ItvbAs.js.gz +0 -0
  618. package/dist/dashboard/assets/useMutation-Dmnfh1Ue.js.gz +0 -0
  619. package/src/network/response-headers.ts +0 -39
  620. package/src/protocol/response/dsml.ts +0 -38
  621. package/src/providers/integrations/xiaomi-mimo/think-stream.ts +0 -229
  622. /package/dist/dashboard/assets/{app-wvwCi4Eh.js → app-Bgd3zANQ.js} +0 -0
  623. /package/dist/dashboard/assets/{app-wvwCi4Eh.js.gz → app-Bgd3zANQ.js.gz} +0 -0
  624. /package/dist/dashboard/assets/brand/{og_bansos.webp → og_bansos_initial.webp} +0 -0
  625. /package/dist/dashboard/assets/brand/{og_image.webp → og_image_initial.webp} +0 -0
@@ -1 +0,0 @@
1
- import{S as e,_ as t,t as n,w as r}from"./assert-C0YYuZJ4.js";import{a as i,i as a,o,t as s}from"./query-keys-CLaNz8Xz.js";import{t as c}from"./useMutation-Dmnfh1Ue.js";function l(){let e=r();return c({mutationFn:e=>o(`/api-keys`,{method:`POST`,body:JSON.stringify(e)}),onSuccess:async()=>{await e.invalidateQueries({queryKey:s.apiKeys.all})}})}function u(){let e=r();return c({mutationFn:({keyId:e,request:t})=>o(`/api-keys/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify(t)}),onSuccess:async()=>{await e.invalidateQueries({queryKey:s.apiKeys.all})}})}function d(){let e=r();return c({mutationFn:e=>o(`/api-keys/reorder`,{method:`POST`,body:JSON.stringify({keyIds:e})}),onSuccess:async()=>{await e.invalidateQueries({queryKey:s.apiKeys.all})}})}function f(){let e=r();return c({mutationFn:e=>o(`/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=>o(`/api-keys/${encodeURIComponent(n??``)}/share`,{signal:t(e)}),enabled:n!==null})}function m(){let e=r();return c({mutationFn:({keyId:e,...t})=>o(`/api-keys/${encodeURIComponent(e)}/share`,{method:`POST`,body:JSON.stringify(t)}),onSuccess:async(t,{keyId:n})=>{await e.invalidateQueries({queryKey:s.apiKeys.shareLink(n)}),await e.invalidateQueries({queryKey:s.apiKeys.all})}})}function h(){let e=r();return c({mutationFn:({keyId:e})=>o(`/api-keys/${encodeURIComponent(e)}/regenerate`,{method:`POST`}),onSuccess:async(t,{keyId:n})=>{await e.invalidateQueries({queryKey:s.apiKeys.all}),await e.invalidateQueries({queryKey:s.apiKeys.shareLink(n)})}})}function g(){return c({mutationFn:({keyId:e})=>o(`/api-keys/${encodeURIComponent(e)}/reveal`,{method:`POST`})})}function _(){return e({queryKey:s.apiKeys.all,queryFn:e=>o(`/api-keys`,{signal:t(e)}).then(n),...a})}function v(n,r){return e({queryKey:[...s.apiKeys.sharedKeys(n??``),r],queryFn:e=>{let i=new URLSearchParams({limit:String(r.limit),offset:String(r.offset),sort:r.sortBy,order:r.order,status:r.status});return o(`/api-keys/${encodeURIComponent(n??``)}/shared-keys?${i}`,{signal:t(e)})},enabled:n!==null,refetchInterval:i.live,refetchIntervalInBackground:!1})}function y(){let e=r();return c({mutationFn:({parentKeyId:e,scope:t})=>o(`/api-keys/${encodeURIComponent(e)}/shared-keys/revoke-scope`,{method:`POST`,body:JSON.stringify({scope:t})}),onSuccess:async(t,{parentKeyId:n})=>{await e.invalidateQueries({queryKey:s.apiKeys.sharedKeys(n)}),await e.invalidateQueries({queryKey:s.apiKeys.all})}})}function b(n,r){return e({queryKey:s.apiKeys.sharedKeyActivity(n??``,r??``),queryFn:e=>o(`/api-keys/${encodeURIComponent(n??``)}/shared-keys/${encodeURIComponent(r??``)}/activity`,{signal:t(e)}),enabled:n!==null&&r!==null,refetchInterval:i.live,refetchIntervalInBackground:!1})}function x(){let e=r();return c({mutationFn:({childKeyId:e})=>o(`/api-keys/${encodeURIComponent(e)}`,{method:`DELETE`}),onSuccess:async(t,{parentKeyId:n,deferInvalidation:r})=>{r||(await e.invalidateQueries({queryKey:s.apiKeys.sharedKeys(n)}),await e.invalidateQueries({queryKey:s.apiKeys.all}))}})}export{g as a,y as c,b as d,v as f,d as i,m as l,l as n,f as o,u as p,h as r,x as s,_ as t,p 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-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:var(--font-sans);--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:var(--font-mono);--color-black:#000;--color-white:#fff;--spacing:2px;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.03em;--tracking-normal:0em;--tracking-wide:.06em;--leading-tight:1.25;--leading-snug:1.3;--leading-normal:1.5;--leading-relaxed:1.625;--leading-loose:1.55;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--blur-xl:24px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--text-badge:11px;--text-caption:12px;--text-body:13px;--text-body-lg:14px;--text-display:21px;--tracking-label:.08em;--banner-line-alpha:40%;--banner-surface-alpha:8%;--radius-micro:var(--radius-micro);--radius-tiny:var(--radius-tiny);--radius-chip:var(--radius-chip);--radius-narrow:var(--radius-narrow);--radius-inset:var(--radius-inset);--radius-control:var(--radius-control);--radius-panel:var(--radius-panel);--radius-card:var(--radius-card);--radius-hero:var(--radius-hero);--radius-sidebar:var(--radius-sidebar);--radius-pill:var(--radius-pill);--radius-full:9999px;--color-story-white:var(--text-primary);--color-story-night:var(--story-night);--color-story-core:var(--story-core);--color-story-blossom:var(--story-blossom);--color-story-voices:var(--story-voices);--color-story-red:var(--story-red);--color-story-denial:var(--story-denial);--color-story-shore:var(--story-shore);--font-head:var(--font-head);--shadow-card:var(--shadow-card);--shadow-popout:var(--shadow-popout);--ease-spring:var(--ease-spring);--z-index-header:40;--z-index-mobile-overlay:45;--z-index-mobile-panel:46;--animate-message-in:message-in .15s ease-out both;--animate-typing-bounce:typing-bounce 1.2s ease-in-out infinite;--animate-stream-caret:stream-caret 1.2s ease-in-out infinite;--animate-pulse-subtle:pulse-subtle 1.6s ease-in-out infinite;--leading-chat:1.35;--grid-template-columns-qris:280px minmax(0, 1fr);--grid-template-columns-qris-compact:140px minmax(0, 1fr);--grid-template-columns-access:minmax(0, 1fr) minmax(0, 1.4fr);--container-qris-badge:220px;--container-bubble-narrow:88%;--container-bubble-form:70vw;--height-route:calc(100dvh - 104px);--grid-template-columns-quota-window:minmax(120px, auto) minmax(0, 1fr) auto;--grid-template-columns-quota-account:repeat(auto-fill, minmax(min(420px, 100%), 1fr))}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:before,:after{box-sizing:border-box;margin:0;padding:0}}@layer components{.app-sidebar nav,.dialog-panel .modal-body,.drawer-body,.scroll-region{scrollbar-width:thin;scrollbar-color:var(--inner-border) transparent}html{scrollbar-width:none}html::-webkit-scrollbar{display:none}.app-sidebar nav::-webkit-scrollbar{width:8px;height:8px}.dialog-panel .modal-body::-webkit-scrollbar{width:8px;height:8px}.drawer-body::-webkit-scrollbar{width:8px;height:8px}.scroll-region::-webkit-scrollbar{width:8px;height:8px}.app-sidebar nav::-webkit-scrollbar-thumb{background:var(--inner-border);border-radius:var(--radius-pill)}.dialog-panel .modal-body::-webkit-scrollbar-thumb{background:var(--inner-border);border-radius:var(--radius-pill)}.drawer-body::-webkit-scrollbar-thumb{background:var(--inner-border);border-radius:var(--radius-pill)}.scroll-region::-webkit-scrollbar-thumb{background:var(--inner-border);border-radius:var(--radius-pill)}.app-sidebar nav::-webkit-scrollbar-track{background:0 0}.dialog-panel .modal-body::-webkit-scrollbar-track{background:0 0}.drawer-body::-webkit-scrollbar-track{background:0 0}.scroll-region::-webkit-scrollbar-track{background:0 0}.scroll-region{overflow-y:auto}html{background:var(--page-bg);color:var(--text-primary);font-size:14px;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;overflow:visible}body{min-height:100dvh;font-family:var(--font-sans);color:var(--text-primary);background-color:var(--page-bg);background-attachment:fixed;margin:0}html[data-ambient-glow=off] body{background-image:none}html[data-glass-depth="2"]{--glass-depth:2}#root{flex-direction:column;min-height:100dvh;display:flex}::selection{background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){::selection{background:color-mix(in srgb, var(--text-primary) 18%, transparent)}}::selection{color:var(--text-primary)}@layer base{button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}button:disabled{cursor:not-allowed;opacity:.55}h1,h2,h3,.topbar-title,.brand-name,.auth-title{font-family:var(--font-head);letter-spacing:-.015em;font-weight:700}pre,code{word-break:break-all}}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.card-glass,html[data-glass-enabled=true] .card-solid{--card-glass-depth:var(--glass-depth,1);background:var(--surface-1)!important}@supports (color:color-mix(in lab, red, red)){.card-glass,html[data-glass-enabled=true] .card-solid{background:color-mix(in srgb, var(--surface-1) calc(40% + var(--blur-cards,30) * 0.55%), transparent)!important}}.card-glass,html[data-glass-enabled=true] .card-solid{border:1px solid var(--inner-border);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(calc((100 - var(--blur-cards,30)) * var(--blur-cards-depth,30) * .01px))!important}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)))!important}.app-sidebar,.app-topbar,.app-topbar-popover{background:var(--surface-1)!important}@supports (color:color-mix(in lab, red, red)){.app-sidebar,.app-topbar,.app-topbar-popover{background:color-mix(in srgb, var(--surface-1) calc(40% + var(--blur-chrome,30) * 0.55%), transparent)!important}}.app-sidebar,.app-topbar,.app-topbar-popover{-webkit-backdrop-filter:blur(calc((100 - var(--blur-chrome,30)) * var(--blur-chrome-depth,30) * .01px))!important}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{font-size:var(--text-body);color:var(--text-primary);justify-content:space-between;align-items:center;font-weight:600;display:flex}.form-hint{color:var(--text-tertiary);font-size:11px;font-weight:400}.form-error{color:var(--red);margin-top:4px;font-size:11.5px}.switch-container{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:inline-flex}.switch-container.is-disabled{cursor:not-allowed;opacity:.55}.switch-track{border-radius:var(--radius-control);width:42px;height:24px;transition:background-color .16s var(--ease-spring), border-color .16s var(--ease-spring);background-color:var(--track);border:1px solid var(--inner-border);cursor:inherit;align-items:center;padding:2px;display:flex;position:relative}.switch-track.is-checked{background-color:var(--accent)}.switch-thumb{background-color:var(--surface-1);width:18px;height:18px;transition:transform .18s var(--ease-spring), background-color .18s var(--ease-spring);border-radius:9999px;display:block;transform:translate(0);box-shadow:0 2px 4px #0003}.switch-track.is-checked .switch-thumb{background-color:var(--accent-foreground);transform:translate(18px)}.usage-floor-switch .switch-track,.usage-floor-switch .switch-thumb{border-radius:var(--radius-tiny)}.switch-label{color:var(--text-primary);font-size:13px;font-weight:500}.data-table-container{scrollbar-width:thin;width:100%;max-width:100%;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%;min-width:100%;font-size:12.5px}.data-table th{text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary);border-bottom:1px solid var(--inner-border);white-space:nowrap;padding:7px 10px;font-size:10.5px;font-weight:700}.data-table thead th{z-index:2;background:var(--surface-1);box-shadow:inset 0 -1px 0 var(--inner-border);position:sticky;top:0}.proxy-table-scroll{margin-top:14px;overflow:hidden;container:rule-row/inline-size}.proxy-table-scroll .data-table thead th:first-child{border-top-left-radius:var(--radius-card)}.proxy-table-scroll .data-table thead th:last-child{border-top-right-radius:var(--radius-card)}.proxy-table-scroll .data-table thead th{padding-top:16px;padding-bottom:12px}.proxy-table-scroll .data-table th:last-child,.proxy-table-scroll .data-table td:last-child{padding-left:72px}.data-table td{border-bottom:1px solid var(--inner-border);color:var(--text-secondary);vertical-align:middle;padding:7px 10px}.data-table tr:last-child td{border-bottom:none}.data-table .btn-sm{height:26px;padding:0 6px}main>.state-viewport{min-height:clamp(220px,100dvh - 270px,1000px)}.dashboard-page:only-child{min-height:clamp(240px,100dvh - 200px,1200px)}.card-body-content>.state-viewport{flex:auto;min-height:0}.state-box{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;width:100%;max-width:420px;padding:32px 24px;display:flex}.state-box-icon{border-radius:var(--radius-pill);background:var(--hover);width:44px;height:44px;color:var(--text-tertiary);place-items:center;display:grid}.state-box-icon-danger{background:var(--red)}@supports (color:color-mix(in lab, red, red)){.state-box-icon-danger{background:color-mix(in srgb, var(--red) 12%, transparent)}}.state-box-icon-danger{color:var(--red)}.state-box h3{color:var(--text-primary);font-size:14px;font-weight:700}.state-box p{color:var(--text-secondary);max-width:360px;font-size:12px}.state-box-label{font-weight:500}.auth-viewport{--auth-backdrop-veil:.35;background-image:linear-gradient(var(--page-bg), var(--page-bg)), url(/assets/brand/login_register.jpg);place-items:center;min-height:100dvh;padding:24px;display:grid}@supports (color:color-mix(in lab, red, red)){.auth-viewport{background-image:linear-gradient(color-mix(in srgb, var(--page-bg) calc(var(--auth-backdrop-veil) * 100%), transparent), color-mix(in srgb, var(--page-bg) calc(var(--auth-backdrop-veil) * 100%), transparent)), url(/assets/brand/login_register.jpg)}}.auth-viewport{background-position:50%,50%;background-repeat:no-repeat,no-repeat;background-size:cover,cover;background-attachment:fixed,fixed}.app-shell-root .auth-viewport{background:0 0}[data-theme=dark] .auth-viewport{--auth-backdrop-veil:.5}.auth-window{border-radius:var(--radius-card);background:var(--surface-1);width:min(100%,420px);padding:36px 32px}@supports (color:color-mix(in lab, red, red)){.auth-window{background:color-mix(in srgb, var(--surface-1) 78%, transparent)}}.auth-window{-webkit-backdrop-filter:blur(16px)saturate(120%);box-shadow:0 18px 40px -20px #00000080}.auth-header{text-align:center;margin-bottom:24px}.auth-logo{border-radius:var(--radius-control);background:var(--accent) center / cover no-repeat url(/assets/brand/favicon.jpg);width:48px;height:48px;color:var(--accent-foreground);place-items:center;margin:0 auto 14px;font-size:22px;font-weight:800;display:grid}.auth-title{letter-spacing:-.02em;color:var(--text-primary);font-size:20px;font-weight:700}.auth-desc{color:var(--text-secondary);margin-top:4px;font-size:12.5px}.github-badge{border:1px solid var(--inner-border);background:var(--surface-2);min-height:34px;color:var(--text-secondary);border-radius:6px;align-items:center;gap:8px;padding:0 10px;text-decoration:none;transition:border-color .16s,color .16s;display:inline-flex}.github-badge:hover{border-color:var(--border-strong);color:var(--text-primary)}.github-badge:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.github-badge-metric{width:auto;height:20px;display:block}.github-split{align-items:stretch;display:inline-flex;position:relative}.github-split .github-badge{border-top-right-radius:0;border-bottom-right-radius:0}.github-split-toggle{border:1px solid var(--inner-border);background:var(--surface-2);width:34px;color:var(--text-secondary);cursor:pointer;border-left:0;border-top-right-radius:6px;border-bottom-right-radius:6px;justify-content:center;align-items:center;padding:0;transition:border-color .16s,color .16s,background-color .16s;display:inline-flex}.github-split-toggle:hover{border-color:var(--border-strong);color:var(--text-primary)}.github-split-toggle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.github-split-toggle[aria-expanded=true]{border-color:var(--border-strong);color:var(--text-primary)}.github-split-menu{z-index:40;border:1px solid var(--border-strong);background:var(--surface-1);border-radius:8px;flex-direction:column;min-width:230px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #00000052}.github-split-item{color:var(--text-secondary);border-radius:5px;align-items:center;gap:9px;padding:7px 9px;text-decoration:none;display:flex}.github-split-item:hover,.github-split-item:focus-visible{background:var(--surface-2);color:var(--text-primary)}.github-split-item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.github-split-item-text{flex-direction:column;gap:1px;min-width:0;display:flex}.github-split-item-label{font-size:12px;font-weight:600;line-height:1.25}.github-split-item-hint{color:var(--text-tertiary);font-size:11px;line-height:1.25}input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex:none}.toast-surface{background:var(--glass-bg-2)!important;border-color:var(--glass-border-2)!important;color:var(--text-primary)!important}.toast-surface [data-content],.toast-surface [data-description]{color:var(--text-primary)!important}.app-shell-frame{flex:1 0 auto;width:100%;display:block;container:app-shell/inline-size}.app-shell-root{z-index:10;width:100%;min-height:100vh;box-sizing:border-box;grid-template-columns:minmax(252px,min(280px,18%)) minmax(0,1fr);gap:16px;min-height:100dvh;margin:0 auto;padding:16px;display:grid;position:relative}.app-shell-root[data-page-scroll=contained]{grid-template-rows:minmax(0,1fr);height:100dvh;min-height:100dvh}@container app-shell (width<=860px){.app-shell-root{grid-template-columns:minmax(0,1fr);gap:12px;padding:12px}.app-shell-root[data-drawer=open] .app-main-column{z-index:1;position:relative}.app-shell-root[data-drawer=open] .app-main-column:before{content:"";z-index:50;border-radius:var(--radius-card);pointer-events:auto;background:#0000009e;position:absolute;inset:0}}.app-sidebar{border-radius:var(--radius-sidebar);z-index:30;box-sizing:border-box;flex-direction:column;align-self:start;gap:4px;width:100%;min-width:0;height:calc(100dvh - 32px);padding:18px 14px;display:flex;position:sticky;top:16px;overflow-y:auto}@container app-shell (width<=860px){.app-sidebar{z-index:80;width:min(280px,100vw - 24px);max-width:280px;height:calc(100dvh - 24px);transition:transform .28s var(--ease-spring);box-shadow:var(--shadow-popout);position:fixed;top:12px;bottom:12px;left:12px;transform:translate(calc(-100% - 24px))}.app-sidebar.is-open{transform:translate(0)}}.app-bg{z-index:-1;pointer-events:none;background:var(--page-bg);position:fixed;inset:0}.custom-background{contain:none;z-index:0;pointer-events:none;opacity:var(--bg-opacity,.4);position:fixed;inset:0;overflow:hidden}.custom-background-media{top:calc(50% + var(--bg-y,0%));left:calc(50% + var(--bg-x,0%));object-fit:cover;width:100%;height:100%;transform:translate(-50%, -50%) scale(var(--bg-scale,1));filter:blur(var(--bg-blur,0px));position:absolute}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.brand-header{border-bottom:1px solid var(--inner-border);align-items:center;gap:10px;padding:4px 8px 16px;display:flex}.brand-icon{border-radius:var(--radius-control);background:var(--accent);width:36px;height:36px;color:var(--accent-foreground);place-items:center;font-size:16px;font-weight:800;display:grid}.brand-meta{flex:1;min-width:0}.brand-name{letter-spacing:-.02em;color:var(--text-primary);align-items:center;gap:6px;font-size:15px;font-weight:700;display:flex}.brand-version-badge{color:var(--text-tertiary);align-items:center;gap:3px;margin-top:1px;font-size:10px;font-weight:600;display:inline-flex}.brand-version-link{color:inherit;text-decoration:none}.brand-version-link:hover{color:var(--text-primary)}.brand-update-badge{letter-spacing:.02em;color:var(--status-danger);background:color-mix(in srgb, var(--status-danger) 14%, transparent);transition:background var(--dur-micro) var(--ease-spring), color var(--dur-micro) var(--ease-spring);border-radius:6px;align-items:center;gap:3px;padding:1px 6px;font-size:9.5px;font-weight:700;text-decoration:none;display:inline-flex}.brand-update-badge:hover{color:var(--accent-foreground);background:var(--status-danger)}.nav-group-section{margin-top:9px}.nav-group-section:first-child{margin-top:0}.nav-group-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);padding:3px 10px 4px;font-size:10px;font-weight:700}.nav-items-container{flex-direction:column;gap:1px;display:flex;position:relative}.sidebar-active-indicator{border-radius:var(--radius-control);border:1px solid var(--inner-border);background:var(--active-pill);transition:transform var(--dur-macro) var(--ease-spring), height var(--dur-macro) var(--ease-spring), opacity var(--dur-macro) var(--ease-spring);pointer-events:none;position:absolute;left:0;right:0;box-shadow:0 2px 8px #0000000a}.nav-link-item{border-radius:var(--radius-control);color:var(--text-secondary);transition:color var(--dur-micro) var(--ease-spring), transform var(--dur-micro) var(--ease-spring);align-items:center;gap:8px;padding:5.4px 10px;font-size:12.75px;font-weight:500;text-decoration:none;display:flex;position:relative}.nav-link-item:hover{color:var(--text-primary)}.nav-link-item.active{color:var(--text-primary);font-weight:600}.nav-link-item:active{transform:scale(.98)}.nav-link-icon{flex-shrink:0;place-items:center;width:18px;height:18px;display:grid}.nav-link-icon svg{width:16px;height:16px}.nav-link-badge{background:var(--accent-soft);color:var(--accent);border-radius:6px;margin-left:auto;padding:2px 7px;font-size:10px;font-weight:700}.sidebar-user-card{border-top:1px solid var(--inner-border);margin-top:auto;padding-top:14px}.user-card-content{border-radius:var(--radius-card);border:1px solid var(--inner-border);background:color-mix(in srgb, var(--surface-1) calc(40% + var(--blur-cards,30) * 0.55%), transparent);align-items:center;gap:10px;padding:8px 10px;display:flex;-webkit-backdrop-filter:blur(calc((100 - var(--blur-cards,30)) * var(--blur-cards-depth,30) * .01px))!important}.user-avatar{border-radius:var(--radius-full);color:#fff;background:linear-gradient(135deg,#ff9f0a,#ff375f);flex-shrink:0;place-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:grid}.user-info{flex:1;min-width:0}.user-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.user-role{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.app-main-column{box-sizing:border-box;z-index:1;flex-direction:column;gap:16px;min-width:0;max-width:100%;height:100%;display:flex;position:relative}main.route-enter{flex-direction:column;flex:auto;min-width:0;min-height:calc(100dvh - 104px);display:flex}.app-shell-root[data-page-scroll=contained] .app-main-column{min-height:0}.app-shell-root[data-page-scroll=contained] main.route-enter{min-height:0;overflow:hidden}main.route-enter>:only-child,main.route-enter>:only-child>.card-solid:last-child{flex:auto}main.route-enter .card-body-content{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}main.route-enter .card-body-content>.data-table-container{box-sizing:border-box;min-width:100%;max-width:100%}main.route-enter .state-viewport{flex:auto;min-height:clamp(220px,100dvh - 270px,1000px)}main.route-enter .state-viewport-compact{min-height:0}.dashboard-page{flex-direction:column;gap:16px;width:100%;min-width:0;max-width:100%;display:flex}.app-topbar{z-index:40;border-radius:var(--radius-card);border:1px solid var(--inner-border);box-shadow:var(--shadow-card);align-items:center;gap:12px;padding:8px 14px;display:flex;position:sticky;top:16px}.app-topbar-popover{width:min(340px,100vw - 40px);max-height:calc(100vh - 108px);flex-direction:column;max-height:calc(100dvh - 108px);display:flex;position:fixed;top:84px;right:24px;overflow:hidden}@media (max-width:640px){.app-topbar-popover{width:min(340px,100vw - 32px);right:16px}}.topbar-menu-btn{border-radius:var(--radius-control);border:1px solid var(--inner-border);background:var(--hover);width:38px;height:38px;color:var(--text-primary);flex-shrink:0;place-items:center;display:none}@container app-shell (width<=860px){.topbar-menu-btn{display:grid}.topbar-title-icon{display:none}}.topbar-meta{flex:auto;min-width:0}.topbar-title{letter-spacing:-.02em;color:var(--text-primary);align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.topbar-title-icon{color:var(--text-tertiary);flex-shrink:0}.topbar-subtitle{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.topbar-actions{align-items:center;gap:8px;display:flex}.topbar-button{border-radius:var(--radius-control);border:1px solid var(--inner-border);background:var(--hover);height:38px;color:var(--text-secondary);transition:all var(--dur-micro) var(--ease-spring);align-items:center;gap:8px;padding:0 12px;font-size:12.5px;font-weight:500;display:inline-flex}.topbar-button:hover{background:var(--active-pill);color:var(--text-primary);border-color:var(--border-strong)}.topbar-icon-button{border-radius:var(--radius-control);border:1px solid var(--inner-border);background:var(--hover);width:38px;height:38px;color:var(--text-secondary);transition:all var(--dur-micro) var(--ease-spring);place-items:center;padding:0;display:grid}.topbar-icon-button:hover{background:var(--active-pill);color:var(--text-primary)}.topbar-donate-button{white-space:nowrap;border-radius:var(--radius-control);border:1px solid var(--inner-border);background:var(--hover);height:38px;color:var(--text-secondary);flex-direction:row;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.topbar-donate-button:hover{background:var(--active-pill);color:var(--text-primary)}.topbar-icon-button:active{transform:scale(.92)}@media (max-width:640px){.topbar-button span,.topbar-button kbd{display:none}.topbar-button{place-items:center;width:38px;height:38px;padding:0;display:grid}.topbar-title{font-size:14.5px}.topbar-subtitle{display:none}.section-header{flex-direction:column;align-items:flex-start;gap:8px}.section-header-action,.section-header-action button{width:100%}}.status-indicator-dot{border-radius:var(--radius-full);flex-shrink:0;width:7px;height:7px}.status-indicator-dot.online{background:var(--green)}.status-indicator-dot.offline{background:var(--red)}.status-indicator-dot.pulse{animation:1.8s infinite pulse-subtle}html[data-app=share],html[data-app=share] body{height:auto;min-height:100%;overflow:hidden auto}html[data-app=share] #root{height:auto;min-height:100vh;min-height:100dvh;overflow:visible}html[data-app=share] body{--share-backdrop-veil:.8;background:0 0}html[data-app=share] .share-backdrop{z-index:0;background-image:linear-gradient(color-mix(in srgb, var(--page-bg) calc(var(--share-backdrop-veil) * 100%), transparent), color-mix(in srgb, var(--page-bg) calc(var(--share-backdrop-veil) * 100%), transparent)), url(/assets/brand/bansos_page.png);pointer-events:none;background-position:50%,50% 28%;background-repeat:no-repeat,no-repeat;background-size:cover,cover;position:fixed;inset:0}html[data-app=share] .share-header{z-index:var(--z-index-header);background-color:var(--page-bg);justify-content:center;padding:0 24px;transition:padding .26s,background-color .26s;display:flex;position:fixed;inset:0 0 auto}html[data-app=share] .share-header[data-scrolled=true]{background-color:#0000;padding:8px 16px}html[data-app=share] .share-header-inner{justify-content:space-between;align-items:center;gap:16px;width:min(100%,960px);min-height:66px;margin-inline:auto;transition:width .26s,min-height .26s,border-radius .26s,background-color .26s,box-shadow .26s;display:flex}html[data-app=share] .share-header-inner[data-scrolled=true]{border:1px solid var(--glass-border-2);border-radius:var(--radius-pill);background-color:var(--glass-bg);-webkit-backdrop-filter:blur(12px)saturate(1.5);backdrop-filter:blur(12px)saturate(1.5);width:min(720px,100vw - 32px);min-height:56px;padding-inline:12px;box-shadow:0 12px 32px -12px #0009}html[data-app=share][data-theme=dark] body{--share-backdrop-veil:.6}html[data-app=landing]{height:auto;min-height:100%;background:var(--page-bg);min-height:100dvh;color:var(--text-primary);font-size:16px;overflow:hidden auto}html[data-app=landing] body{height:auto;min-height:100%;background:var(--page-bg);min-height:100dvh;color:var(--text-primary);background-image:none;overflow:visible}html[data-app=landing] #root{height:auto;min-height:100%;min-height:100dvh;display:block;overflow:visible}html[data-app=landing] .landing-signal-grid{border-top:1px solid color-mix(in srgb, var(--color-story-white) 18%, transparent);grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;max-width:650px;margin-top:32px;padding-top:16px;display:grid}html[data-app=landing] .landing-signal-tile{border:1px solid color-mix(in srgb, var(--color-story-white) 16%, transparent);border-radius:var(--radius-control);background:color-mix(in srgb, var(--color-story-white) 3%, transparent);align-items:center;gap:10px;min-width:0;padding:10px 12px;display:flex}html[data-app=landing] .landing-signal-icon{border:1px solid color-mix(in srgb, var(--story-accent) 35%, transparent);border-radius:var(--radius-chip);background:color-mix(in srgb, var(--story-accent) 8%, transparent);width:28px;height:28px;color:var(--story-accent);flex:none;place-items:center;display:grid}html[data-app=landing] .landing-signal-copy{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}html[data-app=landing] .landing-signal-label{color:color-mix(in srgb, var(--color-story-white) 60%, transparent);font-family:var(--font-mono);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:9px;font-weight:500;line-height:1.2;overflow:hidden}html[data-app=landing] .landing-signal-value{color:var(--color-story-white);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:700;line-height:1}html[data-app=landing] .landing-header{z-index:var(--z-index-header);background-color:var(--story-deep);justify-content:center;padding:0 24px;transition:padding .26s,background-color .26s;display:flex;position:fixed;inset:0 0 auto}html[data-app=landing] .landing-header[data-scrolled=true]{background-color:#0000;padding:8px 16px}html[data-app=landing] .landing-header-inner{box-sizing:border-box;justify-content:space-between;align-items:center;gap:16px;width:min(100%,1280px);height:72px;margin-inline:auto;transition:width .26s,height .26s,border-radius .26s,border-color .26s,background-color .26s,box-shadow .26s;display:flex;position:relative}html[data-app=landing] .landing-header-inner[data-scrolled=true]{border:1px solid color-mix(in srgb, var(--story-accent) 20%, transparent);border-radius:var(--radius-pill);background-color:var(--story-deep);width:min(720px,100vw - 32px);height:56px;box-shadow:0 12px 32px -12px #000000c2, 0 0 0 1px color-mix(in srgb, var(--story-accent) 10%, transparent);padding-inline:12px}html[data-app=landing] .landing-header-brand{color:var(--color-story-white);flex-shrink:0;align-items:center;gap:10px;text-decoration:none;display:inline-flex}html[data-app=landing] .landing-header-desktop-nav{align-items:center;gap:4px;display:none}html[data-app=landing] .landing-header-desktop-nav a,html[data-app=landing] .landing-header-desktop-nav button{border-radius:var(--radius-inset);height:36px;color:color-mix(in srgb, var(--color-story-white) 68%, transparent);font-size:var(--text-badge);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding-inline:14px;font-family:inherit;font-weight:600;text-decoration:none;transition:color .16s,background-color .16s;display:inline-flex}html[data-app=landing] .landing-header-desktop-nav a:hover,html[data-app=landing] .landing-header-desktop-nav button:hover{background-color:color-mix(in srgb, var(--color-story-white) 10%, transparent);color:var(--color-story-white)}html[data-app=landing] .landing-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}html[data-app=landing] .landing-header-github,html[data-app=landing] .landing-header-control,html[data-app=landing] .landing-header-menu-toggle{box-sizing:border-box;border:1px solid color-mix(in srgb, var(--color-story-white) 25%, transparent);border-radius:var(--radius-control);background-color:color-mix(in srgb, var(--color-story-white) 8%, transparent);min-height:38px;color:var(--color-story-white);font-size:var(--text-badge);flex-shrink:0;justify-content:center;align-items:center;gap:8px;padding-inline:12px;font-family:inherit;font-weight:700;text-decoration:none;transition:border-color .16s,background-color .16s,color .16s;display:inline-flex}html[data-app=landing] .landing-header-github{min-height:38px;color:var(--color-story-white);background:0 0;border:0;padding-inline:0}html[data-app=landing] .landing-header-github .github-badge{border-color:color-mix(in srgb, var(--color-story-white) 25%, transparent);background-color:color-mix(in srgb, var(--color-story-white) 8%, transparent);min-height:38px;color:var(--color-story-white)}html[data-app=landing] .landing-header-github .github-badge:hover{border-color:var(--color-story-white);background-color:var(--color-story-white);color:var(--story-deep)}html[data-app=landing] .landing-header-github .github-split-toggle{border-color:color-mix(in srgb, var(--color-story-white) 25%, transparent);background-color:color-mix(in srgb, var(--color-story-white) 8%, transparent);color:var(--color-story-white)}html[data-app=landing] .landing-header-github .github-split-toggle:hover,html[data-app=landing] .landing-header-github .github-split-toggle[aria-expanded=true],html[data-app=landing] .landing-header-control:hover{border-color:var(--color-story-white);background-color:var(--color-story-white);color:var(--story-deep)}html[data-app=landing] .landing-header-control{white-space:nowrap;cursor:pointer}html[data-app=landing] .landing-header-show-all{display:none}html[data-app=landing] .landing-header-show-all.is-active{border-color:var(--color-story-white);background-color:var(--color-story-white);color:var(--story-deep)}html[data-app=landing] .landing-header-menu-toggle{cursor:pointer;width:38px;height:38px;padding:0;display:none}html[data-app=landing] .landing-header-menu-toggle:focus-visible,html[data-app=landing] .landing-header-desktop-nav a:focus-visible,html[data-app=landing] .landing-header-desktop-nav button:focus-visible,html[data-app=landing] .landing-header-control:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}html[data-app=landing] .landing-header-menu-overlay,html[data-app=landing] .landing-header-mobile-nav{display:none}html[data-app=landing] .landing-header-menu-overlay{z-index:var(--z-index-mobile-overlay);opacity:0;pointer-events:none;background-color:#0000009e;transition:opacity .15s;position:fixed;inset:0}html[data-app=landing] .landing-header-menu-overlay[data-open=true]{opacity:1;pointer-events:auto}html[data-app=landing] .landing-header-mobile-nav{z-index:var(--z-index-mobile-panel);box-sizing:border-box;border:1px solid color-mix(in srgb, var(--story-accent) 22%, transparent);border-radius:var(--radius-panel);background-color:var(--story-deep);opacity:0;pointer-events:none;grid-template-columns:minmax(0,1fr);gap:4px;width:min(560px,100vw - 32px);max-height:calc(100dvh - 88px);padding:10px;transition:opacity .15s,transform .15s;position:fixed;top:72px;left:50%;overflow-y:auto;transform:translate(-50%,-8px);box-shadow:0 18px 42px -16px #000000c7}html[data-app=landing] .landing-header-mobile-nav[data-open=true]{opacity:1;pointer-events:auto;transform:translate(-50%)}html[data-app=landing] .landing-header-mobile-nav>div{min-height:36px}html[data-app=landing] .landing-header-mobile-nav>button{border-radius:var(--radius-inset);min-height:44px;transition:background-color .15s,color .15s}html[data-app=landing] .landing-header-mobile-nav>button:hover,html[data-app=landing] .landing-header-mobile-nav>button:focus-visible{background-color:color-mix(in srgb, var(--color-story-white) 9%, transparent);color:var(--color-story-white)}html[data-app=landing] .landing-header-mobile-nav>button:focus-visible,html[data-app=landing] .landing-header-mobile-nav>a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}html[data-app=landing] .landing-header-mobile-nav>a{border-radius:var(--radius-control);min-height:44px;margin-top:4px}html[data-app=landing] .landing-story-shell{width:min(calc(100% - 2 * var(--landing-story-gutter)), var(--landing-story-max-width));grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start;column-gap:clamp(2rem,5vw,5rem);display:grid}html[data-app=landing] .landing-story-visual{height:var(--landing-story-figure-height)}@media (min-width:641px){html[data-app=landing] .landing-header-show-all{display:inline-flex}}@media (min-width:1025px){html[data-app=landing] .landing-header-desktop-nav{display:flex}html[data-app=landing] .landing-header-inner[data-scrolled=true]{width:min(900px,100vw - 32px)}}@media (max-width:1024px){html[data-app=landing] .landing-header-console{display:inline-flex}html[data-app=landing] .landing-header-show-all{display:none}}@media (max-width:640px){html[data-app=landing] .landing-header{padding-inline:16px}html[data-app=landing] .landing-header-inner{gap:8px}html[data-app=landing] .landing-header-inner[data-scrolled=true]{padding-inline:10px}html[data-app=landing] .landing-header-show-all,html[data-app=landing] .landing-header-github .github-badge-metric{display:none}html[data-app=landing] .landing-header-github{width:auto;padding-inline:0}html[data-app=landing] .landing-header-github .github-badge{padding-inline:10px}}@media (max-width:380px){html[data-app=landing] .landing-header-brand small{display:none}}@media (max-width:820px){html[data-app=landing] .landing-story-shell{width:calc(100% - 2 * var(--landing-story-tablet-gutter));align-items:stretch;gap:var(--landing-story-stack-gap);flex-direction:column;display:flex}html[data-app=landing] .landing-story-visual{height:var(--landing-story-tablet-figure-height);max-width:var(--landing-story-figure-max-width);margin-inline:auto}}@media (max-width:700px){html[data-app=landing] .landing-signal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:18px;padding-top:10px}html[data-app=landing] .landing-signal-tile{gap:8px;padding:9px}html[data-app=landing] .landing-signal-label{font-size:10px}html[data-app=landing] main>article{align-items:flex-start;min-height:0;padding-block:80px 16px}html[data-app=landing] .landing-story-shell{width:calc(100% - 2 * var(--landing-story-mobile-gutter));gap:10px}html[data-app=landing] .landing-story-visual{aspect-ratio:2.35;height:auto}html[data-app=landing] .landing-story-shell>div>h1{letter-spacing:-.035em;max-width:15ch;margin-top:10px;font-size:clamp(29px,8vw,36px);line-height:.98}html[data-app=landing] .landing-story-description{max-width:none;margin-top:12px;font-size:clamp(15px,4vw,16px);line-height:1.5}}@media (max-width:700px) and (max-height:760px){html[data-app=landing] main>article{padding-block:80px 16px}html[data-app=landing] .landing-story-shell{gap:10px}html[data-app=landing] .landing-story-visual{aspect-ratio:2.4}html[data-app=landing] .landing-story-description{margin-top:12px}html[data-app=landing] .landing-signal-grid{gap:6px;margin-top:14px;padding-top:8px}html[data-app=landing] .landing-signal-tile{gap:6px;padding:7px}html[data-app=landing] .landing-signal-icon{width:24px;height:24px}html[data-app=landing] .landing-story-shell>div>div:last-child{margin-top:8px}}::view-transition-group(story-backdrop){animation-duration:.62s;animation-timing-function:cubic-bezier(.22,.61,.36,1)}::view-transition-group(story-copy){animation-duration:.62s;animation-timing-function:cubic-bezier(.22,.61,.36,1)}::view-transition-old(story-backdrop){animation-duration:.62s}::view-transition-new(story-backdrop){animation-duration:.62s}::view-transition-old(story-copy){animation-duration:.42s}::view-transition-new(story-copy){animation-duration:.42s}@keyframes story-reveal-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes motion-route-in{0%{top:6px}to{top:0}}@keyframes popout-in{0%{opacity:0;transform:translateY(-8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes dialog-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-overlay-out{0%{opacity:1}to{opacity:0}}@keyframes dialog-panel-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:none}}@keyframes dialog-panel-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(8px)scale(.97)}}@keyframes drawer-panel-in{0%{transform:translate(105%)}to{transform:translate(0)}}@keyframes drawer-panel-out{0%{transform:translate(0)}to{transform:translate(105%)}}@keyframes pulse-subtle{0%,to{opacity:1}50%{opacity:.45}}@keyframes message-in{0%{opacity:0}to{opacity:1}}@keyframes stream-caret{0%,to{opacity:.4;transform:translateY(0)}50%{opacity:1;transform:translateY(-1px)}}@keyframes typing-bounce{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.thinking-clamp{max-height:7.5em}.media-preview-frame{max-height:calc(100dvh - 16rem)}.svg-preview-frame{max-height:50vh}@keyframes reset-credit-sheen{0%{background-position:-160% 0}to{background-position:260% 0}}@keyframes reset-credit-glow{0%,to{filter:drop-shadow(0 0 #0000)}50%{filter:drop-shadow(0 0 4px color-mix(in srgb, var(--status-success) 55%, transparent))}}.reset-credit-live{background:linear-gradient(100deg, var(--text-tertiary) 32%, var(--status-success) 50%, var(--text-tertiary) 68%);color:#0000;background-size:220% 100%;-webkit-background-clip:text;background-clip:text;animation:2.4s linear infinite reset-credit-sheen,2.4s ease-in-out infinite reset-credit-glow;display:inline-block}@media (prefers-reduced-motion:reduce){.reset-credit-live{color:var(--status-success);-webkit-text-fill-color:currentColor;background:0 0;animation:none}}.route-enter{animation:motion-route-in var(--dur-macro) var(--ease-spring) both;position:relative}.popout-enter{animation:popout-in var(--dur-micro) var(--ease-spring) both;transform-origin:100% 0}.dialog-overlay{animation:dialog-overlay-in var(--dur-macro) var(--ease-spring) both}.dialog-overlay.closing{animation:dialog-overlay-out var(--dur-micro) var(--ease-spring) both}.dialog-panel{width:min(var(--dialog-width,520px), calc(100vw - 32px));max-height:calc(100dvh - 48px);animation:dialog-panel-in var(--dur-macro) var(--ease-spring) both}.dialog-panel.expanded{width:min(1160px,100vw - 32px)}.dialog-panel.closing{animation:dialog-panel-out var(--dur-micro) var(--ease-spring) both}@media (max-width:640px){.dialog-overlay{padding-bottom:calc(12px + env(safe-area-inset-bottom))}.dialog-panel{max-height:calc(100dvh - 24px)}.dialog-panel.expanded{width:min(1160px,100vw - 24px)}}.drawer-overlay{animation:dialog-overlay-in .18s var(--ease-spring) both}.drawer-overlay.closing,.drawer-overlay[data-state=closing]{animation:dialog-overlay-out var(--dur-micro) var(--ease-spring) both}.drawer-panel{animation:drawer-panel-in .22s var(--ease-spring) both}.drawer-panel.closing,.drawer-panel[data-state=closing]{animation:drawer-panel-out .22s var(--ease-spring) both}.composer-glass{background:color-mix(in srgb, var(--surface-1) calc(40% + var(--blur-cards,30) * 0.55%), transparent);-webkit-backdrop-filter:blur(calc((100 - var(--blur-cards,30)) * var(--blur-cards-depth,30) * .01px))!important}@media (max-width:640px){.studio-model-picker{max-width:calc(100vw - 210px)}}.blur-slider{appearance:none;background:linear-gradient(to right, var(--text-primary) var(--fill,0%), var(--surface-active) var(--fill,0%))}.blur-slider::-webkit-slider-thumb{appearance:none;border:3px solid var(--surface-1);border-radius:var(--radius-full);width:22px;height:22px;box-shadow:0 0 0 1px var(--inner-border);background:#fff}.blur-slider::-moz-range-thumb{border:3px solid var(--surface-1);border-radius:var(--radius-full);width:16px;height:16px;box-shadow:0 0 0 1px var(--inner-border);background:#fff}.code-chip-value{font:inherit}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,120px),1fr))}.provider-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}.routing-controls-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}.quota-account-grid{grid-template-columns:var(--grid-template-columns-quota-account);display:grid}}@layer utilities{.\@container,.\[container-type\:inline-size\]{container-type:inline-size}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.inset-x-4{inset-inline:calc(var(--spacing) * 4)}.inset-y-4{inset-block:calc(var(--spacing) * 4)}.-top-3{top:calc(var(--spacing) * -3)}.-top-4\.5{top:calc(var(--spacing) * -4.5)}.top-0{top:0}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-9{top:calc(var(--spacing) * 9)}.top-full{top:100%}.-right-3{right:calc(var(--spacing) * -3)}.-right-11{right:calc(var(--spacing) * -11)}.right-0{right:0}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-5{right:calc(var(--spacing) * 5)}.right-auto{right:auto}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-0{left:0}.left-3{left:calc(var(--spacing) * 3)}.left-5{left:calc(var(--spacing) * 5)}.left-auto{left:auto}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-30{z-index:30}.z-50{z-index:50}.z-card{z-index:2}.z-chip{z-index:4}.z-drawer{z-index:1000}.z-floating{z-index:30}.z-modal{z-index:1100}.z-popover{z-index:50}.z-toast{z-index:9999}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.row-start-1{grid-row-start:1}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:700px){.container{max-width:700px}}@media (min-width:820px){.container{max-width:820px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1180px){.container{max-width:1180px}}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.m-auto{margin:auto}.mx-0{margin-inline:0}.mx-auto{margin-inline:auto}.my-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-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2\.5{margin-left:calc(var(--spacing) * 2.5)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-8{margin-left:calc(var(--spacing) * 8)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-13{width:calc(var(--spacing) * 13);height:calc(var(--spacing) * 13)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-17{width:calc(var(--spacing) * 17);height:calc(var(--spacing) * 17)}.size-full{width:100%;height:100%}.h-1{height:var(--spacing)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-13{height:calc(var(--spacing) * 13)}.h-14{height:calc(var(--spacing) * 14)}.h-15{height:calc(var(--spacing) * 15)}.h-16{height:calc(var(--spacing) * 16)}.h-18{height:calc(var(--spacing) * 18)}.h-19{height:calc(var(--spacing) * 19)}.h-20{height:calc(var(--spacing) * 20)}.h-22{height:calc(var(--spacing) * 22)}.h-36{height:calc(var(--spacing) * 36)}.h-48{height:calc(var(--spacing) * 48)}.h-60{height:calc(var(--spacing) * 60)}.h-66{height:calc(var(--spacing) * 66)}.h-75{height:calc(var(--spacing) * 75)}.h-80{height:calc(var(--spacing) * 80)}.h-95{height:calc(var(--spacing) * 95)}.h-113\.5{height:calc(var(--spacing) * 113.5)}.h-\[min\(62svh\,540px\)\]{height:min(62svh,540px)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-route{height:var(--height-route)}.max-h-28{max-height:calc(var(--spacing) * 28)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-75{max-height:calc(var(--spacing) * 75)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-110{max-height:calc(var(--spacing) * 110)}.max-h-112{max-height:calc(var(--spacing) * 112)}.max-h-128{max-height:calc(var(--spacing) * 128)}.max-h-140{max-height:calc(var(--spacing) * 140)}.max-h-150{max-height:calc(var(--spacing) * 150)}.max-h-168{max-height:calc(var(--spacing) * 168)}.max-h-170{max-height:calc(var(--spacing) * 170)}.max-h-180{max-height:calc(var(--spacing) * 180)}.max-h-190{max-height:calc(var(--spacing) * 190)}.max-h-210{max-height:calc(var(--spacing) * 210)}.max-h-230{max-height:calc(var(--spacing) * 230)}.max-h-280{max-height:calc(var(--spacing) * 280)}.max-h-\[46vh\]{max-height:46vh}.max-h-\[var\(--radix-select-content-available-height\)\]{max-height:var(--radix-select-content-available-height)}.max-h-none{max-height:none}.max-h-route{max-height:var(--height-route)}.min-h-0{min-height:0}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-10\.5{min-height:calc(var(--spacing) * 10.5)}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-13{min-height:calc(var(--spacing) * 13)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-17{min-height:calc(var(--spacing) * 17)}.min-h-18{min-height:calc(var(--spacing) * 18)}.min-h-21{min-height:calc(var(--spacing) * 21)}.min-h-22{min-height:calc(var(--spacing) * 22)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-32{min-height:calc(var(--spacing) * 32)}.min-h-38{min-height:calc(var(--spacing) * 38)}.min-h-65{min-height:calc(var(--spacing) * 65)}.min-h-110{min-height:calc(var(--spacing) * 110)}.min-h-160{min-height:calc(var(--spacing) * 160)}.min-h-dvh{min-height:100dvh}.min-h-screen{min-height:100vh}.w-1{width:var(--spacing)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-6{width:calc(var(--spacing) * 6)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-13{width:calc(var(--spacing) * 13)}.w-15{width:calc(var(--spacing) * 15)}.w-16{width:calc(var(--spacing) * 16)}.w-18{width:calc(var(--spacing) * 18)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-26{width:calc(var(--spacing) * 26)}.w-29{width:calc(var(--spacing) * 29)}.w-36{width:calc(var(--spacing) * 36)}.w-38{width:calc(var(--spacing) * 38)}.w-39{width:calc(var(--spacing) * 39)}.w-67\.5{width:calc(var(--spacing) * 67.5)}.w-100{width:calc(var(--spacing) * 100)}.w-128{width:calc(var(--spacing) * 128)}.w-140{width:calc(var(--spacing) * 140)}.w-224{width:calc(var(--spacing) * 224)}.w-\[66\%\]{width:66%}.w-\[calc\(100\%-4px\)\]{width:calc(100% - 4px)}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.max-w-70{max-width:calc(var(--spacing) * 70)}.max-w-90{max-width:calc(var(--spacing) * 90)}.max-w-100{max-width:calc(var(--spacing) * 100)}.max-w-105{max-width:calc(var(--spacing) * 105)}.max-w-110{max-width:calc(var(--spacing) * 110)}.max-w-120{max-width:calc(var(--spacing) * 120)}.max-w-140{max-width:calc(var(--spacing) * 140)}.max-w-150{max-width:calc(var(--spacing) * 150)}.max-w-160{max-width:calc(var(--spacing) * 160)}.max-w-260{max-width:calc(var(--spacing) * 260)}.max-w-280{max-width:calc(var(--spacing) * 280)}.max-w-380{max-width:calc(var(--spacing) * 380)}.max-w-480{max-width:calc(var(--spacing) * 480)}.max-w-640{max-width:calc(var(--spacing) * 640)}.max-w-\[545px\]{max-width:545px}.max-w-\[calc\(100\%-var\(--spacing\)\*10\)\]{max-width:calc(100% - var(--spacing) * 10)}.max-w-\[calc\(100vw-var\(--spacing\)\*8\)\]{max-width:calc(100vw - var(--spacing) * 8)}.max-w-bubble-form{max-width:var(--container-bubble-form)}.max-w-full{max-width:100%}.max-w-qris-badge{max-width:var(--container-qris-badge)}.min-w-0{min-width:0}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-38{min-width:calc(var(--spacing) * 38)}.min-w-44{min-width:calc(var(--spacing) * 44)}.min-w-46{min-width:calc(var(--spacing) * 46)}.min-w-55{min-width:calc(var(--spacing) * 55)}.min-w-64{min-width:calc(var(--spacing) * 64)}.min-w-74{min-width:calc(var(--spacing) * 74)}.min-w-90{min-width:calc(var(--spacing) * 90)}.min-w-110{min-width:calc(var(--spacing) * 110)}.min-w-140{min-width:calc(var(--spacing) * 140)}.min-w-\[13ch\]{min-width:13ch}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.flex-\[1_1_20rem\]{flex:20rem}.flex-\[1_1_160px\]{flex:160px}.flex-auto{flex:auto}.flex-none{flex:none}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-60{flex-basis:calc(var(--spacing) * 60)}.basis-110{flex-basis:calc(var(--spacing) * 110)}.basis-auto{flex-basis:auto}.basis-full{flex-basis:100%}.border-collapse{border-collapse:collapse}.translate-x-8{--tw-translate-x:calc(var(--spacing) * 8);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-108{--tw-scale-x:108%;--tw-scale-y:108%;--tw-scale-z:108%;scale:var(--tw-scale-x) var(--tw-scale-y)}.-rotate-90{rotate:-90deg}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-message-in{animation:var(--animate-message-in)}.animate-pulse{animation:var(--animate-pulse)}.animate-pulse-subtle{animation:var(--animate-pulse-subtle)}.animate-spin{animation:var(--animate-spin)}.animate-stream-caret{animation:var(--animate-stream-caret)}.animate-typing-bounce{animation:var(--animate-typing-bounce)}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.cursor-zoom-in{cursor:zoom-in}.touch-pan-x{--tw-pan-x:pan-x;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.touch-pan-y{--tw-pan-y:pan-y;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.touch-none{touch-action:none}.resize-none{resize:none}.resize-y{resize:vertical}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.grid-cols-access{grid-template-columns:var(--grid-template-columns-access)}.grid-cols-qris{grid-template-columns:var(--grid-template-columns-qris)}.grid-cols-quota-window{grid-template-columns:var(--grid-template-columns-quota-window)}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.\[align-content\:start\]{align-content:start}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-evenly{justify-content:space-evenly}.justify-start{justify-content:flex-start}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-1\.75{gap:calc(var(--spacing) * 1.75)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-4\.5{gap:calc(var(--spacing) * 4.5)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-5\.25{gap:calc(var(--spacing) * 5.25)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-7{gap:calc(var(--spacing) * 7)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-9{gap:calc(var(--spacing) * 9)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-12{gap:calc(var(--spacing) * 12)}.gap-16{gap:calc(var(--spacing) * 16)}.gap-\[8px\]{gap:8px}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-1{row-gap:var(--spacing)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-inner-border>:not(:last-child)){border-color:var(--inner-border)}.self-center{align-self:center}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-clip{overflow-x:clip}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.rounded{border-radius:.25rem}.rounded-\[50\%\]{border-radius:50%}.rounded-card{border-radius:var(--radius-card)}.rounded-chip{border-radius:var(--radius-chip)}.rounded-composer{border-radius:10px}.rounded-control{border-radius:var(--radius-control)}.rounded-full{border-radius:9999px}.rounded-hero{border-radius:var(--radius-hero)}.rounded-inset,.rounded-lg{border-radius:var(--radius-inset)}.rounded-md{border-radius:var(--radius-chip)}.rounded-micro{border-radius:var(--radius-micro)}.rounded-narrow{border-radius:var(--radius-narrow)}.rounded-panel{border-radius:var(--radius-panel)}.rounded-pill{border-radius:var(--radius-pill)}.rounded-sidebar{border-radius:var(--radius-sidebar)}.rounded-tiny{border-radius:var(--radius-tiny)}.rounded-xl{border-radius:var(--radius-control)}.rounded-tl-none{border-top-left-radius:0}.rounded-tr-none{border-top-right-radius:0}.rounded-br-none{border-bottom-right-radius:0}.rounded-br-tiny{border-bottom-right-radius:var(--radius-tiny)}.rounded-bl-none{border-bottom-left-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-\[color-mix\(in_srgb\,var\(--green\)_40\%\,transparent\)\]{border-color:var(--green)}@supports (color:color-mix(in lab, red, red)){.border-\[color-mix\(in_srgb\,var\(--green\)_40\%\,transparent\)\]{border-color:color-mix(in srgb,var(--green) 40%,transparent)}}.border-accent,.border-accent\/25{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.border-accent\/25{border-color:color-mix(in oklab, var(--accent) 25%, transparent)}}.border-accent\/30{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.border-accent\/30{border-color:color-mix(in oklab, var(--accent) 30%, transparent)}}.border-border-strong{border-color:var(--border-strong)}.border-border-subtle{border-color:var(--border-subtle)}.border-current{border-color:currentColor}.border-glass-border-2{border-color:var(--glass-border-2)}.border-inner-border{border-color:var(--inner-border)}.border-orange{border-color:var(--orange)}.border-orange-soft{border-color:var(--orange-soft)}.border-red-soft{border-color:var(--red-soft)}.border-story-white\/10{border-color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.border-story-white\/10{border-color:color-mix(in oklab, var(--text-primary) 10%, transparent)}}.border-story-white\/20{border-color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.border-story-white\/20{border-color:color-mix(in oklab, var(--text-primary) 20%, transparent)}}.border-story-white\/25{border-color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.border-story-white\/25{border-color:color-mix(in oklab, var(--text-primary) 25%, transparent)}}.border-teal-soft{border-color:var(--teal-soft)}.border-transparent{border-color:#0000}.border-warning-line{border-color:var(--status-warning)}@supports (color:color-mix(in lab, red, red)){.border-warning-line{border-color:color-mix(in srgb, var(--status-warning) 45%, transparent)}}.bg-\[\#090d16\]{background-color:#090d16}.bg-\[\#fff\]{background-color:#fff}.bg-\[color-mix\(in_srgb\,var\(--red\)_8\%\,transparent\)\]{background-color:var(--red)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--red\)_8\%\,transparent\)\]{background-color:color-mix(in srgb,var(--red) 8%,transparent)}}.bg-accent{background-color:var(--accent)}.bg-accent-foreground{background-color:var(--accent-foreground)}.bg-accent-soft{background-color:var(--accent-soft)}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab, red, red)){.bg-black\/70{background-color:color-mix(in oklab, var(--color-black) 70%, transparent)}}.bg-code-surface{background-color:var(--code-surface)}.bg-current{background-color:currentColor}.bg-glass-bg{background-color:var(--glass-bg)}.bg-green-soft,.bg-green-soft\/40{background-color:var(--green-soft)}@supports (color:color-mix(in lab, red, red)){.bg-green-soft\/40{background-color:color-mix(in oklab, var(--green-soft) 40%, transparent)}}.bg-hover{background-color:var(--hover)}.bg-inner-border{background-color:var(--inner-border)}.bg-input-bg{background-color:var(--input-bg)}.bg-kbd-bg{background-color:var(--kbd-bg)}.bg-orange-soft{background-color:var(--orange-soft)}.bg-overlay{background-color:#0006}.bg-popover-bg{background-color:var(--popover-bg)}.bg-red{background-color:var(--red)}.bg-red-soft{background-color:var(--red-soft)}.bg-status-danger{background-color:var(--status-danger)}.bg-status-info-soft{background-color:var(--status-info-soft)}.bg-status-success{background-color:var(--status-success)}.bg-story-deep{background-color:var(--story-deep)}.bg-story-ink{background-color:var(--story-ink)}.bg-story-surface{background-color:var(--story-surface)}.bg-story-white,.bg-story-white\/6{background-color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.bg-story-white\/6{background-color:color-mix(in oklab, var(--text-primary) 6%, transparent)}}.bg-story-white\/8{background-color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.bg-story-white\/8{background-color:color-mix(in oklab, var(--text-primary) 8%, transparent)}}.bg-surface-1{background-color:var(--surface-1)}.bg-surface-2{background-color:var(--surface-2)}.bg-surface-active{background-color:var(--surface-active)}.bg-surface-muted{background-color:var(--surface-muted)}.bg-teal{background-color:var(--teal)}.bg-teal-soft{background-color:var(--teal-soft)}.bg-text-primary{background-color:var(--text-primary)}.bg-text-secondary{background-color:var(--text-secondary)}.bg-text-tertiary{background-color:var(--text-tertiary)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-window-close{background-color:#ff5f57}.bg-window-expand{background-color:#28c840}.bg-window-minimize{background-color:#febc2e}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-\[linear-gradient\(to_right\,color-mix\(in_srgb\,var\(--accent\)_20\%\,transparent\)\,transparent\)\]{background-image:linear-gradient(to right,var(--accent),transparent)}@supports (color:color-mix(in lab, red, red)){.bg-\[linear-gradient\(to_right\,color-mix\(in_srgb\,var\(--accent\)_20\%\,transparent\)\,transparent\)\]{background-image:linear-gradient(to right,color-mix(in srgb,var(--accent) 20%,transparent),transparent)}}.bg-\[linear-gradient\(to_right\,color-mix\(in_srgb\,var\(--story-accent\)_2\.4\%\,transparent\)_1px\,transparent_1px\)\,linear-gradient\(to_bottom\,color-mix\(in_srgb\,var\(--story-accent\)_2\.4\%\,transparent\)_1px\,transparent_1px\)\]{background-image:linear-gradient(to right,var(--story-accent) 1px,transparent 1px),linear-gradient(to bottom,var(--story-accent) 1px,transparent 1px)}@supports (color:color-mix(in lab, red, red)){.bg-\[linear-gradient\(to_right\,color-mix\(in_srgb\,var\(--story-accent\)_2\.4\%\,transparent\)_1px\,transparent_1px\)\,linear-gradient\(to_bottom\,color-mix\(in_srgb\,var\(--story-accent\)_2\.4\%\,transparent\)_1px\,transparent_1px\)\]{background-image:linear-gradient(to right,color-mix(in srgb,var(--story-accent) 2.4%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in srgb,var(--story-accent) 2.4%,transparent) 1px,transparent 1px)}}.bg-\[linear-gradient\(to_right\,red_1px\,transparent_1px\)\]{background-image:linear-gradient(90deg,red 1px,#0000 1px)}.bg-none{background-image:none}.from-story-deep\/85{--tw-gradient-from:var(--story-deep)}@supports (color:color-mix(in lab, red, red)){.from-story-deep\/85{--tw-gradient-from:color-mix(in oklab, var(--story-deep) 85%, transparent)}}.from-story-deep\/85{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-surface-2{--tw-gradient-from:var(--surface-2);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-hover{--tw-gradient-via:var(--hover);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-story-deep\/10{--tw-gradient-via:var(--story-deep)}@supports (color:color-mix(in lab, red, red)){.via-story-deep\/10{--tw-gradient-via:color-mix(in oklab, var(--story-deep) 10%, transparent)}}.via-story-deep\/10{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-surface-2{--tw-gradient-to:var(--surface-2);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-\[length\:44px_100\%\,100\%_40px\]{background-size:44px 100%,100% 40px}.bg-cover{background-size:cover}.bg-center{background-position:50%}.fill-teal{fill:var(--teal)}.fill-text-primary{fill:var(--text-primary)}.fill-track{fill:var(--track)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-center{object-position:center}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-7{padding:calc(var(--spacing) * 7)}.p-8{padding:calc(var(--spacing) * 8)}.p-9{padding:calc(var(--spacing) * 9)}.p-10{padding:calc(var(--spacing) * 10)}.p-12{padding:calc(var(--spacing) * 12)}.p-16{padding:calc(var(--spacing) * 16)}.px-0{padding-inline:0}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-4\.5{padding-inline:calc(var(--spacing) * 4.5)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-7{padding-inline:calc(var(--spacing) * 7)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-9{padding-inline:calc(var(--spacing) * 9)}.px-12{padding-inline:calc(var(--spacing) * 12)}.px-\[7px\]{padding-inline:7px}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-1\.75{padding-block:calc(var(--spacing) * 1.75)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-4\.5{padding-block:calc(var(--spacing) * 4.5)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-9{padding-block:calc(var(--spacing) * 9)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-px{padding-block:1px}.pt-0{padding-top:0}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-7{padding-top:calc(var(--spacing) * 7)}.pt-9{padding-top:calc(var(--spacing) * 9)}.pt-40{padding-top:calc(var(--spacing) * 40)}.pt-44{padding-top:calc(var(--spacing) * 44)}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-18{padding-right:calc(var(--spacing) * 18)}.pr-20{padding-right:calc(var(--spacing) * 20)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pb-17\.5{padding-bottom:calc(var(--spacing) * 17.5)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pl-0{padding-left:0}.pl-1{padding-left:var(--spacing)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-15{padding-left:calc(var(--spacing) * 15)}.pl-16{padding-left:calc(var(--spacing) * 16)}.pl-36{padding-left:calc(var(--spacing) * 36)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.font-head{font-family:var(--font-head)}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[clamp\(38px\,4\.4vw\,68px\)\]{font-size:clamp(38px,4.4vw,68px)}.text-badge{font-size:11px}.text-body{font-size:13px}.text-body-lg{font-size:14px}.text-caption{font-size:12px}.text-display{font-size:21px}.text-hero{font-size:28px}.text-lead{font-size:16px}.text-micro{font-size:10px}.text-story-hero{font-size:clamp(38px,4.4vw,68px)}.text-title{font-size:18px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-14{--tw-leading:calc(var(--spacing) * 14);line-height:calc(var(--spacing) * 14)}.leading-\[0\.98\]{--tw-leading:.98;line-height:.98}.leading-\[1\.3\]{--tw-leading:1.3;line-height:1.3}.leading-\[1\.4\]{--tw-leading:1.4;line-height:1.4}.leading-\[1\.05\]{--tw-leading:1.05;line-height:1.05}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-\[1\.15\]{--tw-leading:1.15;line-height:1.15}.leading-\[1\.35\]{--tw-leading:1.35;line-height:1.35}.leading-\[1\]{--tw-leading:1;line-height:1}.leading-chat{--tw-leading:var(--leading-chat);line-height:var(--leading-chat)}.leading-loose{--tw-leading:var(--leading-loose);line-height:var(--leading-loose)}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.01em\]{--tw-tracking:-.01em;letter-spacing:-.01em}.tracking-\[-0\.02em\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-\[-0\.045em\]{--tw-tracking:-.045em;letter-spacing:-.045em}.tracking-\[0\.04em\]{--tw-tracking:.04em;letter-spacing:.04em}.tracking-\[0\.05em\]{--tw-tracking:.05em;letter-spacing:.05em}.tracking-code{--tw-tracking:.18em;letter-spacing:.18em}.tracking-label{--tw-tracking:.08em;letter-spacing:.08em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-balance{text-wrap:balance}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.\[overflow-wrap\:break-word\],.break-words{overflow-wrap:break-word}.wrap-anywhere{overflow-wrap:anywhere}.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.\!text-red{color:var(--red)!important}.text-\[inherit\]{color:inherit}.text-accent{color:var(--accent)}.text-accent-foreground{color:var(--accent-foreground)}.text-green{color:var(--green)}.text-inherit{color:inherit}.text-orange{color:var(--orange)}.text-purple{color:var(--purple)}.text-red{color:var(--red)}.text-status-danger{color:var(--status-danger)}.text-status-info{color:var(--status-info)}.text-status-success{color:var(--status-success)}.text-status-warning{color:var(--status-warning)}.text-story-accent{color:var(--story-accent)}.text-story-deep{color:var(--story-deep)}.text-story-ink{color:var(--story-ink)}.text-story-white,.text-story-white\/50{color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.text-story-white\/50{color:color-mix(in oklab, var(--text-primary) 50%, transparent)}}.text-story-white\/65{color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.text-story-white\/65{color:color-mix(in oklab, var(--text-primary) 65%, transparent)}}.text-story-white\/70{color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.text-story-white\/70{color:color-mix(in oklab, var(--text-primary) 70%, transparent)}}.text-story-white\/75{color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.text-story-white\/75{color:color-mix(in oklab, var(--text-primary) 75%, transparent)}}.text-surface-1{color:var(--surface-1)}.text-teal{color:var(--teal)}.text-text-primary{color:var(--text-primary)}.text-text-secondary{color:var(--text-secondary)}.text-text-tertiary{color:var(--text-tertiary)}.text-white{color:var(--color-white)}.text-window-close-ink{color:#7a1c17}.text-window-expand-ink{color:#0b5a22}.text-window-minimize-ink{color:#6d4b00}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.caret-text-primary{caret-color:var(--text-primary)}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-45{opacity:.45}.opacity-50{opacity:.5}.opacity-55{opacity:.55}.opacity-60{opacity:.6}.opacity-65{opacity:.65}.opacity-70{opacity:.7}.opacity-72{opacity:.72}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-100{opacity:1}.opacity-\[0\.35\]{opacity:.35}.mix-blend-screen{mix-blend-mode:screen}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_1px_2px_rgba\(…\)\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,rgba(…));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_20px_60px_rgba\(0\,0\,0\,0\.45\)\]{--tw-shadow:0 20px 60px var(--tw-shadow-color,#00000073);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-card{--tw-shadow:var(--shadow-card);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-composer{--tw-shadow:0 8px 28px -18px var(--tw-shadow-color,#0000008c);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-glow-success{--tw-shadow:0 0 8px var(--tw-shadow-color,#34d399b3);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-popout{--tw-shadow:var(--shadow-popout);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-ribbon{--tw-shadow:0 1px 3px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-window{--tw-shadow:0 24px 70px -15px var(--tw-shadow-color,#000000a6), 0 0 0 1px var(--tw-shadow-color,var(--inner-border));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-dialog{--tw-backdrop-blur:blur(6px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-saturate-150{--tw-backdrop-saturate:saturate(150%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[border-color\,background-color\,color\]{transition-property:border-color,background-color,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[border-color\,background-color\]{transition-property:border-color,background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[border-color\,box-shadow\]{transition-property:border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[filter\]{transition-property:filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[outline-offset\]{transition-property:outline-offset;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[transform\,border-color\,box-shadow\]{transition-property:transform,border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.delay-100{transition-delay:.1s}.delay-150{transition-delay:.15s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.duration-\(--dur-macro\){--tw-duration:var(--dur-macro);transition-duration:var(--dur-macro)}.duration-\(--dur-micro\){--tw-duration:var(--dur-micro);transition-duration:var(--dur-micro)}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-spring{--tw-ease:var(--ease-spring);transition-timing-function:var(--ease-spring)}.ease-standard{--tw-ease:ease;transition-timing-function:ease}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.\[animation-delay\:0\.3s\]{animation-delay:.3s}.\[animation-delay\:0\.15s\]{animation-delay:.15s}.\[container-name\:account-list\]{container-name:account-list}.\[user-select\:all\]{-webkit-user-select:all;user-select:all}.group-open\:rotate-180:is(:where(.group):is([open],:popover-open,:open) *){rotate:180deg}@media (hover:hover){.group-hover\:scale-104:is(:where(.group):hover *){--tw-scale-x:104%;--tw-scale-y:104%;--tw-scale-z:104%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:text-text-primary:is(:where(.group):hover *){color:var(--text-primary)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.file\:mr-4::file-selector-button{margin-right:calc(var(--spacing) * 4)}.file\:h-full::file-selector-button{height:100%}.file\:cursor-pointer::file-selector-button{cursor:pointer}.file\:rounded-l-control::file-selector-button{border-top-left-radius:var(--radius-control);border-bottom-left-radius:var(--radius-control)}.file\:rounded-r-none::file-selector-button{border-top-right-radius:0;border-bottom-right-radius:0}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:border-r::file-selector-button{border-right-style:var(--tw-border-style);border-right-width:1px}.file\:border-inner-border::file-selector-button{border-color:var(--inner-border)}.file\:bg-surface-1::file-selector-button{background-color:var(--surface-1)}.file\:px-5::file-selector-button{padding-inline:calc(var(--spacing) * 5)}.file\:py-0::file-selector-button{padding-block:0}.file\:font-sans::file-selector-button{font-family:var(--font-sans)}.file\:text-badge::file-selector-button{font-size:11px}.file\:font-semibold::file-selector-button{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.file\:text-text-primary::file-selector-button{color:var(--text-primary)}.placeholder\:text-text-tertiary::placeholder{color:var(--text-tertiary)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:inset-x-0:before{content:var(--tw-content);inset-inline:0}.before\:top-0:before{content:var(--tw-content);top:0}.before\:h-0\.5:before{content:var(--tw-content);height:calc(var(--spacing) * .5)}.before\:bg-accent:before{content:var(--tw-content);background-color:var(--accent)}.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-0:after{content:var(--tw-content);inset:0}.after\:bg-gradient-to-b:after{content:var(--tw-content);--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.after\:from-story-deep\/4:after{content:var(--tw-content);--tw-gradient-from:var(--story-deep)}@supports (color:color-mix(in lab, red, red)){.after\:from-story-deep\/4:after{--tw-gradient-from:color-mix(in oklab, var(--story-deep) 4%, transparent)}}.after\:from-story-deep\/4:after{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.after\:via-story-deep\/30:after{content:var(--tw-content);--tw-gradient-via:var(--story-deep)}@supports (color:color-mix(in lab, red, red)){.after\:via-story-deep\/30:after{--tw-gradient-via:color-mix(in oklab, var(--story-deep) 30%, transparent)}}.after\:via-story-deep\/30:after{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.after\:to-story-deep\/60:after{content:var(--tw-content);--tw-gradient-to:var(--story-deep)}@supports (color:color-mix(in lab, red, red)){.after\:to-story-deep\/60:after{--tw-gradient-to:color-mix(in oklab, var(--story-deep) 60%, transparent)}}.after\:to-story-deep\/60:after{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.focus-within\:border-text-tertiary:focus-within{border-color:var(--text-tertiary)}.focus-within\:opacity-100:focus-within{opacity:1}@media (hover:hover){.hover\:w-\[40px\]:hover{width:40px}.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:scale-112:hover{--tw-scale-x:112%;--tw-scale-y:112%;--tw-scale-z:112%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-accent:hover{border-color:var(--accent)}.hover\:border-border-strong:hover{border-color:var(--border-strong)}.hover\:border-current:hover{border-color:currentColor}.hover\:border-red:hover{border-color:var(--red)}.hover\:bg-accent-hover:hover{background-color:var(--accent-hover)}.hover\:bg-accent-soft:hover{background-color:var(--accent-soft)}.hover\:bg-active-pill:hover{background-color:var(--active-pill)}.hover\:bg-hover:hover{background-color:var(--hover)}.hover\:bg-inner-border:hover{background-color:var(--inner-border)}.hover\:bg-red-soft:hover{background-color:var(--red-soft)}.hover\:bg-story-white\/18:hover{background-color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-story-white\/18:hover{background-color:color-mix(in oklab, var(--text-primary) 18%, transparent)}}.hover\:bg-surface-hover:hover{background-color:var(--surface-hover)}.hover\:bg-surface-muted:hover{background-color:var(--surface-muted)}.hover\:text-red:hover{color:var(--red)}.hover\:text-text-primary:hover{color:var(--text-primary)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-card:hover{--tw-shadow:var(--shadow-card);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-window:hover{--tw-shadow:0 24px 70px -15px var(--tw-shadow-color,#000000a6), 0 0 0 1px var(--tw-shadow-color,var(--inner-border));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:outline:hover{outline-style:var(--tw-outline-style);outline-width:1px}.hover\:outline-2:hover{outline-style:var(--tw-outline-style);outline-width:2px}.hover\:outline-accent:hover{outline-color:var(--accent)}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.file\:hover\:bg-surface-hover::file-selector-button:hover{background-color:var(--surface-hover)}}.focus\:border-accent:focus{border-color:var(--accent)}.focus\:shadow-focus:focus{--tw-shadow:0 0 0 2px var(--tw-shadow-color,var(--accent))}@supports (color:color-mix(in lab, red, red)){.focus\:shadow-focus:focus{--tw-shadow:0 0 0 2px var(--tw-shadow-color,color-mix(in srgb, var(--accent) 15%, transparent))}}.focus\:shadow-focus:focus{box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-story-white\/30:focus-visible{--tw-ring-color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-story-white\/30:focus-visible{--tw-ring-color:color-mix(in oklab, var(--text-primary) 30%, transparent)}}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-1:focus-visible{outline-offset:1px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-accent:focus-visible{outline-color:var(--accent)}.focus-visible\:outline-current:focus-visible{outline-color:currentColor}.focus-visible\:outline-focus-ring:focus-visible{outline-color:var(--focus-ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\:scale-97:active{--tw-scale-x:97%;--tw-scale-y:97%;--tw-scale-z:97%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\:scale-\[0\.97\]:active{scale:.97}.active\:cursor-grabbing:active{cursor:grabbing}@media (hover:hover){.enabled\:hover\:border-border-strong:enabled:hover{border-color:var(--border-strong)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:text-text-tertiary:disabled{color:var(--text-tertiary)}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-35:disabled{opacity:.35}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:file\:cursor-not-allowed:disabled::file-selector-button{cursor:not-allowed}.has-checked\:border-accent:has(:checked){border-color:var(--accent)}.has-checked\:bg-accent-soft:has(:checked){background-color:var(--accent-soft)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:cursor-default[aria-disabled=true]{cursor:default}.aria-disabled\:opacity-70[aria-disabled=true]{opacity:.7}.data-\[disabled\]\:cursor-not-allowed[data-disabled]{cursor:not-allowed}.data-\[disabled\]\:opacity-40[data-disabled]{opacity:.4}.data-\[highlighted\]\:bg-surface-hover[data-highlighted]{background-color:var(--surface-hover)}.data-\[state\=checked\]\:font-semibold[data-state=checked]{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.data-\[state\=open\]\:block[data-state=open]{display:block}@media (prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}}@media not all and (min-width:1180px){.max-wide\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media not all and (min-width:820px){.max-medium\:mt-0{margin-top:0}.max-medium\:ml-0{margin-left:0}.max-medium\:grid{display:grid}.max-medium\:hidden{display:none}.max-medium\:inline-flex{display:inline-flex}.max-medium\:h-80{height:calc(var(--spacing) * 80)}.max-medium\:min-h-0{min-height:0}.max-medium\:w-\[calc\(100\%-8px\)\]{width:calc(100% - 8px)}.max-medium\:w-auto{width:auto}.max-medium\:w-full{width:100%}.max-medium\:max-w-bubble-narrow{max-width:var(--container-bubble-narrow)}.max-medium\:min-w-0{min-width:0}.max-medium\:flex-\[1_1_160px\]{flex:160px}.max-medium\:flex-auto{flex:auto}.max-medium\:flex-none{flex:none}.max-medium\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.max-medium\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.max-medium\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.max-medium\:flex-col{flex-direction:column}.max-medium\:items-start{align-items:flex-start}.max-medium\:items-stretch{align-items:stretch}.max-medium\:justify-between{justify-content:space-between}.max-medium\:gap-2{gap:calc(var(--spacing) * 2)}.max-medium\:gap-3{gap:calc(var(--spacing) * 3)}.max-medium\:gap-4{gap:calc(var(--spacing) * 4)}.max-medium\:overflow-x-auto{overflow-x:auto}.max-medium\:p-5{padding:calc(var(--spacing) * 5)}.max-medium\:px-5{padding-inline:calc(var(--spacing) * 5)}.max-medium\:py-36{padding-block:calc(var(--spacing) * 36)}}@media not all and (min-width:700px){.max-compact\:mt-5{margin-top:calc(var(--spacing) * 5)}.max-compact\:h-21{height:calc(var(--spacing) * 21)}.max-compact\:max-w-full{max-width:100%}.max-compact\:px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.max-compact\:px-8{padding-inline:calc(var(--spacing) * 8)}.max-compact\:py-52{padding-block:calc(var(--spacing) * 52)}.max-compact\:pb-16{padding-bottom:calc(var(--spacing) * 16)}.max-compact\:text-badge{font-size:11px}.max-compact\:text-body{font-size:13px}.max-compact\:text-story-hero-compact{font-size:clamp(34px,10.5vw,56px)}.max-compact\:leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}}@media not all and (min-width:640px){.max-small\:inset-0{inset:0}.max-small\:left-4{left:calc(var(--spacing) * 4)}.max-small\:col-span-full{grid-column:1/-1}.max-small\:col-start-1{grid-column-start:1}.max-small\:col-start-2{grid-column-start:2}.max-small\:row-start-1{grid-row-start:1}.max-small\:row-start-2{grid-row-start:2}.max-small\:row-start-3{grid-row-start:3}.max-small\:ml-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-3{padding:calc(var(--spacing) * 3)}.max-small\:p-6{padding:calc(var(--spacing) * 6)}.max-small\:px-3{padding-inline:calc(var(--spacing) * 3)}.max-small\:px-4{padding-inline:calc(var(--spacing) * 4)}.max-small\:py-2{padding-block:calc(var(--spacing) * 2)}.max-small\:py-4{padding-block:calc(var(--spacing) * 4)}.max-small\:pt-4{padding-top:calc(var(--spacing) * 4)}.max-small\:pb-3{padding-bottom:calc(var(--spacing) * 3)}.max-small\:text-center{text-align:center}.max-small\:leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}}@media not all and (min-width:48rem){.max-md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}}@media not all and (min-width:40rem){.max-sm\:hidden{display:none}.max-sm\:w-auto{width:auto}.max-sm\:min-w-32{min-width:calc(var(--spacing) * 32)}.max-sm\:flex-none{flex:none}.max-sm\:grid-cols-qris-compact{grid-template-columns:var(--grid-template-columns-qris-compact)}.max-sm\:flex-col{flex-direction:column}.max-sm\:items-stretch{align-items:stretch}.max-sm\:gap-3{gap:calc(var(--spacing) * 3)}.max-sm\:self-start{align-self:flex-start}.max-sm\:p-4{padding:calc(var(--spacing) * 4)}.max-sm\:p-5{padding:calc(var(--spacing) * 5)}.max-sm\:pt-3{padding-top:calc(var(--spacing) * 3)}.max-sm\:text-caption{font-size:12px}.max-sm\:text-lead{font-size:16px}.max-sm\:leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}}@media (min-width:640px){.min-\[640px\]\:inline-flex{display:inline-flex}}@media (min-width:641px){.min-\[641px\]\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:820px){.min-\[820px\]\:w-\[40px\]{width:40px}.min-\[820px\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:40rem){.sm\:inline-flex{display:inline-flex}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:justify-start{justify-content:flex-start}.sm\:gap-6{gap:calc(var(--spacing) * 6)}}@media (min-width:64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.\[\&_\.btn\]\:w-full .btn{width:100%}.\[\&_\.btn\]\:min-w-0 .btn{min-width:0}.\[\&_\.form-group\]\:gap-2 .form-group{gap:calc(var(--spacing) * 2)}.\[\&_\.radix-select-trigger\]\:bg-hover .radix-select-trigger{background-color:var(--hover)}.\[\&_\.radix-select-trigger\]\:font-semibold .radix-select-trigger{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_\.radix-select-trigger\]\:text-text-primary .radix-select-trigger{color:var(--text-primary)}.\[\&_\.state-box\]\:gap-3 .state-box{gap:calc(var(--spacing) * 3)}.\[\&_\.state-box\]\:py-4 .state-box{padding-block:calc(var(--spacing) * 4)}.\[\&_\.state-box-icon\]\:size-15 .state-box-icon{width:calc(var(--spacing) * 15);height:calc(var(--spacing) * 15)}@media not all and (min-width:640px){.max-small\:\[\&_button\]\:w-full button{width:100%}}.\[\&_code\]\:overflow-hidden code{overflow:hidden}.\[\&_code\]\:font-mono code{font-family:var(--font-mono)}.\[\&_code\]\:text-caption code{font-size:12px}.\[\&_code\]\:text-ellipsis code{text-overflow:ellipsis}.\[\&_code\]\:whitespace-nowrap code{white-space:nowrap}.\[\&_code\]\:text-text-primary code{color:var(--text-primary)}.\[\&_ol\]\:m-0 ol{margin:0}.\[\&_ol\]\:mb-4 ol{margin-bottom:calc(var(--spacing) * 4)}.\[\&_ol\:last-child\]\:mb-0 ol:last-child{margin-bottom:0}.\[\&_p\]\:m-0 p{margin:0}.\[\&_p\]\:my-2 p{margin-block:calc(var(--spacing) * 2)}.\[\&_p\]\:mb-4 p{margin-bottom:calc(var(--spacing) * 4)}.\[\&_p\:first-child\]\:mt-0 p:first-child{margin-top:0}.\[\&_p\:last-child\]\:mb-0 p:last-child{margin-bottom:0}.\[\&_pre\]\:m-0 pre{margin:0}.\[\&_pre\]\:mb-4 pre{margin-bottom:calc(var(--spacing) * 4)}.\[\&_pre\]\:overflow-x-auto pre{overflow-x:auto}.\[\&_pre\]\:rounded-control pre{border-radius:var(--radius-control)}.\[\&_pre\]\:bg-surface-muted pre{background-color:var(--surface-muted)}.\[\&_pre\]\:px-6 pre{padding-inline:calc(var(--spacing) * 6)}.\[\&_pre\]\:py-5 pre{padding-block:calc(var(--spacing) * 5)}.\[\&_pre\]\:font-mono pre{font-family:var(--font-mono)}.\[\&_pre\]\:text-caption pre{font-size:12px}.\[\&_pre\:last-child\]\:mb-0 pre:last-child{margin-bottom:0}.\[\&_span\]\:font-mono span{font-family:var(--font-mono)}.\[\&_span\]\:text-micro span{font-size:10px}.\[\&_span\]\:text-text-tertiary span{color:var(--text-tertiary)}.\[\&_strong\]\:font-semibold strong{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_svg\]\:mt-1\.5 svg{margin-top:calc(var(--spacing) * 1.5)}.\[\&_svg\]\:size-3 svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\]\:size-6\.5 svg{width:calc(var(--spacing) * 6.5);height:calc(var(--spacing) * 6.5)}.\[\&_svg\]\:size-7\.5 svg{width:calc(var(--spacing) * 7.5);height:calc(var(--spacing) * 7.5)}.\[\&_svg\]\:size-\[30px\] svg{width:30px;height:30px}.\[\&_svg\]\:flex-none svg{flex:none}.\[\&_svg\]\:text-text-tertiary svg{color:var(--text-tertiary)}.\[\&_svg\]\:transition-transform svg{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.\[\&_svg\]\:duration-150 svg{--tw-duration:.15s;transition-duration:.15s}.\[\&_svg\]\:ease-spring svg{--tw-ease:var(--ease-spring);transition-timing-function:var(--ease-spring)}.data-\[state\=open\]\:\[\&_svg\]\:rotate-180[data-state=open] svg,.\[\&_svg\[data-open\=true\]\]\:rotate-180 svg[data-open=true]{rotate:180deg}.\[\&_td\]\:border-b td{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_td\]\:border-surface-muted td{border-color:var(--surface-muted)}.\[\&_td\]\:px-4 td{padding-inline:calc(var(--spacing) * 4)}.\[\&_td\]\:px-5 td{padding-inline:calc(var(--spacing) * 5)}.\[\&_td\]\:py-2\.5 td{padding-block:calc(var(--spacing) * 2.5)}.\[\&_td\]\:py-4 td{padding-block:calc(var(--spacing) * 4)}.\[\&_td\]\:text-text-secondary td{color:var(--text-secondary)}.\[\&_td\]\:tabular-nums td{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.\[\&_th\]\:border-b th{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_th\]\:border-inner-border th{border-color:var(--inner-border)}.\[\&_th\]\:px-4 th{padding-inline:calc(var(--spacing) * 4)}.\[\&_th\]\:px-5 th{padding-inline:calc(var(--spacing) * 5)}.\[\&_th\]\:py-2\.5 th{padding-block:calc(var(--spacing) * 2.5)}.\[\&_th\]\:py-3 th{padding-block:calc(var(--spacing) * 3)}.\[\&_th\]\:text-left th{text-align:left}.\[\&_th\]\:font-mono th{font-family:var(--font-mono)}.\[\&_th\]\:text-micro th{font-size:10px}.\[\&_th\]\:font-bold th{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.\[\&_th\]\:font-semibold th{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_th\]\:tracking-label th{--tw-tracking:.08em;letter-spacing:.08em}.\[\&_th\]\:tracking-normal th{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.\[\&_th\]\:text-text-secondary th{color:var(--text-secondary)}.\[\&_th\]\:text-text-tertiary th{color:var(--text-tertiary)}.\[\&_th\]\:normal-case th{text-transform:none}.\[\&_th\]\:uppercase th{text-transform:uppercase}.\[\&_thead_th\]\:sticky thead th{position:sticky}.\[\&_thead_th\]\:top-0 thead th{top:0}.\[\&_thead_th\]\:z-card thead th{z-index:2}.\[\&_thead_th\]\:bg-surface-2 thead th{background-color:var(--surface-2)}.\[\&_tr\:last-child_td\]\:border-b-0 tr:last-child td{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.\[\&_ul\]\:m-0 ul{margin:0}.\[\&_ul\]\:mb-4 ul{margin-bottom:calc(var(--spacing) * 4)}.\[\&_ul\:last-child\]\:mb-0 ul:last-child{margin-bottom:0}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}.\[\&\>\*\]\:w-full>*{width:100%}.\[\&\>\*\]\:min-w-0>*{min-width:0}.\[\&\>button\]\:w-full>button{width:100%}.\[\&\>button\]\:shrink-0>button{flex-shrink:0}.\[\&\>button\]\:cursor-pointer>button{cursor:pointer}.\[\&\>button\]\:justify-between>button{justify-content:space-between}.\[\&\>code\]\:block>code{display:block}.\[\&\>code\]\:min-w-0>code{min-width:0}.\[\&\>code\]\:flex-1>code{flex:1}.\[\&\>code\]\:overflow-hidden>code{overflow:hidden}.\[\&\>code\]\:rounded-inset>code{border-radius:var(--radius-inset)}.\[\&\>code\]\:border>code{border-style:var(--tw-border-style);border-width:1px}.\[\&\>code\]\:border-inner-border>code{border-color:var(--inner-border)}.\[\&\>code\]\:bg-code-surface>code{background-color:var(--code-surface)}.\[\&\>code\]\:p-5>code{padding:calc(var(--spacing) * 5)}.\[\&\>code\]\:font-mono>code{font-family:var(--font-mono)}.\[\&\>code\]\:text-caption>code{font-size:12px}.\[\&\>code\]\:leading-normal>code{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.\[\&\>code\]\:text-ellipsis>code{text-overflow:ellipsis}.\[\&\>code\]\:whitespace-nowrap>code{white-space:nowrap}.\[\&\>code\]\:text-text-primary>code{color:var(--text-primary)}.\[\&\>div\:last-child\]\:flex-wrap>div:last-child{flex-wrap:wrap}.\[\&\>input\]\:min-h-11>input{min-height:calc(var(--spacing) * 11)}.\[\&\>input\]\:w-full>input{width:100%}.\[\&\>input\]\:rounded-control>input{border-radius:var(--radius-control)}.\[\&\>input\]\:border>input{border-style:var(--tw-border-style);border-width:1px}.\[\&\>input\]\:border-inner-border>input{border-color:var(--inner-border)}.\[\&\>input\]\:bg-surface-1>input{background-color:var(--surface-1)}.\[\&\>input\]\:px-3>input{padding-inline:calc(var(--spacing) * 3)}.\[\&\>input\]\:text-body>input{font-size:13px}.\[\&\>input\]\:font-medium>input{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&\>input\]\:text-text-primary>input{color:var(--text-primary)}.\[\&\>input\]\:focus-visible\:outline-2>input:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.\[\&\>input\]\:focus-visible\:outline-offset-2>input:focus-visible{outline-offset:2px}.\[\&\>input\]\:focus-visible\:outline-focus-ring>input:focus-visible{outline-color:var(--focus-ring)}.\[\&\>p\]\:my-0>p{margin-block:0}.\[\&\>span\]\:flex>span{display:flex}.\[\&\>span\]\:inline-flex>span{display:inline-flex}.\[\&\>span\]\:h-8>span{height:calc(var(--spacing) * 8)}.\[\&\>span\]\:items-center>span{align-items:center}.\[\&\>span\]\:gap-1>span{gap:var(--spacing)}.\[\&\>span\]\:overflow-hidden>span{overflow:hidden}.\[\&\>span\]\:border-0>span{border-style:var(--tw-border-style);border-width:0}.\[\&\>span\]\:border-r>span{border-right-style:var(--tw-border-style);border-right-width:1px}.\[\&\>span\]\:border-r-inner-border>span{border-right-color:var(--inner-border)}.\[\&\>span\]\:bg-transparent>span{background-color:#0000}.\[\&\>span\]\:px-2\.5>span{padding-inline:calc(var(--spacing) * 2.5)}.\[\&\>span\]\:font-mono>span{font-family:var(--font-mono)}.\[\&\>span\]\:font-sans>span{font-family:var(--font-sans)}.\[\&\>span\]\:text-micro>span{font-size:10px}.\[\&\>span\]\:leading-none>span{--tw-leading:1;line-height:1}.\[\&\>span\]\:text-ellipsis>span{text-overflow:ellipsis}.\[\&\>span\]\:whitespace-nowrap>span{white-space:nowrap}.\[\&\>span\]\:text-inherit>span{color:inherit}.\[\&\>span\]\:text-text-tertiary>span{color:var(--text-tertiary)}.\[\&\>span\]\:tabular-nums>span{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}@media not all and (min-width:640px){.max-small\:\[\&\>span\]\:w-fit>span{width:-moz-fit-content;width:fit-content}.max-small\:\[\&\>span\]\:max-w-full>span{max-width:100%}.max-small\:\[\&\>span\]\:text-center>span{text-align:center}.max-small\:\[\&\>span\]\:break-words>span{overflow-wrap:break-word}.max-small\:\[\&\>span\]\:whitespace-normal>span{white-space:normal}}.\[\&\>span\:last-child\]\:border-r-0>span:last-child{border-right-style:var(--tw-border-style);border-right-width:0}.\[\&\>strong\]\:font-head>strong{font-family:var(--font-head)}.\[\&\>strong\]\:font-sans>strong{font-family:var(--font-sans)}.\[\&\>strong\]\:text-body-lg>strong{font-size:14px}.\[\&\>strong\]\:font-semibold>strong{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&\>strong\]\:text-green>strong{color:var(--green)}.\[\&\>strong\]\:text-text-primary>strong{color:var(--text-primary)}.mlab-turn:focus-within .\[\.mlab-turn\:focus-within_\&\]\:opacity-100,.mlab-turn:hover .\[\.mlab-turn\:hover_\&\]\:opacity-100{opacity:1}details[open] .\[details\[open\]_\&\]\:rotate-180{rotate:180deg}}:root{--story-accent:var(--status-info);--story-ink:var(--text-primary);--story-muted:var(--text-secondary);--story-deep:var(--page-bg);--story-surface:var(--surface-1);--story-night:var(--status-info);--story-core:var(--purple);--story-blossom:var(--red);--story-voices:var(--purple);--story-red:var(--status-danger);--story-denial:var(--status-warning);--story-shore:var(--teal);--landing-story-max-width:1496px;--landing-story-gutter:96px;--landing-story-tablet-gutter:24px;--landing-story-mobile-gutter:16px;--landing-story-stack-gap:36px;--landing-story-figure-height:min(62svh, 480px);--landing-story-tablet-figure-height:min(45svh, 420px);--landing-story-figure-max-width:600px;--landing-story-mobile-aspect:3 / 2;--page-bg:#f7f3ed;--ease-spring:cubic-bezier(.32, .72, 0, 1);--dur-micro:.15s;--dur-macro:.25s;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--font-head:"Space Grotesk", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--radius-micro:3px;--radius-tiny:5px;--radius-chip:6px;--radius-narrow:7px;--radius-inset:8px;--radius-control:9px;--radius-panel:10px;--radius-card:12px;--radius-hero:14px;--radius-sidebar:12px;--radius-pill:10px;--topbar-height:56px;--surface-1:#fffdf8;--surface-2:#fffefc;--surface-muted:#f3eee8;--surface-hover:#ece6de;--surface-active:#e4ddd4;--text-primary:#2d2926;--text-secondary:#5c544e;--text-tertiary:#8a8078;--border-subtle:#e4d7cb;--border-strong:#d8c7b8;--inner-border:var(--border-subtle);--glass-border:var(--border-strong);--accent:#2e2e32;--accent-soft:#eeebe7;--accent-foreground:#fff;--accent-hover:#1c1c1f;--status-success:#4c9368;--status-danger:#c95145;--status-warning:#d97706;--status-info:#3b82f6;--status-info-soft:#e8f1fe;--green:var(--status-success);--red:var(--status-danger);--orange:#e67e22;--teal:#0d9488;--purple:#8b5cf6;--green-soft:#edf5ef;--red-soft:#f7ebe8;--orange-soft:#fbf0e4;--teal-soft:#e6f6f5;--purple-soft:#f3effc;--focus-ring:#2e2e32;--track:#e5d8c9;--code-surface:#f9f5ee;--popover-bg:#fffefb;--hover:var(--surface-muted);--active-pill:var(--surface-hover);--kbd-bg:#f2e9de;--input-bg:var(--surface-2);--border-soft:var(--border-subtle);--glass-bg:#fffdf8e0;--glass-bg-2:#fffefcf0;--glass-border-2:#ffffffc7;--shadow-card:0 1px 2px #5338240a, 0 10px 28px -4px #53382414;--shadow-popout:0 20px 50px -10px #5338242e, 0 0 0 1px var(--inner-border);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--page-bg:#08080b;--surface-1:#1c1c20;--surface-2:#222228;--surface-muted:#2a2a30;--surface-hover:#313137;--surface-active:#38383f;--text-primary:#f5f5f7;--text-secondary:#c4c4c8;--text-tertiary:#8d8d93;--border-subtle:#2f2f36;--border-strong:#3a3a42;--inner-border:var(--border-subtle);--glass-border:var(--border-strong);--accent:#f5f5f7;--accent-soft:#2a2a2f;--accent-foreground:#0b0b0f;--accent-hover:#fff;--status-success:#34d399;--status-danger:#f87171;--status-warning:#fbbf24;--status-info:#60a5fa;--status-info-soft:#1e2a3d;--green:var(--status-success);--red:var(--status-danger);--orange:#fb923c;--teal:#2dd4bf;--purple:#c084fc;--green-soft:#223228;--red-soft:#332625;--orange-soft:#2f2f34;--teal-soft:#243234;--purple-soft:#2c2634;--focus-ring:#f5f5f7;--track:#2d2d34;--code-surface:#202026;--popover-bg:#1c1c20;--hover:var(--surface-muted);--active-pill:var(--surface-hover);--kbd-bg:#23232a;--glass-bg:#1c1c20bf;--glass-bg-2:#222228e0;--glass-border-2:#ffffff29;--shadow-card:0 1px 2px #0000004d, 0 16px 40px #00000073;--shadow-popout:0 24px 60px -12px #000000a6, 0 0 0 1px var(--inner-border);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-pan-x{syntax:"*";inherits:false}@property --tw-pan-y{syntax:"*";inherits:false}@property --tw-pinch-zoom{syntax:"*";inherits:false}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@container account-list (width<=560px){.account-row{grid-template-columns:auto minmax(0,1fr);row-gap:8px}.account-row-actions{grid-column:1/-1;justify-content:flex-start}}.signal-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,110px),1fr))}.account-row-grid{grid-template-columns:auto minmax(0,1fr) auto}.popover-max{max-width:calc(100vw - 2rem)}.estimate-dot{width:13px;height:13px}.routing-slider{appearance:none;border-radius:var(--radius-control);border:1px solid var(--inner-border);background:var(--surface-2);cursor:pointer;--slider-fill:var(--accent);height:20px}.routing-slider[data-unlimited=true]{--slider-fill:var(--status-success)}.routing-slider:focus-visible{border-color:var(--accent);outline:none}.routing-slider::-webkit-slider-runnable-track{border-radius:var(--radius-control);background:linear-gradient(to right, var(--slider-fill) var(--slider-pct,0%), transparent var(--slider-pct,0%));height:20px}.routing-slider::-webkit-slider-thumb{appearance:none;background:var(--accent-foreground);width:8px;height:12px;box-shadow:0 0 0 1px color-mix(in srgb, var(--text-primary) 35%, transparent);border-radius:3px;margin-top:4px}.routing-slider::-moz-range-track{border-radius:var(--radius-control);background:0 0;height:20px}.routing-slider::-moz-range-progress{border-radius:var(--radius-control) 0 0 var(--radius-control);background:var(--slider-fill);height:20px}.routing-slider::-moz-range-thumb{background:var(--accent-foreground);width:8px;height:12px;box-shadow:0 0 0 1px color-mix(in srgb, var(--text-primary) 35%, transparent);border:none;border-radius:3px}.banner{--banner-accent:var(--status-info)}.banner[data-tone=success]{--banner-accent:var(--status-success);--banner-ink:var(--status-success)}.banner[data-tone=danger]{--banner-accent:var(--status-danger);--banner-ink:var(--status-danger)}.banner[data-tone=warning]{--banner-accent:var(--status-warning);--banner-ink:var(--text-secondary)}.banner[data-surface=page]{--banner-line:color-mix(in srgb, var(--banner-accent) var(--banner-line-alpha), transparent);--banner-surface:color-mix(in srgb, var(--banner-accent) var(--banner-surface-alpha), transparent)}.banner[data-surface=raised]{--banner-line:color-mix(in srgb, var(--banner-accent) var(--banner-line-alpha), var(--inner-border));--banner-surface:color-mix(in srgb, var(--banner-accent) var(--banner-surface-alpha), var(--surface-2))}.banner{border-color:var(--banner-line);background:var(--banner-surface);color:var(--banner-ink)}.stat-card-value{font-family:var(--font-mono,monospace);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-weight:700;line-height:1.15}.stat-card-value[data-fit=default]{font-size:var(--text-display)}.stat-card-value[data-fit=medium]{font-size:var(--text-body-lg)}.stat-card-value[data-fit=long]{font-size:var(--text-caption);letter-spacing:-.01em}.donate-qr-grid{grid-template-columns:minmax(0,1fr)}@media (min-width:1024px){.donate-qr-grid{grid-template-columns:minmax(0,220px) minmax(0,1fr)}}.donate-qr-image{max-width:220px}.settings-page{flex-direction:column;flex:auto;gap:18px;min-width:0;display:flex}.settings-row{grid-template-columns:minmax(0,1fr) minmax(180px,300px);align-items:start;gap:12px 24px;min-width:0;padding:15px 0;display:grid}.settings-row+.settings-row{border-top:1px solid var(--border-subtle)}.settings-group-head+.settings-row{border-top:0}.settings-row-text{min-width:0}.settings-row-label{font-weight:600;font-size:var(--text-body);cursor:default;display:block}label.settings-row-label{cursor:pointer}.settings-row-hint{color:var(--text-tertiary);font-size:var(--text-caption);max-width:52ch;margin:3px 0 0;line-height:1.5}.settings-row-control{justify-self:end;width:100%;min-width:0}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:18px;min-width:0;display:grid}.settings-row-banner{padding:0 0 15px}@media (max-width:820px){.settings-row{grid-template-columns:minmax(0,1fr)}.settings-row-control{justify-self:start}}.settings-actions{border-top:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:flex-end;gap:10px;padding-top:16px;display:flex}.settings-group-head{font-size:var(--text-caption);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-tertiary);padding:18px 0 2px;font-weight:600}.settings-group-head:first-child{padding-top:4px}.settings-bucket-grid{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:12px;min-width:0;display:grid}
@@ -1 +0,0 @@
1
- import{n as e,o as t,r as n,t as r}from"./jsx-runtime-CXUMngI_.js";import{l as i}from"./app-wvwCi4Eh.js";import{n as a,t as o}from"./brain-Cwed_72z.js";import{C as s,D as c,S as l,T as u,a as d,b as ee,c as f,d as p,f as m,g as h,p as te,s as g,u as ne,w as _,y as re}from"./numbers-BNDZnsUE.js";import{t as v}from"./chevron-right-BXIy5l3h.js";import{t as y}from"./circle-check-BU3v_mFW.js";import{t as ie}from"./eye-C_hawfH4.js";import{r as ae,t as oe}from"./github-badge-Orjuzemr.js";import{n as se,r as ce,t as le}from"./state-DLS7IDMy.js";import{t as ue}from"./key-round-UkavsGxp.js";import{n as de,r as fe,t as b}from"./clipboard-button-DOfrVmsi.js";import{t as x}from"./scaling-nWE4Cx8f.js";import{t as S}from"./wrench-B6E1oEuY.js";import{n as C,t as w}from"./card-Be5Uzamx.js";import{n as pe,t as me}from"./download-dRFo5_Wu.js";import{a as T,l as E,m as D,o as O,s as k}from"./tokens-COzario9.js";import{t as A}from"./stream-retry-5QnVuSSo.js";var j=e(`chart-column`,[[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`,key:`c24i48`}],[`path`,{d:`M18 17V9`,key:`2bz60n`}],[`path`,{d:`M13 17V5`,key:`1frdt8`}],[`path`,{d:`M8 17v-3`,key:`17ska0`}]]),M=t(n(),1),N=i();function P(e){if(e===`link_expired_or_used`)return`This enrollment link has expired or has already been used.`;if(e===`key_unavailable`)return`The shared access template is no longer available.`;if(e===`link_not_found`)return`This enrollment link is unavailable.`;if(e===`link_disabled`)return`This share link's API key is paused. Ask whoever shared this link to re-enable it.`;if(e===`link_expired`)return`This share link has expired.`;if(e===`link_revoked`)return`This share link's API key has been revoked, so the link can no longer be used. Ask whoever shared this link for a new one — a revoked key cannot be re-enabled.`}function F(e,t){let n=e.error;return P(typeof n==`string`?n:n?.code)??(typeof n==`string`?n:n?.message)??e.message??t}function I(e){let t=e.error;return(typeof t==`string`?t:t?.code)??null}function he(e,t){let n=t?.streamEvent,[r,i]=(0,M.useState)({data:null,error:null,code:null,loading:!0});return(0,M.useEffect)(()=>{let t=!0,r=new AbortController,a,o,s=e=>{i({data:e,error:null,code:null,loading:!1})};if(n===void 0)return fetch(e,{signal:r.signal,credentials:`same-origin`,cache:`no-store`,referrerPolicy:`no-referrer`}).then(async e=>{let n=await e.json();if(t){if(!e.ok){i({data:null,error:F(n,`This enrollment link is unavailable.`),code:I(n),loading:!1});return}s(n)}}).catch(e=>{e instanceof DOMException&&e.name===`AbortError`||t&&i({data:null,error:`Unable to reach the Cartethyia gateway.`,code:null,loading:!1})}),()=>{t=!1,r.abort()};let c=!1,l=()=>{if(!t)return;let r=new EventSource(e);a=r,r.addEventListener(n,e=>{if(t)try{s(JSON.parse(e.data))}catch{}}),r.addEventListener(`error`,()=>{r.close(),t&&(c||(c=!0,i(e=>e.data===null?{...e,loading:!1}:e)),o=setTimeout(l,A))})};return l(),()=>{t=!1,a?.close(),clearTimeout(o)}},[e,n]),r}var L=r(),R=`max-h-168 w-full min-w-0 overflow-x-auto overflow-y-auto touch-pan-x touch-pan-y [&_thead_th]:sticky [&_thead_th]:top-0 [&_thead_th]:z-card [&_thead_th]:bg-surface-2`,z=`w-full border-collapse text-caption [&_th]:border-b [&_th]:border-inner-border [&_th]:px-5 [&_th]:py-3 [&_th]:text-left [&_th]:font-mono [&_th]:text-micro [&_th]:font-bold [&_th]:uppercase [&_th]:tracking-label [&_th]:text-text-tertiary [&_td]:border-b [&_td]:border-surface-muted [&_td]:px-5 [&_td]:py-4 [&_td]:text-text-secondary [&_tr:last-child_td]:border-b-0 [&_code]:overflow-hidden [&_code]:text-ellipsis [&_code]:whitespace-nowrap`,B=(0,M.createContext)({data:null,loading:!0,unit:T,cycleUnit:()=>void 0}),V=`cartethyia:share-token-unit`;function H(){try{let e=window.localStorage.getItem(V);if(e===null)return T;if(e===`auto`)return-1;let t=Number(e);return Number.isInteger(t)&&t>=0&&t<=T?t:T}catch{return T}}function U(e){return e===-1?0:e>=T?-1:e+1}function W(e){return e===-1?`auto`:e>=T?`raw`:O[e]?.suffix??`auto`}function ge({path:e,children:t}){let n=he(e,{streamEvent:`stats`}),[r,i]=(0,M.useState)(()=>typeof window>`u`?T:H()),a=(0,M.useCallback)(()=>{i(e=>{let t=U(e);try{window.localStorage.setItem(V,t===-1?`auto`:String(t))}catch{}return t})},[]);return(0,L.jsx)(B.Provider,{value:{data:n.data,loading:n.loading,unit:r,cycleUnit:a},children:t})}function G(){let{unit:e,cycleUnit:t}=(0,M.useContext)(B),n=W(e),r=W(U(e));return(0,L.jsxs)(`button`,{type:`button`,className:`ml-auto inline-flex min-h-6 items-center gap-1 rounded-chip border border-inner-border bg-surface-2 px-2 text-text-secondary font-mono text-micro font-bold uppercase tracking-[0.04em] cursor-pointer hover:border-accent hover:text-text-primary`,"aria-label":`Token unit: currently ${n}, switch to ${r}`,title:`Show ${r}`,onClick:t,children:[(0,L.jsx)(x,{size:11,"aria-hidden":`true`}),n]})}function _e({policy:e}){let{data:t}=(0,M.useContext)(B);return(0,L.jsx)(Z,{policy:e,stats:t})}function ve(){let{data:e,loading:t}=(0,M.useContext)(B);return(0,L.jsx)(Se,{stats:e,loading:t})}function K(){let{unit:e}=(0,M.useContext)(B);return(0,M.useCallback)(t=>D(t,e),[e])}function q(e){return Number.isFinite(e)?Math.max(0,Math.round(e)).toLocaleString():`—`}function ye(e){return e===null||!Number.isFinite(e)||e<=0?`—`:`${Number(e.toFixed(1))} t/s`}function J(e){return e===null||!Number.isFinite(e)||e<=0?`—`:e>=1e3?`${Number((e/1e3).toFixed(1))}s`:`${Math.round(e)}ms`}function Y(e){if(!e)return`—`;let t=new Date(e).getTime();if(!Number.isFinite(t))return`—`;let n=Math.max(0,Math.round((Date.now()-t)/1e3));if(n<60)return`just now`;let r=Math.round(n/60);if(r<60)return`${r} min ago`;let i=Math.round(r/60);return i<24?`${i} h ago`:new Date(e).toLocaleDateString()}function X(e){let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:00`}function Z({policy:e,stats:t}){let n=K(),r=[{label:`Lifetime`,used:t?.totals?.totalTokens??0,limit:e.oneTimeLimit},{label:`Daily`,used:t?.totals?.todayTokens??0,limit:e.dailyLimit},{label:`Monthly`,used:t?.totals?.monthTokens??0,limit:e.monthlyLimit}],i=t?.recipients;return(0,L.jsxs)(`div`,{className:`mt-5 flex flex-col gap-6 border-t border-inner-border pt-9`,children:[r.map(e=>{let t=e.limit!==null&&e.limit>0,r=t?Math.min(1,e.used/e.limit):1;return(0,L.jsxs)(`div`,{className:`flex items-center gap-6 max-sm:flex-col max-sm:items-stretch max-sm:gap-3`,children:[(0,L.jsx)(`span`,{className:`w-39 shrink-0 text-text-secondary font-mono text-micro uppercase tracking-label max-sm:w-auto`,children:e.label}),(0,L.jsx)(`div`,{className:`relative h-4 flex-1 overflow-hidden rounded-tiny bg-teal max-sm:flex-none`,title:t?`${n(e.used)} of ${n(e.limit)} used`:`${n(e.used)} used (no limit set)`,children:t?(0,L.jsx)(`div`,{className:`h-full rounded-tiny bg-red transition-[width] duration-200`,style:{width:`${Math.round(r*100)}%`}}):null}),(0,L.jsxs)(`span`,{className:`whitespace-nowrap text-text-secondary font-mono text-micro [&>strong]:text-text-primary [&>strong]:font-semibold max-sm:self-start`,children:[(0,L.jsx)(`strong`,{children:n(e.used)}),t?` / ${n(e.limit)}`:` used`]})]},e.label)}),(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,L.jsxs)(`span`,{className:`inline-flex min-h-14 items-center gap-3.5 rounded-pill border border-inner-border bg-surface-2 px-5 py-2.5 text-text-secondary font-mono text-badge leading-[1.3]`,children:[`RPM `,e.requestsPerMinute??`unlimited`]}),(0,L.jsxs)(`span`,{className:`inline-flex min-h-14 items-center gap-3.5 rounded-pill border border-inner-border bg-surface-2 px-5 py-2.5 text-text-secondary font-mono text-badge leading-[1.3]`,children:[`Concurrent `,e.maxConcurrentRequests??`unlimited`]}),i?(0,L.jsxs)(`span`,{className:`inline-flex min-h-14 items-center gap-3.5 rounded-pill border border-inner-border bg-surface-2 px-5 py-2.5 text-text-secondary font-mono text-badge leading-[1.3]`,children:[i.active,` / `,i.total,` recipients active`]}):null,(0,L.jsx)(G,{})]})]})}function be({hourly:e}){let t=K(),n=Math.max(1,...e.map(e=>e.requests)),r=e.length*10,[i,a]=(0,M.useState)(null),o=(t,n)=>{let r=t.getBoundingClientRect();if(r.width===0||e.length===0)return null;let i=Math.floor((n-r.left)/r.width*e.length);return i>=0&&i<e.length?i:null},s=i===null?void 0:e[i];return(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`div`,{className:`mb-2 flex min-h-9 items-baseline gap-4 text-text-tertiary font-mono text-badge [&>strong]:text-text-primary [&>strong]:font-head [&>strong]:text-body-lg [&>strong]:font-semibold`,"aria-live":`polite`,children:s?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`strong`,{children:t(s.tokens)}),(0,L.jsxs)(`span`,{children:[X(s.hour),` · `,q(s.requests),` req`]})]}):(0,L.jsx)(`span`,{children:`drag a bar`})}),(0,L.jsx)(`div`,{className:`cursor-crosshair touch-none`,onPointerEnter:e=>a(o(e.currentTarget,e.clientX)),onPointerMove:e=>a(o(e.currentTarget,e.clientX)),onPointerLeave:()=>a(null),children:(0,L.jsx)(`svg`,{className:`h-22 w-full`,viewBox:`0 0 ${r} 44`,preserveAspectRatio:`none`,role:`img`,"aria-label":`Requests per hour over the last 24 hours`,children:e.map((e,r)=>{let a=Math.round(e.requests/n*40);return(0,L.jsx)(`rect`,{className:`${e.requests===0?`fill-track`:`fill-teal`}${r===i?` fill-text-primary`:``}`,x:r*10+1,y:44-Math.max(2,a),width:7,height:Math.max(2,a),rx:1.5,children:(0,L.jsx)(`title`,{children:`${t(e.tokens)} tokens · ${q(e.requests)} requests`})},e.hour)})})}),(0,L.jsxs)(`div`,{className:`mt-1.5 flex justify-between text-text-tertiary font-mono text-micro`,children:[(0,L.jsx)(`span`,{children:e.length?X(e[0].hour):``}),(0,L.jsx)(`span`,{children:`last 24h`}),(0,L.jsx)(`span`,{children:e.length?X(e[e.length-1].hour):``})]})]})}function xe({value:e,max:t,label:n}){let r=t>0?Math.min(1,e/t):0;return(0,L.jsxs)(`div`,{className:`flex min-w-55 items-center gap-4 max-sm:min-w-32`,children:[(0,L.jsx)(`div`,{className:`h-3 min-w-0 flex-1 overflow-hidden rounded-tiny bg-surface-muted`,children:(0,L.jsx)(`div`,{className:`h-full rounded-tiny bg-teal`,style:{width:`${Math.round(r*100)}%`}})}),(0,L.jsx)(`span`,{className:`min-w-8 text-right font-mono text-micro text-text-secondary`,children:n})]})}function Se({stats:e,loading:t}){let[n,r]=(0,M.useState)(!1),i=K(),a=e?.totals,o=e?.models??[],c=e?.clientIps??[],l=Math.max(1,...o.map(e=>e.tokens)),u=Math.max(1,...c.map(e=>e.requests));return(0,L.jsxs)(w,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg p-5 backdrop-blur-md backdrop-saturate-150`,children:[(0,L.jsxs)(`button`,{type:`button`,className:`group flex w-full cursor-pointer items-center gap-3 bg-transparent p-0 text-left`,"aria-expanded":n,onClick:()=>r(e=>!e),children:[(0,L.jsx)(v,{size:14,className:`shrink-0 text-text-secondary transition-transform duration-200${n?` rotate-90`:``}`,"aria-hidden":`true`}),(0,L.jsx)(`span`,{className:`text-text-secondary font-mono text-badge font-bold tracking-label transition-colors duration-150 group-hover:text-text-primary`,children:`STATS & ACTIVITY`}),(0,L.jsxs)(`span`,{className:`ml-auto flex flex-wrap items-center gap-2 text-text-tertiary font-mono text-micro max-medium:hidden`,children:[(0,L.jsxs)(`span`,{children:[c.length,` IPs`]}),(0,L.jsx)(`span`,{children:`·`}),(0,L.jsxs)(`span`,{children:[o.length,` models`]}),(0,L.jsx)(`span`,{children:`·`}),(0,L.jsxs)(`span`,{children:[q(a?.requests??0),` req`]})]})]}),n?(0,L.jsx)(`div`,{className:`mt-5 flex flex-col gap-5`,children:t&&!e?(0,L.jsx)(`p`,{className:`py-9 text-center text-text-tertiary text-caption`,children:`Loading activity…`}):e?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:`grid grid-cols-4 gap-5 max-wide:grid-cols-2 max-narrow:grid-cols-1`,children:[(0,L.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-panel border border-inner-border bg-surface-2 px-7 py-6`,children:[(0,L.jsx)(`span`,{className:`text-text-tertiary font-mono text-micro uppercase tracking-label`,children:`Requests`}),(0,L.jsx)(`span`,{className:`font-head text-display font-semibold tracking-tight`,children:q(a?.requests??0)}),(0,L.jsxs)(`span`,{className:`text-text-secondary text-micro`,children:[q(a?.errors??0),` errors`]})]}),(0,L.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-panel border border-inner-border bg-surface-2 px-7 py-6`,children:[(0,L.jsx)(`span`,{className:`text-text-tertiary font-mono text-micro uppercase tracking-label`,children:`Tokens`}),(0,L.jsx)(`span`,{className:`font-head text-display font-semibold tracking-tight`,children:i(a?.totalTokens??0)}),(0,L.jsx)(`span`,{className:`text-text-secondary text-micro`,children:`all time`})]}),(0,L.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-panel border border-inner-border bg-surface-2 px-7 py-6`,children:[(0,L.jsx)(`span`,{className:`text-text-tertiary font-mono text-micro uppercase tracking-label`,children:`Last hour`}),(0,L.jsx)(`span`,{className:`font-head text-display font-semibold tracking-tight`,children:q(a?.lastHourRequests??0)}),(0,L.jsx)(`span`,{className:`text-text-secondary text-micro`,children:`requests in 60 min`})]}),(0,L.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-panel border border-inner-border bg-surface-2 px-7 py-6`,children:[(0,L.jsx)(`span`,{className:`text-text-tertiary font-mono text-micro uppercase tracking-label`,children:`Models`}),(0,L.jsx)(`span`,{className:`font-head text-display font-semibold tracking-tight`,children:o.length}),(0,L.jsx)(`span`,{className:`text-text-secondary text-micro`,children:`in use`})]})]}),(0,L.jsx)(be,{hourly:e.hourly}),(0,L.jsxs)(`section`,{"aria-label":`Top models`,children:[(0,L.jsx)(`div`,{className:`flex items-center justify-between gap-6`,children:(0,L.jsxs)(`h3`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-badge font-bold tracking-label transition-colors duration-150`,children:[(0,L.jsx)(j,{size:13,"aria-hidden":`true`}),` TOP MODELS`]})}),o.length===0?(0,L.jsx)(`p`,{className:`py-9 text-center text-text-tertiary text-caption`,children:`No model traffic yet.`}):(0,L.jsx)(`div`,{className:R,children:(0,L.jsxs)(`table`,{className:z,children:[(0,L.jsx)(`thead`,{children:(0,L.jsxs)(`tr`,{children:[(0,L.jsx)(`th`,{scope:`col`,"aria-label":`Rank`}),(0,L.jsx)(`th`,{scope:`col`,children:`Model`}),(0,L.jsx)(`th`,{scope:`col`,className:`text-right`,children:`Req`}),(0,L.jsx)(`th`,{scope:`col`,className:`text-right`,title:`Average output tokens per second`,children:`Avg t/s`}),(0,L.jsx)(`th`,{scope:`col`,className:`text-right`,title:`Average time to first token`,children:`TTFT`}),(0,L.jsx)(`th`,{scope:`col`,children:`Tokens`})]})}),(0,L.jsx)(`tbody`,{children:o.map((e,t)=>(0,L.jsxs)(`tr`,{children:[(0,L.jsx)(`td`,{className:`w-13 font-mono text-micro text-text-tertiary`,children:t+1}),(0,L.jsx)(`td`,{children:(0,L.jsx)(`span`,{className:`flex min-w-0 flex-col gap-1 [&_code]:overflow-hidden [&_code]:text-ellipsis [&_code]:whitespace-nowrap [&_code]:text-text-primary [&_code]:text-caption [&_span]:font-mono [&_span]:text-micro [&_span]:text-text-tertiary`,children:(0,L.jsx)(`code`,{title:e.modelId,children:e.modelId})})}),(0,L.jsx)(`td`,{className:`text-right`,children:q(e.requests)}),(0,L.jsx)(`td`,{className:`text-right`,children:ye(e.avgTokensPerSec)}),(0,L.jsx)(`td`,{className:`text-right`,children:J(e.avgTtfbMs)}),(0,L.jsx)(`td`,{children:(0,L.jsx)(xe,{value:e.tokens,max:l,label:i(e.tokens)})})]},e.modelId))})]})})]}),(0,L.jsxs)(`section`,{"aria-label":`Client IPs`,children:[(0,L.jsx)(`div`,{className:`flex items-center justify-between gap-6`,children:(0,L.jsxs)(`h3`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-badge font-bold tracking-label transition-colors duration-150`,children:[(0,L.jsx)(s,{size:13,"aria-hidden":`true`}),` CLIENT IPS`]})}),c.length===0?(0,L.jsx)(`p`,{className:`py-9 text-center text-text-tertiary text-caption`,children:`No client addresses recorded yet.`}):(0,L.jsx)(`div`,{className:R,children:(0,L.jsxs)(`table`,{className:z,children:[(0,L.jsx)(`thead`,{children:(0,L.jsxs)(`tr`,{children:[(0,L.jsx)(`th`,{scope:`col`,children:`Address`}),(0,L.jsx)(`th`,{scope:`col`,children:`Client`}),(0,L.jsx)(`th`,{scope:`col`,className:`text-right`,children:`Req`}),(0,L.jsx)(`th`,{scope:`col`,children:`Tokens`}),(0,L.jsx)(`th`,{scope:`col`,children:`Last seen`})]})}),(0,L.jsx)(`tbody`,{children:c.map(e=>(0,L.jsxs)(`tr`,{children:[(0,L.jsx)(`td`,{children:(0,L.jsx)(`code`,{children:e.ip})}),(0,L.jsx)(`td`,{children:e.clientType?(0,L.jsx)(`span`,{className:`inline-block max-w-full overflow-hidden text-ellipsis whitespace-nowrap rounded-pill border border-inner-border bg-surface-2 px-3 py-px font-mono text-micro text-text-secondary`,children:e.clientType}):(0,L.jsx)(`span`,{className:`inline-block max-w-full overflow-hidden text-ellipsis whitespace-nowrap rounded-pill border border-inner-border bg-surface-2 px-3 py-px font-mono text-micro italic text-text-tertiary`,children:`unknown`})}),(0,L.jsx)(`td`,{className:`text-right`,children:q(e.requests)}),(0,L.jsx)(`td`,{children:(0,L.jsx)(xe,{value:e.requests,max:u,label:i(e.tokens)})}),(0,L.jsx)(`td`,{children:Y(e.lastSeenAt)})]},e.ip))})]})})]})]}):(0,L.jsx)(`p`,{className:`py-9 text-center text-text-tertiary text-caption`,children:`Activity is unavailable right now.`})}):null]})}var Ce=`cartethyia-share-keys`,Q=`issued-keys`,we=1;function $(){return new Promise((e,t)=>{if(typeof indexedDB>`u`){t(Error(`IndexedDB is unavailable`));return}let n=indexedDB.open(Ce,we);n.onupgradeneeded=()=>{n.result.objectStoreNames.contains(Q)||n.result.createObjectStore(Q)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error??Error(`Could not open share-key storage`))})}function Te(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.key==`string`&&typeof t.keyId==`string`&&typeof t.keyPrefix==`string`&&typeof t.createdAt==`string`}async function Ee(e){let t=await $();return await new Promise((n,r)=>{let i=t.transaction(Q,`readonly`).objectStore(Q).get(e);i.onsuccess=()=>n(Te(i.result)?i.result:null),i.onerror=()=>r(i.error??Error(`Could not read share-key storage`))})}async function De(e,t){let n=await $();await new Promise((r,i)=>{let a=n.transaction(Q,`readwrite`);a.objectStore(Q).put(t,e),a.oncomplete=()=>r(),a.onerror=()=>i(a.error??Error(`Could not save share key in this browser`)),a.onabort=()=>i(a.error??Error(`Could not save share key in this browser`))})}async function Oe(e){let t=await $();await new Promise((n,r)=>{let i=t.transaction(Q,`readwrite`);i.objectStore(Q).delete(e),i.oncomplete=()=>n(),i.onerror=()=>r(i.error??Error(`Could not clear share-key storage`)),i.onabort=()=>r(i.error??Error(`Could not clear share-key storage`))})}function ke(e){return typeof e.error==`string`?e.error:e.error?.message??e.message??`Unable to generate an API key.`}var Ae={link_revoked:`Key revoked`,link_expired:`Link expired`,link_disabled:`Key paused`,link_not_found:`Link not available`,link_expired_or_used:`Link expired`,key_unavailable:`Key unavailable`};function je(e){let t=e.replace(/\/$/,``);return t.slice(t.lastIndexOf(`/`)+1)}var Me=20;function Ne({id:e,label:t,info:n,canProbe:r,probing:i,onProbe:c,result:l}){let u=(n?.capabilities?.input??[]).some(e=>e===`image`||e===`vision`);return(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2.5 rounded-control border border-inner-border bg-surface-2 p-3`,children:[(0,L.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2`,children:[(0,L.jsx)(`span`,{className:`inline-flex size-13 shrink-0 items-center justify-center rounded-lg bg-teal-soft text-teal`,"aria-hidden":`true`,children:(0,L.jsx)(a,{size:14})}),(0,L.jsx)(`span`,{className:`min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap font-mono text-caption font-semibold leading-chat text-text-primary`,title:e,children:t})]}),(0,L.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5 text-text-secondary text-badge`,children:[(0,L.jsxs)(`span`,{className:`inline-flex gap-1 [&>span]:inline-flex`,children:[n?.reasoning?(0,L.jsx)(`span`,{title:`Reasoning`,"aria-label":`Reasoning`,className:`text-purple`,children:(0,L.jsx)(o,{size:12})}):null,u?(0,L.jsx)(`span`,{title:`Vision`,"aria-label":`Vision`,className:`text-status-info`,children:(0,L.jsx)(ie,{size:12})}):null,n?.toolCall?(0,L.jsx)(`span`,{title:`Tool calling`,"aria-label":`Tool calling`,className:`text-orange`,children:(0,L.jsx)(S,{size:12})}):null,n?.webSearch?(0,L.jsx)(`span`,{title:`Web search`,"aria-label":`Web search`,className:`text-teal`,children:(0,L.jsx)(s,{size:12})}):null]}),(0,L.jsxs)(`span`,{className:`min-w-0 overflow-hidden text-ellipsis whitespace-nowrap`,children:[n?.contextLength==null?(0,L.jsx)(`span`,{title:k,className:`cursor-help`,children:`n/a ctx`}):`${E(n.contextLength)} ctx`,` · `,n?.maxOutputTokens==null?(0,L.jsx)(`span`,{title:k,className:`cursor-help`,children:`n/a out`}):`${E(n.maxOutputTokens)} out`]})]}),l?.ok?(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4 font-mono text-badge text-text-secondary [&>strong]:font-sans [&>strong]:text-green`,role:`status`,children:[(0,L.jsx)(`strong`,{children:`OK`}),(0,L.jsxs)(`span`,{children:[`TTFT `,d(l.ttftMs)]}),(0,L.jsxs)(`span`,{children:[`Done `,d(l.totalMs)]})]}):null,(0,L.jsxs)(`div`,{className:`mt-auto grid min-w-0 grid-cols-2 items-center gap-4 [&>*]:w-full [&>*]:min-w-0 [&_.btn]:w-full [&_.btn]:min-w-0`,children:[r?(0,L.jsx)(f,{variant:`secondary`,size:`sm`,icon:l?.ok?(0,L.jsx)(`span`,{className:`inline-flex text-green`,children:(0,L.jsx)(y,{size:13})}):(0,L.jsx)(_,{size:13}),loading:i,disabled:i,onClick:()=>c(e),title:l?.ok?`Last test passed in ${d(l.totalMs)} — click to re-test`:l?`Last test failed${l.status===null?``:` with HTTP ${l.status}`} — click to re-test`:`Test this model using the shared API key`,children:i?`Testing…`:l?.ok?`Done ${d(l.totalMs)}`:l?`Failed${l.status===null?``:` ${l.status}`}`:`Test`}):null,(0,L.jsx)(b,{value:e,size:`sm`,variant:`secondary`,label:`Copy`,copiedLabel:`Copied`,"aria-label":`Copy ${e}`,title:`Copy ${e}`})]})]})}function Pe(){let e=typeof window>`u`?`/share`:window.location.pathname.replace(/\/$/,``),t=`${e}/data`,n=`${e}/issue`,r=typeof window>`u`?``:je(e),i=typeof window>`u`?``:window.location.origin,o=he(t),[d,h]=(0,M.useState)(null),[_,v]=(0,M.useState)(null),[y,ie]=(0,M.useState)(``),[x,S]=(0,M.useState)(null),[T,E]=(0,M.useState)(!1),[D,O]=(0,M.useState)(null),[k,A]=(0,M.useState)(()=>new Set),[j,N]=(0,M.useState)(()=>new Map),P=(0,M.useRef)(new Map),F=(0,M.useRef)(null),[I,R]=(0,M.useState)(()=>m(`dark`)),[z,B]=(0,M.useState)(!1),[V,H]=(0,M.useState)(`raw`);(0,M.useEffect)(()=>{let e=()=>B(window.scrollY>24);return e(),window.addEventListener(`scroll`,e,{passive:!0}),()=>window.removeEventListener(`scroll`,e)},[]),(0,M.useEffect)(()=>{document.title=`Cartethyia — Shared access`,R(m(`dark`)),ne(m(`dark`))},[]);let U=o.data?.kind===`enroll`?o.data:null;(0,M.useEffect)(()=>{let e=!0;if(h(null),v(null),S(null),!r||!U){o.error&&Oe(r).catch(()=>void 0);return}return Ee(r).then(t=>{e&&t&&(v(t),h(null))}).catch(()=>{e&&S(`This browser could not read the stored key. Issue a new key only if this enrollment permits one.`)}),()=>{e=!1}},[r,U,o.error]);let W=async()=>{E(!0),O(null),S(null);try{let e=await fetch(n,{method:`POST`,credentials:`same-origin`,cache:`no-store`,referrerPolicy:`no-referrer`,headers:{"content-type":`application/json`},body:JSON.stringify(y.trim()?{nameHint:y.trim().slice(0,Me)}:{})}),t=await e.json();if(!e.ok){O(ke(t));return}let i=t;if(v(null),h(i),!r)return;try{await De(r,{key:i.key,keyId:i.keyId,keyPrefix:i.keyPrefix,createdAt:i.createdAt}),v({key:i.key,keyId:i.keyId,keyPrefix:i.keyPrefix,createdAt:i.createdAt}),h(null)}catch{S(`Your key was issued, but this browser could not save it. Copy it now: refreshing will not restore it.`)}}catch{O(`Unable to reach the Cartethyia gateway. Please try again.`)}finally{E(!1)}},G=_??d,K=o.data,q=K?.kind===`handoff`?!!K.key:!!G?.key,ye=()=>{let e=F.current;e&&(e.scrollIntoView({behavior:`smooth`,block:`center`}),e.focus({preventScroll:!0}))},J=async e=>{let t=K?.kind===`handoff`?K.key:(_??d)?.key;if(k.has(e))return;if(!t){g.error(`Create your API key first`,`Generate a key in the API key panel before testing a model.`),ye();return}let n=new AbortController;P.current.set(e,n),A(t=>new Set(t).add(e));let r=performance.now(),a=null;try{let o=await fetch(`${i}/v1/chat/completions`,{method:`POST`,headers:{Authorization:`Bearer ${t}`,"Content-Type":`application/json`,Accept:`text/event-stream`},body:JSON.stringify({model:e,messages:[{role:`user`,content:`Reply with exactly: OK`}],stream:!0,max_tokens:16}),cache:`no-store`,referrerPolicy:`no-referrer`,signal:n.signal});if(!o.ok||!o.body){N(t=>new Map(t).set(e,{ok:!1,status:o.status})),g.error(`Model probe failed`,`Request failed with HTTP ${o.status}`);return}let s=o.body.getReader();try{for(;;){let e=await s.read();if(e.value&&e.value.byteLength>0&&a===null&&(a=performance.now()),e.done)break}}finally{s.releaseLock()}let c=Math.round(performance.now()-r),l=Math.round((a??performance.now())-r);N(t=>new Map(t).set(e,{ok:!0,ttftMs:l,totalMs:c})),g.success(`Model test complete`,`${e} · TTFT ${l} ms · Done ${c} ms`)}catch(t){t instanceof DOMException&&t.name===`AbortError`||(N(t=>new Map(t).set(e,{ok:!1,status:null})),g.error(`Model probe failed`,t instanceof Error?t.message:`The request could not be completed.`))}finally{P.current.get(e)===n&&P.current.delete(e),A(t=>{let n=new Set(t);return n.delete(e),n})}};(0,M.useEffect)(()=>()=>{for(let e of P.current.values())e.abort()},[]);let Y=!!U?.canIssue&&!G,X=K?.kind===`handoff`?K.key:null,Z=new Map;for(let e of K?.models??[]){let t=e.indexOf(`/`),n=t>0?e.slice(0,t):`Other`,r=Z.get(n)??[];r.push(e),Z.set(n,r)}return(0,L.jsx)(ge,{path:`${e}/stats/stream`,children:(0,L.jsxs)(`div`,{className:`min-h-screen text-text-primary font-sans`,children:[(0,L.jsx)(`div`,{className:`share-backdrop`,"aria-hidden":`true`}),(0,L.jsx)(`header`,{className:`share-header`,"data-scrolled":z,children:(0,L.jsxs)(`div`,{className:`share-header-inner`,"data-scrolled":z,children:[(0,L.jsxs)(`a`,{className:`inline-flex items-center gap-5 font-head text-lead tracking-tight text-text-primary no-underline`,href:`/`,children:[(0,L.jsx)(`span`,{className:`grid size-17 place-items-center overflow-hidden rounded-control border border-inner-border bg-accent-soft text-accent`,"aria-hidden":`true`,children:(0,L.jsx)(`img`,{className:`block size-full object-cover`,src:`/assets/brand/favicon.jpg`,alt:``,width:34,height:34})}),(0,L.jsx)(`b`,{children:`Cartethyia`})]}),(0,L.jsxs)(`div`,{className:`inline-flex items-center gap-4 max-narrow:gap-3`,children:[(0,L.jsx)(oe,{className:`max-narrow:[&_.github-badge-metric]:hidden max-narrow:[&_.github-badge]:px-2.5`}),(0,L.jsx)(`button`,{type:`button`,className:`grid size-17 cursor-pointer place-items-center rounded-pill border border-inner-border bg-surface-2 text-text-secondary hover:border-border-strong hover:text-text-primary focus-visible:outline-2 focus-visible:outline-focus-ring focus-visible:outline-offset-2`,onClick:()=>{let e=p(I)?`light`:`dark`;R(e),te(e)},"aria-label":`Toggle theme`,"aria-pressed":p(I),title:p(I)?`Switch to light mode`:`Switch to dark mode`,children:p(I)?(0,L.jsx)(re,{size:15}):(0,L.jsx)(ee,{size:15})}),(0,L.jsxs)(`a`,{href:`/`,className:`inline-flex min-h-17 items-center gap-3 rounded-pill border border-inner-border bg-surface-2 px-6 text-badge font-semibold text-text-secondary no-underline hover:border-border-strong hover:text-text-primary max-narrow:px-5`,children:[(0,L.jsx)(ae,{size:13,"aria-hidden":`true`}),` Home`]})]})]})}),(0,L.jsx)(`main`,{className:`relative z-1 mx-auto flex w-full max-w-480 flex-col gap-8 px-12 pb-24 pt-40 max-narrow:gap-6 max-narrow:px-6 max-narrow:pb-16 max-narrow:pt-36`,children:o.loading?(0,L.jsx)(w,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:(0,L.jsx)(C,{children:(0,L.jsx)(ce,{label:`Loading enrollment policy…`})})}):o.error?(0,L.jsx)(w,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:(0,L.jsx)(C,{children:(0,L.jsx)(se,{title:Ae[o.code??``]??`Link not available`,message:o.error,onRetry:()=>window.location.reload()})})}):K?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(w,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-7 max-sm:p-5`,children:[(0,L.jsxs)(`p`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-micro font-bold tracking-label leading-normal`,children:[K.kind===`handoff`?(0,L.jsx)(ue,{size:13,"aria-hidden":`true`}):(0,L.jsx)(fe,{size:13,"aria-hidden":`true`}),K.kind===`handoff`?`SHARED ACCESS / KEY`:`SHARED ACCESS / ENROLLMENT`]}),(0,L.jsx)(`h1`,{children:K.name||`Shared API access`}),K.kind===`handoff`?(0,L.jsx)(`p`,{className:`mt-2.5 text-text-secondary text-body leading-loose`,children:`The API key for this gateway, provided through a share link. It is subject to the limits below.`}):null,(0,L.jsx)(`div`,{className:`mt-5 flex flex-wrap items-center gap-2`,children:K.expiresAt?(0,L.jsxs)(`span`,{className:`inline-flex min-h-7 items-center gap-1.5 rounded-chip border border-inner-border bg-surface-2 px-2.5 py-1 text-text-secondary font-mono text-micro leading-snug`,children:[(0,L.jsx)(c,{size:12,"aria-hidden":`true`}),`Link expires `,new Date(K.expiresAt).toLocaleString()]}):null}),(0,L.jsx)(_e,{policy:K})]}),(0,L.jsxs)(`div`,{className:`grid grid-cols-2 gap-8 max-md:grid-cols-1`,children:[(0,L.jsxs)(w,{surface:`muted`,className:`flex min-w-0 flex-col items-start gap-6 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:[(0,L.jsxs)(`h2`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-micro font-bold tracking-label leading-normal`,children:[(0,L.jsx)(s,{size:13,"aria-hidden":`true`}),` BASE URL`]}),(0,L.jsxs)(`div`,{className:`flex w-full min-w-0 items-center gap-4 [&>code]:block [&>code]:min-w-0 [&>code]:flex-1 [&>code]:overflow-hidden [&>code]:text-ellipsis [&>code]:whitespace-nowrap [&>code]:rounded-inset [&>code]:border [&>code]:border-inner-border [&>code]:bg-code-surface [&>code]:p-5 [&>code]:text-text-primary [&>code]:font-mono [&>code]:text-caption [&>code]:leading-normal [&>button]:shrink-0`,children:[(0,L.jsxs)(`code`,{children:[i,`/v1`]}),(0,L.jsx)(b,{value:`${i}/v1`,size:`sm`,variant:`secondary`,label:`Copy URL`,copiedLabel:`Copied`,"aria-label":`Copy Base URL`})]}),(0,L.jsx)(`p`,{className:`text-caption leading-loose text-text-secondary`,children:`Point your SDK, Opencode, Claude Code, Droid, and any other CLI`})]}),(0,L.jsx)(`div`,{ref:F,tabIndex:-1,children:(0,L.jsxs)(w,{surface:`muted`,className:`flex min-w-0 flex-col items-start gap-6 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:[(0,L.jsxs)(`h2`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-micro font-bold tracking-label leading-normal`,children:[(0,L.jsx)(ue,{size:13,"aria-hidden":`true`}),` YOUR API KEY`]}),K.kind===`handoff`?X?(0,L.jsxs)(`div`,{className:`flex w-full min-w-0 flex-col gap-5`,role:`status`,children:[(0,L.jsx)(`p`,{className:`font-mono text-micro font-bold tracking-label text-orange`,children:`REVEALED BY THE LINK OWNER`}),(0,L.jsx)(`code`,{className:`block min-w-0 flex-1 overflow-hidden rounded-inset border border-inner-border bg-code-surface p-5 font-mono text-caption leading-normal text-text-primary [overflow-wrap:anywhere] [user-select:all]`,children:X}),(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-5 [&>span]:font-mono [&>span]:text-micro [&>span]:text-text-tertiary`,children:[(0,L.jsx)(b,{value:X,size:`sm`,variant:`primary`,label:`Copy key`,copiedLabel:`Copied`}),(0,L.jsx)(f,{variant:`secondary`,size:`sm`,onClick:()=>pe(`cartethyia-api-key.txt`,`Cartethyia API key\n\n${X}\n\nKeep this secret.\n`,`text/plain;charset=utf-8`),children:`Save this key`}),(0,L.jsxs)(`span`,{children:[`Prefix `,K.keyPrefix??`—`]})]}),(0,L.jsx)(`p`,{className:`text-caption leading-loose text-text-secondary`,children:`This link reveals the key itself, so anyone holding the URL can read it. Keep the URL private; the link owner regenerates it to replace this key.`})]}):(0,L.jsx)(`p`,{className:`text-caption leading-normal text-text-secondary`,children:`This link can no longer reveal its key. Ask the link owner to regenerate it.`}):G?(0,L.jsxs)(`div`,{className:`flex w-full min-w-0 flex-col gap-5`,role:`status`,children:[(0,L.jsx)(`p`,{className:`font-mono text-micro font-bold tracking-wide text-orange`,children:`GENERATED ONCE · COPY AND KEEP IT`}),(0,L.jsx)(`code`,{className:`block min-w-0 flex-1 overflow-hidden rounded-inset border border-inner-border bg-code-surface p-5 font-mono text-caption leading-normal text-text-primary [overflow-wrap:anywhere] [user-select:all]`,children:G.key}),(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-5 [&>span]:font-mono [&>span]:text-micro [&>span]:text-text-tertiary`,children:[(0,L.jsx)(b,{value:G.key,size:`sm`,variant:`primary`,label:`Copy key`,copiedLabel:`Copied`}),(0,L.jsx)(f,{variant:`secondary`,size:`sm`,onClick:()=>pe(`cartethyia-api-key.txt`,`Cartethyia API key\n\n${G.key}\n\nKeep this secret.\n`,`text/plain;charset=utf-8`),children:`Save this key`}),(0,L.jsxs)(`span`,{children:[`Key ID `,G.keyId.slice(0,12),`…`]})]}),(0,L.jsx)(`p`,{className:`text-caption leading-loose text-text-secondary`,children:`Saved in this browser while this enrollment link remains valid. It is not shown again from another browser, and an expired, revoked, or unavailable link does not restore a local copy.`})]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`p`,{className:`text-caption leading-normal text-text-secondary`,children:Y?`Issue a personal key to use the shared endpoint.`:`No key is available in this browser.`}),Y?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`label`,{className:`flex w-full flex-col gap-1.5 text-text-secondary text-micro font-bold [&>input]:w-full [&>input]:min-h-11 [&>input]:rounded-control [&>input]:border [&>input]:border-inner-border [&>input]:bg-surface-1 [&>input]:px-3 [&>input]:text-text-primary [&>input]:text-body [&>input]:font-medium [&>input]:focus-visible:outline-2 [&>input]:focus-visible:outline-focus-ring [&>input]:focus-visible:outline-offset-2`,children:[(0,L.jsx)(`span`,{children:`Your name`}),(0,L.jsx)(`input`,{type:`text`,value:y,required:!0,maxLength:Me,autoComplete:`nickname`,onChange:e=>ie(e.target.value)}),(0,L.jsx)(`span`,{className:`text-text-tertiary text-micro font-normal leading-normal`,children:`Shown on your key (best kept to ~5 letters) — the gateway appends its own code.`})]}),(0,L.jsx)(`p`,{className:`-mt-3 text-text-tertiary text-micro font-normal leading-normal`,children:`Enter your name to generate a personal key.`}),(0,L.jsx)(f,{variant:`primary`,size:`sm`,loading:T,disabled:T||!y.trim(),onClick:()=>void W(),children:T?`Generating…`:`Generate API Key`})]}):null]}),K.kind===`enroll`&&!Y&&!G?(0,L.jsx)(`p`,{role:`status`,className:`w-full rounded-inset border border-orange-soft bg-orange-soft px-5 py-4 text-badge leading-normal text-orange`,children:D??`This enrollment link is not currently accepting key requests.`}):null,D&&Y?(0,L.jsx)(`p`,{role:`alert`,className:`form-error`,children:D}):null,x?(0,L.jsx)(`p`,{role:`alert`,className:`form-error`,children:x}):null]})})]}),K.sharePopup.enabled&&K.sharePopup.hasImage?(0,L.jsx)(w,{surface:`muted`,className:`min-w-0 overflow-hidden border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150`,children:(0,L.jsxs)(`div`,{className:`grid grid-cols-qris gap-0 max-sm:grid-cols-qris-compact`,children:[(0,L.jsx)(`div`,{className:`relative flex items-center justify-center bg-white p-4`,children:(0,L.jsx)(`img`,{src:`/share/`+r+`/popup-image`,alt:K.sharePopup.title??`Support QR code`,className:`block w-full max-w-qris-badge rounded-control`})}),(0,L.jsxs)(`div`,{className:`flex flex-col justify-center gap-5 p-6 max-sm:p-4 max-sm:gap-3`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsxs)(`p`,{className:`inline-flex items-center gap-2 text-text-tertiary font-mono text-micro font-bold tracking-label leading-normal mb-3`,children:[(0,L.jsx)(l,{size:12,"aria-hidden":`true`,className:`text-orange`}),` SUPPORT`]}),K.sharePopup.title?(0,L.jsx)(`h2`,{className:`font-head text-title font-semibold leading-snug wrap-anywhere max-sm:text-lead`,children:K.sharePopup.title}):null,K.sharePopup.body?(0,L.jsx)(`p`,{className:`mt-2 text-body leading-loose whitespace-pre-wrap text-text-secondary wrap-anywhere max-sm:text-caption max-sm:leading-normal`,children:K.sharePopup.body}):null]}),(0,L.jsx)(`div`,{className:`flex flex-wrap gap-3`,children:(0,L.jsxs)(`button`,{type:`button`,className:`inline-flex items-center gap-2 rounded-pill border border-inner-border bg-surface-2 px-5 py-2.5 text-caption font-semibold text-text-primary hover:brightness-110 focus-visible:outline-2 focus-visible:outline-focus-ring focus-visible:outline-offset-2 transition-[filter]`,onClick:async()=>{try{let e=await fetch(`/share/`+r+`/popup-image`);if(!e.ok)throw Error(`fetch failed`);let t=await e.arrayBuffer(),n=e.headers.get(`content-type`)??`image/png`,i=n.includes(`jpeg`)?`jpg`:n.split(`/`)[1]??`png`;me(`qris-support.`+i,new Uint8Array(t),n)}catch{g.error(`Could not download the image.`)}},children:[(0,L.jsx)(u,{size:14,"aria-hidden":`true`}),`Download QR`]})}),(0,L.jsxs)(`div`,{className:`border-t border-inner-border pt-4 max-sm:pt-3 flex flex-col gap-1`,children:[(0,L.jsxs)(`p`,{className:`text-badge text-text-tertiary`,children:[(0,L.jsx)(`span`,{className:`font-semibold text-text-secondary`,children:`Gateway`}),` `,K.name]}),(0,L.jsx)(`p`,{className:`text-badge text-text-tertiary max-sm:hidden`,children:`Scan with any QRIS-compatible banking or e-wallet app.`})]})]})]})}):null,K.notes.title||K.notes.subtitle||K.notes.body?(0,L.jsxs)(w,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:[(0,L.jsxs)(`h2`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-micro font-bold tracking-label leading-normal`,children:[(0,L.jsx)(de,{size:13,"aria-hidden":`true`}),` NOTES`]}),K.notes.title?(0,L.jsx)(`h3`,{className:`mt-5 font-head text-title font-semibold`,children:K.notes.title}):null,K.notes.subtitle?(0,L.jsx)(`p`,{className:`mt-3 text-caption font-semibold text-text-secondary`,children:K.notes.subtitle}):null,K.notes.body?(0,L.jsx)(`p`,{className:`mt-5 text-body leading-loose whitespace-pre-wrap text-text-secondary`,children:K.notes.body}):null]}):null,(0,L.jsx)(ve,{}),(0,L.jsxs)(w,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:[(0,L.jsxs)(`div`,{className:`flex items-center justify-between gap-6`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsxs)(`p`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-micro font-bold tracking-label leading-normal`,children:[(0,L.jsx)(a,{size:13,"aria-hidden":`true`}),` MODEL ACCESS`]}),(0,L.jsx)(`h2`,{className:`mt-3 font-head text-lead font-semibold tracking-tight`,children:`Allowed models`})]}),(0,L.jsxs)(`div`,{className:`inline-flex items-center gap-4`,children:[(0,L.jsxs)(`div`,{className:`inline-flex rounded-pill border border-inner-border bg-surface-2 p-1`,role:`tablist`,"aria-label":`Allowed model layout`,children:[(0,L.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":V===`raw`,className:`min-h-13 cursor-pointer rounded-pill border-0 bg-transparent px-5 font-mono text-micro font-bold tracking-label text-text-secondary uppercase hover:text-text-primary${V===`raw`?` bg-accent text-accent-foreground`:``}`,onClick:()=>H(`raw`),children:`Raw`}),(0,L.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":V===`grouped`,className:`min-h-13 cursor-pointer rounded-pill border-0 bg-transparent px-5 font-mono text-micro font-bold tracking-label text-text-secondary uppercase hover:text-text-primary${V===`grouped`?` bg-accent text-accent-foreground`:``}`,onClick:()=>H(`grouped`),children:`Grouped`})]}),K.models.length?(0,L.jsx)(b,{value:K.models.join(`, `),size:`sm`,variant:`secondary`,label:`Copy all`,copiedLabel:`Copied`,"aria-label":`Copy all granted models`}):null]})]}),Z.size?V===`raw`?(0,L.jsx)(`div`,{className:`mt-8 grid grid-cols-3 gap-4 max-wide:grid-cols-2 max-narrow:grid-cols-1`,children:K.models.map(e=>(0,L.jsx)(Ne,{id:e,label:e,info:K.modelInfo?.[e],canProbe:q,probing:k.has(e),onProbe:J,result:j.get(e)},e))}):(0,L.jsx)(`div`,{className:`mt-8 grid grid-cols-2 gap-6 min-extra-wide:grid-cols-3 max-medium:grid-cols-1`,children:[...Z].sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>(0,L.jsxs)(`section`,{className:`min-w-0 overflow-hidden rounded-panel border border-inner-border bg-surface-2`,"aria-label":`${e} models`,children:[(0,L.jsxs)(`div`,{className:`flex items-center justify-between gap-6 border-b border-inner-border px-6 py-5`,children:[(0,L.jsx)(`h3`,{className:`font-mono text-badge font-bold text-text-primary wrap-anywhere`,children:e}),(0,L.jsx)(`span`,{className:`rounded-pill bg-accent-soft px-4 py-1 font-mono text-micro font-bold text-accent`,children:t.length})]}),(0,L.jsx)(`div`,{className:`mt-0 grid max-h-150 grid-cols-1 gap-3 overflow-y-auto p-4`,children:t.map(t=>(0,L.jsx)(Ne,{id:t,label:e===`Other`?t:t.slice(e.length+1),info:K.modelInfo?.[t],canProbe:q,probing:k.has(t),onProbe:J,result:j.get(t)},t))})]},e))}):(0,L.jsx)(`p`,{className:`mt-8 rounded-control border border-inner-border bg-surface-2 p-7 text-caption text-text-secondary`,children:`Model access follows the share template policy.`}),K.modelPrefix?(0,L.jsxs)(`p`,{className:`mt-6 text-badge leading-normal text-text-secondary wrap-anywhere`,children:[`Required model prefix: `,K.modelPrefix]}):null]})]}):(0,L.jsx)(w,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:(0,L.jsx)(C,{children:(0,L.jsx)(le,{title:`No enrollment data`,message:`This enrollment link did not return usable policy data.`})})})})]})})}var Fe=document.getElementById(`root`);if(Fe===null)throw Error(`Share root element is missing`);(0,N.createRoot)(Fe).render((0,L.jsxs)(M.StrictMode,{children:[(0,L.jsx)(Pe,{}),(0,L.jsx)(h,{position:`top-right`,offset:{top:`1rem`,right:`1rem`},mobileOffset:{top:`1rem`,left:`1rem`,right:`1rem`},visibleToasts:2,toastOptions:{className:`toast-surface select-text`,style:{background:`var(--glass-bg-2)`,border:`1px solid var(--glass-border-2)`,color:`var(--text-primary)`,fontSize:`12.5px`},classNames:{title:`select-text`,description:`select-text`},actionButtonStyle:{background:`var(--accent)`,color:`var(--accent-foreground)`},cancelButtonStyle:{background:`var(--surface-muted)`,color:`var(--text-primary)`}}})]}));