@srouterhq/server 0.0.0-stage → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/client/dist/assets/am-TQ7Jmdqe.js +1 -0
- package/client/dist/assets/ar-Bf5a7yfC.js +1 -0
- package/client/dist/assets/az-CrosE1xH.js +1 -0
- package/client/dist/assets/bg-BvWnmcUz.js +1 -0
- package/client/dist/assets/bn-ams5TsJp.js +1 -0
- package/client/dist/assets/cs-Dh67CaJ_.js +1 -0
- package/client/dist/assets/da-9WlT8Iq7.js +1 -0
- package/client/dist/assets/de-lWhJJzz7.js +1 -0
- package/client/dist/assets/el-Cu7_GhNq.js +1 -0
- package/client/dist/assets/es-BZuzsBcP.js +1 -0
- package/client/dist/assets/fa-Dwdn-jKS.js +1 -0
- package/client/dist/assets/fi-BFrFyOTy.js +1 -0
- package/client/dist/assets/fr-XhbtmPpj.js +1 -0
- package/client/dist/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
- package/client/dist/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
- package/client/dist/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
- package/client/dist/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
- package/client/dist/assets/geist-mono-cyrillic-ext-wght-normal-I4S5GZfc.woff2 +0 -0
- package/client/dist/assets/geist-mono-cyrillic-wght-normal-BmXc_FBt.woff2 +0 -0
- package/client/dist/assets/geist-mono-latin-ext-wght-normal-DrnZ1wKl.woff2 +0 -0
- package/client/dist/assets/geist-mono-latin-wght-normal-B_7UjwxQ.woff2 +0 -0
- package/client/dist/assets/geist-mono-symbols2-wght-normal-GZpp1pK2.woff2 +0 -0
- package/client/dist/assets/geist-mono-vietnamese-wght-normal-D8KDMBhC.woff2 +0 -0
- package/client/dist/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
- package/client/dist/assets/gu-D0uhLUB8.js +1 -0
- package/client/dist/assets/ha-CVlm9pqp.js +1 -0
- package/client/dist/assets/he-CMIFeoWr.js +1 -0
- package/client/dist/assets/hi-ENTwhBpn.js +1 -0
- package/client/dist/assets/hr-fc03vMy_.js +1 -0
- package/client/dist/assets/hu-YBo2BIYt.js +1 -0
- package/client/dist/assets/id-BEWXYX69.js +1 -0
- package/client/dist/assets/ig-BKLZFKka.js +1 -0
- package/client/dist/assets/index-D9I4KtvR.js +145 -0
- package/client/dist/assets/index-txhEmCdb.css +2 -0
- package/client/dist/assets/it-Bzmei1Y2.js +1 -0
- package/client/dist/assets/ja-BfcpuqEl.js +1 -0
- package/client/dist/assets/ka-CnWjRgLo.js +1 -0
- package/client/dist/assets/km-BAjPR3Qj.js +1 -0
- package/client/dist/assets/kn-B15WKU5m.js +1 -0
- package/client/dist/assets/ko-C61fAB-w.js +1 -0
- package/client/dist/assets/lt-CYTr4_YW.js +1 -0
- package/client/dist/assets/ml-CtqxgyH3.js +1 -0
- package/client/dist/assets/mr-X5TMY7aR.js +1 -0
- package/client/dist/assets/ms-DSg8RqPS.js +1 -0
- package/client/dist/assets/my-D7RqR8uE.js +1 -0
- package/client/dist/assets/ne-DaflxkDj.js +1 -0
- package/client/dist/assets/nl-BOqqtsC8.js +1 -0
- package/client/dist/assets/no-BSHp_StB.js +1 -0
- package/client/dist/assets/or-BkLR9Vub.js +1 -0
- package/client/dist/assets/pa-CarJ2XgI.js +1 -0
- package/client/dist/assets/pl-C2n0V-0k.js +1 -0
- package/client/dist/assets/pt-BR-CqJdNhg2.js +1 -0
- package/client/dist/assets/pt-PT-C_HpMyKz.js +1 -0
- package/client/dist/assets/ro-DVRZqSAS.js +1 -0
- package/client/dist/assets/ru-DwAJG7VC.js +1 -0
- package/client/dist/assets/si-BxUezXm0.js +1 -0
- package/client/dist/assets/sk-eI1VcIfY.js +1 -0
- package/client/dist/assets/sr-CJF3auCr.js +1 -0
- package/client/dist/assets/srouter-logo-C6ZfjGIi.svg +14 -0
- package/client/dist/assets/sv-nqvwHAq_.js +1 -0
- package/client/dist/assets/sw-DWynE2pW.js +1 -0
- package/client/dist/assets/ta-BVM12knC.js +1 -0
- package/client/dist/assets/te-oyzEkF7_.js +1 -0
- package/client/dist/assets/th-COVeE0ZQ.js +1 -0
- package/client/dist/assets/tl-DsJANnQz.js +1 -0
- package/client/dist/assets/tr-B-Fl-urO.js +1 -0
- package/client/dist/assets/uk-C5qketAO.js +1 -0
- package/client/dist/assets/ur-QU9KugfV.js +1 -0
- package/client/dist/assets/uz-DL9cG_mY.js +1 -0
- package/client/dist/assets/vi-CQiVy3Pu.js +1 -0
- package/client/dist/assets/yo-DqazMdrZ.js +1 -0
- package/client/dist/assets/zh-CN-DnYL_Kio.js +1 -0
- package/client/dist/assets/zh-TW-5bdbosKj.js +1 -0
- package/client/dist/favicon.svg +14 -0
- package/client/dist/icons.svg +24 -0
- package/client/dist/index.html +37 -0
- package/dist/app.d.ts +4 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +372 -0
- package/dist/app.js.map +1 -0
- package/dist/db/index.d.ts +49 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +203 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/migrate/TEMPLATE.d.ts +4 -0
- package/dist/db/migrate/TEMPLATE.d.ts.map +1 -0
- package/dist/db/migrate/TEMPLATE.js +18 -0
- package/dist/db/migrate/TEMPLATE.js.map +1 -0
- package/dist/db/migrate/cli.d.ts +2 -0
- package/dist/db/migrate/cli.d.ts.map +1 -0
- package/dist/db/migrate/cli.js +177 -0
- package/dist/db/migrate/cli.js.map +1 -0
- package/dist/db/migrate/defaults.d.ts +52 -0
- package/dist/db/migrate/defaults.d.ts.map +1 -0
- package/dist/db/migrate/defaults.js +126 -0
- package/dist/db/migrate/defaults.js.map +1 -0
- package/dist/db/migrate/runner.d.ts +16 -0
- package/dist/db/migrate/runner.d.ts.map +1 -0
- package/dist/db/migrate/runner.js +178 -0
- package/dist/db/migrate/runner.js.map +1 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.d.ts +4 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.d.ts.map +1 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.js +2240 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.js.map +1 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.d.ts +4 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.d.ts.map +1 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.js +27 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.js.map +1 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.d.ts +4 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.d.ts.map +1 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.js +30 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.js.map +1 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.d.ts +6 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.d.ts.map +1 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.js +104 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.js.map +1 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.d.ts +9 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.d.ts.map +1 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.js +22 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.js.map +1 -0
- package/dist/db/migrations/20260706_000001_request_client_info.d.ts +4 -0
- package/dist/db/migrations/20260706_000001_request_client_info.d.ts.map +1 -0
- package/dist/db/migrations/20260706_000001_request_client_info.js +30 -0
- package/dist/db/migrations/20260706_000001_request_client_info.js.map +1 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.d.ts +17 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.d.ts.map +1 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.js +20 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.js.map +1 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.d.ts +12 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.d.ts.map +1 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.js +45 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.js.map +1 -0
- package/dist/db/migrations/20260720_000001_key_health_error.d.ts +5 -0
- package/dist/db/migrations/20260720_000001_key_health_error.d.ts.map +1 -0
- package/dist/db/migrations/20260720_000001_key_health_error.js +16 -0
- package/dist/db/migrations/20260720_000001_key_health_error.js.map +1 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.d.ts +4 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.js +38 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.js.map +1 -0
- package/dist/db/migrations/20260726_000002_request_attempts.d.ts +4 -0
- package/dist/db/migrations/20260726_000002_request_attempts.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000002_request_attempts.js +43 -0
- package/dist/db/migrations/20260726_000002_request_attempts.js.map +1 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.d.ts +4 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.js +80 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.js.map +1 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.d.ts +4 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.js +34 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.js.map +1 -0
- package/dist/db/migrations/20260726_000005_request_served_model.d.ts +4 -0
- package/dist/db/migrations/20260726_000005_request_served_model.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000005_request_served_model.js +31 -0
- package/dist/db/migrations/20260726_000005_request_served_model.js.map +1 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.d.ts +4 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.js +29 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.js.map +1 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.d.ts +4 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.d.ts.map +1 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.js +41 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.js.map +1 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.d.ts +12 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.d.ts.map +1 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.js +37 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.js.map +1 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.d.ts +4 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.d.ts.map +1 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.js +145 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.js.map +1 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.d.ts +6 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.d.ts.map +1 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.js +52 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.js.map +1 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.d.ts +6 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.d.ts.map +1 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.js +17 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.js.map +1 -0
- package/dist/db/migrations/20260805_000002_client_profiles.d.ts +4 -0
- package/dist/db/migrations/20260805_000002_client_profiles.d.ts.map +1 -0
- package/dist/db/migrations/20260805_000002_client_profiles.js +33 -0
- package/dist/db/migrations/20260805_000002_client_profiles.js.map +1 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.d.ts +4 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.d.ts.map +1 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.js +33 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.js.map +1 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.d.ts +4 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.d.ts.map +1 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.js +19 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.js.map +1 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.d.ts +4 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.d.ts.map +1 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.js +47 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.js.map +1 -0
- package/dist/db/migrations/20260823_000001_server_logs.d.ts +4 -0
- package/dist/db/migrations/20260823_000001_server_logs.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000001_server_logs.js +53 -0
- package/dist/db/migrations/20260823_000001_server_logs.js.map +1 -0
- package/dist/db/migrations/20260823_000002_backups_table.d.ts +8 -0
- package/dist/db/migrations/20260823_000002_backups_table.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000002_backups_table.js +22 -0
- package/dist/db/migrations/20260823_000002_backups_table.js.map +1 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.d.ts +19 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.js +28 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.js.map +1 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.d.ts +14 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.js +25 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.js.map +1 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.d.ts +4 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.d.ts.map +1 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.js +46 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.js.map +1 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.d.ts +4 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.d.ts.map +1 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.js +37 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.js.map +1 -0
- package/dist/db/migrations/20260901_000003_request_caller.d.ts +4 -0
- package/dist/db/migrations/20260901_000003_request_caller.d.ts.map +1 -0
- package/dist/db/migrations/20260901_000003_request_caller.js +27 -0
- package/dist/db/migrations/20260901_000003_request_caller.js.map +1 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.d.ts +4 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.d.ts.map +1 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.js +35 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.js.map +1 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.d.ts +4 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.d.ts.map +1 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.js +37 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.js.map +1 -0
- package/dist/db/migrations/20260903_000002_response_cache.d.ts +4 -0
- package/dist/db/migrations/20260903_000002_response_cache.d.ts.map +1 -0
- package/dist/db/migrations/20260903_000002_response_cache.js +53 -0
- package/dist/db/migrations/20260903_000002_response_cache.js.map +1 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.d.ts +13 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.d.ts.map +1 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.js +35 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.js.map +1 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.d.ts +4 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.d.ts.map +1 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.js +68 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.js.map +1 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.d.ts +5 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.d.ts.map +1 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.js +37 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.js.map +1 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.d.ts +4 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.d.ts.map +1 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.js +28 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.js.map +1 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.d.ts +4 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.d.ts.map +1 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.js +25 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.js.map +1 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.d.ts +10 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.d.ts.map +1 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.js +78 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.js.map +1 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.d.ts +21 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.d.ts.map +1 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.js +41 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.js.map +1 -0
- package/dist/db/model-pricing.d.ts +39 -0
- package/dist/db/model-pricing.d.ts.map +1 -0
- package/dist/db/model-pricing.js +274 -0
- package/dist/db/model-pricing.js.map +1 -0
- package/dist/db/node-sqlite.d.ts +9 -0
- package/dist/db/node-sqlite.d.ts.map +1 -0
- package/dist/db/node-sqlite.js +87 -0
- package/dist/db/node-sqlite.js.map +1 -0
- package/dist/db/types.d.ts +22 -0
- package/dist/db/types.d.ts.map +1 -0
- package/dist/db/types.js +2 -0
- package/dist/db/types.js.map +1 -0
- package/dist/docs/docs-page.d.ts +2 -0
- package/dist/docs/docs-page.d.ts.map +1 -0
- package/dist/docs/docs-page.js +319 -0
- package/dist/docs/docs-page.js.map +1 -0
- package/dist/docs/openapi.d.ts +1896 -0
- package/dist/docs/openapi.d.ts.map +1 -0
- package/dist/docs/openapi.js +1096 -0
- package/dist/docs/openapi.js.map +1 -0
- package/dist/env.d.ts +2 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +9 -0
- package/dist/env.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +144 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/anthropic-documents.d.ts +41 -0
- package/dist/lib/anthropic-documents.d.ts.map +1 -0
- package/dist/lib/anthropic-documents.js +132 -0
- package/dist/lib/anthropic-documents.js.map +1 -0
- package/dist/lib/app-version.d.ts +5 -0
- package/dist/lib/app-version.d.ts.map +1 -0
- package/dist/lib/app-version.js +61 -0
- package/dist/lib/app-version.js.map +1 -0
- package/dist/lib/attempt-trace.d.ts +23 -0
- package/dist/lib/attempt-trace.d.ts.map +1 -0
- package/dist/lib/attempt-trace.js +32 -0
- package/dist/lib/attempt-trace.js.map +1 -0
- package/dist/lib/budget.d.ts +6 -0
- package/dist/lib/budget.d.ts.map +1 -0
- package/dist/lib/budget.js +40 -0
- package/dist/lib/budget.js.map +1 -0
- package/dist/lib/client-classifier.d.ts +10 -0
- package/dist/lib/client-classifier.d.ts.map +1 -0
- package/dist/lib/client-classifier.js +126 -0
- package/dist/lib/client-classifier.js.map +1 -0
- package/dist/lib/client-context.d.ts +10 -0
- package/dist/lib/client-context.d.ts.map +1 -0
- package/dist/lib/client-context.js +39 -0
- package/dist/lib/client-context.js.map +1 -0
- package/dist/lib/config.d.ts +33 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +94 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/content.d.ts +33 -0
- package/dist/lib/content.d.ts.map +1 -0
- package/dist/lib/content.js +201 -0
- package/dist/lib/content.js.map +1 -0
- package/dist/lib/credential.d.ts +11 -0
- package/dist/lib/credential.d.ts.map +1 -0
- package/dist/lib/credential.js +18 -0
- package/dist/lib/credential.js.map +1 -0
- package/dist/lib/crypto.d.ts +31 -0
- package/dist/lib/crypto.d.ts.map +1 -0
- package/dist/lib/crypto.js +206 -0
- package/dist/lib/crypto.js.map +1 -0
- package/dist/lib/custom-provider-cleanup.d.ts +13 -0
- package/dist/lib/custom-provider-cleanup.d.ts.map +1 -0
- package/dist/lib/custom-provider-cleanup.js +43 -0
- package/dist/lib/custom-provider-cleanup.js.map +1 -0
- package/dist/lib/db-backup.d.ts +31 -0
- package/dist/lib/db-backup.d.ts.map +1 -0
- package/dist/lib/db-backup.js +255 -0
- package/dist/lib/db-backup.js.map +1 -0
- package/dist/lib/endpoint-scope.d.ts +42 -0
- package/dist/lib/endpoint-scope.d.ts.map +1 -0
- package/dist/lib/endpoint-scope.js +95 -0
- package/dist/lib/endpoint-scope.js.map +1 -0
- package/dist/lib/env-drift.d.ts +17 -0
- package/dist/lib/env-drift.d.ts.map +1 -0
- package/dist/lib/env-drift.js +108 -0
- package/dist/lib/env-drift.js.map +1 -0
- package/dist/lib/error-classify.d.ts +40 -0
- package/dist/lib/error-classify.d.ts.map +1 -0
- package/dist/lib/error-classify.js +687 -0
- package/dist/lib/error-classify.js.map +1 -0
- package/dist/lib/error-redaction.d.ts +8 -0
- package/dist/lib/error-redaction.d.ts.map +1 -0
- package/dist/lib/error-redaction.js +45 -0
- package/dist/lib/error-redaction.js.map +1 -0
- package/dist/lib/fallback-loop.d.ts +306 -0
- package/dist/lib/fallback-loop.d.ts.map +1 -0
- package/dist/lib/fallback-loop.js +1336 -0
- package/dist/lib/fallback-loop.js.map +1 -0
- package/dist/lib/file-permissions.d.ts +98 -0
- package/dist/lib/file-permissions.d.ts.map +1 -0
- package/dist/lib/file-permissions.js +159 -0
- package/dist/lib/file-permissions.js.map +1 -0
- package/dist/lib/gemini-wire.d.ts +76 -0
- package/dist/lib/gemini-wire.d.ts.map +1 -0
- package/dist/lib/gemini-wire.js +392 -0
- package/dist/lib/gemini-wire.js.map +1 -0
- package/dist/lib/guardrails.d.ts +37 -0
- package/dist/lib/guardrails.d.ts.map +1 -0
- package/dist/lib/guardrails.js +106 -0
- package/dist/lib/guardrails.js.map +1 -0
- package/dist/lib/header-value.d.ts +8 -0
- package/dist/lib/header-value.d.ts.map +1 -0
- package/dist/lib/header-value.js +55 -0
- package/dist/lib/header-value.js.map +1 -0
- package/dist/lib/image-normalize.d.ts +21 -0
- package/dist/lib/image-normalize.d.ts.map +1 -0
- package/dist/lib/image-normalize.js +218 -0
- package/dist/lib/image-normalize.js.map +1 -0
- package/dist/lib/inbound-chat.d.ts +48 -0
- package/dist/lib/inbound-chat.d.ts.map +1 -0
- package/dist/lib/inbound-chat.js +406 -0
- package/dist/lib/inbound-chat.js.map +1 -0
- package/dist/lib/key-parser.d.ts +79 -0
- package/dist/lib/key-parser.d.ts.map +1 -0
- package/dist/lib/key-parser.js +701 -0
- package/dist/lib/key-parser.js.map +1 -0
- package/dist/lib/key-proxy.d.ts +49 -0
- package/dist/lib/key-proxy.d.ts.map +1 -0
- package/dist/lib/key-proxy.js +92 -0
- package/dist/lib/key-proxy.js.map +1 -0
- package/dist/lib/log-redaction.d.ts +28 -0
- package/dist/lib/log-redaction.d.ts.map +1 -0
- package/dist/lib/log-redaction.js +166 -0
- package/dist/lib/log-redaction.js.map +1 -0
- package/dist/lib/model-scope.d.ts +9 -0
- package/dist/lib/model-scope.d.ts.map +1 -0
- package/dist/lib/model-scope.js +29 -0
- package/dist/lib/model-scope.js.map +1 -0
- package/dist/lib/one-time-code.d.ts +15 -0
- package/dist/lib/one-time-code.d.ts.map +1 -0
- package/dist/lib/one-time-code.js +41 -0
- package/dist/lib/one-time-code.js.map +1 -0
- package/dist/lib/output-cap.d.ts +24 -0
- package/dist/lib/output-cap.d.ts.map +1 -0
- package/dist/lib/output-cap.js +80 -0
- package/dist/lib/output-cap.js.map +1 -0
- package/dist/lib/password.d.ts +3 -0
- package/dist/lib/password.d.ts.map +1 -0
- package/dist/lib/password.js +27 -0
- package/dist/lib/password.js.map +1 -0
- package/dist/lib/process-safety-net.d.ts +32 -0
- package/dist/lib/process-safety-net.d.ts.map +1 -0
- package/dist/lib/process-safety-net.js +123 -0
- package/dist/lib/process-safety-net.js.map +1 -0
- package/dist/lib/provider-identity.d.ts +37 -0
- package/dist/lib/provider-identity.d.ts.map +1 -0
- package/dist/lib/provider-identity.js +110 -0
- package/dist/lib/provider-identity.js.map +1 -0
- package/dist/lib/provider-size-parser.d.ts +6 -0
- package/dist/lib/provider-size-parser.d.ts.map +1 -0
- package/dist/lib/provider-size-parser.js +72 -0
- package/dist/lib/provider-size-parser.js.map +1 -0
- package/dist/lib/provider-timeout.d.ts +17 -0
- package/dist/lib/provider-timeout.d.ts.map +1 -0
- package/dist/lib/provider-timeout.js +70 -0
- package/dist/lib/provider-timeout.js.map +1 -0
- package/dist/lib/proxy.d.ts +180 -0
- package/dist/lib/proxy.d.ts.map +1 -0
- package/dist/lib/proxy.js +1002 -0
- package/dist/lib/proxy.js.map +1 -0
- package/dist/lib/request-log.d.ts +4 -0
- package/dist/lib/request-log.d.ts.map +1 -0
- package/dist/lib/request-log.js +161 -0
- package/dist/lib/request-log.js.map +1 -0
- package/dist/lib/reset-code.d.ts +5 -0
- package/dist/lib/reset-code.d.ts.map +1 -0
- package/dist/lib/reset-code.js +39 -0
- package/dist/lib/reset-code.js.map +1 -0
- package/dist/lib/retry-hint.d.ts +14 -0
- package/dist/lib/retry-hint.d.ts.map +1 -0
- package/dist/lib/retry-hint.js +36 -0
- package/dist/lib/retry-hint.js.map +1 -0
- package/dist/lib/route-live.d.ts +29 -0
- package/dist/lib/route-live.d.ts.map +1 -0
- package/dist/lib/route-live.js +97 -0
- package/dist/lib/route-live.js.map +1 -0
- package/dist/lib/sampling-params.d.ts +183 -0
- package/dist/lib/sampling-params.d.ts.map +1 -0
- package/dist/lib/sampling-params.js +386 -0
- package/dist/lib/sampling-params.js.map +1 -0
- package/dist/lib/scheduler.d.ts +13 -0
- package/dist/lib/scheduler.d.ts.map +1 -0
- package/dist/lib/scheduler.js +11 -0
- package/dist/lib/scheduler.js.map +1 -0
- package/dist/lib/served-model.d.ts +16 -0
- package/dist/lib/served-model.d.ts.map +1 -0
- package/dist/lib/served-model.js +0 -0
- package/dist/lib/served-model.js.map +1 -0
- package/dist/lib/server-logs.d.ts +132 -0
- package/dist/lib/server-logs.d.ts.map +1 -0
- package/dist/lib/server-logs.js +473 -0
- package/dist/lib/server-logs.js.map +1 -0
- package/dist/lib/setup-code.d.ts +5 -0
- package/dist/lib/setup-code.d.ts.map +1 -0
- package/dist/lib/setup-code.js +35 -0
- package/dist/lib/setup-code.js.map +1 -0
- package/dist/lib/structured-output.d.ts +9 -0
- package/dist/lib/structured-output.d.ts.map +1 -0
- package/dist/lib/structured-output.js +72 -0
- package/dist/lib/structured-output.js.map +1 -0
- package/dist/lib/system-prompt.d.ts +30 -0
- package/dist/lib/system-prompt.d.ts.map +1 -0
- package/dist/lib/system-prompt.js +66 -0
- package/dist/lib/system-prompt.js.map +1 -0
- package/dist/lib/task-type.d.ts +18 -0
- package/dist/lib/task-type.d.ts.map +1 -0
- package/dist/lib/task-type.js +92 -0
- package/dist/lib/task-type.js.map +1 -0
- package/dist/lib/think-tags.d.ts +37 -0
- package/dist/lib/think-tags.d.ts.map +1 -0
- package/dist/lib/think-tags.js +203 -0
- package/dist/lib/think-tags.js.map +1 -0
- package/dist/lib/tool-args.d.ts +36 -0
- package/dist/lib/tool-args.d.ts.map +1 -0
- package/dist/lib/tool-args.js +190 -0
- package/dist/lib/tool-args.js.map +1 -0
- package/dist/lib/tool-call-rescue.d.ts +62 -0
- package/dist/lib/tool-call-rescue.d.ts.map +1 -0
- package/dist/lib/tool-call-rescue.js +258 -0
- package/dist/lib/tool-call-rescue.js.map +1 -0
- package/dist/lib/tool-capability.d.ts +13 -0
- package/dist/lib/tool-capability.d.ts.map +1 -0
- package/dist/lib/tool-capability.js +70 -0
- package/dist/lib/tool-capability.js.map +1 -0
- package/dist/lib/tool-validate.d.ts +44 -0
- package/dist/lib/tool-validate.d.ts.map +1 -0
- package/dist/lib/tool-validate.js +165 -0
- package/dist/lib/tool-validate.js.map +1 -0
- package/dist/lib/ttfb-budget.d.ts +13 -0
- package/dist/lib/ttfb-budget.d.ts.map +1 -0
- package/dist/lib/ttfb-budget.js +153 -0
- package/dist/lib/ttfb-budget.js.map +1 -0
- package/dist/lib/url-guard.d.ts +47 -0
- package/dist/lib/url-guard.d.ts.map +1 -0
- package/dist/lib/url-guard.js +229 -0
- package/dist/lib/url-guard.js.map +1 -0
- package/dist/lib/wake-detect.d.ts +12 -0
- package/dist/lib/wake-detect.d.ts.map +1 -0
- package/dist/lib/wake-detect.js +99 -0
- package/dist/lib/wake-detect.js.map +1 -0
- package/dist/middleware/errorHandler.d.ts +3 -0
- package/dist/middleware/errorHandler.d.ts.map +1 -0
- package/dist/middleware/errorHandler.js +45 -0
- package/dist/middleware/errorHandler.js.map +1 -0
- package/dist/middleware/rateLimit.d.ts +4 -0
- package/dist/middleware/rateLimit.d.ts.map +1 -0
- package/dist/middleware/rateLimit.js +125 -0
- package/dist/middleware/rateLimit.js.map +1 -0
- package/dist/middleware/requireAuth.d.ts +3 -0
- package/dist/middleware/requireAuth.d.ts.map +1 -0
- package/dist/middleware/requireAuth.js +17 -0
- package/dist/middleware/requireAuth.js.map +1 -0
- package/dist/providers/aclide.d.ts +18 -0
- package/dist/providers/aclide.d.ts.map +1 -0
- package/dist/providers/aclide.js +174 -0
- package/dist/providers/aclide.js.map +1 -0
- package/dist/providers/aihorde.d.ts +42 -0
- package/dist/providers/aihorde.d.ts.map +1 -0
- package/dist/providers/aihorde.js +192 -0
- package/dist/providers/aihorde.js.map +1 -0
- package/dist/providers/airforce.d.ts +11 -0
- package/dist/providers/airforce.d.ts.map +1 -0
- package/dist/providers/airforce.js +32 -0
- package/dist/providers/airforce.js.map +1 -0
- package/dist/providers/base.d.ts +177 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +354 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/blaze.d.ts +11 -0
- package/dist/providers/blaze.d.ts.map +1 -0
- package/dist/providers/blaze.js +33 -0
- package/dist/providers/blaze.js.map +1 -0
- package/dist/providers/blockrun.d.ts +14 -0
- package/dist/providers/blockrun.d.ts.map +1 -0
- package/dist/providers/blockrun.js +36 -0
- package/dist/providers/blockrun.js.map +1 -0
- package/dist/providers/clod.d.ts +11 -0
- package/dist/providers/clod.d.ts.map +1 -0
- package/dist/providers/clod.js +39 -0
- package/dist/providers/clod.js.map +1 -0
- package/dist/providers/cloudflare.d.ts +15 -0
- package/dist/providers/cloudflare.d.ts.map +1 -0
- package/dist/providers/cloudflare.js +175 -0
- package/dist/providers/cloudflare.js.map +1 -0
- package/dist/providers/cohere.d.ts +11 -0
- package/dist/providers/cohere.d.ts.map +1 -0
- package/dist/providers/cohere.js +117 -0
- package/dist/providers/cohere.js.map +1 -0
- package/dist/providers/dreamprompting.d.ts +11 -0
- package/dist/providers/dreamprompting.d.ts.map +1 -0
- package/dist/providers/dreamprompting.js +41 -0
- package/dist/providers/dreamprompting.js.map +1 -0
- package/dist/providers/electronhub.d.ts +10 -0
- package/dist/providers/electronhub.d.ts.map +1 -0
- package/dist/providers/electronhub.js +56 -0
- package/dist/providers/electronhub.js.map +1 -0
- package/dist/providers/experiential.d.ts +10 -0
- package/dist/providers/experiential.d.ts.map +1 -0
- package/dist/providers/experiential.js +33 -0
- package/dist/providers/experiential.js.map +1 -0
- package/dist/providers/gizmo.d.ts +15 -0
- package/dist/providers/gizmo.d.ts.map +1 -0
- package/dist/providers/gizmo.js +54 -0
- package/dist/providers/gizmo.js.map +1 -0
- package/dist/providers/google.d.ts +30 -0
- package/dist/providers/google.d.ts.map +1 -0
- package/dist/providers/google.js +766 -0
- package/dist/providers/google.js.map +1 -0
- package/dist/providers/index.d.ts +13 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +561 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/llmtr.d.ts +15 -0
- package/dist/providers/llmtr.d.ts.map +1 -0
- package/dist/providers/llmtr.js +51 -0
- package/dist/providers/llmtr.js.map +1 -0
- package/dist/providers/logfare.d.ts +11 -0
- package/dist/providers/logfare.d.ts.map +1 -0
- package/dist/providers/logfare.js +33 -0
- package/dist/providers/logfare.js.map +1 -0
- package/dist/providers/lucidity.d.ts +11 -0
- package/dist/providers/lucidity.d.ts.map +1 -0
- package/dist/providers/lucidity.js +37 -0
- package/dist/providers/lucidity.js.map +1 -0
- package/dist/providers/modelscope.d.ts +50 -0
- package/dist/providers/modelscope.d.ts.map +1 -0
- package/dist/providers/modelscope.js +143 -0
- package/dist/providers/modelscope.js.map +1 -0
- package/dist/providers/moondream.d.ts +17 -0
- package/dist/providers/moondream.d.ts.map +1 -0
- package/dist/providers/moondream.js +140 -0
- package/dist/providers/moondream.js.map +1 -0
- package/dist/providers/openai-compat.d.ts +140 -0
- package/dist/providers/openai-compat.d.ts.map +1 -0
- package/dist/providers/openai-compat.js +537 -0
- package/dist/providers/openai-compat.js.map +1 -0
- package/dist/providers/opencode-free.d.ts +24 -0
- package/dist/providers/opencode-free.d.ts.map +1 -0
- package/dist/providers/opencode-free.js +262 -0
- package/dist/providers/opencode-free.js.map +1 -0
- package/dist/providers/pollinations.d.ts +32 -0
- package/dist/providers/pollinations.d.ts.map +1 -0
- package/dist/providers/pollinations.js +65 -0
- package/dist/providers/pollinations.js.map +1 -0
- package/dist/providers/router9.d.ts +16 -0
- package/dist/providers/router9.d.ts.map +1 -0
- package/dist/providers/router9.js +42 -0
- package/dist/providers/router9.js.map +1 -0
- package/dist/providers/sail.d.ts +44 -0
- package/dist/providers/sail.d.ts.map +1 -0
- package/dist/providers/sail.js +302 -0
- package/dist/providers/sail.js.map +1 -0
- package/dist/providers/septor.d.ts +10 -0
- package/dist/providers/septor.d.ts.map +1 -0
- package/dist/providers/septor.js +36 -0
- package/dist/providers/septor.js.map +1 -0
- package/dist/providers/speechify.d.ts +14 -0
- package/dist/providers/speechify.d.ts.map +1 -0
- package/dist/providers/speechify.js +28 -0
- package/dist/providers/speechify.js.map +1 -0
- package/dist/providers/speka.d.ts +12 -0
- package/dist/providers/speka.d.ts.map +1 -0
- package/dist/providers/speka.js +37 -0
- package/dist/providers/speka.js.map +1 -0
- package/dist/providers/waterfall.d.ts +11 -0
- package/dist/providers/waterfall.d.ts.map +1 -0
- package/dist/providers/waterfall.js +33 -0
- package/dist/providers/waterfall.js.map +1 -0
- package/dist/providers/xkiro.d.ts +71 -0
- package/dist/providers/xkiro.d.ts.map +1 -0
- package/dist/providers/xkiro.js +119 -0
- package/dist/providers/xkiro.js.map +1 -0
- package/dist/providers/zhipu.d.ts +43 -0
- package/dist/providers/zhipu.d.ts.map +1 -0
- package/dist/providers/zhipu.js +95 -0
- package/dist/providers/zhipu.js.map +1 -0
- package/dist/routes/analytics.d.ts +2 -0
- package/dist/routes/analytics.d.ts.map +1 -0
- package/dist/routes/analytics.js +738 -0
- package/dist/routes/analytics.js.map +1 -0
- package/dist/routes/anthropic.d.ts +7 -0
- package/dist/routes/anthropic.d.ts.map +1 -0
- package/dist/routes/anthropic.js +1076 -0
- package/dist/routes/anthropic.js.map +1 -0
- package/dist/routes/auth.d.ts +2 -0
- package/dist/routes/auth.d.ts.map +1 -0
- package/dist/routes/auth.js +310 -0
- package/dist/routes/auth.js.map +1 -0
- package/dist/routes/backups.d.ts +2 -0
- package/dist/routes/backups.d.ts.map +1 -0
- package/dist/routes/backups.js +127 -0
- package/dist/routes/backups.js.map +1 -0
- package/dist/routes/cache.d.ts +2 -0
- package/dist/routes/cache.d.ts.map +1 -0
- package/dist/routes/cache.js +40 -0
- package/dist/routes/cache.js.map +1 -0
- package/dist/routes/client-profiles.d.ts +2 -0
- package/dist/routes/client-profiles.d.ts.map +1 -0
- package/dist/routes/client-profiles.js +128 -0
- package/dist/routes/client-profiles.js.map +1 -0
- package/dist/routes/compression.d.ts +2 -0
- package/dist/routes/compression.d.ts.map +1 -0
- package/dist/routes/compression.js +82 -0
- package/dist/routes/compression.js.map +1 -0
- package/dist/routes/conversations.d.ts +3 -0
- package/dist/routes/conversations.d.ts.map +1 -0
- package/dist/routes/conversations.js +215 -0
- package/dist/routes/conversations.js.map +1 -0
- package/dist/routes/docs.d.ts +2 -0
- package/dist/routes/docs.d.ts.map +1 -0
- package/dist/routes/docs.js +21 -0
- package/dist/routes/docs.js.map +1 -0
- package/dist/routes/embeddings.d.ts +2 -0
- package/dist/routes/embeddings.d.ts.map +1 -0
- package/dist/routes/embeddings.js +255 -0
- package/dist/routes/embeddings.js.map +1 -0
- package/dist/routes/fallback.d.ts +2 -0
- package/dist/routes/fallback.d.ts.map +1 -0
- package/dist/routes/fallback.js +631 -0
- package/dist/routes/fallback.js.map +1 -0
- package/dist/routes/free-tier.d.ts +22 -0
- package/dist/routes/free-tier.d.ts.map +1 -0
- package/dist/routes/free-tier.js +175 -0
- package/dist/routes/free-tier.js.map +1 -0
- package/dist/routes/gemini.d.ts +2 -0
- package/dist/routes/gemini.d.ts.map +1 -0
- package/dist/routes/gemini.js +218 -0
- package/dist/routes/gemini.js.map +1 -0
- package/dist/routes/health.d.ts +2 -0
- package/dist/routes/health.d.ts.map +1 -0
- package/dist/routes/health.js +72 -0
- package/dist/routes/health.js.map +1 -0
- package/dist/routes/keys.d.ts +17 -0
- package/dist/routes/keys.d.ts.map +1 -0
- package/dist/routes/keys.js +1787 -0
- package/dist/routes/keys.js.map +1 -0
- package/dist/routes/logs.d.ts +2 -0
- package/dist/routes/logs.d.ts.map +1 -0
- package/dist/routes/logs.js +88 -0
- package/dist/routes/logs.js.map +1 -0
- package/dist/routes/mcp.d.ts +4 -0
- package/dist/routes/mcp.d.ts.map +1 -0
- package/dist/routes/mcp.js +563 -0
- package/dist/routes/mcp.js.map +1 -0
- package/dist/routes/media.d.ts +2 -0
- package/dist/routes/media.d.ts.map +1 -0
- package/dist/routes/media.js +180 -0
- package/dist/routes/media.js.map +1 -0
- package/dist/routes/models.d.ts +2 -0
- package/dist/routes/models.d.ts.map +1 -0
- package/dist/routes/models.js +439 -0
- package/dist/routes/models.js.map +1 -0
- package/dist/routes/ollama.d.ts +7 -0
- package/dist/routes/ollama.d.ts.map +1 -0
- package/dist/routes/ollama.js +595 -0
- package/dist/routes/ollama.js.map +1 -0
- package/dist/routes/profiles.d.ts +3 -0
- package/dist/routes/profiles.d.ts.map +1 -0
- package/dist/routes/profiles.js +431 -0
- package/dist/routes/profiles.js.map +1 -0
- package/dist/routes/proxy.d.ts +32 -0
- package/dist/routes/proxy.d.ts.map +1 -0
- package/dist/routes/proxy.js +2793 -0
- package/dist/routes/proxy.js.map +1 -0
- package/dist/routes/responses.d.ts +1161 -0
- package/dist/routes/responses.d.ts.map +1 -0
- package/dist/routes/responses.js +1521 -0
- package/dist/routes/responses.js.map +1 -0
- package/dist/routes/settings.d.ts +2 -0
- package/dist/routes/settings.d.ts.map +1 -0
- package/dist/routes/settings.js +549 -0
- package/dist/routes/settings.js.map +1 -0
- package/dist/routes/status.d.ts +3 -0
- package/dist/routes/status.d.ts.map +1 -0
- package/dist/routes/status.js +214 -0
- package/dist/routes/status.js.map +1 -0
- package/dist/routes/update.d.ts +31 -0
- package/dist/routes/update.d.ts.map +1 -0
- package/dist/routes/update.js +536 -0
- package/dist/routes/update.js.map +1 -0
- package/dist/routes/url-tokens.d.ts +2 -0
- package/dist/routes/url-tokens.d.ts.map +1 -0
- package/dist/routes/url-tokens.js +31 -0
- package/dist/routes/url-tokens.js.map +1 -0
- package/dist/scripts/export-catalog.d.ts +2 -0
- package/dist/scripts/export-catalog.d.ts.map +1 -0
- package/dist/scripts/export-catalog.js +114 -0
- package/dist/scripts/export-catalog.js.map +1 -0
- package/dist/scripts/rotate-encryption-key.d.ts +81 -0
- package/dist/scripts/rotate-encryption-key.d.ts.map +1 -0
- package/dist/scripts/rotate-encryption-key.js +232 -0
- package/dist/scripts/rotate-encryption-key.js.map +1 -0
- package/dist/scripts/routing-sim.d.ts +2 -0
- package/dist/scripts/routing-sim.d.ts.map +1 -0
- package/dist/scripts/routing-sim.js +130 -0
- package/dist/scripts/routing-sim.js.map +1 -0
- package/dist/scripts/test-all-models.d.ts +2 -0
- package/dist/scripts/test-all-models.d.ts.map +1 -0
- package/dist/scripts/test-all-models.js +56 -0
- package/dist/scripts/test-all-models.js.map +1 -0
- package/dist/services/anthropic-map.d.ts +39 -0
- package/dist/services/anthropic-map.d.ts.map +1 -0
- package/dist/services/anthropic-map.js +138 -0
- package/dist/services/anthropic-map.js.map +1 -0
- package/dist/services/auth.d.ts +30 -0
- package/dist/services/auth.d.ts.map +1 -0
- package/dist/services/auth.js +124 -0
- package/dist/services/auth.js.map +1 -0
- package/dist/services/auto-discover.d.ts +77 -0
- package/dist/services/auto-discover.d.ts.map +1 -0
- package/dist/services/auto-discover.js +1047 -0
- package/dist/services/auto-discover.js.map +1 -0
- package/dist/services/backups.d.ts +67 -0
- package/dist/services/backups.d.ts.map +1 -0
- package/dist/services/backups.js +444 -0
- package/dist/services/backups.js.map +1 -0
- package/dist/services/builtin-model-discovery.d.ts +107 -0
- package/dist/services/builtin-model-discovery.d.ts.map +1 -0
- package/dist/services/builtin-model-discovery.js +296 -0
- package/dist/services/builtin-model-discovery.js.map +1 -0
- package/dist/services/cache.d.ts +190 -0
- package/dist/services/cache.d.ts.map +1 -0
- package/dist/services/cache.js +617 -0
- package/dist/services/cache.js.map +1 -0
- package/dist/services/catalog-sync.d.ts +257 -0
- package/dist/services/catalog-sync.d.ts.map +1 -0
- package/dist/services/catalog-sync.js +1041 -0
- package/dist/services/catalog-sync.js.map +1 -0
- package/dist/services/compression/config.d.ts +33 -0
- package/dist/services/compression/config.d.ts.map +1 -0
- package/dist/services/compression/config.js +158 -0
- package/dist/services/compression/config.js.map +1 -0
- package/dist/services/compression/engines/aging.d.ts +2 -0
- package/dist/services/compression/engines/aging.d.ts.map +1 -0
- package/dist/services/compression/engines/aging.js +53 -0
- package/dist/services/compression/engines/aging.js.map +1 -0
- package/dist/services/compression/engines/custom-filters.d.ts +4 -0
- package/dist/services/compression/engines/custom-filters.d.ts.map +1 -0
- package/dist/services/compression/engines/custom-filters.js +49 -0
- package/dist/services/compression/engines/custom-filters.js.map +1 -0
- package/dist/services/compression/engines/dedup.d.ts +2 -0
- package/dist/services/compression/engines/dedup.d.ts.map +1 -0
- package/dist/services/compression/engines/dedup.js +61 -0
- package/dist/services/compression/engines/dedup.js.map +1 -0
- package/dist/services/compression/engines/filter-definitions.d.ts +75 -0
- package/dist/services/compression/engines/filter-definitions.d.ts.map +1 -0
- package/dist/services/compression/engines/filter-definitions.js +45 -0
- package/dist/services/compression/engines/filter-definitions.js.map +1 -0
- package/dist/services/compression/engines/hard-budget.d.ts +2 -0
- package/dist/services/compression/engines/hard-budget.d.ts.map +1 -0
- package/dist/services/compression/engines/hard-budget.js +52 -0
- package/dist/services/compression/engines/hard-budget.js.map +1 -0
- package/dist/services/compression/engines/index.d.ts +9 -0
- package/dist/services/compression/engines/index.d.ts.map +1 -0
- package/dist/services/compression/engines/index.js +9 -0
- package/dist/services/compression/engines/index.js.map +1 -0
- package/dist/services/compression/engines/jsoncompact.d.ts +3 -0
- package/dist/services/compression/engines/jsoncompact.d.ts.map +1 -0
- package/dist/services/compression/engines/jsoncompact.js +145 -0
- package/dist/services/compression/engines/jsoncompact.js.map +1 -0
- package/dist/services/compression/engines/lite.d.ts +2 -0
- package/dist/services/compression/engines/lite.d.ts.map +1 -0
- package/dist/services/compression/engines/lite.js +34 -0
- package/dist/services/compression/engines/lite.js.map +1 -0
- package/dist/services/compression/engines/read-lifecycle.d.ts +2 -0
- package/dist/services/compression/engines/read-lifecycle.d.ts.map +1 -0
- package/dist/services/compression/engines/read-lifecycle.js +70 -0
- package/dist/services/compression/engines/read-lifecycle.js.map +1 -0
- package/dist/services/compression/engines/relevance.d.ts +2 -0
- package/dist/services/compression/engines/relevance.d.ts.map +1 -0
- package/dist/services/compression/engines/relevance.js +74 -0
- package/dist/services/compression/engines/relevance.js.map +1 -0
- package/dist/services/compression/engines/toolfilter.d.ts +2 -0
- package/dist/services/compression/engines/toolfilter.d.ts.map +1 -0
- package/dist/services/compression/engines/toolfilter.js +195 -0
- package/dist/services/compression/engines/toolfilter.js.map +1 -0
- package/dist/services/compression/fidelity-gate.d.ts +12 -0
- package/dist/services/compression/fidelity-gate.d.ts.map +1 -0
- package/dist/services/compression/fidelity-gate.js +90 -0
- package/dist/services/compression/fidelity-gate.js.map +1 -0
- package/dist/services/compression/helpers.d.ts +9 -0
- package/dist/services/compression/helpers.d.ts.map +1 -0
- package/dist/services/compression/helpers.js +52 -0
- package/dist/services/compression/helpers.js.map +1 -0
- package/dist/services/compression/pipeline.d.ts +7 -0
- package/dist/services/compression/pipeline.d.ts.map +1 -0
- package/dist/services/compression/pipeline.js +245 -0
- package/dist/services/compression/pipeline.js.map +1 -0
- package/dist/services/compression/preservation.d.ts +27 -0
- package/dist/services/compression/preservation.d.ts.map +1 -0
- package/dist/services/compression/preservation.js +109 -0
- package/dist/services/compression/preservation.js.map +1 -0
- package/dist/services/compression/registry.d.ts +6 -0
- package/dist/services/compression/registry.d.ts.map +1 -0
- package/dist/services/compression/registry.js +16 -0
- package/dist/services/compression/registry.js.map +1 -0
- package/dist/services/compression/stats.d.ts +29 -0
- package/dist/services/compression/stats.d.ts.map +1 -0
- package/dist/services/compression/stats.js +55 -0
- package/dist/services/compression/stats.js.map +1 -0
- package/dist/services/compression/types.d.ts +90 -0
- package/dist/services/compression/types.d.ts.map +1 -0
- package/dist/services/compression/types.js +2 -0
- package/dist/services/compression/types.js.map +1 -0
- package/dist/services/context-handoff.d.ts +22 -0
- package/dist/services/context-handoff.d.ts.map +1 -0
- package/dist/services/context-handoff.js +164 -0
- package/dist/services/context-handoff.js.map +1 -0
- package/dist/services/cooldown-probe.d.ts +24 -0
- package/dist/services/cooldown-probe.d.ts.map +1 -0
- package/dist/services/cooldown-probe.js +181 -0
- package/dist/services/cooldown-probe.js.map +1 -0
- package/dist/services/custom-endpoint.d.ts +58 -0
- package/dist/services/custom-endpoint.d.ts.map +1 -0
- package/dist/services/custom-endpoint.js +167 -0
- package/dist/services/custom-endpoint.js.map +1 -0
- package/dist/services/custom-media-register.d.ts +22 -0
- package/dist/services/custom-media-register.d.ts.map +1 -0
- package/dist/services/custom-media-register.js +45 -0
- package/dist/services/custom-media-register.js.map +1 -0
- package/dist/services/custom-model-register.d.ts +50 -0
- package/dist/services/custom-model-register.d.ts.map +1 -0
- package/dist/services/custom-model-register.js +103 -0
- package/dist/services/custom-model-register.js.map +1 -0
- package/dist/services/custom-model-seed.d.ts +18 -0
- package/dist/services/custom-model-seed.d.ts.map +1 -0
- package/dist/services/custom-model-seed.js +42 -0
- package/dist/services/custom-model-seed.js.map +1 -0
- package/dist/services/custom-model-sync.d.ts +37 -0
- package/dist/services/custom-model-sync.d.ts.map +1 -0
- package/dist/services/custom-model-sync.js +118 -0
- package/dist/services/custom-model-sync.js.map +1 -0
- package/dist/services/custom-model-tombstone.d.ts +5 -0
- package/dist/services/custom-model-tombstone.d.ts.map +1 -0
- package/dist/services/custom-model-tombstone.js +30 -0
- package/dist/services/custom-model-tombstone.js.map +1 -0
- package/dist/services/declarative-config.d.ts +356 -0
- package/dist/services/declarative-config.d.ts.map +1 -0
- package/dist/services/declarative-config.js +427 -0
- package/dist/services/declarative-config.js.map +1 -0
- package/dist/services/degradation.d.ts +40 -0
- package/dist/services/degradation.d.ts.map +1 -0
- package/dist/services/degradation.js +119 -0
- package/dist/services/degradation.js.map +1 -0
- package/dist/services/embeddings.d.ts +76 -0
- package/dist/services/embeddings.d.ts.map +1 -0
- package/dist/services/embeddings.js +319 -0
- package/dist/services/embeddings.js.map +1 -0
- package/dist/services/fusion.d.ts +162 -0
- package/dist/services/fusion.d.ts.map +1 -0
- package/dist/services/fusion.js +789 -0
- package/dist/services/fusion.js.map +1 -0
- package/dist/services/gemini-map.d.ts +14 -0
- package/dist/services/gemini-map.d.ts.map +1 -0
- package/dist/services/gemini-map.js +78 -0
- package/dist/services/gemini-map.js.map +1 -0
- package/dist/services/health.d.ts +52 -0
- package/dist/services/health.d.ts.map +1 -0
- package/dist/services/health.js +352 -0
- package/dist/services/health.js.map +1 -0
- package/dist/services/idempotency.d.ts +49 -0
- package/dist/services/idempotency.d.ts.map +1 -0
- package/dist/services/idempotency.js +140 -0
- package/dist/services/idempotency.js.map +1 -0
- package/dist/services/key-budget.d.ts +74 -0
- package/dist/services/key-budget.d.ts.map +1 -0
- package/dist/services/key-budget.js +200 -0
- package/dist/services/key-budget.js.map +1 -0
- package/dist/services/media.d.ts +123 -0
- package/dist/services/media.d.ts.map +1 -0
- package/dist/services/media.js +954 -0
- package/dist/services/media.js.map +1 -0
- package/dist/services/model-discovery.d.ts +126 -0
- package/dist/services/model-discovery.d.ts.map +1 -0
- package/dist/services/model-discovery.js +662 -0
- package/dist/services/model-discovery.js.map +1 -0
- package/dist/services/model-groups.d.ts +149 -0
- package/dist/services/model-groups.d.ts.map +1 -0
- package/dist/services/model-groups.js +314 -0
- package/dist/services/model-groups.js.map +1 -0
- package/dist/services/model-listing.d.ts +18 -0
- package/dist/services/model-listing.d.ts.map +1 -0
- package/dist/services/model-listing.js +94 -0
- package/dist/services/model-listing.js.map +1 -0
- package/dist/services/model-retirement.d.ts +29 -0
- package/dist/services/model-retirement.d.ts.map +1 -0
- package/dist/services/model-retirement.js +86 -0
- package/dist/services/model-retirement.js.map +1 -0
- package/dist/services/model-state.d.ts +90 -0
- package/dist/services/model-state.d.ts.map +1 -0
- package/dist/services/model-state.js +342 -0
- package/dist/services/model-state.js.map +1 -0
- package/dist/services/model-weight-overrides.d.ts +48 -0
- package/dist/services/model-weight-overrides.d.ts.map +1 -0
- package/dist/services/model-weight-overrides.js +127 -0
- package/dist/services/model-weight-overrides.js.map +1 -0
- package/dist/services/notification-emitter.d.ts +50 -0
- package/dist/services/notification-emitter.d.ts.map +1 -0
- package/dist/services/notification-emitter.js +177 -0
- package/dist/services/notification-emitter.js.map +1 -0
- package/dist/services/opencode-free-sync.d.ts +29 -0
- package/dist/services/opencode-free-sync.d.ts.map +1 -0
- package/dist/services/opencode-free-sync.js +206 -0
- package/dist/services/opencode-free-sync.js.map +1 -0
- package/dist/services/penalty-inspector.d.ts +56 -0
- package/dist/services/penalty-inspector.d.ts.map +1 -0
- package/dist/services/penalty-inspector.js +167 -0
- package/dist/services/penalty-inspector.js.map +1 -0
- package/dist/services/profile-models.d.ts +5 -0
- package/dist/services/profile-models.d.ts.map +1 -0
- package/dist/services/profile-models.js +62 -0
- package/dist/services/profile-models.js.map +1 -0
- package/dist/services/provider-credential.d.ts +19 -0
- package/dist/services/provider-credential.d.ts.map +1 -0
- package/dist/services/provider-credential.js +51 -0
- package/dist/services/provider-credential.js.map +1 -0
- package/dist/services/provider-quota.d.ts +64 -0
- package/dist/services/provider-quota.d.ts.map +1 -0
- package/dist/services/provider-quota.js +563 -0
- package/dist/services/provider-quota.js.map +1 -0
- package/dist/services/quirks.d.ts +0 -0
- package/dist/services/quirks.d.ts.map +1 -0
- package/dist/services/quirks.js +0 -0
- package/dist/services/quirks.js.map +1 -0
- package/dist/services/quota-forecast.d.ts +50 -0
- package/dist/services/quota-forecast.d.ts.map +1 -0
- package/dist/services/quota-forecast.js +150 -0
- package/dist/services/quota-forecast.js.map +1 -0
- package/dist/services/quota-outlook.d.ts +4 -0
- package/dist/services/quota-outlook.d.ts.map +1 -0
- package/dist/services/quota-outlook.js +92 -0
- package/dist/services/quota-outlook.js.map +1 -0
- package/dist/services/ratelimit.d.ts +249 -0
- package/dist/services/ratelimit.d.ts.map +1 -0
- package/dist/services/ratelimit.js +1182 -0
- package/dist/services/ratelimit.js.map +1 -0
- package/dist/services/request-retention.d.ts +60 -0
- package/dist/services/request-retention.d.ts.map +1 -0
- package/dist/services/request-retention.js +229 -0
- package/dist/services/request-retention.js.map +1 -0
- package/dist/services/router.d.ts +384 -0
- package/dist/services/router.d.ts.map +1 -0
- package/dist/services/router.js +1986 -0
- package/dist/services/router.js.map +1 -0
- package/dist/services/scoring.d.ts +156 -0
- package/dist/services/scoring.d.ts.map +1 -0
- package/dist/services/scoring.js +435 -0
- package/dist/services/scoring.js.map +1 -0
- package/dist/services/url-tokens.d.ts +15 -0
- package/dist/services/url-tokens.d.ts.map +1 -0
- package/dist/services/url-tokens.js +55 -0
- package/dist/services/url-tokens.js.map +1 -0
- package/package.json +77 -4
- package/README.md +0 -3
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! tailwindcss v4.3.0 | 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,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--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:"";--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-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:"Geist Variable", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:"Geist Mono Variable", ui-monospace, SFMono-Regular, Menlo, monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-orange-400:oklch(75% .183 55.934);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-950:oklch(27.9% .077 45.635);--color-green-500:oklch(72.3% .219 149.579);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-950:oklch(26.2% .051 172.552);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-600:oklch(60.9% .126 221.723);--color-cyan-700:oklch(52% .105 223.128);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-600:oklch(58.8% .158 241.966);--color-sky-700:oklch(50% .134 242.749);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-violet-950:oklch(28.3% .141 291.089);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-rose-700:oklch(51.4% .222 16.935);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce:bounce 1s infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Geist Variable", ui-sans-serif, system-ui, -apple-system, sans-serif;--default-mono-font-family:"Geist Mono Variable", ui-monospace, SFMono-Regular, Menlo, monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}html{font-feature-settings:"ss01", "cv11";text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Geist Variable,ui-sans-serif,system-ui,-apple-system,sans-serif}body{background-color:var(--background);color:var(--foreground);font-feature-settings:"ss01", "cv11", "tnum"}html.desktop.desktop-mac body{background-color:#0000}html.desktop.desktop-mac .desktop-backdrop{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){html.desktop.desktop-mac .desktop-backdrop{background-color:color-mix(in oklab, var(--background) 55%, transparent)}}code,pre,kbd,samp{font-family:var(--font-mono);font-feature-settings:"ss02", "ss03"}.tabular-nums{font-variant-numeric:tabular-nums}input,textarea,select{font-feature-settings:"ss01"}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-auto{pointer-events:auto}.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}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start-0{inset-inline-start:calc(var(--spacing) * 0)}.end-0{inset-inline-end:calc(var(--spacing) * 0)}.end-1\.5{inset-inline-end:calc(var(--spacing) * 1.5)}.-top-0\.5{top:calc(var(--spacing) * -.5)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.-right-0\.5{right:calc(var(--spacing) * -.5)}.right-0{right:calc(var(--spacing) * 0)}.right-1{right:calc(var(--spacing) * 1)}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-6{bottom:calc(var(--spacing) * 6)}.-left-1{left:calc(var(--spacing) * -1)}.left-1{left:calc(var(--spacing) * 1)}.left-1\/2{left:50%}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.isolate{isolation:isolate}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[70\]{z-index:70}.col-span-2{grid-column:span 2/span 2}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-5{margin-inline:calc(var(--spacing) * 5)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-4{margin-block:calc(var(--spacing) * 4)}.ms-1\.5{margin-inline-start:calc(var(--spacing) * 1.5)}.ms-8{margin-inline-start:calc(var(--spacing) * 8)}.ms-auto{margin-inline-start:auto}.-me-1{margin-inline-end:calc(var(--spacing) * -1)}.me-1\.5{margin-inline-end:calc(var(--spacing) * 1.5)}.me-auto{margin-inline-end:auto}.-mt-0\.5{margin-top:calc(var(--spacing) * -.5)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.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-10{margin-top:calc(var(--spacing) * 10)}.mt-auto{margin-top:auto}.-mr-1{margin-right:calc(var(--spacing) * -1)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-auto{margin-right:auto}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.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)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-8{margin-left:calc(var(--spacing) * 8)}.ml-auto{margin-left:auto}.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}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.field-sizing-content{field-sizing:content}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.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-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.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-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-\[74px\]{height:74px}.h-\[min\(85vh\,85dvh\)\]{height:min(85vh,85dvh)}.h-auto{height:auto}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.max-h-\(--available-height\){max-height:var(--available-height)}.max-h-52{max-height:calc(var(--spacing) * 52)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[45vh\]{max-height:45vh}.max-h-\[50vh\]{max-height:50vh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[65vh\]{max-height:65vh}.max-h-\[240px\]{max-height:240px}.max-h-\[360px\]{max-height:360px}.max-h-\[420px\]{max-height:420px}.max-h-\[min\(85vh\,85dvh\)\]{max-height:min(85vh,85dvh)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-32{min-height:calc(var(--spacing) * 32)}.min-h-\[3rem\]{min-height:3rem}.min-h-\[32px\]{min-height:32px}.min-h-\[88px\]{min-height:88px}.min-h-\[240px\]{min-height:240px}.min-h-dvh{min-height:100dvh}.min-h-screen{min-height:100vh}.w-\(--anchor-width\){width:var(--anchor-width)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.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-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-60{width:calc(var(--spacing) * 60)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-\[150px\]{width:150px}.w-\[160px\]{width:160px}.w-\[190px\]{width:190px}.w-\[200px\]{width:200px}.w-\[220px\]{width:220px}.w-\[260px\]{width:260px}.w-\[300px\]{width:300px}.w-\[320px\]{width:320px}.w-\[calc\(100\%-0\.5rem\)\]{width:calc(100% - .5rem)}.w-\[calc\(100\%-1\.5rem\)\]{width:calc(100% - 1.5rem)}.w-\[min\(340px\,calc\(100vw-3rem\)\)\]{width:min(340px,100vw - 3rem)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-\[10rem\]{max-width:10rem}.max-w-\[16rem\]{max-width:16rem}.max-w-\[50\%\]{max-width:50%}.max-w-\[80\%\]{max-width:80%}.max-w-\[140px\]{max-width:140px}.max-w-\[150px\]{max-width:150px}.max-w-\[160px\]{max-width:160px}.max-w-\[180px\]{max-width:180px}.max-w-\[200px\]{max-width:200px}.max-w-\[220px\]{max-width:220px}.max-w-\[240px\]{max-width:240px}.max-w-\[260px\]{max-width:260px}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-prose{max-width:65ch}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-7{min-width:calc(var(--spacing) * 7)}.min-w-24{min-width:calc(var(--spacing) * 24)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-\[240px\]{min-width:240px}.min-w-\[260px\]{min-width:260px}.min-w-\[280px\]{min-width:280px}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-auto{flex-basis:auto}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\(--transform-origin\){transform-origin:var(--transform-origin)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);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)}.-rotate-90{rotate:-90deg}.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-bounce{animation:var(--animate-bounce)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-out{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-help{cursor:help}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.scroll-my-1{scroll-margin-block:calc(var(--spacing) * 1)}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.auto-rows-min{grid-auto-rows:min-content}.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-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.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-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}: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)))}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.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-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:calc(var(--radius) * 2)}.rounded-3xl{border-radius:calc(var(--radius) * 3)}.rounded-4xl{border-radius:calc(var(--radius) * 4)}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) * .75)}.rounded-sm{border-radius:calc(var(--radius) * .5)}.rounded-xl{border-radius:calc(var(--radius) * 1.5)}.rounded-t-3xl{border-top-left-radius:calc(var(--radius) * 3);border-top-right-radius:calc(var(--radius) * 3)}.rounded-b-3xl{border-bottom-right-radius:calc(var(--radius) * 3);border-bottom-left-radius:calc(var(--radius) * 3)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.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-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-500\/25{border-color:#f99c0040}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/25{border-color:color-mix(in oklab, var(--color-amber-500) 25%, transparent)}}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-amber-600\/30{border-color:#dd74004d}@supports (color:color-mix(in lab, red, red)){.border-amber-600\/30{border-color:color-mix(in oklab, var(--color-amber-600) 30%, transparent)}}.border-border,.border-border\/40{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/40{border-color:color-mix(in oklab, var(--border) 40%, transparent)}}.border-border\/60{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/60{border-color:color-mix(in oklab, var(--border) 60%, transparent)}}.border-destructive,.border-destructive\/25{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/25{border-color:color-mix(in oklab, var(--destructive) 25%, transparent)}}.border-destructive\/30{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/30{border-color:color-mix(in oklab, var(--destructive) 30%, transparent)}}.border-destructive\/40{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/40{border-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.border-emerald-200{border-color:var(--color-emerald-200)}.border-emerald-200\/70{border-color:#a4f4cfb3}@supports (color:color-mix(in lab, red, red)){.border-emerald-200\/70{border-color:color-mix(in oklab, var(--color-emerald-200) 70%, transparent)}}.border-emerald-500\/25{border-color:#00bb7f40}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/25{border-color:color-mix(in oklab, var(--color-emerald-500) 25%, transparent)}}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/30{border-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.border-foreground,.border-foreground\/15{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/15{border-color:color-mix(in oklab, var(--foreground) 15%, transparent)}}.border-foreground\/20{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/20{border-color:color-mix(in oklab, var(--foreground) 20%, transparent)}}.border-foreground\/25{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/25{border-color:color-mix(in oklab, var(--foreground) 25%, transparent)}}.border-foreground\/40{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/40{border-color:color-mix(in oklab, var(--foreground) 40%, transparent)}}.border-input{border-color:var(--input)}.border-muted-foreground\/30{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.border-muted-foreground\/30{border-color:color-mix(in oklab, var(--muted-foreground) 30%, transparent)}}.border-primary,.border-primary\/25{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.border-primary\/25{border-color:color-mix(in oklab, var(--primary) 25%, transparent)}}.border-primary\/40{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.border-primary\/40{border-color:color-mix(in oklab, var(--primary) 40%, transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-ring{border-color:var(--ring)}.border-transparent{border-color:#0000}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\/10{border-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.bg-\[oklch\(0\.17_0\.028_255\)\]{background-color:oklch(17% .028 255)}.bg-accent,.bg-accent\/50{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/50{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/5{background-color:#f99c000d}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/5{background-color:color-mix(in oklab, var(--color-amber-500) 5%, transparent)}}.bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/15{background-color:color-mix(in oklab, var(--color-amber-500) 15%, transparent)}}.bg-amber-500\/80{background-color:#f99c00cc}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/80{background-color:color-mix(in oklab, var(--color-amber-500) 80%, transparent)}}.bg-amber-600\/15{background-color:#dd740026}@supports (color:color-mix(in lab, red, red)){.bg-amber-600\/15{background-color:color-mix(in oklab, var(--color-amber-600) 15%, transparent)}}.bg-background,.bg-background\/40{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/40{background-color:color-mix(in oklab, var(--background) 40%, transparent)}}.bg-background\/45{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/45{background-color:color-mix(in oklab, var(--background) 45%, transparent)}}.bg-background\/60{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/60{background-color:color-mix(in oklab, var(--background) 60%, transparent)}}.bg-background\/80{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/80{background-color:color-mix(in oklab, var(--background) 80%, transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-blue-600{background-color:var(--color-blue-600)}.bg-border{background-color:var(--border)}.bg-card,.bg-card\/60{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/60{background-color:color-mix(in oklab, var(--card) 60%, transparent)}}.bg-cyan-600\/15{background-color:#0092b526}@supports (color:color-mix(in lab, red, red)){.bg-cyan-600\/15{background-color:color-mix(in oklab, var(--color-cyan-600) 15%, transparent)}}.bg-destructive\/5{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/5{background-color:color-mix(in oklab, var(--destructive) 5%, transparent)}}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.bg-emerald-50\/60{background-color:#ecfdf599}@supports (color:color-mix(in lab, red, red)){.bg-emerald-50\/60{background-color:color-mix(in oklab, var(--color-emerald-50) 60%, transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/5{background-color:#00bb7f0d}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/5{background-color:color-mix(in oklab, var(--color-emerald-500) 5%, transparent)}}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/10{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/15{background-color:color-mix(in oklab, var(--color-emerald-500) 15%, transparent)}}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-emerald-600\/15{background-color:#00976726}@supports (color:color-mix(in lab, red, red)){.bg-emerald-600\/15{background-color:color-mix(in oklab, var(--color-emerald-600) 15%, transparent)}}.bg-foreground{background-color:var(--foreground)}.bg-muted{background-color:var(--muted)}.bg-muted-foreground\/30{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/30{background-color:color-mix(in oklab, var(--muted-foreground) 30%, transparent)}}.bg-muted-foreground\/40{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/40{background-color:color-mix(in oklab, var(--muted-foreground) 40%, transparent)}}.bg-muted-foreground\/50{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/50{background-color:color-mix(in oklab, var(--muted-foreground) 50%, transparent)}}.bg-muted\/20{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/20{background-color:color-mix(in oklab, var(--muted) 20%, transparent)}}.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/30{background-color:color-mix(in oklab, var(--muted) 30%, transparent)}}.bg-muted\/40{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/40{background-color:color-mix(in oklab, var(--muted) 40%, transparent)}}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.bg-orange-600\/15{background-color:#f0510026}@supports (color:color-mix(in lab, red, red)){.bg-orange-600\/15{background-color:color-mix(in oklab, var(--color-orange-600) 15%, transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/5{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/5{background-color:color-mix(in oklab, var(--primary) 5%, transparent)}}.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, var(--primary) 10%, transparent)}}.bg-primary\/70{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/70{background-color:color-mix(in oklab, var(--primary) 70%, transparent)}}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-600\/15{background-color:#e4001426}@supports (color:color-mix(in lab, red, red)){.bg-red-600\/15{background-color:color-mix(in oklab, var(--color-red-600) 15%, transparent)}}.bg-ring\/30{background-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.bg-ring\/30{background-color:color-mix(in oklab, var(--ring) 30%, transparent)}}.bg-rose-500{background-color:var(--color-rose-500)}.bg-rose-600\/15{background-color:#e7004426}@supports (color:color-mix(in lab, red, red)){.bg-rose-600\/15{background-color:color-mix(in oklab, var(--color-rose-600) 15%, transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-sky-600\/15{background-color:#0084cc26}@supports (color:color-mix(in lab, red, red)){.bg-sky-600\/15{background-color:color-mix(in oklab, var(--color-sky-600) 15%, transparent)}}.bg-transparent{background-color:#0000}.bg-violet-50{background-color:var(--color-violet-50)}.bg-violet-600\/15{background-color:#7f22fe26}@supports (color:color-mix(in lab, red, red)){.bg-violet-600\/15{background-color:color-mix(in oklab, var(--color-violet-600) 15%, transparent)}}.bg-white{background-color:var(--color-white)}.bg-clip-padding{background-clip:padding-box}.fill-current{fill:currentColor}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.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-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.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-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-px{padding-block:1px}.ps-1{padding-inline-start:calc(var(--spacing) * 1)}.pe-2{padding-inline-end:calc(var(--spacing) * 2)}.pe-9{padding-inline-end:calc(var(--spacing) * 9)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.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-\[18vh\]{padding-top:18vh}.pr-0\.5{padding-right:calc(var(--spacing) * .5)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5\.5{padding-left:calc(var(--spacing) * 5.5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-20{padding-left:calc(var(--spacing) * 20)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-baseline{vertical-align:baseline}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.font-heading{font-family:var(--font-sans)}.font-mono{font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,monospace}.font-serif{font-family:var(--font-serif)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.text-\[0\.85em\]{font-size:.85em}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.leading-none{--tw-leading:1;line-height:1}.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-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-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.break-words,.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[oklch\(0\.74_0\.025_255\)\]{color:oklch(74% .025 255)}.text-\[oklch\(0\.87_0\.018_255\)\]{color:oklch(87% .018 255)}.text-accent-foreground{color:var(--accent-foreground)}.text-amber-400{color:var(--color-amber-400)}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-background{color:var(--background)}.text-blue-500{color:var(--color-blue-500)}.text-card-foreground{color:var(--card-foreground)}.text-cyan-700{color:var(--color-cyan-700)}.text-destructive,.text-destructive\/90{color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.text-destructive\/90{color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-foreground,.text-foreground\/80{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/80{color:color-mix(in oklab, var(--foreground) 80%, transparent)}}.text-green-500{color:var(--color-green-500)}.text-muted-foreground,.text-muted-foreground\/30{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/30{color:color-mix(in oklab, var(--muted-foreground) 30%, transparent)}}.text-muted-foreground\/50{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/50{color:color-mix(in oklab, var(--muted-foreground) 50%, transparent)}}.text-muted-foreground\/60{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/60{color:color-mix(in oklab, var(--muted-foreground) 60%, transparent)}}.text-muted-foreground\/70{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/70{color:color-mix(in oklab, var(--muted-foreground) 70%, transparent)}}.text-muted-foreground\/80{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/80{color:color-mix(in oklab, var(--muted-foreground) 80%, transparent)}}.text-orange-700{color:var(--color-orange-700)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-rose-600{color:var(--color-rose-600)}.text-rose-700{color:var(--color-rose-700)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sky-700{color:var(--color-sky-700)}.text-violet-500{color:var(--color-violet-500)}.text-violet-700{color:var(--color-violet-700)}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.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,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.decoration-foreground\/40{-webkit-text-decoration-color:var(--foreground);-webkit-text-decoration-color:var(--foreground);-webkit-text-decoration-color:var(--foreground);text-decoration-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.decoration-foreground\/40{-webkit-text-decoration-color:color-mix(in oklab, var(--foreground) 40%, transparent);-webkit-text-decoration-color:color-mix(in oklab, var(--foreground) 40%, transparent);-webkit-text-decoration-color:color-mix(in oklab, var(--foreground) 40%, transparent);text-decoration-color:color-mix(in oklab, var(--foreground) 40%, transparent)}}.decoration-muted-foreground\/40{-webkit-text-decoration-color:var(--muted-foreground);-webkit-text-decoration-color:var(--muted-foreground);-webkit-text-decoration-color:var(--muted-foreground);text-decoration-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.decoration-muted-foreground\/40{-webkit-text-decoration-color:color-mix(in oklab, var(--muted-foreground) 40%, transparent);-webkit-text-decoration-color:color-mix(in oklab, var(--muted-foreground) 40%, transparent);-webkit-text-decoration-color:color-mix(in oklab, var(--muted-foreground) 40%, transparent);text-decoration-color:color-mix(in oklab, var(--muted-foreground) 40%, transparent)}}.decoration-transparent{text-decoration-color:#0000}.decoration-dotted{text-decoration-style:dotted}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.accent-foreground{accent-color:var(--foreground)}.accent-primary{accent-color:var(--primary)}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px 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-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px 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-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-foreground\/5{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.ring-foreground\/5{--tw-ring-color:color-mix(in oklab, var(--foreground) 5%, transparent)}}.ring-foreground\/10{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.ring-foreground\/10{--tw-ring-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.ring-primary\/40{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.ring-primary\/40{--tw-ring-color:color-mix(in oklab, var(--primary) 40%, transparent)}}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.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,)}.grayscale{--tw-grayscale:grayscale(100%);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-\[2px\]{--tw-backdrop-blur:blur(2px);-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-\[max-height\]{transition-property:max-height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,visibility\]{transition-property:opacity,visibility;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))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.fill-mode-forwards{--tw-animation-fill-mode:forwards;animation-fill-mode:forwards}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.\[--mk2\:\#E6E5E6\]{--mk2:#e6e5e6}.\[--mk\:\#000000\]{--mk:#000}.\[--mk\:\#3C82F6\]{--mk:#3c82f6}.\[--mk\:\#4D6BFE\]{--mk:#4d6bfe}.\[--mk\:\#6B50FF\]{--mk:#6b50ff}.\[--mk\:\#07A160\]{--mk:#07a160}.\[--mk\:\#991B1B\]{--mk:#991b1b}.\[--mk\:\#6950EF\]{--mk:#6950ef}.\[--mk\:\#17181C\]{--mk:#17181c}.\[--mk\:\#18181B\]{--mk:#18181b}.\[--mk\:\#26251E\]{--mk:#26251e}.\[--mk\:\#101010\]{--mk:#101010}.\[--mk\:\#111111\]{--mk:#111}.\[--mk\:\#949107\]{--mk:#949107}.\[--mk\:\#D37152\]{--mk:#d37152}.fade-in{--tw-enter-opacity:0}.fade-out{--tw-exit-opacity:0}.paused{animation-play-state:paused}.ring-inset{--tw-ring-inset:inset}.running{animation-play-state:running}.slide-in-from-bottom-2{--tw-enter-translate-y:calc(2*var(--spacing))}.slide-in-from-bottom-4{--tw-enter-translate-y:calc(4*var(--spacing))}.slide-out-to-bottom-4{--tw-exit-translate-y:calc(4*var(--spacing))}@media (hover:hover){.group-hover\:opacity-60:is(:where(.group):hover *){opacity:.6}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\/handle\:bg-ring\/60:is(:where(.group\/handle):hover *){background-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.group-hover\/handle\:bg-ring\/60:is(:where(.group\/handle):hover *){background-color:color-mix(in oklab, var(--ring) 60%, transparent)}}.group-hover\/krow\:opacity-100:is(:where(.group\/krow):hover *),.group-hover\/row\:opacity-100:is(:where(.group\/row):hover *){opacity:1}}.group-focus\/dropdown-menu-item\:text-accent-foreground:is(:where(.group\/dropdown-menu-item):focus *){color:var(--accent-foreground)}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.group-data-\[size\=default\]\/switch\:size-4:is(:where(.group\/switch)[data-size=default] *){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.group-data-\[size\=sm\]\/card\:p-3:is(:where(.group\/card)[data-size=sm] *){padding:calc(var(--spacing) * 3)}.group-data-\[size\=sm\]\/card\:px-3:is(:where(.group\/card)[data-size=sm] *){padding-inline:calc(var(--spacing) * 3)}.group-data-\[size\=sm\]\/card\:text-sm:is(:where(.group\/card)[data-size=sm] *){font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.group-data-\[size\=sm\]\/switch\:size-3:is(:where(.group\/switch)[data-size=sm] *){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.file\:mr-2::file-selector-button{margin-right:calc(var(--spacing) * 2)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-6::file-selector-button{height:calc(var(--spacing) * 6)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-x-3:after{content:var(--tw-content);inset-inline:calc(var(--spacing) * -3)}.after\:inset-x-0:after{content:var(--tw-content);inset-inline:calc(var(--spacing) * 0)}.after\:-inset-y-2:after{content:var(--tw-content);inset-block:calc(var(--spacing) * -2)}.after\:-bottom-px:after{content:var(--tw-content);bottom:-1px}.after\:h-0\.5:after{content:var(--tw-content);height:calc(var(--spacing) * .5)}.after\:rounded-full:after{content:var(--tw-content);border-radius:2147483647px}.after\:bg-linear-to-r:after{content:var(--tw-content);--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab, red, red)){.after\:bg-linear-to-r:after{--tw-gradient-position:to right in oklab}}.after\:bg-linear-to-r:after{background-image:linear-gradient(var(--tw-gradient-stops))}.after\:from-\[\#046CD6\]:after{content:var(--tw-content);--tw-gradient-from:#046cd6;--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\:to-\[\#F90E01\]:after{content:var(--tw-content);--tw-gradient-to:#f90e01;--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))}.first\:mt-0:first-child{margin-top:calc(var(--spacing) * 0)}.last\:mb-0:last-child{margin-bottom:calc(var(--spacing) * 0)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.last\:pb-0:last-child{padding-bottom:calc(var(--spacing) * 0)}.focus-within\:opacity-100:focus-within{opacity:1}@media (hover:hover){.hover\:scale-\[1\.02\]:hover{scale:1.02}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-amber-500:hover{background-color:var(--color-amber-500)}.hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\:bg-destructive\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.hover\:bg-emerald-600:hover{background-color:var(--color-emerald-600)}.hover\:bg-foreground\/5:hover{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-foreground\/5:hover{background-color:color-mix(in oklab, var(--foreground) 5%, transparent)}}.hover\:bg-muted:hover,.hover\:bg-muted\/30:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/30:hover{background-color:color-mix(in oklab, var(--muted) 30%, transparent)}}.hover\:bg-muted\/40:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/40:hover{background-color:color-mix(in oklab, var(--muted) 40%, transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.hover\:bg-muted\/60:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/60:hover{background-color:color-mix(in oklab, var(--muted) 60%, transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:bg-red-500:hover{background-color:var(--color-red-500)}.hover\:bg-ring\/20:hover{background-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-ring\/20:hover{background-color:color-mix(in oklab, var(--ring) 20%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.hover\:bg-sky-700\/20:hover{background-color:#0069a433}@supports (color:color-mix(in lab, red, red)){.hover\:bg-sky-700\/20:hover{background-color:color-mix(in oklab, var(--color-sky-700) 20%, transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-destructive:hover{color:var(--destructive)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:text-rose-600:hover{color:var(--color-rose-600)}.hover\:underline:hover{text-decoration-line:underline}.hover\:decoration-current:hover{text-decoration-color:currentColor}.hover\:decoration-foreground:hover{-webkit-text-decoration-color:var(--foreground);-webkit-text-decoration-color:var(--foreground);-webkit-text-decoration-color:var(--foreground);text-decoration-color:var(--foreground)}.hover\:\!opacity-100:hover{opacity:1!important}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow:hover{--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)}}.focus\:border-foreground\/30:focus{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.focus\:border-foreground\/30:focus{border-color:color-mix(in oklab, var(--foreground) 30%, transparent)}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-2:focus{--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\:ring-ring\/50:focus{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus\:ring-ring\/50:focus{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}:is(.focus\:\*\*\:text-accent-foreground:focus *),:is(.not-data-\[variant\=destructive\]\:focus\:\*\*\:text-accent-foreground:not([data-variant=destructive]):focus *){color:var(--accent-foreground)}.focus-visible\:border-destructive\/40:focus-visible{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:border-destructive\/40:focus-visible{border-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:bg-ring\/30:focus-visible{background-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:bg-ring\/30:focus-visible{background-color:color-mix(in oklab, var(--ring) 30%, transparent)}}.focus-visible\:text-foreground:focus-visible{color:var(--foreground)}.focus-visible\:opacity-100:focus-visible{opacity:1}.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-3:focus-visible,.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:scale-\[0\.97\]:active{scale:.97}.active\:cursor-grabbing:active{cursor:grabbing}.active\:not-aria-\[haspopup\]\:translate-y-px:active:not([aria-haspopup]){--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-input\/50:disabled{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.disabled\:bg-input\/50:disabled{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.disabled\:opacity-25:disabled{opacity:.25}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (hover:hover){.disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius)}.has-aria-expanded\:bg-muted\/50:has([aria-expanded=true]){background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.has-aria-expanded\:bg-muted\/50:has([aria-expanded=true]){background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 2)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 2)}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-data-\[slot\=card-description\]\:grid-rows-\[auto_auto\]:has([data-slot=card-description]){grid-template-rows:auto auto}.has-data-\[slot\=card-footer\]\:pb-0:has([data-slot=card-footer]){padding-bottom:calc(var(--spacing) * 0)}.has-\[\>img\:first-child\]\:pt-0:has(>img:first-child){padding-top:calc(var(--spacing) * 0)}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-inset\:pl-7[data-inset]{padding-left:calc(var(--spacing) * 7)}.data-placeholder\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-popup-open\:bg-accent[data-popup-open]{background-color:var(--accent)}.data-popup-open\:text-accent-foreground[data-popup-open]{color:var(--accent-foreground)}.data-popup-open\:opacity-100[data-popup-open],.data-pressed\:opacity-100[data-pressed]{opacity:1}.data-\[align-trigger\=true\]\:animate-none[data-align-trigger=true]{animation:none}.data-\[show\=false\]\:pointer-events-none[data-show=false]{pointer-events:none}.data-\[show\=false\]\:opacity-0[data-show=false]{opacity:0}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=inline-end\]\:slide-in-from-left-2[data-side=inline-end]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=inline-start\]\:slide-in-from-right-2[data-side=inline-start],.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-8[data-size=default]{height:calc(var(--spacing) * 8)}.data-\[size\=default\]\:h-\[18\.4px\][data-size=default]{height:18.4px}.data-\[size\=default\]\:w-\[32px\][data-size=default]{width:32px}.data-\[size\=sm\]\:h-7[data-size=sm]{height:calc(var(--spacing) * 7)}.data-\[size\=sm\]\:h-\[14px\][data-size=sm]{height:14px}.data-\[size\=sm\]\:w-\[24px\][data-size=sm]{width:24px}.data-\[size\=sm\]\:gap-3[data-size=sm]{gap:calc(var(--spacing) * 3)}.data-\[size\=sm\]\:rounded-lg[data-size=sm]{border-radius:var(--radius)}.data-\[size\=sm\]\:py-3[data-size=sm]{padding-block:calc(var(--spacing) * 3)}.data-\[size\=sm\]\:has-data-\[slot\=card-footer\]\:pb-0[data-size=sm]:has([data-slot=card-footer]){padding-bottom:calc(var(--spacing) * 0)}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-1\.5>*)[data-slot=select-value]{gap:calc(var(--spacing) * 1.5)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}@media (prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}}@media (width>=40rem){.sm\:right-6{right:calc(var(--spacing) * 6)}.sm\:bottom-6{bottom:calc(var(--spacing) * 6)}.sm\:left-6{left:calc(var(--spacing) * 6)}.sm\:col-span-3{grid-column:span 3/span 3}.sm\:mx-6{margin-inline:calc(var(--spacing) * 6)}.sm\:mt-1{margin-top:calc(var(--spacing) * 1)}.sm\:mb-6{margin-bottom:calc(var(--spacing) * 6)}.sm\:ml-0{margin-left:calc(var(--spacing) * 0)}.sm\:block{display:block}.sm\:size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.sm\:w-28{width:calc(var(--spacing) * 28)}.sm\:w-48{width:calc(var(--spacing) * 48)}.sm\:w-64{width:calc(var(--spacing) * 64)}.sm\:w-72{width:calc(var(--spacing) * 72)}.sm\:w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem)}.sm\:w-auto{width:auto}.sm\:max-w-\[220px\]{max-width:220px}.sm\:max-w-\[260px\]{max-width:260px}.sm\:max-w-xs{max-width:var(--container-xs)}.sm\:min-w-28{min-width:calc(var(--spacing) * 28)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-col{flex-direction:column}.sm\:flex-row{flex-direction:row}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}.sm\:items-end{align-items:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-1{gap:calc(var(--spacing) * 1)}.sm\:gap-2{gap:calc(var(--spacing) * 2)}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:gap-6{gap:calc(var(--spacing) * 6)}.sm\:overflow-x-visible{overflow-x:visible}.sm\:rounded-2xl{border-radius:calc(var(--radius) * 2)}.sm\:rounded-3xl{border-radius:calc(var(--radius) * 3)}.sm\:rounded-full{border-radius:2147483647px}.sm\:border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.sm\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.sm\:p-0{padding:calc(var(--spacing) * 0)}.sm\:p-3{padding:calc(var(--spacing) * 3)}.sm\:p-5{padding:calc(var(--spacing) * 5)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:p-8{padding:calc(var(--spacing) * 8)}.sm\:px-4{padding-inline:calc(var(--spacing) * 4)}.sm\:px-5{padding-inline:calc(var(--spacing) * 5)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:py-2{padding-block:calc(var(--spacing) * 2)}.sm\:py-3{padding-block:calc(var(--spacing) * 3)}.sm\:py-5{padding-block:calc(var(--spacing) * 5)}.sm\:py-8{padding-block:calc(var(--spacing) * 8)}.sm\:pt-6{padding-top:calc(var(--spacing) * 6)}.sm\:pb-6{padding-bottom:calc(var(--spacing) * 6)}.sm\:pl-8{padding-left:calc(var(--spacing) * 8)}.sm\:pl-12{padding-left:calc(var(--spacing) * 12)}.sm\:pl-20{padding-left:calc(var(--spacing) * 20)}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.sm\:text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}}@media (width>=48rem){.md\:col-span-1{grid-column:span 1/span 1}.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.md\:grid-cols-\[minmax\(12rem\,1fr\)_8rem_auto_auto_auto_auto\]{grid-template-columns:minmax(12rem,1fr) 8rem auto auto auto auto}.md\:items-end{align-items:flex-end}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (width>=64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:ms-10{margin-inline-start:calc(var(--spacing) * 10)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(14rem\,1\.2fr\)_minmax\(10rem\,0\.8fr\)_minmax\(14rem\,1\.3fr\)\]{grid-template-columns:minmax(14rem,1.2fr) minmax(10rem,.8fr) minmax(14rem,1.3fr)}.lg\:gap-6{gap:calc(var(--spacing) * 6)}}.dark\:border-amber-800:is(.dark *){border-color:var(--color-amber-800)}.dark\:border-emerald-800:is(.dark *){border-color:var(--color-emerald-800)}.dark\:border-emerald-800\/40:is(.dark *){border-color:#005f4666}@supports (color:color-mix(in lab, red, red)){.dark\:border-emerald-800\/40:is(.dark *){border-color:color-mix(in oklab, var(--color-emerald-800) 40%, transparent)}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:border-red-800:is(.dark *){border-color:var(--color-red-800)}.dark\:border-red-800\/60:is(.dark *){border-color:#9f071299}@supports (color:color-mix(in lab, red, red)){.dark\:border-red-800\/60:is(.dark *){border-color:color-mix(in oklab, var(--color-red-800) 60%, transparent)}}.dark\:bg-amber-400\/15:is(.dark *){background-color:#fcbb0026}@supports (color:color-mix(in lab, red, red)){.dark\:bg-amber-400\/15:is(.dark *){background-color:color-mix(in oklab, var(--color-amber-400) 15%, transparent)}}.dark\:bg-amber-950\/20:is(.dark *){background-color:#46190133}@supports (color:color-mix(in lab, red, red)){.dark\:bg-amber-950\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-amber-950) 20%, transparent)}}.dark\:bg-black\/40:is(.dark *){background-color:#0006}@supports (color:color-mix(in lab, red, red)){.dark\:bg-black\/40:is(.dark *){background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.dark\:bg-cyan-400\/15:is(.dark *){background-color:#00d2ef26}@supports (color:color-mix(in lab, red, red)){.dark\:bg-cyan-400\/15:is(.dark *){background-color:color-mix(in oklab, var(--color-cyan-400) 15%, transparent)}}.dark\:bg-destructive\/20:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/20:is(.dark *){background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.dark\:bg-emerald-400:is(.dark *){background-color:var(--color-emerald-400)}.dark\:bg-emerald-400\/15:is(.dark *){background-color:#00d29426}@supports (color:color-mix(in lab, red, red)){.dark\:bg-emerald-400\/15:is(.dark *){background-color:color-mix(in oklab, var(--color-emerald-400) 15%, transparent)}}.dark\:bg-emerald-500:is(.dark *){background-color:var(--color-emerald-500)}.dark\:bg-emerald-950\/20:is(.dark *){background-color:#002c2233}@supports (color:color-mix(in lab, red, red)){.dark\:bg-emerald-950\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-emerald-950) 20%, transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\:bg-red-900\/40:is(.dark *){background-color:#82181a66}@supports (color:color-mix(in lab, red, red)){.dark\:bg-red-900\/40:is(.dark *){background-color:color-mix(in oklab, var(--color-red-900) 40%, transparent)}}.dark\:bg-red-950\/30:is(.dark *){background-color:#4608094d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-red-950\/30:is(.dark *){background-color:color-mix(in oklab, var(--color-red-950) 30%, transparent)}}.dark\:bg-rose-400\/15:is(.dark *){background-color:#ff667f26}@supports (color:color-mix(in lab, red, red)){.dark\:bg-rose-400\/15:is(.dark *){background-color:color-mix(in oklab, var(--color-rose-400) 15%, transparent)}}.dark\:bg-violet-400\/15:is(.dark *){background-color:#a685ff26}@supports (color:color-mix(in lab, red, red)){.dark\:bg-violet-400\/15:is(.dark *){background-color:color-mix(in oklab, var(--color-violet-400) 15%, transparent)}}.dark\:bg-violet-950\/20:is(.dark *){background-color:#2f0d6833}@supports (color:color-mix(in lab, red, red)){.dark\:bg-violet-950\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-violet-950) 20%, transparent)}}.dark\:text-amber-300:is(.dark *){color:var(--color-amber-300)}.dark\:text-amber-400:is(.dark *){color:var(--color-amber-400)}.dark\:text-amber-500:is(.dark *){color:var(--color-amber-500)}.dark\:text-cyan-400:is(.dark *){color:var(--color-cyan-400)}.dark\:text-emerald-400:is(.dark *){color:var(--color-emerald-400)}.dark\:text-orange-400:is(.dark *){color:var(--color-orange-400)}.dark\:text-red-400:is(.dark *){color:var(--color-red-400)}.dark\:text-rose-400:is(.dark *){color:var(--color-rose-400)}.dark\:text-sky-400:is(.dark *){color:var(--color-sky-400)}.dark\:text-violet-400:is(.dark *){color:var(--color-violet-400)}.dark\:\[--mk2\:\#5A5858\]:is(.dark *){--mk2:#5a5858}.dark\:\[--mk\:\#02F191\]:is(.dark *){--mk:#02f191}.dark\:\[--mk\:\#3C82F6\]:is(.dark *){--mk:#3c82f6}.dark\:\[--mk\:\#4D6BFE\]:is(.dark *){--mk:#4d6bfe}.dark\:\[--mk\:\#6B50FF\]:is(.dark *){--mk:#6b50ff}.dark\:\[--mk\:\#6950EF\]:is(.dark *){--mk:#6950ef}.dark\:\[--mk\:\#D97757\]:is(.dark *){--mk:#d97757}.dark\:\[--mk\:\#EDECEC\]:is(.dark *){--mk:#edecec}.dark\:\[--mk\:\#F6F6F6\]:is(.dark *){--mk:#f6f6f6}.dark\:\[--mk\:\#FAF74F\]:is(.dark *){--mk:#faf74f}.dark\:\[--mk\:\#FAFAFA\]:is(.dark *){--mk:#fafafa}.dark\:\[--mk\:\#FF4D4D\]:is(.dark *){--mk:#ff4d4d}.dark\:\[--mk\:\#FFFFFF\]:is(.dark *){--mk:#fff}.dark\:after\:from-\[\#14AFE6\]:is(.dark *):after{content:var(--tw-content);--tw-gradient-from:#14afe6;--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))}@media (hover:hover){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:color-mix(in oklab, var(--destructive) 30%, transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:color-mix(in oklab, var(--input) 80%, transparent)}}.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:color-mix(in oklab, var(--destructive) 50%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}@media (pointer:coarse){.pointer-coarse\:opacity-100{opacity:1}}.data-open\:animate-in:where([data-state=open]),.data-open\:animate-in:where([data-open]:not([data-open=false])){animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-open\:bg-accent:where([data-state=open]),.data-open\:bg-accent:where([data-open]:not([data-open=false])){background-color:var(--accent)}.data-open\:text-accent-foreground:where([data-state=open]),.data-open\:text-accent-foreground:where([data-open]:not([data-open=false])){color:var(--accent-foreground)}.data-open\:fade-in-0:where([data-state=open]),.data-open\:fade-in-0:where([data-open]:not([data-open=false])){--tw-enter-opacity:0}.data-open\:zoom-in-95:where([data-state=open]),.data-open\:zoom-in-95:where([data-open]:not([data-open=false])){--tw-enter-scale:.95}.data-closed\:animate-out:where([data-state=closed]),.data-closed\:animate-out:where([data-closed]:not([data-closed=false])){animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-closed\:overflow-hidden:where([data-state=closed]),.data-closed\:overflow-hidden:where([data-closed]:not([data-closed=false])){overflow:hidden}.data-closed\:fade-out-0:where([data-state=closed]),.data-closed\:fade-out-0:where([data-closed]:not([data-closed=false])){--tw-exit-opacity:0}.data-closed\:zoom-out-95:where([data-state=closed]),.data-closed\:zoom-out-95:where([data-closed]:not([data-closed=false])){--tw-exit-scale:.95}.data-checked\:bg-primary:where([data-state=checked]),.data-checked\:bg-primary:where([data-checked]:not([data-checked=false])){background-color:var(--primary)}.group-data-\[size\=default\]\/switch\:data-checked\:translate-x-\[calc\(100\%-2px\)\]:is(:where(.group\/switch)[data-size=default] *):where([data-state=checked]),.group-data-\[size\=default\]\/switch\:data-checked\:translate-x-\[calc\(100\%-2px\)\]:is(:where(.group\/switch)[data-size=default] *):where([data-checked]:not([data-checked=false])),.group-data-\[size\=sm\]\/switch\:data-checked\:translate-x-\[calc\(100\%-2px\)\]:is(:where(.group\/switch)[data-size=sm] *):where([data-state=checked]),.group-data-\[size\=sm\]\/switch\:data-checked\:translate-x-\[calc\(100\%-2px\)\]:is(:where(.group\/switch)[data-size=sm] *):where([data-checked]:not([data-checked=false])){--tw-translate-x:calc(100% - 2px);translate:var(--tw-translate-x) var(--tw-translate-y)}.dark\:data-checked\:bg-primary-foreground:is(.dark *):where([data-state=checked]),.dark\:data-checked\:bg-primary-foreground:is(.dark *):where([data-checked]:not([data-checked=false])){background-color:var(--primary-foreground)}.data-unchecked\:bg-input:where([data-state=unchecked]),.data-unchecked\:bg-input:where([data-unchecked]:not([data-unchecked=false])){background-color:var(--input)}.group-data-\[size\=default\]\/switch\:data-unchecked\:translate-x-0:is(:where(.group\/switch)[data-size=default] *):where([data-state=unchecked]),.group-data-\[size\=default\]\/switch\:data-unchecked\:translate-x-0:is(:where(.group\/switch)[data-size=default] *):where([data-unchecked]:not([data-unchecked=false])),.group-data-\[size\=sm\]\/switch\:data-unchecked\:translate-x-0:is(:where(.group\/switch)[data-size=sm] *):where([data-state=unchecked]),.group-data-\[size\=sm\]\/switch\:data-unchecked\:translate-x-0:is(:where(.group\/switch)[data-size=sm] *):where([data-unchecked]:not([data-unchecked=false])){--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.dark\:data-unchecked\:bg-foreground:is(.dark *):where([data-state=unchecked]),.dark\:data-unchecked\:bg-foreground:is(.dark *):where([data-unchecked]:not([data-unchecked=false])){background-color:var(--foreground)}.dark\:data-unchecked\:bg-input\/80:is(.dark *):where([data-state=unchecked]),.dark\:data-unchecked\:bg-input\/80:is(.dark *):where([data-unchecked]:not([data-unchecked=false])){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:data-unchecked\:bg-input\/80:is(.dark *):where([data-state=unchecked]),.dark\:data-unchecked\:bg-input\/80:is(.dark *):where([data-unchecked]:not([data-unchecked=false])){background-color:color-mix(in oklab, var(--input) 80%, transparent)}}.data-disabled\:pointer-events-none:where([data-disabled=true]),.data-disabled\:pointer-events-none:where([data-disabled]:not([data-disabled=false])){pointer-events:none}.data-disabled\:cursor-not-allowed:where([data-disabled=true]),.data-disabled\:cursor-not-allowed:where([data-disabled]:not([data-disabled=false])){cursor:not-allowed}.data-disabled\:opacity-50:where([data-disabled=true]),.data-disabled\:opacity-50:where([data-disabled]:not([data-disabled=false])){opacity:.5}.data-horizontal\:h-px:where([data-orientation=horizontal]){height:1px}.data-horizontal\:w-full:where([data-orientation=horizontal]){width:100%}.data-vertical\:w-px:where([data-orientation=vertical]){width:1px}.data-vertical\:self-stretch:where([data-orientation=vertical]){align-self:stretch}.\[\&_ol\]\:my-1 ol{margin-block:calc(var(--spacing) * 1)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\]\:stroke-\[1\.5\] svg{stroke-width:1.5px}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&_ul\]\:my-1 ul{margin-block:calc(var(--spacing) * 1)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing) * 0)}.\[\.border-b\]\:pb-4.border-b{padding-bottom:calc(var(--spacing) * 4)}.group-data-\[size\=sm\]\/card\:\[\.border-b\]\:pb-3:is(:where(.group\/card)[data-size=sm] *).border-b{padding-bottom:calc(var(--spacing) * 3)}@media (hover:hover){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.\[a\]\:hover\:bg-muted:is(a):hover{background-color:var(--muted)}.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:color-mix(in oklab, var(--primary) 80%, transparent)}}.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.\[a\]\:hover\:text-muted-foreground:is(a):hover{color:var(--muted-foreground)}}:is(.\*\:\[img\:first-child\]\:rounded-t-3xl>*):is(img:first-child){border-top-left-radius:calc(var(--radius) * 3);border-top-right-radius:calc(var(--radius) * 3)}:is(.\*\:\[img\:last-child\]\:rounded-b-3xl>*):is(img:last-child){border-bottom-right-radius:calc(var(--radius) * 3);border-bottom-left-radius:calc(var(--radius) * 3)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing) * 2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3\!>svg{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}@media (hover:hover){.hover\:\[\&\>td\]\:bg-muted\/50:hover>td{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:\[\&\>td\]\:bg-muted\/50:hover>td{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}}.\[\&\>td\:first-child\]\:rounded-l-lg>td:first-child{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.\[\&\>td\:last-child\]\:rounded-r-lg>td:last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-I4S5GZfc.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-BmXc_FBt.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-GZpp1pK2.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-D8KDMBhC.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-DrnZ1wKl.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-B_7UjwxQ.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--background:oklch(99.2% .004 245);--foreground:oklch(18% .01 255);--card:oklch(100% 0 0);--card-foreground:oklch(18% .01 255);--popover:oklch(100% 0 0);--popover-foreground:oklch(18% .01 255);--primary:oklch(54.3% .182 256);--primary-foreground:oklch(98% 0 0);--secondary:oklch(96.5% .006 255);--secondary-foreground:oklch(22% .01 255);--muted:oklch(96.5% .006 255);--muted-foreground:oklch(52% .015 257);--accent:oklch(95.5% .015 245);--accent-foreground:oklch(22% .02 255);--destructive:oklch(59.3% .24 29.7);--border:oklch(91% .01 255);--input:oklch(91% .01 255);--ring:oklch(54.3% .182 256);--chart-1:oklch(54.3% .182 256);--chart-2:oklch(74.3% .181 56);--chart-3:oklch(70.7% .138 231);--chart-4:oklch(55% .04 257);--chart-5:oklch(75% .03 257);--radius:.375rem;--sidebar:oklch(98% 0 0);--sidebar-foreground:oklch(18% 0 0);--sidebar-primary:oklch(22% 0 0);--sidebar-primary-foreground:oklch(98% 0 0);--sidebar-accent:oklch(96% 0 0);--sidebar-accent-foreground:oklch(22% 0 0);--sidebar-border:oklch(92% 0 0);--sidebar-ring:oklch(55% 0 0)}.dark{--background:oklch(14% .01 255);--foreground:oklch(98% 0 0);--card:oklch(18.5% .015 253);--card-foreground:oklch(98% 0 0);--popover:oklch(18.5% .015 253);--popover-foreground:oklch(98% 0 0);--primary:oklch(70.7% .138 231);--primary-foreground:oklch(20% .04 250);--secondary:oklch(24.5% .02 255);--secondary-foreground:oklch(98% 0 0);--muted:oklch(22.4% .018 256);--muted-foreground:oklch(68% .01 257);--accent:oklch(24.5% .03 249);--accent-foreground:oklch(98% 0 0);--destructive:oklch(70.8% .185 30);--border:oklch(85% .03 256/.1);--input:oklch(85% .03 256/.14);--ring:oklch(70.7% .138 231);--chart-1:oklch(77.9% .134 218);--chart-2:oklch(82.1% .138 68);--chart-3:oklch(70.7% .138 231);--chart-4:oklch(71% .035 257);--chart-5:oklch(55% .041 258);--sidebar:oklch(17.5% 0 0);--sidebar-foreground:oklch(98% 0 0);--sidebar-primary:oklch(93% 0 0);--sidebar-primary-foreground:oklch(18% 0 0);--sidebar-accent:oklch(24% 0 0);--sidebar-accent-foreground:oklch(98% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(60% 0 0)}.code-highlight{color:var(--foreground)}.code-highlight .hljs-comment,.code-highlight .hljs-quote{color:oklch(55% 0 0);font-style:italic}.code-highlight .hljs-keyword,.code-highlight .hljs-selector-tag,.code-highlight .hljs-built_in,.code-highlight .hljs-type,.code-highlight .hljs-literal,.code-highlight .hljs-doctag,.code-highlight .hljs-meta{color:oklch(45% .18 290)}.code-highlight .hljs-tag,.code-highlight .hljs-name,.code-highlight .hljs-selector-class,.code-highlight .hljs-selector-id,.code-highlight .hljs-section,.code-highlight .hljs-title{color:oklch(48% .16 250)}.code-highlight .hljs-attr,.code-highlight .hljs-attribute,.code-highlight .hljs-variable,.code-highlight .hljs-template-variable,.code-highlight .hljs-property,.code-highlight .hljs-params{color:oklch(50% .12 45)}.code-highlight .hljs-string,.code-highlight .hljs-regexp,.code-highlight .hljs-addition,.code-highlight .hljs-template-tag,.code-highlight .hljs-symbol,.code-highlight .hljs-bullet{color:oklch(50% .14 150)}.code-highlight .hljs-number,.code-highlight .hljs-link{color:oklch(50% .15 25)}.code-highlight .hljs-deletion{color:oklch(50% .18 25)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:oklch(55% .04 257/.25);border-radius:999px}::-webkit-scrollbar-thumb:hover{background-color:oklch(55% .04 257/.4)}.dark ::-webkit-scrollbar-thumb{background-color:oklch(85% .03 256/.14)}.dark ::-webkit-scrollbar-thumb:hover{background-color:oklch(85% .03 256/.26)}*{scrollbar-width:thin;scrollbar-color:oklch(55% .04 257/.25) transparent}.dark *{scrollbar-color:oklch(85% .03 256/.14) transparent}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (pointer:coarse){button,a,[role=button],input[type=checkbox],input[type=radio],label{min-height:44px}.badge,[data-slot=badge],kbd{min-height:0}}:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid oklch(54.3% .182 256/.55)}.dark :focus-visible{outline-color:oklch(70.7% .138 231/.55)}::selection{background-color:oklch(54.3% .182 256/.2)}.dark ::selection{background-color:oklch(70.7% .138 231/.25)}.break-anywhere{overflow-wrap:anywhere;word-break:break-word}.hover-lift{transition:transform .15s,box-shadow .15s}.hover-lift:hover{transform:translateY(-1px);box-shadow:0 4px 12px oklch(0% 0 0/.08)}.dark .hover-lift:hover{box-shadow:0 4px 12px oklch(0% 0 0/.25)}@keyframes sr-flow{to{background-position:16px 0}}.sr-flow-line{background-image:repeating-linear-gradient(90deg,currentColor 0 6px,#0000 6px 16px);background-size:16px 100%;animation:.5s linear infinite sr-flow}.code-highlight .hljs-emphasis{font-style:italic}.code-highlight .hljs-strong{font-weight:600}.dark .code-highlight .hljs-comment,.dark .code-highlight .hljs-quote{color:oklch(60% 0 0)}.dark .code-highlight .hljs-keyword,.dark .code-highlight .hljs-selector-tag,.dark .code-highlight .hljs-built_in,.dark .code-highlight .hljs-type,.dark .code-highlight .hljs-literal,.dark .code-highlight .hljs-doctag,.dark .code-highlight .hljs-meta{color:oklch(78% .12 290)}.dark .code-highlight .hljs-tag,.dark .code-highlight .hljs-name,.dark .code-highlight .hljs-selector-class,.dark .code-highlight .hljs-selector-id,.dark .code-highlight .hljs-section,.dark .code-highlight .hljs-title{color:oklch(78% .11 240)}.dark .code-highlight .hljs-attr,.dark .code-highlight .hljs-attribute,.dark .code-highlight .hljs-variable,.dark .code-highlight .hljs-template-variable,.dark .code-highlight .hljs-property,.dark .code-highlight .hljs-params{color:oklch(80% .1 60)}.dark .code-highlight .hljs-string,.dark .code-highlight .hljs-regexp,.dark .code-highlight .hljs-addition,.dark .code-highlight .hljs-template-tag,.dark .code-highlight .hljs-symbol,.dark .code-highlight .hljs-bullet{color:oklch(78% .12 150)}.dark .code-highlight .hljs-number,.dark .code-highlight .hljs-link{color:oklch(78% .12 30)}.dark .code-highlight .hljs-deletion{color:oklch(70% .16 25)}@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-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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@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:""}@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%}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={nav:{models:`Modelli`,playground:`Playground`,keys:`Chiavi`,analytics:`Analisi`,premium:`Premium`,upgrade:`Aggiorna`,settings:`Impostazioni`,signOut:`Esci`,openMenu:`Apri menu di navigazione`,switchLight:`Passa al tema chiaro`,switchDark:`Passa al tema scuro`,switchToChinese:`Passa al cinese`,switchToEnglish:`Passa all'inglese`,modelsMenu:`Sfoglia i tipi di modello`,agents:`Agenti`,logs:`Log`,analyticsMenu:`Pagine di analisi`,notifications:`Notifications`,noNotifications:`No notifications yet`},auth:{createYourAccount:`Crea il tuo account`,signIn:`Accedi`,email:`Email`,password:`Password`,emailPlaceholder:`tuo@esempio.com`,passwordPlaceholderSetup:`almeno 8 caratteri`,passwordPlaceholderLogin:`la tua password`,setupDescription:`Imposta l'email e la password che proteggeranno questo pannello.`,loginDescription:`Accedi per gestire chiavi, instradamento e analisi.`,createAccount:`Crea account`,creating:`Creazione…`,signingIn:`Accesso…`,loading:`Caricamento…`,newPasswordAutoComplete:`new-password`,currentPasswordAutoComplete:`current-password`,serverUnreachableBefore:`Impossibile raggiungere il server. Assicurati che il backend sia in esecuzione (`,serverUnreachableAfter:`).`,setupCode:`Codice di installazione`,setupCodePlaceholder:`codice dai log del server`,setupCodeHint:`La configurazione da un altro dispositivo richiede il codice monouso stampato nei registri del server all'avvio.`,changePassword:`Cambia password`,changeEmail:`Cambia email`,forgotPassword:`Hai dimenticato la password?`,currentPassword:`Password attuale`,newPassword:`Nuova password`,newEmail:`Nuova email`,resetCode:`Codice di reset`,resetCodePlaceholder:`codice dai log del server`,resetCodeHint:`Il codice è nel log del server. Non viene mai inviato via email.`,forgotPasswordDescription:`Clicca il pulsante qui sotto per generare un codice di reset. Il codice viene scritto nel log del server, mai inviato via email. Inseriscilo qui per impostare una nuova password.`,requestResetCode:`Invia codice di reset`,requestingResetCode:`Invio…`,resetPassword:`Reimposta password`,resettingPassword:`Reimpostazione…`,changingPassword:`Modifica…`,changingEmail:`Modifica…`,backToLogin:`Torna al login`,passwordChanged:`Password modificata con successo.`,emailChanged:`Email modificata con successo.`,passwordReset:`Password reimpostata con successo. Accedi di nuovo.`,resetCodeDockerHint:`Usi Docker? Il codice è nel log del container: docker logs <container>.`,desktopSessionFailed:`La dashboard non è riuscita ad accedere al server locale. Chiudi SRouter e riaprilo.`},common:{save:`Salva`,saving:`Salvataggio…`,cancel:`Annulla`,discard:`Scarta`,delete:`Elimina`,confirm:`Conferma`,copy:`Copia`,copied:`Copiato`,copyFailed:`Copia non riuscita — seleziona il testo e copialo manualmente`,show:`Mostra`,hide:`Nascondi`,apply:`Applica`,applied:`Applicato`,applying:`Applicazione…`,active:`Attivo`,inactive:`Inattivo`,never:`mai`,loading:`Caricamento…`,error:`Errore`,noData:`Nessun dato ancora`,unsavedChanges:`Modifiche non salvate`,saveChanges:`Salva modifiche`,remove:`Rimuovi`,unknownError:`Errore sconosciuto`,model:`Modello`,provider:`Fornitore`,success:`Successo`,failures:`Fallimenti`,dismiss:`Chiudi`,status:`Stato`},settings:{title:`Impostazioni`,language:`Lingua`,theme:`Tema`,themeSystem:`Sistema`,themeLight:`Chiaro`,themeDark:`Scuro`,searchLanguage:`Cerca lingue…`,noLanguages:`Nessuna lingua trovata`,sections:`Sezioni delle impostazioni`,sectionGeneral:`Generale`,sectionCompression:`Compressione`,sectionAdvanced:`Avanzate`,sectionPreview:`Anteprima`,generalDescription:`Lingua e aspetto di questa dashboard.`,advancedDescription:`Soglie e interruttori di sicurezza della pipeline di compressione.`,compressionTitle:`Compressione dei prompt`,compressionDescription:`Riduci la dimensione delle richieste prima del routing preservando codice, errori, percorsi, numeri e definizioni degli strumenti.`,compressionHelp:`Riscrive ogni richiesta prima che venga inviata a un fornitore, in modo che usi meno token. Codice, errori, percorsi dei file e numeri sono protetti, e qualsiasi riscrittura che li danneggi viene scartata.`,compressionMode:`Modalità`,compressionModeHelp:`Disattivata invia le richieste senza modifiche. Senza perdita rimuove solo il testo duplicato e superfluo. Standard accorcia anche l'output degli strumenti. Aggressiva condensa inoltre i turni precedenti.`,compressionOff:`Disattivata`,compressionLossless:`Senza perdita`,compressionStandard:`Standard`,compressionAggressive:`Aggressiva`,compressionLossy:`Con perdita`,compressionEngines:`Motori`,compressionEnginesHelp:`Ogni motore è un passaggio di riscrittura. La modalità decide quali motori vengono eseguiti; disattivarne uno qui lo esclude da tutte le modalità.`,engineDedup:`Blocchi ripetuti`,engineDedupHelp:`Sostituisce un blocco di testo già comparso in precedenza nella conversazione con un breve riferimento a esso.`,engineLite:`Pulizia degli spazi`,engineLiteHelp:`Elimina gli spazi a fine riga, unisce le righe vuote ripetute e rimuove i messaggi di sistema duplicati.`,engineReadLifecycle:`Letture di file superate`,engineReadLifecycleHelp:`Sostituisce una lettura di file precedente con una nota quando lo stesso file viene letto o modificato di nuovo in seguito.`,engineToolfilter:`Filtro dell'output degli strumenti`,engineToolfilterHelp:`Accorcia l'output di comandi e strumenti come build, test e installazioni. Le righe di errore e di stack trace vengono sempre mantenute.`,engineJsoncompact:`Tabelle JSON`,engineJsoncompactHelp:`Ricodifica come tabella compatta i lunghi array JSON che condividono gli stessi campi. È reversibile, quindi non si perde nulla.`,engineRelevance:`Filtro di rilevanza`,engineRelevanceHelp:`Scarta le frasi meno collegate al messaggio più recente quando un messaggio supera il proprio budget di dimensione.`,engineAging:`Turni precedenti`,engineAgingHelp:`Condensa i turni oltre i più recenti in un breve riepilogo che conserva percorsi, errori e decisioni.`,engineHardBudget:`Limite massimo di token`,engineHardBudgetHelp:`Rimuove le righe meno utili finché la richiesta non rientra nell'obiettivo di token.`,compressionAutoTrigger:`Attivazione automatica oltre i token stimati`,compressionAutoTriggerHelp:`Le richieste stimate oltre questo numero di token passano automaticamente ad Aggressiva. Lascia vuoto per disattivare.`,compressionPrefixFreeze:`Congela i prefissi ricorrenti dei prompt`,compressionPrefixFreezeHelp:`Lascia intatto un prompt di sistema quando lo stesso testo è stato visto tre volte, così la cache dei prompt lato fornitore continua a funzionare.`,compressionTrustProjectFilters:`Considera attendibili i file filtro del progetto`,compressionTrustProjectFiltersHelp:`Carica anche i filtri dell'output degli strumenti dalla directory di lavoro. Disattivato per impostazione predefinita, perché un repository potrebbe usarlo per nascondere l'output al modello.`,compressionStats:`Dimensione risparmiata`,compressionEstimatedTokensSaved:`Token stimati risparmiati`,compressionPreview:`Anteprima live`,compressionPreviewDescription:`Invia un corpo di richiesta attraverso la pipeline per vedere che cosa riceverebbe un fornitore.`,compressionPreviewPlaceholder:`Incolla il JSON della richiesta o testo semplice`,compressionRunPreview:`Esegui anteprima`,updatesTitle:`Aggiornamenti`,checkForUpdates:`Controlla aggiornamenti`,lastChecked:`Ultimo controllo: {when}`,currentVersion:`Build corrente:`,updateAvailable:`Aggiornamento disponibile`,changelog:`Novità`,upToDate:`Aggiornato`,buildAhead:`Questa build è più avanti del ramo main ufficiale.`,buildDiverged:`Questa build si è discostata dal ramo main ufficiale.`,buildUnknown:`Questa build personalizzata non può essere confrontata con il ramo main ufficiale.`,notGitInstall:`Questa installazione non include informazioni sui commit.`,checkFailed:`Impossibile verificare la disponibilità di aggiornamenti.`,contactsGithub:`I controlli sono manuali e contattano GitHub.`,autoUpdateCheck:`Controllo automatico degli aggiornamenti`,autoUpdateCheckHelp:`Controlla GitHub una volta al giorno per una nuova versione e mostra un promemoria. Disattivato per impostazione predefinita.`,openReleases:`Apri le release di GitHub`,restartAfterUpdate:`Riavvia SRouter al termine della build.`,syncSchedule:`Model Sync`,syncScheduleHint:`How often the model catalog is refreshed from the server`,syncIntervalOff:`Off`,syncInterval6h:`Every 6h`,syncInterval12h:`Every 12h`,syncInterval24h:`Every 24h`},models:{title:`Modelli`,chatModelsTab:`Chat`,fusionTab:`Fusion`,embeddingsTab:`Embedding`,imageTab:`Immagine`,videoTab:`Video`,audioTab:`Audio`,imageDesc:`Modelli di generazione testo-immagine.`,videoDesc:`Text-to-video generation models.`,audioDesc:`Modelli di sintesi e riconoscimento vocale.`,mediaHint:`Genera tramite`,mediaEmpty:`Nessun modello ancora. Vengono sincronizzati dal catalogo.`,ttsHeading:`Sintesi vocale`,sttHeading:`Riconoscimento vocale`,sttHint:`Trascrivi tramite`,sttEmpty:`Nessun modello di riconoscimento vocale ancora. Vengono sincronizzati dal catalogo.`,newBadge:`Nuovo`,monthlyTokenBudget:`Budget mensile di token`,remaining:`rimanenti`,used:`usati`,usedScopeHint:`Solo richieste di chat, dall'inizio di questo mese solare, sommate su tutti i modelli della catena attiva, endpoint personalizzati inclusi. Il traffico inviato a un provider al di fuori di SRouter non viene conteggiato.`,legendRemainingTitle:`Residuo / budget mensile di {name} ({platform})`,noPublishedQuota:`+{count} senza quota pubblicata`,noPublishedQuotaTitle:`Questi modelli non hanno un budget mensile di token documentato, quindi non c'è un residuo da mostrare.`,of:`di`,showAllModels:`Mostra tutti i {count} modelli`,showLess:`Mostra meno`,vision:`Visione`,visionTitle:`Accetta input di immagini`,tools:`Strumenti`,toolsTitle:`Emette chiamate a strumenti strutturate, quindi è idoneo per richieste con strumenti`,retired:`Ritirato`,penalty:`−{value} penalità`,obs:`{count} oss`,tokPerMonth:`{count} tok/mese`,rpmLimit:`{count} rpm`,rpdLimit:`{count} gpd`,noKey:`nessuna chiave`,dragToReorder:`Trascina per riordinare`,dragToReorderGroup:`Trascina per riordinare il modello`,moveToRank:`Vai alla posizione`,providerCount:`{count} fornitori`,servedBy:`Servito da {providers}`,viewProviders:`Vedi fornitori`,backToModels:`Torna ai modelli`,providersHeading:`Fornitori che servono questo modello`,codeSnippetHeading:`Usa questo modello`,modelNotFound:`Questo modello non è disponibile o non ha fornitori configurati.`,providerIdsHeading:`ID modello dei fornitori`,providerIdsHint:`Invia l'ID modello unificato per il failover su tutti i fornitori, oppure un ID specifico per fissare un fornitore.`,copyModelName:`Copia nome modello`,settingsHeading:`Impostazioni provider`,settingsHint:`Le modifiche locali ai modelli del catalogo vengono mantenute tra le sincronizzazioni del catalogo. I modelli del catalogo eliminati restano eliminati finché non li aggiungi di nuovo tramite la configurazione.`,catalogModel:`catalogo`,customModel:`personalizzato`,discoveredModel:`rilevato`,localOverride:`override locale`,displayName:`Nome visualizzato`,sizeLabel:`Livello di capacità`,sizeLabelHint:`Frontier/Large/Medium/Small determinano l'asse dell'intelligenza: un livello superiore ha sempre la precedenza su uno inferiore e, all'interno di un livello, la posizione di intelligenza continua a spostare il punteggio. Un modello senza un livello riconosciuto ottiene il punteggio più basso su questo asse, ma l'intelligenza è solo uno dei tre assi: con buona affidabilità e velocità può comunque essere instradato.`,sizeLabelNone:`Nessuno (punteggio di intelligenza più basso)`,contextWindow:`Contesto`,inFallback:`Nella catena`,saveModelSettings:`Salva impostazioni modello`,aggregateBudget:`{count}/mese`,aggregateBudgetTitle:`Token gratuiti totali al mese tra i fornitori di questo modello`,rateRpm:`{count} RPM`,rateRpd:`{count} GPD`,rateTitle:`Limitato — nessun budget mensile fisso di token`,rateLimitUsage:`{kind} {used}/{limit}`,rateLimitUsageTitle:`Utilizzo del limite di frequenza nella finestra temporale (usato / limite) per il provider con più margine`,splitOut:`Non unire questa copia`,splitOutHint:`Dai alla copia di questo fornitore una voce separata invece di unirla nel modello unificato. Puoi riunirla dalla pagina della copia.`,splitUndo:`Riunisci`,splitUndoHint:`Questa copia è tenuta separata dal suo modello unificato. Riuniscila per tornare al failover tra tutti i suoi fornitori.`,splitBadge:`tenuta separata`,noData:`nessun dato`,noDataTitle:`Nessuna richiesta registrata finora: affidabilità e velocità di questo fornitore non sono misurate.`,bestOfN:`migliore di {count}`,perProviderScores:`Punteggi per fornitore: {list}`,columnModel:`Modello`,columnOn:`Attivo`,noModelsBefore:`Nessun modello disponibile. Aggiungi chiavi API nella `,keysPageLink:`pagina Chiavi`,noModelsAfter:` prima.`,hiddenNoKeys:`Nascosto (nessuna chiave): {platforms}`,searchPlaceholder:`Cerca modelli o fornitori…`,clearSearch:`Cancella ricerca`,ctxAny:`Qualsiasi contesto`,ctxBadge:`{size} ctx`,ctxTitle:`Finestra di contesto`,copyModelId:`Copia ID modello`,showingCount:`{shown} di {total} modelli`,clearFilters:`Cancella filtri`,noMatches:`Nessun modello corrisponde ai tuoi filtri.`,noModelsTitle:`Nessun modello configurato`,intelligenceRank:`Intelligenza`,speedRank:`Velocità`,rankHint:`Posizione nel catalogo — 1 è la migliore.`,limitRpm:`RPM`,limitRpd:`RPD`,limitTpm:`TPM`,limitTpd:`TPD`,limitRpmHint:`Richieste al minuto. Lascia vuoto per nessun limite.`,limitRpdHint:`Richieste al giorno. Lascia vuoto per nessun limite.`,limitTpmHint:`Token al minuto. Lascia vuoto per nessun limite.`,limitTpdHint:`Token al giorno. Lascia vuoto per nessun limite.`,usageThisMonth:`Utilizzo mensile`,usageEmpty:`Nessuna richiesta questo mese.`,usageRequestsMonth:`{count} rich. questo mese`,aliasMergeHeading:`Merge model aliases`,aliasMergeHint:`Requests for the unified model id are also served through these custom-provider aliases (e.g. custom:my-alias).`,aliasMergeAdd:`Add`,aliasMergeRemove:`Remove`,bulkToggle:`Attiva o disattiva tutti i modelli mostrati`,enableAll:`Attiva tutti`,disableAll:`Disattiva tutti`,enableAllHint:`Attiva tutti i modelli mostrati, poi salva`,disableAllHint:`Disattiva tutti i modelli mostrati, poi salva`,enabledOfShown:`{enabled} dei {shown} modelli mostrati sono nella catena`},strategies:{explore:`Esplora i modelli non misurati`,exploreHint:`Dà ai modelli senza dati di affidabilità o velocità il 10 % di probabilità di essere provati per primi, così da accumulare storico. A partire è la tua richiesta reale, quindi può rispondere un modello non testato. Per un endpoint personalizzato usa «Testa l'endpoint» nella pagina Chiavi, senza traffico reale.`,keySelection:`Selezione della chiave`,keySelectionAuto:`Automatica`,keySelectionLeastRemaining:`Meno residuo`,keySelectionHint:`Come scegliere tra più chiavi dello stesso provider. Automatica mantiene la rotazione attuale; Meno residuo ordina le chiavi in base alla quota osservata e prova per prima quella con più margine.`,cooldownCeiling:`Raffreddamento automatico massimo`,cooldownCeilingHint:`Limita per quanto tempo le stime del router possono mettere in panchina una coppia chiave e modello che fallisce. La scala normalmente sale a 2 min, 10 min, 1 h, 24 h, e gli errori di credito o di livello escludono per un giorno. I tempi di ritentativo indicati dal provider non vengono mai accorciati.`,cooldownCeilingDefault:`Predefinito (fino a 24 h)`,cooldownCeiling10m:`10 minuti`,cooldownCeiling1h:`1 ora`,cooldownCeiling6h:`6 ore`,moreOptions:`Altre opzioni`,peakActive:`(ore di punta)`,peakActiveHint:`La regolazione per le ore di punta è attiva in questo momento, quindi questi non sono i pesi del preset: il 60% del peso della velocità è passato all'affidabilità.`,peakAdjust:`Regolazione per le ore di punta`,peakAdjustHint:`Disattivata per impostazione predefinita. Nella finestra qui sotto sposta il 60% del peso della velocità sull'affidabilità: i relay gratuiti sono più congestionati in quelle ore, quindi l'affidabilità predice il successo meglio della velocità pura. Più veloce e Più affidabile restano invariati.`,peakFrom:`Da`,peakTo:`a`,peakTimezoneLabel:`Fuso orario`,peakUseBrowserTimezone:`Usa il fuso del browser`,peakTimezoneInvalid:`Fuso orario sconosciuto.`,peakExemptNote:`Questo preset resta invariato: è già a un estremo del compromesso velocità/affidabilità.`,title:`Strategia di routing`,description:`Scegli una strategia di routing. In modalità Manuale trascini per impostare l'ordine; le altre strategie instradano in base al punteggio live tra affidabilità, velocità e intelligenza.`,weightsSummary:`affidabilità {reliability}% · velocità {speed}% · intelligenza {intelligence}%`,guardrails:`Protezioni`,guardrailsTooltip:`Protezioni sempre attive: margine quota gratuita × penalità limite di velocità live. Sotto 1.0 significa che il modello è trattenuto.`,scoreTooltip:`Punteggio finale di routing = media ponderata dei tre assi, moltiplicata per le protezioni. Punteggi più alti instradano per primi.`,modeManualHint:`Modalità Manuale: le richieste seguono l'ordine sottostante, dall'alto verso il basso. Trascina per riordinare.`,modeScoreHint:`I punteggi si aggiornano dal traffico live. L'ordine sottostante è come le richieste vengono instradate in questo momento.`,manual:`Manuale`,manualBlurb:`Instrada nell'ordine esatto che imposti qui sotto. Trascina le maniglie per riordinare. Nessun punteggio; la catena viene seguita dall'alto verso il basso.`,balanced:`Bilanciato`,balancedBlurb:`L'affidabilità è prioritaria (50%), con velocità e intelligenza pesate equamente (25% ciascuna). Un default sensato per tutti gli usi.`,smartest:`Più intelligente`,smartestBlurb:`Preferisci il modello più capace che funziona ancora. Intelligenza 55%, affidabilità 35%, velocità 10%.`,fastest:`Più veloce`,fastestBlurb:`Preferisci il modello più veloce che funziona ancora. Velocità 55%, affidabilità 35%, intelligenza 10%.`,reliable:`Più affidabile`,reliableBlurb:`Massimizza il tasso di successo sopra ogni cosa. Affidabilità 70%, velocità e intelligenza 15% ciascuna.`,custom:`Personalizzato`,customBlurb:`Imposta il tuo equilibrio di affidabilità, velocità e intelligenza con i cursori. Stesso motore dei preset, solo i tuoi pesi.`,adjust:`Regola`,customWeights:`Pesi personalizzati`,customWeightsHelp:`I cursori sono indipendenti; le quote si auto-bilanciano al 100%.`,weightReliability:`Affidabilità`,weightSpeed:`Velocità`,weightIntelligence:`Intelligenza`,weightRequired:`Almeno un peso deve essere maggiore di zero.`,scoreColumn:`Punteggio`},penaltyInspector:{title:`Pressione del router`,subtitle:`Penalità, cooldown ed errori negli ultimi {minutes} min`,rowCount:`{count} attivi`,offChain:`fuori catena`,penaltyValue:`Penalità {value}`,factor:`punteggio x{factor}`,noCooldown:`Nessun cooldown`,cooldownChip:`{key}: {time}`,resetCooldown:`Reset cooldown`,clearAll:`Cancella tutto`,clearAllHint:`Rimuove subito ogni raffreddamento, penalità e serie di errori. La pressione si ricostruisce dai prossimi risultati reali.`,errorsHeading:`{count} errori recenti`,noRecentErrors:`Nessun errore recente`,noKey:`nessuna chiave`,reasons:{penalty:`penalizzato`,cooldown:`cooldown`,recent_errors:`in errore`}},keys:JSON.parse(`{"pageTitle":"Chiavi","pageDescription":"Credenziali dei fornitori e la chiave API unificata con cui si connettono le tue app.","tabProviders":"Fornitori","checklistSummary":"{configured} fornitori su {total} configurati","checklistKeyless":"nessuna chiave richiesta","checklistNoKeyTip":"Nessuna chiave aggiunta. Clicca per aggiungerne una.","checklistSignupLink":"Apri {provider} per creare un account e ottenere una chiave","checklistKeylessTip":"Funziona senza chiave.","tabQuotaSignals":"Segnali quota","tabApiKey":"Chiave API unificata","tabAnthropic":"Anthropic","unifiedKey":"La tua chiave API unificata","regenerate":"Rigenera","showKey":"Mostra","hideKey":"Nascondi","copyKey":"Copia","copyFullKey":"Copia chiave completa","copiedKey":"Copiato","baseUrl":"URL di base","endpointChat":"Chat","endpointResponses":"Risposte","endpointEmbeddings":"Embedding","endpointEmbeddingsHint":"model: \\"auto\\" o una famiglia dalla scheda Embedding","endpointMessages":"Messaggi","endpointMessagesHint":"Compatibile con Anthropic (Claude)","quickStart":"Quick start","quickStartDesc":"Use auto for your active routing chain, or auto:fast to prioritize speed across enabled models. Replace $YOUR_KEY with your unified API key.","exampleAuto":"Auto mode (use the active chain)","exampleFast":"Fast mode (prioritize speed)","anthropicTitle":"Modelli Claude (Anthropic)","anthropicDesc":"Punta un client SDK Claude o Anthropic a questo server. I client Anthropic inviano nomi di modelli Claude — mappa ciascuno su Auto (il router sceglie un modello gratuito) o fissa uno specifico.","anthropicBaseUrl":"URL di base","anthropicAuth":"Intestazione Auth","anthropicAuto":"Auto — il router sceglie il modello migliore","anthropicSave":"Salva mappatura","anthropicSaved":"Salvato","anthropicNote":"I client Anthropic mantengono i loro nomi di modelli Claude incorporati; la mappatura sopra decide come ciascuno viene instradato nel tuo pool.","familyDefault":"Default","familyOpus":"Opus","familySonnet":"Sonnet","familyHaiku":"Haiku","selectPlatform":"Seleziona un fornitore","addKey":"Aggiungi chiave","keyAdded":"Chiave aggiunta","endpointKeysShareModels":"Le chiavi dello stesso endpoint condividono i suoi modelli.","export":"Esportazione","exportAll":"All keys","exportHealthy":"Healthy only","exportKeys":"Export API keys","exportFormat":"Format","exportHealthyOnly":"Healthy keys only","exportHealthyOnlyDesc":"Exclude keys that are currently failing health checks","exportWillExport":"Will export","exportKey":"key","exportKeys plural":"keys","exporting":"Exporting…","exportDownload":"Download","exportSuccess":"Exported {count} keys","adding":"Aggiunta…","selectProvider":"Seleziona un fornitore…","accountId":"ID account","label":"Etichetta","noKeyNeeded":"(nessuna chiave necessaria)","outboundProxy":"Proxy in uscita","outboundProxyDescription":"Instrada le richieste LLM in uscita attraverso un proxy. Supporta SOCKS5, HTTP e HTTPS.","proxyUrl":"URL proxy","saveProxy":"Salva","savingProxy":"Salvataggio…","proxyLoadFailed":"Impossibile caricare le impostazioni del proxy.","proxyMode":"Mode","proxyModeForward":"Forward proxy","proxyModeFetchRelay":"Fetch relay","relayToken":"Relay token","relayTokenConfigured":"Configured. Leave unchanged to keep.","relayTokenPlaceholder":"Relay bearer token (optional)","relayHeadersHint":"The relay reads the destination and its own credential from","addCustom":"Aggiungi un modello personalizzato compatibile con OpenAI","addCustomDescription":"Punta a qualsiasi endpoint compatibile con OpenAI: llama.cpp, LM Studio, vLLM, un Ollama locale o un gateway remoto. Elenca un modello per riga (o separato da virgole) per aggiungerne diversi in una volta; condividono tutti lo stesso endpoint. La chiave API è opzionale (la maggior parte dei server locali non ne necessita).","customType":"Tipo","customTypeChat":"Chat","customTypeEmbedding":"Embedding","customTypeImage":"Immagine","customTypeAudio":"Audio","customTypeTranscription":"Transcription","customBaseUrl":"URL di base","customModels":"Modelli","customModel":"Modello","customDisplayName":"Nome visualizzato","customDisplayNamePerModel":"per-modello","customDisplayNameOptional":"opzionale","customFamily":"Famiglia","customFamilyPlaceholder":"predefinito: id del modello","customApiKey":"Chiave API","customCapabilities":"Funzionalità","addModel":"Aggiungi modello","modelAdded":"Modello aggiunto","addModels":"Aggiungi {count} modelli","addEmbeddingModel":"Aggiungi embedding","addImageModel":"Aggiungi modello immagine","addAudioModel":"Aggiungi modello audio","addTranscriptionModel":"Add transcription model","addingCustom":"Aggiunta…","discoverModels":"Recupera modelli","probeNow":"Testa l'endpoint","probeConfirm":"Inviare fino a 3 richieste di prova?","probeCapabilities":"ragionamento: {reasoning} · strumenti: {tools}","probeCapYes":"sì","probeCapNo":"no","probeCapUnknown":"sconosciuto","probeSuccess":"{model} testato in {latency} ms","probeFailed":"Test non riuscito: {reason}","discoverTitle":"Modelli su questo endpoint","discoverHint":"Scegli i modelli da registrare. Quelli già aggiunti restano bloccati.","discoverEmpty":"Questo endpoint non ha restituito modelli.","discoverAlreadyAdded":"Aggiunto","discoverSelectAll":"Seleziona tutto","modelsAdded":"{count} modelli aggiunti","getApiKey":"Ottieni chiave API","deleteKeyConfirm":"Eliminare questa chiave? Non è possibile annullare.","checkAll":"Controlla tutto","checking":"Controllo…","editLabel":"Modifica etichetta","saveLabel":"Salva etichetta","unifiedKeyDescBefore":"Usa questa come tua chiave OpenAI ","unifiedKeyDescAfter":"; autentica le richieste a questo proxy.","serverUnreachableBefore":"Impossibile raggiungere il server su ","serverUnreachableAfter":". Assicurati che il backend sia in esecuzione. npm run dev avvia entrambi, e i log del server vengono stampati con il prefisso server.","paneProviderKey":"Chiave fornitore","paneImportFile":"Importa file","paneCustomEndpoint":"Endpoint personalizzato","platform":"Piattaforma","hideAdded":"Nascondi i fornitori aggiunti","apiToken":"Token API","keyOptionalPlaceholder":"Facoltativa","bearerTokenPlaceholder":"Bearer token","pasteKeyPlaceholder":"incolla la chiave qui","pasteSeveral":"Incolla diverse","keyOptionalHint":"Facoltativa: lascia vuoto per usare il livello gratuito anonimo (limitato per IP) oppure incolla la tua chiave per usare il tuo account.","enable":"Abilita","noProviderKeys":"Nessuna chiave fornitore ancora. Aggiungine una sopra per iniziare il routing.","filterPlaceholder":"Filtra fornitori o chiavi","filterAll":"Tutti","filterHealthy":"Funzionanti","filterIssues":"Con problemi","filterDisabled":"Disabilitati","noFilterMatch":"Nessun fornitore corrisponde ai tuoi filtri.","providerCountSummary":"{providers} fornitori · {keys} chiavi","summaryHealthy":"{count} funzionanti","summaryIssueOne":"{count} problema","summaryIssueOther":"{count} problemi","providerActions":"Azioni fornitore","routeViaProxy":"Instrada tramite proxy","checkNow":"Controlla ora","syncModels":"Sync models with upstream","syncModelsResult":"Model list synced: {added} added, {total} live","syncModelsFailed":"Model sync failed: {reason}","syncAllModels":"Sync all providers","syncAllPending":"Syncing…","syncAllResult":"Synced {count} provider(s): {registered} model(s) registered","syncAllFailed":"Sync all failed: {reason}","syncAllNoChanges":"All provider rosters are already up to date","syncAllDialogTitle":"Sync Results","syncAllDialogSummary":"Changes detected in {changed} of {total} providers","syncAllNew":"+{count} new","syncAllUpdated":"{count} updated","syncAllRetired":"{count} retired","syncAllNewModels":"New models","syncAllUpdatedModels":"Updated models","syncAllRetiredModels":"Retired models","syncAllDialogClose":"Done","proxyEnvHintBefore":"Configurabile anche tramite la variabile d'ambiente ","proxyEnvHintAfter":" (ha precedenza). Lascia vuoto per disabilitare. Esempi:","importKeys":"Importa chiavi provider","importKeysDescription":"Carica file .env, JSON, JSONC, CSV, Markdown o di testo.","importFiles":"File","importFileCount":"{count} selezionati","previewFiles":"Anteprima","previewing":"Anteprima in corso…","selected":"Selezionati","provider":"Provider","keyName":"Nome chiave","keyValue":"Valore chiave","chooseProvider":"Scegli provider","noPreviewKeys":"Nessuna chiave trovata in quei file.","skippedItems":"Ignorati:","moreItems":"+{count} altri","importSelected":"Importa {count}","importing":"Importazione in corso…","noImportSelection":"Seleziona almeno una riga con un provider.","duplicate":"Duplicato","duplicatesFound":"{count} duplicato/i rilevato/i — già esistente/i e verrà/no saltato/i.","importResult":"Importati {imported}; falliti {failed}.","importModelCount":"+{count} modelli","importResultWithModels":"Importati {imported}; registrati {models} modelli; falliti {failed}.","confirmRemove":"Confermi?","quotaSignalsTitle":"Segnali di quota","quotaSignalsEmptyTitle":"Ancora nessuna osservazione di quota","quotaSignalsEmptyDesc":"Questa sezione si riempie quando i provider restituiscono header di limite, errori di quota o segnali di validazione.","quotaKeyRef":"chiave n. {id}","quotaPoolRef":"pool {pool}","quotaLimit":"Limite","quotaRemaining":"Rimanente","quotaReset":"Reset","quotaObserved":"Osservato","tabAgents":"Agenti","familyGeminiPro":"Gemini Pro","familyGeminiFlash":"Gemini Flash","familyGeminiFlashLite":"Gemini Flash-Lite","geminiTitle":"Mappatura modelli Gemini","geminiDesc":"Mappa i nomi Gemini Pro, Flash e Flash-Lite su Auto o su un modello specifico del catalogo.","compatibilityTitle":"Compatibilità agenti","compatibilityDesc":"Controlla le superfici di compatibilità opzionali e la scoperta dei modelli di Claude Code.","ollamaMode":"Emulazione Ollama","ollamaModeHint":"Il loopback aperto non accetta mai traffico LAN non autenticato.","ollamaOff":"Disattivata","ollamaLoopback":"Aperta su loopback","ollamaKeyRequired":"Chiave API richiesta","claudeAliases":"Alias di scoperta per Claude Code","claudeAliasesHint":"Esponi gli alias claude/<model> così il selettore di modelli del gateway può elencare il catalogo.","mcpServer":"Server MCP","mcpServerHint":"Espone l'endpoint /mcp ai client agente. Le nuove installazioni partono disattivate.","urlTokensTitle":"Token URL revocabili","urlTokensDesc":"Solo per client senza header. I token URL possono finire nella cronologia e nei log, quindi revocali quando non servono più.","urlTokenLabel":"Etichetta del token","createUrlToken":"Crea token","urlTokenOnce":"Copia questo token ora. Non verrà mostrato di nuovo.","revoked":"Revocato","revoke":"Revoca","modelScope":"Ambito modelli","modelScopeDesc":"Limita questa chiave a specifici ID di modello. Il router salta questa chiave per qualsiasi altro modello.","modelScopeAdd":"Aggiungi un ID modello e premi Invio","modelScopeEmpty":"Nessun ambito impostato — questa chiave serve tutti i modelli del suo provider.","modelScopeClear":"Cancella ambito","modelScopeBadgeOne":"limitata · 1 modello","modelScopeBadgeOther":"limitata · {count} modelli","modelPicker":{"title":"Quali modelli deve servire questa chiave?","hint":"La tua chiave {provider} è stata aggiunta e al momento serve tutti i modelli qui sotto. Deseleziona quelli che questa chiave non può usare — il router la salterà per quei modelli.","count":"{selected} di {total} selezionati","allNote":"Tutto selezionato — non viene salvato nulla e anche i modelli aggiunti al catalogo in seguito useranno questa chiave.","subsetNote":"Questa chiave sarà limitata ai modelli selezionati. Puoi cambiarlo in seguito dalla riga della chiave.","skip":"Non ora","scopedOne":"Chiave limitata a 1 modello","scopedOther":"Chiave limitata a {count} modelli","allSaved":"Key serves every catalog model"},"cpTitle":"Profili client","cpDesc":"Chiavi API per singolo client, ognuna con un prompt di sistema che il server applica sempre.","cpEmpty":"Nessun profilo client per ora.","cpNameLabel":"Nome","cpNamePlaceholder":"es. Bot di supporto","cpPromptLabel":"Prompt di sistema (facoltativo)","cpPromptPlaceholder":"Istruzioni che il server antepone a ogni richiesta effettuata con questa chiave.","cpCreate":"Crea profilo","cpRotate":"Ruota chiave","cpKeyOnce":"Copia questa chiave adesso — non verrà più mostrata.","cpEnabledAria":"Profilo abilitato","selectKey":"Seleziona questa chiave","bulkSelected":"{count} selezionate","bulkEnable":"Abilita tutte","bulkDisable":"Disabilita tutte","bulkDelete":"Elimina tutte","bulkDeleteConfirm":"Eliminare {count}?","bulkResult":"Aggiornate {done}; fallite {failed}.","bulkDeleteResult":"Eliminate {done}; fallite {failed}.","testProxy":"Test","testingProxy":"Testing…","proxyTestOk":"Proxy works — {ms}ms round trip","proxyTestFail":"Proxy failed: {reason}","editKey":"Modifica chiave","editPlatformLocked":"Il provider e l’endpoint non possono essere modificati dopo la creazione.","editCredentialHint":"Lascia vuoto per conservare la chiave attuale.","editCredentialPartsRequired":"Inserisci sia l’ID account che il token API.","editModels":"Modifica modelli","editModelsHint":"Choose which catalog models this key may serve. Select everything to clear the scope so future catalog models use it too.","editModelsCustomHint":"Choose which registered endpoint models this key may serve. Select everything to clear the scope.","editModelsSync":"Check catalog updates","editModelsSyncing":"Checking…","editModelsSynced":"Model catalog checked","outlookUnavailable":"Unavailable","outlookNoForecasts":"Forecast unavailable. More recent traffic or reliable quota readings are needed.","outlookCoverage":"Forecasts available for {count} of {total} pools.","outlookTraffic":"{count} successful requests through this instance in the last {minutes} minutes.","outlookMinimumTraffic":"An exhaustion forecast needs at least {count} successful requests within {minutes} minutes.","outlookNotReportedHint":"The provider has not reported a usable request balance and limit. Local usage is shown; remaining quota is unavailable.","outlookMissingResetHint":"The provider did not report a valid reset time. Remaining quota cannot support an exhaustion forecast.","outlookConfidenceHint":"This balance is not reliable enough for an exhaustion forecast.","outlookObserved":"Balance observed: {time}","outlookUnavailablePools":"Unavailable quota pools ({count})","outlookTitle":"Quota outlook","outlookInsufficient":"Not enough data","outlookLowBalance":"Low balance","outlookRunningLow":"Running low soon","outlookStale":"Needs fresh data","outlookUnknown":"Unknown","outlookWithinQuota":"Within quota","outlookResetsFirst":"Not before reset","outlookExhausted":"Already exhausted","outlookLastReported":"requests last reported","outlookRequestsLeft":"requests left","outlookNotReported":"Not reported","outlookRate":"Recent rate","outlookRateValue":"{count} req/min","outlookRunsOut":"May run out","outlookStaleHint":"This balance is old or its window has expired. A fresh provider reading is needed.","outlookError":"Could not load quota forecasts. Raw observations are still available below.","outlookRetry":"Retry","outlookAttention":"Quota pools needing attention: {count}","outlookNoWarnings":"No forecast warnings. Pools with insufficient data may still be limited.","outlookHint":"Rates count successful requests through this instance only, not usage elsewhere. Forecasts require recent provider balances and reported resets. Warnings appear below 20% remaining or when quota may run out within two hours, before reset.","outlookRaw":"Raw quota observations","addCustomModel":"Aggiungi modello personalizzato","modelId":"ID modello","modelIdRequired":"L’ID modello è obbligatorio","modelDisplayName":"Nome visualizzato","modelContextWindow":"Finestra di contesto (token)","modelRateLimits":"Limiti di frequenza (facoltativo)","modelSupportsTools":"Supporta chiamate a strumenti","modelSupportsToolsHint":"Abilita se questo modello può eseguire chiamate di funzioni o strumenti","modelSupportsVision":"Supporta visione","modelSupportsVisionHint":"Abilita se questo modello supporta input di immagini","createModel":"Crea modello","modelAddedSuccess":"Modello personalizzato aggiunto con successo","modelAddFailed":"Impossibile aggiungere il modello personalizzato","testModel":"Testa","testingModel":"Test in corso…","testPassedShort":"Superato","testFailedShort":"Fallito","testPassed":"Test del modello superato in {latency}ms","testFailed":"Test del modello non riuscito","testThrottled":"Attendi {seconds}s prima di testare nuovamente questo modello.","noModelsForProvider":"Nessun modello configurato per questo provider.","testModels":"Testa i modelli","syncAllCatalog":"Catalog: +{inserted} added, ~{updated} updated, -{removed} removed","requestCapLabel":"Request cap","tokenCapLabel":"Token cap","budgetPeriodLabel":"Budget period","budgetPeriodDaily":"Daily","budgetPeriodWeekly":"Weekly","budgetPeriodMonthly":"Monthly","budgetPeriodAuto":"Auto (follow provider)","autoResolvedDaily":"Detected provider cycle: daily","autoResolvedMonthly":"Detected provider cycle: monthly","autoResolvedFallback":"Provider cycle unknown, defaulting to monthly","capUnlimitedPlaceholder":"Illimitato","capEditHint":"Caps reset at the next period boundary, 00:00 UTC. Leave blank for unlimited.","monthlyUsageLine":"{requests} richieste, {tokens} token questo mese","monthlyUsageRequests":"{requests} requests","monthlyUsageTokens":"{tokens} tokens","monthlyUsageRequestsRelative":"{used} / {cap} ({remaining} left) requests","monthlyUsageTokensRelative":"{used} / {cap} ({remaining} left) tokens","monthlyUsageReset":"reset {date}"}`),backups:{title:`Backups`,description:`Save the routing data to a .sql file beside the database, and restore it later.`,excludedNote:`A backup carries your providers, models, routing settings and request history. Accounts, sessions and URL tokens are never included, so a dump holds no password hashes or login tokens and restoring one cannot log you out. Provider keys stay encrypted with this server's ENCRYPTION_KEY: a backup can only be restored on a server that still holds that key.`,selectHint:`Back up everything, or pick the tables you need.`,selectAll:`Select all`,deselectAll:`Clear`,fullBackup:`Full backup`,backupSelected:`Back up selected ({count})`,created:`Backup written to {filename}`,list:`Backups on disk`,empty:`No backups yet`,full:`All tables`,tablesCount:`{count} tables`,manual:`Manual`,scheduled:`Scheduled`,preRestore:`Pre-restore`,download:`Download`,restore:`Restore`,confirmRestore:`Replace data?`,restored:`Restored. The previous data was saved as {filename}.`,delete:`Delete backup`,prevPage:`Previous`,nextPage:`Next`,autoTitle:`Automatic backups`,autoHint:`The server writes a full backup on this cadence.`,time:`Time (HH:mm)`,intervalDays:`Every N days`,path:`Folder`,pathPlaceholder:`backups`,pathHint:`Relative to the database directory. Backups cannot be written outside it.`,save:`Save schedule`,saved:`Saved`},status:{healthy:`funzionante`,rateLimited:`limitato`,invalid:`non valido`,error:`errore`,unchecked:`non controllato`},analytics:{title:`Analisi`,description:`Volume richieste, latenza, utilizzo token ed errori.`,range24h:`24h`,range7d:`7g`,range30d:`30g`,range90d:`90g`,requests:`Richieste`,successRate:`Tasso di successo`,inputTokens:`Token in input`,outputTokens:`Token in output`,avgLatency:`Latenza media`,p95Latency:`Latenza P95`,avgTtft:`TTFT medio`,estSavings:`Risparmio stimato`,requestsByProvider:`Richieste per fornitore`,avgLatencyByProvider:`Latenza media per fornitore`,ttftByProvider:`Tempo al primo token per fornitore`,ttftEmpty:`Ancora nessun tempo al primo token registrato.`,requestsOverTime:`Richieste nel tempo`,tokensOverTime:`Token nel tempo`,byModel:`Per modello`,byPlatform:`Per piattaforma`,errors:`Errori`,errorDistribution:`Distribuzione errori`,pinnedRequests:`Richieste fissate`,pinnedHonored:`Onorate`,fallbackAttempts:`Tentativi di fallback`,savingsHint:"Hai effettivamente risparmiato ${actual} negli ultimi {range}. Questo è quanto gli stessi token sarebbero costati su API a pagamento, prezzate per modello. Il numero mostrato proietta il tuo ritmo dagli ultimi {span} di dati a 30 giorni interi.",savingsHintExact:"Hai effettivamente risparmiato ${actual} negli ultimi {range}. Questo è quanto gli stessi token sarebbero costati su API a pagamento, prezzate per modello. Il numero mostrato è il tuo totale reale di 30 giorni.",requestsHintPinned:`{pinned} di queste richieste hanno fissato un modello specifico per nome. {honored} sono state servite dal modello fissato; {failed} sono cadute in fallback su uno diverso. Le restanti sono state instradate automaticamente.`,requestsHintAuto:`Tutte le richieste in questo periodo sono state instradate automaticamente; nessun client ha fissato un modello specifico per nome.`,requestsHintTypes:`{chat} richieste di chat e {embedding} di embedding.`,rangeLabel24h:`24 ore`,rangeLabel7d:`7 giorni`,rangeLabel30d:`30 giorni`,rangeLabel90d:`90 giorni`,spanDays:`{count} giorni`,spanHours:`{count} ore`,latencyMs:`Latenza (ms)`,latency:`Latenza`,pinned:`Fissate`,inTokens:`Token in`,outTokens:`Token out`,saved:`Risparmiato`,message:`Messaggio`,time:`Ora`,perModelBreakdown:`Analisi per modello`,usageByKey:`Utilizzo per chiave`,keyColumn:`Chiave`,keyLabelFallback:`Chiave n. {id}`,errorsByProvider:`Errori per fornitore`,recentErrors:`Errori recenti`,noErrors:`Nessun errore`,recentCalls:`Chiamate recenti`,clientIp:`IP del client`,clientAgent:`App client`,requestedModelHint:`Richiesto {model}, servito dal fallback`,attempts:`Tentativi`,filterAll:`Tutte`,filterCanceled:`Annullate`,providerBreakdown:`Dettaglio per provider`,tokensPerSec:`Tok/s`,allProviders:`Tutti i provider`,requestDetailTitle:`Richiesta #{id}`,failoverLadder:`Scala di failover`,failoverLadderHint:`Ogni passaggio di questa richiesta lungo la catena di fallback, in ordine.`,noAttemptTrace:`Nessuna traccia dei tentativi registrata per questa richiesta.`,keyOrdinal:`chiave #{n}`,keyBadge:`Chiave #{n}`,attemptTimingHint:`Offset dall'inizio della richiesta · durata del tentativo`,requestedModel:`Modello richiesto`,ttft:`TTFT`,requestsByAgent:`Richieste per agente`,sortBy:`Ordina per {column}`,sortHint:`L'ordinamento si applica alle {count} righe caricate`,cacheHitRate:`Tasso di hit della cache`,cacheSavedTokens:`{tokens} token risparmiati`,cacheHitRateHint:`{hits} hit contro {misses} miss dall'avvio del server · {requests} chiamate al provider evitate`},logs:{title:`Log`,description:`Log del server in tempo reale. Le nuove voci arrivano mentre la pagina è aperta.`,pause:`Sospendi`,resume:`Riprendi`,clear:`Cancella i log`,cleared:`Log del server cancellato`,levelFilter:`Livelli di log`,levels:{debug:`Debug`,info:`Info`,warn:`Avviso`,error:`Errore`},countsHint:`I conteggi si riferiscono all'intero buffer di log sul server, non solo alle voci che corrispondono a questi filtri.`,searchPlaceholder:`Cerca nei messaggi di log…`,jumpToLatest:`Vai alle più recenti`,showMore:`Mostra di più`,showLess:`Mostra meno`,buffered:`Visualizzate {count} voci su un massimo di {max} nel buffer`,emptyTitle:`Ancora nessuna voce di log`,emptyDescription:`Le voci compaiono qui man mano che il server le scrive. Allarga i filtri di livello, fornitore o ricerca se ti aspettavi dei risultati.`,noLevelsTitle:`Nessun livello selezionato`,noLevelsDescription:`Attiva almeno un livello per vedere l'output del log.`,loadFailed:`Impossibile caricare il log del server.`},playground:{title:`Playground`,description:`Invia una richiesta di chat attraverso il router e scopri quale fornitore la serve.`,autoModel:`Auto (catena di fallback)`,fusionModel:`Fusion (sintesi multi-modello)`,selectModel:`Seleziona modello`,searchModels:`Cerca modelli…`,noModelsFound:`Nessun modello trovato`,send:`Invia`,sending:`Invio…`,clear:`Cancella`,inputPlaceholder:`Scrivi un messaggio… (⏎ per inviare, ⇧⏎ per nuova riga)`,emptyTitle:`Invia un messaggio per iniziare.`,emptyDescription:`Utilizzando {model}. Cambia modello nel selettore sopra.`,noModels:`Nessun modello ancora. Aggiungi una chiave API nella pagina Chiavi per popolare questa lista.`,copyReply:`Copia risposta`,fallback:`fallback`,fallbacks:`fallback`,fusionPanel:`Panel`,fusionJudge:`Giudice`,fusionTrace:`{count} risposte modello`,fusionFailed:`nessuna risposta`,fusionJudgeSynth:`ha sintetizzato la risposta finale`,errorPrefix:`Errore:`,systemPromptLabel:`Prompt di sistema`,systemPromptPlaceholder:`Facoltativo. Inviato come messaggio di sistema prima della chat.`,showSettings:`Mostra impostazioni`,hideSettings:`Nascondi impostazioni`,samplingHeading:`Campionamento`,samplingHelp:`Se disattivati, si applica il valore predefinito del provider stesso. Vengono inviati solo i controlli che attivi.`,samplingDefault:`Default`,temperature:`Temperatura`,topP:`Top P`,maxTokens:`Token massimi`,errorTitle:`Richiesta non riuscita`,attach:`Allega file`,attachTooMany:`Puoi allegare fino a {count} file per messaggio.`,attachTooLarge:`{name} è troppo grande. Il limite è {max}.`,attachUnsupported:`{name} non è supportato. Allega immagini (PNG, JPEG, WebP, GIF) o file di testo (TXT, MD, CSV, JSON, LOG).`,attachFailed:`Impossibile leggere {name}.`,noVisionBadge:`No immagini`,visionWarning:`{model} non accetta immagini. Scegli un modello con visione o Auto.`,dictate:`Detta`,dictationStop:`Interrompi registrazione`,dictationTranscribing:`Trascrizione…`,dictationUnavailable:`Aggiungi provider di modelli audio per usare la dettatura.`,dictationModel:`Modello di dettatura`,dictationFailed:`Trascrizione non riuscita: {reason}`,artifactOpen:`Apri anteprima`,artifactPreview:`Anteprima`,artifactCode:`Codice`,artifactClose:`Chiudi anteprima`,artifactDownload:`Scarica`,artifactReload:`Ricarica anteprima`,artifactHtml:`Pagina HTML`,artifactSvg:`Immagine SVG`,artifactLines:`righe`,artifactResize:`Ridimensiona anteprima`},playgroundSessions:{heading:`Conversazioni`,newConversation:`Nuova conversazione`,showSidebar:`Mostra conversazioni`,hideSidebar:`Nascondi conversazioni`,empty:`Ancora nessuna conversazione salvata.`,untitled:`Conversazione senza titolo`,rename:`Rinomina`,renamePlaceholder:`Nome della conversazione`,messageCount:`{count} messaggi`,justNow:`proprio ora`,minutesAgo:`{count} min fa`,hoursAgo:`{count} h fa`,daysAgo:`{count} g fa`,loadFailed:`Impossibile aprire quella conversazione.`,renameFailed:`Impossibile rinominare quella conversazione.`,deleteFailed:`Impossibile eliminare quella conversazione.`,actions:`Azioni conversazione`,newChat:`Nuova chat`},embeddings:{title:`Modelli`,description:`Gli embedding fanno fallback solo all'interno di una famiglia: lo stesso modello servito da un altro fornitore. I vettori di modelli diversi sono incompatibili, quindi il router non scambia mai i modelli.`,defaultBadge:`Default · auto`,makeDefault:`Imposta come default`,moveUp:`Sposta su`,moveDown:`Sposta giù`,usageToday:`{count} richieste oggi`,usageMonth:`{count} tok questo mese`,autoDescription:`model: "auto" su POST /v1/embeddings instrada alla famiglia default. Nominare una famiglia (o un ID modello fornitore) fissa quella famiglia; i fornitori al suo interno vengono provati in ordine.`,unsavedChanges:`Modifiche non salvate`,saveChanges:`Salva modifiche`,savingChanges:`Salvataggio…`,tokMax:`{tokens} tok max`,emptyTitle:`Ancora nessun modello di embedding`,emptyDesc:`Le famiglie di embedding compaiono qui quando aggiungi una chiave provider che supporta gli embedding.`,dragToReorder:`Trascina per riordinare il provider`},fusion:{title:`Fusion`,description:`Un pannello di modelli risponde in parallelo, poi un giudice sintetizza una risposta più forte. Usalo chiamando l'API con modello "fusion".`,panelSource:`Origine pannello`,panelSourceHelp:`Da dove provengono i modelli del pannello quando una richiesta non specifica i propri.`,mode:{auto:`Auto (Catena di Fallback)`,autoHelp:`Seleziona un insieme diversificato di modelli dalla tua Catena di Fallback, classificati dalla tua strategia di routing attiva.`,explicit:`Pannello esplicito`,explicitHelp:`Usa sempre i modelli specifici che scegli qui sotto.`},panelModels:`Modelli del pannello`,selectedCount:`{count} di {max} selezionati`,noModels:`Nessun modello è ancora collegato. Aggiungi una chiave API, poi abilita i modelli nella Catena di Fallback.`,panelSize:`Dimensione pannello`,panelSizeHelp:`Quanti modelli diversi selezionare automaticamente (1–{max}).`,judge:`Modello giudice`,judgeHelp:`Il modello che sintetizza le risposte del pannello in una. Auto usa il tuo modello disponibile con il punteggio più alto.`,judgeAuto:`Auto (miglior disponibile)`,strategy:`Strategia`,strategySynthesize:`Sintetizza — combina il pannello in una risposta`,strategyBestOf:`Miglior risultato — restituisce la singola risposta più forte (nessuna chiamata al giudice)`,strategySynthesizeShort:`Sintetizza`,strategyBestOfShort:`Miglior risultato`,exposePanel:`Esponi dettagli pannello`,exposePanelHelp:`Allega la risposta di ogni modello e i metadati del giudice in un campo x_fusion nella risposta.`,howToUse:`Come usare`,howToUseHelp:`Invia una normale richiesta chat con modello "fusion". Queste impostazioni sono il default; qualsiasi richiesta può sovrascriverle con un campo "fusion".`,unsavedChanges:`Modifiche non salvate`,save:`Salva`,searchPlaceholder:`Search models…`,providerFilterLabel:`Filter by provider`,providerAll:`All providers`,noMatch:`No models match your search.`},premium:{title:`Premium`,description:`Il catalogo live dei modelli, su ogni dispositivo.`,loading:`Caricamento…`,checkForUpdates:`Controlla aggiornamenti`,syncing:`Sincronizzazione…`,catalogFeed:`Feed catalogo`,liveFeed:`Feed live`,monthlySnapshot:`Istantanea mensile`,lastChecked:`Ultimo controllo: {when}`,liveDescription:`Nuovi modelli gratuiti, cambi di quota e correzioni arrivano qui entro ore dal rilascio. L'app controlla automaticamente due volte al giorno; nessuna azione necessaria.`,snapshotDescription:`Livello gratuito: il catalogo si aggiorna da un'istantanea mensile, controllata automaticamente due volte al giorno. Premium passa al feed live, aggiornato ogni 2-3 giorni.`,lastSyncProblem:`Ultimo problema di sincronizzazione: {error}`,license:`Licenza`,planAnnual:`Premium Annuale`,planLifetime:`Premium a Vita`,expired:`Scaduto`,inactive:`Inattivo`,lifetimeNote:`Licenza a vita: non scade mai.`,renewsOn:`Rinnova il {date}.`,willNotRenew:`Non si rinnoverà. Premium fino al {date}, poi questa installazione torna al catalogo mensile gratuito.`,keyInactive:`Questa chiave non è più attiva. L'app continua a funzionare con il catalogo mensile gratuito.`,manageSubscription:`Gestisci abbonamento`,openingPortal:`Apertura…`,removeKey:`Rimuovi chiave da questo dispositivo`,manageHint:`Gestisci abbonamento apre il portale di fatturazione Stripe: annulla, aggiorna la tua carta o scarica le fatture. Rimuovere la chiave disattiva solo questo dispositivo; il tuo acquisto rimane intatto.`,licenseKey:`Chiave di licenza`,licenseKeyPlaceholder:`fla_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`,activate:`Attiva`,activating:`Attivazione…`,keyHint:`La tua chiave è nell'email di acquisto e nella pagina post-checkout. L'hai persa?`,recoverKey:`Recuperala sul sito web`,upsellTitle:`Passa al feed live per $19 all'anno`,upsellDescription:`Nuovi modelli gratuiti nel momento in cui esistono, invece che 30 giorni dopo. Una chiave, ogni dispositivo. Annulla quando vuoi; il router rimane gratuito per sempre.`,goPremium:`Vai a Premium`,bundled:`incluso`,planGeneric:`Premium`},languages:{en:`English`,"zh-CN":`中文 (简体)`,es:`Español`,fr:`Français`,"pt-BR":`Português (Brasil)`,it:`Italiano`,hi:`हिन्दी`,ar:`العربية`,bn:`বাংলা`,ru:`Русский`,ur:`اردو`,id:`Bahasa Indonesia`,de:`Deutsch`,ja:`日本語`,sw:`Kiswahili`,mr:`मराठी`,te:`తెలుగు`,tr:`Türkçe`,ta:`தமிழ்`,vi:`Tiếng Việt`,ko:`한국어`,fa:`فارسی`,th:`ไทย`,gu:`ગુજરાતી`,pl:`Polski`,uk:`Українська`,kn:`ಕನ್ನಡ`,ml:`മലയാളം`,or:`ଓଡ଼ିଆ`,my:`မြန်မာဘာသာ`,pa:`ਪੰਜਾਬੀ`,ro:`Română`,nl:`Nederlands`,ms:`Bahasa Melayu`,tl:`Filipino`,ha:`Hausa`,yo:`Yorùbá`,ig:`Igbo`,am:`አማርኛ`,uz:`Oʻzbekcha`,az:`Azərbaycanca`,si:`සිංහල`,ne:`नेपाली`,km:`ខ្មែរ`,el:`Ελληνικά`,cs:`Čeština`,hu:`Magyar`,sv:`Svenska`,he:`עברית`,da:`Dansk`,fi:`Suomi`,no:`Norsk`,sk:`Slovenčina`,bg:`Български`,hr:`Hrvatski`,sr:`Српски`,lt:`Lietuvių`,"zh-TW":`中文 (繁體)`,"pt-PT":`Português (Portugal)`,ka:`ქართული`},errors:{boundaryTitle:`Qualcosa è andato storto`,boundaryDescription:`La dashboard ha riscontrato un errore imprevisto. I tuoi dati sono al sicuro. Riprova o torna alla pagina dei modelli.`,tryAgain:`Riprova`,goHome:`Torna ai modelli`},notFound:{title:`Pagina non trovata`,description:`Questa pagina non esiste o potrebbe essere stata spostata.`},setup:{title:`Per iniziare`,subtitle:`Tre passaggi per instradare la tua prima richiesta.`,progress:`{done} di {total}`,step1Title:`Aggiungi una chiave provider`,step1Desc:`Collega almeno un account provider. Le chiavi gratuite funzionano.`,step1Cta:`Aggiungi chiavi`,step2Title:`Invia una richiesta di prova`,step2Desc:`Scegli un modello nel Playground e saluta.`,step2Cta:`Apri Playground`,step3Title:`Collega la tua app`,step3Desc:`Usa la tua chiave API unificata con qualsiasi client compatibile OpenAI.`,copyKey:`Copia chiave API`,copyUrl:`Copia URL di base`,copiedKey:`Chiave API copiata negli appunti`,copiedUrl:`URL di base copiato negli appunti`},palette:{title:`Palette dei comandi`,placeholder:`Cerca pagine, modelli, azioni…`,empty:`Nessun risultato`,groupPages:`Pagine`,groupActions:`Azioni`,groupModels:`Modelli`,toggleTheme:`Attiva/disattiva la modalità scura`},validation:{required:`Obbligatorio`,url:`Inserisci un URL valido che inizi con http:// o https://`,email:`Inserisci un indirizzo email valido`,passwordMin:`Almeno {min} caratteri`},agents:{title:`Agenti di coding`,description:`Collega gli strumenti di coding a un unico gateway di modelli gratuiti con configurazione generata e sicura per il backup.`,apiKey:`Chiave API`,quickstartTitle:`Avvio rapido`,quickstart:`La via più rapida: configura Claude Code dal catalogo live.`,currentKey:`Chiave unificata attuale:`,seenRecently:`Visto di recente`,setupLabel:`Configurazione automatica`,setupHint:`Scrive per te il file di configurazione di questo strumento, puntato a questo gateway.`,setupGuideHint:`Mostra i passaggi di configurazione di questo strumento; non viene scritto alcun file.`,manualLabel:`Connessione manuale`,manualHint:`URL di base e chiave da inserire nelle impostazioni dello strumento.`,endpoint:`Endpoint`,documentation:`Documentazione`,descriptions:{claude:`L'agente da terminale di Anthropic: pianifica, modifica file ed esegue comandi nel tuo repository.`,codex:`L'agente da terminale di OpenAI, che prima esegue il compito in una sandbox locale.`,cline:`Un'estensione per VS Code che ti fa approvare ogni modifica e ogni comando.`,continue:`Un'estensione per VS Code e JetBrains, con completamento e chat mentre scrivi.`,aider:`Un compagno di programmazione da riga di comando: ogni modifica diventa un commit git.`,opencode:`Un agente da terminale indipendente dal fornitore, con interfaccia testuale a schermo intero.`,goose:`L'agente locale di Block, estendibile con server MCP per andare oltre il codice.`,qwen:`Un fork di Gemini CLI messo a punto per i modelli Qwen e i repository grandi.`,roo:`Un'estensione per VS Code con modalità intercambiabili: architetto, programmatore, debugger.`,kilo:`Un'estensione per VS Code che unisce Roo e Cline, con un orchestratore che divide il lavoro.`,crush:`L'agente da terminale di Charm, scritto in Go, con una sessione per progetto.`,dsh:`L'imbracatura di DeepSeek, che tiene ogni fornitore come una rotta commutabile.`,mimo:`L'agente da terminale di Xiaomi, un fork di OpenCode che accetta qualsiasi fornitore compatibile OpenAI.`,cursor:`L'editor pensato per l'IA; passa dal cloud di Cursor, quindi serve un URL pubblico.`,generic:`Qualsiasi altro strumento che parli l'API di OpenAI, configurato a mano con URL base e chiave.`,atomcode:`L'agente da terminale di AtomGit, scritto in Rust, che accetta qualsiasi endpoint compatibile OpenAI.`,openclaw:`Un assistente personale sempre attivo che risponde su WhatsApp, Telegram, Discord e altro dalla tua macchina.`,hermes:`L'agente auto-migliorante di Nous Research, con memoria persistente e skill, nel terminale o nelle app di chat.`,pi:`Un agente da terminale minimale che modelli con le tue estensioni, skill e modelli di prompt.`}},update:{available:`New version available`,whatsNew:`What's new in v{version}`,publishedOn:`Published {date}`,noNotes:`No release notes were published for this version.`,openRelease:`Open release page`,dismissVersion:`Dismiss this version`,dismiss:`Dismiss`},freeTier:{poolsToggle:`Pool del piano gratuito ({count})`,poolsToggleBare:`Pool del piano gratuito`,summary:`{pools} pool · {budget} token/mese conteggiati una volta per pool · {credits} a crediti · {unpublished} non pubblicati`,pool:`Pool`,models:`Modelli`,budget:`Budget mensile`,kind:`Tipo`,kindDocumented:`Documentato`,kindCredits:`Crediti`,kindUnpublished:`Non pubblicato`,remaining:`Residuo`,resetAt:`Reset`,disabledModels:`({count} disattivati)`,metricTokens:`token`,metricRequests:`richieste`,metricCredits:`crediti`,metricNeurons:`neuroni`,metricOther:`unità`,empty:`Nessun modello abilitato con dati di budget del piano gratuito.`,poolLabel:`{platform} · shared {scope} pool`,poolLabelBare:`{platform} · shared pool`,poolModels:`{count} models`,poolBudget:`{budget}/mo`,poolBudgetTitle:`One monthly allowance for the whole pool, scaled by the {count} usable keys on this platform. Every model listed under it draws from the same budget.`,poolNoQuota:`no published quota`,poolResets:`resets {time}`,independentBudgets:`independent budgets`},chains:{title:`Catene di fallback`,description:`Catene con nome, ognuna richiamabile come auto:<name> in /v1/models.`,count:`{count} catene`,active:`Attiva`,default:`Predefinita`,activate:`Attiva`,activateHint:`Fai modificare questa catena alla tabella qui sotto e usala per il routing auto`,deleteHint:`Elimina questa catena`,deleteConfirm:`Eliminare la catena «{name}»?`,create:`Crea`,createPlaceholder:`Nome della catena`,createFailed:`Impossibile creare la catena.`,nameRules:`Fino a 20 caratteri: lettere, cifre, trattini e trattini bassi.`,startEmpty:`Inizia vuota`,startEmptyHint:`Crea la catena senza modelli e tiene fuori i nuovi modelli del catalogo. Se non selezionato, parte come copia della catena predefinita.`,curated:`Curata`,curatedHint:`I nuovi modelli del catalogo non vengono aggiunti automaticamente a questa catena.`,renameHint:`Rinomina questa catena`,renameConfirm:`Rinominare la catena "{oldName}" in "{name}"? I client che chiamano auto:{oldName} devono passare a auto:{name}.`,renamePlaceholder:`Nuovo nome della catena`,renameFailed:`Impossibile rinominare la catena.`},notifications:{catalogAdded:`{count} new models added from catalog`,catalogAddedFrom:`{count} new models added for {provider}`,catalogRemoved:`{count} models removed from catalog`,catalogRemovedFrom:`{count} models removed for {provider}`,catalogUpdated:`{count} models updated from latest catalog`,catalogUpdatedFrom:`{count} models updated for {provider}`,discoverAdded:`{count} new models from provider {provider}`,discoverRemoved:`{count} models removed from provider {provider}`,degraded:`Degraded mode active — only {healthy}/{total} providers healthy ({pct}%)`,updateAvailable:`Update available: v{version}`},routingStrip:{canceled:`Canceled`,title:`Live routing`,mode:`Mode`,processing:`Processing…`,idle:`Waiting for a request…`,failed:`Failed`,afterAttempts:`Success after {n} attempts`,activeCount:`{n} active`}};export{e as default};
|