tmex-cli 0.6.2 → 0.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/package.json +2 -1
  2. package/resources/fe-dist/assets/DevicePage-CNkRwiKd.js +36 -0
  3. package/resources/fe-dist/assets/{DevicesPage-ImyBiwEt.js → DevicesPage-7Qum8nfK.js} +2 -2
  4. package/resources/fe-dist/assets/{SettingsPage-CyMAR4ec.js → SettingsPage-CcYjvVBK.js} +2 -2
  5. package/resources/fe-dist/assets/{index-qxM5NVWd.js → index-DIffR5B7.js} +19 -19
  6. package/resources/fe-dist/assets/index-D_DHOdUg.css +1 -0
  7. package/resources/fe-dist/assets/{select-CALI7PWC.js → select-B8Wx7E3G.js} +2 -2
  8. package/resources/fe-dist/assets/{switch-CkhOAzoZ.js → switch-ByS4bhig.js} +2 -2
  9. package/resources/fe-dist/assets/{useValueChanged-WtzSkCNQ.js → useValueChanged-BNNSF8VN.js} +3 -3
  10. package/resources/fe-dist/index.html +6 -3
  11. package/resources/fe-dist/assets/DevicePage-BGPoxSI1.js +0 -36
  12. package/resources/fe-dist/assets/DevicePage-BGPoxSI1.js.map +0 -1
  13. package/resources/fe-dist/assets/DevicesPage-ImyBiwEt.js.map +0 -1
  14. package/resources/fe-dist/assets/SettingsPage-CyMAR4ec.js.map +0 -1
  15. package/resources/fe-dist/assets/index-otkzncJS.css +0 -1
  16. package/resources/fe-dist/assets/index-qxM5NVWd.js.map +0 -1
  17. package/resources/fe-dist/assets/select-CALI7PWC.js.map +0 -1
  18. package/resources/fe-dist/assets/switch-CkhOAzoZ.js.map +0 -1
  19. package/resources/fe-dist/assets/useValueChanged-WtzSkCNQ.js.map +0 -1
  20. package/resources/gateway-drizzle/meta/0000_snapshot.json +0 -495
  21. package/resources/gateway-drizzle/meta/0001_snapshot.json +0 -511
  22. package/resources/gateway-drizzle/meta/0002_snapshot.json +0 -535
  23. package/resources/gateway-drizzle/meta/0003_snapshot.json +0 -542
