libre-webui 0.33.0 → 0.34.1
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/backend/dist/db.d.ts +2 -2
- package/backend/dist/db.d.ts.map +1 -1
- package/backend/dist/db.js +14 -6
- package/backend/dist/db.js.map +1 -1
- package/backend/dist/env.d.ts.map +1 -1
- package/backend/dist/env.js +21 -9
- package/backend/dist/env.js.map +1 -1
- package/backend/dist/index.d.ts.map +1 -1
- package/backend/dist/index.js +24 -35
- package/backend/dist/index.js.map +1 -1
- package/backend/dist/middleware/cors.d.ts +28 -0
- package/backend/dist/middleware/cors.d.ts.map +1 -0
- package/backend/dist/middleware/cors.js +70 -0
- package/backend/dist/middleware/cors.js.map +1 -0
- package/backend/dist/middleware/preferencesBody.d.ts +4 -0
- package/backend/dist/middleware/preferencesBody.d.ts.map +1 -0
- package/backend/dist/middleware/preferencesBody.js +43 -0
- package/backend/dist/middleware/preferencesBody.js.map +1 -0
- package/backend/dist/models/personaModel.d.ts.map +1 -1
- package/backend/dist/models/personaModel.js +2 -2
- package/backend/dist/models/personaModel.js.map +1 -1
- package/backend/dist/models/userModel.d.ts.map +1 -1
- package/backend/dist/models/userModel.js +3 -3
- package/backend/dist/models/userModel.js.map +1 -1
- package/backend/dist/persistence/postgresResourceRepositories.js +3 -3
- package/backend/dist/persistence/postgresResourceRepositories.js.map +1 -1
- package/backend/dist/persistence/sqliteResourceRepositories.js +3 -3
- package/backend/dist/persistence/sqliteResourceRepositories.js.map +1 -1
- package/backend/dist/routes/calendar.js +2 -2
- package/backend/dist/routes/calendar.js.map +1 -1
- package/backend/dist/routes/documents.js +2 -2
- package/backend/dist/routes/documents.js.map +1 -1
- package/backend/dist/routes/huggingfaceHub.d.ts.map +1 -1
- package/backend/dist/routes/huggingfaceHub.js +47 -21
- package/backend/dist/routes/huggingfaceHub.js.map +1 -1
- package/backend/dist/routes/preferences.d.ts.map +1 -1
- package/backend/dist/routes/preferences.js +2 -1
- package/backend/dist/routes/preferences.js.map +1 -1
- package/backend/dist/services/agentCliService.d.ts.map +1 -1
- package/backend/dist/services/agentCliService.js +3 -1
- package/backend/dist/services/agentCliService.js.map +1 -1
- package/backend/dist/services/automationService.d.ts.map +1 -1
- package/backend/dist/services/automationService.js +3 -4
- package/backend/dist/services/automationService.js.map +1 -1
- package/backend/dist/services/chatService.d.ts.map +1 -1
- package/backend/dist/services/chatService.js +11 -11
- package/backend/dist/services/chatService.js.map +1 -1
- package/backend/dist/services/chatToolRuntimeService.d.ts +11 -0
- package/backend/dist/services/chatToolRuntimeService.d.ts.map +1 -1
- package/backend/dist/services/chatToolRuntimeService.js +2 -13
- package/backend/dist/services/chatToolRuntimeService.js.map +1 -1
- package/backend/dist/services/codexOAuthService.js +11 -7
- package/backend/dist/services/codexOAuthService.js.map +1 -1
- package/backend/dist/services/documentService.d.ts.map +1 -1
- package/backend/dist/services/documentService.js +3 -3
- package/backend/dist/services/documentService.js.map +1 -1
- package/backend/dist/services/galleryService.d.ts.map +1 -1
- package/backend/dist/services/galleryService.js +2 -2
- package/backend/dist/services/galleryService.js.map +1 -1
- package/backend/dist/services/libreClawService.d.ts +1 -1
- package/backend/dist/services/libreClawService.d.ts.map +1 -1
- package/backend/dist/services/libreClawService.js +16 -16
- package/backend/dist/services/libreClawService.js.map +1 -1
- package/backend/dist/services/memoryService.d.ts.map +1 -1
- package/backend/dist/services/memoryService.js +2 -2
- package/backend/dist/services/memoryService.js.map +1 -1
- package/backend/dist/services/mutationEngineService.js +2 -2
- package/backend/dist/services/mutationEngineService.js.map +1 -1
- package/backend/dist/services/ollamaService.d.ts +7 -2
- package/backend/dist/services/ollamaService.d.ts.map +1 -1
- package/backend/dist/services/ollamaService.js +120 -98
- package/backend/dist/services/ollamaService.js.map +1 -1
- package/backend/dist/services/ollamaSettingsService.js +1 -1
- package/backend/dist/services/ollamaSettingsService.js.map +1 -1
- package/backend/dist/services/pluginAudioGenerationService.d.ts.map +1 -1
- package/backend/dist/services/pluginAudioGenerationService.js +24 -11
- package/backend/dist/services/pluginAudioGenerationService.js.map +1 -1
- package/backend/dist/services/pluginCredentialsService.js +2 -2
- package/backend/dist/services/pluginCredentialsService.js.map +1 -1
- package/backend/dist/services/pluginEmbeddingService.d.ts.map +1 -1
- package/backend/dist/services/pluginEmbeddingService.js +20 -16
- package/backend/dist/services/pluginEmbeddingService.js.map +1 -1
- package/backend/dist/services/pluginImageGenerationService.d.ts.map +1 -1
- package/backend/dist/services/pluginImageGenerationService.js +93 -62
- package/backend/dist/services/pluginImageGenerationService.js.map +1 -1
- package/backend/dist/services/pluginSTTService.d.ts.map +1 -1
- package/backend/dist/services/pluginSTTService.js +15 -11
- package/backend/dist/services/pluginSTTService.js.map +1 -1
- package/backend/dist/services/pluginService.d.ts.map +1 -1
- package/backend/dist/services/pluginService.js +26 -23
- package/backend/dist/services/pluginService.js.map +1 -1
- package/backend/dist/services/pluginTTSService.d.ts.map +1 -1
- package/backend/dist/services/pluginTTSService.js +34 -27
- package/backend/dist/services/pluginTTSService.js.map +1 -1
- package/backend/dist/services/pluginVariablesService.d.ts.map +1 -1
- package/backend/dist/services/pluginVariablesService.js +2 -2
- package/backend/dist/services/pluginVariablesService.js.map +1 -1
- package/backend/dist/services/pluginVideoGenerationService.d.ts.map +1 -1
- package/backend/dist/services/pluginVideoGenerationService.js +33 -24
- package/backend/dist/services/pluginVideoGenerationService.js.map +1 -1
- package/backend/dist/services/preferencesService.d.ts +5 -0
- package/backend/dist/services/preferencesService.d.ts.map +1 -1
- package/backend/dist/services/preferencesService.js +15 -10
- package/backend/dist/services/preferencesService.js.map +1 -1
- package/backend/dist/services/promptService.d.ts.map +1 -1
- package/backend/dist/services/promptService.js +4 -4
- package/backend/dist/services/promptService.js.map +1 -1
- package/backend/dist/services/skillService.d.ts.map +1 -1
- package/backend/dist/services/skillService.js +6 -6
- package/backend/dist/services/skillService.js.map +1 -1
- package/backend/dist/services/toolApprovalService.d.ts.map +1 -1
- package/backend/dist/services/toolApprovalService.js +2 -3
- package/backend/dist/services/toolApprovalService.js.map +1 -1
- package/backend/dist/services/toolServerService.d.ts.map +1 -1
- package/backend/dist/services/toolServerService.js +4 -5
- package/backend/dist/services/toolServerService.js.map +1 -1
- package/backend/dist/services/workApprovalService.d.ts.map +1 -1
- package/backend/dist/services/workApprovalService.js +3 -3
- package/backend/dist/services/workApprovalService.js.map +1 -1
- package/backend/dist/services/workModelProviderService.d.ts +13 -2
- package/backend/dist/services/workModelProviderService.d.ts.map +1 -1
- package/backend/dist/services/workModelProviderService.js +16 -5
- package/backend/dist/services/workModelProviderService.js.map +1 -1
- package/backend/dist/services/workPolicyService.d.ts.map +1 -1
- package/backend/dist/services/workPolicyService.js +2 -2
- package/backend/dist/services/workPolicyService.js.map +1 -1
- package/backend/dist/services/workTaskService.d.ts.map +1 -1
- package/backend/dist/services/workTaskService.js +7 -7
- package/backend/dist/services/workTaskService.js.map +1 -1
- package/backend/dist/storage.d.ts.map +1 -1
- package/backend/dist/storage.js +2 -2
- package/backend/dist/storage.js.map +1 -1
- package/backend/dist/types/index.d.ts +1 -0
- package/backend/dist/types/index.d.ts.map +1 -1
- package/backend/dist/types/index.js.map +1 -1
- package/backend/dist/utils/backgroundSettings.d.ts +7 -0
- package/backend/dist/utils/backgroundSettings.d.ts.map +1 -0
- package/backend/dist/utils/backgroundSettings.js +39 -0
- package/backend/dist/utils/backgroundSettings.js.map +1 -0
- package/backend/dist/utils/hash.js +1 -1
- package/backend/dist/utils/hash.js.map +1 -1
- package/backend/dist/utils/pluginDefinitionTrust.js +1 -1
- package/backend/dist/utils/providerFetch.d.ts +90 -0
- package/backend/dist/utils/providerFetch.d.ts.map +1 -0
- package/backend/dist/utils/providerFetch.js +316 -0
- package/backend/dist/utils/providerFetch.js.map +1 -0
- package/backend/dist/utils/websocketCloseCodes.d.ts +31 -0
- package/backend/dist/utils/websocketCloseCodes.d.ts.map +1 -0
- package/backend/dist/utils/websocketCloseCodes.js +134 -0
- package/backend/dist/utils/websocketCloseCodes.js.map +1 -0
- package/backend/dist/workScreenServer.d.ts.map +1 -1
- package/backend/dist/workScreenServer.js +7 -2
- package/backend/dist/workScreenServer.js.map +1 -1
- package/backend/package.json +5 -14
- package/bin/cli-args.js +71 -0
- package/bin/cli.js +14 -3
- package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
- package/frontend/dist/assets/index-Bv773ECu.js +17 -0
- package/frontend/dist/assets/index-CxFIHoRc.css +1 -0
- package/frontend/dist/index.html +26 -25
- package/frontend/dist/js/{ArtifactContainer-BB6A8cT5.js → ArtifactContainer-Cdrv0kJM.js} +1 -1
- package/frontend/dist/js/{ArtifactDemoPage-Bf1dW5Z3.js → ArtifactDemoPage-BcXPfD-W.js} +1 -1
- package/frontend/dist/js/{ArtifactSandboxFrame-DsZW0Axy.js → ArtifactSandboxFrame-5qM5QELi.js} +1 -1
- package/frontend/dist/js/ArtifactSlideOutPanel-tuGsj_HW.js +1 -0
- package/frontend/dist/js/AutomationModal-DL9kNzgL.js +1 -0
- package/frontend/dist/js/AutomationsPage-BMtR7wCN.js +1 -0
- package/frontend/dist/js/{AvatarUpload-gfZ9QWR3.js → AvatarUpload-DrfSzzOZ.js} +1 -1
- package/frontend/dist/js/{Button-BQ5JnUVj.js → Button-BxwbQ5xw.js} +1 -1
- package/frontend/dist/js/CalendarPage-BBkLlXa5.js +1 -0
- package/frontend/dist/js/ChannelsPage-C2KWU3sZ.js +1 -0
- package/frontend/dist/js/ChatPage-CWsAjCPP.js +14 -0
- package/frontend/dist/js/ConnectModels-flyZgito.js +1 -0
- package/frontend/dist/js/{EvaluationsPage-Cydglp6R.js → EvaluationsPage-DUntWRVo.js} +2 -2
- package/frontend/dist/js/{FirstTimeSetup-C5cc-bc9.js → FirstTimeSetup-CMQ000Hh.js} +1 -1
- package/frontend/dist/js/{GalleryPage-Dvq2GVoH.js → GalleryPage-DNSo3Q0p.js} +1 -1
- package/frontend/dist/js/HomePage-BOXsuk3g.js +1 -0
- package/frontend/dist/js/LanguageSwitcher-BIrE0C-N.js +1 -0
- package/frontend/dist/js/LibreClawPage-D97-90n6.js +1 -0
- package/frontend/dist/js/{Logo-BlcOFpac.js → Logo-BHz_QQlV.js} +1 -1
- package/frontend/dist/js/{LogoMark-CNeQ6eO9.js → LogoMark-BDqTSfCe.js} +1 -1
- package/frontend/dist/js/ModelManagerModals-DzEVkCuT.js +1 -0
- package/frontend/dist/js/NotesPage-VBGqE4aV.js +3 -0
- package/frontend/dist/js/{PasswordStrengthMeter-DVFLKG_-.js → PasswordStrengthMeter-DLQ5jaO_.js} +1 -1
- package/frontend/dist/js/{PersonasPage-DK9-SDZQ.js → PersonasPage-D8-4PyoM.js} +2 -2
- package/frontend/dist/js/PluginUsagePage-CHcweo11.js +1 -0
- package/frontend/dist/js/RichMessageContent-D7wqrY68.js +1 -0
- package/frontend/dist/js/RichMessageContent-yWLHf4YS.js +3 -0
- package/frontend/dist/js/SettingsModal-CxVt1ObR.js +19 -0
- package/frontend/dist/js/SettingsToggle-DdhWCK7-.js +1 -0
- package/frontend/dist/js/{ShareDialog-CZpU1itx.js → ShareDialog-J5zbwIWY.js} +1 -1
- package/frontend/dist/js/{SystemPage-BVaaKTRs.js → SystemPage-CEjZpR5I.js} +1 -1
- package/frontend/dist/js/UserManagementPanel-Dhwk4I0s.js +1 -0
- package/frontend/dist/js/{WhatsNewModal-CoFCdUpf.js → WhatsNewModal-5lCndkFc.js} +1 -1
- package/frontend/dist/js/WorkPage-c8xOdYyy.js +7 -0
- package/frontend/dist/js/api-CHEuZtwG.js +1 -0
- package/frontend/dist/js/{api-DQdJeQjd.js → api-DEOxp9DN.js} +1 -1
- package/frontend/dist/js/{appNavigation-DRM2Jr4r.js → appNavigation-DToyRu19.js} +1 -1
- package/frontend/dist/js/appStore-Bsxed1km.js +2 -0
- package/frontend/dist/js/appVersion-CgCvuf4s.js +1 -0
- package/frontend/dist/js/{ar-C8Izi_rT.js → ar-DNI77Stn.js} +1 -1
- package/frontend/dist/js/authStore-8w9Idb5o.js +4 -0
- package/frontend/dist/js/authStore-DwmcyHDN.js +1 -0
- package/frontend/dist/js/{bn-BJJgi-6Q.js → bn-u6oyZr4U.js} +1 -1
- package/frontend/dist/js/{chatStore-8jYk48hC.js → chatStore-lyGhYu24.js} +3 -3
- package/frontend/dist/js/composerStyles-DqJg-2vE.js +1 -0
- package/frontend/dist/js/{config-D4dduT3C.js → config-B5SBQwEe.js} +1 -1
- package/frontend/dist/js/{cs-DheVrMUl.js → cs-BIkJ6jwb.js} +1 -1
- package/frontend/dist/js/{da-BLszIs3a.js → da-DV3V6XJ_.js} +1 -1
- package/frontend/dist/js/{de-BvWdcr7T.js → de-DdcTQ-vn.js} +1 -1
- package/frontend/dist/js/{es-CQ8Yauda.js → es-Cw-ozFaX.js} +1 -1
- package/frontend/dist/js/{evaluationsApi-CBKjxZUn.js → evaluationsApi-BvkmhMgQ.js} +1 -1
- package/frontend/dist/js/{fr-BD5h-w8z.js → fr-Y2NfnlYR.js} +1 -1
- package/frontend/dist/js/{hi-IlRhC5IE.js → hi-BKU62_1Y.js} +1 -1
- package/frontend/dist/js/{id-DalGMQEJ.js → id-q6wo4InR.js} +1 -1
- package/frontend/dist/js/{is-DuQqmHeS.js → is-_B6QblCu.js} +1 -1
- package/frontend/dist/js/{it-DDaqAdB1.js → it-NUupXhzK.js} +1 -1
- package/frontend/dist/js/{ja-CYCu9F9Y.js → ja-BUvl9RXq.js} +1 -1
- package/frontend/dist/js/{ko-P3JZPOXE.js → ko-df4leR83.js} +1 -1
- package/frontend/dist/js/{messageCodeStyles-0_YpQDk4.js → messageCodeStyles-DchDafYE.js} +2 -2
- package/frontend/dist/js/{ms-B3ZIqlUn.js → ms-CN-7Q9S2.js} +1 -1
- package/frontend/dist/js/{nl-1Qpsmmz1.js → nl-OEm4uNIo.js} +1 -1
- package/frontend/dist/js/{pl-ErrMri3_.js → pl-B9pHpjg7.js} +1 -1
- package/frontend/dist/js/{pt-0T0R9AtX.js → pt-D3uaEKud.js} +1 -1
- package/frontend/dist/js/{ru-B34INyPg.js → ru-z9H07lhi.js} +1 -1
- package/frontend/dist/js/{sv-BSqDwAur.js → sv-GkQDA4wx.js} +1 -1
- package/frontend/dist/js/{teamEventStream-RoMYo102.js → teamEventStream-C0_UAzCG.js} +1 -1
- package/frontend/dist/js/{th-DK9M4-Iy.js → th-0hzCkDzt.js} +1 -1
- package/frontend/dist/js/{tr-DUrkEwr1.js → tr-CZDobfHQ.js} +1 -1
- package/frontend/dist/js/ui-BQojEu4t.js +2 -0
- package/frontend/dist/js/{ui-vendor-6y6qiSk5.js → ui-vendor-BvD5yGW1.js} +1 -1
- package/frontend/dist/js/{uk-B5DYTi0e.js → uk-BwspIPCI.js} +1 -1
- package/frontend/dist/js/{useChat-ImXXcy0q.js → useChat-CDllZR7C.js} +1 -1
- package/frontend/dist/js/useDialogFocus-BQLdAGYH.js +1 -0
- package/frontend/dist/js/{useTranslation-D0mJ4NnO.js → useTranslation-rdLmo6zV.js} +1 -1
- package/frontend/dist/js/{utils-Bn0RE9_8.js → utils-CKWltgs8.js} +1 -1
- package/frontend/dist/js/utils-vendor-Bla8iz2s.js +1 -0
- package/frontend/dist/js/{vi-CrtPQUIM.js → vi-Dipdv5ta.js} +1 -1
- package/frontend/dist/js/workApi-0L8fBGq1.js +6 -0
- package/frontend/dist/js/workApi-BjDBLsFh.js +1 -0
- package/frontend/dist/js/{zh-gbOKajYe.js → zh-CgdWmtP_.js} +1 -1
- package/package.json +6 -16
- package/plugins/codex-oauth.json +1 -0
- package/frontend/dist/assets/index-DegYzMyw.js +0 -70
- package/frontend/dist/assets/index-gKj8Y1JB.css +0 -1
- package/frontend/dist/js/ArtifactSlideOutPanel-Cartcixp.js +0 -1
- package/frontend/dist/js/AutomationModal-BI_3nFeg.js +0 -1
- package/frontend/dist/js/AutomationsPage-ChMXj4UG.js +0 -1
- package/frontend/dist/js/CalendarPage-Ce1ud5St.js +0 -1
- package/frontend/dist/js/ChannelsPage-kl8zJ2HA.js +0 -1
- package/frontend/dist/js/ChatPage-Bj98c6rc.js +0 -14
- package/frontend/dist/js/ConnectModels-CPftHmE3.js +0 -1
- package/frontend/dist/js/HomePage-zVjADRoX.js +0 -1
- package/frontend/dist/js/LibreClawPage-x0Qmtcnc.js +0 -1
- package/frontend/dist/js/ModelManagerModals-K1oiXMTv.js +0 -1
- package/frontend/dist/js/NotesPage-BnqBv-n1.js +0 -3
- package/frontend/dist/js/PluginUsagePage-DX9uxdRr.js +0 -1
- package/frontend/dist/js/RichMessageContent-BzfhfzQ4.js +0 -1
- package/frontend/dist/js/RichMessageContent-XMkRvBen.js +0 -3
- package/frontend/dist/js/SettingsModal-CMOwEhkG.js +0 -19
- package/frontend/dist/js/SettingsToggle-B7UynBmZ.js +0 -1
- package/frontend/dist/js/UserManagementPanel-BxAvybHj.js +0 -1
- package/frontend/dist/js/WorkPage-Du6llCSU.js +0 -7
- package/frontend/dist/js/api-CatP45JH.js +0 -1
- package/frontend/dist/js/appStore-BXbVcTeo.js +0 -2
- package/frontend/dist/js/appVersion-BUroqcki.js +0 -1
- package/frontend/dist/js/authStore-DkqtNSYP.js +0 -4
- package/frontend/dist/js/authStore-bqAN5v4N.js +0 -1
- package/frontend/dist/js/axios-CYkJpKn8.js +0 -1
- package/frontend/dist/js/ui-UU79S5lB.js +0 -2
- package/frontend/dist/js/useDictation-eMIAncoT.js +0 -1
- package/frontend/dist/js/utils-vendor-BbPbaAuC.js +0 -9
- package/frontend/dist/js/webauthnClient-CPSq528Q.js +0 -1
- package/frontend/dist/js/workApi-BM8qVq_w.js +0 -1
- package/frontend/dist/js/workApi-xhF57amo.js +0 -6
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2)format("woff2");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:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2)format("woff2");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:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2)format("woff2");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:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2)format("woff2");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:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2)format("woff2");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:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2)format("woff2");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:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2)format("woff2");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:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2)format("woff2");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:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2)format("woff2");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:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2)format("woff2");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:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2)format("woff2");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:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2)format("woff2");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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin-400-normal.woff2)format("woff2");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:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-latin-700-normal.woff2)format("woff2");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}*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-style:solid;border-width:0;border-color:rgb(var(--color-gray-200) / 1)}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI Variable,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.5}body{line-height:inherit;margin:0}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:JetBrains Mono,ui-monospace,Fira Code,SF Mono,Monaco,Inconsolata,Roboto Mono,source-code-pro,monospace;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}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:rgb(var(--color-gray-400) / 1)}textarea::-moz-placeholder{opacity:1;color:rgb(var(--color-gray-400) / 1)}input::placeholder,textarea::placeholder{opacity:1;color:rgb(var(--color-gray-400) / 1)}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width:475px){.\!container{max-width:475px!important}.container{max-width:475px}}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.\!relative{position:relative!important}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-x-3{left:.75rem;right:.75rem}.inset-y-0{top:0;bottom:0}.-bottom-0\.5{bottom:-.125rem}.-bottom-1{bottom:-.25rem}.-end-0\.5{inset-inline-end:-.125rem}.-end-1{inset-inline-end:-.25rem}.-right-0\.5{right:-.125rem}.-start-2{inset-inline-start:-.5rem}.-top-0\.5{top:-.125rem}.-top-1{top:-.25rem}.-top-1\.5{top:-.375rem}.-top-12{top:-3rem}.-top-2\.5{top:-.625rem}.bottom-0{bottom:0}.bottom-1\.5{bottom:.375rem}.bottom-16{bottom:4rem}.bottom-2{bottom:.5rem}.bottom-3{bottom:.75rem}.bottom-4{bottom:1rem}.bottom-\[16\%\]{bottom:16%}.bottom-full{bottom:100%}.end-0{inset-inline-end:0}.end-1\.5{inset-inline-end:.375rem}.end-2{inset-inline-end:.5rem}.end-3{inset-inline-end:.75rem}.end-4{inset-inline-end:1rem}.end-6{inset-inline-end:1.5rem}.end-\[3\.75rem\]{inset-inline-end:3.75rem}.left-0{left:0}.left-1\/2{left:50%}.left-3{left:.75rem}.left-4{left:1rem}.left-\[12\%\]{left:12%}.right-0{right:0}.right-0\.5{right:.125rem}.right-2{right:.5rem}.right-4{right:1rem}.right-\[10\%\]{right:10%}.start-0{inset-inline-start:0}.start-0\.5{inset-inline-start:.125rem}.start-16{inset-inline-start:4rem}.start-2{inset-inline-start:.5rem}.start-2\.5{inset-inline-start:.625rem}.start-3{inset-inline-start:.75rem}.start-4{inset-inline-start:1rem}.start-full{inset-inline-start:100%}.top-0{top:0}.top-0\.5{top:.125rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-10{top:2.5rem}.top-2{top:.5rem}.top-3{top:.75rem}.top-4{top:1rem}.top-6{top:1.5rem}.top-8{top:2rem}.top-\[18\%\]{top:18%}.top-\[4\.25rem\]{top:4.25rem}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[120\]{z-index:120}.z-\[1\]{z-index:1}.z-\[2147483646\]{z-index:2147483646}.z-\[2147483647\]{z-index:2147483647}.z-\[2\]{z-index:2}.z-\[55\]{z-index:55}.z-\[56\]{z-index:56}.z-\[60\]{z-index:60}.z-\[70\]{z-index:70}.z-\[75\]{z-index:75}.z-\[80\]{z-index:80}.z-\[9998\]{z-index:9998}.z-\[999999\]{z-index:999999}.z-\[99999\]{z-index:99999}.z-\[9999\]{z-index:9999}.\!m-0{margin:0!important}.m-0{margin:0}.m-4{margin:1rem}.m-auto{margin:auto}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-2\.5{margin-left:-.625rem;margin-right:-.625rem}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.-ms-2{margin-inline-start:-.5rem}.-mt-6{margin-top:-1.5rem}.-mt-8{margin-top:-2rem}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-7{margin-bottom:1.75rem}.mb-8{margin-bottom:2rem}.me-1{margin-inline-end:.25rem}.me-1\.5{margin-inline-end:.375rem}.me-2{margin-inline-end:.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.ms-0{margin-inline-start:0}.ms-1{margin-inline-start:.25rem}.ms-1\.5{margin-inline-start:.375rem}.ms-14{margin-inline-start:3.5rem}.ms-16{margin-inline-start:4rem}.ms-2{margin-inline-start:.5rem}.ms-3{margin-inline-start:.75rem}.ms-72{margin-inline-start:18rem}.ms-\[26px\]{margin-inline-start:26px}.ms-auto{margin-inline-start:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-\[7px\]{margin-top:7px}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.\!hidden{display:none!important}.hidden{display:none}.aspect-\[8\/5\]{aspect-ratio:8/5}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:16/9}.\!h-full{height:100%!important}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-72{height:18rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[18px\]{height:18px}.h-\[3\.25rem\]{height:3.25rem}.h-\[34px\]{height:34px}.h-\[38px\]{height:38px}.h-\[3px\]{height:3px}.h-\[52px\]{height:52px}.h-\[54px\]{height:54px}.h-\[min\(34rem\,76vh\)\]{height:min(34rem,76vh)}.h-\[min\(58vh\,30rem\)\]{height:min(58vh,30rem)}.h-\[min\(620px\,88vh\)\]{height:min(620px,88vh)}.h-auto{height:auto}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-32{max-height:8rem}.max-h-36{max-height:9rem}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-52{max-height:13rem}.max-h-56{max-height:14rem}.max-h-60{max-height:15rem}.max-h-64{max-height:16rem}.max-h-72{max-height:18rem}.max-h-80{max-height:20rem}.max-h-\[160px\]{max-height:160px}.max-h-\[25vh\]{max-height:25vh}.max-h-\[26rem\]{max-height:26rem}.max-h-\[32rem\]{max-height:32rem}.max-h-\[400px\]{max-height:400px}.max-h-\[60vh\]{max-height:60vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[75vh\]{max-height:75vh}.max-h-\[82vh\]{max-height:82vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[92vh\]{max-height:92vh}.max-h-\[95vh\]{max-height:95vh}.max-h-\[calc\(100dvh-1\.5rem\)\]{max-height:calc(100dvh - 1.5rem)}.max-h-\[calc\(100dvh-1rem\)\]{max-height:calc(100dvh - 1rem)}.max-h-\[calc\(100dvh-4rem\)\]{max-height:calc(100dvh - 4rem)}.max-h-\[calc\(85vh-60px\)\]{max-height:calc(85vh - 60px)}.min-h-0{min-height:0}.min-h-10{min-height:2.5rem}.min-h-11{min-height:2.75rem}.min-h-12{min-height:3rem}.min-h-24{min-height:6rem}.min-h-32{min-height:8rem}.min-h-4{min-height:1rem}.min-h-40{min-height:10rem}.min-h-48{min-height:12rem}.min-h-6{min-height:1.5rem}.min-h-9{min-height:2.25rem}.min-h-\[100px\]{min-height:100px}.min-h-\[110px\]{min-height:110px}.min-h-\[16rem\]{min-height:16rem}.min-h-\[24rem\]{min-height:24rem}.min-h-\[30rem\]{min-height:30rem}.min-h-\[50vh\]{min-height:50vh}.min-h-\[65px\]{min-height:65px}.min-h-\[72px\]{min-height:72px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0{width:0}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[18px\]{width:18px}.w-\[21rem\]{width:21rem}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0}.min-w-3\.5{min-width:.875rem}.min-w-32{min-width:8rem}.min-w-4{min-width:1rem}.min-w-40{min-width:10rem}.min-w-44{min-width:11rem}.min-w-5{min-width:1.25rem}.min-w-\[10rem\]{min-width:10rem}.min-w-\[140px\]{min-width:140px}.min-w-\[150px\]{min-width:150px}.min-w-\[160px\]{min-width:160px}.min-w-\[180px\]{min-width:180px}.min-w-\[200px\]{min-width:200px}.min-w-\[24rem\]{min-width:24rem}.min-w-\[42rem\]{min-width:42rem}.min-w-\[620px\]{min-width:620px}.min-w-\[640px\]{min-width:640px}.min-w-\[760px\]{min-width:760px}.min-w-\[min\(28rem\,80vw\)\]{min-width:min(28rem,80vw)}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-32{max-width:8rem}.max-w-3xl{max-width:48rem}.max-w-44{max-width:11rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[100px\]{max-width:100px}.max-w-\[120px\]{max-width:120px}.max-w-\[130px\]{max-width:130px}.max-w-\[14rem\]{max-width:14rem}.max-w-\[160px\]{max-width:160px}.max-w-\[16rem\]{max-width:16rem}.max-w-\[200px\]{max-width:200px}.max-w-\[210px\]{max-width:210px}.max-w-\[220px\]{max-width:220px}.max-w-\[230px\]{max-width:230px}.max-w-\[260px\]{max-width:260px}.max-w-\[280px\]{max-width:280px}.max-w-\[40\%\]{max-width:40%}.max-w-\[85\%\]{max-width:85%}.max-w-\[85vw\]{max-width:85vw}.max-w-\[88\%\]{max-width:88%}.max-w-\[90\%\]{max-width:90%}.max-w-\[90vw\]{max-width:90vw}.max-w-\[92\%\]{max-width:92%}.max-w-\[9rem\]{max-width:9rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-0{flex-basis:0}.basis-\[180px\]{flex-basis:180px}.border-collapse{border-collapse:collapse}.border-separate{border-collapse:separate}.border-spacing-0{--tw-border-spacing-x:0px;--tw-border-spacing-y:0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.origin-top-left{transform-origin:0 0}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-\[calc\(50\%\+3px\)\]{--tw-translate-y:calc(calc(50% + 3px) * -1);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y:-100%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x:.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x:1.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-6{--tw-translate-x:1.5rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x:100%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate:-90deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@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}}.animate-bounce{animation:1s infinite bounce}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:.18s cubic-bezier(.22,1,.36,1) fadeIn}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}@keyframes pulseSubtle{0%,to{opacity:1}50%{opacity:.8}}.animate-pulse-subtle{animation:2.4s ease-in-out infinite pulseSubtle}@keyframes scaleIn{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}.animate-scale-in{animation:.16s cubic-bezier(.22,1,.36,1) scaleIn}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.animate-shimmer{animation:2s linear infinite shimmer}@keyframes slideUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:.18s cubic-bezier(.22,1,.36,1) slideUp}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-col-resize{cursor:col-resize}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;user-select:none}.resize-none{resize:none}.resize-y{resize:vertical}.resize{resize:both}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{appearance:none}.columns-1{-moz-columns:1;columns:1}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[3\.5rem_repeat\(7\,1fr\)\]{grid-template-columns:3.5rem repeat(7,1fr)}.grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-7{gap:1.75rem}.gap-\[3px\]{gap:3px}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-1\.5{row-gap:.375rem}.gap-y-2{row-gap:.5rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(var(--color-gray-100) / var(--tw-divide-opacity,1))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(var(--color-gray-200) / var(--tw-divide-opacity,1))}.divide-gray-200\/70>:not([hidden])~:not([hidden]){border-color:rgb(var(--color-gray-200) / .7)}.divide-line>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(var(--color-line) / var(--tw-divide-opacity,1))}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overscroll-contain{overscroll-behavior:contain}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.\!rounded-lg{border-radius:.5rem!important}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl,.rounded-\[1\.5rem\]{border-radius:1.5rem}.rounded-\[10px\]{border-radius:10px}.rounded-\[24px\]{border-radius:24px}.rounded-\[3px\]{border-radius:3px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-e-lg{border-start-end-radius:.5rem;border-end-end-radius:.5rem}.rounded-ee-md{border-end-end-radius:.375rem}.rounded-ee-sm{border-end-end-radius:.125rem}.rounded-se-md{border-start-end-radius:.375rem}.\!border-0{border-width:0!important}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-4{border-width:4px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-e{border-inline-end-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-s{border-inline-start-width:1px}.border-s-2{border-inline-start-width:2px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.\!border-none{border-style:none!important}.border-none{border-style:none}.border-accent-200{--tw-border-opacity:1;border-color:rgb(var(--color-accent-200) / var(--tw-border-opacity,1))}.border-amber-200,.border-amber-500{--tw-border-opacity:1;border-color:rgb(255 123 82/var(--tw-border-opacity,1))}.border-amber-500\/20{border-color:#ff7b5233}.border-amber-500\/25{border-color:#ff7b5240}.border-black\/10{border-color:#0000001a}.border-black\/\[0\.04\]{border-color:#0000000a}.border-black\/\[0\.05\]{border-color:#0000000d}.border-black\/\[0\.06\]{border-color:#0000000f}.border-black\/\[0\.07\]{border-color:#00000012}.border-black\/\[0\.08\]{border-color:#00000014}.border-black\/\[0\.12\]{border-color:#0000001f}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.border-current{border-color:currentColor}.border-emerald-100{--tw-border-opacity:1;border-color:rgb(209 250 229/var(--tw-border-opacity,1))}.border-emerald-200\/50{border-color:#a7f3d080}.border-emerald-500{--tw-border-opacity:1;border-color:rgb(16 185 129/var(--tw-border-opacity,1))}.border-emerald-500\/50{border-color:#10b98180}.border-error-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-error-500{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.border-error-500\/20{border-color:#f8717133}.border-error-500\/30{border-color:#f871714d}.border-gray-100{--tw-border-opacity:1;border-color:rgb(var(--color-gray-100) / var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(var(--color-gray-200) / var(--tw-border-opacity,1))}.border-gray-200\/50{border-color:rgb(var(--color-gray-200) / .5)}.border-gray-200\/70{border-color:rgb(var(--color-gray-200) / .7)}.border-gray-200\/80{border-color:rgb(var(--color-gray-200) / .8)}.border-gray-300{--tw-border-opacity:1;border-color:rgb(var(--color-gray-300) / var(--tw-border-opacity,1))}.border-gray-950{--tw-border-opacity:1;border-color:rgb(var(--color-gray-950) / var(--tw-border-opacity,1))}.border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-green-300{--tw-border-opacity:1;border-color:rgb(134 239 172/var(--tw-border-opacity,1))}.border-line{--tw-border-opacity:1;border-color:rgb(var(--color-line) / var(--tw-border-opacity,1))}.border-line-strong{--tw-border-opacity:1;border-color:rgb(var(--color-line-strong) / var(--tw-border-opacity,1))}.border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.border-primary-100{--tw-border-opacity:1;border-color:rgb(var(--color-primary-100) / var(--tw-border-opacity,1))}.border-primary-200{--tw-border-opacity:1;border-color:rgb(var(--color-primary-200) / var(--tw-border-opacity,1))}.border-primary-200\/50{border-color:rgb(var(--color-primary-200) / .5)}.border-primary-200\/70{border-color:rgb(var(--color-primary-200) / .7)}.border-primary-300{--tw-border-opacity:1;border-color:rgb(var(--color-primary-300) / var(--tw-border-opacity,1))}.border-primary-300\/70{border-color:rgb(var(--color-primary-300) / .7)}.border-primary-400{--tw-border-opacity:1;border-color:rgb(var(--color-primary-400) / var(--tw-border-opacity,1))}.border-primary-400\/50{border-color:rgb(var(--color-primary-400) / .5)}.border-primary-500{--tw-border-opacity:1;border-color:rgb(var(--color-primary-500) / var(--tw-border-opacity,1))}.border-primary-500\/10{border-color:rgb(var(--color-primary-500) / .1)}.border-primary-500\/15{border-color:rgb(var(--color-primary-500) / .15)}.border-primary-500\/20{border-color:rgb(var(--color-primary-500) / .2)}.border-primary-500\/30{border-color:rgb(var(--color-primary-500) / .3)}.border-primary-500\/40{border-color:rgb(var(--color-primary-500) / .4)}.border-primary-600{--tw-border-opacity:1;border-color:rgb(var(--color-primary-600) / var(--tw-border-opacity,1))}.border-primary-600\/70{border-color:rgb(var(--color-primary-600) / .7)}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-red-500\/50{border-color:#ef444480}.border-surface{--tw-border-opacity:1;border-color:rgb(var(--color-surface) / var(--tw-border-opacity,1))}.border-transparent{border-color:#0000}.border-warning-500{--tw-border-opacity:1;border-color:rgb(255 123 82/var(--tw-border-opacity,1))}.border-warning-500\/25{border-color:#ff7b5240}.border-warning-500\/30{border-color:#ff7b524d}.border-warning-500\/40{border-color:#ff7b5266}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.border-white\/15{border-color:#ffffff26}.border-white\/20{border-color:#fff3}.border-white\/30{border-color:#ffffff4d}.border-white\/40{border-color:#fff6}.border-yellow-200,.border-yellow-300{--tw-border-opacity:1;border-color:rgb(255 123 82/var(--tw-border-opacity,1))}.border-t-primary-500{--tw-border-opacity:1;border-top-color:rgb(var(--color-primary-500) / var(--tw-border-opacity,1))}.border-t-transparent{border-top-color:#0000}.border-t-white{--tw-border-opacity:1;border-top-color:rgb(255 255 255/var(--tw-border-opacity,1))}.\!bg-transparent{background-color:#0000!important}.bg-\[rgb\(255\,204\,0\)\]{--tw-bg-opacity:1;background-color:rgb(255 204 0/var(--tw-bg-opacity,1))}.bg-\[rgb\(255\,61\,129\)\]{--tw-bg-opacity:1;background-color:rgb(255 61 129/var(--tw-bg-opacity,1))}.bg-\[rgb\(255\,61\,129\)\]\/\[0\.10\]{background-color:#ff3d811a}.bg-\[rgb\(48\,121\,255\)\]{--tw-bg-opacity:1;background-color:rgb(48 121 255/var(--tw-bg-opacity,1))}.bg-\[rgb\(76\,212\,117\)\]{--tw-bg-opacity:1;background-color:rgb(76 212 117/var(--tw-bg-opacity,1))}.bg-\[rgb\(76\,212\,117\)\]\/\[0\.12\]{background-color:#4cd4751f}.bg-\[var\(--overlay-mask\)\]{background-color:var(--overlay-mask)}.bg-accent-50\/40{background-color:rgb(var(--color-accent-50) / .4)}.bg-amber-100,.bg-amber-400,.bg-amber-50,.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(255 123 82/var(--tw-bg-opacity,1))}.bg-amber-500\/10{background-color:#ff7b521a}.bg-amber-500\/15{background-color:#ff7b5226}.bg-amber-500\/20{background-color:#ff7b5233}.bg-amber-500\/80{background-color:#ff7b52cc}.bg-amber-500\/90{background-color:#ff7b52e6}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/10{background-color:#0000001a}.bg-black\/15{background-color:#00000026}.bg-black\/20{background-color:#0003}.bg-black\/25{background-color:#00000040}.bg-black\/30{background-color:#0000004d}.bg-black\/35{background-color:#00000059}.bg-black\/50{background-color:#00000080}.bg-black\/55{background-color:#0000008c}.bg-black\/60{background-color:#0009}.bg-black\/80{background-color:#000c}.bg-black\/85{background-color:#000000d9}.bg-black\/90{background-color:#000000e6}.bg-black\/\[0\.02\]{background-color:#00000005}.bg-black\/\[0\.03\]{background-color:#00000008}.bg-black\/\[0\.04\]{background-color:#0000000a}.bg-black\/\[0\.05\]{background-color:#0000000d}.bg-black\/\[0\.06\]{background-color:#0000000f}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-50\/70{background-color:#eff6ffb3}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-canvas{--tw-bg-opacity:1;background-color:rgb(var(--color-canvas) / var(--tw-bg-opacity,1))}.bg-current{background-color:currentColor}.bg-dark-50{--tw-bg-opacity:1;background-color:rgb(var(--color-dark-50) / var(--tw-bg-opacity,1))}.bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.bg-emerald-50{--tw-bg-opacity:1;background-color:rgb(236 253 245/var(--tw-bg-opacity,1))}.bg-emerald-500{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-emerald-500\/15{background-color:#10b98126}.bg-emerald-500\/80{background-color:#10b981cc}.bg-emerald-600{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.bg-error-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-error-500{--tw-bg-opacity:1;background-color:rgb(248 113 113/var(--tw-bg-opacity,1))}.bg-error-500\/10{background-color:#f871711a}.bg-error-500\/15{background-color:#f8717126}.bg-error-600{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-100) / var(--tw-bg-opacity,1))}.bg-gray-100\/60{background-color:rgb(var(--color-gray-100) / .6)}.bg-gray-100\/70{background-color:rgb(var(--color-gray-100) / .7)}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-200) / var(--tw-bg-opacity,1))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-300) / var(--tw-bg-opacity,1))}.bg-gray-300\/60{background-color:rgb(var(--color-gray-300) / .6)}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-400) / var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-50) / var(--tw-bg-opacity,1))}.bg-gray-50\/70{background-color:rgb(var(--color-gray-50) / .7)}.bg-gray-50\/80{background-color:rgb(var(--color-gray-50) / .8)}.bg-gray-50\/\[0\.88\]{background-color:rgb(var(--color-gray-50) / .88)}.bg-gray-500\/10{background-color:rgb(var(--color-gray-500) / .1)}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-900) / var(--tw-bg-opacity,1))}.bg-gray-900\/\[0\.025\]{background-color:rgb(var(--color-gray-900) / .025)}.bg-gray-950{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-950) / var(--tw-bg-opacity,1))}.bg-gray-950\/55{background-color:rgb(var(--color-gray-950) / .55)}.bg-gray-950\/\[0\.06\]{background-color:rgb(var(--color-gray-950) / .06)}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-50\/50{background-color:#f0fdf480}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-hover-solid{--tw-bg-opacity:1;background-color:rgb(var(--interactive-hover-solid) / var(--tw-bg-opacity,1))}.bg-ink{--tw-bg-opacity:1;background-color:rgb(var(--color-ink) / var(--tw-bg-opacity,1))}.bg-ink-subtle{--tw-bg-opacity:1;background-color:rgb(var(--color-ink-subtle) / var(--tw-bg-opacity,1))}.bg-ink-subtle\/50{background-color:rgb(var(--color-ink-subtle) / .5)}.bg-interactive-active{background-color:var(--interactive-active)}.bg-lime-500{--tw-bg-opacity:1;background-color:rgb(132 204 22/var(--tw-bg-opacity,1))}.bg-line{--tw-bg-opacity:1;background-color:rgb(var(--color-line) / var(--tw-bg-opacity,1))}.bg-line-strong{--tw-bg-opacity:1;background-color:rgb(var(--color-line-strong) / var(--tw-bg-opacity,1))}.bg-nav-active{--tw-bg-opacity:1;background-color:rgb(var(--nav-item-active) / var(--tw-bg-opacity,1))}.bg-primary-100{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-100) / var(--tw-bg-opacity,1))}.bg-primary-400{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-400) / var(--tw-bg-opacity,1))}.bg-primary-50{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-50) / var(--tw-bg-opacity,1))}.bg-primary-50\/50{background-color:rgb(var(--color-primary-50) / .5)}.bg-primary-50\/60{background-color:rgb(var(--color-primary-50) / .6)}.bg-primary-50\/80{background-color:rgb(var(--color-primary-50) / .8)}.bg-primary-500{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity,1))}.bg-primary-500\/10{background-color:rgb(var(--color-primary-500) / .1)}.bg-primary-500\/15{background-color:rgb(var(--color-primary-500) / .15)}.bg-primary-500\/\[0\.035\]{background-color:rgb(var(--color-primary-500) / .035)}.bg-primary-500\/\[0\.04\]{background-color:rgb(var(--color-primary-500) / .04)}.bg-primary-500\/\[0\.06\]{background-color:rgb(var(--color-primary-500) / .06)}.bg-primary-600{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-600) / var(--tw-bg-opacity,1))}.bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-red-500\/15{background-color:#ef444426}.bg-red-500\/80{background-color:#ef4444cc}.bg-red-600\/95{background-color:#dc2626f2}.bg-rose-500{--tw-bg-opacity:1;background-color:rgb(244 63 94/var(--tw-bg-opacity,1))}.bg-sidebar{--tw-bg-opacity:1;background-color:rgb(var(--color-sidebar) / var(--tw-bg-opacity,1))}.bg-sidebar\/60{background-color:rgb(var(--color-sidebar) / .6)}.bg-sidebar\/75{background-color:rgb(var(--color-sidebar) / .75)}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.bg-success-500{--tw-bg-opacity:1;background-color:rgb(52 211 153/var(--tw-bg-opacity,1))}.bg-surface{--tw-bg-opacity:1;background-color:rgb(var(--color-surface) / var(--tw-bg-opacity,1))}.bg-surface-overlay{--tw-bg-opacity:1;background-color:rgb(var(--color-surface-overlay) / var(--tw-bg-opacity,1))}.bg-surface-overlay\/90{background-color:rgb(var(--color-surface-overlay) / .9)}.bg-surface-overlay\/95{background-color:rgb(var(--color-surface-overlay) / .95)}.bg-surface-raised{--tw-bg-opacity:1;background-color:rgb(var(--color-surface-raised) / var(--tw-bg-opacity,1))}.bg-surface-raised\/70{background-color:rgb(var(--color-surface-raised) / .7)}.bg-surface-raised\/75{background-color:rgb(var(--color-surface-raised) / .75)}.bg-surface-raised\/85{background-color:rgb(var(--color-surface-raised) / .85)}.bg-surface-raised\/95{background-color:rgb(var(--color-surface-raised) / .95)}.bg-surface-subtle{--tw-bg-opacity:1;background-color:rgb(var(--color-surface-subtle) / var(--tw-bg-opacity,1))}.bg-surface-subtle\/50{background-color:rgb(var(--color-surface-subtle) / .5)}.bg-surface-subtle\/70{background-color:rgb(var(--color-surface-subtle) / .7)}.bg-surface\/55{background-color:rgb(var(--color-surface) / .55)}.bg-surface\/65{background-color:rgb(var(--color-surface) / .65)}.bg-surface\/70{background-color:rgb(var(--color-surface) / .7)}.bg-surface\/80{background-color:rgb(var(--color-surface) / .8)}.bg-surface\/90{background-color:rgb(var(--color-surface) / .9)}.bg-surface\/95{background-color:rgb(var(--color-surface) / .95)}.bg-transparent{background-color:#0000}.bg-violet-500{--tw-bg-opacity:1;background-color:rgb(139 92 246/var(--tw-bg-opacity,1))}.bg-warning-500{--tw-bg-opacity:1;background-color:rgb(255 123 82/var(--tw-bg-opacity,1))}.bg-warning-500\/10{background-color:#ff7b521a}.bg-warning-500\/15{background-color:#ff7b5226}.bg-warning-500\/20{background-color:#ff7b5233}.bg-warning-500\/\[0\.06\]{background-color:#ff7b520f}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/20{background-color:#fff3}.bg-white\/30{background-color:#ffffff4d}.bg-white\/40{background-color:#fff6}.bg-white\/45{background-color:#ffffff73}.bg-white\/50{background-color:#ffffff80}.bg-white\/55{background-color:#ffffff8c}.bg-white\/60{background-color:#fff9}.bg-white\/70{background-color:#ffffffb3}.bg-white\/75{background-color:#ffffffbf}.bg-white\/80{background-color:#fffc}.bg-white\/90{background-color:#ffffffe6}.bg-white\/95{background-color:#fffffff2}.bg-white\/\[0\.98\]{background-color:#fffffffa}.bg-yellow-500\/10{background-color:#ff7b521a}.bg-yellow-500\/20{background-color:#ff7b5233}.bg-opacity-0{--tw-bg-opacity:0}.bg-opacity-50{--tw-bg-opacity:.5}.bg-gradient-to-br{background-image:linear-gradient(to bottom right, var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right, var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top, var(--tw-gradient-stops))}.from-black\/80{--tw-gradient-from:#000c var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-emerald-500{--tw-gradient-from:#10b981 var(--tw-gradient-from-position);--tw-gradient-to:#10b98100 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-400{--tw-gradient-from:rgb(var(--color-gray-400) / 1) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--color-gray-400) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-ink-subtle{--tw-gradient-from:rgb(var(--color-ink-subtle) / 1) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--color-ink-subtle) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary-100{--tw-gradient-from:rgb(var(--color-primary-100) / 1) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--color-primary-100) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary-400{--tw-gradient-from:rgb(var(--color-primary-400) / 1) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--color-primary-400) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary-50{--tw-gradient-from:rgb(var(--color-primary-50) / 1) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--color-primary-50) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary-500\/10{--tw-gradient-from:rgb(var(--color-primary-500) / .1) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--color-primary-500) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position);--tw-gradient-to:#a855f700 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.via-black\/20{--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), #0003 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-gray-900{--tw-gradient-to:rgb(var(--color-gray-900) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), rgb(var(--color-gray-900) / 1) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-ink{--tw-gradient-to:rgb(var(--color-ink) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), rgb(var(--color-ink) / 1) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-primary-500{--tw-gradient-to:rgb(var(--color-primary-500) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), rgb(var(--color-primary-500) / 1) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-cyan-500\/10{--tw-gradient-to:#06b6d41a var(--tw-gradient-to-position)}.to-gray-400{--tw-gradient-to:rgb(var(--color-gray-400) / 1) var(--tw-gradient-to-position)}.to-ink-subtle{--tw-gradient-to:rgb(var(--color-ink-subtle) / 1) var(--tw-gradient-to-position)}.to-primary-100\/50{--tw-gradient-to:rgb(var(--color-primary-100) / .5) var(--tw-gradient-to-position)}.to-primary-200{--tw-gradient-to:rgb(var(--color-primary-200) / 1) var(--tw-gradient-to-position)}.to-primary-500{--tw-gradient-to:rgb(var(--color-primary-500) / 1) var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to:#9333ea var(--tw-gradient-to-position)}.to-teal-500{--tw-gradient-to:#14b8a6 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.bg-\[length\:200\%_100\%\]{background-size:200% 100%}.bg-cover{background-size:cover}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-center{background-position:50%}.fill-amber-500{fill:#ff7b52}.fill-blue-500{fill:#3b82f6}.fill-current{fill:currentColor}.fill-emerald-500{fill:#10b981}.fill-gray-400{fill:rgb(var(--color-gray-400) / 1)}.fill-gray-500{fill:rgb(var(--color-gray-500) / 1)}.fill-gray-950\/\[0\.06\]{fill:rgb(var(--color-gray-950) / .06)}.fill-ink{fill:rgb(var(--color-ink) / 1)}.fill-rose-500{fill:#f43f5e}.fill-violet-500{fill:#8b5cf6}.fill-white{fill:#fff}.stroke-gray-200{stroke:rgb(var(--color-gray-200) / 1)}.stroke-gray-500{stroke:rgb(var(--color-gray-500) / 1)}.stroke-primary-500{stroke:rgb(var(--color-primary-500) / 1)}.stroke-transparent{stroke:#0000}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.\!p-0{padding:0!important}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.\!px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.\!pb-2{padding-bottom:.5rem!important}.\!pt-1\.5{padding-top:.375rem!important}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-12{padding-bottom:3rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-2\.5{padding-bottom:.625rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-7{padding-bottom:1.75rem}.pe-1{padding-inline-end:.25rem}.pe-1\.5{padding-inline-end:.375rem}.pe-10{padding-inline-end:2.5rem}.pe-11{padding-inline-end:2.75rem}.pe-12{padding-inline-end:3rem}.pe-2{padding-inline-end:.5rem}.pe-2\.5{padding-inline-end:.625rem}.pe-3{padding-inline-end:.75rem}.pe-4{padding-inline-end:1rem}.pe-9{padding-inline-end:2.25rem}.pl-10{padding-left:2.5rem}.pl-9{padding-left:2.25rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.ps-1{padding-inline-start:.25rem}.ps-10{padding-inline-start:2.5rem}.ps-14{padding-inline-start:3.5rem}.ps-2\.5{padding-inline-start:.625rem}.ps-3{padding-inline-start:.75rem}.ps-3\.5{padding-inline-start:.875rem}.ps-4{padding-inline-start:1rem}.ps-7{padding-inline-start:1.75rem}.ps-8{padding-inline-start:2rem}.ps-9{padding-inline-start:2.25rem}.pt-0{padding-top:0}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-10{padding-top:2.5rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-24{padding-top:6rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-7{padding-top:1.75rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-start{text-align:start}.text-end{text-align:end}.align-top{vertical-align:top}.align-bottom{vertical-align:bottom}.align-text-bottom{vertical-align:text-bottom}.font-mono{font-family:JetBrains Mono,ui-monospace,Fira Code,SF Mono,Monaco,Inconsolata,Roboto Mono,source-code-pro,monospace}.font-sans{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI Variable,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.\!text-sm{font-size:.8125rem!important;line-height:1.25rem!important}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[0\.85em\]{font-size:.85em}.text-\[0\.9375rem\]{font-size:.9375rem}.text-\[0\.9rem\]{font-size:.9rem}.text-\[1\.0625rem\]{font-size:1.0625rem}.text-\[1\.625rem\]{font-size:1.625rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[2\.5rem\]{font-size:2.5rem}.text-\[2\.6rem\]{font-size:2.6rem}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[clamp\(1\.75rem\,3\.5vw\,2\.35rem\)\]{font-size:clamp(1.75rem,3.5vw,2.35rem)}.text-base{font-size:.9375rem;line-height:1.625}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.8125rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-\[1\.02\]{line-height:1.02}.leading-\[1\.05\]{line-height:1.05}.leading-\[1\.65\]{line-height:1.65}.leading-\[22px\]{line-height:22px}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[-0\.005em\]{letter-spacing:-.005em}.tracking-\[-0\.01em\]{letter-spacing:-.01em}.tracking-\[-0\.025em\]{letter-spacing:-.025em}.tracking-\[-0\.02em\]{letter-spacing:-.02em}.tracking-\[-0\.035em\]{letter-spacing:-.035em}.tracking-\[-0\.03em\]{letter-spacing:-.03em}.tracking-\[-0\.04em\]{letter-spacing:-.04em}.tracking-\[0\.08em\]{letter-spacing:.08em}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-\[0\.1em\]{letter-spacing:.1em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-\[\#0D0D0C\]{--tw-text-opacity:1;color:rgb(13 13 12/var(--tw-text-opacity,1))}.text-\[\#3d120c\]{--tw-text-opacity:1;color:rgb(61 18 12/var(--tw-text-opacity,1))}.text-\[rgb\(255\,61\,129\)\]{--tw-text-opacity:1;color:rgb(255 61 129/var(--tw-text-opacity,1))}.text-\[rgb\(46\,164\,79\)\]{--tw-text-opacity:1;color:rgb(46 164 79/var(--tw-text-opacity,1))}.text-\[rgb\(48\,121\,255\)\]{--tw-text-opacity:1;color:rgb(48 121 255/var(--tw-text-opacity,1))}.text-\[rgb\(76\,212\,117\)\]{--tw-text-opacity:1;color:rgb(76 212 117/var(--tw-text-opacity,1))}.text-accent-500{--tw-text-opacity:1;color:rgb(var(--color-accent-500) / var(--tw-text-opacity,1))}.text-amber-500,.text-amber-600,.text-amber-700,.text-amber-800{--tw-text-opacity:1;color:rgb(255 123 82/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-dark-900{--tw-text-opacity:1;color:rgb(var(--color-dark-900) / var(--tw-text-opacity,1))}.text-emerald-500{--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity,1))}.text-emerald-600{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}.text-emerald-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity,1))}.text-error-500{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-error-600{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-error-700{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(var(--color-gray-300) / var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(var(--color-gray-400) / var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(var(--color-gray-500) / var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(var(--color-gray-600) / var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(var(--color-gray-700) / var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(var(--color-gray-800) / var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(var(--color-gray-900) / var(--tw-text-opacity,1))}.text-gray-950{--tw-text-opacity:1;color:rgb(var(--color-gray-950) / var(--tw-text-opacity,1))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.text-ink{--tw-text-opacity:1;color:rgb(var(--color-ink) / var(--tw-text-opacity,1))}.text-ink-inverse{--tw-text-opacity:1;color:rgb(var(--color-ink-inverse) / var(--tw-text-opacity,1))}.text-ink-muted{--tw-text-opacity:1;color:rgb(var(--color-ink-muted) / var(--tw-text-opacity,1))}.text-ink-subtle{--tw-text-opacity:1;color:rgb(var(--color-ink-subtle) / var(--tw-text-opacity,1))}.text-lime-600{--tw-text-opacity:1;color:rgb(101 163 13/var(--tw-text-opacity,1))}.text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.text-primary-500{--tw-text-opacity:1;color:rgb(var(--color-primary-500) / var(--tw-text-opacity,1))}.text-primary-600{--tw-text-opacity:1;color:rgb(var(--color-primary-600) / var(--tw-text-opacity,1))}.text-primary-600\/70{color:rgb(var(--color-primary-600) / .7)}.text-primary-700{--tw-text-opacity:1;color:rgb(var(--color-primary-700) / var(--tw-text-opacity,1))}.text-primary-800{--tw-text-opacity:1;color:rgb(var(--color-primary-800) / var(--tw-text-opacity,1))}.text-primary-800\/90{color:rgb(var(--color-primary-800) / .9)}.text-primary-900{--tw-text-opacity:1;color:rgb(var(--color-primary-900) / var(--tw-text-opacity,1))}.text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.text-success-600{--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity,1))}.text-transparent{color:#0000}.text-warning-500,.text-warning-600,.text-warning-700{--tw-text-opacity:1;color:rgb(255 123 82/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/40{color:#fff6}.text-white\/60{color:#fff9}.text-white\/65{color:#ffffffa6}.text-white\/70{color:#ffffffb3}.text-white\/80{color:#fffc}.text-yellow-500,.text-yellow-600{--tw-text-opacity:1;color:rgb(255 123 82/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.decoration-ink-subtle\/40{-webkit-text-decoration-color:rgb(var(--color-ink-subtle) / .4);text-decoration-color:rgb(var(--color-ink-subtle) / .4)}.decoration-primary-300{-webkit-text-decoration-color:rgb(var(--color-primary-300) / 1);text-decoration-color:rgb(var(--color-primary-300) / 1)}.decoration-red-400{text-decoration-color:#f87171}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.placeholder-gray-400::placeholder{--tw-placeholder-opacity:1;color:rgb(var(--color-gray-400) / var(--tw-placeholder-opacity,1))}.placeholder-gray-500::placeholder{--tw-placeholder-opacity:1;color:rgb(var(--color-gray-500) / var(--tw-placeholder-opacity,1))}.caret-ink{caret-color:rgb(var(--color-ink) / 1)}.accent-primary-500{accent-color:rgb(var(--color-primary-500) / 1)}.accent-primary-600{accent-color:rgb(var(--color-primary-600) / 1)}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-55{opacity:.55}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.\!shadow-none{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)!important}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_0_12px_rgb\(var\(--color-primary-500\)\/0\.55\)\]{--tw-shadow:0 0 12px rgb(var(--color-primary-500)/.55);--tw-shadow-colored:0 0 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_0_8px_rgb\(var\(--color-primary-500\)\/0\.6\)\]{--tw-shadow:0 0 8px rgb(var(--color-primary-500)/.6);--tw-shadow-colored:0 0 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_12px_32px_rgba\(13\,17\,23\,0\.1\)\]{--tw-shadow:0 12px 32px #0d11171a;--tw-shadow-colored:0 12px 32px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_12px_40px_rgba\(15\,23\,42\,0\.08\)\]{--tw-shadow:0 12px 40px #0f172a14;--tw-shadow-colored:0 12px 40px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_16px_48px_rgba\(15\,23\,42\,0\.16\)\]{--tw-shadow:0 16px 48px #0f172a29;--tw-shadow-colored:0 16px 48px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_16px_48px_rgba\(15\,23\,42\,0\.18\)\]{--tw-shadow:0 16px 48px #0f172a2e;--tw-shadow-colored:0 16px 48px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_18px_60px_rgba\(0\,0\,0\,0\.22\)\]{--tw-shadow:0 18px 60px #00000038;--tw-shadow-colored:0 18px 60px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_20px_70px_rgba\(0\,0\,0\,0\.3\)\]{--tw-shadow:0 20px 70px #0000004d;--tw-shadow-colored:0 20px 70px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_24px_80px_rgba\(0\,0\,0\,0\.24\)\]{--tw-shadow:0 24px 80px #0000003d;--tw-shadow-colored:0 24px 80px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_24px_80px_rgba\(15\,23\,42\,0\.12\)\]{--tw-shadow:0 24px 80px #0f172a1f;--tw-shadow-colored:0 24px 80px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_30px_100px_rgba\(0\,0\,0\,0\.28\)\]{--tw-shadow:0 30px 100px #00000047;--tw-shadow-colored:0 30px 100px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_8px_28px_rgba\(15\,23\,42\,0\.12\)\]{--tw-shadow:0 8px 28px #0f172a1f;--tw-shadow-colored:0 8px 28px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-card{--tw-shadow:0 1px 2px 0 #00000009;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 #0000000d;--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-lv2{--tw-shadow:var(--shadow-lv2);--tw-shadow-colored:var(--shadow-lv2);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-lv3{--tw-shadow:var(--shadow-lv3);--tw-shadow-colored:var(--shadow-lv3);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-overlay{--tw-shadow:0 24px 70px -28px #00000047, 0 2px 8px #0000000f;--tw-shadow-colored:0 24px 70px -28px var(--tw-shadow-color), 0 2px 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-subtle{--tw-shadow:0 1px 2px 0 #00000009;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-inset{--tw-ring-inset:inset}.ring-black\/10{--tw-ring-color:#0000001a}.ring-black\/20{--tw-ring-color:#0003}.ring-black\/5{--tw-ring-color:#0000000d}.ring-black\/\[0\.04\]{--tw-ring-color:#0000000a}.ring-black\/\[0\.06\]{--tw-ring-color:#0000000f}.ring-emerald-500{--tw-ring-opacity:1;--tw-ring-color:rgb(16 185 129/var(--tw-ring-opacity,1))}.ring-gray-100{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-gray-100) / var(--tw-ring-opacity,1))}.ring-ink{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-ink) / var(--tw-ring-opacity,1))}.ring-primary-200{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-200) / var(--tw-ring-opacity,1))}.ring-primary-500{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-500) / var(--tw-ring-opacity,1))}.ring-primary-500\/10{--tw-ring-color:rgb(var(--color-primary-500) / .1)}.ring-primary-500\/40{--tw-ring-color:rgb(var(--color-primary-500) / .4)}.ring-red-500{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.ring-white{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity,1))}.ring-offset-2{--tw-ring-offset-width:2px}.ring-offset-surface{--tw-ring-offset-color:rgb(var(--color-surface) / 1)}.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)}.blur-3xl{--tw-blur:blur(64px);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)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur:blur(24px);-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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[background-color\,border-color\,box-shadow\,color\]{transition-property:background-color,border-color,box-shadow,color;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[background-color\,border-color\,color\,box-shadow\,opacity\]{transition-property:background-color,border-color,color,box-shadow,opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[background-color\,border-color\]{transition-property:background-color,border-color;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[background-color\,color\,box-shadow\]{transition-property:background-color,color,box-shadow;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[border-color\,background-color\]{transition-property:border-color,background-color;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[border-color\,box-shadow\,background-color\]{transition-property:border-color,box-shadow,background-color;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[border-color\,transform\]{transition-property:border-color,transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[color\,opacity\]{transition-property:color,opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[height\,background-color\,opacity\]{transition-property:height,background-color,opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[margin\,background-color\]{transition-property:margin,background-color;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[margin\]{transition-property:margin;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[width\,background-color\,opacity\]{transition-property:width,background-color,opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[width\,transform\,background-color\]{transition-property:width,transform,background-color;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[width\]{transition-property:width;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-transform{will-change:transform}.range-slider{appearance:none;background:rgb(var(--color-line));width:100%;height:4px;accent-color:rgb(var(--color-primary-600));border-radius:9999px;outline:none}.range-slider::-webkit-slider-thumb{appearance:none;background:rgb(var(--color-primary-600));cursor:pointer;border:2px solid rgb(var(--color-surface-raised));border-radius:50%;width:16px;height:16px;transition:transform .15s;box-shadow:0 1px 3px #00000024}.range-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.range-slider::-moz-range-thumb{background:rgb(var(--color-primary-600));cursor:pointer;border:2px solid rgb(var(--color-surface-raised));border-radius:50%;width:16px;height:16px;transition:transform .15s;box-shadow:0 1px 3px #00000024}.range-slider::-moz-range-thumb:hover{transform:scale(1.15)}.range-slider:focus-visible{box-shadow:0 0 0 3px rgb(var(--color-primary-500) / .25)}.slider{appearance:none;cursor:pointer;background:0 0;background:rgb(var(--color-line));position:relative}.slider::-webkit-slider-track{cursor:pointer;background:rgb(var(--color-line));border-radius:4px;width:100%;height:8px;transition:background-color .2s}.slider::-webkit-slider-thumb{appearance:none;background:rgb(var(--color-primary-500));cursor:pointer;border:2px solid rgb(var(--color-surface-raised));border-radius:50%;width:20px;height:20px;transition:all .2s;box-shadow:0 2px 4px #00000024}.slider::-webkit-slider-thumb:hover{background:rgb(var(--color-primary-600));transform:scale(1.1)}.slider::-moz-range-track{cursor:pointer;background:rgb(var(--color-line));border:none;border-radius:4px;width:100%;height:8px}.slider::-moz-range-thumb{background:rgb(var(--color-primary-500));cursor:pointer;border:2px solid rgb(var(--color-surface-raised));border-radius:50%;width:20px;height:20px;transition:all .2s;box-shadow:0 2px 4px #00000024}.slider::-moz-range-thumb:hover{background:rgb(var(--color-primary-600));transform:scale(1.1)}.slider:before{content:"";height:100%;width:var(--progress,50%);background:rgb(var(--color-primary-500));pointer-events:none;border-radius:4px;transition:width .2s;position:absolute;top:0;left:0}.\[-ms-overflow-style\:none\]{-ms-overflow-style:none}.\[-webkit-overflow-scrolling\:touch\]{-webkit-overflow-scrolling:touch}.\[animation-delay\:160ms\]{animation-delay:.16s}.\[animation-delay\:320ms\]{animation-delay:.32s}.\[contain-intrinsic-size\:auto_160px\]{contain-intrinsic-size:auto 160px}.\[content-visibility\:auto\]{content-visibility:auto}.\[scrollbar-width\:none\]{scrollbar-width:none}.libre-brand{font-optical-sizing:auto;letter-spacing:-.045em;font-weight:650;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,sans-serif!important}:root{font-synthesis:none;font-optical-sizing:auto;font-feature-settings:"cv02" 1, "cv03" 1, "cv04" 1, "cv11" 1;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-canvas:255 255 255;--color-surface:255 255 255;--color-surface-subtle:245 246 247;--color-surface-raised:255 255 255;--color-surface-overlay:255 255 255;--color-surface-inverse:15 17 21;--color-ink:15 17 21;--color-ink-muted:97 102 107;--color-ink-subtle:129 133 140;--color-ink-inverse:249 250 251;--color-line:233 236 242;--color-line-strong:207 211 214;--color-sidebar:249 250 251;--interactive-hover:#2631480f;--interactive-active:#2631481a;--interactive-hover-solid:241 243 245;--nav-item-active:235 238 242;--shadow-lv2:0 4px 12px 0 #00000005, 0 2px 8px 0 #0000000a;--shadow-lv3:0 0 1px 0 #0003, 0 0 4px 0 #00000005, 0 12px 32px 0 #00000014;--overlay-mask:#0000003d;--color-gray-25:252 252 253;--color-gray-50:248 250 252;--color-gray-100:241 245 249;--color-gray-200:226 232 240;--color-gray-300:209 213 219;--color-gray-400:156 163 175;--color-gray-500:107 114 128;--color-gray-600:75 85 99;--color-gray-700:55 65 81;--color-gray-800:31 41 55;--color-gray-900:17 24 39;--color-gray-950:11 16 32;--color-dark-25:44 44 46;--color-dark-50:21 21 23;--color-dark-100:27 27 28;--color-dark-200:35 35 36;--color-dark-300:53 54 56;--color-dark-400:67 69 74;--color-dark-500:97 102 107;--color-dark-600:129 133 140;--color-dark-700:173 178 184;--color-dark-800:207 211 214;--color-dark-900:233 236 242;--color-dark-950:249 250 251;--motion-fast:.14s;--motion-standard:.18s;--ease-product:cubic-bezier(.22, 1, .36, 1);--color-primary-50:237 243 254;--color-primary-100:228 237 253;--color-primary-200:211 226 255;--color-primary-300:183 200 254;--color-primary-400:103 158 254;--color-primary-500:65 118 230;--color-primary-600:72 104 178;--color-primary-700:47 76 143;--color-primary-800:52 65 91;--color-primary-900:40 49 66;--color-primary-950:30 38 53;--color-accent-50:var(--color-primary-50);--color-accent-100:var(--color-primary-100);--color-accent-200:var(--color-primary-200);--color-accent-300:var(--color-primary-300);--color-accent-400:var(--color-primary-400);--color-accent-500:var(--color-primary-500);--color-accent-600:var(--color-primary-600);--color-accent-700:var(--color-primary-700);--color-accent-800:var(--color-primary-800);--color-accent-900:var(--color-primary-900);--color-accent-950:var(--color-primary-950);--toast-bg:rgb(var(--color-surface-overlay));--toast-color:rgb(var(--color-ink));--toast-border:rgb(var(--color-line));--scrollbar-width:8px;--scrollbar-track:transparent;--scrollbar-thumb:rgb(var(--color-line-strong));--scrollbar-thumb-hover:rgb(var(--color-ink-subtle));font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI Variable,Segoe UI,Roboto,sans-serif;font-weight:400;line-height:1.5}.dark.amoled{--color-canvas:0 0 0;--color-surface:0 0 0;--color-surface-subtle:10 10 11;--color-surface-raised:17 17 19;--color-surface-overlay:25 25 27;--color-ink-inverse:0 0 0;--color-line:27 27 29;--color-line-strong:46 47 50;--color-sidebar:0 0 0;--interactive-hover-solid:23 23 25;--nav-item-active:32 32 34;--color-dark-25:16 16 18;--color-dark-50:0 0 0;--color-dark-100:8 8 9;--color-dark-200:16 16 17;--color-dark-300:30 30 32}html[data-runtime=electron]{--scrollbar-width:10px}.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-canvas:21 21 23;--color-surface:27 27 28;--color-surface-subtle:35 35 36;--color-surface-raised:44 44 46;--color-surface-overlay:53 54 56;--color-surface-inverse:249 250 251;--color-ink:249 250 251;--color-ink-muted:173 178 184;--color-ink-subtle:129 133 140;--color-ink-inverse:21 21 23;--color-line:45 46 48;--color-line-strong:67 69 74;--color-sidebar:27 27 28;--interactive-hover:#ffffff14;--interactive-active:#ffffff24;--interactive-hover-solid:53 54 56;--nav-item-active:67 69 74;--shadow-lv2:0 4px 12px 0 #0000001f, 0 2px 8px 0 #00000029;--shadow-lv3:0 0 1px 0 #0006, 0 0 4px 0 #00000014, 0 12px 32px 0 #00000052;--overlay-mask:#00000080;--toast-bg:rgb(var(--color-surface-overlay));--toast-color:rgb(var(--color-ink));--toast-border:rgb(var(--color-line));--scrollbar-track:transparent;--scrollbar-thumb:rgb(var(--color-line-strong));--scrollbar-thumb-hover:rgb(var(--color-ink-subtle))}[data-hot-toast]{z-index:9999!important}[data-hot-toast] [data-toast]{cursor:pointer;border:1px solid var(--toast-border);transition:background-color var(--motion-fast) ease-out, border-color var(--motion-fast) ease-out, box-shadow var(--motion-fast) ease-out, transform var(--motion-fast) var(--ease-product)}[data-hot-toast] [data-toast]:hover{transform:translateY(-1px);box-shadow:0 12px 36px -24px #00000047!important}[data-hot-toast] [data-toast]:after{content:"×";top:8px;color:rgb(var(--color-ink-subtle));opacity:0;pointer-events:none;font-size:16px;font-weight:500;transition:opacity .2s ease-in-out;position:absolute;inset-inline-end:12px}[data-hot-toast] [data-toast]:hover:after{opacity:1}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}.scrollbar-thin::-webkit-scrollbar{width:var(--scrollbar-width);height:var(--scrollbar-width)}.scrollbar-thin::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:10px}.scrollbar-thin::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border:1px solid var(--scrollbar-track);border-radius:10px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.scroll-region{overscroll-behavior-y:contain;scrollbar-gutter:stable;touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch;min-height:0;overflow-y:auto}.scrollbar-hidden{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hidden::-webkit-scrollbar{display:none}a,button{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}.text-primary-500{color:rgb(var(--color-primary-500))!important}.text-primary-400{color:rgb(var(--color-primary-400))!important}.text-primary-600,.hover\:text-primary-600:hover{color:rgb(var(--color-primary-600))!important}.hover\:text-primary-300:hover{color:rgb(var(--color-primary-300))!important}.dark .text-primary-500{color:rgb(var(--color-primary-400))!important}.dark .text-primary-400,.dark .dark\:text-primary-400{color:rgb(var(--color-primary-300))!important}.dark .dark\:hover\:text-primary-300:hover{color:rgb(var(--color-primary-200))!important}.text-accent-500{color:rgb(var(--color-accent-500))!important}.text-accent-400{color:rgb(var(--color-accent-400))!important}.text-accent-600,.hover\:text-accent-600:hover{color:rgb(var(--color-accent-600))!important}.hover\:text-accent-300:hover{color:rgb(var(--color-accent-300))!important}.dark .text-accent-500{color:rgb(var(--color-accent-400))!important}.dark .text-accent-400,.dark .dark\:text-accent-400{color:rgb(var(--color-accent-300))!important}.dark .dark\:hover\:text-accent-300:hover{color:rgb(var(--color-accent-200))!important}.focus-ring:focus{box-shadow:0 0 0 2px rgb(var(--color-primary-500)), 0 0 0 4px rgb(var(--color-primary-500) / .2);outline:none}::selection{background-color:rgb(var(--color-primary-100));color:rgb(var(--color-primary-900))}.dark ::selection{background-color:rgb(var(--color-primary-800));color:rgb(var(--color-primary-100))}.scrollbar-thumb-gray-600::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:9999px}.line-clamp-2{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:focus-visible{outline:2px solid rgb(var(--color-primary-500));outline-offset:2px}input:not([type=checkbox]):not([type=radio]):not([type=range]):focus-visible,textarea:focus-visible,[contenteditable=true]:focus-visible{outline:none}.touch-manipulation{touch-action:manipulation}html{background:rgb(var(--color-canvas));min-height:100%;font-size:15px}body,#root{min-height:100%}body{background:rgb(var(--color-canvas));color:rgb(var(--color-ink));-webkit-app-region:no-drag;margin:0}button,a,input,textarea,select,[role=button],.cursor-pointer{-webkit-app-region:no-drag;-webkit-user-drag:none}@media (max-width:768px){input[type=text],input[type=email],input[type=password],input[type=search],textarea,select{font-size:16px}button,.touch-target{min-width:44px;min-height:44px}}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.prose{--tw-prose-body:rgb(var(--color-ink));--tw-prose-headings:rgb(var(--color-ink));--tw-prose-lead:rgb(var(--color-ink-muted));--tw-prose-links:rgb(var(--color-primary-600));--tw-prose-bold:rgb(var(--color-ink));--tw-prose-counters:rgb(var(--color-ink-subtle));--tw-prose-bullets:rgb(var(--color-line-strong));--tw-prose-hr:rgb(var(--color-line));--tw-prose-quotes:rgb(var(--color-ink));--tw-prose-quote-borders:rgb(var(--color-line-strong));--tw-prose-captions:rgb(var(--color-ink-muted));--tw-prose-code:rgb(var(--color-ink));--tw-prose-pre-code:rgb(var(--color-ink));--tw-prose-pre-bg:rgb(var(--color-surface-subtle));--tw-prose-th-borders:rgb(var(--color-line-strong));--tw-prose-td-borders:rgb(var(--color-line))}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin-slow{animation:2s linear infinite spin-slow}@property --celestial-sky-top{syntax:"<color>";inherits:true;initial-value:#0b1020}@property --celestial-sky-mid{syntax:"<color>";inherits:true;initial-value:#131a33}@property --celestial-sky-horizon{syntax:"<color>";inherits:true;initial-value:#1a2340}@property --celestial-glow{syntax:"<color>";inherits:true;initial-value:#7fa7ff}@property --body-x{syntax:"<number>";inherits:false;initial-value:50}@property --body-y{syntax:"<number>";inherits:false;initial-value:100}html.celestial{--celestial-night:0;--lamp-x:50%;--lamp-y:50%;--lamp-pulse:0;--celestial-ease:1.6s;--celestial-move:15s;transition:--celestial-sky-top var(--celestial-ease) linear, --celestial-sky-mid var(--celestial-ease) linear, --celestial-sky-horizon var(--celestial-ease) linear, --celestial-glow var(--celestial-ease) linear}html.celestial:has(.celestial-sky[data-preview=true]){--celestial-ease:.52s;--celestial-move:.52s}html.celestial[data-sweep=true]{--celestial-ease:90ms;--celestial-move:90ms}html.celestial :where(body,main,aside,header,footer,nav,section){transition:background-color var(--celestial-ease) linear, border-color var(--celestial-ease) linear, color var(--celestial-ease) linear}html.celestial [data-celestial-canvas]{background-color:rgb(var(--color-canvas) / .55)}html.celestial [data-celestial-surface]{background-color:rgb(var(--color-surface) / .55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}html.celestial [data-app-shell]{background-color:rgb(var(--color-sidebar) / .5);-webkit-backdrop-filter:blur(18px)saturate(1.1);backdrop-filter:blur(18px)saturate(1.1)}html.celestial [data-testid=app-shell-content]{background-color:#0000}html.celestial [data-app-main]{background-color:rgb(var(--color-canvas) / .42);-webkit-backdrop-filter:blur(12px)saturate(1.15);backdrop-filter:blur(12px)saturate(1.15);box-shadow:none;border-color:#ffffff1f}html.celestial [data-composer-box]{background-color:rgb(var(--color-surface) / .62);-webkit-backdrop-filter:blur(16px)saturate(1.2);backdrop-filter:blur(16px)saturate(1.2);border-color:#ffffff29}html.celestial.dark [data-composer-box]{border-color:#ffffff1a}html.celestial [data-user-bubble]{background-color:rgb(var(--color-surface-inverse) / .78);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}html.celestial.dark [data-user-bubble]{background-color:rgb(var(--color-surface-raised) / .72);color:rgb(var(--color-ink));border-color:#ffffff24;box-shadow:inset 0 1px #ffffff0f,0 8px 30px #00000040}html.celestial [data-app-sidebar],html.celestial [data-app-tabbar]{transition:opacity .9s}html.celestial [data-app-tabbar] [role=tab][aria-selected=false]{color:rgb(var(--color-ink) / .74)}html.celestial [data-app-tabbar] [role=tab][aria-selected=false]:hover{color:rgb(var(--color-ink))}html.celestial[data-composing=true] [data-app-sidebar]:not(:hover),html.celestial[data-composing=true] [data-app-tabbar]:not(:hover){opacity:.45}.celestial-sky{--sky-px:0;--sky-py:0;--sky-scroll:0;background:var(--celestial-sky-mid);contain:strict}.celestial-sky__layers>*{will-change:transform, opacity}.celestial-sky__cloud{will-change:translate, transform, opacity}.celestial-sky__gradient{background:linear-gradient(180deg, var(--celestial-sky-top) 0%, var(--celestial-sky-mid) 52%, var(--celestial-sky-horizon) 100%);transform:translate3d(calc(var(--sky-px) * -6px), calc(var(--sky-py) * -4px + var(--sky-scroll) * 10px), 0);transition:transform .7s ease-out;position:absolute;inset:-8%}.celestial-sky__stars{transform:translate3d(calc(var(--sky-px) * -10px), calc(var(--sky-py) * -7px + var(--sky-scroll) * 18px), 0);transition:opacity var(--celestial-ease) linear, transform .9s ease-out;position:absolute;inset:-12%}.celestial-sky__stars:before{content:"";position:absolute;inset:0}.celestial-sky__star{will-change:opacity;background:#fff;border-radius:9999px;animation:4s ease-in-out infinite celestial-twinkle;position:absolute;box-shadow:0 0 6px 1px #ffffffe6,0 0 14px 2px #c8d7ff59}.celestial-sky__star--bright{box-shadow:0 0 8px 2px #fff,0 0 22px 4px #d2e1ff80}.celestial-sky[data-generating=true] .celestial-sky__star{animation-duration:1.6s}@keyframes celestial-twinkle{0%,to{opacity:.3}50%{opacity:1}}.celestial-sky__meteor{transform-origin:0;filter:drop-shadow(0 0 4px #fffc);background:linear-gradient(90deg,#fff0 0%,#fffffff2 70%,#fff 100%);border-radius:9999px;height:2px;animation:1.5s ease-out forwards celestial-meteor;position:absolute}@keyframes celestial-meteor{0%{opacity:0;translate:0}12%{opacity:1}to{opacity:0;translate:26vw 16vh}}.celestial-sky__aurora{opacity:0;filter:blur(40px);mix-blend-mode:screen;background:radial-gradient(50% 40% at 30% 40%,#5ef3c88c 0%,#0000 70%),radial-gradient(45% 35% at 70% 55%,#8a7dff80 0%,#0000 70%);height:70%;transition:opacity 2.4s;animation:14s ease-in-out infinite alternate celestial-aurora;position:absolute;inset:-20% -30% auto}.celestial-sky[data-night=true][data-generating=true] .celestial-sky__aurora{opacity:.55}@keyframes celestial-aurora{0%{transform:translate(-4%)skew(-6deg)}to{transform:translate(6%,2%)skew(6deg)}}.celestial-sky__sun,.celestial-sky__moon{aspect-ratio:1;width:clamp(72px,9vw,128px);transition:--body-x var(--celestial-move) linear, --body-y var(--celestial-move) linear, opacity var(--celestial-ease) linear;border-radius:9999px;margin:calc(clamp(72px,9vw,128px)/-2) 0 0 calc(clamp(72px,9vw,128px)/-2);position:absolute;top:0;left:0}.celestial-sky__sun{--sun-warmth:0;background:radial-gradient(circle, #fffbe6 0%, #fff2c2 34%, #ffd696d9 42%, rgba(255, 190, 120, calc(.35 + var(--sun-warmth) * .4)) 56%, transparent 72%);box-shadow:0 0 60px 24px rgba(255, 236, 190, calc(.35 + var(--sun-warmth) * .35)), 0 0 180px 90px rgba(255, 200, 140, calc(.12 + var(--sun-warmth) * .3));transform:translate3d(calc(var(--body-x) * 1% * 14 + var(--sky-px) * 14px), calc(var(--body-y) * 1% * 9 + var(--sky-py) * 10px + var(--sky-scroll) * 14px), 0)}.celestial-sky__sun:after{content:"";will-change:opacity;background:radial-gradient(circle,#fff4d68c 0%,#ffdca040 45%,#0000 70%);border-radius:9999px;animation:9s ease-in-out infinite celestial-breathe;position:absolute;inset:-40%}@keyframes celestial-breathe{0%,to{opacity:.45}50%{opacity:1}}.celestial-sky__moon{transform:translate3d(calc(var(--body-x) * 1% * 14 + var(--sky-px) * 12px), calc(var(--body-y) * 1% * 9 + var(--sky-py) * 9px + var(--sky-scroll) * 12px), 0);background:radial-gradient(circle at 38% 36%,#f6f4ea 0%,#d9d7cc 55%,#b9b7ad 100%);overflow:hidden;box-shadow:inset -6px -8px 18px #0000002e,0 0 42px 14px #d6e0ff57,0 0 140px 70px #b4c8ff29}.celestial-sky__moon-shadow{transition:transform var(--celestial-move) linear;background:#0e1226e6;border-radius:9999px;position:absolute;inset:-6%}.celestial-sky__cloud{--cloud-depth:20px;filter:blur(34px);transform:translate3d(calc(var(--sky-px) * var(--cloud-depth)), calc(var(--sky-py) * 12px + var(--sky-scroll) * 22px), 0);transition:background var(--celestial-ease) linear, opacity var(--celestial-ease) linear, transform .9s ease-out;border-radius:9999px;animation:120s ease-in-out infinite alternate celestial-drift;position:absolute}.celestial-sky[data-generating=true] .celestial-sky__cloud{animation-duration:40s}@keyframes celestial-drift{0%{translate:0}to{translate:12vw 2vh}}.celestial-sky__horizon-glow{width:80vw;height:40vh;transform:translate3d(calc(var(--body-x) * 1vw), 0, 0);transition:--body-x var(--celestial-move) linear, opacity var(--celestial-ease) linear;margin-left:-40vw;position:absolute;bottom:0;left:0}.celestial-sky__haze{background:linear-gradient(180deg, transparent 0%, var(--celestial-sky-horizon) 100%);height:55%;transition:opacity var(--celestial-ease) linear;position:absolute;inset:auto 0 0}.celestial-sky__grain{opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");background-size:160px 160px;position:absolute;inset:0}.celestial-sky__lamp{z-index:30;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(440px circle at var(--lamp-x) var(--lamp-y), color-mix(in srgb, var(--celestial-glow) 38%, transparent), transparent 70%);opacity:calc(var(--celestial-night) * (.5 + .6 * var(--lamp-pulse)));transition:opacity .32s ease-out;position:fixed;inset:0}.celestial-sky__clock{letter-spacing:.02em;color:rgb(var(--color-ink));opacity:.32;transition:color var(--celestial-ease) linear;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:15px;font-weight:600;position:absolute;bottom:14px;right:28px}.celestial-sky__rain{transition:opacity var(--celestial-ease) linear;background-image:repeating-linear-gradient(100deg,#0000 0 14px,#ffffff47 14px 15px,#0000 15px 26px);background-size:200px 120px;animation:.55s linear infinite celestial-rain;position:absolute;inset:-20% -10% -10%;transform:skew(-8deg)}@keyframes celestial-rain{0%{background-position:0 0}to{background-position:-24px 120px}}.celestial-sky__snow{transition:opacity var(--celestial-ease) linear;position:absolute;inset:-6% 0 0}.celestial-sky__flake{background:#ffffffeb;border-radius:9999px;animation:12s linear infinite celestial-snow;position:absolute;top:-2%;box-shadow:0 0 6px #fff9}@keyframes celestial-snow{0%{transform:translate(0,0)}50%{transform:translate3d(var(--sway), 55vh, 0)}to{transform:translate3d(calc(var(--sway) * -.5), 108vh, 0)}}.celestial-sky__fog{background:linear-gradient(180deg, color-mix(in srgb, var(--celestial-sky-horizon) 55%, white 45%) 0%, color-mix(in srgb, var(--celestial-sky-horizon) 70%, white 30%) 100%);filter:blur(6px);transition:opacity var(--celestial-ease) linear;position:absolute;inset:0}html.dark .celestial-sky__fog{background:linear-gradient(180deg, color-mix(in srgb, var(--celestial-sky-horizon) 70%, #9aa4b8 30%) 0%, color-mix(in srgb, var(--celestial-sky-horizon) 85%, #9aa4b8 15%) 100%)}.celestial-sky__flash{opacity:0;background:#f0f4ffd9;transition:opacity .12s ease-out;position:absolute;inset:0}.celestial-sky[data-flash=true] .celestial-sky__flash{opacity:.55;transition-duration:40ms}@media (prefers-reduced-motion:reduce){.celestial-sky__star,.celestial-sky__cloud,.celestial-sky__sun:after,.celestial-sky__aurora,.celestial-sky__meteor,.celestial-sky__rain,.celestial-sky__flake{animation:none}.celestial-sky__flash{display:none}html.celestial[data-composing=true] [data-app-sidebar],html.celestial[data-composing=true] [data-app-tabbar]{opacity:1}}.marker\:hidden ::marker{display:none}.marker\:hidden::marker{display:none}.selection\:bg-primary-500\/25 ::selection{background-color:rgb(var(--color-primary-500) / .25)}.selection\:bg-primary-500\/25::selection{background-color:rgb(var(--color-primary-500) / .25)}.file\:me-3::file-selector-button{margin-inline-end:.75rem}.file\:me-4::file-selector-button{margin-inline-end:1rem}.file\:rounded-lg::file-selector-button{border-radius:.5rem}.file\:rounded-md::file-selector-button{border-radius:.375rem}.file\:border-0::file-selector-button{border-width:0}.file\:bg-gray-100::file-selector-button{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-100) / var(--tw-bg-opacity,1))}.file\:bg-primary-500\/10::file-selector-button{background-color:rgb(var(--color-primary-500) / .1)}.file\:px-3::file-selector-button{padding-left:.75rem;padding-right:.75rem}.file\:px-4::file-selector-button{padding-left:1rem;padding-right:1rem}.file\:py-1::file-selector-button{padding-top:.25rem;padding-bottom:.25rem}.file\:py-2::file-selector-button{padding-top:.5rem;padding-bottom:.5rem}.file\:text-sm::file-selector-button{font-size:.8125rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-gray-700::file-selector-button{--tw-text-opacity:1;color:rgb(var(--color-gray-700) / var(--tw-text-opacity,1))}.file\:text-primary-700::file-selector-button{--tw-text-opacity:1;color:rgb(var(--color-primary-700) / var(--tw-text-opacity,1))}.placeholder\:text-gray-400::placeholder{--tw-text-opacity:1;color:rgb(var(--color-gray-400) / var(--tw-text-opacity,1))}.placeholder\:text-ink-muted::placeholder{--tw-text-opacity:1;color:rgb(var(--color-ink-muted) / var(--tw-text-opacity,1))}.placeholder\:text-ink-subtle::placeholder{--tw-text-opacity:1;color:rgb(var(--color-ink-subtle) / var(--tw-text-opacity,1))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:start-\[2px\]:after{content:var(--tw-content);inset-inline-start:2px}.after\:top-\[2px\]:after{content:var(--tw-content);top:2px}.after\:h-5:after{content:var(--tw-content);height:1.25rem}.after\:w-5:after{content:var(--tw-content);width:1.25rem}.after\:rounded-full:after{content:var(--tw-content);border-radius:9999px}.after\:border:after{content:var(--tw-content);border-width:1px}.after\:border-gray-300:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(var(--color-gray-300) / var(--tw-border-opacity,1))}.after\:bg-white:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.after\:shadow-sm:after{content:var(--tw-content);--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.first\:mt-0:first-child{margin-top:0}.first\:pt-1:first-child{padding-top:.25rem}.last\:mb-0:last-child{margin-bottom:0}.last\:border-0:last-child{border-width:0}.last\:border-b-0:last-child{border-bottom-width:0}.last\:border-e-0:last-child{border-inline-end-width:0}.focus-within\:shadow-lv3:focus-within{--tw-shadow:var(--shadow-lv3);--tw-shadow-colored:var(--shadow-lv3);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.focus-within\:outline-none:focus-within{outline-offset:2px;outline:2px solid #0000}.focus-within\:ring-1:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-within\:ring-2:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-within\:ring-inset:focus-within{--tw-ring-inset:inset}.focus-within\:ring-primary-500\/40:focus-within{--tw-ring-color:rgb(var(--color-primary-500) / .4)}.focus-within\:ring-primary-500\/60:focus-within{--tw-ring-color:rgb(var(--color-primary-500) / .6)}.hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-gray-300:hover{--tw-border-opacity:1;border-color:rgb(var(--color-gray-300) / var(--tw-border-opacity,1))}.hover\:border-gray-400:hover{--tw-border-opacity:1;border-color:rgb(var(--color-gray-400) / var(--tw-border-opacity,1))}.hover\:border-line:hover{--tw-border-opacity:1;border-color:rgb(var(--color-line) / var(--tw-border-opacity,1))}.hover\:border-line-strong:hover{--tw-border-opacity:1;border-color:rgb(var(--color-line-strong) / var(--tw-border-opacity,1))}.hover\:border-primary-300:hover{--tw-border-opacity:1;border-color:rgb(var(--color-primary-300) / var(--tw-border-opacity,1))}.hover\:border-primary-400:hover{--tw-border-opacity:1;border-color:rgb(var(--color-primary-400) / var(--tw-border-opacity,1))}.hover\:border-red-300:hover{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.hover\:bg-amber-50:hover,.hover\:bg-amber-500:hover{--tw-bg-opacity:1;background-color:rgb(255 123 82/var(--tw-bg-opacity,1))}.hover\:bg-amber-500\/25:hover{background-color:#ff7b5240}.hover\:bg-black:hover{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.hover\:bg-black\/30:hover{background-color:#0000004d}.hover\:bg-black\/5:hover{background-color:#0000000d}.hover\:bg-black\/80:hover{background-color:#000c}.hover\:bg-black\/\[0\.025\]:hover{background-color:#00000006}.hover\:bg-black\/\[0\.02\]:hover{background-color:#00000005}.hover\:bg-black\/\[0\.03\]:hover{background-color:#00000008}.hover\:bg-black\/\[0\.04\]:hover{background-color:#0000000a}.hover\:bg-black\/\[0\.05\]:hover{background-color:#0000000d}.hover\:bg-black\/\[0\.06\]:hover{background-color:#0000000f}.hover\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.hover\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}.hover\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.hover\:bg-emerald-50:hover{--tw-bg-opacity:1;background-color:rgb(236 253 245/var(--tw-bg-opacity,1))}.hover\:bg-emerald-500:hover{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.hover\:bg-emerald-500\/25:hover{background-color:#10b98140}.hover\:bg-error-500\/10:hover{background-color:#f871711a}.hover\:bg-error-500\/25:hover{background-color:#f8717140}.hover\:bg-error-700:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-100) / var(--tw-bg-opacity,1))}.hover\:bg-gray-100\/70:hover{background-color:rgb(var(--color-gray-100) / .7)}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-200) / var(--tw-bg-opacity,1))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-50) / var(--tw-bg-opacity,1))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-700) / var(--tw-bg-opacity,1))}.hover\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-800) / var(--tw-bg-opacity,1))}.hover\:bg-green-200:hover{--tw-bg-opacity:1;background-color:rgb(187 247 208/var(--tw-bg-opacity,1))}.hover\:bg-green-50:hover{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.hover\:bg-hover-solid:hover{--tw-bg-opacity:1;background-color:rgb(var(--interactive-hover-solid) / var(--tw-bg-opacity,1))}.hover\:bg-interactive-hover:hover{background-color:var(--interactive-hover)}.hover\:bg-orange-50:hover{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.hover\:bg-primary-100:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-100) / var(--tw-bg-opacity,1))}.hover\:bg-primary-200:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-200) / var(--tw-bg-opacity,1))}.hover\:bg-primary-400:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-400) / var(--tw-bg-opacity,1))}.hover\:bg-primary-50:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-50) / var(--tw-bg-opacity,1))}.hover\:bg-primary-500:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity,1))}.hover\:bg-primary-500\/10:hover{background-color:rgb(var(--color-primary-500) / .1)}.hover\:bg-primary-500\/25:hover{background-color:rgb(var(--color-primary-500) / .25)}.hover\:bg-primary-700:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-700) / var(--tw-bg-opacity,1))}.hover\:bg-red-100:hover{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.hover\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\:bg-red-500\/10:hover{background-color:#ef44441a}.hover\:bg-red-500\/15:hover{background-color:#ef444426}.hover\:bg-red-500\/25:hover{background-color:#ef444440}.hover\:bg-red-500\/80:hover{background-color:#ef4444cc}.hover\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.hover\:bg-slate-700:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.hover\:bg-surface-raised:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-surface-raised) / var(--tw-bg-opacity,1))}.hover\:bg-surface-raised\/70:hover{background-color:rgb(var(--color-surface-raised) / .7)}.hover\:bg-surface-subtle:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-surface-subtle) / var(--tw-bg-opacity,1))}.hover\:bg-transparent:hover{background-color:#0000}.hover\:bg-warning-500\/20:hover{background-color:#ff7b5233}.hover\:bg-warning-500\/90:hover{background-color:#ff7b52e6}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:bg-white\/20:hover{background-color:#fff3}.hover\:bg-white\/30:hover{background-color:#ffffff4d}.hover\:bg-white\/5:hover{background-color:#ffffff0d}.hover\:bg-white\/60:hover{background-color:#fff9}.hover\:bg-white\/70:hover{background-color:#ffffffb3}.hover\:bg-white\/80:hover{background-color:#fffc}.hover\:bg-yellow-500\/10:hover{background-color:#ff7b521a}.hover\:text-\[\#3d120c\]:hover{--tw-text-opacity:1;color:rgb(61 18 12/var(--tw-text-opacity,1))}.hover\:text-amber-500:hover,.hover\:text-amber-700:hover{--tw-text-opacity:1;color:rgb(255 123 82/var(--tw-text-opacity,1))}.hover\:text-emerald-600:hover{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(var(--color-gray-600) / var(--tw-text-opacity,1))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(var(--color-gray-700) / var(--tw-text-opacity,1))}.hover\:text-gray-800:hover{--tw-text-opacity:1;color:rgb(var(--color-gray-800) / var(--tw-text-opacity,1))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(var(--color-gray-900) / var(--tw-text-opacity,1))}.hover\:text-gray-950:hover{--tw-text-opacity:1;color:rgb(var(--color-gray-950) / var(--tw-text-opacity,1))}.hover\:text-ink:hover{--tw-text-opacity:1;color:rgb(var(--color-ink) / var(--tw-text-opacity,1))}.hover\:text-primary-500:hover{--tw-text-opacity:1;color:rgb(var(--color-primary-500) / var(--tw-text-opacity,1))}.hover\:text-primary-600:hover{--tw-text-opacity:1;color:rgb(var(--color-primary-600) / var(--tw-text-opacity,1))}.hover\:text-primary-700:hover{--tw-text-opacity:1;color:rgb(var(--color-primary-700) / var(--tw-text-opacity,1))}.hover\:text-primary-900:hover{--tw-text-opacity:1;color:rgb(var(--color-primary-900) / var(--tw-text-opacity,1))}.hover\:text-red-500:hover{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.hover\:text-red-600:hover{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.hover\:text-red-700:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.hover\:text-red-800:hover{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.hover\:file\:bg-gray-200::file-selector-button:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-200) / var(--tw-bg-opacity,1))}.focus\:\!border-0:focus{border-width:0!important}.focus\:border-0:focus{border-width:0}.focus\:border-error-500:focus{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.focus\:border-line-strong:focus{--tw-border-opacity:1;border-color:rgb(var(--color-line-strong) / var(--tw-border-opacity,1))}.focus\:border-primary-400:focus{--tw-border-opacity:1;border-color:rgb(var(--color-primary-400) / var(--tw-border-opacity,1))}.focus\:border-primary-500:focus{--tw-border-opacity:1;border-color:rgb(var(--color-primary-500) / var(--tw-border-opacity,1))}.focus\:border-primary-500\/40:focus{border-color:rgb(var(--color-primary-500) / .4)}.focus\:border-transparent:focus{border-color:#0000}.focus\:\!bg-transparent:focus{background-color:#0000!important}.focus\:bg-surface:focus{--tw-bg-opacity:1;background-color:rgb(var(--color-surface) / var(--tw-bg-opacity,1))}.focus\:bg-transparent:focus{background-color:#0000}.focus\:\!shadow-none:focus{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)!important}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:\!ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)!important}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-blue-500\/20:focus{--tw-ring-color:#3b82f633}.focus\:ring-error-500\/20:focus{--tw-ring-color:#f8717133}.focus\:ring-primary-100:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-100) / var(--tw-ring-opacity,1))}.focus\:ring-primary-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-500) / var(--tw-ring-opacity,1))}.focus\:ring-primary-500\/20:focus{--tw-ring-color:rgb(var(--color-primary-500) / .2)}.focus\:ring-primary-500\/35:focus{--tw-ring-color:rgb(var(--color-primary-500) / .35)}.focus\:ring-offset-1:focus{--tw-ring-offset-width:1px}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:relative:focus-visible{position:relative}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset:inset}.focus-visible\:ring-primary-400\/70:focus-visible{--tw-ring-color:rgb(var(--color-primary-400) / .7)}.focus-visible\:ring-primary-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-500) / var(--tw-ring-opacity,1))}.focus-visible\:ring-primary-500\/30:focus-visible{--tw-ring-color:rgb(var(--color-primary-500) / .3)}.focus-visible\:ring-primary-500\/40:focus-visible{--tw-ring-color:rgb(var(--color-primary-500) / .4)}.focus-visible\:ring-primary-500\/45:focus-visible{--tw-ring-color:rgb(var(--color-primary-500) / .45)}.focus-visible\:ring-primary-500\/50:focus-visible{--tw-ring-color:rgb(var(--color-primary-500) / .5)}.focus-visible\:ring-primary-500\/60:focus-visible{--tw-ring-color:rgb(var(--color-primary-500) / .6)}.focus-visible\:ring-warning-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(255 123 82/var(--tw-ring-opacity,1))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-canvas:focus-visible{--tw-ring-offset-color:rgb(var(--color-canvas) / 1)}.active\:bg-gray-100:active{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-100) / var(--tw-bg-opacity,1))}.active\:bg-gray-200:active{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-200) / var(--tw-bg-opacity,1))}.active\:bg-red-100:active{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:cursor-wait:disabled{cursor:wait}.disabled\:bg-primary-300\/50:disabled{background-color:rgb(var(--color-primary-300) / .5)}.disabled\:bg-surface-subtle:disabled{--tw-bg-opacity:1;background-color:rgb(var(--color-surface-subtle) / var(--tw-bg-opacity,1))}.disabled\:text-ink-muted:disabled{--tw-text-opacity:1;color:rgb(var(--color-ink-muted) / var(--tw-text-opacity,1))}.disabled\:text-ink-subtle:disabled{--tw-text-opacity:1;color:rgb(var(--color-ink-subtle) / var(--tw-text-opacity,1))}.disabled\:text-white\/80:disabled{color:#fffc}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-35:disabled{opacity:.35}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}.disabled\:hover\:bg-primary-300\/50:hover:disabled{background-color:rgb(var(--color-primary-300) / .5)}.disabled\:hover\:bg-transparent:hover:disabled{background-color:#0000}.group[open] .group-open\:rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:block{display:block}.group:hover .group-hover\:flex{display:flex}.group:hover .group-hover\:hidden{display:none}.group:hover .group-hover\:h-20{height:5rem}.group:hover .group-hover\:h-24{height:6rem}.group:hover .group-hover\:w-5{width:1.25rem}.group:hover .group-hover\:bg-ink-muted{--tw-bg-opacity:1;background-color:rgb(var(--color-ink-muted) / var(--tw-bg-opacity,1))}.group:hover .group-hover\:bg-primary-500{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity,1))}.group:hover .group-hover\:bg-opacity-50{--tw-bg-opacity:.5}.group:hover .group-hover\:text-gray-600{--tw-text-opacity:1;color:rgb(var(--color-gray-600) / var(--tw-text-opacity,1))}.group:hover .group-hover\:text-gray-700{--tw-text-opacity:1;color:rgb(var(--color-gray-700) / var(--tw-text-opacity,1))}.group:hover .group-hover\:text-gray-900{--tw-text-opacity:1;color:rgb(var(--color-gray-900) / var(--tw-text-opacity,1))}.group:hover .group-hover\:text-ink{--tw-text-opacity:1;color:rgb(var(--color-ink) / var(--tw-text-opacity,1))}.group\/folder:hover .group-hover\/folder\:opacity-100,.group\/shortcut:hover .group-hover\/shortcut\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.group:focus-visible .group-focus-visible\:h-20{height:5rem}.group:focus-visible .group-focus-visible\:w-5{width:1.25rem}.group:focus-visible .group-focus-visible\:bg-primary-500{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity,1))}.group:focus-visible .group-focus-visible\:opacity-100{opacity:1}.peer:checked~.peer-checked\:bg-primary-500{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\:bg-primary-600{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-600) / var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\:after\:translate-x-full:after{content:var(--tw-content);--tw-translate-x:100%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:checked~.peer-checked\:after\:border-white:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.peer:focus~.peer-focus\:outline-none{outline-offset:2px;outline:2px solid #0000}.peer:focus~.peer-focus\:ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.peer:focus~.peer-focus\:ring-primary-300{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-300) / var(--tw-ring-opacity,1))}.peer:focus-visible~.peer-focus-visible\:ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.peer:focus-visible~.peer-focus-visible\:ring-primary-500\/40{--tw-ring-color:rgb(var(--color-primary-500) / .4)}@media (prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}.motion-reduce\:bg-none{background-image:none}.motion-reduce\:text-gray-500{--tw-text-opacity:1;color:rgb(var(--color-gray-500) / var(--tw-text-opacity,1))}.motion-reduce\:text-ink-muted{--tw-text-opacity:1;color:rgb(var(--color-ink-muted) / var(--tw-text-opacity,1))}.motion-reduce\:transition-none{transition-property:none}}.dark\:divide-dark-200:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(var(--color-dark-200) / var(--tw-divide-opacity,1))}.dark\:divide-dark-200\/60:is(.dark *)>:not([hidden])~:not([hidden]){border-color:rgb(var(--color-dark-200) / .6)}.dark\:divide-dark-300:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(var(--color-dark-300) / var(--tw-divide-opacity,1))}.dark\:divide-gray-700:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(var(--color-gray-700) / var(--tw-divide-opacity,1))}.dark\:divide-white\/\[0\.06\]:is(.dark *)>:not([hidden])~:not([hidden]){border-color:#ffffff0f}.dark\:divide-white\/\[0\.08\]:is(.dark *)>:not([hidden])~:not([hidden]){border-color:#ffffff14}.dark\:border-accent-800\/70:is(.dark *){border-color:rgb(var(--color-accent-800) / .7)}.dark\:border-amber-700\/50:is(.dark *){border-color:#ff7b5280}.dark\:border-amber-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(255 123 82/var(--tw-border-opacity,1))}.dark\:border-amber-800\/60:is(.dark *){border-color:#ff7b5299}.dark\:border-blue-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.dark\:border-blue-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.dark\:border-dark-200:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-dark-200) / var(--tw-border-opacity,1))}.dark\:border-dark-200\/50:is(.dark *){border-color:rgb(var(--color-dark-200) / .5)}.dark\:border-dark-300:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-dark-300) / var(--tw-border-opacity,1))}.dark\:border-dark-300\/50:is(.dark *){border-color:rgb(var(--color-dark-300) / .5)}.dark\:border-dark-400:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-dark-400) / var(--tw-border-opacity,1))}.dark\:border-dark-50:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-dark-50) / var(--tw-border-opacity,1))}.dark\:border-emerald-700\/30:is(.dark *){border-color:#0478574d}.dark\:border-emerald-800\/30:is(.dark *){border-color:#065f464d}.dark\:border-error-900\/60:is(.dark *){border-color:#7f1d1d99}.dark\:border-gray-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-gray-600) / var(--tw-border-opacity,1))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-gray-700) / var(--tw-border-opacity,1))}.dark\:border-green-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.dark\:border-green-800\/50:is(.dark *){border-color:#16653480}.dark\:border-orange-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(234 88 12/var(--tw-border-opacity,1))}.dark\:border-primary-400:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-primary-400) / var(--tw-border-opacity,1))}.dark\:border-primary-400\/10:is(.dark *){border-color:rgb(var(--color-primary-400) / .1)}.dark\:border-primary-400\/30:is(.dark *){border-color:rgb(var(--color-primary-400) / .3)}.dark\:border-primary-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-primary-500) / var(--tw-border-opacity,1))}.dark\:border-primary-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-primary-600) / var(--tw-border-opacity,1))}.dark\:border-primary-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-primary-700) / var(--tw-border-opacity,1))}.dark\:border-primary-700\/30:is(.dark *){border-color:rgb(var(--color-primary-700) / .3)}.dark\:border-primary-700\/50:is(.dark *){border-color:rgb(var(--color-primary-700) / .5)}.dark\:border-primary-700\/60:is(.dark *){border-color:rgb(var(--color-primary-700) / .6)}.dark\:border-primary-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-primary-800) / var(--tw-border-opacity,1))}.dark\:border-primary-800\/30:is(.dark *){border-color:rgb(var(--color-primary-800) / .3)}.dark\:border-primary-800\/40:is(.dark *){border-color:rgb(var(--color-primary-800) / .4)}.dark\:border-primary-800\/50:is(.dark *){border-color:rgb(var(--color-primary-800) / .5)}.dark\:border-primary-900\/60:is(.dark *){border-color:rgb(var(--color-primary-900) / .6)}.dark\:border-red-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.dark\:border-red-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.dark\:border-red-800\/30:is(.dark *){border-color:#991b1b4d}.dark\:border-red-900\/40:is(.dark *){border-color:#7f1d1d66}.dark\:border-red-900\/50:is(.dark *){border-color:#7f1d1d80}.dark\:border-warning-500\/45:is(.dark *){border-color:#ff7b5273}.dark\:border-white:is(.dark *){--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.dark\:border-white\/10:is(.dark *){border-color:#ffffff1a}.dark\:border-white\/15:is(.dark *){border-color:#ffffff26}.dark\:border-white\/\[0\.04\]:is(.dark *){border-color:#ffffff0a}.dark\:border-white\/\[0\.05\]:is(.dark *){border-color:#ffffff0d}.dark\:border-white\/\[0\.06\]:is(.dark *){border-color:#ffffff0f}.dark\:border-white\/\[0\.07\]:is(.dark *){border-color:#ffffff12}.dark\:border-white\/\[0\.08\]:is(.dark *){border-color:#ffffff14}.dark\:border-white\/\[0\.09\]:is(.dark *){border-color:#ffffff17}.dark\:border-white\/\[0\.12\]:is(.dark *){border-color:#ffffff1f}.dark\:border-white\/\[0\.16\]:is(.dark *){border-color:#ffffff29}.dark\:border-white\/\[0\.1\]:is(.dark *){border-color:#ffffff1a}.dark\:border-yellow-600:is(.dark *),.dark\:border-yellow-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(255 123 82/var(--tw-border-opacity,1))}.dark\:border-t-primary-400:is(.dark *){--tw-border-opacity:1;border-top-color:rgb(var(--color-primary-400) / var(--tw-border-opacity,1))}.dark\:bg-accent-950\/20:is(.dark *){background-color:rgb(var(--color-accent-950) / .2)}.dark\:bg-amber-400:is(.dark *),.dark\:bg-amber-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(255 123 82/var(--tw-bg-opacity,1))}.dark\:bg-amber-900\/20:is(.dark *){background-color:#ff7b5233}.dark\:bg-amber-900\/30:is(.dark *){background-color:#ff7b524d}.dark\:bg-amber-900\/40:is(.dark *),.dark\:bg-amber-950\/40:is(.dark *){background-color:#ff7b5266}.dark\:bg-black\/25:is(.dark *){background-color:#00000040}.dark\:bg-black\/45:is(.dark *){background-color:#00000073}.dark\:bg-black\/50:is(.dark *){background-color:#00000080}.dark\:bg-blue-900\/20:is(.dark *){background-color:#1e3a8a33}.dark\:bg-blue-900\/30:is(.dark *){background-color:#1e3a8a4d}.dark\:bg-blue-950\/20:is(.dark *){background-color:#17255433}.dark\:bg-blue-950\/30:is(.dark *){background-color:#1725544d}.dark\:bg-dark-100:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-dark-100) / var(--tw-bg-opacity,1))}.dark\:bg-dark-100\/40:is(.dark *){background-color:rgb(var(--color-dark-100) / .4)}.dark\:bg-dark-100\/50:is(.dark *){background-color:rgb(var(--color-dark-100) / .5)}.dark\:bg-dark-100\/55:is(.dark *){background-color:rgb(var(--color-dark-100) / .55)}.dark\:bg-dark-100\/60:is(.dark *){background-color:rgb(var(--color-dark-100) / .6)}.dark\:bg-dark-100\/70:is(.dark *){background-color:rgb(var(--color-dark-100) / .7)}.dark\:bg-dark-100\/75:is(.dark *){background-color:rgb(var(--color-dark-100) / .75)}.dark\:bg-dark-100\/80:is(.dark *){background-color:rgb(var(--color-dark-100) / .8)}.dark\:bg-dark-100\/90:is(.dark *){background-color:rgb(var(--color-dark-100) / .9)}.dark\:bg-dark-100\/95:is(.dark *){background-color:rgb(var(--color-dark-100) / .95)}.dark\:bg-dark-100\/\[0\.88\]:is(.dark *){background-color:rgb(var(--color-dark-100) / .88)}.dark\:bg-dark-200:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-dark-200) / var(--tw-bg-opacity,1))}.dark\:bg-dark-200\/35:is(.dark *){background-color:rgb(var(--color-dark-200) / .35)}.dark\:bg-dark-200\/45:is(.dark *){background-color:rgb(var(--color-dark-200) / .45)}.dark\:bg-dark-200\/55:is(.dark *){background-color:rgb(var(--color-dark-200) / .55)}.dark\:bg-dark-200\/60:is(.dark *){background-color:rgb(var(--color-dark-200) / .6)}.dark\:bg-dark-200\/65:is(.dark *){background-color:rgb(var(--color-dark-200) / .65)}.dark\:bg-dark-200\/70:is(.dark *){background-color:rgb(var(--color-dark-200) / .7)}.dark\:bg-dark-200\/80:is(.dark *){background-color:rgb(var(--color-dark-200) / .8)}.dark\:bg-dark-200\/90:is(.dark *){background-color:rgb(var(--color-dark-200) / .9)}.dark\:bg-dark-25:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-dark-25) / var(--tw-bg-opacity,1))}.dark\:bg-dark-25\/95:is(.dark *){background-color:rgb(var(--color-dark-25) / .95)}.dark\:bg-dark-25\/\[0\.98\]:is(.dark *){background-color:rgb(var(--color-dark-25) / .98)}.dark\:bg-dark-300:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-dark-300) / var(--tw-bg-opacity,1))}.dark\:bg-dark-300\/70:is(.dark *){background-color:rgb(var(--color-dark-300) / .7)}.dark\:bg-dark-400:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-dark-400) / var(--tw-bg-opacity,1))}.dark\:bg-dark-50:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-dark-50) / var(--tw-bg-opacity,1))}.dark\:bg-dark-50\/10:is(.dark *){background-color:rgb(var(--color-dark-50) / .1)}.dark\:bg-dark-50\/35:is(.dark *){background-color:rgb(var(--color-dark-50) / .35)}.dark\:bg-dark-50\/60:is(.dark *){background-color:rgb(var(--color-dark-50) / .6)}.dark\:bg-dark-50\/70:is(.dark *){background-color:rgb(var(--color-dark-50) / .7)}.dark\:bg-emerald-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.dark\:bg-emerald-900\/20:is(.dark *){background-color:#064e3b33}.dark\:bg-emerald-900\/30:is(.dark *){background-color:#064e3b4d}.dark\:bg-error-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(248 113 113/var(--tw-bg-opacity,1))}.dark\:bg-error-900\/30:is(.dark *){background-color:#7f1d1d4d}.dark\:bg-gray-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-500) / var(--tw-bg-opacity,1))}.dark\:bg-gray-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-600) / var(--tw-bg-opacity,1))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-700) / var(--tw-bg-opacity,1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-800) / var(--tw-bg-opacity,1))}.dark\:bg-gray-900\/50:is(.dark *){background-color:rgb(var(--color-gray-900) / .5)}.dark\:bg-green-900\/10:is(.dark *){background-color:#14532d1a}.dark\:bg-green-900\/20:is(.dark *){background-color:#14532d33}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-primary-400:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-primary-400) / var(--tw-bg-opacity,1))}.dark\:bg-primary-400\/\[0\.04\]:is(.dark *){background-color:rgb(var(--color-primary-400) / .04)}.dark\:bg-primary-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity,1))}.dark\:bg-primary-500\/15:is(.dark *){background-color:rgb(var(--color-primary-500) / .15)}.dark\:bg-primary-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-primary-600) / var(--tw-bg-opacity,1))}.dark\:bg-primary-900\/10:is(.dark *){background-color:rgb(var(--color-primary-900) / .1)}.dark\:bg-primary-900\/20:is(.dark *){background-color:rgb(var(--color-primary-900) / .2)}.dark\:bg-primary-900\/25:is(.dark *){background-color:rgb(var(--color-primary-900) / .25)}.dark\:bg-primary-900\/30:is(.dark *){background-color:rgb(var(--color-primary-900) / .3)}.dark\:bg-primary-900\/35:is(.dark *){background-color:rgb(var(--color-primary-900) / .35)}.dark\:bg-primary-950\/25:is(.dark *){background-color:rgb(var(--color-primary-950) / .25)}.dark\:bg-primary-950\/30:is(.dark *){background-color:rgb(var(--color-primary-950) / .3)}.dark\:bg-primary-950\/40:is(.dark *){background-color:rgb(var(--color-primary-950) / .4)}.dark\:bg-purple-900\/30:is(.dark *){background-color:#581c874d}.dark\:bg-red-900\/20:is(.dark *){background-color:#7f1d1d33}.dark\:bg-red-900\/30:is(.dark *){background-color:#7f1d1d4d}.dark\:bg-red-950\/30:is(.dark *){background-color:#450a0a4d}.dark\:bg-red-950\/40:is(.dark *){background-color:#450a0a66}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\:bg-surface-raised:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-surface-raised) / var(--tw-bg-opacity,1))}.dark\:bg-surface-subtle:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-surface-subtle) / var(--tw-bg-opacity,1))}.dark\:bg-white:is(.dark *){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.dark\:bg-white\/10:is(.dark *){background-color:#ffffff1a}.dark\:bg-white\/\[0\.025\]:is(.dark *){background-color:#ffffff06}.dark\:bg-white\/\[0\.02\]:is(.dark *){background-color:#ffffff05}.dark\:bg-white\/\[0\.035\]:is(.dark *){background-color:#ffffff09}.dark\:bg-white\/\[0\.03\]:is(.dark *){background-color:#ffffff08}.dark\:bg-white\/\[0\.04\]:is(.dark *){background-color:#ffffff0a}.dark\:bg-white\/\[0\.05\]:is(.dark *){background-color:#ffffff0d}.dark\:bg-white\/\[0\.06\]:is(.dark *){background-color:#ffffff0f}.dark\:bg-white\/\[0\.07\]:is(.dark *){background-color:#ffffff12}.dark\:bg-white\/\[0\.08\]:is(.dark *){background-color:#ffffff14}.dark\:bg-yellow-900\/20:is(.dark *){background-color:#ff7b5233}.dark\:bg-yellow-900\/30:is(.dark *){background-color:#ff7b524d}.dark\:from-dark-500:is(.dark *){--tw-gradient-from:rgb(var(--color-dark-500) / 1) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--color-dark-500) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-emerald-600:is(.dark *){--tw-gradient-from:#059669 var(--tw-gradient-from-position);--tw-gradient-to:#05966900 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-primary-600:is(.dark *){--tw-gradient-from:rgb(var(--color-primary-600) / 1) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--color-primary-600) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-primary-900\/30:is(.dark *){--tw-gradient-from:rgb(var(--color-primary-900) / .3) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--color-primary-900) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:via-dark-900:is(.dark *){--tw-gradient-to:rgb(var(--color-dark-900) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), rgb(var(--color-dark-900) / 1) var(--tw-gradient-via-position), var(--tw-gradient-to)}.dark\:via-primary-700:is(.dark *){--tw-gradient-to:rgb(var(--color-primary-700) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), rgb(var(--color-primary-700) / 1) var(--tw-gradient-via-position), var(--tw-gradient-to)}.dark\:to-dark-500:is(.dark *){--tw-gradient-to:rgb(var(--color-dark-500) / 1) var(--tw-gradient-to-position)}.dark\:to-primary-800\/20:is(.dark *){--tw-gradient-to:rgb(var(--color-primary-800) / .2) var(--tw-gradient-to-position)}.dark\:to-primary-800\/30:is(.dark *){--tw-gradient-to:rgb(var(--color-primary-800) / .3) var(--tw-gradient-to-position)}.dark\:to-purple-800:is(.dark *){--tw-gradient-to:#6b21a8 var(--tw-gradient-to-position)}.dark\:to-teal-600:is(.dark *){--tw-gradient-to:#0d9488 var(--tw-gradient-to-position)}.dark\:fill-amber-600:is(.dark *){fill:#ff7b52}.dark\:fill-dark-100:is(.dark *){fill:rgb(var(--color-dark-100) / 1)}.dark\:fill-dark-500:is(.dark *){fill:rgb(var(--color-dark-500) / 1)}.dark\:fill-emerald-600:is(.dark *){fill:#059669}.dark\:fill-gray-500:is(.dark *){fill:rgb(var(--color-gray-500) / 1)}.dark\:fill-ink-inverse:is(.dark *){fill:rgb(var(--color-ink-inverse) / 1)}.dark\:fill-white\/\[0\.07\]:is(.dark *){fill:#ffffff12}.dark\:stroke-primary-400:is(.dark *){stroke:rgb(var(--color-primary-400) / 1)}.dark\:stroke-white\/60:is(.dark *){stroke:#fff9}.dark\:stroke-white\/\[0\.07\]:is(.dark *){stroke:#ffffff12}.dark\:text-accent-400:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-accent-400) / var(--tw-text-opacity,1))}.dark\:text-amber-200:is(.dark *),.dark\:text-amber-300:is(.dark *),.dark\:text-amber-400:is(.dark *),.dark\:text-amber-500:is(.dark *){--tw-text-opacity:1;color:rgb(255 123 82/var(--tw-text-opacity,1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:text-dark-400:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-dark-400) / var(--tw-text-opacity,1))}.dark\:text-dark-500:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-dark-500) / var(--tw-text-opacity,1))}.dark\:text-dark-600:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-dark-600) / var(--tw-text-opacity,1))}.dark\:text-dark-700:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-dark-700) / var(--tw-text-opacity,1))}.dark\:text-dark-800:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-dark-800) / var(--tw-text-opacity,1))}.dark\:text-dark-900:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-dark-900) / var(--tw-text-opacity,1))}.dark\:text-dark-950:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-dark-950) / var(--tw-text-opacity,1))}.dark\:text-emerald-300:is(.dark *){--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity,1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.dark\:text-error-300:is(.dark *){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.dark\:text-error-400:is(.dark *),.dark\:text-error-500:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-100) / var(--tw-text-opacity,1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-200) / var(--tw-text-opacity,1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-300) / var(--tw-text-opacity,1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-400) / var(--tw-text-opacity,1))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-500) / var(--tw-text-opacity,1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-600) / var(--tw-text-opacity,1))}.dark\:text-gray-900:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-900) / var(--tw-text-opacity,1))}.dark\:text-gray-950:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-950) / var(--tw-text-opacity,1))}.dark\:text-gray-950\/60:is(.dark *){color:rgb(var(--color-gray-950) / .6)}.dark\:text-gray-950\/70:is(.dark *){color:rgb(var(--color-gray-950) / .7)}.dark\:text-green-200:is(.dark *){--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\:text-ink-inverse:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-ink-inverse) / var(--tw-text-opacity,1))}.dark\:text-lime-400:is(.dark *){--tw-text-opacity:1;color:rgb(163 230 53/var(--tw-text-opacity,1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.dark\:text-primary-100:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-100) / var(--tw-text-opacity,1))}.dark\:text-primary-100\/80:is(.dark *){color:rgb(var(--color-primary-100) / .8)}.dark\:text-primary-200:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-200) / var(--tw-text-opacity,1))}.dark\:text-primary-300:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-300) / var(--tw-text-opacity,1))}.dark\:text-primary-400:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-400) / var(--tw-text-opacity,1))}.dark\:text-primary-400\/70:is(.dark *){color:rgb(var(--color-primary-400) / .7)}.dark\:text-primary-500:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-500) / var(--tw-text-opacity,1))}.dark\:text-purple-300:is(.dark *){--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.dark\:text-purple-400:is(.dark *){--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-sky-400:is(.dark *){--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.dark\:text-slate-300:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.dark\:text-success-400:is(.dark *),.dark\:text-success-500:is(.dark *){--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.dark\:text-warning-400:is(.dark *),.dark\:text-warning-500:is(.dark *){--tw-text-opacity:1;color:rgb(255 123 82/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:text-yellow-400:is(.dark *){--tw-text-opacity:1;color:rgb(255 123 82/var(--tw-text-opacity,1))}.dark\:placeholder-dark-500:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(var(--color-dark-500) / var(--tw-placeholder-opacity,1))}.dark\:placeholder-dark-500:is(.dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(var(--color-dark-500) / var(--tw-placeholder-opacity,1))}.dark\:placeholder-gray-400:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(var(--color-gray-400) / var(--tw-placeholder-opacity,1))}.dark\:placeholder-gray-400:is(.dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(var(--color-gray-400) / var(--tw-placeholder-opacity,1))}.dark\:shadow-\[0_12px_32px_rgba\(13\,17\,23\,0\.16\)\]:is(.dark *){--tw-shadow:0 12px 32px #0d111729;--tw-shadow-colored:0 12px 32px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.dark\:ring-dark-100:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-dark-100) / var(--tw-ring-opacity,1))}.dark\:ring-dark-50:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-dark-50) / var(--tw-ring-opacity,1))}.dark\:ring-primary-400:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-400) / var(--tw-ring-opacity,1))}.dark\:ring-primary-400\/10:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400) / .1)}.dark\:ring-primary-800\/60:is(.dark *){--tw-ring-color:rgb(var(--color-primary-800) / .6)}.dark\:ring-white\/10:is(.dark *){--tw-ring-color:#ffffff1a}.dark\:ring-white\/20:is(.dark *){--tw-ring-color:#fff3}.dark\:ring-white\/\[0\.05\]:is(.dark *){--tw-ring-color:#ffffff0d}.dark\:ring-white\/\[0\.1\]:is(.dark *){--tw-ring-color:#ffffff1a}.dark\:file\:bg-dark-200:is(.dark *)::file-selector-button{--tw-bg-opacity:1;background-color:rgb(var(--color-dark-200) / var(--tw-bg-opacity,1))}.dark\:file\:text-dark-700:is(.dark *)::file-selector-button{--tw-text-opacity:1;color:rgb(var(--color-dark-700) / var(--tw-text-opacity,1))}.dark\:file\:text-primary-300:is(.dark *)::file-selector-button{--tw-text-opacity:1;color:rgb(var(--color-primary-300) / var(--tw-text-opacity,1))}.dark\:placeholder\:text-dark-500:is(.dark *)::-moz-placeholder{--tw-text-opacity:1;color:rgb(var(--color-dark-500) / var(--tw-text-opacity,1))}.dark\:placeholder\:text-dark-500:is(.dark *)::placeholder{--tw-text-opacity:1;color:rgb(var(--color-dark-500) / var(--tw-text-opacity,1))}.dark\:placeholder\:text-gray-500:is(.dark *)::-moz-placeholder{--tw-text-opacity:1;color:rgb(var(--color-gray-500) / var(--tw-text-opacity,1))}.dark\:placeholder\:text-gray-500:is(.dark *)::placeholder{--tw-text-opacity:1;color:rgb(var(--color-gray-500) / var(--tw-text-opacity,1))}.dark\:hover\:border-dark-400:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-dark-400) / var(--tw-border-opacity,1))}.dark\:hover\:border-gray-500:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-gray-500) / var(--tw-border-opacity,1))}.dark\:hover\:border-primary-500:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-primary-500) / var(--tw-border-opacity,1))}.dark\:hover\:border-red-700:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(185 28 28/var(--tw-border-opacity,1))}.dark\:hover\:border-white\/20:hover:is(.dark *){border-color:#fff3}.dark\:hover\:bg-amber-950\/30:hover:is(.dark *){background-color:#ff7b524d}.dark\:hover\:bg-black\/\[0\.06\]:hover:is(.dark *){background-color:#0000000f}.dark\:hover\:bg-blue-900\/20:hover:is(.dark *){background-color:#1e3a8a33}.dark\:hover\:bg-blue-900\/40:hover:is(.dark *){background-color:#1e3a8a66}.dark\:hover\:bg-blue-900\/50:hover:is(.dark *){background-color:#1e3a8a80}.dark\:hover\:bg-dark-100:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-dark-100) / var(--tw-bg-opacity,1))}.dark\:hover\:bg-dark-100\/80:hover:is(.dark *){background-color:rgb(var(--color-dark-100) / .8)}.dark\:hover\:bg-dark-200:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-dark-200) / var(--tw-bg-opacity,1))}.dark\:hover\:bg-dark-200\/60:hover:is(.dark *){background-color:rgb(var(--color-dark-200) / .6)}.dark\:hover\:bg-dark-200\/70:hover:is(.dark *){background-color:rgb(var(--color-dark-200) / .7)}.dark\:hover\:bg-dark-300:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-dark-300) / var(--tw-bg-opacity,1))}.dark\:hover\:bg-dark-400:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-dark-400) / var(--tw-bg-opacity,1))}.dark\:hover\:bg-dark-50:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-dark-50) / var(--tw-bg-opacity,1))}.dark\:hover\:bg-emerald-900\/20:hover:is(.dark *){background-color:#064e3b33}.dark\:hover\:bg-emerald-950\/30:hover:is(.dark *){background-color:#022c224d}.dark\:hover\:bg-error-400:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(248 113 113/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-100:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-100) / var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-700) / var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-900\/50:hover:is(.dark *){background-color:rgb(var(--color-gray-900) / .5)}.dark\:hover\:bg-green-900\/20:hover:is(.dark *){background-color:#14532d33}.dark\:hover\:bg-green-900\/50:hover:is(.dark *){background-color:#14532d80}.dark\:hover\:bg-orange-900\/20:hover:is(.dark *){background-color:#7c2d1233}.dark\:hover\:bg-primary-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-primary-500) / var(--tw-bg-opacity,1))}.dark\:hover\:bg-primary-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-primary-600) / var(--tw-bg-opacity,1))}.dark\:hover\:bg-primary-900\/30:hover:is(.dark *){background-color:rgb(var(--color-primary-900) / .3)}.dark\:hover\:bg-primary-900\/40:hover:is(.dark *){background-color:rgb(var(--color-primary-900) / .4)}.dark\:hover\:bg-primary-900\/50:hover:is(.dark *){background-color:rgb(var(--color-primary-900) / .5)}.dark\:hover\:bg-primary-950\/30:hover:is(.dark *){background-color:rgb(var(--color-primary-950) / .3)}.dark\:hover\:bg-red-900\/20:hover:is(.dark *){background-color:#7f1d1d33}.dark\:hover\:bg-red-900\/30:hover:is(.dark *){background-color:#7f1d1d4d}.dark\:hover\:bg-red-950\/30:hover:is(.dark *){background-color:#450a0a4d}.dark\:hover\:bg-surface-overlay:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-surface-overlay) / var(--tw-bg-opacity,1))}.dark\:hover\:bg-white\/10:hover:is(.dark *){background-color:#ffffff1a}.dark\:hover\:bg-white\/\[0\.025\]:hover:is(.dark *){background-color:#ffffff06}.dark\:hover\:bg-white\/\[0\.035\]:hover:is(.dark *){background-color:#ffffff09}.dark\:hover\:bg-white\/\[0\.03\]:hover:is(.dark *){background-color:#ffffff08}.dark\:hover\:bg-white\/\[0\.04\]:hover:is(.dark *){background-color:#ffffff0a}.dark\:hover\:bg-white\/\[0\.05\]:hover:is(.dark *){background-color:#ffffff0d}.dark\:hover\:bg-white\/\[0\.06\]:hover:is(.dark *){background-color:#ffffff0f}.dark\:hover\:bg-white\/\[0\.08\]:hover:is(.dark *){background-color:#ffffff14}.dark\:hover\:bg-yellow-900\/20:hover:is(.dark *){background-color:#ff7b5233}.dark\:hover\:text-dark-600:hover:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-dark-600) / var(--tw-text-opacity,1))}.dark\:hover\:text-dark-700:hover:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-dark-700) / var(--tw-text-opacity,1))}.dark\:hover\:text-dark-800:hover:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-dark-800) / var(--tw-text-opacity,1))}.dark\:hover\:text-dark-900:hover:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-dark-900) / var(--tw-text-opacity,1))}.dark\:hover\:text-dark-950:hover:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-dark-950) / var(--tw-text-opacity,1))}.dark\:hover\:text-gray-200:hover:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-200) / var(--tw-text-opacity,1))}.dark\:hover\:text-gray-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-300) / var(--tw-text-opacity,1))}.dark\:hover\:text-gray-950:hover:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-950) / var(--tw-text-opacity,1))}.dark\:hover\:text-primary-100:hover:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-100) / var(--tw-text-opacity,1))}.dark\:hover\:text-primary-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-300) / var(--tw-text-opacity,1))}.dark\:hover\:text-primary-400:hover:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-400) / var(--tw-text-opacity,1))}.dark\:hover\:text-red-200:hover:is(.dark *){--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.dark\:hover\:text-red-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.dark\:hover\:text-red-400:hover:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:hover\:file\:bg-dark-300:is(.dark *)::file-selector-button:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-dark-300) / var(--tw-bg-opacity,1))}.dark\:focus\:border-primary-400:focus:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-primary-400) / var(--tw-border-opacity,1))}.dark\:focus\:border-primary-500:focus:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-primary-500) / var(--tw-border-opacity,1))}.dark\:focus\:ring-primary-400:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-400) / var(--tw-ring-opacity,1))}.dark\:focus\:ring-primary-400\/20:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400) / .2)}.dark\:focus\:ring-primary-900\/30:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-900) / .3)}.dark\:focus\:ring-offset-dark-100:focus:is(.dark *){--tw-ring-offset-color:rgb(var(--color-dark-100) / 1)}.dark\:focus-visible\:ring-primary-400:focus-visible:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-400) / var(--tw-ring-opacity,1))}.dark\:focus-visible\:ring-offset-dark-100:focus-visible:is(.dark *){--tw-ring-offset-color:rgb(var(--color-dark-100) / 1)}.dark\:active\:bg-dark-100:active:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-dark-100) / var(--tw-bg-opacity,1))}.dark\:active\:bg-dark-400:active:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-dark-400) / var(--tw-bg-opacity,1))}.dark\:active\:bg-red-900\/30:active:is(.dark *){background-color:#7f1d1d4d}.dark\:disabled\:bg-primary-800\/60:disabled:is(.dark *){background-color:rgb(var(--color-primary-800) / .6)}.dark\:disabled\:text-white\/40:disabled:is(.dark *){color:#fff6}.dark\:disabled\:hover\:bg-primary-800\/60:hover:disabled:is(.dark *){background-color:rgb(var(--color-primary-800) / .6)}.group:hover .dark\:group-hover\:text-dark-700:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-dark-700) / var(--tw-text-opacity,1))}.group:hover .dark\:group-hover\:text-dark-800:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-dark-800) / var(--tw-text-opacity,1))}.group:hover .dark\:group-hover\:text-gray-200:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-200) / var(--tw-text-opacity,1))}.peer:focus~.dark\:peer-focus\:ring-primary-800:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-800) / var(--tw-ring-opacity,1))}@media (prefers-reduced-motion:reduce){.motion-reduce\:dark\:text-dark-600:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-dark-600) / var(--tw-text-opacity,1))}}@media not all and (min-width:1024px){.max-lg\:ms-0{margin-inline-start:0}.max-lg\:ms-16{margin-inline-start:4rem}.max-lg\:border-e{border-inline-end-width:1px}}@media not all and (min-width:640px){.max-sm\:ms-64{margin-inline-start:16rem}.max-sm\:hidden{display:none}.max-sm\:w-\[calc\(100vw-4\.5rem\)\]{width:calc(100vw - 4.5rem)}.max-sm\:max-w-80{max-width:20rem}}@media (min-width:475px){.xs\:inline{display:inline}}@media (min-width:640px){.sm\:end-6{inset-inline-end:1.5rem}.sm\:end-\[4\.25rem\]{inset-inline-end:4.25rem}.sm\:top-6{top:1.5rem}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:m-5{margin:1.25rem}.sm\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.sm\:mx-auto{margin-left:auto;margin-right:auto}.sm\:mb-10{margin-bottom:2.5rem}.sm\:mt-4{margin-top:1rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:inline-flex{display:inline-flex}.sm\:hidden{display:none}.sm\:h-10{height:2.5rem}.sm\:h-6{height:1.5rem}.sm\:h-8{height:2rem}.sm\:h-80{height:20rem}.sm\:h-\[min\(1000px\,calc\(100vh-2\.5rem\)\)\]{height:min(1000px,100vh - 2.5rem)}.sm\:max-h-80{max-height:20rem}.sm\:max-h-\[90dvh\]{max-height:90dvh}.sm\:w-10{width:2.5rem}.sm\:w-52{width:13rem}.sm\:w-72{width:18rem}.sm\:w-8{width:2rem}.sm\:w-\[210px\]{width:210px}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-48{max-width:12rem}.sm\:max-w-\[1280px\]{max-width:1280px}.sm\:max-w-\[70\%\]{max-width:70%}.sm\:max-w-lg{max-width:32rem}.sm\:max-w-md{max-width:28rem}.sm\:columns-2{-moz-columns:2;columns:2}.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\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:items-end{align-items:flex-end}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-0{gap:0}.sm\:gap-0\.5{gap:.125rem}.sm\:gap-1\.5{gap:.375rem}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:overflow-y-auto{overflow-y:auto}.sm\:overflow-x-hidden{overflow-x:hidden}.sm\:rounded-\[24px\]{border-radius:24px}.sm\:border{border-width:1px}.sm\:border-b-0{border-bottom-width:0}.sm\:border-black\/\[0\.04\]{border-color:#0000000a}.sm\:p-10{padding:2.5rem}.sm\:p-2{padding:.5rem}.sm\:p-4{padding:1rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:px-2\.5{padding-left:.625rem;padding-right:.625rem}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:py-2{padding-top:.5rem;padding-bottom:.5rem}.sm\:py-24{padding-top:6rem;padding-bottom:6rem}.sm\:py-3{padding-top:.75rem;padding-bottom:.75rem}.sm\:py-4{padding-top:1rem;padding-bottom:1rem}.sm\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.sm\:pb-2{padding-bottom:.5rem}.sm\:pb-20{padding-bottom:5rem}.sm\:pb-3{padding-bottom:.75rem}.sm\:pb-6{padding-bottom:1.5rem}.sm\:pb-9{padding-bottom:2.25rem}.sm\:pt-0{padding-top:0}.sm\:pt-1{padding-top:.25rem}.sm\:pt-10{padding-top:2.5rem}.sm\:pt-5{padding-top:1.25rem}.sm\:pt-6{padding-top:1.5rem}.sm\:pt-\[22px\]{padding-top:22px}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-\[13\.5px\]{font-size:13.5px}.sm\:text-\[13px\]{font-size:13px}.sm\:text-base{font-size:.9375rem;line-height:1.625}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.8125rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:leading-7{line-height:1.75rem}.sm\:opacity-0{opacity:0}.sm\:opacity-100{opacity:1}.sm\:transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.sm\:duration-150{transition-duration:.15s}.group:focus-within .sm\:group-focus-within\:block{display:block}.group:focus-within .sm\:group-focus-within\:hidden{display:none}.group:focus-within .sm\:group-focus-within\:opacity-100{opacity:1}.group:hover .sm\:group-hover\:block{display:block}.group:hover .sm\:group-hover\:hidden{display:none}.group:hover .sm\:group-hover\:opacity-100,.group:focus-visible .sm\:group-focus-visible\:opacity-100{opacity:1}.sm\:dark\:border-white\/\[0\.06\]:is(.dark *){border-color:#ffffff0f}}@media (min-width:768px){.md\:inset-x-5{left:1.25rem;right:1.25rem}.md\:col-span-2{grid-column:span 2/span 2}.md\:block{display:block}.md\:inline{display:inline}.md\:flex{display:flex}.md\:inline-flex{display:inline-flex}.md\:hidden{display:none}.md\:w-72{width:18rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-end{align-items:flex-end}.md\:justify-end{justify-content:flex-end}.md\:justify-between{justify-content:space-between}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:px-5{padding-left:1.25rem;padding-right:1.25rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:px-8{padding-left:2rem;padding-right:2rem}}@media (min-width:1024px){.lg\:invisible{visibility:hidden}.lg\:-right-12{right:-3rem}.lg\:top-0{top:0}.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:h-96{height:24rem}.lg\:max-h-96{max-height:24rem}.lg\:max-h-\[90vh\]{max-height:90vh}.lg\:max-h-none{max-height:none}.lg\:min-h-0{min-height:0}.lg\:w-80{width:20rem}.lg\:flex-1{flex:1}.lg\:columns-3{-moz-columns:3;columns:3}.lg\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.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\(0\,1fr\)_360px\]{grid-template-columns:minmax(0,1fr) 360px}.lg\:grid-cols-\[minmax\(15rem\,0\.75fr\)_minmax\(0\,2\.25fr\)\]{grid-template-columns:minmax(15rem,.75fr) minmax(0,2.25fr)}.lg\:grid-cols-\[minmax\(15rem\,0\.8fr\)_minmax\(0\,1\.6fr\)\]{grid-template-columns:minmax(15rem,.8fr) minmax(0,1.6fr)}.lg\:flex-row{flex-direction:row}.lg\:flex-col{flex-direction:column}.lg\:justify-center{justify-content:center}.lg\:rounded-\[1\.5rem\]{border-radius:1.5rem}.lg\:border{border-width:1px}.lg\:border-b-0{border-bottom-width:0}.lg\:border-e{border-inline-end-width:1px}.lg\:border-s{border-inline-start-width:1px}.lg\:border-black\/\[0\.06\]{border-color:#0000000f}.lg\:border-gray-200{--tw-border-opacity:1;border-color:rgb(var(--color-gray-200) / var(--tw-border-opacity,1))}.lg\:p-5{padding:1.25rem}.lg\:px-0{padding-left:0;padding-right:0}.lg\:px-12{padding-left:3rem;padding-right:3rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-12{padding-top:3rem;padding-bottom:3rem}.lg\:py-20{padding-top:5rem;padding-bottom:5rem}.lg\:pb-16{padding-bottom:4rem}.lg\:pb-2{padding-bottom:.5rem}.lg\:pe-2{padding-inline-end:.5rem}.lg\:ps-5{padding-inline-start:1.25rem}.lg\:pt-1\.5{padding-top:.375rem}.lg\:shadow-\[0_1px_2px_rgba\(0\,0\,0\,0\.03\)\,0_18px_60px_rgba\(15\,23\,42\,0\.04\)\]{--tw-shadow:0 1px 2px #00000008,0 18px 60px #0f172a0a;--tw-shadow-colored:0 1px 2px var(--tw-shadow-color), 0 18px 60px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.lg\:shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.dark\:lg\:border-dark-300:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-dark-300) / var(--tw-border-opacity,1))}.dark\:lg\:border-white\/\[0\.07\]:is(.dark *){border-color:#ffffff12}}@media (min-width:1280px){.xl\:block{display:block}.xl\:flex{display:flex}.xl\:grid{display:grid}.xl\:hidden{display:none}.xl\:w-60{width:15rem}.xl\:w-7{width:1.75rem}.xl\:w-9{width:2.25rem}.xl\:columns-4{-moz-columns:4;columns:4}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-\[1\.15fr_0\.85fr\]{grid-template-columns:1.15fr .85fr}.xl\:grid-cols-\[360px_minmax\(0\,1fr\)\]{grid-template-columns:360px minmax(0,1fr)}.xl\:px-16{padding-left:4rem;padding-right:4rem}.xl\:text-5xl{font-size:3rem;line-height:1}}@media (min-width:1536px){.\32 xl\:inline{display:inline}}.ltr\:-translate-x-full:where([dir=ltr],[dir=ltr] *){--tw-translate-x:-100%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:-translate-x-1:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:-translate-x-5:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-1.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:-translate-x-6:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-1.5rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:-translate-x-full:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-100%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:translate-x-full:where([dir=rtl],[dir=rtl] *){--tw-translate-x:100%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:rotate-180:where([dir=rtl],[dir=rtl] *){--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:rotate-90:where([dir=rtl],[dir=rtl] *){--tw-rotate:90deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:leading-\[1\.15\]:where([dir=rtl],[dir=rtl] *){line-height:1.15}.rtl\:tracking-normal:where([dir=rtl],[dir=rtl] *){letter-spacing:0}.peer:checked~.rtl\:peer-checked\:after\:-translate-x-full:where([dir=rtl],[dir=rtl] *):after{content:var(--tw-content);--tw-translate-x:-100%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}.\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar{display:none}.\[\&\>li\:first-child\]\:mt-auto>li:first-child{margin-top:auto}.\[\&\>li\:last-child\]\:mb-auto>li:last-child{margin-bottom:auto}.last\:\[\&\>td\]\:border-b-0>td:last-child{border-bottom-width:0}.\[\&_\.katex-display\]\:overflow-x-auto .katex-display{overflow-x:auto}.\[\&_\.katex-display\]\:overflow-y-hidden .katex-display{overflow-y:hidden}.\[\&_\.katex-display\]\:py-2 .katex-display{padding-top:.5rem;padding-bottom:.5rem}.\[\&_\.katex\]\:text-inherit .katex{color:inherit}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,r as n,t as r}from"./react-vendor-D0Ec-185.js";import{t as i}from"./logger-DnuT4jgB.js";import{t as ee}from"./useTranslation-D0mJ4NnO.js";import{t as a}from"./utils-Bn0RE9_8.js";import{T as te,t as ne}from"./chatStore-8jYk48hC.js";import{Dn as re,Gn as ie,Jn as ae,Kn as oe,Mn as o,Yt as se,Zt as s,g as c,jn as l,n as ce,pn as u,wn as le,yn as ue}from"./ui-vendor-6y6qiSk5.js";import{t as d}from"./appStore-BXbVcTeo.js";import{t as f}from"./Button-BQ5JnUVj.js";import{i as de,r as p}from"./artifactHtml-DDmfpcB0.js";import{t as m}from"./OptimizedSyntaxHighlighter-CtQ_FGCX.js";import{t as fe}from"./ArtifactSandboxFrame-DsZW0Axy.js";var h=e(t(),1),pe=n(),g=r(),me=i(`components:artifact-slide-out-panel`),_=320,he=.9,ge=400,_e=`(min-width: 768px)`,ve=`(min-width: 1024px)`,v=e=>{let[t,n]=(0,h.useState)(()=>typeof window<`u`&&window.matchMedia(e).matches);return(0,h.useEffect)(()=>{let t=window.matchMedia(e),r=()=>n(t.matches);return t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)},[e]),t},y=()=>{let{t:e,i18n:t}=ee(),n=te(t.language),{artifactPanelOpen:r,artifactPanelArtifact:i,openArtifactPanel:y,closeArtifactPanel:b,theme:x,artifactPanelWidth:S,setArtifactPanelWidth:C,artifactPanelResizing:w,setArtifactPanelResizing:T,sidebarOpen:E,sidebarCompact:D}=d(),O=v(_e),k=v(ve)?E?D?64:288:0:E&&D?64:0,A=(0,h.useCallback)(()=>O?Math.max(_,window.innerWidth-k-ge):window.innerWidth*he,[O,k]),j=ne(e=>e.currentSession),M=h.useMemo(()=>{if(!i)return[];let e=i.title.trim().toLowerCase(),t=(j?.messages??[]).flatMap(e=>e.artifacts??[]).filter(t=>t.title.trim().toLowerCase()===e);return t.some(e=>e.id===i.id||e.content===i.content)?t:[...t,i]},[j,i]),N=M.findIndex(e=>e.id===i?.id);N===-1&&i&&(N=M.findIndex(e=>e.content===i.content));let[P,F]=(0,h.useState)(!1),[I,L]=(0,h.useState)(`preview`),R=(0,h.useRef)(null),z=(0,h.useRef)(null),B=(0,h.useRef)(0),V=(0,h.useRef)(0),H=(0,h.useRef)(null),U=(0,h.useRef)(null),W=(0,h.useRef)(S),G=i?.id??null;G!==z.current&&(z.current=G,I!==`preview`&&L(`preview`));let K=(0,h.useCallback)(e=>{W.current=e,U.current===null&&(U.current=window.requestAnimationFrame(()=>{U.current=null,C(W.current)}))},[C]),q=(0,h.useCallback)(()=>{H.current=null,T(!1),U.current!==null&&(window.cancelAnimationFrame(U.current),U.current=null,C(W.current))},[T,C]),ye=(0,h.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),H.current=e.pointerId,V.current=S,B.current=e.clientX,W.current=S,e.currentTarget.setPointerCapture(e.pointerId),T(!0)},[S,T]),J=(0,h.useCallback)(e=>{if(!w||H.current!==null&&e.pointerId!==H.current)return;e.preventDefault();let t=(B.current-e.clientX)*(n?-1:1),r=Math.min(A(),Math.max(_,V.current+t));K(r)},[w,n,K,A]);if((0,h.useEffect)(()=>{if(!w){document.body.style.userSelect=``,document.body.style.cursor=``;return}let e=e=>{(H.current===null||e.pointerId===H.current)&&q()};return window.addEventListener(`pointermove`,J,{passive:!1}),window.addEventListener(`pointerup`,e),window.addEventListener(`pointercancel`,e),window.addEventListener(`blur`,q),document.body.style.userSelect=`none`,document.body.style.cursor=`col-resize`,()=>{window.removeEventListener(`pointermove`,J),window.removeEventListener(`pointerup`,e),window.removeEventListener(`pointercancel`,e),window.removeEventListener(`blur`,q),document.body.style.userSelect=``,document.body.style.cursor=``}},[w,J,q]),(0,h.useEffect)(()=>{let e=()=>{let e=A();S>e&&C(e)};return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[S,C,A]),(0,h.useEffect)(()=>{if(O)return;let e=e=>{e.key===`Escape`&&r&&b()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r,b,O]),(0,h.useEffect)(()=>{if(O)return;let e=e=>{w||R.current&&!R.current.contains(e.target)&&r&&b()},t=setTimeout(()=>{window.addEventListener(`mousedown`,e)},100);return()=>{clearTimeout(t),window.removeEventListener(`mousedown`,e)}},[r,b,w,O]),!i)return null;let Y=i,be=async e=>{try{await navigator.clipboard.writeText(e),F(!0),setTimeout(()=>F(!1),2e3)}catch(e){me.error(`Failed to copy:`,e)}},xe=()=>{let e=Y.type===`html`?p(Y.content,Y.title):Y.content,t=new Blob([e],{type:Se(Y.type)}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`${Y.title}.${Ce(Y.type)}`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)},Se=e=>{switch(e){case`html`:return`text/html`;case`react`:return`text/javascript`;case`svg`:return`image/svg+xml`;case`css`:return`text/css`;case`json`:return`application/json`;default:return`text/plain`}},Ce=e=>{switch(e){case`html`:return`html`;case`react`:return`jsx`;case`svg`:return`svg`;case`css`:return`css`;case`json`:return`json`;default:return`txt`}},we=()=>{switch(Y.type){case`html`:return(0,g.jsx)(s,{className:`h-5 w-5`});case`react`:return(0,g.jsx)(l,{className:`h-5 w-5`});case`svg`:return(0,g.jsx)(u,{className:`h-5 w-5`});case`code`:return(0,g.jsx)(l,{className:`h-5 w-5`});default:return(0,g.jsx)(u,{className:`h-5 w-5`})}},X=()=>(0,g.jsx)(`div`,{"data-testid":`artifact-html-fallback`,className:`w-full h-full flex items-center justify-center bg-gray-50 dark:bg-dark-100 rounded-lg border border-gray-200 dark:border-dark-200 p-4`,children:(0,g.jsxs)(`div`,{className:`max-w-sm text-center`,children:[(0,g.jsx)(c,{className:`h-8 w-8 text-primary-500 mx-auto mb-3`}),(0,g.jsx)(`p`,{className:`text-sm font-medium text-gray-900 dark:text-gray-100`,children:e(`artifacts.previewUnavailable`)}),(0,g.jsx)(`p`,{className:`mt-1 text-sm text-gray-600 dark:text-gray-400`,children:e(`artifacts.previewUnavailableDescription`)}),(0,g.jsxs)(f,{variant:`outline`,size:`sm`,onClick:()=>L(`code`),className:`mt-4`,children:[(0,g.jsx)(o,{className:`h-3.5 w-3.5 me-1.5`}),e(`artifacts.code`)]})]})}),Z=e=>Y.content.trim()?(0,g.jsx)(fe,{content:Y.content,title:Y.title,kind:e,colorScheme:x.mode===`light`?`light`:`dark`,className:a(`w-full h-full border-0 rounded-lg bg-white`,w&&`pointer-events-none`),fallback:X()}):X(),Te=()=>(0,g.jsx)(`iframe`,{"data-testid":`artifact-svg-preview`,srcDoc:de(Y.content,Y.title),className:`w-full h-full border-0 rounded-lg bg-white`,sandbox:``,title:Y.title}),Q=()=>(0,g.jsx)(`div`,{className:`h-full overflow-auto`,children:(0,g.jsx)(m,{language:(()=>{if(Y.language)return Y.language;switch(Y.type){case`html`:return`html`;case`react`:return`jsx`;case`svg`:return`xml`;case`json`:return`json`;default:return`text`}})(),isDark:x.mode!==`light`,className:`!m-0 !rounded-lg !h-full`,codeTheme:`night`,showLineNumbers:!0,backgroundColor:x.mode===`light`?void 0:`rgb(var(--color-dark-50))`,children:Y.content})}),Ee=()=>{try{let e=JSON.parse(Y.content),t=JSON.stringify(e,null,2);return(0,g.jsx)(`div`,{className:`h-full overflow-auto`,children:(0,g.jsx)(m,{language:`json`,isDark:x.mode!==`light`,className:`!m-0 !rounded-lg !h-full`,codeTheme:`night`,showLineNumbers:!0,backgroundColor:x.mode===`light`?void 0:`rgb(var(--color-dark-50))`,children:t})})}catch{return(0,g.jsx)(`div`,{className:`w-full h-full flex items-center justify-center bg-gray-50 dark:bg-dark-100 rounded-lg`,children:(0,g.jsxs)(`div`,{className:`text-center`,children:[(0,g.jsx)(c,{className:`h-8 w-8 text-primary-500 mx-auto mb-2`}),(0,g.jsx)(`p`,{className:`text-sm text-gray-600 dark:text-dark-600`,children:e(`artifacts.invalidJson`)})]})})}},De=()=>{if(I===`code`)return Q();switch(Y.type){case`html`:return Z(`html`);case`react`:return Z(`react`);case`mermaid`:return Z(`mermaid`);case`svg`:return Te();case`json`:return Ee();default:return Q()}},Oe=()=>Y.type===`html`||Y.type===`svg`||Y.type===`react`||Y.type===`mermaid`,$=typeof window<`u`&&window.innerWidth<640,ke=$?`100%`:`${S}px`,Ae=(0,g.jsxs)(g.Fragment,{children:[!O&&(0,g.jsx)(`div`,{className:a(`fixed inset-0 bg-black/30 dark:bg-black/50 z-40 transition-opacity duration-300`,r?`opacity-100`:`opacity-0 pointer-events-none`)}),w&&(0,g.jsx)(`div`,{className:a(`fixed inset-0 cursor-col-resize select-none`,O?`z-40`:`z-[55]`),"aria-hidden":`true`}),(0,g.jsxs)(`div`,{ref:R,"data-testid":`artifact-slide-out-panel`,style:{width:ke},className:a(`fixed top-0 end-0 h-full`,O?`z-30`:`z-50`,`bg-white dark:bg-dark-25`,`shadow-2xl border-s border-gray-200 dark:border-dark-200`,`flex flex-col`,`transform transition-transform duration-300 ease-out`,r?`translate-x-0`:`translate-x-full rtl:-translate-x-full`),children:[!$&&(0,g.jsxs)(`div`,{onPointerDown:ye,"data-testid":`artifact-resize-handle`,title:e(`artifacts.dragEdgeToResize`),className:a(`absolute start-0 top-0 bottom-0 w-4 -ms-2 cursor-col-resize z-[56]`,`flex items-center justify-center`,`touch-none select-none group`),children:[(0,g.jsx)(`div`,{className:a(`w-1 h-16 rounded-full transition-all duration-200`,`bg-gray-300 dark:bg-dark-300`,`group-hover:bg-primary-500 group-hover:h-24`,w&&`bg-primary-500 h-24`)}),(0,g.jsx)(`div`,{className:a(`absolute left-1/2 -translate-x-1/2 opacity-0 group-hover:opacity-100 transition-opacity`,`text-gray-400 dark:text-dark-500`,w&&`opacity-100`),children:(0,g.jsx)(se,{className:`h-4 w-4`})})]}),(0,g.jsxs)(`div`,{className:`flex items-center gap-1.5 border-b border-gray-200 dark:border-dark-200 ps-3 pe-2 py-1.5`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0 flex-1`,children:[(0,g.jsx)(`div`,{className:`text-gray-600 dark:text-gray-400 flex-shrink-0`,children:we()}),(0,g.jsx)(`h2`,{className:`text-sm font-semibold text-gray-900 dark:text-gray-100 truncate`,title:Y.description||`${e(`artifacts.created`)}: ${new Date(Y.createdAt).toLocaleString()}`,children:Y.title}),(0,g.jsx)(`span`,{className:`hidden sm:inline text-[10px] bg-primary-50 dark:bg-primary-900/20 text-primary-700 dark:text-primary-300 px-1.5 py-0.5 rounded-full font-medium flex-shrink-0`,children:Y.type.toUpperCase()})]}),M.length>1&&N!==-1&&(0,g.jsxs)(`div`,{className:`flex items-center gap-0.5 flex-shrink-0`,children:[(0,g.jsx)(f,{variant:`ghost`,size:`sm`,disabled:N===0,onClick:()=>y(M[N-1]),className:`h-7 w-7 p-0`,title:e(`artifacts.previousVersion`),children:(0,g.jsx)(oe,{className:`h-3.5 w-3.5 rtl:rotate-180`})}),(0,g.jsx)(`span`,{className:`whitespace-nowrap text-xs tabular-nums text-gray-500 dark:text-dark-600`,children:e(`artifacts.versionOf`,{current:N+1,total:M.length})}),(0,g.jsx)(f,{variant:`ghost`,size:`sm`,disabled:N===M.length-1,onClick:()=>y(M[N+1]),className:`h-7 w-7 p-0`,title:e(`artifacts.nextVersion`),children:(0,g.jsx)(ie,{className:`h-3.5 w-3.5 rtl:rotate-180`})})]}),Oe()&&(0,g.jsxs)(`div`,{className:`flex items-center gap-0.5 flex-shrink-0`,children:[(0,g.jsxs)(f,{variant:I===`preview`?`primary`:`ghost`,size:`sm`,onClick:()=>L(`preview`),className:`h-7 px-2 text-xs`,title:e(`artifacts.previewMode`),children:[(0,g.jsx)(ue,{className:`h-3.5 w-3.5 me-1`}),e(`artifacts.preview`)]}),(0,g.jsxs)(f,{variant:I===`code`?`primary`:`ghost`,size:`sm`,onClick:()=>L(`code`),className:`h-7 px-2 text-xs`,title:e(`artifacts.codeMode`),children:[(0,g.jsx)(o,{className:`h-3.5 w-3.5 me-1`}),e(`artifacts.code`)]})]}),(0,g.jsxs)(`div`,{className:`flex items-center gap-0.5 flex-shrink-0`,children:[(0,g.jsx)(f,{variant:`ghost`,size:`sm`,onClick:()=>be(Y.content),className:`h-7 w-7 p-0 hover:bg-gray-100 dark:hover:bg-dark-200`,title:e(`artifacts.copyContent`),children:P?(0,g.jsx)(ae,{className:`h-3.5 w-3.5 text-green-500`}):(0,g.jsx)(re,{className:`h-3.5 w-3.5`})}),(0,g.jsx)(f,{variant:`ghost`,size:`sm`,onClick:xe,className:`h-7 w-7 p-0 hover:bg-gray-100 dark:hover:bg-dark-200`,title:e(`artifacts.download`),children:(0,g.jsx)(le,{className:`h-3.5 w-3.5`})}),(0,g.jsx)(f,{variant:`ghost`,size:`sm`,onClick:b,className:`h-7 w-7 p-0 hover:bg-gray-100 dark:hover:bg-dark-200`,title:e(O?`common.close`:`artifacts.closePanelEsc`),children:(0,g.jsx)(ce,{className:`h-4 w-4`})})]})]}),(0,g.jsx)(`div`,{className:`flex-1 p-2 overflow-hidden`,children:De()})]})]});return(0,pe.createPortal)(Ae,document.body)};export{y as ArtifactSlideOutPanel};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,r as n,t as r}from"./react-vendor-D0Ec-185.js";import{t as i}from"./useTranslation-D0mJ4NnO.js";import{t as a}from"./utils-Bn0RE9_8.js";import{$ as o,Pn as s,br as c,n as l,v as u}from"./ui-vendor-6y6qiSk5.js";import{t as d}from"./workApi-xhF57amo.js";import{T as f}from"./api-DQdJeQjd.js";import{c as p,d as m,l as h,n as g}from"./calendarDates-Co3o_05Y.js";var _=e(t(),1),v=n(),y=(e,t,n)=>new Intl.DateTimeFormat(n,{hour:`numeric`,minute:`2-digit`}).format(new Date(2024,0,1,e,t)),b=(e,t)=>new Intl.DateTimeFormat(t,{weekday:`long`}).format(new Date(2024,0,7+e)),x=(e,t,n)=>new Intl.DateTimeFormat(n,{month:`long`,day:`numeric`}).format(new Date(2024,e-1,t));function S(e,t,n){switch(e.kind){case`once`:return n(`automations.trigger.once`,{when:new Intl.DateTimeFormat(t,{dateStyle:`medium`,timeStyle:`short`}).format(new Date(e.at))});case`hourly`:{let t=e.startHour!==void 0||e.endHour!==void 0?` (${e.startHour??0}–${e.endHour??23})`:``;return n(`automations.trigger.hourly`,{minute:String(e.minute).padStart(2,`0`)})+t}case`daily`:return n(`automations.trigger.daily`,{time:y(e.hour,e.minute,t)});case`weekly`:return n(`automations.trigger.weekly`,{day:b(e.dayOfWeek,t),time:y(e.hour,e.minute,t)});case`monthly`:return n(`automations.trigger.monthly`,{day:e.dayOfMonth,time:y(e.hour,e.minute,t)});case`yearly`:return n(`automations.trigger.yearly`,{date:x(e.month,e.dayOfMonth,t),time:y(e.hour,e.minute,t)})}}function C(e,t,n){return e.map(e=>S(e,t,n)).join(` · `)}function w(e){let t=(e,t,n)=>typeof e==`number`&&Number.isSafeInteger(e)&&e>=t&&e<=n;switch(e.kind){case`once`:return t(e.at,0,864e13);case`hourly`:return t(e.minute,0,59)&&(e.startHour===void 0||t(e.startHour,0,23))&&(e.endHour===void 0||t(e.endHour,0,23))&&(e.startHour===void 0||e.endHour===void 0||e.endHour>=e.startHour);case`daily`:return t(e.hour,0,23)&&t(e.minute,0,59);case`weekly`:return t(e.dayOfWeek,0,6)&&t(e.hour,0,23)&&t(e.minute,0,59);case`monthly`:return t(e.dayOfMonth,1,31)&&t(e.hour,0,23)&&t(e.minute,0,59);case`yearly`:return t(e.month,1,12)&&t(e.dayOfMonth,1,31)&&t(e.hour,0,23)&&t(e.minute,0,59);default:return!1}}var T=r(),E=[`once`,`hourly`,`daily`,`weekly`,`monthly`,`yearly`],D=`rounded-lg border border-black/[0.08] bg-white px-2 py-1 text-[13px] text-gray-900 focus:border-primary-500/40 focus:outline-none dark:border-white/[0.08] dark:bg-dark-100 dark:text-dark-900`,O=(e,t)=>`${String(e).padStart(2,`0`)}:${String(t).padStart(2,`0`)}`,k=e=>{switch(e){case`once`:{let e=new Date;return e.setHours(e.getHours()+1,0,0,0),{kind:`once`,at:e.getTime()}}case`hourly`:return{kind:`hourly`,minute:0};case`daily`:return{kind:`daily`,hour:8,minute:0};case`weekly`:return{kind:`weekly`,dayOfWeek:1,hour:9,minute:0};case`monthly`:return{kind:`monthly`,dayOfMonth:1,hour:9,minute:0};case`yearly`:return{kind:`yearly`,month:1,dayOfMonth:1,hour:9,minute:0}}};function A({trigger:e,onChange:t,onRemove:n}){let{t:r,i18n:a}=i(),o=m(a.language,`short`),c=new Intl.DateTimeFormat(a.language,{month:`long`}),l=n=>{let[r,i]=(n||`00:00`).split(`:`).map(Number);e.kind!==`hourly`&&e.kind!==`once`&&t({...e,hour:r,minute:i})},d=e.kind!==`once`&&e.kind!==`hourly`?(0,T.jsx)(`input`,{type:`time`,"aria-label":r(`automations.form.time`),value:O(e.hour,e.minute),onChange:e=>l(e.target.value),className:D}):null;return(0,T.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 rounded-xl border border-black/[0.06] bg-black/[0.02] px-2.5 py-2 dark:border-white/[0.06] dark:bg-white/[0.03]`,"data-testid":`automation-trigger`,children:[(0,T.jsx)(s,{className:`h-3.5 w-3.5 shrink-0 text-gray-400 dark:text-dark-500`}),(0,T.jsx)(`select`,{"aria-label":r(`automations.form.frequency`),value:e.kind,onChange:e=>t(k(e.target.value)),className:D,"data-testid":`automation-trigger-kind`,children:E.map(e=>(0,T.jsx)(`option`,{value:e,children:r(`automations.kind.${e}`)},e))}),e.kind===`once`&&(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`input`,{type:`date`,"aria-label":r(`calendar.date`),value:p(e.at),onChange:n=>t({...e,at:g(n.target.value,h(e.at))}),className:D}),(0,T.jsx)(`input`,{type:`time`,"aria-label":r(`automations.form.time`),value:h(e.at),onChange:n=>t({...e,at:g(p(e.at),n.target.value)}),className:D})]}),e.kind===`hourly`&&(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`label`,{className:`flex items-center gap-1 text-[12px] text-gray-500 dark:text-dark-500`,children:[r(`automations.form.minute`),(0,T.jsx)(`input`,{type:`number`,min:0,max:59,value:e.minute,onChange:n=>t({...e,minute:Math.min(59,Math.max(0,Number(n.target.value)))}),className:`${D} w-16`})]}),(0,T.jsxs)(`label`,{className:`flex items-center gap-1 text-[12px] text-gray-500 dark:text-dark-500`,children:[r(`automations.form.fromHour`),(0,T.jsx)(`input`,{type:`number`,min:0,max:23,value:e.startHour??0,onChange:n=>t({...e,startHour:Math.min(23,Math.max(0,Number(n.target.value)))}),className:`${D} w-16`})]}),(0,T.jsxs)(`label`,{className:`flex items-center gap-1 text-[12px] text-gray-500 dark:text-dark-500`,children:[r(`automations.form.toHour`),(0,T.jsx)(`input`,{type:`number`,min:0,max:23,value:e.endHour??23,onChange:n=>t({...e,endHour:Math.min(23,Math.max(0,Number(n.target.value)))}),className:`${D} w-16`})]})]}),e.kind===`weekly`&&(0,T.jsx)(`select`,{"aria-label":r(`automations.form.weekday`),value:e.dayOfWeek,onChange:n=>t({...e,dayOfWeek:Number(n.target.value)}),className:D,children:o.map((e,t)=>(0,T.jsx)(`option`,{value:t,children:e},e))}),(e.kind===`monthly`||e.kind===`yearly`)&&(0,T.jsxs)(`label`,{className:`flex items-center gap-1 text-[12px] text-gray-500 dark:text-dark-500`,children:[r(`automations.form.dayOfMonth`),(0,T.jsx)(`input`,{type:`number`,min:1,max:31,value:e.dayOfMonth,onChange:n=>t({...e,dayOfMonth:Math.min(31,Math.max(1,Number(n.target.value)))}),className:`${D} w-16`})]}),e.kind===`yearly`&&(0,T.jsx)(`select`,{"aria-label":r(`automations.form.month`),value:e.month,onChange:n=>t({...e,month:Number(n.target.value)}),className:D,children:Array.from({length:12},(e,t)=>(0,T.jsx)(`option`,{value:t+1,children:c.format(new Date(2024,t,1))},t+1))}),d,n&&(0,T.jsx)(`button`,{type:`button`,onClick:n,"aria-label":r(`common.delete`),className:`ms-auto rounded-md p-1 text-red-500 transition-colors hover:bg-red-50 dark:hover:bg-red-900/20`,children:(0,T.jsx)(u,{className:`h-3.5 w-3.5`})})]})}var j=`w-full rounded-lg border border-black/[0.08] bg-white px-2.5 py-1.5 text-[13px] text-gray-900 focus:border-primary-500/40 focus:outline-none dark:border-white/[0.08] dark:bg-dark-100 dark:text-dark-900`,M=`mb-1 block text-[11px] font-medium uppercase tracking-wide text-gray-400 dark:text-dark-500`,N=e=>e.isPlugin&&e.pluginId?`plugin:${e.pluginId}`:e.isAgent&&e.agentId?`agent:${e.agentId}`:`ollama`;function P({open:e,automation:t,initial:n,fixedWorkTaskId:r,models:i,saving:a,onClose:o,onSave:s}){return e?(0,T.jsx)(F,{automation:t,initial:n,fixedWorkTaskId:r,models:i,saving:a,onClose:o,onSave:s},t?.id??n?.name??`new`):null}function F({automation:e,initial:t,fixedWorkTaskId:n,models:r,saving:s,onClose:u,onSave:p}){let{t:m}=i(),h=!!(n??e?.workTaskId),[g,y]=(0,_.useState)(e?.name??t?.name??``),[b,x]=(0,_.useState)(e?.instructions??t?.instructions??``),[S,C]=(0,_.useState)(e?.triggers??t?.triggers??[{kind:`daily`,hour:8,minute:0}]),[E,D]=(0,_.useState)(e?.model??``),[O,k]=(0,_.useState)(e?.notify??`app`),[P,F]=(0,_.useState)(e?.target??`chat`),[I,L]=(0,_.useState)(e?.workPolicyId??``),[R,z]=(0,_.useState)([]);(0,_.useEffect)(()=>{if(P!==`work`||h)return;let e=!1;return d.listPolicies().then(t=>{!e&&t.success&&Array.isArray(t.data)&&z(t.data)}).catch(()=>void 0),()=>{e=!0}},[P,h]);let[B,V]=(0,_.useState)(e?.webhookEnabled===!0),[H,U]=(0,_.useState)(null),[W,G]=(0,_.useState)(!1),K=async()=>{if(e){G(!0);try{let t=await f.rotateWebhookSecret(e.id);if(!t.success||!t.data)throw Error(t.error);V(!0),U(t.data)}catch{c.error(m(`automations.webhook.failed`,{defaultValue:`Could not update the webhook.`}))}finally{G(!1)}}},q=async()=>{if(e){G(!0);try{let t=await f.disableWebhook(e.id);if(!t.success)throw Error(t.error);V(!1),U(null)}catch{c.error(m(`automations.webhook.failed`,{defaultValue:`Could not update the webhook.`}))}finally{G(!1)}}},J=g.trim().length>0&&b.trim().length>0&&S.length>0&&S.every(w);return(0,v.createPortal)((0,T.jsx)(`div`,{className:`fixed inset-0 z-[2147483647] flex items-center justify-center bg-gray-950/55 p-4 backdrop-blur-md`,onClick:u,children:(0,T.jsxs)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-labelledby":`automation-modal-title`,"data-testid":`automation-modal`,className:`max-h-[90vh] w-full max-w-lg overflow-y-auto rounded-3xl border border-black/[0.07] bg-white p-6 shadow-[0_24px_80px_rgba(0,0,0,0.24)] animate-scale-in scrollbar-thin dark:border-white/[0.08] dark:bg-dark-25`,onClick:e=>e.stopPropagation(),children:[(0,T.jsxs)(`div`,{className:`mb-4 flex items-center justify-between`,children:[(0,T.jsx)(`h3`,{id:`automation-modal-title`,className:`text-lg font-medium tracking-[-0.02em] text-gray-950 dark:text-dark-950`,children:m(e?`automations.editAutomation`:`automations.newAutomation`)}),(0,T.jsx)(`button`,{onClick:u,"aria-label":m(`common.close`),className:`rounded-xl p-2 transition-colors hover:bg-gray-100 dark:hover:bg-dark-200`,children:(0,T.jsx)(l,{size:20,className:`text-gray-500`})})]}),(0,T.jsxs)(`div`,{className:`space-y-4`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`label`,{htmlFor:`automation-name`,className:M,children:m(`automations.form.name`)}),(0,T.jsx)(`input`,{id:`automation-name`,"data-testid":`automation-name`,type:`text`,value:g,onChange:e=>y(e.target.value),placeholder:m(`automations.form.namePlaceholder`),className:j,maxLength:200,autoFocus:!0})]}),(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`span`,{className:M,children:m(`automations.form.triggers`)}),(0,T.jsxs)(`div`,{className:`space-y-2`,children:[S.map((e,t)=>(0,T.jsx)(A,{trigger:e,onChange:e=>C(n=>n.map((n,r)=>r===t?e:n)),onRemove:S.length>1?()=>C(e=>e.filter((e,n)=>n!==t)):void 0},t)),S.length<5&&(0,T.jsxs)(`button`,{type:`button`,onClick:()=>C(e=>[...e,{kind:`daily`,hour:8,minute:0}]),"data-testid":`automation-add-trigger`,className:`flex items-center gap-1.5 rounded-lg px-2 py-1 text-[12px] font-medium text-primary-600 transition-colors hover:bg-primary-500/10 dark:text-primary-400`,children:[(0,T.jsx)(o,{className:`h-3.5 w-3.5`}),m(`automations.form.addTrigger`)]})]})]}),(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`label`,{htmlFor:`automation-instructions`,className:M,children:m(`automations.form.instructions`)}),(0,T.jsx)(`textarea`,{id:`automation-instructions`,"data-testid":`automation-instructions`,value:b,onChange:e=>x(e.target.value),placeholder:m(`automations.form.instructionsPlaceholder`),rows:5,className:j,maxLength:2e4})]}),h&&(0,T.jsx)(`p`,{"data-testid":`automation-task-bound-note`,className:`rounded-lg bg-primary-500/10 px-3 py-2 text-[12px] leading-relaxed text-primary-700 dark:text-primary-300`,children:m(`automations.form.taskBoundNote`,{defaultValue:`This routine runs inside the agent's own workspace and conversation, with the agent's model and runtime.`})}),(0,T.jsxs)(`div`,{className:a(`grid grid-cols-2 gap-3`,h&&`hidden`),children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`label`,{htmlFor:`automation-target`,className:M,children:m(`automations.form.target`)}),(0,T.jsxs)(`select`,{id:`automation-target`,"data-testid":`automation-target`,value:P,onChange:e=>F(e.target.value),className:j,children:[(0,T.jsx)(`option`,{value:`chat`,children:m(`automations.form.targetChat`)}),(0,T.jsx)(`option`,{value:`work`,children:m(`automations.form.targetWork`)})]})]}),P===`work`&&R.length>0&&(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`label`,{htmlFor:`automation-work-policy`,className:M,children:m(`automations.form.workPolicy`)}),(0,T.jsxs)(`select`,{id:`automation-work-policy`,"data-testid":`automation-work-policy`,value:I,onChange:e=>L(e.target.value),className:j,children:[(0,T.jsx)(`option`,{value:``,children:m(`automations.form.workPolicyDefault`)}),R.map(e=>(0,T.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]})]}),(0,T.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,T.jsxs)(`div`,{className:a(h&&`hidden`),children:[(0,T.jsx)(`label`,{htmlFor:`automation-model`,className:M,children:m(`automations.form.model`)}),(0,T.jsxs)(`select`,{id:`automation-model`,value:E,onChange:e=>D(e.target.value),className:j,children:[(0,T.jsx)(`option`,{value:``,children:m(`automations.form.modelAuto`)}),r.map(e=>(0,T.jsx)(`option`,{value:e.name,children:e.name},e.name))]})]}),(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`label`,{htmlFor:`automation-notify`,className:M,children:m(`automations.form.notification`)}),(0,T.jsxs)(`select`,{id:`automation-notify`,value:O,onChange:e=>k(e.target.value),className:j,children:[(0,T.jsx)(`option`,{value:`app`,children:m(`automations.form.notifyApp`)}),(0,T.jsx)(`option`,{value:`off`,children:m(`automations.form.notifyOff`)})]})]})]}),e&&(0,T.jsxs)(`div`,{"data-testid":`automation-webhook`,className:`rounded-xl border border-gray-200 p-3 dark:border-dark-300`,children:[(0,T.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,T.jsxs)(`div`,{className:`min-w-0`,children:[(0,T.jsx)(`p`,{className:`text-sm font-medium text-gray-900 dark:text-gray-100`,children:m(`automations.webhook.title`,{defaultValue:`Webhook trigger`})}),(0,T.jsx)(`p`,{className:`mt-0.5 text-xs text-gray-500 dark:text-dark-600`,children:B?m(`automations.webhook.enabledHint`,{defaultValue:`External systems can fire this automation with the secret. Rotating invalidates the previous secret.`}):m(`automations.webhook.disabledHint`,{defaultValue:`Let an external system (CI, cron, home automation) fire this automation with a POST and a secret.`})})]}),(0,T.jsxs)(`div`,{className:`flex shrink-0 gap-2`,children:[(0,T.jsx)(`button`,{type:`button`,"data-testid":`automation-webhook-rotate`,onClick:()=>void K(),disabled:W,className:`rounded-lg border border-gray-200 px-2.5 py-1.5 text-xs font-medium text-gray-700 transition-colors hover:bg-gray-100 disabled:opacity-50 dark:border-dark-300 dark:text-dark-700 dark:hover:bg-dark-200`,children:B?m(`automations.webhook.rotate`,{defaultValue:`Rotate secret`}):m(`automations.webhook.enable`,{defaultValue:`Enable`})}),B&&(0,T.jsx)(`button`,{type:`button`,"data-testid":`automation-webhook-disable`,onClick:()=>void q(),disabled:W,className:`rounded-lg border border-gray-200 px-2.5 py-1.5 text-xs font-medium text-gray-700 transition-colors hover:bg-gray-100 disabled:opacity-50 dark:border-dark-300 dark:text-dark-700 dark:hover:bg-dark-200`,children:m(`automations.webhook.disable`,{defaultValue:`Disable`})})]})]}),H&&(0,T.jsxs)(`div`,{"data-testid":`automation-webhook-secret`,className:`mt-2 space-y-1 rounded-lg bg-gray-50 p-2 dark:bg-dark-100`,children:[(0,T.jsx)(`p`,{className:`text-[11px] text-gray-500 dark:text-dark-600`,children:m(`automations.webhook.revealHint`,{defaultValue:`Shown once. Send it as a Bearer token or an X-Libre-Webhook-Secret header.`})}),(0,T.jsxs)(`code`,{dir:`ltr`,className:`block break-all font-mono text-xs text-gray-800 dark:text-gray-200`,children:[`POST `,H.path]}),(0,T.jsx)(`code`,{dir:`ltr`,className:`block break-all font-mono text-xs text-gray-800 dark:text-gray-200`,children:H.secret})]})]}),(0,T.jsxs)(`div`,{className:`flex justify-end gap-3 border-t border-gray-200 pt-4 dark:border-dark-300`,children:[(0,T.jsx)(`button`,{onClick:u,className:`rounded-xl px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-100 dark:text-dark-700 dark:hover:bg-dark-200`,children:m(`common.cancel`)}),(0,T.jsx)(`button`,{onClick:()=>{if(!J)return;if(h){p({name:g.trim(),instructions:b.trim(),triggers:S,notify:O,target:`work`,workTaskId:n??e?.workTaskId});return}let t=r.find(e=>e.name===E);p({name:g.trim(),instructions:b.trim(),triggers:S,...t?{provider:N(t),model:t.name}:{},notify:O,target:P,...P===`work`&&I?{workPolicyId:I}:{}})},disabled:s||!J,"data-testid":`automation-save`,className:`rounded-xl bg-gray-950 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-gray-800 disabled:cursor-not-allowed disabled:opacity-50 dark:bg-white dark:text-gray-950 dark:hover:bg-gray-100`,children:m(s?`common.saving`:`common.save`)})]})]})]})}),document.body)}export{C as n,P as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./react-vendor-D0Ec-185.js";import{d as r}from"./router-vendor-CMbYTGdh.js";import{t as i}from"./logger-DnuT4jgB.js";import{t as a}from"./useTranslation-D0mJ4NnO.js";import{r as o,t as s}from"./utils-Bn0RE9_8.js";import{t as c}from"./chatStore-8jYk48hC.js";import{$ as l,Cn as ee,Ln as u,Pt as d,Rn as f,Y as p,at as m,br as h,nt as te,st as g,t as _,v,zn as y}from"./ui-vendor-6y6qiSk5.js";import{T as b}from"./api-DQdJeQjd.js";import{t as x}from"./Button-BQ5JnUVj.js";import"./ui-UU79S5lB.js";import{n as S,t as C}from"./AutomationModal-BI_3nFeg.js";var w=e(t(),1),T=n();function E({days:e,locale:t}){let{t:n}=a(),r=e.reduce((e,t)=>e+t.succeeded,0),i=e.reduce((e,t)=>e+t.failed,0),o=Math.max(1,...e.map(e=>e.succeeded+e.failed)),s=new Intl.DateTimeFormat(t,{month:`short`,day:`numeric`}),c=new Date,l=e=>s.format(new Date(c.getFullYear(),c.getMonth(),c.getDate()-29+e));return(0,T.jsxs)(`div`,{className:`rounded-2xl border border-black/[0.06] bg-white/60 px-4 py-3 dark:border-white/[0.07] dark:bg-dark-100/60`,"data-testid":`automation-run-strip`,children:[(0,T.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,T.jsx)(`p`,{className:`text-[12px] font-medium text-gray-700 dark:text-dark-700`,children:n(`automations.runHistory`)}),(0,T.jsxs)(`p`,{className:`text-[11px] text-gray-400 dark:text-dark-500`,children:[(0,T.jsxs)(`span`,{className:`text-emerald-600 dark:text-emerald-400`,children:[r,` `,n(`automations.succeeded`)]}),` · `,(0,T.jsxs)(`span`,{className:`text-red-500 dark:text-red-400`,children:[i,` `,n(`automations.failed`)]})]})]}),(0,T.jsx)(`div`,{className:`flex h-12 items-end gap-[3px]`,children:e.map((e,t)=>{let n=e.succeeded+e.failed;if(n===0)return(0,T.jsx)(`div`,{title:l(t),className:`h-[3px] flex-1 rounded-sm bg-black/[0.06] dark:bg-white/[0.08]`},t);let r=Math.max(6,Math.round(n/o*48)),i=Math.round(e.failed/n*r);return(0,T.jsxs)(`div`,{title:`${l(t)}: ${e.succeeded}✓ ${e.failed}✗`,className:`flex flex-1 flex-col justify-end overflow-hidden rounded-sm`,style:{height:r},children:[(0,T.jsx)(`div`,{className:`w-full bg-emerald-500/80`,style:{height:r-i}}),i>0&&(0,T.jsx)(`div`,{className:`w-full bg-red-500/80`,style:{height:i}})]},t)})})]})}var D=[{id:`morningBrief`,instructions:`Put together my morning brief: the top world, business, and tech headlines from the last 24 hours with one-line summaries, and one story worth reading in depth and why. Keep the whole thing scannable.`,triggers:[{kind:`daily`,hour:7,minute:30}]},{id:`newsDigest`,instructions:`Summarize the most important AI news from the last 24 hours: model releases, notable research papers, funding rounds, and policy changes. For each item add one sentence on why it matters. Skip minor product updates and rumors.`,triggers:[{kind:`daily`,hour:8,minute:0}]},{id:`weeklyReview`,instructions:`Help me wrap the week: prompt me to reflect on what I accomplished, what is still open, and what the top priorities for next week should be. Structure it as a short template I can fill in.`,triggers:[{kind:`weekly`,dayOfWeek:5,hour:16,minute:0}]},{id:`monthlyReport`,instructions:`Draft a monthly status report outline: key accomplishments, metrics to review, risks, and goals for the next month. Leave placeholders where my specifics belong.`,triggers:[{kind:`monthly`,dayOfMonth:1,hour:9,minute:0}]}],O=i(`pages:automations`),k=()=>{let{t:e,i18n:t}=a(),n=r(),i=c(e=>e.models),k=c(e=>e.loadModels),[j,M]=(0,w.useState)(`automations`),[N,P]=(0,w.useState)([]),[F,I]=(0,w.useState)([]),[L,R]=(0,w.useState)(null),[z,B]=(0,w.useState)(!0),[V,H]=(0,w.useState)(!1),[U,W]=(0,w.useState)(null),[G,K]=(0,w.useState)(null),[q,J]=(0,w.useState)(!1),[Y,X]=(0,w.useState)(null),[Z,ne]=(0,w.useState)(0),Q=(0,w.useCallback)(()=>ne(e=>e+1),[]);(0,w.useEffect)(()=>{let t=!1;return Promise.all([b.getAutomations(),b.getRuns(),b.getRunsSummary()]).then(([e,n,r])=>{t||(e.success&&e.data&&P(e.data),n.success&&n.data&&I(n.data),r.success&&r.data&&R(r.data))}).catch(n=>{t||(O.error(`Failed to load automations:`,n),h.error(e(`automations.loadFailed`)))}).finally(()=>{t||B(!1)}),()=>{t=!0}},[Z,e]),(0,w.useEffect)(()=>{i.length===0&&k({quiet:!0})},[i.length,k]),(0,w.useEffect)(()=>{j===`runs`&&b.markRunsSeen().then(()=>b.getRunsSummary()).then(e=>{e.success&&e.data&&R(e.data)}).catch(()=>void 0)},[j,F.length]);let re=()=>{W(null),K(null),H(!0)},ie=t=>{W(null),K({name:e(`automations.templates.${t.id}.name`),instructions:t.instructions,triggers:t.triggers}),H(!0)},ae=e=>{W(e),K(null),X(null),H(!0)},oe=async t=>{J(!0);try{let n=U?await b.updateAutomation(U.id,t):await b.createAutomation(t);n.success?(H(!1),Q()):h.error(n.error||e(`automations.saveFailed`))}catch(t){O.error(`Failed to save automation:`,t),h.error(e(`automations.saveFailed`))}finally{J(!1)}},$=async(t,n)=>{X(null);try{n===`pause`?await b.pauseAutomation(t.id):n===`resume`?await b.resumeAutomation(t.id):n===`run`?(await b.runAutomationNow(t.id),h.success(e(`automations.runQueued`))):await b.deleteAutomation(t.id),Q()}catch(t){O.error(`Automation ${n} failed:`,t),h.error(e(`automations.actionFailed`))}},se=e=>e.status===`succeeded`?(0,T.jsx)(y,{className:`h-4 w-4 text-emerald-500`}):e.status===`failed`?(0,T.jsx)(u,{className:`h-4 w-4 text-red-500`}):(0,T.jsx)(d,{className:`h-4 w-4 animate-spin text-gray-400`}),ce=t=>N.find(e=>e.id===t)?.name??e(`automations.deletedAutomation`);return(0,T.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden`,"data-testid":`automations-page`,children:[(0,T.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 border-b border-black/[0.06] px-4 py-3 dark:border-white/[0.07]`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,T.jsx)(`h1`,{className:`text-sm font-semibold text-gray-900 dark:text-dark-900`,children:e(`automations.title`)}),(0,T.jsx)(`div`,{className:`flex items-center rounded-xl bg-black/[0.04] p-0.5 dark:bg-white/[0.06]`,children:[`automations`,`runs`].map(t=>(0,T.jsx)(`button`,{onClick:()=>M(t),"data-testid":`automations-tab-${t}`,className:s(`rounded-[10px] px-2.5 py-1 text-[12px] font-medium transition-colors`,j===t?`bg-white text-gray-900 shadow-sm dark:bg-dark-200 dark:text-dark-900`:`text-gray-500 hover:text-gray-800 dark:text-dark-500 dark:hover:text-dark-800`),children:e(`automations.tab.${t}`)},t))})]}),(0,T.jsxs)(x,{size:`sm`,onClick:re,"data-testid":`automation-new`,className:`h-7 gap-1 px-2.5 text-[12px]`,children:[(0,T.jsx)(l,{className:`h-3.5 w-3.5`}),e(`automations.newAutomation`)]})]}),(0,T.jsxs)(`div`,{className:`scroll-region min-h-0 flex-1 overflow-y-auto px-4 py-4 scrollbar-thin`,children:[j===`automations`?z?null:N.length===0?(0,T.jsxs)(`div`,{className:`px-3 py-16 text-center`,children:[(0,T.jsx)(_,{className:`mx-auto mb-2 h-6 w-6 text-gray-300 dark:text-dark-400`}),(0,T.jsx)(`p`,{className:`text-sm text-gray-400 dark:text-dark-500`,children:e(`automations.empty`)})]}):(0,T.jsx)(`div`,{className:`mx-auto w-full max-w-3xl space-y-2`,children:N.map(n=>(0,T.jsx)(`div`,{"data-testid":`automation-row`,className:`rounded-2xl border border-black/[0.06] bg-white/60 px-4 py-3 dark:border-white/[0.07] dark:bg-dark-100/60`,children:(0,T.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,T.jsxs)(`div`,{className:`min-w-0`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(`p`,{className:`truncate text-[14px] font-medium text-gray-900 dark:text-dark-900`,children:n.name}),(0,T.jsx)(`span`,{className:s(`rounded-full px-2 py-0.5 text-[10px] font-medium uppercase tracking-wide`,n.status===`active`?`bg-emerald-500/10 text-emerald-600 dark:text-emerald-400`:`bg-gray-500/10 text-gray-500 dark:text-dark-500`),children:e(`automations.status.${n.status}`)})]}),(0,T.jsxs)(`p`,{className:`mt-0.5 truncate text-[12px] text-gray-500 dark:text-dark-500`,children:[S(n.triggers,t.language,e),n.nextRunAt&&(0,T.jsxs)(T.Fragment,{children:[` · `,e(`automations.nextRun`,{when:new Intl.DateTimeFormat(t.language,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`}).format(n.nextRunAt)})]})]})]}),(0,T.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,T.jsx)(`button`,{onClick:()=>X(e=>e===n.id?null:n.id),"aria-label":e(`automations.actions`),"data-testid":`automation-menu`,className:`rounded-lg p-1.5 text-gray-400 transition-colors hover:bg-black/[0.04] hover:text-gray-700 dark:hover:bg-white/[0.06] dark:hover:text-dark-800`,children:(0,T.jsx)(ee,{className:`h-4 w-4`})}),Y===n.id&&(0,T.jsxs)(`div`,{className:`absolute end-0 top-8 z-20 w-44 rounded-xl border border-black/[0.07] bg-white p-1 shadow-lg dark:border-white/[0.08] dark:bg-dark-100`,children:[(0,T.jsx)(A,{icon:m,label:e(`common.edit`),onClick:()=>ae(n)}),n.status===`active`?(0,T.jsx)(A,{icon:g,label:e(`automations.pause`),onClick:()=>$(n,`pause`)}):(0,T.jsx)(A,{icon:te,label:e(`automations.resume`),onClick:()=>$(n,`resume`)}),(0,T.jsx)(A,{icon:p,label:e(`automations.runNow`),onClick:()=>$(n,`run`)}),(0,T.jsx)(A,{icon:v,label:e(`common.delete`),destructive:!0,onClick:()=>$(n,`delete`)})]})]})]})},n.id))}):null,j===`automations`&&!z&&(0,T.jsxs)(`div`,{className:`mx-auto mt-8 w-full max-w-3xl`,children:[(0,T.jsx)(`p`,{className:`mb-2 text-[11px] font-medium uppercase tracking-wide text-gray-400 dark:text-dark-500`,children:e(`automations.templatesTitle`)}),(0,T.jsx)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:D.map(n=>(0,T.jsxs)(`button`,{type:`button`,onClick:()=>ie(n),"data-testid":`automation-template`,className:`rounded-2xl border border-black/[0.06] bg-white/40 px-4 py-3 text-start transition-colors hover:bg-white/80 dark:border-white/[0.07] dark:bg-dark-100/40 dark:hover:bg-dark-100/80`,children:[(0,T.jsx)(`p`,{className:`text-[13px] font-medium text-gray-900 dark:text-dark-900`,children:e(`automations.templates.${n.id}.name`)}),(0,T.jsx)(`p`,{className:`mt-0.5 text-[12px] text-gray-500 dark:text-dark-500`,children:e(`automations.templates.${n.id}.description`)}),(0,T.jsx)(`p`,{className:`mt-1.5 text-[11px] text-gray-400 dark:text-dark-500`,children:S(n.triggers,t.language,e)})]},n.id))})]}),j===`runs`&&(0,T.jsxs)(`div`,{className:`mx-auto w-full max-w-3xl space-y-4`,children:[L&&(0,T.jsx)(E,{days:L.days,locale:t.language}),F.length===0?(0,T.jsxs)(`div`,{className:`px-3 py-12 text-center`,children:[(0,T.jsx)(f,{className:`mx-auto mb-2 h-6 w-6 text-gray-300 dark:text-dark-400`}),(0,T.jsx)(`p`,{className:`text-sm text-gray-400 dark:text-dark-500`,children:e(`automations.noRuns`)})]}):(0,T.jsx)(`div`,{className:`space-y-1`,"data-testid":`automation-run-list`,children:F.map(r=>(0,T.jsxs)(`div`,{className:`flex items-center gap-3 rounded-xl border border-black/[0.05] bg-white/50 px-3 py-2 dark:border-white/[0.06] dark:bg-dark-100/50`,children:[se(r),(0,T.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,T.jsx)(`p`,{className:`truncate text-[13px] text-gray-900 dark:text-dark-900`,children:ce(r.automationId)}),(0,T.jsxs)(`p`,{className:`truncate text-[11px] text-gray-400 dark:text-dark-500`,children:[o(r.scheduledFor,t.language),r.error&&(0,T.jsxs)(T.Fragment,{children:[` · `,(0,T.jsx)(`span`,{className:`text-red-500`,children:r.error})]})]})]}),r.sessionId&&(0,T.jsx)(`button`,{onClick:()=>n(`/c/${r.sessionId}`),"data-testid":`automation-run-open`,className:`shrink-0 rounded-lg px-2.5 py-1 text-[12px] font-medium text-primary-600 transition-colors hover:bg-primary-500/10 dark:text-primary-400`,children:e(`automations.openChat`)}),r.workTaskId&&(0,T.jsx)(`button`,{onClick:()=>n(`/work/${r.workTaskId}`),"data-testid":`automation-run-open-task`,className:`shrink-0 rounded-lg px-2.5 py-1 text-[12px] font-medium text-primary-600 transition-colors hover:bg-primary-500/10 dark:text-primary-400`,children:e(`automations.openTask`)})]},r.id))})]})]}),(0,T.jsx)(C,{open:V,automation:U,initial:G,models:i,saving:q,onClose:()=>H(!1),onSave:e=>void oe(e)})]})};function A({icon:e,label:t,destructive:n,onClick:r}){return(0,T.jsxs)(`button`,{onClick:r,className:s(`flex w-full items-center gap-2 rounded-lg px-2.5 py-1.5 text-start text-[13px] transition-colors`,n?`text-red-600 hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-900/20`:`text-gray-700 hover:bg-black/[0.04] dark:text-dark-700 dark:hover:bg-white/[0.06]`),children:[(0,T.jsx)(e,{className:`h-3.5 w-3.5`}),t]})}export{k as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,r as n,t as r}from"./react-vendor-D0Ec-185.js";import{d as i}from"./router-vendor-CMbYTGdh.js";import{t as a}from"./logger-DnuT4jgB.js";import{t as o}from"./useTranslation-D0mJ4NnO.js";import{t as s}from"./utils-Bn0RE9_8.js";import{$ as c,Gn as l,Kn as u,br as d,n as f,p,v as m,wn as h,z as g}from"./ui-vendor-6y6qiSk5.js";import{O as _,T as v}from"./api-DQdJeQjd.js";import{t as y}from"./Button-BQ5JnUVj.js";import"./ui-UU79S5lB.js";import{t as b}from"./ShareDialog-CZpU1itx.js";import{a as x,c as S,d as C,i as w,l as T,n as E,o as D,r as O,s as k,t as A,u as j}from"./calendarDates-Co3o_05Y.js";var M=e(t(),1),N=r(),P={event:`bg-primary-500/15 text-primary-700 hover:bg-primary-500/25 dark:text-primary-300`,automation:`bg-amber-500/15 text-amber-700 hover:bg-amber-500/25 dark:text-amber-300`,runSucceeded:`bg-emerald-500/15 text-emerald-700 hover:bg-emerald-500/25 dark:text-emerald-300`,runFailed:`bg-red-500/15 text-red-700 hover:bg-red-500/25 dark:text-red-300`};function F({event:e,label:t,onClick:n}){return(0,N.jsx)(`button`,{type:`button`,"data-testid":`calendar-event-chip`,"data-variant":e.variant??`event`,title:e.title,onClick:e=>{e.stopPropagation(),n()},className:s(`w-full truncate rounded-md px-1.5 py-0.5 text-start text-[11px] leading-4 transition-colors`,P[e.variant??`event`],e.baseEventId&&`opacity-75`),children:t})}var I=3;function L({year:e,monthIndex:t,events:n,onDayClick:r,onEventClick:i}){let{t:a,i18n:c}=o(),l=(0,M.useMemo)(()=>O(e,t),[e,t]),u=new Date,d=(0,M.useMemo)(()=>{let e=new Map;for(let t of n){let n=new Date(t.startAt),r=`${n.getFullYear()}-${n.getMonth()}-${n.getDate()}`,i=e.get(r);i?i.push(t):e.set(r,[t])}return e},[n]),f=(0,M.useMemo)(()=>C(c.language),[c.language]);return(0,N.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,"data-testid":`calendar-month-grid`,children:[(0,N.jsx)(`div`,{className:`grid grid-cols-7 border-b border-black/[0.06] dark:border-white/[0.07]`,children:f.map(e=>(0,N.jsx)(`div`,{className:`px-2 py-1.5 text-center text-[11px] font-medium uppercase tracking-wide text-gray-400 dark:text-dark-500`,children:e},e))}),(0,N.jsx)(`div`,{className:`grid min-h-0 flex-1 grid-cols-7 grid-rows-6`,children:l.map(e=>{let n=e.getMonth()===t,o=w(e,u),l=`${e.getFullYear()}-${e.getMonth()}-${e.getDate()}`,f=d.get(l)??[],p=f.length-I;return(0,N.jsxs)(`div`,{role:`gridcell`,"data-testid":`calendar-day-cell`,onClick:()=>r(e),className:s(`flex min-h-0 cursor-pointer flex-col gap-0.5 border-b border-e border-black/[0.04] p-1 transition-colors hover:bg-black/[0.02] dark:border-white/[0.04] dark:hover:bg-white/[0.03]`,!n&&`opacity-40`),children:[(0,N.jsx)(`span`,{className:s(`flex h-6 w-6 items-center justify-center rounded-full text-[12px]`,o?`bg-primary-500 font-semibold text-white`:`text-gray-600 dark:text-dark-600`),children:e.getDate()}),(0,N.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-0.5 overflow-hidden`,children:[f.slice(0,I).map(e=>(0,N.jsx)(F,{event:e,label:e.allDay?e.title:`${k(e.startAt,c.language)} ${e.title}`,onClick:()=>i(e)},e.id)),p>0&&(0,N.jsx)(`span`,{className:`px-1 text-[10px] text-gray-400 dark:text-dark-500`,children:a(`calendar.more`,{n:p})})]})]},l)})})]})}var R=48;function ee({anchor:e,events:t,dayCount:n=7,onDayClick:r,onEventClick:i}){let{i18n:a}=o(),c=(0,M.useMemo)(()=>n===1?[new Date(e.getFullYear(),e.getMonth(),e.getDate())]:j(e),[e,n]),l=new Date,u=(0,M.useMemo)(()=>new Intl.DateTimeFormat(a.language,{hour:`numeric`}),[a.language]),d=(0,M.useMemo)(()=>new Intl.DateTimeFormat(a.language,{weekday:`short`,day:`numeric`}),[a.language]),f=e=>t.filter(t=>t.allDay&&w(new Date(t.startAt),e)),p=e=>t.filter(t=>!t.allDay&&w(new Date(t.startAt),e));return(0,N.jsx)(`div`,{className:`scroll-region min-h-0 flex-1 overflow-y-auto scrollbar-thin`,"data-testid":`calendar-week-grid`,children:(0,N.jsxs)(`div`,{className:`grid grid-cols-[3.5rem_repeat(7,1fr)]`,children:[(0,N.jsx)(`div`,{className:`sticky top-0 z-10 border-b border-black/[0.06] bg-surface dark:border-white/[0.07]`}),c.map(e=>(0,N.jsxs)(`div`,{className:`sticky top-0 z-10 border-b border-e border-black/[0.06] bg-surface px-1 py-1.5 dark:border-white/[0.07]`,children:[(0,N.jsx)(`span`,{className:s(`block truncate text-center text-[11px] font-medium`,w(e,l)?`text-primary-600 dark:text-primary-400`:`text-gray-500 dark:text-dark-500`),children:d.format(e)}),(0,N.jsx)(`div`,{className:`mt-0.5 space-y-0.5`,children:f(e).map(e=>(0,N.jsx)(F,{event:e,label:e.title,onClick:()=>i(e)},e.id))})]},e.toISOString())),Array.from({length:24},(e,t)=>(0,N.jsxs)(M.Fragment,{children:[(0,N.jsx)(`div`,{className:`relative border-b border-black/[0.04] pe-1.5 text-end text-[10px] text-gray-400 dark:border-white/[0.04] dark:text-dark-500`,children:(0,N.jsx)(`span`,{className:`relative -top-1.5`,children:t>0?u.format(new Date(2024,0,1,t)):``})}),c.map(e=>{let n=p(e).filter(e=>new Date(e.startAt).getHours()===t);return(0,N.jsx)(`div`,{onClick:()=>r(e,t),style:{height:R},className:`cursor-pointer space-y-0.5 overflow-hidden border-b border-e border-black/[0.04] p-0.5 transition-colors hover:bg-black/[0.02] dark:border-white/[0.04] dark:hover:bg-white/[0.03]`,children:n.map(e=>(0,N.jsx)(F,{event:e,label:`${k(e.startAt,a.language)} ${e.title}`,onClick:()=>i(e)},e.id))},`${e.toISOString()}-${t}`)})]},t))]})})}var z=n(),B=e=>!e||e.kind===`once`||e.kind===`hourly`?`none`:e.kind,V=(e,t)=>{let n=new Date(t),r=n.getHours(),i=n.getMinutes();switch(e){case`daily`:return{kind:`daily`,hour:r,minute:i};case`weekly`:return{kind:`weekly`,dayOfWeek:n.getDay(),hour:r,minute:i};case`monthly`:return{kind:`monthly`,dayOfMonth:n.getDate(),hour:r,minute:i};case`yearly`:return{kind:`yearly`,month:n.getMonth()+1,dayOfMonth:n.getDate(),hour:r,minute:i};default:return null}},H=`w-full rounded-lg border border-black/[0.08] bg-white px-2.5 py-1.5 text-[13px] text-gray-900 focus:border-primary-500/40 focus:outline-none dark:border-white/[0.08] dark:bg-dark-100 dark:text-dark-900`,U=`mb-1 block text-[11px] font-medium uppercase tracking-wide text-gray-400 dark:text-dark-500`;function te({open:e,event:t,initialStartAt:n,calendars:r,saving:i,onClose:a,onSave:o,onDelete:s}){return e?(0,N.jsx)(W,{event:t,initialStartAt:n,calendars:r,saving:i,onClose:a,onSave:o,onDelete:s},`${t?.id??`new`}:${n}`):null}function W({event:e,initialStartAt:t,calendars:n,saving:r,onClose:i,onSave:a,onDelete:s}){let{t:c}=o(),l=e?.startAt??t,[u,d]=(0,M.useState)(e?.title??``),[p,h]=(0,M.useState)(e?.notes??``),[g,_]=(0,M.useState)(S(l)),[v,y]=(0,M.useState)(e?T(l):`09:00`),[b,x]=(0,M.useState)(e?.endAt===void 0?``:T(e.endAt)),[C,w]=(0,M.useState)(e?.allDay??!1),[D,O]=(0,M.useState)(B(e?.recurrence)),[k,A]=(0,M.useState)(e?.calendarId??``),[j,P]=(0,M.useState)(e?.reminderMinutes===void 0?``:String(e.reminderMinutes)),F=()=>{if(!u.trim()||!g)return;let e=E(g,C?``:v),t=!C&&b?E(g,b):null;a({title:u.trim(),notes:p.trim()?p.trim():void 0,startAt:e,endAt:t!==null&&t>e?t:null,allDay:C,recurrence:V(D,e),calendarId:k||null,reminderMinutes:j?Number(j):null})},I=[{value:``,label:c(`calendar.reminderNone`)},{value:`5`,label:c(`calendar.reminderMinutes`,{minutes:5})},{value:`15`,label:c(`calendar.reminderMinutes`,{minutes:15})},{value:`30`,label:c(`calendar.reminderMinutes`,{minutes:30})},{value:`60`,label:c(`calendar.reminderHour`)},{value:`1440`,label:c(`calendar.reminderDay`)}],L=[{value:`none`,label:c(`calendar.repeatNone`)},{value:`daily`,label:c(`calendar.repeatDaily`)},{value:`weekly`,label:c(`calendar.repeatWeekly`)},{value:`monthly`,label:c(`calendar.repeatMonthly`)},{value:`yearly`,label:c(`calendar.repeatYearly`)}];return(0,z.createPortal)((0,N.jsx)(`div`,{className:`fixed inset-0 z-[2147483647] flex items-center justify-center bg-gray-950/55 p-4 backdrop-blur-md`,onClick:i,children:(0,N.jsxs)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-labelledby":`calendar-event-modal-title`,"data-testid":`calendar-event-modal`,className:`w-full max-w-md rounded-3xl border border-black/[0.07] bg-white p-6 shadow-[0_24px_80px_rgba(0,0,0,0.24)] animate-scale-in dark:border-white/[0.08] dark:bg-dark-25`,onClick:e=>e.stopPropagation(),children:[(0,N.jsxs)(`div`,{className:`mb-4 flex items-center justify-between`,children:[(0,N.jsx)(`h3`,{id:`calendar-event-modal-title`,className:`text-lg font-medium tracking-[-0.02em] text-gray-950 dark:text-dark-950`,children:c(e?`calendar.editEvent`:`calendar.newEvent`)}),(0,N.jsx)(`button`,{onClick:i,"aria-label":c(`common.close`),className:`rounded-xl p-2 transition-colors hover:bg-gray-100 dark:hover:bg-dark-200`,children:(0,N.jsx)(f,{size:20,className:`text-gray-500`})})]}),(0,N.jsxs)(`div`,{className:`space-y-3`,children:[(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`label`,{htmlFor:`calendar-event-title`,className:U,children:c(`calendar.eventTitle`)}),(0,N.jsx)(`input`,{id:`calendar-event-title`,"data-testid":`calendar-event-title`,type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:c(`calendar.titlePlaceholder`),className:H,maxLength:200,autoFocus:!0})]}),(0,N.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`label`,{htmlFor:`calendar-event-date`,className:U,children:c(`calendar.date`)}),(0,N.jsx)(`input`,{id:`calendar-event-date`,type:`date`,value:g,onChange:e=>_(e.target.value),className:H})]}),(0,N.jsx)(`div`,{className:`flex items-end pb-1.5`,children:(0,N.jsxs)(`label`,{className:`flex items-center gap-2 text-[13px] text-gray-700 dark:text-dark-700`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:C,onChange:e=>w(e.target.checked),className:`h-4 w-4 rounded accent-primary-500`}),c(`calendar.allDay`)]})})]}),!C&&(0,N.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`label`,{htmlFor:`calendar-event-start`,className:U,children:c(`calendar.start`)}),(0,N.jsx)(`input`,{id:`calendar-event-start`,type:`time`,value:v,onChange:e=>y(e.target.value),className:H})]}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`label`,{htmlFor:`calendar-event-end`,className:U,children:c(`calendar.end`)}),(0,N.jsx)(`input`,{id:`calendar-event-end`,type:`time`,value:b,onChange:e=>x(e.target.value),className:H})]})]}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`label`,{htmlFor:`calendar-event-repeat`,className:U,children:c(`calendar.repeat`)}),(0,N.jsx)(`select`,{id:`calendar-event-repeat`,value:D,onChange:e=>O(e.target.value),className:H,children:L.map(e=>(0,N.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`label`,{htmlFor:`calendar-event-notes`,className:U,children:c(`calendar.notes`)}),(0,N.jsx)(`textarea`,{id:`calendar-event-notes`,value:p,onChange:e=>h(e.target.value),rows:3,className:H,maxLength:1e4})]}),(0,N.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`label`,{className:U,children:c(`calendar.calendarLabel`)}),(0,N.jsxs)(`select`,{value:k,onChange:e=>A(e.target.value),className:H,"data-testid":`calendar-event-calendar`,children:[(0,N.jsx)(`option`,{value:``,children:c(`calendar.personalCalendar`)}),n.map(e=>(0,N.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`label`,{className:U,children:c(`calendar.reminderLabel`)}),(0,N.jsx)(`select`,{value:j,onChange:e=>P(e.target.value),className:H,"data-testid":`calendar-event-reminder`,children:I.map(e=>(0,N.jsx)(`option`,{value:e.value,children:e.label},e.value))})]})]}),(0,N.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-gray-200 pt-4 dark:border-dark-300`,children:[e&&s?(0,N.jsxs)(`button`,{onClick:s,"data-testid":`calendar-event-delete`,className:`flex items-center gap-1.5 rounded-xl px-3 py-2 text-sm font-medium text-red-600 transition-colors hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-900/20`,children:[(0,N.jsx)(m,{className:`h-4 w-4`}),c(`common.delete`)]}):(0,N.jsx)(`span`,{}),(0,N.jsxs)(`div`,{className:`flex gap-3`,children:[(0,N.jsx)(`button`,{onClick:i,className:`rounded-xl px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-100 dark:text-dark-700 dark:hover:bg-dark-200`,children:c(`common.cancel`)}),(0,N.jsx)(`button`,{onClick:F,disabled:r||!u.trim(),"data-testid":`calendar-event-save`,className:`rounded-xl bg-gray-950 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-gray-800 disabled:cursor-not-allowed disabled:opacity-50 dark:bg-white dark:text-gray-950 dark:hover:bg-gray-100`,children:c(r?`common.saving`:`common.save`)})]})]})]})]})}),document.body)}var G=a(`pages:calendar`),K=()=>{let{t:e,i18n:t}=o(),n=i(),[r,a]=(0,M.useState)(`month`),[m,S]=(0,M.useState)(()=>new Date),[C,w]=(0,M.useState)([]),[T,E]=(0,M.useState)([]),[O,k]=(0,M.useState)(!1),[j,P]=(0,M.useState)(null),[F,I]=(0,M.useState)(()=>Date.now()),[R,z]=(0,M.useState)(!1),[B,V]=(0,M.useState)([]),[H,U]=(0,M.useState)(``),[W,K]=(0,M.useState)(null),q=M.useRef(null),J=(0,M.useMemo)(()=>{if(r===`month`){let e=new Date(m.getFullYear(),m.getMonth(),1),t=D(e);return{from:t.getTime(),to:A(t,42).getTime()}}if(r===`day`){let e=new Date(m.getFullYear(),m.getMonth(),m.getDate());return{from:e.getTime(),to:A(e,1).getTime()}}let e=D(m);return{from:e.getTime(),to:A(e,7).getTime()}},[m,r]),[Y,ne]=(0,M.useState)(0),X=(0,M.useCallback)(()=>ne(e=>e+1),[]);(0,M.useEffect)(()=>{_.getCalendars().then(e=>{e.success&&e.data&&V(e.data)}).catch(e=>G.error(`Failed to load calendars:`,e))},[Y]),(0,M.useEffect)(()=>{let t=!1;return _.getEvents(J.from,J.to).then(e=>{t||e.success&&e.data&&w(e.data)}).catch(n=>{t||(G.error(`Failed to load calendar events:`,n),d.error(e(`calendar.loadFailed`)))}),Promise.all([v.getOccurrences(J.from,J.to),v.getRuns({from:J.from,to:J.to}),v.getAutomations()]).then(([n,r,i])=>{if(t)return;let a=Date.now(),o=t=>i.data?.find(e=>e.id===t)?.name??e(`automations.deletedAutomation`),s=[];for(let e of n.data??[])e.at<=a||s.push({id:`automation:${e.automationId}:${e.at}`,title:e.name,startAt:e.at,allDay:!1,createdAt:e.at,updatedAt:e.at,variant:`automation`});for(let e of r.data??[])(e.status===`succeeded`||e.status===`failed`)&&s.push({id:`run:${e.id}`,title:o(e.automationId),startAt:e.scheduledFor,allDay:!1,createdAt:e.createdAt,updatedAt:e.createdAt,variant:e.status===`succeeded`?`runSucceeded`:`runFailed`,...e.sessionId?{sessionId:e.sessionId}:{}});E(s)}).catch(e=>{t||G.error(`Failed to project automations onto the calendar:`,e)}),()=>{t=!0}},[J.from,J.to,Y,e]);let Z=(0,M.useMemo)(()=>[...C,...T].sort((e,t)=>e.startAt-t.startAt),[C,T]),Q=e=>{S(t=>r===`month`?new Date(t.getFullYear(),t.getMonth()+e,1):A(t,e*(r===`day`?1:7)))},$=(e,t=9)=>{P(null),I(new Date(e.getFullYear(),e.getMonth(),e.getDate(),t,0).getTime()),k(!0)},re=t=>{if(t.variant===`runSucceeded`||t.variant===`runFailed`){t.sessionId?n(`/c/${t.sessionId}`):n(`/automations`);return}if(t.variant===`automation`){n(`/automations`);return}if(t.shared&&t.shared.permission!==`write`){d(e(`calendar.sharedReadOnly`));return}if(t.baseEventId){let e=C.find(e=>e.id===t.baseEventId);P(e??t)}else P(t);k(!0)},ie=async t=>{z(!0);try{let n=j?await _.updateEvent(j.id,t):await _.createEvent(t);n.success?(k(!1),X()):d.error(n.error||e(`calendar.saveFailed`))}catch(t){G.error(`Failed to save calendar event:`,t),d.error(e(`calendar.saveFailed`))}finally{z(!1)}},ae=async()=>{if(j){z(!0);try{let t=await _.deleteEvent(j.id);t.success?(k(!1),X()):d.error(t.error||e(`calendar.deleteFailed`))}catch(t){G.error(`Failed to delete calendar event:`,t),d.error(e(`calendar.deleteFailed`))}finally{z(!1)}}},oe=r===`month`?x(m.getFullYear(),m.getMonth(),t.language):new Intl.DateTimeFormat(t.language,{month:`long`,day:`numeric`,year:`numeric`}).format(r===`day`?m:D(m)),se=async()=>{let t=H.trim();t&&((await _.createCalendar({name:t}).catch(()=>void 0))?.success?(U(``),X()):d.error(e(`calendar.calendarSaveFailed`)))},ce=async t=>{try{let e=await _.exportIcs(t),n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=`calendar.ics`,r.click(),URL.revokeObjectURL(n)}catch(t){G.error(`Failed to export the calendar:`,t),d.error(e(`calendar.exportFailed`))}},le=async t=>{try{let n=await t.text(),r=await _.importIcs(n);r.success&&r.data?(d.success(e(`calendar.importResult`,{total:r.data.imported})),X()):d.error(r.error||e(`calendar.importFailed`))}catch(t){G.error(`Failed to import the calendar:`,t),d.error(e(`calendar.importFailed`))}};return(0,N.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden`,"data-testid":`calendar-page`,children:[(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 border-b border-black/[0.06] px-4 py-3 dark:border-white/[0.07]`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(`h1`,{className:`text-sm font-semibold text-gray-900 dark:text-dark-900`,children:e(`calendar.title`)}),(0,N.jsx)(`span`,{className:`text-sm text-gray-500 dark:text-dark-500`,"data-testid":`calendar-range-label`,children:oe})]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(`div`,{className:`flex items-center rounded-xl bg-black/[0.04] p-0.5 dark:bg-white/[0.06]`,children:[`month`,`week`,`day`].map(t=>(0,N.jsx)(`button`,{onClick:()=>a(t),"data-testid":`calendar-view-${t}`,className:s(`rounded-[10px] px-2.5 py-1 text-[12px] font-medium transition-colors`,r===t?`bg-white text-gray-900 shadow-sm dark:bg-dark-200 dark:text-dark-900`:`text-gray-500 hover:text-gray-800 dark:text-dark-500 dark:hover:text-dark-800`),children:e(`calendar.${t}`)},t))}),(0,N.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,N.jsx)(y,{size:`sm`,variant:`ghost`,onClick:()=>Q(-1),className:`h-7 w-7 p-0`,title:e(`calendar.previous`),children:(0,N.jsx)(u,{className:`h-4 w-4`})}),(0,N.jsx)(y,{size:`sm`,variant:`ghost`,onClick:()=>S(new Date),className:`h-7 px-2 text-[12px]`,children:e(`calendar.today`)}),(0,N.jsx)(y,{size:`sm`,variant:`ghost`,onClick:()=>Q(1),className:`h-7 w-7 p-0`,title:e(`calendar.next`),children:(0,N.jsx)(l,{className:`h-4 w-4`})})]}),(0,N.jsxs)(y,{size:`sm`,onClick:()=>$(m),"data-testid":`calendar-new-event`,className:`h-7 gap-1 px-2.5 text-[12px]`,children:[(0,N.jsx)(c,{className:`h-3.5 w-3.5`}),e(`calendar.newEvent`)]})]})]}),(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 border-b border-black/[0.06] px-4 py-2 dark:border-white/[0.07]`,children:[B.map(t=>(0,N.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 rounded-full border border-black/[0.08] px-2.5 py-1 text-xs text-gray-700 dark:border-white/[0.1] dark:text-dark-800`,"data-testid":`calendar-chip`,children:[(0,N.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:t.color??`#8b8b8b`}}),t.name,t.shared?(0,N.jsx)(`span`,{className:`text-[10px] uppercase text-gray-400 dark:text-dark-500`,children:e(`calendar.sharedBadge`)}):(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`button`,{onClick:()=>K(t),className:`text-gray-400 hover:text-primary-500 dark:text-dark-500`,title:e(`calendar.shareCalendar`),"data-testid":`calendar-share`,children:(0,N.jsx)(g,{className:`h-3 w-3`})}),(0,N.jsx)(`button`,{onClick:()=>void _.deleteCalendar(t.id).then(X),className:`text-gray-400 hover:text-red-500 dark:text-dark-500`,title:e(`common.delete`),children:(0,N.jsx)(f,{className:`h-3 w-3`})})]})]},t.id)),(0,N.jsx)(`input`,{type:`text`,value:H,onChange:e=>U(e.target.value),onKeyDown:e=>{e.key===`Enter`&&se()},placeholder:e(`calendar.newCalendarPlaceholder`),className:`w-36 rounded-full border border-dashed border-black/[0.12] bg-transparent px-2.5 py-1 text-xs text-gray-700 placeholder:text-gray-400 focus:outline-none dark:border-white/[0.16] dark:text-dark-800`,"data-testid":`calendar-new-calendar`}),(0,N.jsxs)(`div`,{className:`ms-auto flex items-center gap-1`,children:[(0,N.jsx)(`input`,{ref:q,type:`file`,accept:`.ics,text/calendar`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&le(t),e.target.value=``}}),(0,N.jsxs)(y,{size:`sm`,variant:`ghost`,onClick:()=>q.current?.click(),className:`h-7 gap-1 px-2 text-[12px]`,"data-testid":`calendar-import`,children:[(0,N.jsx)(p,{className:`h-3.5 w-3.5`}),e(`calendar.importIcs`)]}),(0,N.jsxs)(y,{size:`sm`,variant:`ghost`,onClick:()=>void ce(),className:`h-7 gap-1 px-2 text-[12px]`,"data-testid":`calendar-export`,children:[(0,N.jsx)(h,{className:`h-3.5 w-3.5`}),e(`calendar.exportIcs`)]})]})]}),r===`month`?(0,N.jsx)(L,{year:m.getFullYear(),monthIndex:m.getMonth(),events:Z,onDayClick:e=>$(e),onEventClick:re}):(0,N.jsx)(ee,{anchor:m,events:Z,dayCount:r===`day`?1:7,onDayClick:(e,t)=>$(e,t),onEventClick:re}),W&&(0,N.jsx)(b,{resourceType:`calendar`,resourceId:W.id,resourceLabel:W.name,onClose:()=>K(null)}),(0,N.jsx)(te,{open:O,event:j,initialStartAt:F,calendars:B.filter(e=>!e.shared||e.shared.permission===`write`),saving:R,onClose:()=>k(!1),onSave:e=>void ie(e),onDelete:()=>void ae()})]})};export{K as default};
|