@@ -1 +0,0 @@
1
- {"version":3,"file":"SettingsPage-CyMAR4ec.js","sources":["../../../../node_modules/.bun/lucide-react@0.564.0+b1ab299f0a400331/node_modules/lucide-react/dist/esm/icons/rotate-ccw.js","../../../../node_modules/.bun/lucide-react@0.564.0+b1ab299f0a400331/node_modules/lucide-react/dist/esm/icons/save.js","../../../../node_modules/.bun/lucide-react@0.564.0+b1ab299f0a400331/node_modules/lucide-react/dist/esm/icons/shield.js","../../src/pages/SettingsPage.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.564.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\", key: \"1357e3\" }],\n [\"path\", { d: \"M3 3v5h5\", key: \"1xhq8a\" }]\n];\nconst RotateCcw = createLucideIcon(\"rotate-ccw\", __iconNode);\n\nexport { __iconNode, RotateCcw as default };\n//# sourceMappingURL=rotate-ccw.js.map\n","/**\n * @license lucide-react v0.564.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z\",\n key: \"1c8476\"\n }\n ],\n [\"path\", { d: \"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7\", key: \"1ydtos\" }],\n [\"path\", { d: \"M7 3v4a1 1 0 0 0 1 1h7\", key: \"t51u73\" }]\n];\nconst Save = createLucideIcon(\"save\", __iconNode);\n\nexport { __iconNode, Save as default };\n//# sourceMappingURL=save.js.map\n","/**\n * @license lucide-react v0.564.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ]\n];\nconst Shield = createLucideIcon(\"shield\", __iconNode);\n\nexport { __iconNode, Shield as default };\n//# sourceMappingURL=shield.js.map\n","import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport type {\n EventType,\n LocaleCode,\n SiteSettings,\n TelegramBotChat,\n TelegramBotWithStats,\n UpdateSiteSettingsRequest,\n WebhookEndpoint,\n} from '@tmex/shared';\nimport { I18N_MANIFEST, toBCP47 as toBCP47Locale } from '@tmex/shared';\nimport { Loader2, RotateCcw, Save, Send, Shield, Trash2 } from 'lucide-react';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport i18n from '../i18n';\nimport { toast } from 'sonner';\n\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from '@/components/ui/alert-dialog';\nimport { Button } from '@/components/ui/button';\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';\nimport { Input } from '@/components/ui/input';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@/components/ui/select';\nimport { Switch } from '@/components/ui/switch';\nimport { useSiteStore } from '../stores/site';\nimport { useUIStore } from '../stores/ui';\n\ninterface TelegramBotsResponse {\n bots: TelegramBotWithStats[];\n}\n\ninterface TelegramChatsResponse {\n chats: TelegramBotChat[];\n}\n\ninterface SiteSettingsResponse {\n settings: SiteSettings;\n}\n\ninterface WebhooksResponse {\n webhooks: WebhookEndpoint[];\n}\n\nconst WEBHOOK_EVENT_OPTIONS: EventType[] = [\n 'terminal_bell',\n 'terminal_notification',\n 'tmux_window_close',\n 'tmux_pane_close',\n 'device_tmux_missing',\n 'device_disconnect',\n 'session_created',\n 'session_closed',\n];\n\nasync function parseApiError(res: Response, fallback: string): Promise<string> {\n try {\n const payload = (await res.json()) as { error?: string };\n return payload.error ?? fallback;\n } catch {\n return fallback;\n }\n}\n\nexport default function SettingsPage() {\n const { t } = useTranslation();\n const queryClient = useQueryClient();\n const { refreshSettings } = useSiteStore();\n\n const [activeTab, setActiveTab] = useState<'site' | 'notifications' | 'telegram' | 'webhooks'>(\n 'site'\n );\n\n const theme = useUIStore((state) => state.theme);\n const setTheme = useUIStore((state) => state.setTheme);\n const isDark = theme === 'dark';\n\n // Site settings state\n const [siteName, setSiteName] = useState('tmex');\n const [siteUrl, setSiteUrl] = useState(window.location.origin);\n const [language, setLanguage] = useState<LocaleCode>('en_US');\n\n // Notifications state\n const [bellThrottleSeconds, setBellThrottleSeconds] = useState(6);\n const [notificationThrottleSeconds, setNotificationThrottleSeconds] = useState(3);\n const [enableBrowserBellToast, setEnableBrowserBellToast] = useState(true);\n const [enableBrowserNotificationToast, setEnableBrowserNotificationToast] = useState(true);\n const [enableTelegramBellPush, setEnableTelegramBellPush] = useState(true);\n const [enableTelegramNotificationPush, setEnableTelegramNotificationPush] = useState(true);\n const [sshReconnectMaxRetries, setSshReconnectMaxRetries] = useState(2);\n const [sshReconnectDelaySeconds, setSshReconnectDelaySeconds] = useState(10);\n const [showRefreshNotice, setShowRefreshNotice] = useState(false);\n\n // Telegram state\n const [newBotName, setNewBotName] = useState('');\n const [newBotToken, setNewBotToken] = useState('');\n const [expandedBotId, setExpandedBotId] = useState<string | null>(null);\n\n // Webhook state\n const [newWebhookUrl, setNewWebhookUrl] = useState('');\n const [newWebhookSecret, setNewWebhookSecret] = useState('');\n const [newWebhookEventMask, setNewWebhookEventMask] = useState<EventType[]>(WEBHOOK_EVENT_OPTIONS);\n\n const handleThemeChange = (checked: boolean) => {\n const nextTheme = checked ? 'dark' : 'light';\n setTheme(nextTheme);\n document.documentElement.classList.toggle('dark', nextTheme === 'dark');\n };\n\n const settingsQuery = useQuery({\n queryKey: ['site-settings'],\n queryFn: async () => {\n const res = await fetch('/api/settings/site');\n if (!res.ok) {\n throw new Error(await parseApiError(res, t('settings.loadFailed')));\n }\n return (await res.json()) as SiteSettingsResponse;\n },\n });\n\n const botsQuery = useQuery({\n queryKey: ['telegram-bots'],\n queryFn: async () => {\n const res = await fetch('/api/settings/telegram/bots');\n if (!res.ok) {\n throw new Error(await parseApiError(res, t('telegram.loadBotsFailed')));\n }\n return (await res.json()) as TelegramBotsResponse;\n },\n });\n\n useEffect(() => {\n const settings = settingsQuery.data?.settings;\n if (!settings) {\n return;\n }\n\n setSiteName(settings.siteName);\n setSiteUrl(settings.siteUrl);\n setLanguage(settings.language ?? 'en_US');\n setBellThrottleSeconds(settings.bellThrottleSeconds);\n setNotificationThrottleSeconds(settings.notificationThrottleSeconds ?? 3);\n setEnableBrowserBellToast(settings.enableBrowserBellToast ?? true);\n setEnableBrowserNotificationToast(settings.enableBrowserNotificationToast ?? true);\n setEnableTelegramBellPush(settings.enableTelegramBellPush ?? true);\n setEnableTelegramNotificationPush(settings.enableTelegramNotificationPush ?? true);\n setSshReconnectMaxRetries(settings.sshReconnectMaxRetries);\n setSshReconnectDelaySeconds(settings.sshReconnectDelaySeconds);\n }, [settingsQuery.data?.settings]);\n\n const saveSiteMutation = useMutation({\n mutationFn: async () => {\n const payload: UpdateSiteSettingsRequest = {\n siteName,\n siteUrl,\n language,\n bellThrottleSeconds,\n notificationThrottleSeconds,\n enableBrowserBellToast,\n enableBrowserNotificationToast,\n enableTelegramBellPush,\n enableTelegramNotificationPush,\n sshReconnectMaxRetries,\n sshReconnectDelaySeconds,\n };\n\n const res = await fetch('/api/settings/site', {\n method: 'PATCH',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n });\n\n if (!res.ok) {\n throw new Error(await parseApiError(res, t('settings.saveFailed')));\n }\n },\n onSuccess: async () => {\n await Promise.all([\n queryClient.invalidateQueries({ queryKey: ['site-settings'] }),\n refreshSettings(),\n ]);\n toast.success(t('settings.settingsSaved'));\n if (settingsQuery.data?.settings?.language !== language) {\n void i18n.changeLanguage(language);\n setShowRefreshNotice(true);\n }\n },\n onError: (err) => {\n toast.error(err instanceof Error ? err.message : t('common.error'));\n },\n });\n\n const createBotMutation = useMutation({\n mutationFn: async () => {\n const res = await fetch('/api/settings/telegram/bots', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n name: newBotName,\n token: newBotToken,\n enabled: true,\n allowAuthRequests: true,\n }),\n });\n\n if (!res.ok) {\n throw new Error(await parseApiError(res, t('telegram.createFailed')));\n }\n },\n onSuccess: async () => {\n setNewBotName('');\n setNewBotToken('');\n await queryClient.invalidateQueries({ queryKey: ['telegram-bots'] });\n toast.success(t('common.success'));\n },\n onError: (err) => {\n toast.error(err instanceof Error ? err.message : t('common.error'));\n },\n });\n\n const bots = botsQuery.data?.bots ?? [];\n\n const webhooksQuery = useQuery({\n queryKey: ['webhooks'],\n queryFn: async () => {\n const res = await fetch('/api/webhooks');\n if (!res.ok) {\n throw new Error(await parseApiError(res, t('webhook.loadFailed')));\n }\n return (await res.json()) as WebhooksResponse;\n },\n });\n\n const createWebhookMutation = useMutation({\n mutationFn: async () => {\n const res = await fetch('/api/webhooks', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n url: newWebhookUrl,\n secret: newWebhookSecret,\n eventMask: newWebhookEventMask,\n }),\n });\n\n if (!res.ok) {\n throw new Error(await parseApiError(res, t('webhook.createFailed')));\n }\n },\n onSuccess: async () => {\n setNewWebhookUrl('');\n setNewWebhookSecret('');\n setNewWebhookEventMask(WEBHOOK_EVENT_OPTIONS);\n await queryClient.invalidateQueries({ queryKey: ['webhooks'] });\n toast.success(t('common.success'));\n },\n onError: (err) => {\n toast.error(err instanceof Error ? err.message : t('common.error'));\n },\n });\n\n const deleteWebhookMutation = useMutation({\n mutationFn: async (id: string) => {\n const res = await fetch(`/api/webhooks/${id}`, { method: 'DELETE' });\n if (!res.ok) {\n throw new Error(await parseApiError(res, t('webhook.deleteFailed')));\n }\n },\n onSuccess: async () => {\n await queryClient.invalidateQueries({ queryKey: ['webhooks'] });\n toast.success(t('common.success'));\n },\n onError: (err) => {\n toast.error(err instanceof Error ? err.message : t('common.error'));\n },\n });\n\n const webhooks = webhooksQuery.data?.webhooks ?? [];\n\n return (\n <div\n className=\"mx-auto flex w-full max-w-6xl flex-col gap-4 p-3 pb-[calc(2rem+env(safe-area-inset-bottom))] sm:gap-6 sm:p-5\"\n data-testid=\"settings-page\"\n >\n <div className=\"flex flex-wrap gap-2\">\n <Button\n type=\"button\"\n size=\"sm\"\n variant={activeTab === 'site' ? 'default' : 'outline'}\n data-testid=\"settings-tab-site\"\n onClick={() => setActiveTab('site')}\n >\n {t('settings.siteSettings')}\n </Button>\n <Button\n type=\"button\"\n size=\"sm\"\n variant={activeTab === 'notifications' ? 'default' : 'outline'}\n data-testid=\"settings-tab-notifications\"\n onClick={() => setActiveTab('notifications')}\n >\n {t('settings.notificationsTab')}\n </Button>\n <Button\n type=\"button\"\n size=\"sm\"\n variant={activeTab === 'telegram' ? 'default' : 'outline'}\n data-testid=\"settings-tab-telegram\"\n onClick={() => setActiveTab('telegram')}\n >\n {t('telegram.title')}\n </Button>\n <Button\n type=\"button\"\n size=\"sm\"\n variant={activeTab === 'webhooks' ? 'default' : 'outline'}\n data-testid=\"settings-tab-webhooks\"\n onClick={() => setActiveTab('webhooks')}\n >\n {t('webhook.title')}\n </Button>\n </div>\n\n {activeTab === 'site' && (\n <Card className=\"border-0 ring-0\">\n <CardHeader>\n <CardTitle>{t('settings.siteSettings')}</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-6\">\n <div className=\"space-y-2\">\n <label className=\"block text-sm font-medium\" htmlFor=\"site-name-input\">\n {t('settings.siteName')}\n </label>\n <Input\n id=\"site-name-input\"\n value={siteName}\n onChange={(event) => setSiteName(event.target.value)}\n placeholder={t('settings.siteNamePlaceholder')}\n className=\"min-h-10\"\n />\n </div>\n\n <div className=\"space-y-2\">\n <label className=\"block text-sm font-medium\" htmlFor=\"site-url-input\">\n {t('settings.siteUrl')}\n </label>\n <Input\n id=\"site-url-input\"\n value={siteUrl}\n onChange={(event) => setSiteUrl(event.target.value)}\n placeholder={t('settings.siteUrlPlaceholder')}\n className=\"min-h-10\"\n />\n </div>\n\n <div className=\"space-y-2\">\n <label className=\"block text-sm font-medium\" htmlFor=\"language-select\">\n {t('settings.language')}\n </label>\n <Select\n value={language}\n onValueChange={(nextValue) => {\n if (!nextValue) return;\n setLanguage(nextValue as LocaleCode);\n }}\n >\n <SelectTrigger\n id=\"language-select\"\n data-testid=\"settings-language-select\"\n className=\"w-full min-h-10\"\n >\n <SelectValue placeholder={t('settings.language')}>\n {I18N_MANIFEST.locales.find((l) => l.code === language)?.nativeName ?? language}\n </SelectValue>\n </SelectTrigger>\n <SelectContent className=\"max-h-[var(--tmex-viewport-height)]\">\n {I18N_MANIFEST.locales.map((locale) => (\n <SelectItem key={locale.code} value={locale.code}>\n {locale.nativeName}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {showRefreshNotice && (\n <p className=\"mt-1 text-xs text-primary\" data-testid=\"settings-refresh-notice\">\n {t('settings.refreshToApply')}\n </p>\n )}\n </div>\n\n <div className=\"space-y-3\">\n <div className=\"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-card px-4 py-2.5\">\n <div className=\"min-w-0 pr-2\">\n <div className=\"text-sm font-medium\">{t('settings.theme')}</div>\n </div>\n <Switch\n checked={isDark}\n onCheckedChange={(checked) => handleThemeChange(Boolean(checked))}\n data-testid=\"settings-theme-toggle\"\n />\n </div>\n </div>\n </CardContent>\n </Card>\n )}\n\n {activeTab === 'notifications' && (\n <Card className=\"border-0 ring-0\">\n <CardHeader>\n <CardTitle>{t('settings.notificationsTab')}</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-6\">\n <div className=\"space-y-3\">\n <div className=\"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-card px-4 py-2.5\">\n <div className=\"min-w-0 pr-2\">\n <div className=\"text-sm font-medium\">{t('settings.enableBrowserBellToast')}</div>\n </div>\n <Switch\n checked={enableBrowserBellToast}\n onCheckedChange={(checked) => setEnableBrowserBellToast(Boolean(checked))}\n data-testid=\"settings-enable-browser-bell-toast\"\n />\n </div>\n\n <div className=\"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-card px-4 py-2.5\">\n <div className=\"min-w-0 pr-2\">\n <div className=\"text-sm font-medium\">{t('settings.enableTelegramBellPush')}</div>\n </div>\n <Switch\n checked={enableTelegramBellPush}\n onCheckedChange={(checked) => setEnableTelegramBellPush(Boolean(checked))}\n data-testid=\"settings-enable-telegram-bell-push\"\n />\n </div>\n\n <div className=\"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-card px-4 py-2.5\">\n <div className=\"min-w-0 pr-2\">\n <div className=\"text-sm font-medium\">\n {t('settings.enableBrowserNotificationToast')}\n </div>\n </div>\n <Switch\n checked={enableBrowserNotificationToast}\n onCheckedChange={(checked) => setEnableBrowserNotificationToast(Boolean(checked))}\n data-testid=\"settings-enable-browser-notification-toast\"\n />\n </div>\n\n <div className=\"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-card px-4 py-2.5\">\n <div className=\"min-w-0 pr-2\">\n <div className=\"text-sm font-medium\">\n {t('settings.enableTelegramNotificationPush')}\n </div>\n </div>\n <Switch\n checked={enableTelegramNotificationPush}\n onCheckedChange={(checked) => setEnableTelegramNotificationPush(Boolean(checked))}\n data-testid=\"settings-enable-telegram-notification-push\"\n />\n </div>\n </div>\n\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-3\">\n <div className=\"space-y-2\">\n <label className=\"block text-sm font-medium\" htmlFor=\"bell-throttle-input\">\n {t('settings.bellThrottle')}\n </label>\n <Input\n id=\"bell-throttle-input\"\n type=\"number\"\n value={bellThrottleSeconds}\n min={0}\n max={300}\n onChange={(event) => setBellThrottleSeconds(Number(event.target.value))}\n className=\"min-h-10\"\n />\n </div>\n\n <div className=\"space-y-2\">\n <label className=\"block text-sm font-medium\" htmlFor=\"notification-throttle-input\">\n {t('settings.notificationThrottle')}\n </label>\n <Input\n id=\"notification-throttle-input\"\n type=\"number\"\n value={notificationThrottleSeconds}\n min={0}\n max={300}\n onChange={(event) => setNotificationThrottleSeconds(Number(event.target.value))}\n className=\"min-h-10\"\n />\n </div>\n\n <div className=\"space-y-2\">\n <label className=\"block text-sm font-medium\" htmlFor=\"ssh-reconnect-retries-input\">\n {t('settings.sshReconnectMaxRetries')}\n </label>\n <Input\n id=\"ssh-reconnect-retries-input\"\n type=\"number\"\n value={sshReconnectMaxRetries}\n min={0}\n max={20}\n onChange={(event) => setSshReconnectMaxRetries(Number(event.target.value))}\n className=\"min-h-10\"\n />\n </div>\n\n <div className=\"space-y-2\">\n <label className=\"block text-sm font-medium\" htmlFor=\"ssh-reconnect-delay-input\">\n {t('settings.sshReconnectDelay')}\n </label>\n <Input\n id=\"ssh-reconnect-delay-input\"\n type=\"number\"\n value={sshReconnectDelaySeconds}\n min={1}\n max={300}\n onChange={(event) => setSshReconnectDelaySeconds(Number(event.target.value))}\n className=\"min-h-10\"\n />\n </div>\n </div>\n </CardContent>\n </Card>\n )}\n\n {activeTab === 'telegram' && (\n <Card className=\"border-0 ring-0\">\n <CardHeader>\n <CardTitle>{t('telegram.title')}</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-6\">\n <div className=\"space-y-4\">\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-12 md:items-end\">\n <div className=\"md:col-span-4 space-y-2\">\n <label className=\"block text-sm font-medium\" htmlFor=\"new-bot-name\">\n {t('telegram.botName')}\n </label>\n <Input\n id=\"new-bot-name\"\n value={newBotName}\n onChange={(event) => setNewBotName(event.target.value)}\n placeholder={t('telegram.botNamePlaceholder')}\n className=\"min-h-10\"\n />\n </div>\n\n <div className=\"md:col-span-6 space-y-2\">\n <label className=\"block text-sm font-medium\" htmlFor=\"new-bot-token\">\n {t('telegram.botToken')}\n </label>\n <Input\n id=\"new-bot-token\"\n type=\"password\"\n value={newBotToken}\n onChange={(event) => setNewBotToken(event.target.value)}\n placeholder={t('telegram.botTokenPlaceholder')}\n className=\"min-h-10\"\n />\n </div>\n\n <div className=\"md:col-span-2\">\n <Button\n variant=\"default\"\n className=\"w-full md:w-auto\"\n data-testid=\"telegram-add-bot\"\n onClick={() => createBotMutation.mutate()}\n disabled={\n createBotMutation.isPending || !newBotName.trim() || !newBotToken.trim()\n }\n >\n {createBotMutation.isPending ? (\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n ) : (\n <Save className=\"h-4 w-4\" />\n )}\n {t('telegram.addBot')}\n </Button>\n </div>\n </div>\n </div>\n\n <div className=\"space-y-3\">\n {botsQuery.isLoading && (\n <div className=\"text-sm text-muted-foreground\">{t('common.loading')}</div>\n )}\n\n {!botsQuery.isLoading && bots.length === 0 && (\n <div className=\"text-sm text-muted-foreground\">{t('telegram.addBot')}</div>\n )}\n\n {bots.map((bot) => (\n <BotCard\n key={bot.id}\n bot={bot}\n expanded={expandedBotId === bot.id}\n onToggleExpand={() => {\n setExpandedBotId((prev) => (prev === bot.id ? null : bot.id));\n }}\n />\n ))}\n </div>\n </CardContent>\n </Card>\n )}\n\n {activeTab === 'webhooks' && (\n <Card className=\"border-0 ring-0\">\n <CardHeader>\n <CardTitle>{t('webhook.title')}</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-6\">\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-12 md:items-end\">\n <div className=\"md:col-span-6 space-y-2\">\n <label className=\"block text-sm font-medium\" htmlFor=\"webhook-url-input\">\n {t('webhook.url')}\n </label>\n <Input\n id=\"webhook-url-input\"\n data-testid=\"webhook-url-input\"\n value={newWebhookUrl}\n onChange={(event) => setNewWebhookUrl(event.target.value)}\n placeholder=\"https://example.com/webhook\"\n className=\"min-h-10\"\n />\n </div>\n\n <div className=\"md:col-span-4 space-y-2\">\n <label className=\"block text-sm font-medium\" htmlFor=\"webhook-secret-input\">\n {t('webhook.secret')}\n </label>\n <Input\n id=\"webhook-secret-input\"\n data-testid=\"webhook-secret-input\"\n value={newWebhookSecret}\n onChange={(event) => setNewWebhookSecret(event.target.value)}\n placeholder={t('webhook.secretPlaceholder')}\n className=\"min-h-10\"\n />\n </div>\n\n <div className=\"md:col-span-2\">\n <Button\n variant=\"default\"\n className=\"w-full md:w-auto\"\n data-testid=\"webhook-add\"\n onClick={() => createWebhookMutation.mutate()}\n disabled={\n createWebhookMutation.isPending ||\n !newWebhookUrl.trim() ||\n !newWebhookSecret.trim() ||\n newWebhookEventMask.length === 0\n }\n >\n {createWebhookMutation.isPending ? (\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n ) : (\n <Save className=\"h-4 w-4\" />\n )}\n {t('webhook.add')}\n </Button>\n </div>\n </div>\n\n <div className=\"space-y-3 rounded-lg border border-border bg-card px-4 py-3\">\n <div className=\"text-sm font-medium\">{t('webhook.eventMask')}</div>\n <div className=\"grid grid-cols-1 gap-3 sm:grid-cols-2\">\n {WEBHOOK_EVENT_OPTIONS.map((eventType) => {\n const checked = newWebhookEventMask.includes(eventType);\n return (\n <div\n key={eventType}\n className=\"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-background px-3 py-2\"\n >\n <div className=\"min-w-0 pr-2 text-sm font-medium\">\n {t(`notification.eventType.${eventType}` as const)}\n </div>\n <Switch\n checked={checked}\n data-testid={`webhook-event-${eventType}`}\n onCheckedChange={(nextChecked) => {\n setNewWebhookEventMask((prev) => {\n if (nextChecked) {\n return prev.includes(eventType) ? prev : [...prev, eventType];\n }\n return prev.filter((item) => item !== eventType);\n });\n }}\n />\n </div>\n );\n })}\n </div>\n </div>\n\n <div className=\"space-y-2\">\n {webhooksQuery.isLoading && (\n <div className=\"text-sm text-muted-foreground\">{t('common.loading')}</div>\n )}\n\n {!webhooksQuery.isLoading && webhooks.length === 0 && (\n <div className=\"text-sm text-muted-foreground\">{t('webhook.empty')}</div>\n )}\n\n {webhooks.map((webhook) => (\n <div\n key={webhook.id}\n data-testid=\"webhook-item\"\n data-webhook-url={webhook.url}\n className=\"flex items-center justify-between gap-3 rounded-lg border border-border bg-card px-4 py-2.5\"\n >\n <div className=\"min-w-0\">\n <div className=\"truncate text-sm font-medium\">{webhook.url}</div>\n <div className=\"text-xs text-muted-foreground\">\n {new Date(webhook.createdAt).toLocaleString(toBCP47Locale(language))}\n </div>\n </div>\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n data-testid=\"webhook-delete\"\n onClick={() => deleteWebhookMutation.mutate(webhook.id)}\n disabled={deleteWebhookMutation.isPending}\n aria-label={t('common.delete')}\n title={t('common.delete')}\n >\n <Trash2 className=\"h-4 w-4\" />\n </Button>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n )}\n\n {(activeTab === 'site' || activeTab === 'notifications') && (\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-end\">\n <Button\n variant=\"default\"\n data-testid=\"settings-save\"\n onClick={() => saveSiteMutation.mutate()}\n disabled={saveSiteMutation.isPending}\n className=\"w-full sm:w-auto\"\n >\n <Save className=\"h-4 w-4\" />\n {t('common.save')}\n </Button>\n </div>\n )}\n </div>\n );\n}\n\ninterface BotCardProps {\n bot: TelegramBotWithStats;\n expanded: boolean;\n onToggleExpand: () => void;\n}\n\nfunction BotCard({ bot, expanded, onToggleExpand }: BotCardProps) {\n const { t } = useTranslation();\n const queryClient = useQueryClient();\n\n const [name, setName] = useState(bot.name);\n const [token, setToken] = useState('');\n const [enabled, setEnabled] = useState(bot.enabled);\n const [allowAuthRequests, setAllowAuthRequests] = useState(bot.allowAuthRequests);\n\n useEffect(() => {\n setName(bot.name);\n setEnabled(bot.enabled);\n setAllowAuthRequests(bot.allowAuthRequests);\n }, [bot.allowAuthRequests, bot.enabled, bot.name]);\n\n const chatsQuery = useQuery({\n queryKey: ['telegram-bot-chats', bot.id],\n enabled: expanded,\n queryFn: async () => {\n const res = await fetch(`/api/settings/telegram/bots/${bot.id}/chats`);\n if (!res.ok) {\n throw new Error(await parseApiError(res, t('telegram.loadChatsFailed')));\n }\n return (await res.json()) as TelegramChatsResponse;\n },\n });\n\n const groupedChats = useMemo(() => {\n const chats = chatsQuery.data?.chats ?? [];\n return {\n pending: chats.filter((chat) => chat.status === 'pending'),\n authorized: chats.filter((chat) => chat.status === 'authorized'),\n };\n }, [chatsQuery.data?.chats]);\n\n const patchBotMutation = useMutation({\n mutationFn: async () => {\n const payload: Record<string, unknown> = {\n name,\n enabled,\n allowAuthRequests,\n };\n if (token.trim()) {\n payload.token = token.trim();\n }\n\n const res = await fetch(`/api/settings/telegram/bots/${bot.id}`, {\n method: 'PATCH',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n });\n\n if (!res.ok) {\n throw new Error(await parseApiError(res, t('telegram.updateFailed')));\n }\n },\n onSuccess: async () => {\n setToken('');\n await queryClient.invalidateQueries({ queryKey: ['telegram-bots'] });\n toast.success(t('common.success'));\n },\n onError: (err) => {\n toast.error(err instanceof Error ? err.message : t('common.error'));\n },\n });\n\n const deleteBotMutation = useMutation({\n mutationFn: async () => {\n const res = await fetch(`/api/settings/telegram/bots/${bot.id}`, {\n method: 'DELETE',\n });\n\n if (!res.ok) {\n throw new Error(await parseApiError(res, t('telegram.deleteFailed')));\n }\n },\n onSuccess: async () => {\n await queryClient.invalidateQueries({ queryKey: ['telegram-bots'] });\n toast.success(t('common.success'));\n },\n onError: (err) => {\n toast.error(err instanceof Error ? err.message : t('common.error'));\n },\n });\n\n const approveMutation = useMutation({\n mutationFn: async (chatId: string) => {\n const res = await fetch(\n `/api/settings/telegram/bots/${bot.id}/chats/${encodeURIComponent(chatId)}/approve`,\n {\n method: 'POST',\n }\n );\n if (!res.ok) {\n throw new Error(await parseApiError(res, t('telegram.approveFailed')));\n }\n },\n onSuccess: async () => {\n await Promise.all([\n queryClient.invalidateQueries({ queryKey: ['telegram-bots'] }),\n queryClient.invalidateQueries({ queryKey: ['telegram-bot-chats', bot.id] }),\n ]);\n toast.success(t('common.success'));\n },\n onError: (err) => {\n toast.error(err instanceof Error ? err.message : t('common.error'));\n },\n });\n\n const removeChatMutation = useMutation({\n mutationFn: async (chatId: string) => {\n const res = await fetch(\n `/api/settings/telegram/bots/${bot.id}/chats/${encodeURIComponent(chatId)}`,\n {\n method: 'DELETE',\n }\n );\n if (!res.ok) {\n throw new Error(await parseApiError(res, t('telegram.removeFailed')));\n }\n },\n onSuccess: async () => {\n await Promise.all([\n queryClient.invalidateQueries({ queryKey: ['telegram-bots'] }),\n queryClient.invalidateQueries({ queryKey: ['telegram-bot-chats', bot.id] }),\n ]);\n toast.success(t('common.success'));\n },\n onError: (err) => {\n toast.error(err instanceof Error ? err.message : t('common.error'));\n },\n });\n\n const testChatMutation = useMutation({\n mutationFn: async (chatId: string) => {\n const res = await fetch(\n `/api/settings/telegram/bots/${bot.id}/chats/${encodeURIComponent(chatId)}/test`,\n {\n method: 'POST',\n }\n );\n if (!res.ok) {\n throw new Error(await parseApiError(res, t('telegram.testMessageFailed')));\n }\n },\n onSuccess: () => {\n toast.success(t('common.success'));\n },\n onError: (err) => {\n toast.error(err instanceof Error ? err.message : t('common.error'));\n },\n });\n\n return (\n <div\n className=\"space-y-4 rounded-md border-0 bg-card p-4\"\n data-testid={`telegram-bot-card-${bot.id}`}\n data-bot-name={bot.name}\n >\n <div className=\"flex items-center justify-between gap-3\">\n <div>\n <div className=\"font-medium\">{bot.name}</div>\n <div className=\"text-xs text-muted-foreground\">\n {bot.authorizedCount} / {bot.pendingCount}\n </div>\n </div>\n <Button\n variant=\"ghost\"\n data-testid={`telegram-bot-toggle-${bot.id}`}\n onClick={onToggleExpand}\n >\n {expanded ? t('common.collapse') : t('common.expand')}\n </Button>\n </div>\n\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-12 md:items-end\">\n <div className=\"md:col-span-3 space-y-2\">\n <label className=\"block text-sm font-medium\" htmlFor={`bot-name-${bot.id}`}>\n {t('telegram.botName')}\n </label>\n <Input\n id={`bot-name-${bot.id}`}\n value={name}\n onChange={(event) => setName(event.target.value)}\n className=\"min-h-10\"\n />\n </div>\n <div className=\"md:col-span-4 space-y-2\">\n <label className=\"block text-sm font-medium\" htmlFor={`bot-token-${bot.id}`}>\n {t('telegram.botToken')}\n </label>\n <Input\n id={`bot-token-${bot.id}`}\n type=\"password\"\n value={token}\n onChange={(event) => setToken(event.target.value)}\n placeholder={t('telegram.tokenPlaceholder')}\n className=\"min-h-10\"\n />\n </div>\n <div className=\"md:col-span-2\">\n <div className=\"flex min-h-10 items-center justify-between gap-3 rounded-lg border border-border bg-background px-3 py-2.5\">\n <span className=\"text-sm font-medium\">{t('common.enabled')}</span>\n <Switch checked={enabled} onCheckedChange={(checked) => setEnabled(Boolean(checked))} />\n </div>\n </div>\n <div className=\"md:col-span-3\">\n <div className=\"flex min-h-10 items-center justify-between gap-3 rounded-lg border border-border bg-background px-3 py-2.5\">\n <span className=\"text-sm font-medium\">{t('telegram.allowAuthRequests')}</span>\n <Switch\n checked={allowAuthRequests}\n onCheckedChange={(checked) => setAllowAuthRequests(Boolean(checked))}\n />\n </div>\n </div>\n </div>\n\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-end\">\n <Button\n variant=\"destructive\"\n data-testid={`telegram-bot-delete-${bot.id}`}\n onClick={() => deleteBotMutation.mutate()}\n className=\"w-full sm:w-auto\"\n >\n <Trash2 className=\"h-4 w-4\" />\n {t('telegram.deleteBot')}\n </Button>\n <Button\n variant=\"default\"\n data-testid={`telegram-bot-save-${bot.id}`}\n onClick={() => patchBotMutation.mutate()}\n className=\"w-full sm:w-auto\"\n >\n <Save className=\"h-4 w-4\" />\n {t('common.save')}\n </Button>\n </div>\n\n {expanded && (\n <div className=\"grid grid-cols-1 gap-4 border-t border-border pt-4 lg:grid-cols-2\">\n <div className=\"space-y-2\">\n <h3 className=\"text-sm font-semibold flex items-center gap-1\">\n <Shield className=\"h-4 w-4\" />\n {t('telegram.pendingChats')}\n </h3>\n {groupedChats.pending.length === 0 && <div className=\"text-xs text-muted-foreground\">-</div>}\n {groupedChats.pending.map((chat) => (\n <ChatRow\n key={`${chat.botId}-${chat.chatId}`}\n chat={chat}\n pending\n onApprove={() => approveMutation.mutate(chat.chatId)}\n onDelete={() => removeChatMutation.mutate(chat.chatId)}\n />\n ))}\n </div>\n\n <div className=\"space-y-2\">\n <h3 className=\"text-sm font-semibold flex items-center gap-1\">\n <Shield className=\"h-4 w-4\" />\n {t('telegram.chats')}\n </h3>\n {groupedChats.authorized.length === 0 && <div className=\"text-xs text-muted-foreground\">-</div>}\n {groupedChats.authorized.map((chat) => (\n <ChatRow\n key={`${chat.botId}-${chat.chatId}`}\n chat={chat}\n pending={false}\n onTest={() => testChatMutation.mutate(chat.chatId)}\n onDelete={() => removeChatMutation.mutate(chat.chatId)}\n />\n ))}\n </div>\n\n {chatsQuery.isLoading && (\n <div className=\"lg:col-span-2 text-xs text-muted-foreground\">\n {t('common.loading')}\n </div>\n )}\n </div>\n )}\n </div>\n );\n}\n\ninterface ChatRowProps {\n chat: TelegramBotChat;\n pending: boolean;\n onApprove?: () => void;\n onDelete: () => void;\n onTest?: () => void;\n}\n\nfunction ChatRow({ chat, pending, onApprove, onDelete, onTest }: ChatRowProps) {\n const { t } = useTranslation();\n const language = useSiteStore((state) => state.settings?.language ?? 'en_US');\n return (\n <div className=\"space-y-2 rounded border-0 bg-background p-3\">\n <div className=\"text-sm font-medium truncate\" title={chat.displayName}>\n {chat.displayName}\n </div>\n <div className=\"text-xs text-muted-foreground\">\n {t('telegram.chatId')}:{chat.chatId}\n </div>\n <div className=\"text-xs text-muted-foreground\">\n {new Date(chat.appliedAt).toLocaleString(toBCP47Locale(language))}\n </div>\n\n <div className=\"flex items-center justify-end gap-2 pt-1\">\n {pending ? (\n <>\n <Button variant=\"outline\" size=\"sm\" onClick={onDelete}>\n {t('telegram.reject')}\n </Button>\n <Button variant=\"default\" size=\"sm\" onClick={onApprove}>\n {t('telegram.authorize')}\n </Button>\n </>\n ) : (\n <>\n <Button variant=\"secondary\" size=\"sm\" onClick={onTest}>\n <Send className=\"h-3.5 w-3.5\" />\n {t('telegram.sendTestMessage')}\n </Button>\n <Button variant=\"destructive\" size=\"sm\" onClick={onDelete}>\n {t('common.delete')}\n </Button>\n </>\n )}\n </div>\n </div>\n );\n}\n\n// Page title component\nexport function PageTitle() {\n const { t } = useTranslation();\n return <>{t('sidebar.settings')}</>;\n}\n\n// Page actions component\nexport function PageActions() {\n const { t } = useTranslation();\n const [showRestartConfirm, setShowRestartConfirm] = useState(false);\n\n const restartMutation = useMutation({\n mutationFn: async () => {\n const res = await fetch('/api/settings/restart', { method: 'POST' });\n if (!res.ok) {\n throw new Error(await parseApiError(res, t('settings.restartFailed')));\n }\n },\n onSuccess: () => {\n toast.success(t('settings.restartScheduled'));\n },\n onError: (err) => {\n toast.error(err instanceof Error ? err.message : t('common.error'));\n },\n });\n\n return (\n <>\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => setShowRestartConfirm(true)}\n disabled={restartMutation.isPending}\n aria-label={t('settings.restartGateway')}\n title={t('settings.restartGateway')}\n className=\"text-destructive hover:text-destructive hover:bg-destructive/10\"\n >\n <RotateCcw className=\"h-4 w-4\" />\n </Button>\n\n <AlertDialog open={showRestartConfirm} onOpenChange={setShowRestartConfirm}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>{t('settings.restartGateway')}</AlertDialogTitle>\n <AlertDialogDescription>{t('settings.restartConfirm')}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel onClick={() => setShowRestartConfirm(false)}>\n {t('common.cancel')}\n </AlertDialogCancel>\n <AlertDialogAction\n variant=\"destructive\"\n onClick={() => {\n restartMutation.mutate();\n setShowRestartConfirm(false);\n }}\n >\n {t('common.confirm')}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n </>\n );\n}\n"],"names":["__iconNode","RotateCcw","createLucideIcon","Save","Shield","WEBHOOK_EVENT_OPTIONS","parseApiError","res","fallback","SettingsPage","useTranslation","queryClient","useQueryClient","refreshSettings","useSiteStore","activeTab","setActiveTab","useState","theme","useUIStore","state","setTheme","isDark","siteName","setSiteName","siteUrl","setSiteUrl","language","setLanguage","bellThrottleSeconds","setBellThrottleSeconds","notificationThrottleSeconds","setNotificationThrottleSeconds","enableBrowserBellToast","setEnableBrowserBellToast","enableBrowserNotificationToast","setEnableBrowserNotificationToast","enableTelegramBellPush","setEnableTelegramBellPush","enableTelegramNotificationPush","setEnableTelegramNotificationPush","sshReconnectMaxRetries","setSshReconnectMaxRetries","sshReconnectDelaySeconds","setSshReconnectDelaySeconds","showRefreshNotice","setShowRefreshNotice","newBotName","setNewBotName","newBotToken","setNewBotToken","expandedBotId","setExpandedBotId","newWebhookUrl","setNewWebhookUrl","newWebhookSecret","setNewWebhookSecret","newWebhookEventMask","setNewWebhookEventMask","handleThemeChange","checked","nextTheme","settingsQuery","useQuery","botsQuery","useEffect","settings","_a","saveSiteMutation","useMutation","toast","_b","i18n","err","createBotMutation","bots","webhooksQuery","createWebhookMutation","deleteWebhookMutation","id","webhooks","_c","jsxs","jsx","Button","Card","CardHeader","CardTitle","CardContent","Input","event","Select","nextValue","SelectTrigger","SelectValue","_d","I18N_MANIFEST","l","SelectContent","locale","SelectItem","Switch","Loader2","bot","BotCard","prev","eventType","nextChecked","item","webhook","toBCP47Locale","Trash2","expanded","onToggleExpand","t","name","setName","token","setToken","enabled","setEnabled","allowAuthRequests","setAllowAuthRequests","chatsQuery","groupedChats","useMemo","chats","chat","patchBotMutation","payload","deleteBotMutation","approveMutation","chatId","removeChatMutation","testChatMutation","ChatRow","pending","onApprove","onDelete","onTest","Fragment","Send","PageTitle","PageActions","showRestartConfirm","setShowRestartConfirm","restartMutation","AlertDialog","AlertDialogContent","AlertDialogHeader","AlertDialogTitle","AlertDialogDescription","AlertDialogFooter","AlertDialogCancel","AlertDialogAction"],"mappings":"kaAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAMA,GAAa,CACjB,CAAC,OAAQ,CAAE,EAAG,oDAAqD,IAAK,QAAQ,CAAE,EAClF,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,CAC3C,EACMC,GAAYC,EAAiB,aAAcF,EAAU,ECb3D;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAMA,GAAa,CACjB,CACE,OACA,CACE,EAAG,qGACH,IAAK,QACX,CACA,EACE,CAAC,OAAQ,CAAE,EAAG,4CAA6C,IAAK,QAAQ,CAAE,EAC1E,CAAC,OAAQ,CAAE,EAAG,yBAA0B,IAAK,QAAQ,CAAE,CACzD,EACMG,EAAOD,EAAiB,OAAQF,EAAU,ECpBhD;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAMA,GAAa,CACjB,CACE,OACA,CACE,EAAG,qKACH,IAAK,QACX,CACA,CACA,EACMI,GAASF,EAAiB,SAAUF,EAAU,ECuC9CK,EAAqC,CACzC,gBACA,wBACA,oBACA,kBACA,sBACA,oBACA,kBACA,gBACF,EAEA,eAAeC,EAAcC,EAAeC,EAAmC,CAC7E,GAAI,CAEF,OADiB,MAAMD,EAAI,KAAA,GACZ,OAASC,CAC1B,MAAQ,CACN,OAAOA,CACT,CACF,CAEA,SAAwBC,IAAe,iBACrC,KAAM,CAAE,CAAA,EAAMC,EAAA,EACRC,EAAcC,GAAA,EACd,CAAE,gBAAAC,CAAA,EAAoBC,GAAA,EAEtB,CAACC,EAAWC,CAAY,EAAIC,EAAAA,SAChC,MAAA,EAGIC,EAAQC,GAAYC,GAAUA,EAAM,KAAK,EACzCC,EAAWF,GAAYC,GAAUA,EAAM,QAAQ,EAC/CE,EAASJ,IAAU,OAGnB,CAACK,EAAUC,CAAW,EAAIP,EAAAA,SAAS,MAAM,EACzC,CAACQ,EAASC,CAAU,EAAIT,EAAAA,SAAS,OAAO,SAAS,MAAM,EACvD,CAACU,EAAUC,CAAW,EAAIX,EAAAA,SAAqB,OAAO,EAGtD,CAACY,EAAqBC,CAAsB,EAAIb,EAAAA,SAAS,CAAC,EAC1D,CAACc,EAA6BC,CAA8B,EAAIf,EAAAA,SAAS,CAAC,EAC1E,CAACgB,EAAwBC,CAAyB,EAAIjB,EAAAA,SAAS,EAAI,EACnE,CAACkB,EAAgCC,CAAiC,EAAInB,EAAAA,SAAS,EAAI,EACnF,CAACoB,EAAwBC,CAAyB,EAAIrB,EAAAA,SAAS,EAAI,EACnE,CAACsB,GAAgCC,EAAiC,EAAIvB,EAAAA,SAAS,EAAI,EACnF,CAACwB,GAAwBC,EAAyB,EAAIzB,EAAAA,SAAS,CAAC,EAChE,CAAC0B,GAA0BC,EAA2B,EAAI3B,EAAAA,SAAS,EAAE,EACrE,CAAC4B,GAAmBC,EAAoB,EAAI7B,EAAAA,SAAS,EAAK,EAG1D,CAAC8B,EAAYC,EAAa,EAAI/B,EAAAA,SAAS,EAAE,EACzC,CAACgC,EAAaC,EAAc,EAAIjC,EAAAA,SAAS,EAAE,EAC3C,CAACkC,GAAeC,EAAgB,EAAInC,EAAAA,SAAwB,IAAI,EAGhE,CAACoC,EAAeC,EAAgB,EAAIrC,EAAAA,SAAS,EAAE,EAC/C,CAACsC,EAAkBC,EAAmB,EAAIvC,EAAAA,SAAS,EAAE,EACrD,CAACwC,EAAqBC,EAAsB,EAAIzC,EAAAA,SAAsBZ,CAAqB,EAE3FsD,GAAqBC,GAAqB,CAC9C,MAAMC,EAAYD,EAAU,OAAS,QACrCvC,EAASwC,CAAS,EAClB,SAAS,gBAAgB,UAAU,OAAO,OAAQA,IAAc,MAAM,CACxE,EAEMC,EAAgBC,EAAS,CAC7B,SAAU,CAAC,eAAe,EAC1B,QAAS,SAAY,CACnB,MAAMxD,EAAM,MAAM,MAAM,oBAAoB,EAC5C,GAAI,CAACA,EAAI,GACP,MAAM,IAAI,MAAM,MAAMD,EAAcC,EAAK,EAAE,qBAAqB,CAAC,CAAC,EAEpE,OAAQ,MAAMA,EAAI,KAAA,CACpB,CAAA,CACD,EAEKyD,EAAYD,EAAS,CACzB,SAAU,CAAC,eAAe,EAC1B,QAAS,SAAY,CACnB,MAAMxD,EAAM,MAAM,MAAM,6BAA6B,EACrD,GAAI,CAACA,EAAI,GACP,MAAM,IAAI,MAAM,MAAMD,EAAcC,EAAK,EAAE,yBAAyB,CAAC,CAAC,EAExE,OAAQ,MAAMA,EAAI,KAAA,CACpB,CAAA,CACD,EAED0D,EAAAA,UAAU,IAAM,OACd,MAAMC,GAAWC,EAAAL,EAAc,OAAd,YAAAK,EAAoB,SAChCD,IAIL1C,EAAY0C,EAAS,QAAQ,EAC7BxC,EAAWwC,EAAS,OAAO,EAC3BtC,EAAYsC,EAAS,UAAY,OAAO,EACxCpC,EAAuBoC,EAAS,mBAAmB,EACnDlC,EAA+BkC,EAAS,6BAA+B,CAAC,EACxEhC,EAA0BgC,EAAS,wBAA0B,EAAI,EACjE9B,EAAkC8B,EAAS,gCAAkC,EAAI,EACjF5B,EAA0B4B,EAAS,wBAA0B,EAAI,EACjE1B,GAAkC0B,EAAS,gCAAkC,EAAI,EACjFxB,GAA0BwB,EAAS,sBAAsB,EACzDtB,GAA4BsB,EAAS,wBAAwB,EAC/D,EAAG,EAACC,GAAAL,EAAc,OAAd,YAAAK,GAAoB,QAAQ,CAAC,EAEjC,MAAMC,GAAmBC,EAAY,CACnC,WAAY,SAAY,CAetB,MAAM9D,EAAM,MAAM,MAAM,qBAAsB,CAC5C,OAAQ,QACR,QAAS,CACP,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAnB8B,CACzC,SAAAgB,EACA,QAAAE,EACA,SAAAE,EACA,oBAAAE,EACA,4BAAAE,EACA,uBAAAE,EACA,+BAAAE,EACA,uBAAAE,EACA,+BAAAE,GACA,uBAAAE,GACA,yBAAAE,EAAA,CAQ4B,CAAA,CAC7B,EAED,GAAI,CAACpC,EAAI,GACP,MAAM,IAAI,MAAM,MAAMD,EAAcC,EAAK,EAAE,qBAAqB,CAAC,CAAC,CAEtE,EACA,UAAW,SAAY,SACrB,MAAM,QAAQ,IAAI,CAChBI,EAAY,kBAAkB,CAAE,SAAU,CAAC,eAAe,EAAG,EAC7DE,EAAA,CAAgB,CACjB,EACDyD,EAAM,QAAQ,EAAE,wBAAwB,CAAC,IACrCC,GAAAJ,EAAAL,EAAc,OAAd,YAAAK,EAAoB,WAApB,YAAAI,EAA8B,YAAa5C,IACxC6C,GAAK,eAAe7C,CAAQ,EACjCmB,GAAqB,EAAI,EAE7B,EACA,QAAU2B,GAAQ,CAChBH,EAAM,MAAMG,aAAe,MAAQA,EAAI,QAAU,EAAE,cAAc,CAAC,CACpE,CAAA,CACD,EAEKC,EAAoBL,EAAY,CACpC,WAAY,SAAY,CACtB,MAAM9D,EAAM,MAAM,MAAM,8BAA+B,CACrD,OAAQ,OACR,QAAS,CACP,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CACnB,KAAMwC,EACN,MAAOE,EACP,QAAS,GACT,kBAAmB,EAAA,CACpB,CAAA,CACF,EAED,GAAI,CAAC1C,EAAI,GACP,MAAM,IAAI,MAAM,MAAMD,EAAcC,EAAK,EAAE,uBAAuB,CAAC,CAAC,CAExE,EACA,UAAW,SAAY,CACrByC,GAAc,EAAE,EAChBE,GAAe,EAAE,EACjB,MAAMvC,EAAY,kBAAkB,CAAE,SAAU,CAAC,eAAe,EAAG,EACnE2D,EAAM,QAAQ,EAAE,gBAAgB,CAAC,CACnC,EACA,QAAUG,GAAQ,CAChBH,EAAM,MAAMG,aAAe,MAAQA,EAAI,QAAU,EAAE,cAAc,CAAC,CACpE,CAAA,CACD,EAEKE,KAAOJ,GAAAP,EAAU,OAAV,YAAAO,GAAgB,OAAQ,CAAA,EAE/BK,EAAgBb,EAAS,CAC7B,SAAU,CAAC,UAAU,EACrB,QAAS,SAAY,CACnB,MAAMxD,EAAM,MAAM,MAAM,eAAe,EACvC,GAAI,CAACA,EAAI,GACP,MAAM,IAAI,MAAM,MAAMD,EAAcC,EAAK,EAAE,oBAAoB,CAAC,CAAC,EAEnE,OAAQ,MAAMA,EAAI,KAAA,CACpB,CAAA,CACD,EAEKsE,EAAwBR,EAAY,CACxC,WAAY,SAAY,CACtB,MAAM9D,EAAM,MAAM,MAAM,gBAAiB,CACvC,OAAQ,OACR,QAAS,CACP,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CACnB,IAAK8C,EACL,OAAQE,EACR,UAAWE,CAAA,CACZ,CAAA,CACF,EAED,GAAI,CAAClD,EAAI,GACP,MAAM,IAAI,MAAM,MAAMD,EAAcC,EAAK,EAAE,sBAAsB,CAAC,CAAC,CAEvE,EACA,UAAW,SAAY,CACrB+C,GAAiB,EAAE,EACnBE,GAAoB,EAAE,EACtBE,GAAuBrD,CAAqB,EAC5C,MAAMM,EAAY,kBAAkB,CAAE,SAAU,CAAC,UAAU,EAAG,EAC9D2D,EAAM,QAAQ,EAAE,gBAAgB,CAAC,CACnC,EACA,QAAUG,GAAQ,CAChBH,EAAM,MAAMG,aAAe,MAAQA,EAAI,QAAU,EAAE,cAAc,CAAC,CACpE,CAAA,CACD,EAEKK,GAAwBT,EAAY,CACxC,WAAY,MAAOU,GAAe,CAChC,MAAMxE,EAAM,MAAM,MAAM,iBAAiBwE,CAAE,GAAI,CAAE,OAAQ,SAAU,EACnE,GAAI,CAACxE,EAAI,GACP,MAAM,IAAI,MAAM,MAAMD,EAAcC,EAAK,EAAE,sBAAsB,CAAC,CAAC,CAEvE,EACA,UAAW,SAAY,CACrB,MAAMI,EAAY,kBAAkB,CAAE,SAAU,CAAC,UAAU,EAAG,EAC9D2D,EAAM,QAAQ,EAAE,gBAAgB,CAAC,CACnC,EACA,QAAUG,GAAQ,CAChBH,EAAM,MAAMG,aAAe,MAAQA,EAAI,QAAU,EAAE,cAAc,CAAC,CACpE,CAAA,CACD,EAEKO,KAAWC,GAAAL,EAAc,OAAd,YAAAK,GAAoB,WAAY,CAAA,EAEjD,OACEC,EAAAA,KAAC,MAAA,CACC,UAAU,+GACV,cAAY,gBAEZ,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,uBACb,SAAA,CAAAC,EAAAA,IAACC,EAAA,CACC,KAAK,SACL,KAAK,KACL,QAASrE,IAAc,OAAS,UAAY,UAC5C,cAAY,oBACZ,QAAS,IAAMC,EAAa,MAAM,EAEjC,WAAE,uBAAuB,CAAA,CAAA,EAE5BmE,EAAAA,IAACC,EAAA,CACC,KAAK,SACL,KAAK,KACL,QAASrE,IAAc,gBAAkB,UAAY,UACrD,cAAY,6BACZ,QAAS,IAAMC,EAAa,eAAe,EAE1C,WAAE,2BAA2B,CAAA,CAAA,EAEhCmE,EAAAA,IAACC,EAAA,CACC,KAAK,SACL,KAAK,KACL,QAASrE,IAAc,WAAa,UAAY,UAChD,cAAY,wBACZ,QAAS,IAAMC,EAAa,UAAU,EAErC,WAAE,gBAAgB,CAAA,CAAA,EAErBmE,EAAAA,IAACC,EAAA,CACC,KAAK,SACL,KAAK,KACL,QAASrE,IAAc,WAAa,UAAY,UAChD,cAAY,wBACZ,QAAS,IAAMC,EAAa,UAAU,EAErC,WAAE,eAAe,CAAA,CAAA,CACpB,EACF,EAECD,IAAc,QACbmE,OAACG,EAAA,CAAK,UAAU,kBACd,SAAA,CAAAF,EAAAA,IAACG,GACC,SAAAH,MAACI,EAAA,CAAW,SAAA,EAAE,uBAAuB,EAAE,CAAA,CACzC,EACAL,EAAAA,KAACM,EAAA,CAAY,UAAU,YACrB,SAAA,CAAAN,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAC,EAAAA,IAAC,SAAM,UAAU,4BAA4B,QAAQ,kBAClD,SAAA,EAAE,mBAAmB,EACxB,EACAA,EAAAA,IAACM,EAAA,CACC,GAAG,kBACH,MAAOlE,EACP,SAAWmE,GAAUlE,EAAYkE,EAAM,OAAO,KAAK,EACnD,YAAa,EAAE,8BAA8B,EAC7C,UAAU,UAAA,CAAA,CACZ,EACF,EAEAR,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAC,EAAAA,IAAC,SAAM,UAAU,4BAA4B,QAAQ,iBAClD,SAAA,EAAE,kBAAkB,EACvB,EACAA,EAAAA,IAACM,EAAA,CACC,GAAG,iBACH,MAAOhE,EACP,SAAWiE,GAAUhE,EAAWgE,EAAM,OAAO,KAAK,EAClD,YAAa,EAAE,6BAA6B,EAC5C,UAAU,UAAA,CAAA,CACZ,EACF,EAEAR,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAC,EAAAA,IAAC,SAAM,UAAU,4BAA4B,QAAQ,kBAClD,SAAA,EAAE,mBAAmB,EACxB,EACAD,EAAAA,KAACS,GAAA,CACC,MAAOhE,EACP,cAAgBiE,GAAc,CACvBA,GACLhE,EAAYgE,CAAuB,CACrC,EAEA,SAAA,CAAAT,EAAAA,IAACU,GAAA,CACC,GAAG,kBACH,cAAY,2BACZ,UAAU,kBAEV,eAACC,GAAA,CAAY,YAAa,EAAE,mBAAmB,EAC5C,WAAAC,GAAAC,GAAc,QAAQ,KAAMC,GAAMA,EAAE,OAAStE,CAAQ,IAArD,YAAAoE,GAAwD,aAAcpE,CAAA,CACzE,CAAA,CAAA,QAEDuE,GAAA,CAAc,UAAU,sCACtB,SAAAF,GAAc,QAAQ,IAAKG,SACzBC,GAAA,CAA6B,MAAOD,EAAO,KACzC,SAAAA,EAAO,YADOA,EAAO,IAExB,CACD,CAAA,CACH,CAAA,CAAA,CAAA,EAEDtD,UACE,IAAA,CAAE,UAAU,4BAA4B,cAAY,0BAClD,SAAA,EAAE,yBAAyB,CAAA,CAC9B,CAAA,EAEJ,QAEC,MAAA,CAAI,UAAU,YACb,SAAAqC,EAAAA,KAAC,MAAA,CAAI,UAAU,uGACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,eACb,SAAAA,EAAAA,IAAC,MAAA,CAAI,UAAU,sBAAuB,SAAA,EAAE,gBAAgB,CAAA,CAAE,EAC5D,EACAA,EAAAA,IAACkB,EAAA,CACC,QAAS/E,EACT,gBAAkBsC,GAAYD,GAAkB,EAAQC,CAAQ,EAChE,cAAY,uBAAA,CAAA,CACd,CAAA,CACF,CAAA,CACF,CAAA,CAAA,CACF,CAAA,EACF,EAGD7C,IAAc,iBACbmE,OAACG,EAAA,CAAK,UAAU,kBACd,SAAA,CAAAF,EAAAA,IAACG,GACC,SAAAH,MAACI,EAAA,CAAW,SAAA,EAAE,2BAA2B,EAAE,CAAA,CAC7C,EACAL,EAAAA,KAACM,EAAA,CAAY,UAAU,YACrB,SAAA,CAAAN,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,uGACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,eACb,SAAAA,EAAAA,IAAC,MAAA,CAAI,UAAU,sBAAuB,SAAA,EAAE,iCAAiC,CAAA,CAAE,EAC7E,EACAA,EAAAA,IAACkB,EAAA,CACC,QAASpE,EACT,gBAAkB2B,GAAY1B,EAA0B,EAAQ0B,CAAQ,EACxE,cAAY,oCAAA,CAAA,CACd,EACF,EAEAsB,EAAAA,KAAC,MAAA,CAAI,UAAU,uGACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,eACb,SAAAA,EAAAA,IAAC,MAAA,CAAI,UAAU,sBAAuB,SAAA,EAAE,iCAAiC,CAAA,CAAE,EAC7E,EACAA,EAAAA,IAACkB,EAAA,CACC,QAAShE,EACT,gBAAkBuB,GAAYtB,EAA0B,EAAQsB,CAAQ,EACxE,cAAY,oCAAA,CAAA,CACd,EACF,EAEAsB,EAAAA,KAAC,MAAA,CAAI,UAAU,uGACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,eACb,SAAAA,EAAAA,IAAC,MAAA,CAAI,UAAU,sBACZ,SAAA,EAAE,yCAAyC,CAAA,CAC9C,EACF,EACAA,EAAAA,IAACkB,EAAA,CACC,QAASlE,EACT,gBAAkByB,GAAYxB,EAAkC,EAAQwB,CAAQ,EAChF,cAAY,4CAAA,CAAA,CACd,EACF,EAEAsB,EAAAA,KAAC,MAAA,CAAI,UAAU,uGACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,eACb,SAAAA,EAAAA,IAAC,MAAA,CAAI,UAAU,sBACZ,SAAA,EAAE,yCAAyC,CAAA,CAC9C,EACF,EACAA,EAAAA,IAACkB,EAAA,CACC,QAAS9D,GACT,gBAAkBqB,GAAYpB,GAAkC,EAAQoB,CAAQ,EAChF,cAAY,4CAAA,CAAA,CACd,CAAA,CACF,CAAA,EACF,EAEAsB,EAAAA,KAAC,MAAA,CAAI,UAAU,wCACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAC,EAAAA,IAAC,SAAM,UAAU,4BAA4B,QAAQ,sBAClD,SAAA,EAAE,uBAAuB,EAC5B,EACAA,EAAAA,IAACM,EAAA,CACC,GAAG,sBACH,KAAK,SACL,MAAO5D,EACP,IAAK,EACL,IAAK,IACL,SAAW6D,GAAU5D,EAAuB,OAAO4D,EAAM,OAAO,KAAK,CAAC,EACtE,UAAU,UAAA,CAAA,CACZ,EACF,EAEAR,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAC,EAAAA,IAAC,SAAM,UAAU,4BAA4B,QAAQ,8BAClD,SAAA,EAAE,+BAA+B,EACpC,EACAA,EAAAA,IAACM,EAAA,CACC,GAAG,8BACH,KAAK,SACL,MAAO1D,EACP,IAAK,EACL,IAAK,IACL,SAAW2D,GAAU1D,EAA+B,OAAO0D,EAAM,OAAO,KAAK,CAAC,EAC9E,UAAU,UAAA,CAAA,CACZ,EACF,EAEAR,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAC,EAAAA,IAAC,SAAM,UAAU,4BAA4B,QAAQ,8BAClD,SAAA,EAAE,iCAAiC,EACtC,EACAA,EAAAA,IAACM,EAAA,CACC,GAAG,8BACH,KAAK,SACL,MAAOhD,GACP,IAAK,EACL,IAAK,GACL,SAAWiD,GAAUhD,GAA0B,OAAOgD,EAAM,OAAO,KAAK,CAAC,EACzE,UAAU,UAAA,CAAA,CACZ,EACF,EAEAR,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAC,EAAAA,IAAC,SAAM,UAAU,4BAA4B,QAAQ,4BAClD,SAAA,EAAE,4BAA4B,EACjC,EACAA,EAAAA,IAACM,EAAA,CACC,GAAG,4BACH,KAAK,SACL,MAAO9C,GACP,IAAK,EACL,IAAK,IACL,SAAW+C,GAAU9C,GAA4B,OAAO8C,EAAM,OAAO,KAAK,CAAC,EAC3E,UAAU,UAAA,CAAA,CACZ,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CAAA,CACF,CAAA,EACF,EAGD3E,IAAc,YACbmE,OAACG,EAAA,CAAK,UAAU,kBACd,SAAA,CAAAF,EAAAA,IAACG,GACC,SAAAH,MAACI,EAAA,CAAW,SAAA,EAAE,gBAAgB,EAAE,CAAA,CAClC,EACAL,EAAAA,KAACM,EAAA,CAAY,UAAU,YACrB,SAAA,CAAAL,EAAAA,IAAC,OAAI,UAAU,YACb,SAAAD,EAAAA,KAAC,MAAA,CAAI,UAAU,sDACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAC,EAAAA,IAAC,SAAM,UAAU,4BAA4B,QAAQ,eAClD,SAAA,EAAE,kBAAkB,EACvB,EACAA,EAAAA,IAACM,EAAA,CACC,GAAG,eACH,MAAO1C,EACP,SAAW2C,GAAU1C,GAAc0C,EAAM,OAAO,KAAK,EACrD,YAAa,EAAE,6BAA6B,EAC5C,UAAU,UAAA,CAAA,CACZ,EACF,EAEAR,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAC,EAAAA,IAAC,SAAM,UAAU,4BAA4B,QAAQ,gBAClD,SAAA,EAAE,mBAAmB,EACxB,EACAA,EAAAA,IAACM,EAAA,CACC,GAAG,gBACH,KAAK,WACL,MAAOxC,EACP,SAAWyC,GAAUxC,GAAewC,EAAM,OAAO,KAAK,EACtD,YAAa,EAAE,8BAA8B,EAC7C,UAAU,UAAA,CAAA,CACZ,EACF,EAEAP,EAAAA,IAAC,MAAA,CAAI,UAAU,gBACb,SAAAD,EAAAA,KAACE,EAAA,CACC,QAAQ,UACR,UAAU,mBACV,cAAY,mBACZ,QAAS,IAAMV,EAAkB,OAAA,EACjC,SACEA,EAAkB,WAAa,CAAC3B,EAAW,QAAU,CAACE,EAAY,KAAA,EAGnE,SAAA,CAAAyB,EAAkB,gBAChB4B,GAAA,CAAQ,UAAU,uBAAuB,EAE1CnB,EAAAA,IAAChF,EAAA,CAAK,UAAU,SAAA,CAAU,EAE3B,EAAE,iBAAiB,CAAA,CAAA,CAAA,CACtB,CACF,CAAA,CAAA,CACF,CAAA,CACF,EAEA+E,EAAAA,KAAC,MAAA,CAAI,UAAU,YACZ,SAAA,CAAAlB,EAAU,WACTmB,MAAC,MAAA,CAAI,UAAU,gCAAiC,SAAA,EAAE,gBAAgB,EAAE,EAGrE,CAACnB,EAAU,WAAaW,GAAK,SAAW,GACvCQ,EAAAA,IAAC,MAAA,CAAI,UAAU,gCAAiC,SAAA,EAAE,iBAAiB,CAAA,CAAE,EAGtER,GAAK,IAAK4B,GACTpB,EAAAA,IAACqB,GAAA,CAEC,IAAAD,EACA,SAAUpD,KAAkBoD,EAAI,GAChC,eAAgB,IAAM,CACpBnD,GAAkBqD,GAAUA,IAASF,EAAI,GAAK,KAAOA,EAAI,EAAG,CAC9D,CAAA,EALKA,EAAI,EAAA,CAOZ,CAAA,CAAA,CACH,CAAA,CAAA,CACF,CAAA,EACF,EAGDxF,IAAc,YACbmE,OAACG,EAAA,CAAK,UAAU,kBACd,SAAA,CAAAF,EAAAA,IAACG,GACC,SAAAH,MAACI,EAAA,CAAW,SAAA,EAAE,eAAe,EAAE,CAAA,CACjC,EACAL,EAAAA,KAACM,EAAA,CAAY,UAAU,YACrB,SAAA,CAAAN,EAAAA,KAAC,MAAA,CAAI,UAAU,sDACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAC,EAAAA,IAAC,SAAM,UAAU,4BAA4B,QAAQ,oBAClD,SAAA,EAAE,aAAa,EAClB,EACAA,EAAAA,IAACM,EAAA,CACC,GAAG,oBACH,cAAY,oBACZ,MAAOpC,EACP,SAAWqC,GAAUpC,GAAiBoC,EAAM,OAAO,KAAK,EACxD,YAAY,8BACZ,UAAU,UAAA,CAAA,CACZ,EACF,EAEAR,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAC,EAAAA,IAAC,SAAM,UAAU,4BAA4B,QAAQ,uBAClD,SAAA,EAAE,gBAAgB,EACrB,EACAA,EAAAA,IAACM,EAAA,CACC,GAAG,uBACH,cAAY,uBACZ,MAAOlC,EACP,SAAWmC,GAAUlC,GAAoBkC,EAAM,OAAO,KAAK,EAC3D,YAAa,EAAE,2BAA2B,EAC1C,UAAU,UAAA,CAAA,CACZ,EACF,EAEAP,EAAAA,IAAC,MAAA,CAAI,UAAU,gBACb,SAAAD,EAAAA,KAACE,EAAA,CACC,QAAQ,UACR,UAAU,mBACV,cAAY,cACZ,QAAS,IAAMP,EAAsB,OAAA,EACrC,SACEA,EAAsB,WACtB,CAACxB,EAAc,KAAA,GACf,CAACE,EAAiB,KAAA,GAClBE,EAAoB,SAAW,EAGhC,SAAA,CAAAoB,EAAsB,gBACpByB,GAAA,CAAQ,UAAU,uBAAuB,EAE1CnB,EAAAA,IAAChF,EAAA,CAAK,UAAU,SAAA,CAAU,EAE3B,EAAE,aAAa,CAAA,CAAA,CAAA,CAClB,CACF,CAAA,EACF,EAEA+E,EAAAA,KAAC,MAAA,CAAI,UAAU,8DACb,SAAA,CAAAC,MAAC,MAAA,CAAI,UAAU,sBAAuB,SAAA,EAAE,mBAAmB,EAAE,QAC5D,MAAA,CAAI,UAAU,wCACZ,SAAA9E,EAAsB,IAAKqG,GAAc,CACxC,MAAM9C,EAAUH,EAAoB,SAASiD,CAAS,EACtD,OACExB,EAAAA,KAAC,MAAA,CAEC,UAAU,2GAEV,SAAA,CAAAC,EAAAA,IAAC,OAAI,UAAU,mCACZ,WAAE,0BAA0BuB,CAAS,EAAW,CAAA,CACnD,EACAvB,EAAAA,IAACkB,EAAA,CACC,QAAAzC,EACA,cAAa,iBAAiB8C,CAAS,GACvC,gBAAkBC,IAAgB,CAChCjD,GAAwB+C,GAClBE,GACKF,EAAK,SAASC,CAAS,EAAID,EAAO,CAAC,GAAGA,EAAMC,CAAS,EAEvDD,EAAK,OAAQG,IAASA,KAASF,CAAS,CAChD,CACH,CAAA,CAAA,CACF,CAAA,EAjBKA,CAAA,CAoBX,CAAC,CAAA,CACH,CAAA,EACF,EAEAxB,EAAAA,KAAC,MAAA,CAAI,UAAU,YACZ,SAAA,CAAAN,EAAc,WACbO,MAAC,MAAA,CAAI,UAAU,gCAAiC,SAAA,EAAE,gBAAgB,EAAE,EAGrE,CAACP,EAAc,WAAaI,GAAS,SAAW,GAC/CG,EAAAA,IAAC,MAAA,CAAI,UAAU,gCAAiC,SAAA,EAAE,eAAe,CAAA,CAAE,EAGpEH,GAAS,IAAK6B,GACb3B,EAAAA,KAAC,MAAA,CAEC,cAAY,eACZ,mBAAkB2B,EAAQ,IAC1B,UAAU,8FAEV,SAAA,CAAA3B,EAAAA,KAAC,MAAA,CAAI,UAAU,UACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,+BAAgC,SAAA0B,EAAQ,IAAI,EAC3D1B,EAAAA,IAAC,MAAA,CAAI,UAAU,gCACZ,SAAA,IAAI,KAAK0B,EAAQ,SAAS,EAAE,eAAeC,GAAcnF,CAAQ,CAAC,CAAA,CACrE,CAAA,EACF,EACAwD,EAAAA,IAACC,EAAA,CACC,QAAQ,QACR,KAAK,UACL,cAAY,iBACZ,QAAS,IAAMN,GAAsB,OAAO+B,EAAQ,EAAE,EACtD,SAAU/B,GAAsB,UAChC,aAAY,EAAE,eAAe,EAC7B,MAAO,EAAE,eAAe,EAExB,SAAAK,EAAAA,IAAC4B,GAAA,CAAO,UAAU,SAAA,CAAU,CAAA,CAAA,CAC9B,CAAA,EArBKF,EAAQ,EAAA,CAuBhB,CAAA,CAAA,CACH,CAAA,CAAA,CACF,CAAA,EACF,GAGA9F,IAAc,QAAUA,IAAc,kBACtCoE,EAAAA,IAAC,MAAA,CAAI,UAAU,iEACb,SAAAD,EAAAA,KAACE,EAAA,CACC,QAAQ,UACR,cAAY,gBACZ,QAAS,IAAMhB,GAAiB,OAAA,EAChC,SAAUA,GAAiB,UAC3B,UAAU,mBAEV,SAAA,CAAAe,EAAAA,IAAChF,EAAA,CAAK,UAAU,SAAA,CAAU,EACzB,EAAE,aAAa,CAAA,CAAA,CAAA,CAClB,CACF,CAAA,CAAA,CAAA,CAIR,CAQA,SAASqG,GAAQ,CAAE,IAAAD,EAAK,SAAAS,EAAU,eAAAC,GAAgC,OAChE,KAAM,CAAE,EAAAC,CAAA,EAAMxG,EAAA,EACRC,EAAcC,GAAA,EAEd,CAACuG,EAAMC,CAAO,EAAInG,EAAAA,SAASsF,EAAI,IAAI,EACnC,CAACc,EAAOC,CAAQ,EAAIrG,EAAAA,SAAS,EAAE,EAC/B,CAACsG,EAASC,CAAU,EAAIvG,EAAAA,SAASsF,EAAI,OAAO,EAC5C,CAACkB,EAAmBC,CAAoB,EAAIzG,EAAAA,SAASsF,EAAI,iBAAiB,EAEhFtC,EAAAA,UAAU,IAAM,CACdmD,EAAQb,EAAI,IAAI,EAChBiB,EAAWjB,EAAI,OAAO,EACtBmB,EAAqBnB,EAAI,iBAAiB,CAC5C,EAAG,CAACA,EAAI,kBAAmBA,EAAI,QAASA,EAAI,IAAI,CAAC,EAEjD,MAAMoB,EAAa5D,EAAS,CAC1B,SAAU,CAAC,qBAAsBwC,EAAI,EAAE,EACvC,QAASS,EACT,QAAS,SAAY,CACnB,MAAMzG,EAAM,MAAM,MAAM,+BAA+BgG,EAAI,EAAE,QAAQ,EACrE,GAAI,CAAChG,EAAI,GACP,MAAM,IAAI,MAAM,MAAMD,EAAcC,EAAK2G,EAAE,0BAA0B,CAAC,CAAC,EAEzE,OAAQ,MAAM3G,EAAI,KAAA,CACpB,CAAA,CACD,EAEKqH,EAAeC,EAAAA,QAAQ,IAAM,OACjC,MAAMC,IAAQ3D,EAAAwD,EAAW,OAAX,YAAAxD,EAAiB,QAAS,CAAA,EACxC,MAAO,CACL,QAAS2D,EAAM,OAAQC,GAASA,EAAK,SAAW,SAAS,EACzD,WAAYD,EAAM,OAAQC,GAASA,EAAK,SAAW,YAAY,CAAA,CAEnE,EAAG,EAAC5D,EAAAwD,EAAW,OAAX,YAAAxD,EAAiB,KAAK,CAAC,EAErB6D,EAAmB3D,EAAY,CACnC,WAAY,SAAY,CACtB,MAAM4D,EAAmC,CACvC,KAAAd,EACA,QAAAI,EACA,kBAAAE,CAAA,EAEEJ,EAAM,SACRY,EAAQ,MAAQZ,EAAM,KAAA,GAGxB,MAAM9G,EAAM,MAAM,MAAM,+BAA+BgG,EAAI,EAAE,GAAI,CAC/D,OAAQ,QACR,QAAS,CACP,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU0B,CAAO,CAAA,CAC7B,EAED,GAAI,CAAC1H,EAAI,GACP,MAAM,IAAI,MAAM,MAAMD,EAAcC,EAAK2G,EAAE,uBAAuB,CAAC,CAAC,CAExE,EACA,UAAW,SAAY,CACrBI,EAAS,EAAE,EACX,MAAM3G,EAAY,kBAAkB,CAAE,SAAU,CAAC,eAAe,EAAG,EACnE2D,EAAM,QAAQ4C,EAAE,gBAAgB,CAAC,CACnC,EACA,QAAUzC,GAAQ,CAChBH,EAAM,MAAMG,aAAe,MAAQA,EAAI,QAAUyC,EAAE,cAAc,CAAC,CACpE,CAAA,CACD,EAEKgB,EAAoB7D,EAAY,CACpC,WAAY,SAAY,CACtB,MAAM9D,EAAM,MAAM,MAAM,+BAA+BgG,EAAI,EAAE,GAAI,CAC/D,OAAQ,QAAA,CACT,EAED,GAAI,CAAChG,EAAI,GACP,MAAM,IAAI,MAAM,MAAMD,EAAcC,EAAK2G,EAAE,uBAAuB,CAAC,CAAC,CAExE,EACA,UAAW,SAAY,CACrB,MAAMvG,EAAY,kBAAkB,CAAE,SAAU,CAAC,eAAe,EAAG,EACnE2D,EAAM,QAAQ4C,EAAE,gBAAgB,CAAC,CACnC,EACA,QAAUzC,GAAQ,CAChBH,EAAM,MAAMG,aAAe,MAAQA,EAAI,QAAUyC,EAAE,cAAc,CAAC,CACpE,CAAA,CACD,EAEKiB,EAAkB9D,EAAY,CAClC,WAAY,MAAO+D,GAAmB,CACpC,MAAM7H,EAAM,MAAM,MAChB,+BAA+BgG,EAAI,EAAE,UAAU,mBAAmB6B,CAAM,CAAC,WACzE,CACE,OAAQ,MAAA,CACV,EAEF,GAAI,CAAC7H,EAAI,GACP,MAAM,IAAI,MAAM,MAAMD,EAAcC,EAAK2G,EAAE,wBAAwB,CAAC,CAAC,CAEzE,EACA,UAAW,SAAY,CACrB,MAAM,QAAQ,IAAI,CAChBvG,EAAY,kBAAkB,CAAE,SAAU,CAAC,eAAe,EAAG,EAC7DA,EAAY,kBAAkB,CAAE,SAAU,CAAC,qBAAsB4F,EAAI,EAAE,CAAA,CAAG,CAAA,CAC3E,EACDjC,EAAM,QAAQ4C,EAAE,gBAAgB,CAAC,CACnC,EACA,QAAUzC,GAAQ,CAChBH,EAAM,MAAMG,aAAe,MAAQA,EAAI,QAAUyC,EAAE,cAAc,CAAC,CACpE,CAAA,CACD,EAEKmB,EAAqBhE,EAAY,CACrC,WAAY,MAAO+D,GAAmB,CACpC,MAAM7H,EAAM,MAAM,MAChB,+BAA+BgG,EAAI,EAAE,UAAU,mBAAmB6B,CAAM,CAAC,GACzE,CACE,OAAQ,QAAA,CACV,EAEF,GAAI,CAAC7H,EAAI,GACP,MAAM,IAAI,MAAM,MAAMD,EAAcC,EAAK2G,EAAE,uBAAuB,CAAC,CAAC,CAExE,EACA,UAAW,SAAY,CACrB,MAAM,QAAQ,IAAI,CAChBvG,EAAY,kBAAkB,CAAE,SAAU,CAAC,eAAe,EAAG,EAC7DA,EAAY,kBAAkB,CAAE,SAAU,CAAC,qBAAsB4F,EAAI,EAAE,CAAA,CAAG,CAAA,CAC3E,EACDjC,EAAM,QAAQ4C,EAAE,gBAAgB,CAAC,CACnC,EACA,QAAUzC,GAAQ,CAChBH,EAAM,MAAMG,aAAe,MAAQA,EAAI,QAAUyC,EAAE,cAAc,CAAC,CACpE,CAAA,CACD,EAEKoB,EAAmBjE,EAAY,CACnC,WAAY,MAAO+D,GAAmB,CACpC,MAAM7H,EAAM,MAAM,MAChB,+BAA+BgG,EAAI,EAAE,UAAU,mBAAmB6B,CAAM,CAAC,QACzE,CACE,OAAQ,MAAA,CACV,EAEF,GAAI,CAAC7H,EAAI,GACP,MAAM,IAAI,MAAM,MAAMD,EAAcC,EAAK2G,EAAE,4BAA4B,CAAC,CAAC,CAE7E,EACA,UAAW,IAAM,CACf5C,EAAM,QAAQ4C,EAAE,gBAAgB,CAAC,CACnC,EACA,QAAUzC,GAAQ,CAChBH,EAAM,MAAMG,aAAe,MAAQA,EAAI,QAAUyC,EAAE,cAAc,CAAC,CACpE,CAAA,CACD,EAED,OACEhC,EAAAA,KAAC,MAAA,CACC,UAAU,4CACV,cAAa,qBAAqBqB,EAAI,EAAE,GACxC,gBAAeA,EAAI,KAEnB,SAAA,CAAArB,EAAAA,KAAC,MAAA,CAAI,UAAU,0CACb,SAAA,CAAAA,OAAC,MAAA,CACC,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,cAAe,SAAAoB,EAAI,KAAK,EACvCrB,EAAAA,KAAC,MAAA,CAAI,UAAU,gCACZ,SAAA,CAAAqB,EAAI,gBAAgB,MAAIA,EAAI,YAAA,CAAA,CAC/B,CAAA,EACF,EACApB,EAAAA,IAACC,EAAA,CACC,QAAQ,QACR,cAAa,uBAAuBmB,EAAI,EAAE,GAC1C,QAASU,EAER,SAAWC,EAAXF,EAAa,kBAAuB,eAAN,CAAqB,CAAA,CACtD,EACF,EAEA9B,EAAAA,KAAC,MAAA,CAAI,UAAU,sDACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAC,EAAAA,IAAC,QAAA,CAAM,UAAU,4BAA4B,QAAS,YAAYoB,EAAI,EAAE,GACrE,SAAAW,EAAE,kBAAkB,CAAA,CACvB,EACA/B,EAAAA,IAACM,EAAA,CACC,GAAI,YAAYc,EAAI,EAAE,GACtB,MAAOY,EACP,SAAWzB,GAAU0B,EAAQ1B,EAAM,OAAO,KAAK,EAC/C,UAAU,UAAA,CAAA,CACZ,EACF,EACAR,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAC,EAAAA,IAAC,QAAA,CAAM,UAAU,4BAA4B,QAAS,aAAaoB,EAAI,EAAE,GACtE,SAAAW,EAAE,mBAAmB,CAAA,CACxB,EACA/B,EAAAA,IAACM,EAAA,CACC,GAAI,aAAac,EAAI,EAAE,GACvB,KAAK,WACL,MAAOc,EACP,SAAW3B,GAAU4B,EAAS5B,EAAM,OAAO,KAAK,EAChD,YAAawB,EAAE,2BAA2B,EAC1C,UAAU,UAAA,CAAA,CACZ,EACF,QACC,MAAA,CAAI,UAAU,gBACb,SAAAhC,EAAAA,KAAC,MAAA,CAAI,UAAU,6GACb,SAAA,CAAAC,MAAC,OAAA,CAAK,UAAU,sBAAuB,SAAA+B,EAAE,gBAAgB,EAAE,EAC3D/B,EAAAA,IAACkB,EAAA,CAAO,QAASkB,EAAS,gBAAkB3D,GAAY4D,EAAW,EAAQ5D,CAAQ,CAAA,CAAG,CAAA,CAAA,CACxF,CAAA,CACF,QACC,MAAA,CAAI,UAAU,gBACb,SAAAsB,EAAAA,KAAC,MAAA,CAAI,UAAU,6GACb,SAAA,CAAAC,MAAC,OAAA,CAAK,UAAU,sBAAuB,SAAA+B,EAAE,4BAA4B,EAAE,EACvE/B,EAAAA,IAACkB,EAAA,CACC,QAASoB,EACT,gBAAkB7D,GAAY8D,EAAqB,EAAQ9D,CAAQ,CAAA,CAAA,CACrE,CAAA,CACF,CAAA,CACF,CAAA,EACF,EAEAsB,EAAAA,KAAC,MAAA,CAAI,UAAU,iEACb,SAAA,CAAAA,EAAAA,KAACE,EAAA,CACC,QAAQ,cACR,cAAa,uBAAuBmB,EAAI,EAAE,GAC1C,QAAS,IAAM2B,EAAkB,OAAA,EACjC,UAAU,mBAEV,SAAA,CAAA/C,EAAAA,IAAC4B,GAAA,CAAO,UAAU,SAAA,CAAU,EAC3BG,EAAE,oBAAoB,CAAA,CAAA,CAAA,EAEzBhC,EAAAA,KAACE,EAAA,CACC,QAAQ,UACR,cAAa,qBAAqBmB,EAAI,EAAE,GACxC,QAAS,IAAMyB,EAAiB,OAAA,EAChC,UAAU,mBAEV,SAAA,CAAA7C,EAAAA,IAAChF,EAAA,CAAK,UAAU,SAAA,CAAU,EACzB+G,EAAE,aAAa,CAAA,CAAA,CAAA,CAClB,EACF,EAECF,GACC9B,EAAAA,KAAC,MAAA,CAAI,UAAU,oEACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAA,EAAAA,KAAC,KAAA,CAAG,UAAU,gDACZ,SAAA,CAAAC,EAAAA,IAAC/E,GAAA,CAAO,UAAU,SAAA,CAAU,EAC3B8G,EAAE,uBAAuB,CAAA,EAC5B,EACCU,EAAa,QAAQ,SAAW,SAAM,MAAA,CAAI,UAAU,gCAAgC,SAAA,GAAA,CAAC,EACrFA,EAAa,QAAQ,IAAKG,GACzB5C,EAAAA,IAACoD,GAAA,CAEC,KAAAR,EACA,QAAO,GACP,UAAW,IAAMI,EAAgB,OAAOJ,EAAK,MAAM,EACnD,SAAU,IAAMM,EAAmB,OAAON,EAAK,MAAM,CAAA,EAJhD,GAAGA,EAAK,KAAK,IAAIA,EAAK,MAAM,EAAA,CAMpC,CAAA,EACH,EAEA7C,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAA,EAAAA,KAAC,KAAA,CAAG,UAAU,gDACZ,SAAA,CAAAC,EAAAA,IAAC/E,GAAA,CAAO,UAAU,SAAA,CAAU,EAC3B8G,EAAE,gBAAgB,CAAA,EACrB,EACCU,EAAa,WAAW,SAAW,SAAM,MAAA,CAAI,UAAU,gCAAgC,SAAA,GAAA,CAAC,EACxFA,EAAa,WAAW,IAAKG,GAC5B5C,EAAAA,IAACoD,GAAA,CAEC,KAAAR,EACA,QAAS,GACT,OAAQ,IAAMO,EAAiB,OAAOP,EAAK,MAAM,EACjD,SAAU,IAAMM,EAAmB,OAAON,EAAK,MAAM,CAAA,EAJhD,GAAGA,EAAK,KAAK,IAAIA,EAAK,MAAM,EAAA,CAMpC,CAAA,EACH,EAECJ,EAAW,WACVxC,EAAAA,IAAC,MAAA,CAAI,UAAU,8CACZ,SAAA+B,EAAE,gBAAgB,CAAA,CACrB,CAAA,CAAA,CAEJ,CAAA,CAAA,CAAA,CAIR,CAUA,SAASqB,GAAQ,CAAE,KAAAR,EAAM,QAAAS,EAAS,UAAAC,EAAW,SAAAC,EAAU,OAAAC,GAAwB,CAC7E,KAAM,CAAE,EAAAzB,CAAA,EAAMxG,EAAA,EACRiB,EAAWb,GAAcM,UAAU,QAAA+C,EAAA/C,EAAM,WAAN,YAAA+C,EAAgB,WAAY,QAAO,EAC5E,OACEe,EAAAA,KAAC,MAAA,CAAI,UAAU,+CACb,SAAA,CAAAC,EAAAA,IAAC,OAAI,UAAU,+BAA+B,MAAO4C,EAAK,YACvD,WAAK,WAAA,CACR,EACA7C,EAAAA,KAAC,MAAA,CAAI,UAAU,gCACZ,SAAA,CAAAgC,EAAE,iBAAiB,EAAE,IAAEa,EAAK,MAAA,EAC/B,EACA5C,EAAAA,IAAC,MAAA,CAAI,UAAU,gCACZ,SAAA,IAAI,KAAK4C,EAAK,SAAS,EAAE,eAAejB,GAAcnF,CAAQ,CAAC,CAAA,CAClE,EAEAwD,MAAC,MAAA,CAAI,UAAU,2CACZ,WACCD,EAAAA,KAAA0D,WAAA,CACE,SAAA,CAAAzD,EAAAA,IAACC,EAAA,CAAO,QAAQ,UAAU,KAAK,KAAK,QAASsD,EAC1C,SAAAxB,EAAE,iBAAiB,CAAA,CACtB,EACA/B,EAAAA,IAACC,EAAA,CAAO,QAAQ,UAAU,KAAK,KAAK,QAASqD,EAC1C,SAAAvB,EAAE,oBAAoB,CAAA,CACzB,CAAA,CAAA,CACF,EAEAhC,EAAAA,KAAA0D,EAAAA,SAAA,CACE,SAAA,CAAA1D,OAACE,GAAO,QAAQ,YAAY,KAAK,KAAK,QAASuD,EAC7C,SAAA,CAAAxD,EAAAA,IAAC0D,GAAA,CAAK,UAAU,aAAA,CAAc,EAC7B3B,EAAE,0BAA0B,CAAA,EAC/B,EACA/B,EAAAA,IAACC,EAAA,CAAO,QAAQ,cAAc,KAAK,KAAK,QAASsD,EAC9C,SAAAxB,EAAE,eAAe,CAAA,CACpB,CAAA,CAAA,CACF,CAAA,CAEJ,CAAA,EACF,CAEJ,CAGO,SAAS4B,IAAY,CAC1B,KAAM,CAAE,CAAA,EAAMpI,EAAA,EACd,OAAOyE,EAAAA,IAAAyD,EAAAA,SAAA,CAAG,SAAA,EAAE,kBAAkB,EAAE,CAClC,CAGO,SAASG,IAAc,CAC5B,KAAM,CAAE,CAAA,EAAMrI,EAAA,EACR,CAACsI,EAAoBC,CAAqB,EAAIhI,EAAAA,SAAS,EAAK,EAE5DiI,EAAkB7E,EAAY,CAClC,WAAY,SAAY,CACtB,MAAM9D,EAAM,MAAM,MAAM,wBAAyB,CAAE,OAAQ,OAAQ,EACnE,GAAI,CAACA,EAAI,GACP,MAAM,IAAI,MAAM,MAAMD,EAAcC,EAAK,EAAE,wBAAwB,CAAC,CAAC,CAEzE,EACA,UAAW,IAAM,CACf+D,EAAM,QAAQ,EAAE,2BAA2B,CAAC,CAC9C,EACA,QAAUG,GAAQ,CAChBH,EAAM,MAAMG,aAAe,MAAQA,EAAI,QAAU,EAAE,cAAc,CAAC,CACpE,CAAA,CACD,EAED,OACES,EAAAA,KAAA0D,WAAA,CACE,SAAA,CAAAzD,EAAAA,IAACC,EAAA,CACC,QAAQ,QACR,KAAK,UACL,QAAS,IAAM6D,EAAsB,EAAI,EACzC,SAAUC,EAAgB,UAC1B,aAAY,EAAE,yBAAyB,EACvC,MAAO,EAAE,yBAAyB,EAClC,UAAU,kEAEV,SAAA/D,EAAAA,IAAClF,GAAA,CAAU,UAAU,SAAA,CAAU,CAAA,CAAA,QAGhCkJ,GAAA,CAAY,KAAMH,EAAoB,aAAcC,EACnD,gBAACG,GAAA,CACC,SAAA,CAAAlE,OAACmE,GAAA,CACC,SAAA,CAAAlE,EAAAA,IAACmE,GAAA,CAAkB,SAAA,EAAE,yBAAyB,CAAA,CAAE,EAChDnE,EAAAA,IAACoE,GAAA,CAAwB,SAAA,EAAE,yBAAyB,CAAA,CAAE,CAAA,EACxD,SACCC,GAAA,CACC,SAAA,CAAArE,EAAAA,IAACsE,GAAA,CAAkB,QAAS,IAAMR,EAAsB,EAAK,EAC1D,SAAA,EAAE,eAAe,EACpB,EACA9D,EAAAA,IAACuE,GAAA,CACC,QAAQ,cACR,QAAS,IAAM,CACbR,EAAgB,OAAA,EAChBD,EAAsB,EAAK,CAC7B,EAEC,WAAE,gBAAgB,CAAA,CAAA,CACrB,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CACF,CAAA,EACF,CAEJ","x_google_ignoreList":[0,1,2]}
@@ -1 +0,0 @@
1
- /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-700:oklch(50.5% .213 27.518);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-emerald-500:oklch(69.6% .17 162.48);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-600:oklch(60.9% .126 221.723);--color-cyan-700:oklch(52% .105 223.128);--color-cyan-800:oklch(45% .085 224.283);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-800:oklch(39.8% .195 277.366);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-fuchsia-700:oklch(51.8% .253 323.949);--color-fuchsia-800:oklch(45.2% .211 324.591);--color-gray-400:oklch(70.7% .022 261.325);--color-neutral-100:oklch(97% 0 0);--color-neutral-500:oklch(55.6% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-2xl:42rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:calc(var(--radius) - 2px);--radius-4xl:2rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-xs:4px;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--text-family);--default-mono-font-family:var(--font-mono);--color-accent:var(--accent);--color-border:var(--border);--display-weight:var(--display-weight)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}.font-display{font-weight:var(--display-weight)}[data-slot=button],[data-slot=dialog-trigger],[data-slot=dropdown-menu-item],[data-slot=command-item],[data-slot=toggle-group-item],[data-slot=dropdown-menu-trigger],[data-slot=popover-trigger],[data-slot=tooltip-trigger],[data-slot=sheet-trigger],[data-slot=collapsible-trigger]{cursor:pointer!important}[data-slot=dialog-overlay],[data-slot=sheet-overlay],[data-slot=drawer-overlay]{background-color:#0003!important}@supports (color:color-mix(in lab,red,red)){[data-slot=dialog-overlay],[data-slot=sheet-overlay],[data-slot=drawer-overlay]{background-color:color-mix(in oklab,var(--color-black)20%,transparent)!important}}[data-slot=dialog-overlay],[data-slot=sheet-overlay],[data-slot=drawer-overlay]{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\.5{top:calc(var(--spacing)*1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-3{top:calc(var(--spacing)*3)}.top-3\.5{top:calc(var(--spacing)*3.5)}.right-0{right:calc(var(--spacing)*0)}.right-1{right:calc(var(--spacing)*1)}.right-1\.5{right:calc(var(--spacing)*1.5)}.right-2{right:calc(var(--spacing)*2)}.right-3{right:calc(var(--spacing)*3)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.left-1\/2{left:50%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-1{grid-row:1}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.-mx-4{margin-inline:calc(var(--spacing)*-4)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-3\.5{margin-inline:calc(var(--spacing)*3.5)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-auto{margin-top:auto}.-mr-2{margin-right:calc(var(--spacing)*-2)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-\[-8px\]{margin-right:-8px}.mr-auto{margin-right:auto}.-mb-4{margin-bottom:calc(var(--spacing)*-4)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.field-sizing-content{field-sizing:content}.aspect-square{aspect-ratio:1}.size-2\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-full{width:100%;height:100%}.h-1{height:calc(var(--spacing)*1)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-11{height:calc(var(--spacing)*11)}.h-12{height:calc(var(--spacing)*12)}.h-28{height:calc(var(--spacing)*28)}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[var\(--tmex-safe-area-bottom\)\]{height:var(--tmex-safe-area-bottom)}.h-\[var\(--tmex-safe-area-top\)\]{height:var(--tmex-safe-area-top)}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-\(--available-height\){max-height:var(--available-height)}.max-h-\[28vh\]{max-height:28vh}.max-h-\[min\(70vh\,720px\)\]{max-height:min(70vh,720px)}.max-h-\[var\(--tmex-viewport-height\)\]{max-height:var(--tmex-viewport-height)}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-10{min-height:calc(var(--spacing)*10)}.min-h-16{min-height:calc(var(--spacing)*16)}.min-h-\[88px\]{min-height:88px}.min-h-svh{min-height:100svh}.w-\(--anchor-width\){width:var(--anchor-width)}.w-\(--sidebar-width\){width:var(--sidebar-width)}.w-1{width:calc(var(--spacing)*1)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-72{width:calc(var(--spacing)*72)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\(--skeleton-width\){max-width:var(--skeleton-width)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[120px\]{max-width:120px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-5{min-width:calc(var(--spacing)*5)}.min-w-9{min-width:calc(var(--spacing)*9)}.min-w-32{min-width:calc(var(--spacing)*32)}.min-w-36{min-width:calc(var(--spacing)*36)}.min-w-\[96px\]{min-width:96px}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.origin-\(--transform-origin\){transform-origin:var(--transform-origin)}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-px{--tw-translate-x:-1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-px{--tw-translate-x:1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[calc\(-50\%-2px\)\]{--tw-translate-y: calc(-50% - 2px) ;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-45{rotate:45deg}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.touch-none{touch-action:none}.resize{resize:both}.resize-y{resize:vertical}.scroll-my-1{scroll-margin-block:calc(var(--spacing)*1)}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-rows-\[auto_1fr\]{grid-template-rows:auto 1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing)*0)}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-auto{overscroll-behavior:auto}.rounded{border-radius:.25rem}.rounded-4xl{border-radius:var(--radius-4xl)}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md),10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md),12px)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-t-xl{border-top-left-radius:calc(var(--radius) + 4px);border-top-right-radius:calc(var(--radius) + 4px)}.rounded-b-xl{border-bottom-right-radius:calc(var(--radius) + 4px);border-bottom-left-radius:calc(var(--radius) + 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-400\/40{border-color:#fcbb0066}@supports (color:color-mix(in lab,red,red)){.border-amber-400\/40{border-color:color-mix(in oklab,var(--color-amber-400)40%,transparent)}}.border-black{border-color:var(--color-black)}.border-border,.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,var(--border)50%,transparent)}}.border-destructive\/50{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/50{border-color:color-mix(in oklab,var(--destructive)50%,transparent)}}.border-input{border-color:var(--input)}.border-primary,.border-primary\/20{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/20{border-color:color-mix(in oklab,var(--primary)20%,transparent)}}.border-primary\/30{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/30{border-color:color-mix(in oklab,var(--primary)30%,transparent)}}.border-primary\/45{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/45{border-color:color-mix(in oklab,var(--primary)45%,transparent)}}.border-primary\/50{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/50{border-color:color-mix(in oklab,var(--primary)50%,transparent)}}.border-primary\/65{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/65{border-color:color-mix(in oklab,var(--primary)65%,transparent)}}.border-red-400\/40{border-color:#ff656866}@supports (color:color-mix(in lab,red,red)){.border-red-400\/40{border-color:color-mix(in oklab,var(--color-red-400)40%,transparent)}}.border-sidebar-border,.border-sidebar-border\/60{border-color:var(--sidebar-border)}@supports (color:color-mix(in lab,red,red)){.border-sidebar-border\/60{border-color:color-mix(in oklab,var(--sidebar-border)60%,transparent)}}.border-sidebar-border\/70{border-color:var(--sidebar-border)}@supports (color:color-mix(in lab,red,red)){.border-sidebar-border\/70{border-color:color-mix(in oklab,var(--sidebar-border)70%,transparent)}}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500)10%,transparent)}}.bg-background,.bg-background\/85{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/85{background-color:color-mix(in oklab,var(--background)85%,transparent)}}.bg-background\/95{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/95{background-color:color-mix(in oklab,var(--background)95%,transparent)}}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.bg-black\/10{background-color:color-mix(in oklab,var(--color-black)10%,transparent)}}.bg-border{background-color:var(--border)}.bg-card,.bg-card\/50{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/50{background-color:color-mix(in oklab,var(--card)50%,transparent)}}.bg-card\/85{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/85{background-color:color-mix(in oklab,var(--card)85%,transparent)}}.bg-card\/90{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/90{background-color:color-mix(in oklab,var(--card)90%,transparent)}}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-foreground,.bg-foreground\/50{background-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.bg-foreground\/50{background-color:color-mix(in oklab,var(--foreground)50%,transparent)}}.bg-foreground\/80{background-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.bg-foreground\/80{background-color:color-mix(in oklab,var(--foreground)80%,transparent)}}.bg-gray-400{background-color:var(--color-gray-400)}.bg-muted,.bg-muted\/20{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/20{background-color:color-mix(in oklab,var(--muted)20%,transparent)}}.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--muted)30%,transparent)}}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-primary-foreground\/80{background-color:var(--primary-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-primary-foreground\/80{background-color:color-mix(in oklab,var(--primary-foreground)80%,transparent)}}.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--primary)10%,transparent)}}.bg-primary\/15{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/15{background-color:color-mix(in oklab,var(--primary)15%,transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-accent,.bg-sidebar-accent\/30{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab,red,red)){.bg-sidebar-accent\/30{background-color:color-mix(in oklab,var(--sidebar-accent)30%,transparent)}}.bg-sidebar-accent\/55{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab,red,red)){.bg-sidebar-accent\/55{background-color:color-mix(in oklab,var(--sidebar-accent)55%,transparent)}}.bg-sidebar-accent\/60{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab,red,red)){.bg-sidebar-accent\/60{background-color:color-mix(in oklab,var(--sidebar-accent)60%,transparent)}}.bg-sidebar-border{background-color:var(--sidebar-border)}.bg-sidebar\/60{background-color:var(--sidebar)}@supports (color:color-mix(in lab,red,red)){.bg-sidebar\/60{background-color:color-mix(in oklab,var(--sidebar)60%,transparent)}}.bg-transparent{background-color:#0000}.bg-clip-padding{background-clip:padding-box}.fill-foreground{fill:var(--foreground)}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-8{padding:calc(var(--spacing)*8)}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-14{padding-block:calc(var(--spacing)*14)}.py-16{padding-block:calc(var(--spacing)*16)}.\!pt-0{padding-top:calc(var(--spacing)*0)!important}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-4{padding-top:calc(var(--spacing)*4)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-7{padding-right:calc(var(--spacing)*7)}.pr-8{padding-right:calc(var(--spacing)*8)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-\[calc\(1rem\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}.pb-\[calc\(2rem\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(2rem + env(safe-area-inset-bottom))}.pl-1\.5{padding-left:calc(var(--spacing)*1.5)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-2\.5{padding-left:calc(var(--spacing)*2.5)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.text-amber-700{color:var(--color-amber-700)}.text-background{color:var(--background)}.text-card-foreground{color:var(--card-foreground)}.text-destructive{color:var(--destructive)}.text-emerald-500{color:var(--color-emerald-500)}.text-foreground,.text-foreground\/60{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/60{color:color-mix(in oklab,var(--foreground)60%,transparent)}}.text-muted-foreground{color:var(--muted-foreground)}.text-orange-500{color:var(--color-orange-500)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground,.text-primary-foreground\/80{color:var(--primary-foreground)}@supports (color:color-mix(in lab,red,red)){.text-primary-foreground\/80{color:color-mix(in oklab,var(--primary-foreground)80%,transparent)}}.text-red-700{color:var(--color-red-700)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-accent-foreground{color:var(--sidebar-accent-foreground)}.text-sidebar-foreground,.text-sidebar-foreground\/70{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab,red,red)){.text-sidebar-foreground\/70{color:color-mix(in oklab,var(--sidebar-foreground)70%,transparent)}}.uppercase{text-transform:uppercase}.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,)}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-border)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-foreground\/10{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.ring-foreground\/10{--tw-ring-color:color-mix(in oklab,var(--foreground)10%,transparent)}}.ring-sidebar-ring{--tw-ring-color:var(--sidebar-ring)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.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-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[-webkit-overflow-scrolling\:touch\]{-webkit-overflow-scrolling:touch}.duration-100{animation-duration:.1s}.duration-200{animation-duration:.2s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.group-focus-within\:opacity-100:is(:where(.group):focus-within *),.group-focus-within\/menu-item\:opacity-100:is(:where(.group\/menu-item):focus-within *){opacity:1}@media(hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/menu-item\:opacity-100:is(:where(.group\/menu-item):hover *){opacity:1}}.group-focus\/dropdown-menu-item\:text-accent-foreground:is(:where(.group\/dropdown-menu-item):focus *){color:var(--accent-foreground)}.group-has-data-\[sidebar\=menu-action\]\/menu-item\:pr-8:is(:where(.group\/menu-item):has([data-sidebar=menu-action]) *){padding-right:calc(var(--spacing)*8)}.group-data-horizontal\/tabs\:h-8:is(:where(.group\/tabs)[data-horizontal] *){height:calc(var(--spacing)*8)}.group-data-vertical\/tabs\:h-fit:is(:where(.group\/tabs)[data-vertical] *){height:fit-content}.group-data-vertical\/tabs\:w-full:is(:where(.group\/tabs)[data-vertical] *){width:100%}.group-data-vertical\/tabs\:flex-col:is(:where(.group\/tabs)[data-vertical] *){flex-direction:column}.group-data-vertical\/tabs\:justify-start:is(:where(.group\/tabs)[data-vertical] *){justify-content:flex-start}.group-data-\[collapsible\=icon\]\:-mt-8:is(:where(.group)[data-collapsible=icon] *){margin-top:calc(var(--spacing)*-8)}.group-data-\[collapsible\=icon\]\:hidden:is(:where(.group)[data-collapsible=icon] *){display:none}.group-data-\[collapsible\=icon\]\:size-8\!:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--spacing)*8)!important;height:calc(var(--spacing)*8)!important}.group-data-\[collapsible\=icon\]\:w-\(--sidebar-width-icon\):is(:where(.group)[data-collapsible=icon] *){width:var(--sidebar-width-icon)}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing)*4)))}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing)*4)) + 2px)}.group-data-\[collapsible\=icon\]\:overflow-hidden:is(:where(.group)[data-collapsible=icon] *){overflow:hidden}.group-data-\[collapsible\=icon\]\:p-0\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing)*0)!important}.group-data-\[collapsible\=icon\]\:p-2\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing)*2)!important}.group-data-\[collapsible\=icon\]\:opacity-0:is(:where(.group)[data-collapsible=icon] *){opacity:0}.group-data-\[collapsible\=offcanvas\]\:w-0:is(:where(.group)[data-collapsible=offcanvas] *){width:calc(var(--spacing)*0)}.group-data-\[collapsible\=offcanvas\]\:translate-x-0:is(:where(.group)[data-collapsible=offcanvas] *){--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[side\=left\]\:-right-4:is(:where(.group)[data-side=left] *){right:calc(var(--spacing)*-4)}.group-data-\[side\=left\]\:border-r:is(:where(.group)[data-side=left] *){border-right-style:var(--tw-border-style);border-right-width:1px}.group-data-\[side\=right\]\:left-0:is(:where(.group)[data-side=right] *){left:calc(var(--spacing)*0)}.group-data-\[side\=right\]\:rotate-180:is(:where(.group)[data-side=right] *){rotate:180deg}.group-data-\[side\=right\]\:border-l:is(:where(.group)[data-side=right] *){border-left-style:var(--tw-border-style);border-left-width:1px}.group-data-\[size\=default\]\/switch\:size-4:is(:where(.group\/switch)[data-size=default] *){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.group-data-\[size\=sm\]\/alert-dialog-content\:grid:is(:where(.group\/alert-dialog-content)[data-size=sm] *){display:grid}.group-data-\[size\=sm\]\/alert-dialog-content\:grid-cols-2:is(:where(.group\/alert-dialog-content)[data-size=sm] *){grid-template-columns:repeat(2,minmax(0,1fr))}.group-data-\[size\=sm\]\/card\:p-3:is(:where(.group\/card)[data-size=sm] *){padding:calc(var(--spacing)*3)}.group-data-\[size\=sm\]\/card\:px-3:is(:where(.group\/card)[data-size=sm] *){padding-inline:calc(var(--spacing)*3)}.group-data-\[size\=sm\]\/card\:text-sm:is(:where(.group\/card)[data-size=sm] *){font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.group-data-\[size\=sm\]\/switch\:size-3:is(:where(.group\/switch)[data-size=sm] *){width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.group-data-\[variant\=floating\]\:rounded-lg:is(:where(.group)[data-variant=floating] *){border-radius:var(--radius)}.group-data-\[variant\=floating\]\:shadow-sm:is(:where(.group)[data-variant=floating] *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[variant\=floating\]\:ring-1:is(:where(.group)[data-variant=floating] *){--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[variant\=floating\]\:ring-sidebar-border:is(:where(.group)[data-variant=floating] *){--tw-ring-color:var(--sidebar-border)}.group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){background-color:#0000}@media(hover:hover){.peer-hover\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button):hover~*){color:var(--sidebar-accent-foreground)}}.peer-data-active\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button)[data-active]~*){color:var(--sidebar-accent-foreground)}.peer-data-\[size\=default\]\/menu-button\:top-1\.5:is(:where(.peer\/menu-button)[data-size=default]~*){top:calc(var(--spacing)*1.5)}.peer-data-\[size\=lg\]\/menu-button\:top-2\.5:is(:where(.peer\/menu-button)[data-size=lg]~*){top:calc(var(--spacing)*2.5)}.peer-data-\[size\=sm\]\/menu-button\:top-1:is(:where(.peer\/menu-button)[data-size=sm]~*){top:calc(var(--spacing)*1)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-6::file-selector-button{height:calc(var(--spacing)*6)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:calc(var(--spacing)*-2)}.after\:-inset-x-3:after{content:var(--tw-content);inset-inline:calc(var(--spacing)*-3)}.after\:-inset-y-2:after{content:var(--tw-content);inset-block:calc(var(--spacing)*-2)}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.after\:start-1\/2:after{content:var(--tw-content);inset-inline-start:50%}.after\:top-1:after{content:var(--tw-content);top:calc(var(--spacing)*1)}.after\:right-1:after{content:var(--tw-content);right:calc(var(--spacing)*1)}.after\:h-1\.5:after{content:var(--tw-content);height:calc(var(--spacing)*1.5)}.after\:w-1\.5:after{content:var(--tw-content);width:calc(var(--spacing)*1.5)}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:bg-emerald-500:after{content:var(--tw-content);background-color:var(--color-emerald-500)}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.group-data-horizontal\/tabs\:after\:inset-x-0:is(:where(.group\/tabs)[data-horizontal] *):after{content:var(--tw-content);inset-inline:calc(var(--spacing)*0)}.group-data-horizontal\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs)[data-horizontal] *):after{content:var(--tw-content);bottom:-5px}.group-data-horizontal\/tabs\:after\:h-0\.5:is(:where(.group\/tabs)[data-horizontal] *):after{content:var(--tw-content);height:calc(var(--spacing)*.5)}.group-data-vertical\/tabs\:after\:inset-y-0:is(:where(.group\/tabs)[data-vertical] *):after{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.group-data-vertical\/tabs\:after\:-right-1:is(:where(.group\/tabs)[data-vertical] *):after{content:var(--tw-content);right:calc(var(--spacing)*-1)}.group-data-vertical\/tabs\:after\:w-0\.5:is(:where(.group\/tabs)[data-vertical] *):after{content:var(--tw-content);width:calc(var(--spacing)*.5)}.group-data-\[collapsible\=offcanvas\]\:after\:left-full:is(:where(.group)[data-collapsible=offcanvas] *):after{content:var(--tw-content);left:100%}@media(hover:hover){.hover\:border-border:hover{border-color:var(--border)}.hover\:border-sidebar-border:hover{border-color:var(--sidebar-border)}.hover\:bg-accent:hover,.hover\:bg-accent\/30:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/30:hover{background-color:color-mix(in oklab,var(--accent)30%,transparent)}}.hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.hover\:bg-background:hover{background-color:var(--background)}.hover\:bg-destructive\/10:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/10:hover{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.hover\:bg-destructive\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:bg-sidebar-accent:hover,.hover\:bg-sidebar-accent\/35:hover{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-sidebar-accent\/35:hover{background-color:color-mix(in oklab,var(--sidebar-accent)35%,transparent)}}.hover\:bg-sidebar-accent\/45:hover{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-sidebar-accent\/45:hover{background-color:color-mix(in oklab,var(--sidebar-accent)45%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-destructive:hover{color:var(--destructive)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-accent)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar:hover:is(:where(.group)[data-collapsible=offcanvas] *){background-color:var(--sidebar)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:var(--sidebar-border)}}.focus\:border-ring:focus{border-color:var(--ring)}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:opacity-100:focus{opacity:1}:is(.focus\:\*\*\:text-accent-foreground:focus *),:is(.not-data-\[variant\=destructive\]\:focus\:\*\*\:text-accent-foreground:not([data-variant=destructive]):focus *){color:var(--accent-foreground)}.focus-visible\:border-destructive\/40:focus-visible{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:border-destructive\/40:focus-visible{border-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-3:focus-visible,.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-ring\/30:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/30:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)30%,transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.active\:bg-sidebar-accent:active{background-color:var(--sidebar-accent)}.active\:text-sidebar-accent-foreground:active{color:var(--sidebar-accent-foreground)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-input\/50:disabled{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.disabled\:bg-input\/50:disabled{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.disabled\:opacity-50:disabled{opacity:.5}:where([data-side=left]) .in-data-\[side\=left\]\:cursor-w-resize{cursor:w-resize}:where([data-side=right]) .in-data-\[side\=right\]\:cursor-e-resize{cursor:e-resize}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius)}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing)*1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing)*2)}.has-data-\[icon\=inline-end\]\:pr-3:has([data-icon=inline-end]){padding-right:calc(var(--spacing)*3)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing)*1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing)*2)}.has-data-\[icon\=inline-start\]\:pl-3:has([data-icon=inline-start]){padding-left:calc(var(--spacing)*3)}.has-data-\[slot\=alert-dialog-media\]\:grid-rows-\[auto_auto_1fr\]:has([data-slot=alert-dialog-media]){grid-template-rows:auto auto 1fr}.has-data-\[slot\=alert-dialog-media\]\:gap-x-4:has([data-slot=alert-dialog-media]){column-gap:calc(var(--spacing)*4)}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-data-\[slot\=card-description\]\:grid-rows-\[auto_auto\]:has([data-slot=card-description]){grid-template-rows:auto auto}.has-data-\[slot\=card-footer\]\:pb-0:has([data-slot=card-footer]){padding-bottom:calc(var(--spacing)*0)}.has-data-\[variant\=inset\]\:bg-sidebar:has([data-variant=inset]){background-color:var(--sidebar)}.has-\[\>img\:first-child\]\:pt-0:has(>img:first-child){padding-top:calc(var(--spacing)*0)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.aria-expanded\:opacity-100[aria-expanded=true]{opacity:1}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-2[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-active\:bg-background[data-active]{background-color:var(--background)}.data-active\:bg-sidebar-accent[data-active]{background-color:var(--sidebar-accent)}.data-active\:font-medium[data-active]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-active\:text-foreground[data-active]{color:var(--foreground)}.data-active\:text-sidebar-accent-foreground[data-active]{color:var(--sidebar-accent-foreground)}.group-data-\[variant\=default\]\/tabs-list\:data-active\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *)[data-active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-active]{background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-active\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *)[data-active]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[variant\=line\]\/tabs-list\:data-active\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *)[data-active]:after{content:var(--tw-content);opacity:1}.data-checked\:bg-primary[data-checked]{background-color:var(--primary)}.group-data-\[size\=default\]\/switch\:data-checked\:translate-x-\[calc\(100\%-2px\)\]:is(:where(.group\/switch)[data-size=default] *)[data-checked],.group-data-\[size\=sm\]\/switch\:data-checked\:translate-x-\[calc\(100\%-2px\)\]:is(:where(.group\/switch)[data-size=sm] *)[data-checked]{--tw-translate-x: calc(100% - 2px) ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-closed\:overflow-hidden[data-closed]{overflow:hidden}.data-closed\:animate-out[data-closed]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-closed\:fade-out-0[data-closed]{--tw-exit-opacity:0}.data-closed\:zoom-out-95[data-closed]{--tw-exit-scale:.95}.data-disabled\:pointer-events-none[data-disabled]{pointer-events:none}.data-disabled\:cursor-not-allowed[data-disabled]{cursor:not-allowed}.data-disabled\:opacity-50[data-disabled]{opacity:.5}.data-ending-style\:opacity-0[data-ending-style]{opacity:0}.data-horizontal\:h-2\.5[data-horizontal]{height:calc(var(--spacing)*2.5)}.data-horizontal\:h-px[data-horizontal]{height:1px}.data-horizontal\:w-full[data-horizontal]{width:100%}.data-horizontal\:flex-col[data-horizontal]{flex-direction:column}.data-horizontal\:border-t[data-horizontal]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-horizontal\:border-t-transparent[data-horizontal]{border-top-color:#0000}.data-inset\:pl-7[data-inset]{padding-left:calc(var(--spacing)*7)}.data-open\:bg-accent[data-open]{background-color:var(--accent)}.data-open\:text-accent-foreground[data-open]{color:var(--accent-foreground)}.data-open\:animate-in[data-open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-open\:fade-in-0[data-open]{--tw-enter-opacity:0}.data-open\:zoom-in-95[data-open]{--tw-enter-scale:.95}@media(hover:hover){.data-open\:hover\:bg-sidebar-accent[data-open]:hover{background-color:var(--sidebar-accent)}.data-open\:hover\:text-sidebar-accent-foreground[data-open]:hover{color:var(--sidebar-accent-foreground)}}.data-placeholder\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-popup-open\:bg-accent[data-popup-open]{background-color:var(--accent)}.data-popup-open\:text-accent-foreground[data-popup-open]{color:var(--accent-foreground)}.data-starting-style\:opacity-0[data-starting-style]{opacity:0}.data-unchecked\:bg-input[data-unchecked]{background-color:var(--input)}.group-data-\[size\=default\]\/switch\:data-unchecked\:translate-x-0:is(:where(.group\/switch)[data-size=default] *)[data-unchecked],.group-data-\[size\=sm\]\/switch\:data-unchecked\:translate-x-0:is(:where(.group\/switch)[data-size=sm] *)[data-unchecked]{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-vertical\:h-full[data-vertical]{height:100%}.data-vertical\:w-2\.5[data-vertical]{width:calc(var(--spacing)*2.5)}.data-vertical\:w-px[data-vertical]{width:1px}.data-vertical\:self-stretch[data-vertical]{align-self:stretch}.data-vertical\:border-l[data-vertical]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-vertical\:border-l-transparent[data-vertical]{border-left-color:#0000}.data-\[align-trigger\=true\]\:animate-none[data-align-trigger=true]{animation:none}.data-\[orientation\=vertical\]\:h-4[data-orientation=vertical]{height:calc(var(--spacing)*4)}.data-\[side\=bottom\]\:inset-x-0[data-side=bottom]{inset-inline:calc(var(--spacing)*0)}.data-\[side\=bottom\]\:top-1[data-side=bottom]{top:calc(var(--spacing)*1)}.data-\[side\=bottom\]\:bottom-0[data-side=bottom]{bottom:calc(var(--spacing)*0)}.data-\[side\=bottom\]\:h-auto[data-side=bottom]{height:auto}.data-\[side\=bottom\]\:border-t[data-side=bottom]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-.5rem}.data-\[side\=bottom\]\:data-closed\:slide-out-to-bottom-10[data-side=bottom][data-closed]{--tw-exit-translate-y:2.5rem}.data-\[side\=bottom\]\:data-open\:slide-in-from-bottom-10[data-side=bottom][data-open]{--tw-enter-translate-y:2.5rem}.data-\[side\=inline-end\]\:top-1\/2\![data-side=inline-end]{top:50%!important}.data-\[side\=inline-end\]\:-left-1[data-side=inline-end]{left:calc(var(--spacing)*-1)}.data-\[side\=inline-end\]\:-translate-y-1\/2[data-side=inline-end]{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=inline-end\]\:slide-in-from-left-2[data-side=inline-end]{--tw-enter-translate-x:-.5rem}.data-\[side\=inline-start\]\:top-1\/2\![data-side=inline-start]{top:50%!important}.data-\[side\=inline-start\]\:-right-1[data-side=inline-start]{right:calc(var(--spacing)*-1)}.data-\[side\=inline-start\]\:-translate-y-1\/2[data-side=inline-start]{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=inline-start\]\:slide-in-from-right-2[data-side=inline-start]{--tw-enter-translate-x:.5rem}.data-\[side\=left\]\:inset-y-0[data-side=left]{inset-block:calc(var(--spacing)*0)}.data-\[side\=left\]\:top-1\/2\![data-side=left]{top:50%!important}.data-\[side\=left\]\:-right-1[data-side=left]{right:calc(var(--spacing)*-1)}.data-\[side\=left\]\:left-0[data-side=left]{left:calc(var(--spacing)*0)}.data-\[side\=left\]\:h-full[data-side=left]{height:100%}.data-\[side\=left\]\:w-3\/4[data-side=left]{width:75%}.data-\[side\=left\]\:-translate-y-1\/2[data-side=left]{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:border-r[data-side=left]{border-right-style:var(--tw-border-style);border-right-width:1px}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:.5rem}.data-\[side\=left\]\:group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\][data-side=left]:is(:where(.group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width)*-1)}.data-\[side\=left\]\:data-closed\:slide-out-to-left-10[data-side=left][data-closed]{--tw-exit-translate-x:-2.5rem}.data-\[side\=left\]\:data-open\:slide-in-from-left-10[data-side=left][data-open]{--tw-enter-translate-x:-2.5rem}.data-\[side\=right\]\:inset-y-0[data-side=right]{inset-block:calc(var(--spacing)*0)}.data-\[side\=right\]\:top-1\/2\![data-side=right]{top:50%!important}.data-\[side\=right\]\:right-0[data-side=right]{right:calc(var(--spacing)*0)}.data-\[side\=right\]\:-left-1[data-side=right]{left:calc(var(--spacing)*-1)}.data-\[side\=right\]\:h-full[data-side=right]{height:100%}.data-\[side\=right\]\:w-3\/4[data-side=right]{width:75%}.data-\[side\=right\]\:-translate-y-1\/2[data-side=right]{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:border-l[data-side=right]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-.5rem}.data-\[side\=right\]\:group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\][data-side=right]:is(:where(.group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width)*-1)}.data-\[side\=right\]\:data-closed\:slide-out-to-right-10[data-side=right][data-closed]{--tw-exit-translate-x:2.5rem}.data-\[side\=right\]\:data-open\:slide-in-from-right-10[data-side=right][data-open]{--tw-enter-translate-x:2.5rem}.data-\[side\=top\]\:inset-x-0[data-side=top]{inset-inline:calc(var(--spacing)*0)}.data-\[side\=top\]\:top-0[data-side=top]{top:calc(var(--spacing)*0)}.data-\[side\=top\]\:-bottom-2\.5[data-side=top]{bottom:calc(var(--spacing)*-2.5)}.data-\[side\=top\]\:h-auto[data-side=top]{height:auto}.data-\[side\=top\]\:border-b[data-side=top]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:.5rem}.data-\[side\=top\]\:data-closed\:slide-out-to-top-10[data-side=top][data-closed]{--tw-exit-translate-y:-2.5rem}.data-\[side\=top\]\:data-open\:slide-in-from-top-10[data-side=top][data-open]{--tw-enter-translate-y:-2.5rem}.data-\[size\=default\]\:h-8[data-size=default]{height:calc(var(--spacing)*8)}.data-\[size\=default\]\:h-\[18\.4px\][data-size=default]{height:18.4px}.data-\[size\=default\]\:w-\[32px\][data-size=default]{width:32px}.data-\[size\=default\]\:max-w-xs[data-size=default]{max-width:var(--container-xs)}.data-\[size\=md\]\:text-sm[data-size=md]{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.data-\[size\=sm\]\:h-7[data-size=sm]{height:calc(var(--spacing)*7)}.data-\[size\=sm\]\:h-\[14px\][data-size=sm]{height:14px}.data-\[size\=sm\]\:w-\[24px\][data-size=sm]{width:24px}.data-\[size\=sm\]\:max-w-xs[data-size=sm]{max-width:var(--container-xs)}.data-\[size\=sm\]\:gap-3[data-size=sm]{gap:calc(var(--spacing)*3)}.data-\[size\=sm\]\:rounded-\[min\(var\(--radius-md\)\,10px\)\][data-size=sm]{border-radius:min(var(--radius-md),10px)}.data-\[size\=sm\]\:py-3[data-size=sm]{padding-block:calc(var(--spacing)*3)}.data-\[size\=sm\]\:text-xs[data-size=sm]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.data-\[size\=sm\]\:has-data-\[slot\=card-footer\]\:pb-0[data-size=sm]:has([data-slot=card-footer]){padding-bottom:calc(var(--spacing)*0)}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-1\.5>*)[data-slot=select-value]{gap:calc(var(--spacing)*1.5)}.data-\[state\=delayed-open\]\:animate-in[data-state=delayed-open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[state\=delayed-open\]\:fade-in-0[data-state=delayed-open]{--tw-enter-opacity:0}.data-\[state\=delayed-open\]\:zoom-in-95[data-state=delayed-open]{--tw-enter-scale:.95}.data-\[state\=open\]\:rotate-90[data-state=open]{rotate:90deg}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-backdrop-filter\:backdrop-blur-xs{--tw-backdrop-blur:blur(var(--blur-xs));-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,)}}@media(min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:flex{display:flex}.sm\:w-auto{width:auto}.sm\:max-w-sm{max-width:var(--container-sm)}.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\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:gap-4{gap:calc(var(--spacing)*4)}.sm\:gap-6{gap:calc(var(--spacing)*6)}.sm\:p-5{padding:calc(var(--spacing)*5)}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:row-span-2:is(:where(.group\/alert-dialog-content)[data-size=default] *){grid-row:span 2/span 2}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:place-items-start:is(:where(.group\/alert-dialog-content)[data-size=default] *){place-items:start}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:text-left:is(:where(.group\/alert-dialog-content)[data-size=default] *){text-align:left}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:group-has-data-\[slot\=alert-dialog-media\]\/alert-dialog-content\:col-start-2:is(:where(.group\/alert-dialog-content)[data-size=default] *):is(:where(.group\/alert-dialog-content):has([data-slot=alert-dialog-media]) *){grid-column-start:2}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:has-data-\[slot\=alert-dialog-media\]\:grid-rows-\[auto_1fr\]:is(:where(.group\/alert-dialog-content)[data-size=default] *):has([data-slot=alert-dialog-media]){grid-template-rows:auto 1fr}.data-\[side\=left\]\:sm\:max-w-sm[data-side=left],.data-\[side\=right\]\:sm\:max-w-sm[data-side=right],.data-\[size\=default\]\:sm\:max-w-sm[data-size=default]{max-width:var(--container-sm)}}@media(min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-6{grid-column:span 6/span 6}.md\:block{display:block}.md\:flex{display:flex}.md\:h-16{height:calc(var(--spacing)*16)}.md\:w-auto{width:auto}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:items-end{align-items:flex-end}.md\:p-4{padding:calc(var(--spacing)*4)}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:text-pretty{text-wrap:pretty}.md\:opacity-0{opacity:0}.md\:peer-data-\[variant\=inset\]\:m-2:is(:where(.peer)[data-variant=inset]~*){margin:calc(var(--spacing)*2)}.md\:peer-data-\[variant\=inset\]\:ml-0:is(:where(.peer)[data-variant=inset]~*){margin-left:calc(var(--spacing)*0)}.md\:peer-data-\[variant\=inset\]\:rounded-xl:is(:where(.peer)[data-variant=inset]~*){border-radius:calc(var(--radius) + 4px)}.md\:peer-data-\[variant\=inset\]\:shadow-sm:is(:where(.peer)[data-variant=inset]~*){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2:is(:where(.peer)[data-variant=inset]~*):is(:where(.peer)[data-state=collapsed]~*){margin-left:calc(var(--spacing)*2)}.md\:after\:hidden:after{content:var(--tw-content);display:none}}@media(min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.ltr\:-translate-x-1\/2:where(:dir(ltr),[dir=ltr],[dir=ltr] *),.rtl\:-translate-x-1\/2:where(:dir(rtl),[dir=rtl],[dir=rtl] *){--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.dark\:border-destructive:is(.dark *){border-color:var(--destructive)}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/20:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/20:is(.dark *){background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:text-amber-300:is(.dark *){color:var(--color-amber-300)}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}.dark\:text-red-300:is(.dark *){color:var(--color-red-300)}@media(hover:hover){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:color-mix(in oklab,var(--destructive)30%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.dark\:hover\:text-foreground:is(.dark *):hover{color:var(--foreground)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:color-mix(in oklab,var(--input)80%,transparent)}}.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:color-mix(in oklab,var(--destructive)50%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-active\:border-input:is(.dark *)[data-active]{border-color:var(--input)}.dark\:data-active\:bg-input\/30:is(.dark *)[data-active]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-active\:bg-input\/30:is(.dark *)[data-active]{background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:data-active\:text-foreground:is(.dark *)[data-active]{color:var(--foreground)}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-active]{border-color:#0000}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-active]{background-color:#0000}.dark\:data-checked\:bg-primary-foreground:is(.dark *)[data-checked]{background-color:var(--primary-foreground)}.dark\:data-unchecked\:bg-foreground:is(.dark *)[data-unchecked]{background-color:var(--foreground)}.dark\:data-unchecked\:bg-input\/80:is(.dark *)[data-unchecked]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-unchecked\:bg-input\/80:is(.dark *)[data-unchecked]{background-color:color-mix(in oklab,var(--input)80%,transparent)}}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\.border-b\]\:pb-4.border-b{padding-bottom:calc(var(--spacing)*4)}.group-data-\[size\=sm\]\/card\:\[\.border-b\]\:pb-3:is(:where(.group\/card)[data-size=sm] *).border-b{padding-bottom:calc(var(--spacing)*3)}:is(.\*\:\[a\]\:underline>*):is(a){text-decoration-line:underline}:is(.\*\:\[a\]\:underline-offset-3>*):is(a){text-underline-offset:3px}@media(hover:hover){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\[a\]\:hover\:bg-muted:is(a):hover{background-color:var(--muted)}.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:color-mix(in oklab,var(--primary)80%,transparent)}}.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.\[a\]\:hover\:text-muted-foreground:is(a):hover{color:var(--muted-foreground)}:is(.\*\:\[a\]\:hover\:text-foreground>*):is(a):hover{color:var(--foreground)}}:is(.\*\:\[img\:first-child\]\:rounded-t-xl>*):is(img:first-child){border-top-left-radius:calc(var(--radius) + 4px);border-top-right-radius:calc(var(--radius) + 4px)}:is(.\*\:\[img\:last-child\]\:rounded-b-xl>*):is(img:last-child){border-bottom-right-radius:calc(var(--radius) + 4px);border-bottom-left-radius:calc(var(--radius) + 4px)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing)*2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)}:is(.\*\:\[svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-6>*):is(svg:not([class*=size-])){width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:top-4>svg{top:calc(var(--spacing)*4)}.\[\&\>svg\]\:left-4>svg{left:calc(var(--spacing)*4)}.\[\&\>svg\]\:size-3\!>svg{width:calc(var(--spacing)*3)!important;height:calc(var(--spacing)*3)!important}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:var(--destructive)}.\[\&\>svg\]\:text-foreground>svg{color:var(--foreground)}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:var(--sidebar-accent-foreground)}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:calc(var(--spacing)*7)}@media(any-pointer:coarse){.\[\@media\(any-pointer\:coarse\)\]\:hidden{display:none}.\[\@media\(any-pointer\:coarse\)\]\:size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.\[\@media\(any-pointer\:coarse\)\]\:h-8{height:calc(var(--spacing)*8)}.\[\@media\(any-pointer\:coarse\)\]\:h-9{height:calc(var(--spacing)*9)}.\[\@media\(any-pointer\:coarse\)\]\:w-8{width:calc(var(--spacing)*8)}.\[\@media\(any-pointer\:coarse\)\]\:w-9{width:calc(var(--spacing)*9)}.\[\@media\(any-pointer\:coarse\)\]\:min-w-10{min-width:calc(var(--spacing)*10)}.\[\@media\(any-pointer\:coarse\)\]\:px-3{padding-inline:calc(var(--spacing)*3)}.\[\@media\(any-pointer\:coarse\)\]\:opacity-100{opacity:1}}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:calc(var(--spacing)*-2)}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:calc(var(--spacing)*-2)}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}}body{overscroll-behavior:none;background-color:var(--sidebar);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--text-family:var(--font-outfit),sans-serif}[data-theme-preset=underground]{--base-50:oklch(98.4% .0022 247.84);--base-100:oklch(96.87% .0051 247.88);--base-200:oklch(92.9% .0095 255.53);--base-300:oklch(86.9% .016 252.91);--base-400:oklch(70.4% .0291 256.81);--base-500:oklch(55.4% .0335 257.44);--base-600:oklch(44.6% .0313 257.3);--base-700:oklch(37.2% .0321 257.31);--base-800:oklch(27.9% .0299 260.05);--base-900:oklch(20.8% .0306 265.77);--base-950:oklch(12.9% .0306 264.71);--base-1000:oklch(7.8% .0306 264.02);--primary-50:oklch(97.97% .0095 159.88);--primary-100:oklch(95.64% .0234 159.23);--primary-200:oklch(91.64% .0434 159.21);--primary-300:oklch(86.03% .0731 158.6);--primary-400:oklch(78.1% .0975 156.24);--primary-500:oklch(71.22% .0991 154.66);--primary-600:oklch(61.47% .0867 154.73);--primary-700:oklch(53.15% .0694 156.19);--primary-800:oklch(44.16% .0544 157.47);--primary-900:oklch(38.7% .0436 159);--primary-950:oklch(26.43% .0295 160.27);--primary-1000:oklch(18.45% .0202 160.95);--secondary-50:oklch(97.55% .0049 330.01);--secondary-100:oklch(95.12% .0104 328.92);--secondary-200:oklch(90.2% .0219 329.77);--secondary-300:oklch(82.92% .0422 332);--secondary-400:oklch(73.08% .07 333.6);--secondary-500:oklch(66.24% .0855 334.26);--secondary-600:oklch(57.48% .0862 336.52);--secondary-700:oklch(52.11% .0755 338.14);--secondary-800:oklch(45.52% .0631 338.88);--secondary-900:oklch(40.42% .0512 339.72);--secondary-950:oklch(28.93% .0391 340.38);--secondary-1000:oklch(21.46% .0313 340.82);--background:var(--base-50);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-700);--primary-foreground:var(--color-white);--secondary:var(--secondary-600);--secondary-foreground:var(--color-white);--muted:var(--base-100);--muted-foreground:var(--base-600);--accent:var(--base-200);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-700);--chart-1:var(--primary-700);--chart-2:var(--secondary-600);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--radius:.5rem;--sidebar:var(--color-white);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-700);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-700);--display-family:var(--font-hedvig-letters-serif),sans-serif;--display-weight:800;--text-family:var(--font-kumbh-sans),sans-serif}[data-theme-preset=underground]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-900);--card-foreground:var(--base-200);--popover:var(--base-900);--popover-foreground:var(--base-200);--primary:var(--primary-700);--primary-foreground:var(--color-white);--secondary:var(--secondary-600);--secondary-foreground:var(--color-white);--muted:var(--base-800);--muted-foreground:var(--base-300);--accent:var(--base-800);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-700);--chart-1:var(--primary-700);--chart-2:var(--secondary-600);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-700);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--base-200);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-700)}[data-theme-preset=rose-garden]{--base-50:oklch(98.51% .001 33.69);--base-100:oklch(95.67% .0021 34.31);--base-200:oklch(92.27% .0029 34.49);--base-300:oklch(86.96% .0034 34.89);--base-400:oklch(70.88% .0038 34.83);--base-500:oklch(55.43% .0041 35.95);--base-600:oklch(44.23% .004 36.92);--base-700:oklch(37.31% .0037 36.25);--base-800:oklch(26.86% .0032 34.85);--base-900:oklch(21.2% .0029 34.69);--base-950:oklch(14.63% .0027 33.58);--base-1000:oklch(10.36% .0021 33.95);--primary-50:oklch(96.98% .0142 5.62);--primary-100:oklch(94.29% .0283 5.52);--primary-200:oklch(89.38% .0563 3.77);--primary-300:oklch(81.31% .1129 5.67);--primary-400:oklch(71.35% .1879 7.69);--primary-500:oklch(64.76% .2348 10.36);--primary-600:oklch(58.27% .2418 12.23);--primary-700:oklch(51.66% .2131 12.28);--primary-800:oklch(45.59% .1801 10);--primary-900:oklch(40.96% .1512 7.52);--primary-950:oklch(27.41% .1016 9.26);--primary-1000:oklch(18.61% .0693 10.39);--background:var(--color-white);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--primary-300);--secondary-foreground:var(--base-800);--muted:var(--base-200);--muted-foreground:var(--base-600);--accent:var(--base-100);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--primary-200);--chart-3:var(--primary-400);--chart-4:var(--primary-300);--chart-5:var(--primary-100);--radius:1rem;--sidebar:var(--base-100);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary-600);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-600);--text-family:var(--font-poppins),sans-serif;--display-weight:600}[data-theme-preset=rose-garden]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-950);--card-foreground:var(--base-200);--popover:var(--base-950);--popover-foreground:var(--base-200);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--primary-300);--secondary-foreground:var(--base-200);--muted:var(--base-900);--muted-foreground:var(--base-400);--accent:var(--base-900);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--primary-200);--chart-3:var(--primary-400);--chart-4:var(--primary-300);--chart-5:var(--primary-100);--sidebar:var(--base-800);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary-600);--sidebar-accent-foreground:var(--base-200);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-600)}[data-theme-preset=lake-view]{--base-50:oklch(98.49% .0024 160.68);--base-100:oklch(96.92% .005 161.7);--base-200:oklch(92.63% .0099 162.17);--base-300:oklch(85.04% .0147 163.22);--base-400:oklch(70.64% .0222 164.73);--base-500:oklch(55.37% .0287 165.9);--base-600:oklch(44.53% .0279 166.55);--base-700:oklch(37.31% .0248 166.06);--base-800:oklch(27.42% .0208 165.96);--base-900:oklch(21.19% .0173 166.78);--base-950:oklch(13.74% .0152 166.46);--base-1000:oklch(8.91% .0136 166.9);--primary-50:oklch(97.9% .021 166.11);--primary-100:oklch(95% .052 163.05);--primary-200:oklch(90.5% .093 164.15);--primary-300:oklch(84.5% .143 164.98);--primary-400:oklch(76.5% .177 163.22);--primary-500:oklch(69.6% .17 162.48);--primary-600:oklch(59.6% .145 163.22);--primary-700:oklch(50.8% .118 165.61);--primary-800:oklch(43.2% .095 166.91);--primary-900:oklch(37.8% .077 168.94);--primary-950:oklch(26.2% .051 171.55);--primary-1000:oklch(18.7% .034 172.89);--secondary-50:oklch(98.08% .0145 191.25);--secondary-100:oklch(95.16% .0437 191.52);--secondary-200:oklch(91.08% .0804 191.57);--secondary-300:oklch(85.76% .1202 192.38);--secondary-400:oklch(78.09% .1376 194.73);--secondary-500:oklch(70.79% .1273 196.21);--secondary-600:oklch(60.35% .1094 198.95);--secondary-700:oklch(55.1% .0899 200.52);--secondary-800:oklch(44.22% .0729 202.06);--secondary-900:oklch(39.06% .0594 203.06);--secondary-950:oklch(28.71% .0452 205.42);--secondary-1000:oklch(21.98% .036 206.01);--background:var(--base-50);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-400);--primary-foreground:var(--color-black);--secondary:var(--secondary-700);--secondary-foreground:var(--color-white);--muted:var(--base-100);--muted-foreground:var(--base-600);--accent:var(--base-100);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-400);--chart-1:var(--primary-400);--chart-2:var(--secondary-700);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--radius:.75rem;--sidebar:var(--color-white);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-400);--sidebar-primary-foreground:var(--color-black);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--base-800);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-400);--display-weight:800;--text-family:var(--font-pt-sans),sans-serif}[data-theme-preset=lake-view]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-900);--card-foreground:var(--base-200);--popover:var(--base-900);--popover-foreground:var(--base-200);--primary:var(--primary-400);--primary-foreground:var(--color-black);--secondary:var(--secondary-700);--secondary-foreground:var(--color-white);--muted:var(--base-800);--muted-foreground:var(--base-300);--accent:var(--base-800);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-400);--chart-1:var(--primary-400);--chart-2:var(--secondary-700);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-400);--sidebar-primary-foreground:var(--color-black);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-black);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-400)}[data-theme-preset=sunset-glow]{--base-50:oklch(98.53% .0041 157.18);--base-100:oklch(96.9% .0045 158.2);--base-200:oklch(92.61% .0057 158.66);--base-300:oklch(86.9% .0066 159.7);--base-400:oklch(70.64% .0074 161.16);--base-500:oklch(55.35% .008 162.35);--base-600:oklch(44.5% .0078 163.03);--base-700:oklch(37.3% .0072 162.52);--base-800:oklch(27.38% .0062 162.35);--base-900:oklch(21.18% .0057 163.13);--base-950:oklch(13.76% .0053 162.77);--base-1000:oklch(8.94% .0049 163.21);--primary-50:oklch(97.19% .0102 16.36);--primary-100:oklch(93.81% .0241 16.66);--primary-200:oklch(88.72% .0467 16.63);--primary-300:oklch(80.9% .0875 17.95);--primary-400:oklch(70.59% .1462 20.42);--primary-500:oklch(63.87% .1822 23.51);--primary-600:oklch(55.91% .1882 25.33);--primary-700:oklch(50.69% .1639 25.35);--primary-800:oklch(44.65% .1368 24.19);--primary-900:oklch(39.92% .1104 22.56);--primary-950:oklch(26.09% .0723 23.19);--primary-1000:oklch(17.09% .0473 23.59);--secondary-50:oklch(97.81% .0149 45.53);--secondary-100:oklch(94.91% .0351 44.57);--secondary-200:oklch(89.64% .0724 43.73);--secondary-300:oklch(79.38% .1248 42.42);--secondary-400:oklch(73.63% .1869 41.57);--secondary-500:oklch(68.49% .222 40.89);--secondary-600:oklch(62.57% .2229 39.75);--secondary-700:oklch(53.91% .1994 37.91);--secondary-800:oklch(46.28% .1643 36.26);--secondary-900:oklch(40.51% .1294 35.11);--secondary-950:oklch(26.41% .0836 34.57);--secondary-1000:oklch(17.26% .0534 33.77);--background:var(--color-white);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--secondary-300);--secondary-foreground:var(--color-black);--muted:var(--base-50);--muted-foreground:var(--base-600);--accent:var(--primary-100);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--secondary-300);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--radius:1rem;--sidebar:var(--base-100);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-600)}[data-theme-preset=sunset-glow]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-950);--card-foreground:var(--base-200);--popover:var(--base-950);--popover-foreground:var(--base-200);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--secondary-300);--secondary-foreground:var(--color-black);--muted:var(--base-900);--muted-foreground:var(--base-400);--accent:var(--base-900);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--secondary-300);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-600)}[data-theme-preset=forest-whisper]{--base-50:oklch(98.43% .0035 287.12);--base-100:oklch(96.65% .007 286.66);--base-200:oklch(91.97% .014 286.6);--base-300:oklch(87.08% .021 286.57);--base-400:oklch(72.44% .0315 286.35);--base-500:oklch(55.19% .042 286.22);--base-600:oklch(44.18% .0385 286.07);--base-700:oklch(36.98% .0315 286.09);--base-800:oklch(27.38% .021 286.32);--base-900:oklch(20.98% .014 286.17);--base-950:oklch(14.08% .0105 286.11);--base-1000:oklch(9.59% .007 286.07);--primary-50:oklch(98.15% .0164 177.79);--primary-100:oklch(95.11% .0547 177.24);--primary-200:oklch(90.8% .1019 177.16);--primary-300:oklch(85.22% .1484 177.84);--primary-400:oklch(77.41% .1676 178.16);--primary-500:oklch(70.21% .1559 178.48);--primary-600:oklch(59.91% .1318 180.39);--primary-700:oklch(52.76% .1072 182.22);--primary-800:oklch(43.59% .0869 183.94);--primary-900:oklch(38.42% .0703 184.51);--primary-950:oklch(27.38% .0502 187.51);--primary-1000:oklch(20.2% .0372 188.32);--secondary-50:oklch(97.7% .0034 244.64);--secondary-100:oklch(94.5% .0074 245.19);--secondary-200:oklch(89.44% .015 243.47);--secondary-300:oklch(82.08% .0278 242.12);--secondary-400:oklch(72.94% .0416 244.67);--secondary-500:oklch(65.78% .0485 247.35);--secondary-600:oklch(52.36% .0505 250.18);--secondary-700:oklch(49.5% .0469 251.28);--secondary-800:oklch(43.5% .0384 252.42);--secondary-900:oklch(38.63% .0295 252.97);--secondary-950:oklch(28.87% .0198 254.2);--secondary-1000:oklch(22.51% .0134 255.72);--background:var(--base-50);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-700);--primary-foreground:var(--color-white);--secondary:var(--secondary-600);--secondary-foreground:var(--color-white);--muted:var(--base-100);--muted-foreground:var(--base-600);--accent:var(--base-100);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-700);--chart-1:var(--primary-700);--chart-2:var(--secondary-600);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--radius:.5rem;--sidebar:var(--color-white);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-700);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-700)}[data-theme-preset=forest-whisper]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-900);--card-foreground:var(--base-200);--popover:var(--base-900);--popover-foreground:var(--base-200);--primary:var(--primary-700);--primary-foreground:var(--color-white);--secondary:var(--secondary-600);--secondary-foreground:var(--color-white);--muted:var(--base-800);--muted-foreground:var(--base-300);--accent:var(--base-800);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-700);--chart-1:var(--primary-700);--chart-2:var(--secondary-600);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-700);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-700)}[data-theme-preset=ocean-breeze]{--base-50:oklch(99% .0053 106.5);--base-100:oklch(96.95% .0058 107.51);--base-200:oklch(92.45% .0074 107.89);--base-300:oklch(86.89% .0085 108.73);--base-400:oklch(70.76% .0095 109.42);--base-500:oklch(55.32% .0103 110.92);--base-600:oklch(44.44% .0101 112.04);--base-700:oklch(37.34% .0093 111.24);--base-800:oklch(27.08% .008 110.04);--base-900:oklch(21.38% .0074 110.31);--base-950:oklch(14.21% .0069 109.25);--base-1000:oklch(9.56% .0064 109.76);--primary-50:oklch(97% .0123 254.6);--primary-100:oklch(93.2% .0281 255.58);--primary-200:oklch(88.2% .0518 254.13);--primary-300:oklch(80.9% .0922 251.81);--primary-400:oklch(70.7% .1449 254.62);--primary-500:oklch(62.3% .188 259.81);--primary-600:oklch(54.61% .2152 262.88);--primary-700:oklch(48.8% .2134 264.37);--primary-800:oklch(42.4% .1748 265.64);--primary-900:oklch(37.9% .1282 265.52);--primary-950:oklch(28.2% .0799 267.93);--primary-1000:oklch(21.9% .0483 269.5);--secondary-50:oklch(96.2% .0158 272.32);--secondary-100:oklch(93% .0298 272.79);--secondary-200:oklch(87% .0569 274.04);--secondary-300:oklch(78.5% .1007 274.72);--secondary-400:oklch(67.3% .1594 276.94);--secondary-500:oklch(58.54% .2041 277.12);--secondary-600:oklch(51.1% .2295 276.97);--secondary-700:oklch(45.7% .2102 277.03);--secondary-800:oklch(39.8% .1708 277.37);--secondary-900:oklch(35.9% .1261 278.7);--secondary-950:oklch(25.7% .0788 281.29);--secondary-1000:oklch(19.1% .0482 282.97);--background:var(--color-white);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--secondary-500);--secondary-foreground:var(--color-white);--muted:var(--base-50);--muted-foreground:var(--base-600);--accent:var(--base-100);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--secondary-500);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--radius:.3rem;--sidebar:var(--base-100);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-600);--text-family:var(--font-plus-jakarta-sans),sans-serif;--display-weight:800}[data-theme-preset=ocean-breeze]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-950);--card-foreground:var(--base-200);--popover:var(--base-950);--popover-foreground:var(--base-200);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--secondary-500);--secondary-foreground:var(--color-black);--muted:var(--base-900);--muted-foreground:var(--base-400);--accent:var(--base-900);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--secondary-500);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-600)}[data-theme-preset=lavender-dream]{--base-50:oklch(98.68% .0029 259.84);--base-100:oklch(96.92% .0058 262.54);--base-200:oklch(92.53% .0117 262.53);--base-300:oklch(86.92% .0175 260.34);--base-400:oklch(70.7% .0262 261.33);--base-500:oklch(55.1% .035 262.36);--base-600:oklch(44.6% .0335 258.8);--base-700:oklch(37.3% .0306 259.73);--base-800:oklch(27.8% .0277 258.85);--base-900:oklch(21% .024 262.66);--base-950:oklch(13% .0219 261.69);--base-1000:oklch(7.8% .0204 259.76);--primary-50:oklch(97.66% .0092 310.91);--primary-100:oklch(94.7% .0212 309.77);--primary-200:oklch(90.2% .0412 309.57);--primary-300:oklch(82.81% .078 309.73);--primary-400:oklch(71.97% .1318 309.2);--primary-500:oklch(63.59% .1699 307.95);--primary-600:oklch(57.09% .1808 306.89);--primary-700:oklch(50.09% .164 306.81);--primary-800:oklch(44.1% .1353 308.36);--primary-900:oklch(38.53% .1093 309.57);--primary-950:oklch(29.13% .0914 307.81);--primary-1000:oklch(22.29% .0786 306.49);--secondary-50:oklch(98.31% .0066 196.52);--secondary-100:oklch(95.43% .0181 196.87);--secondary-200:oklch(91.4% .033 197.14);--secondary-300:oklch(86.11% .0504 198.03);--secondary-400:oklch(81.1% .0589 201.14);--secondary-500:oklch(71.07% .0545 203.05);--secondary-600:oklch(60.54% .0473 206.07);--secondary-700:oklch(51.64% .0391 207.58);--secondary-800:oklch(44.48% .0317 208.98);--secondary-900:oklch(39.31% .0259 210.38);--secondary-950:oklch(29.23% .0201 212.36);--secondary-1000:oklch(22.7% .0163 212.92);--background:var(--base-50);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--secondary-400);--secondary-foreground:var(--color-black);--muted:var(--base-100);--muted-foreground:var(--base-600);--accent:var(--base-200);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--secondary-400);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--radius:1rem;--sidebar:var(--color-white);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-600);--display-family:var(--font-hedvig-letters-serif),sans-serif}[data-theme-preset=lavender-dream]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-900);--card-foreground:var(--base-200);--popover:var(--base-900);--popover-foreground:var(--base-200);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--secondary-400);--secondary-foreground:var(--color-black);--muted:var(--base-800);--muted-foreground:var(--base-300);--accent:var(--base-800);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--secondary-400);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-600)}[data-theme-chart-preset=cyan]{--chart-1:var(--color-cyan-800);--chart-2:var(--color-cyan-700);--chart-3:var(--color-cyan-600);--chart-4:var(--color-cyan-500);--chart-5:var(--color-cyan-400)}[data-theme-chart-preset=amber]{--chart-1:var(--color-amber-800);--chart-2:var(--color-amber-700);--chart-3:var(--color-amber-600);--chart-4:var(--color-amber-500);--chart-5:var(--color-amber-400)}[data-theme-chart-preset=green]{--chart-1:var(--color-green-800);--chart-2:var(--color-green-700);--chart-3:var(--color-green-600);--chart-4:var(--color-green-500);--chart-5:var(--color-green-400)}[data-theme-chart-preset=indigo]{--chart-1:var(--color-indigo-800);--chart-2:var(--color-indigo-700);--chart-3:var(--color-indigo-600);--chart-4:var(--color-indigo-500);--chart-5:var(--color-indigo-400)}[data-theme-chart-preset=fuchsia]{--chart-1:var(--color-fuchsia-800);--chart-2:var(--color-fuchsia-700);--chart-3:var(--color-fuchsia-600);--chart-4:var(--color-fuchsia-500);--chart-5:var(--color-fuchsia-400)}[data-theme-radius=sm]{--radius:.3rem}[data-theme-radius=md]{--radius:.5rem}[data-theme-radius=lg]{--radius:1rem}[data-theme-radius=xl]{--radius:1.5rem}[data-theme-radius=none]{--radius:0rem}[data-theme-scale=sm]{--text-lg:1.05rem;--text-base:.85rem;--text-sm:.75rem;--spacing:.222222rem}[data-theme-scale=lg]{--text-lg:1.55rem;--text-base:1.35rem;--text-sm:1rem;--spacing:.262222rem}[data-theme-font=inter]{--font-sans:var(--font-inter)}[data-theme-font=roboto]{--font-sans:var(--font-roboto)}[data-theme-font=poppins]{--font-sans:var(--font-poppins)}[data-theme-font=montserrat]{--font-sans:var(--font-montserrat)}[data-theme-font=pt-sans]{--font-sans:var(--font-pt-sans)}[data-theme-font=overpass-mono]{--font-sans:var(--font-overpass-mono);letter-spacing:-.05em}:root{--tmex-safe-area-top:env(safe-area-inset-top,0px);--tmex-safe-area-bottom:env(safe-area-inset-bottom,0px);--base-50:oklch(98.5% .0013 286.84);--base-100:oklch(96.7% .0027 286.38);--base-200:oklch(92% .0053 286.32);--base-300:oklch(87.1% .008 286.29);--base-400:oklch(70.5% .012 286.07);--base-500:oklch(55.2% .016 285.94);--base-600:oklch(44.2% .0147 285.79);--base-700:oklch(37% .012 285.81);--base-800:oklch(27.4% .008 286.03);--base-900:oklch(21% .0053 285.89);--base-950:oklch(14.1% .004 285.83);--base-1000:oklch(9.6% .0027 285.79);--background:var(--color-white);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--base-950);--primary-foreground:var(--color-white);--secondary:var(--base-300);--secondary-foreground:var(--base-800);--muted:var(--color-neutral-100);--muted-foreground:var(--color-neutral-500);--accent:var(--base-200);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--base-800);--chart-1:var(--base-950);--chart-2:var(--base-600);--chart-3:var(--base-800);--chart-4:var(--base-400);--chart-5:var(--base-300);--radius:.5rem;--sidebar:var(--base-100);--sidebar-foreground:var(--base-500);--sidebar-primary:var(--base-950);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--base-200);--sidebar-accent-foreground:var(--base-950);--sidebar-border:var(--base-200);--sidebar-ring:var(--base-800);--display-weight:700;--fc-button-bg-color:var(--primary);--fc-button-hover-bg-color:var(--primary);--fc-button-active-bg-color:var(--primary);--fc-button-hover-border-color:transparent;--fc-button-active-border-color:transparent;--fc-button-border-color:transparent;--fc-event-border-color:transparent;--fc-event-text-color:oklch(100% 0 0);--fc-border-color:var(--border);--fc-page-bg-color:var(--muted);--fc-today-bg-color:var(--muted)}.dark{--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-950);--card-foreground:var(--base-200);--popover:var(--base-950);--popover-foreground:var(--base-200);--primary:var(--base-50);--primary-foreground:var(--base-900);--secondary:var(--base-500);--secondary-foreground:var(--base-200);--muted:var(--base-900);--muted-foreground:var(--base-400);--accent:var(--base-900);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--base-200);--chart-1:var(--base-50);--chart-2:var(--base-400);--chart-3:var(--base-200);--chart-4:var(--base-600);--chart-5:var(--base-700);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--base-50);--sidebar-primary-foreground:var(--base-900);--sidebar-accent:var(--base-800);--sidebar-accent-foreground:var(--base-200);--sidebar-border:var(--base-800);--sidebar-ring:var(--base-200)}*{scrollbar-width:thin;scrollbar-color:var(--border)transparent}html{overscroll-behavior:none;overflow:hidden}*{text-autospace:no-autospace}body{overscroll-behavior:none;scrollbar-width:none;-ms-overflow-style:none;height:100vh;overflow:hidden}body::-webkit-scrollbar{display:none}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}