ahoy_analytics 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +163 -0
- data/Rakefile +6 -0
- data/app/assets/ahoy_analytics/build/assets/Combination-BpSXUjp9.js +41 -0
- data/app/assets/ahoy_analytics/build/assets/analytics-5KyfCxh6.css +1 -0
- data/app/assets/ahoy_analytics/build/assets/analytics-dashboard-uOXx8zYZ.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/analytics-layout-ClAft5OU.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/analytics-tracker-B3f8P98z.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/analytics-ui-DMSkNqd6.js +90 -0
- data/app/assets/ahoy_analytics/build/assets/behaviors-panel-ChNGYbdH.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/button-JVCrlR4s.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/cable-DO-7y1-E.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/createLucideIcon-BGzacY2v.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/date-range-dialog-DWDp3cLG.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/details-button-NqKfSGEG.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/devices-panel-cXvlmNBY.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/dialog-path-BBPNlB4Z.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/dropdown-menu-Adj3O5fh.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/filter-dialog-BN-rf4lp.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/index-B1K1NTKT.js +3 -0
- data/app/assets/ahoy_analytics/build/assets/index-BcHeb-Rh.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/index-DzpzLoG4.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/index-vX97OY1J.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/input-e4v_v0kE.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/jsx-runtime-u17CrQMm.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/last-load-context-De5uA95L.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/list-table-ChHEzzF9.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/live-Cp2MHECh.js +2 -0
- data/app/assets/ahoy_analytics/build/assets/locations-panel-BaISRmaQ.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/mercator-BnxX5RzL.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/pages-panel-Bh25L8mP.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/panel-tabs-B2kvGFJx.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/query-context-B-PgE00D.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/remote-details-dialog-DDTcKaM5.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/show-CCRicksg.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/simple-tabs-D6G6Bs0k.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/site-context-BNteYRlR.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/sources-panel-DyB21hxD.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/top-bar-FSiLBjq6.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/top-stats-context-DU15P9jS.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/use-debounce-VBpXQRL8.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/user-context-DbYteluY.js +1 -0
- data/app/assets/ahoy_analytics/build/assets/visitor-globe-BWLDihid.js +4789 -0
- data/app/assets/ahoy_analytics/build/assets/visitor-graph-uKXjLvcu.js +1 -0
- data/app/assets/ahoy_analytics/images/icon/browser/brave.svg +1 -0
- data/app/assets/ahoy_analytics/images/icon/browser/chrome.svg +1 -0
- data/app/assets/ahoy_analytics/images/icon/browser/chromium.svg +1 -0
- data/app/assets/ahoy_analytics/images/icon/browser/duckduckgo.svg +2151 -0
- data/app/assets/ahoy_analytics/images/icon/browser/edge.svg +1 -0
- data/app/assets/ahoy_analytics/images/icon/browser/fallback.svg +5 -0
- data/app/assets/ahoy_analytics/images/icon/browser/firefox.svg +1 -0
- data/app/assets/ahoy_analytics/images/icon/browser/opera.svg +1 -0
- data/app/assets/ahoy_analytics/images/icon/browser/safari.png +0 -0
- data/app/assets/ahoy_analytics/images/icon/browser/samsung-internet.svg +1 -0
- data/app/assets/ahoy_analytics/images/icon/browser/uc.svg +1 -0
- data/app/assets/ahoy_analytics/images/icon/browser/vivaldi.svg +1 -0
- data/app/assets/ahoy_analytics/images/icon/browser/yandex.png +0 -0
- data/app/assets/ahoy_analytics/images/icon/os/android.png +0 -0
- data/app/assets/ahoy_analytics/images/icon/os/chrome_os.png +0 -0
- data/app/assets/ahoy_analytics/images/icon/os/fallback.svg +5 -0
- data/app/assets/ahoy_analytics/images/icon/os/fedora.png +0 -0
- data/app/assets/ahoy_analytics/images/icon/os/freebsd.png +0 -0
- data/app/assets/ahoy_analytics/images/icon/os/gnu_linux.png +0 -0
- data/app/assets/ahoy_analytics/images/icon/os/ios.png +0 -0
- data/app/assets/ahoy_analytics/images/icon/os/ipad_os.png +0 -0
- data/app/assets/ahoy_analytics/images/icon/os/mac.png +0 -0
- data/app/assets/ahoy_analytics/images/icon/os/ubuntu.png +0 -0
- data/app/assets/ahoy_analytics/images/icon/os/windows.png +0 -0
- data/app/assets/stylesheets/ahoy_analytics/application.css +15 -0
- data/app/channels/ahoy_analytics/analytics_channel.rb +9 -0
- data/app/controllers/ahoy_analytics/analytics_controller.rb +9 -0
- data/app/controllers/ahoy_analytics/application_controller.rb +8 -0
- data/app/controllers/ahoy_analytics/assets_controller.rb +46 -0
- data/app/controllers/ahoy_analytics/base_controller.rb +285 -0
- data/app/controllers/ahoy_analytics/behaviors_controller.rb +14 -0
- data/app/controllers/ahoy_analytics/devices_controller.rb +14 -0
- data/app/controllers/ahoy_analytics/export_controller.rb +12 -0
- data/app/controllers/ahoy_analytics/live_controller.rb +9 -0
- data/app/controllers/ahoy_analytics/locations_controller.rb +14 -0
- data/app/controllers/ahoy_analytics/main_graph_controller.rb +10 -0
- data/app/controllers/ahoy_analytics/pages_controller.rb +14 -0
- data/app/controllers/ahoy_analytics/referrers_controller.rb +34 -0
- data/app/controllers/ahoy_analytics/search_terms_controller.rb +47 -0
- data/app/controllers/ahoy_analytics/sources_controller.rb +14 -0
- data/app/controllers/ahoy_analytics/top_stats_controller.rb +13 -0
- data/app/controllers/concerns/ahoy_analytics/set_current_request.rb +17 -0
- data/app/frontend/components/analytics/hex-highlights.tsx +165 -0
- data/app/frontend/components/analytics/hex-land-layer.tsx +61 -0
- data/app/frontend/components/analytics/metric-card.tsx +138 -0
- data/app/frontend/components/analytics/sessions-by-location.tsx +62 -0
- data/app/frontend/components/analytics/visitor-globe.tsx +424 -0
- data/app/frontend/components/ui/accordion.tsx +64 -0
- data/app/frontend/components/ui/alert.tsx +66 -0
- data/app/frontend/components/ui/avatar.tsx +53 -0
- data/app/frontend/components/ui/badge.tsx +46 -0
- data/app/frontend/components/ui/button.tsx +62 -0
- data/app/frontend/components/ui/calendar.tsx +212 -0
- data/app/frontend/components/ui/card.tsx +91 -0
- data/app/frontend/components/ui/checkbox.tsx +32 -0
- data/app/frontend/components/ui/dropdown-menu.tsx +255 -0
- data/app/frontend/components/ui/input.tsx +21 -0
- data/app/frontend/components/ui/label.tsx +22 -0
- data/app/frontend/components/ui/popover.tsx +46 -0
- data/app/frontend/components/ui/select.tsx +183 -0
- data/app/frontend/components/ui/separator.tsx +26 -0
- data/app/frontend/components/ui/sheet.tsx +139 -0
- data/app/frontend/components/ui/sidebar.tsx +726 -0
- data/app/frontend/components/ui/skeleton.tsx +13 -0
- data/app/frontend/components/ui/sonner.tsx +33 -0
- data/app/frontend/components/ui/tooltip.tsx +59 -0
- data/app/frontend/data/countries-110m.json +1 -0
- data/app/frontend/data/globe-data.json +1 -0
- data/app/frontend/entrypoints/analytics-tracker.ts +680 -0
- data/app/frontend/entrypoints/analytics-ui.tsx +26 -0
- data/app/frontend/entrypoints/analytics.css +77 -0
- data/app/frontend/layouts/analytics-layout.tsx +28 -0
- data/app/frontend/lib/cable.ts +13 -0
- data/app/frontend/lib/geocode.ts +65 -0
- data/app/frontend/lib/utils.ts +6 -0
- data/app/frontend/pages/admin/analytics/api.ts +221 -0
- data/app/frontend/pages/admin/analytics/hooks/use-debounce.ts +36 -0
- data/app/frontend/pages/admin/analytics/last-load-context.tsx +29 -0
- data/app/frontend/pages/admin/analytics/lib/base-path.ts +28 -0
- data/app/frontend/pages/admin/analytics/lib/dialog-path.ts +242 -0
- data/app/frontend/pages/admin/analytics/lib/number-formatter.ts +100 -0
- data/app/frontend/pages/admin/analytics/live.tsx +608 -0
- data/app/frontend/pages/admin/analytics/query-context.tsx +61 -0
- data/app/frontend/pages/admin/analytics/show.tsx +40 -0
- data/app/frontend/pages/admin/analytics/site-context.tsx +22 -0
- data/app/frontend/pages/admin/analytics/top-stats-context.tsx +37 -0
- data/app/frontend/pages/admin/analytics/types.ts +161 -0
- data/app/frontend/pages/admin/analytics/ui/analytics-dashboard.tsx +60 -0
- data/app/frontend/pages/admin/analytics/ui/behaviors-panel.tsx +456 -0
- data/app/frontend/pages/admin/analytics/ui/date-range-dialog.tsx +173 -0
- data/app/frontend/pages/admin/analytics/ui/details-button.tsx +33 -0
- data/app/frontend/pages/admin/analytics/ui/devices-panel.tsx +474 -0
- data/app/frontend/pages/admin/analytics/ui/filter-dialog.tsx +558 -0
- data/app/frontend/pages/admin/analytics/ui/list-table.tsx +346 -0
- data/app/frontend/pages/admin/analytics/ui/locations-panel.tsx +566 -0
- data/app/frontend/pages/admin/analytics/ui/pages-panel.tsx +207 -0
- data/app/frontend/pages/admin/analytics/ui/panel-tabs.tsx +65 -0
- data/app/frontend/pages/admin/analytics/ui/remote-details-dialog.tsx +356 -0
- data/app/frontend/pages/admin/analytics/ui/simple-tabs.tsx +54 -0
- data/app/frontend/pages/admin/analytics/ui/sources-panel.tsx +771 -0
- data/app/frontend/pages/admin/analytics/ui/top-bar.tsx +793 -0
- data/app/frontend/pages/admin/analytics/ui/visitor-graph.tsx +891 -0
- data/app/frontend/pages/admin/analytics/user-context.tsx +22 -0
- data/app/frontend/styles/shared.css +156 -0
- data/app/helpers/ahoy_analytics/application_helper.rb +96 -0
- data/app/jobs/ahoy_analytics/application_job.rb +4 -0
- data/app/jobs/ahoy_analytics/update_job.rb +12 -0
- data/app/mailers/ahoy_analytics/application_mailer.rb +6 -0
- data/app/models/ahoy/event/filters.rb +7 -0
- data/app/models/ahoy/event.rb +9 -0
- data/app/models/ahoy/visit/cache_key.rb +15 -0
- data/app/models/ahoy/visit/constants.rb +11 -0
- data/app/models/ahoy/visit/devices.rb +144 -0
- data/app/models/ahoy/visit/export.rb +24 -0
- data/app/models/ahoy/visit/filters.rb +286 -0
- data/app/models/ahoy/visit/imports.rb +36 -0
- data/app/models/ahoy/visit/locations.rb +276 -0
- data/app/models/ahoy/visit/metrics.rb +473 -0
- data/app/models/ahoy/visit/ordering.rb +110 -0
- data/app/models/ahoy/visit/pages.rb +533 -0
- data/app/models/ahoy/visit/pagination.rb +17 -0
- data/app/models/ahoy/visit/ranges.rb +227 -0
- data/app/models/ahoy/visit/series.rb +177 -0
- data/app/models/ahoy/visit/sources.rb +418 -0
- data/app/models/ahoy/visit/url_labels.rb +32 -0
- data/app/models/ahoy/visit.rb +143 -0
- data/app/models/ahoy_analytics/application_record.rb +5 -0
- data/app/models/ahoy_analytics/current.rb +8 -0
- data/app/models/ahoy_analytics/funnel.rb +16 -0
- data/app/models/ahoy_analytics/imported_entry_page.rb +5 -0
- data/app/models/ahoy_analytics/imported_exit_page.rb +5 -0
- data/app/models/ahoy_analytics/imported_page.rb +5 -0
- data/app/models/ahoy_analytics/live_stats.rb +152 -0
- data/app/models/ahoy_analytics/setting.rb +19 -0
- data/app/models/analytics/source_catalog.rb +48 -0
- data/app/views/layouts/ahoy_analytics/application.html.erb +15 -0
- data/config/routes.rb +21 -0
- data/config/vite.json +22 -0
- data/db/migrate/20251006104056_create_ahoy_visits_and_events.rb +62 -0
- data/db/migrate/20251006105012_add_analytics_fields_to_ahoy_visits.rb +11 -0
- data/db/migrate/20251012090000_create_analytics_funnels_and_imports.rb +52 -0
- data/db/migrate/20251013021500_add_analytics_indexes.rb +14 -0
- data/lib/ahoy_analytics/ahoy_store.rb +429 -0
- data/lib/ahoy_analytics/asset_manifest.rb +56 -0
- data/lib/ahoy_analytics/device_bucket.rb +39 -0
- data/lib/ahoy_analytics/engine.rb +55 -0
- data/lib/ahoy_analytics/maxmind_geo.rb +77 -0
- data/lib/ahoy_analytics/version.rb +3 -0
- data/lib/ahoy_analytics.rb +52 -0
- data/lib/generators/ahoy_analytics/install/install_generator.rb +111 -0
- data/lib/generators/ahoy_analytics/install/templates/initializer.rb +28 -0
- data/lib/tasks/ahoy_analytics_tasks.rake +4 -0
- metadata +352 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: b87808a89028c50e1e91b8820ced52d373badedfe829cd7e999f3e279655bd08
|
|
4
|
+
data.tar.gz: 37f85d4cf9383e2b76e9246b08473f5b3007dd6c218c977fdc185d7bc11bf368
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 4260e6b8441e70ad5662b058f88dce3237df93c86c0ac845f1a2697aede648b58d82244d74d3bfa6ad8dabec2bc704bb11fcc0401660211d4ae9902948e19514
|
|
7
|
+
data.tar.gz: 4650c70f7dcc66dac8a90b2ae6b5930704a4e4fea502d7cdd4b71529249248c472c762a4b93c0b21b90e5933a7fff91182f405df1fbbec6a98684b8359cd1654
|
data/MIT-LICENSE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Copyright Tom
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
+
a copy of this software and associated documentation files (the
|
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
+
the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be
|
|
12
|
+
included in all copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# AhoyAnalytics
|
|
2
|
+
|
|
3
|
+
> **Early Stage Project**
|
|
4
|
+
>
|
|
5
|
+
> Better to make it exist first, then improve later.
|
|
6
|
+
>
|
|
7
|
+
> This project is in active development with many assumptions baked in. Expect breaking changes. Best suited for small greenfield projects.
|
|
8
|
+
>
|
|
9
|
+
> **Current assumptions:**
|
|
10
|
+
> - PostgreSQL (required - uses JSONB, `generate_series`, timezone functions)
|
|
11
|
+
> - Solid Queue (for recurring jobs / live updates)
|
|
12
|
+
> - Action Cable (for real-time live view)
|
|
13
|
+
>
|
|
14
|
+
> More flexibility coming soon.
|
|
15
|
+
|
|
16
|
+
Mountable analytics dashboard for Rails using Ahoy + Inertia (no SSR). Ships a
|
|
17
|
+
ready-to-run UI, live view, and a tracking script with prebuilt assets.
|
|
18
|
+
|
|
19
|
+
## Requirements
|
|
20
|
+
- Rails 8.1+
|
|
21
|
+
- PostgreSQL
|
|
22
|
+
- Solid Queue (for live updates via recurring jobs)
|
|
23
|
+
- Action Cable (for the live view)
|
|
24
|
+
|
|
25
|
+
## Installation
|
|
26
|
+
Add this line to your application's Gemfile:
|
|
27
|
+
|
|
28
|
+
```ruby
|
|
29
|
+
gem "ahoy_analytics"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Then run:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
bundle
|
|
36
|
+
bin/rails generate ahoy_analytics:install
|
|
37
|
+
bin/rails db:migrate
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The installer will:
|
|
41
|
+
- Mount the engine at the path you specify.
|
|
42
|
+
- Mount Action Cable at `/cable` if missing.
|
|
43
|
+
- Copy migrations.
|
|
44
|
+
- Add the tracking tag to `app/views/layouts/application.html.erb`.
|
|
45
|
+
|
|
46
|
+
### Important: Ahoy routes
|
|
47
|
+
Ahoy Matey automatically mounts `Ahoy::Engine` at `/ahoy` when `Ahoy.api = true`
|
|
48
|
+
(this engine sets it). **Do not mount `Ahoy::Engine` yourself** or you'll get a
|
|
49
|
+
route name conflict (`ahoy_engine`).
|
|
50
|
+
|
|
51
|
+
## Usage
|
|
52
|
+
With the default mount path:
|
|
53
|
+
- Analytics dashboard: `/admin/analytics`
|
|
54
|
+
- Live view: `/admin/analytics/live`
|
|
55
|
+
|
|
56
|
+
If you mount at a different path (e.g. `/analytics`), those routes shift
|
|
57
|
+
accordingly.
|
|
58
|
+
|
|
59
|
+
## Tracking script
|
|
60
|
+
The generator injects this tag in your main layout:
|
|
61
|
+
|
|
62
|
+
```erb
|
|
63
|
+
<%= ahoy_analytics_tracking_tag %>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Place it in `<head>` to ensure page views are tracked on every page. The script
|
|
67
|
+
posts to Ahoy's `/ahoy/visits` and `/ahoy/events` endpoints.
|
|
68
|
+
|
|
69
|
+
## Configuration
|
|
70
|
+
Edit `config/initializers/ahoy_analytics.rb`:
|
|
71
|
+
|
|
72
|
+
```ruby
|
|
73
|
+
AhoyAnalytics.configure do |config|
|
|
74
|
+
config.mount_path = "/admin/analytics" # change this to mount elsewhere
|
|
75
|
+
config.ahoy_path = "/ahoy"
|
|
76
|
+
config.cable_path = "/cable"
|
|
77
|
+
|
|
78
|
+
# Optional: enable Vite dev server for engine UI during development
|
|
79
|
+
# config.use_vite_dev_server = Rails.env.development?
|
|
80
|
+
|
|
81
|
+
# Optional: supply a contact email for geocoding requests (OpenStreetMap Nominatim)
|
|
82
|
+
# config.geocode_email = ENV["AHOY_ANALYTICS_GEOCODE_EMAIL"]
|
|
83
|
+
|
|
84
|
+
# Optional: pass user info to the header
|
|
85
|
+
# config.user_context = -> { { role: "admin", email: current_user&.email.to_s } }
|
|
86
|
+
|
|
87
|
+
# Optional: tweak site capabilities
|
|
88
|
+
# config.site_context = -> { { has_goals: false, has_props: true } }
|
|
89
|
+
end
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Other useful settings:
|
|
93
|
+
- `config.tracking_exclude_paths` (default excludes `/admin`, `/.well-known`,
|
|
94
|
+
`/ahoy`, `/cable`, and the mount path)
|
|
95
|
+
- `config.tracking_include_paths` (override exclusions)
|
|
96
|
+
- `config.tracking_debug` (prints debug logs in the browser)
|
|
97
|
+
|
|
98
|
+
## Security
|
|
99
|
+
This engine does not enforce authentication or authorization.
|
|
100
|
+
Protect the mounted routes in your host app and ensure only authorized users can access the analytics UI and JSON endpoints.
|
|
101
|
+
If you enable Live updates, also protect Action Cable access to the `config.cable_stream` channel.
|
|
102
|
+
Action Cable authentication/authorization is app-owned and must be implemented in the host app.
|
|
103
|
+
|
|
104
|
+
## Database
|
|
105
|
+
PostgreSQL only. The engine relies on JSONB, `generate_series`, and timezone SQL functions. Other databases are not supported.
|
|
106
|
+
|
|
107
|
+
## Live updates
|
|
108
|
+
The Live view uses Action Cable. The installer configures Solid Queue to run `AhoyAnalytics::UpdateJob` every 30 seconds via `config/recurring.yml`.
|
|
109
|
+
|
|
110
|
+
If you're not using Solid Queue, schedule this job manually with your job runner:
|
|
111
|
+
|
|
112
|
+
```ruby
|
|
113
|
+
AhoyAnalytics::UpdateJob.perform_later
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Run it every 15–30 seconds for real-time updates.
|
|
117
|
+
|
|
118
|
+
## Assets
|
|
119
|
+
This engine ships prebuilt assets under `app/assets/ahoy_analytics/build`, so
|
|
120
|
+
host apps do not need Vite.
|
|
121
|
+
|
|
122
|
+
If you change the frontend:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
npm install
|
|
126
|
+
npm run build
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## GeoIP (optional)
|
|
130
|
+
To enable GeoLite2 city lookups:
|
|
131
|
+
|
|
132
|
+
1. Create a free MaxMind account at https://www.maxmind.com/en/geolite2/signup
|
|
133
|
+
2. Go to "Download Files" and download **GeoLite2 City** (the `.mmdb` format)
|
|
134
|
+
3. Place the file at `db/geo/GeoLite2-City.mmdb` or set `MAXMIND_DB_PATH` to its location
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
mkdir -p db/geo
|
|
138
|
+
# Move your downloaded file
|
|
139
|
+
mv ~/Downloads/GeoLite2-City.mmdb db/geo/
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
The database is updated weekly by MaxMind. Consider setting up a cron job or using their `geoipupdate` tool to keep it current.
|
|
143
|
+
|
|
144
|
+
## Development
|
|
145
|
+
To use the dummy app with the Vite dev server:
|
|
146
|
+
|
|
147
|
+
```ruby
|
|
148
|
+
AhoyAnalytics.configure do |config|
|
|
149
|
+
config.use_vite_dev_server = Rails.env.development?
|
|
150
|
+
end
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Then run:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
bin/dev
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Contributing
|
|
160
|
+
Contribution directions go here.
|
|
161
|
+
|
|
162
|
+
## License
|
|
163
|
+
The gem is available as open source under the terms of the MIT License.
|
data/Rakefile
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import{c as yn}from"./createLucideIcon-BGzacY2v.js";import{r as l,b as Ot,a as Lt,c as wn}from"./analytics-ui-DMSkNqd6.js";import{a as bn,u as me}from"./index-vX97OY1J.js";import{j as F}from"./jsx-runtime-u17CrQMm.js";const xn=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],di=yn("chevron-down",xn);function ke(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e?.(o),n===!1||!o.defaultPrevented)return t?.(o)}}function En(e,t=[]){let n=[];function r(i,c){const s=l.createContext(c),u=n.length;n=[...n,c];const a=d=>{const{scope:p,children:m,...v}=d,h=p?.[e]?.[u]||s,g=l.useMemo(()=>v,Object.values(v));return F.jsx(h.Provider,{value:g,children:m})};a.displayName=i+"Provider";function f(d,p){const m=p?.[e]?.[u]||s,v=l.useContext(m);if(v)return v;if(c!==void 0)return c;throw new Error(`\`${d}\` must be used within \`${i}\``)}return[a,f]}const o=()=>{const i=n.map(c=>l.createContext(c));return function(s){const u=s?.[e]||i;return l.useMemo(()=>({[`__scope${e}`]:{...s,[e]:u}}),[s,u])}};return o.scopeName=e,[r,Sn(o,...t)]}function Sn(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(i){const c=r.reduce((s,{useScope:u,scopeName:a})=>{const d=u(i)[`__scope${a}`];return{...s,...d}},{});return l.useMemo(()=>({[`__scope${t.scopeName}`]:c}),[c])}};return n.scopeName=t.scopeName,n}var se=globalThis?.document?l.useLayoutEffect:()=>{},Cn=Ot[" useInsertionEffect ".trim().toString()]||se;function hi({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[o,i,c]=An({defaultProp:t,onChange:n}),s=e!==void 0,u=s?e:o;{const f=l.useRef(e!==void 0);l.useEffect(()=>{const d=f.current;d!==s&&console.warn(`${r} is changing from ${d?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),f.current=s},[s,r])}const a=l.useCallback(f=>{if(s){const d=Rn(f)?f(e):f;d!==e&&c.current?.(d)}else i(f)},[s,e,i,c]);return[u,a]}function An({defaultProp:e,onChange:t}){const[n,r]=l.useState(e),o=l.useRef(n),i=l.useRef(t);return Cn(()=>{i.current=t},[t]),l.useEffect(()=>{o.current!==n&&(i.current?.(n),o.current=n)},[n,o]),[n,r,i]}function Rn(e){return typeof e=="function"}function Pn(e){const t=On(e),n=l.forwardRef((r,o)=>{const{children:i,...c}=r,s=l.Children.toArray(i),u=s.find(Tn);if(u){const a=u.props.children,f=s.map(d=>d===u?l.Children.count(a)>1?l.Children.only(null):l.isValidElement(a)?a.props.children:null:d);return F.jsx(t,{...c,ref:o,children:l.isValidElement(a)?l.cloneElement(a,void 0,f):null})}return F.jsx(t,{...c,ref:o,children:i})});return n.displayName=`${e}.Slot`,n}function On(e){const t=l.forwardRef((n,r)=>{const{children:o,...i}=n;if(l.isValidElement(o)){const c=Mn(o),s=Dn(i,o.props);return o.type!==l.Fragment&&(s.ref=r?bn(r,c):c),l.cloneElement(o,s)}return l.Children.count(o)>1?l.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Ln=Symbol("radix.slottable");function Tn(e){return l.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Ln}function Dn(e,t){const n={...t};for(const r in t){const o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...s)=>{const u=i(...s);return o(...s),u}:o&&(n[r]=o):r==="style"?n[r]={...o,...i}:r==="className"&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}function Mn(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Nn=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ee=Nn.reduce((e,t)=>{const n=Pn(`Primitive.${t}`),r=l.forwardRef((o,i)=>{const{asChild:c,...s}=o,u=c?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),F.jsx(u,{...s,ref:i})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function kn(e,t){e&&Lt.flushSync(()=>e.dispatchEvent(t))}function ce(e){const t=l.useRef(e);return l.useEffect(()=>{t.current=e}),l.useMemo(()=>(...n)=>t.current?.(...n),[])}function Fn(e,t=globalThis?.document){const n=ce(e);l.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var Wn="DismissableLayer",ze="dismissableLayer.update",In="dismissableLayer.pointerDownOutside",_n="dismissableLayer.focusOutside",it,Tt=l.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Bn=l.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:c,onDismiss:s,...u}=e,a=l.useContext(Tt),[f,d]=l.useState(null),p=f?.ownerDocument??globalThis?.document,[,m]=l.useState({}),v=me(t,S=>d(S)),h=Array.from(a.layers),[g]=[...a.layersWithOutsidePointerEventsDisabled].slice(-1),y=h.indexOf(g),w=f?h.indexOf(f):-1,x=a.layersWithOutsidePointerEventsDisabled.size>0,b=w>=y,E=jn(S=>{const R=S.target,O=[...a.branches].some(P=>P.contains(R));!b||O||(o?.(S),c?.(S),S.defaultPrevented||s?.())},p),C=Vn(S=>{const R=S.target;[...a.branches].some(P=>P.contains(R))||(i?.(S),c?.(S),S.defaultPrevented||s?.())},p);return Fn(S=>{w===a.layers.size-1&&(r?.(S),!S.defaultPrevented&&s&&(S.preventDefault(),s()))},p),l.useEffect(()=>{if(f)return n&&(a.layersWithOutsidePointerEventsDisabled.size===0&&(it=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),a.layersWithOutsidePointerEventsDisabled.add(f)),a.layers.add(f),st(),()=>{n&&a.layersWithOutsidePointerEventsDisabled.size===1&&(p.body.style.pointerEvents=it)}},[f,p,n,a]),l.useEffect(()=>()=>{f&&(a.layers.delete(f),a.layersWithOutsidePointerEventsDisabled.delete(f),st())},[f,a]),l.useEffect(()=>{const S=()=>m({});return document.addEventListener(ze,S),()=>document.removeEventListener(ze,S)},[]),F.jsx(ee.div,{...u,ref:v,style:{pointerEvents:x?b?"auto":"none":void 0,...e.style},onFocusCapture:ke(e.onFocusCapture,C.onFocusCapture),onBlurCapture:ke(e.onBlurCapture,C.onBlurCapture),onPointerDownCapture:ke(e.onPointerDownCapture,E.onPointerDownCapture)})});Bn.displayName=Wn;var $n="DismissableLayerBranch",Hn=l.forwardRef((e,t)=>{const n=l.useContext(Tt),r=l.useRef(null),o=me(t,r);return l.useEffect(()=>{const i=r.current;if(i)return n.branches.add(i),()=>{n.branches.delete(i)}},[n.branches]),F.jsx(ee.div,{...e,ref:o})});Hn.displayName=$n;function jn(e,t=globalThis?.document){const n=ce(e),r=l.useRef(!1),o=l.useRef(()=>{});return l.useEffect(()=>{const i=s=>{if(s.target&&!r.current){let u=function(){Dt(In,n,a,{discrete:!0})};const a={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=u,t.addEventListener("click",o.current,{once:!0})):u()}else t.removeEventListener("click",o.current);r.current=!1},c=window.setTimeout(()=>{t.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(c),t.removeEventListener("pointerdown",i),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function Vn(e,t=globalThis?.document){const n=ce(e),r=l.useRef(!1);return l.useEffect(()=>{const o=i=>{i.target&&!r.current&&Dt(_n,n,{originalEvent:i},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function st(){const e=new CustomEvent(ze);document.dispatchEvent(e)}function Dt(e,t,n,{discrete:r}){const o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?kn(o,i):o.dispatchEvent(i)}var Fe=0;function mi(){l.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??ct()),document.body.insertAdjacentElement("beforeend",e[1]??ct()),Fe++,()=>{Fe===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),Fe--}},[])}function ct(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var We="focusScope.autoFocusOnMount",Ie="focusScope.autoFocusOnUnmount",at={bubbles:!1,cancelable:!0},zn="FocusScope",Un=l.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:i,...c}=e,[s,u]=l.useState(null),a=ce(o),f=ce(i),d=l.useRef(null),p=me(t,h=>u(h)),m=l.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;l.useEffect(()=>{if(r){let h=function(x){if(m.paused||!s)return;const b=x.target;s.contains(b)?d.current=b:Z(d.current,{select:!0})},g=function(x){if(m.paused||!s)return;const b=x.relatedTarget;b!==null&&(s.contains(b)||Z(d.current,{select:!0}))},y=function(x){if(document.activeElement===document.body)for(const E of x)E.removedNodes.length>0&&Z(s)};document.addEventListener("focusin",h),document.addEventListener("focusout",g);const w=new MutationObserver(y);return s&&w.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",h),document.removeEventListener("focusout",g),w.disconnect()}}},[r,s,m.paused]),l.useEffect(()=>{if(s){ut.add(m);const h=document.activeElement;if(!s.contains(h)){const y=new CustomEvent(We,at);s.addEventListener(We,a),s.dispatchEvent(y),y.defaultPrevented||(Xn(Gn(Mt(s)),{select:!0}),document.activeElement===h&&Z(s))}return()=>{s.removeEventListener(We,a),setTimeout(()=>{const y=new CustomEvent(Ie,at);s.addEventListener(Ie,f),s.dispatchEvent(y),y.defaultPrevented||Z(h??document.body,{select:!0}),s.removeEventListener(Ie,f),ut.remove(m)},0)}}},[s,a,f,m]);const v=l.useCallback(h=>{if(!n&&!r||m.paused)return;const g=h.key==="Tab"&&!h.altKey&&!h.ctrlKey&&!h.metaKey,y=document.activeElement;if(g&&y){const w=h.currentTarget,[x,b]=Yn(w);x&&b?!h.shiftKey&&y===b?(h.preventDefault(),n&&Z(x,{select:!0})):h.shiftKey&&y===x&&(h.preventDefault(),n&&Z(b,{select:!0})):y===w&&h.preventDefault()}},[n,r,m.paused]);return F.jsx(ee.div,{tabIndex:-1,...c,ref:p,onKeyDown:v})});Un.displayName=zn;function Xn(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(Z(r,{select:t}),document.activeElement!==n)return}function Yn(e){const t=Mt(e),n=lt(t,e),r=lt(t.reverse(),e);return[n,r]}function Mt(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function lt(e,t){for(const n of e)if(!Kn(n,{upTo:t}))return n}function Kn(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function qn(e){return e instanceof HTMLInputElement&&"select"in e}function Z(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&qn(e)&&t&&e.select()}}var ut=Zn();function Zn(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=ft(e,t),e.unshift(t)},remove(t){e=ft(e,t),e[0]?.resume()}}}function ft(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function Gn(e){return e.filter(t=>t.tagName!=="A")}var Qn=Ot[" useId ".trim().toString()]||(()=>{}),Jn=0;function pi(e){const[t,n]=l.useState(Qn());return se(()=>{n(r=>r??String(Jn++))},[e]),e||(t?`radix-${t}`:"")}const er=["top","right","bottom","left"],G=Math.min,_=Math.max,Ae=Math.round,ge=Math.floor,U=e=>({x:e,y:e}),tr={left:"right",right:"left",bottom:"top",top:"bottom"},nr={start:"end",end:"start"};function Ue(e,t,n){return _(e,G(t,n))}function K(e,t){return typeof e=="function"?e(t):e}function q(e){return e.split("-")[0]}function le(e){return e.split("-")[1]}function qe(e){return e==="x"?"y":"x"}function Ze(e){return e==="y"?"height":"width"}const rr=new Set(["top","bottom"]);function z(e){return rr.has(q(e))?"y":"x"}function Ge(e){return qe(z(e))}function or(e,t,n){n===void 0&&(n=!1);const r=le(e),o=Ge(e),i=Ze(o);let c=o==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[i]>t.floating[i]&&(c=Re(c)),[c,Re(c)]}function ir(e){const t=Re(e);return[Xe(e),t,Xe(t)]}function Xe(e){return e.replace(/start|end/g,t=>nr[t])}const dt=["left","right"],ht=["right","left"],sr=["top","bottom"],cr=["bottom","top"];function ar(e,t,n){switch(e){case"top":case"bottom":return n?t?ht:dt:t?dt:ht;case"left":case"right":return t?sr:cr;default:return[]}}function lr(e,t,n,r){const o=le(e);let i=ar(q(e),n==="start",r);return o&&(i=i.map(c=>c+"-"+o),t&&(i=i.concat(i.map(Xe)))),i}function Re(e){return e.replace(/left|right|bottom|top/g,t=>tr[t])}function ur(e){return{top:0,right:0,bottom:0,left:0,...e}}function Nt(e){return typeof e!="number"?ur(e):{top:e,right:e,bottom:e,left:e}}function Pe(e){const{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}}function mt(e,t,n){let{reference:r,floating:o}=e;const i=z(t),c=Ge(t),s=Ze(c),u=q(t),a=i==="y",f=r.x+r.width/2-o.width/2,d=r.y+r.height/2-o.height/2,p=r[s]/2-o[s]/2;let m;switch(u){case"top":m={x:f,y:r.y-o.height};break;case"bottom":m={x:f,y:r.y+r.height};break;case"right":m={x:r.x+r.width,y:d};break;case"left":m={x:r.x-o.width,y:d};break;default:m={x:r.x,y:r.y}}switch(le(t)){case"start":m[c]-=p*(n&&a?-1:1);break;case"end":m[c]+=p*(n&&a?-1:1);break}return m}const fr=async(e,t,n)=>{const{placement:r="bottom",strategy:o="absolute",middleware:i=[],platform:c}=n,s=i.filter(Boolean),u=await(c.isRTL==null?void 0:c.isRTL(t));let a=await c.getElementRects({reference:e,floating:t,strategy:o}),{x:f,y:d}=mt(a,r,u),p=r,m={},v=0;for(let h=0;h<s.length;h++){const{name:g,fn:y}=s[h],{x:w,y:x,data:b,reset:E}=await y({x:f,y:d,initialPlacement:r,placement:p,strategy:o,middlewareData:m,rects:a,platform:c,elements:{reference:e,floating:t}});f=w??f,d=x??d,m={...m,[g]:{...m[g],...b}},E&&v<=50&&(v++,typeof E=="object"&&(E.placement&&(p=E.placement),E.rects&&(a=E.rects===!0?await c.getElementRects({reference:e,floating:t,strategy:o}):E.rects),{x:f,y:d}=mt(a,p,u)),h=-1)}return{x:f,y:d,placement:p,strategy:o,middlewareData:m}};async function de(e,t){var n;t===void 0&&(t={});const{x:r,y:o,platform:i,rects:c,elements:s,strategy:u}=e,{boundary:a="clippingAncestors",rootBoundary:f="viewport",elementContext:d="floating",altBoundary:p=!1,padding:m=0}=K(t,e),v=Nt(m),g=s[p?d==="floating"?"reference":"floating":d],y=Pe(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(g)))==null||n?g:g.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(s.floating)),boundary:a,rootBoundary:f,strategy:u})),w=d==="floating"?{x:r,y:o,width:c.floating.width,height:c.floating.height}:c.reference,x=await(i.getOffsetParent==null?void 0:i.getOffsetParent(s.floating)),b=await(i.isElement==null?void 0:i.isElement(x))?await(i.getScale==null?void 0:i.getScale(x))||{x:1,y:1}:{x:1,y:1},E=Pe(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:w,offsetParent:x,strategy:u}):w);return{top:(y.top-E.top+v.top)/b.y,bottom:(E.bottom-y.bottom+v.bottom)/b.y,left:(y.left-E.left+v.left)/b.x,right:(E.right-y.right+v.right)/b.x}}const dr=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:o,rects:i,platform:c,elements:s,middlewareData:u}=t,{element:a,padding:f=0}=K(e,t)||{};if(a==null)return{};const d=Nt(f),p={x:n,y:r},m=Ge(o),v=Ze(m),h=await c.getDimensions(a),g=m==="y",y=g?"top":"left",w=g?"bottom":"right",x=g?"clientHeight":"clientWidth",b=i.reference[v]+i.reference[m]-p[m]-i.floating[v],E=p[m]-i.reference[m],C=await(c.getOffsetParent==null?void 0:c.getOffsetParent(a));let S=C?C[x]:0;(!S||!await(c.isElement==null?void 0:c.isElement(C)))&&(S=s.floating[x]||i.floating[v]);const R=b/2-E/2,O=S/2-h[v]/2-1,P=G(d[y],O),T=G(d[w],O),k=P,D=S-h[v]-T,L=S/2-h[v]/2+R,I=Ue(k,L,D),M=!u.arrow&&le(o)!=null&&L!==I&&i.reference[v]/2-(L<k?P:T)-h[v]/2<0,N=M?L<k?L-k:L-D:0;return{[m]:p[m]+N,data:{[m]:I,centerOffset:L-I-N,...M&&{alignmentOffset:N}},reset:M}}}),hr=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,r;const{placement:o,middlewareData:i,rects:c,initialPlacement:s,platform:u,elements:a}=t,{mainAxis:f=!0,crossAxis:d=!0,fallbackPlacements:p,fallbackStrategy:m="bestFit",fallbackAxisSideDirection:v="none",flipAlignment:h=!0,...g}=K(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const y=q(o),w=z(s),x=q(s)===s,b=await(u.isRTL==null?void 0:u.isRTL(a.floating)),E=p||(x||!h?[Re(s)]:ir(s)),C=v!=="none";!p&&C&&E.push(...lr(s,h,v,b));const S=[s,...E],R=await de(t,g),O=[];let P=((r=i.flip)==null?void 0:r.overflows)||[];if(f&&O.push(R[y]),d){const L=or(o,c,b);O.push(R[L[0]],R[L[1]])}if(P=[...P,{placement:o,overflows:O}],!O.every(L=>L<=0)){var T,k;const L=(((T=i.flip)==null?void 0:T.index)||0)+1,I=S[L];if(I&&(!(d==="alignment"?w!==z(I):!1)||P.every(A=>z(A.placement)===w?A.overflows[0]>0:!0)))return{data:{index:L,overflows:P},reset:{placement:I}};let M=(k=P.filter(N=>N.overflows[0]<=0).sort((N,A)=>N.overflows[1]-A.overflows[1])[0])==null?void 0:k.placement;if(!M)switch(m){case"bestFit":{var D;const N=(D=P.filter(A=>{if(C){const W=z(A.placement);return W===w||W==="y"}return!0}).map(A=>[A.placement,A.overflows.filter(W=>W>0).reduce((W,j)=>W+j,0)]).sort((A,W)=>A[1]-W[1])[0])==null?void 0:D[0];N&&(M=N);break}case"initialPlacement":M=s;break}if(o!==M)return{reset:{placement:M}}}return{}}}};function pt(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function vt(e){return er.some(t=>e[t]>=0)}const mr=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...o}=K(e,t);switch(r){case"referenceHidden":{const i=await de(t,{...o,elementContext:"reference"}),c=pt(i,n.reference);return{data:{referenceHiddenOffsets:c,referenceHidden:vt(c)}}}case"escaped":{const i=await de(t,{...o,altBoundary:!0}),c=pt(i,n.floating);return{data:{escapedOffsets:c,escaped:vt(c)}}}default:return{}}}}},kt=new Set(["left","top"]);async function pr(e,t){const{placement:n,platform:r,elements:o}=e,i=await(r.isRTL==null?void 0:r.isRTL(o.floating)),c=q(n),s=le(n),u=z(n)==="y",a=kt.has(c)?-1:1,f=i&&u?-1:1,d=K(t,e);let{mainAxis:p,crossAxis:m,alignmentAxis:v}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof v=="number"&&(m=s==="end"?v*-1:v),u?{x:m*f,y:p*a}:{x:p*a,y:m*f}}const vr=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:o,y:i,placement:c,middlewareData:s}=t,u=await pr(t,e);return c===((n=s.offset)==null?void 0:n.placement)&&(r=s.arrow)!=null&&r.alignmentOffset?{}:{x:o+u.x,y:i+u.y,data:{...u,placement:c}}}}},gr=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:o}=t,{mainAxis:i=!0,crossAxis:c=!1,limiter:s={fn:g=>{let{x:y,y:w}=g;return{x:y,y:w}}},...u}=K(e,t),a={x:n,y:r},f=await de(t,u),d=z(q(o)),p=qe(d);let m=a[p],v=a[d];if(i){const g=p==="y"?"top":"left",y=p==="y"?"bottom":"right",w=m+f[g],x=m-f[y];m=Ue(w,m,x)}if(c){const g=d==="y"?"top":"left",y=d==="y"?"bottom":"right",w=v+f[g],x=v-f[y];v=Ue(w,v,x)}const h=s.fn({...t,[p]:m,[d]:v});return{...h,data:{x:h.x-n,y:h.y-r,enabled:{[p]:i,[d]:c}}}}}},yr=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:o,rects:i,middlewareData:c}=t,{offset:s=0,mainAxis:u=!0,crossAxis:a=!0}=K(e,t),f={x:n,y:r},d=z(o),p=qe(d);let m=f[p],v=f[d];const h=K(s,t),g=typeof h=="number"?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(u){const x=p==="y"?"height":"width",b=i.reference[p]-i.floating[x]+g.mainAxis,E=i.reference[p]+i.reference[x]-g.mainAxis;m<b?m=b:m>E&&(m=E)}if(a){var y,w;const x=p==="y"?"width":"height",b=kt.has(q(o)),E=i.reference[d]-i.floating[x]+(b&&((y=c.offset)==null?void 0:y[d])||0)+(b?0:g.crossAxis),C=i.reference[d]+i.reference[x]+(b?0:((w=c.offset)==null?void 0:w[d])||0)-(b?g.crossAxis:0);v<E?v=E:v>C&&(v=C)}return{[p]:m,[d]:v}}}},wr=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:o,rects:i,platform:c,elements:s}=t,{apply:u=()=>{},...a}=K(e,t),f=await de(t,a),d=q(o),p=le(o),m=z(o)==="y",{width:v,height:h}=i.floating;let g,y;d==="top"||d==="bottom"?(g=d,y=p===(await(c.isRTL==null?void 0:c.isRTL(s.floating))?"start":"end")?"left":"right"):(y=d,g=p==="end"?"top":"bottom");const w=h-f.top-f.bottom,x=v-f.left-f.right,b=G(h-f[g],w),E=G(v-f[y],x),C=!t.middlewareData.shift;let S=b,R=E;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(R=x),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(S=w),C&&!p){const P=_(f.left,0),T=_(f.right,0),k=_(f.top,0),D=_(f.bottom,0);m?R=v-2*(P!==0||T!==0?P+T:_(f.left,f.right)):S=h-2*(k!==0||D!==0?k+D:_(f.top,f.bottom))}await u({...t,availableWidth:R,availableHeight:S});const O=await c.getDimensions(s.floating);return v!==O.width||h!==O.height?{reset:{rects:!0}}:{}}}};function Le(){return typeof window<"u"}function ue(e){return Ft(e)?(e.nodeName||"").toLowerCase():"#document"}function B(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Y(e){var t;return(t=(Ft(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Ft(e){return Le()?e instanceof Node||e instanceof B(e).Node:!1}function $(e){return Le()?e instanceof Element||e instanceof B(e).Element:!1}function X(e){return Le()?e instanceof HTMLElement||e instanceof B(e).HTMLElement:!1}function gt(e){return!Le()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof B(e).ShadowRoot}const br=new Set(["inline","contents"]);function pe(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=H(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!br.has(o)}const xr=new Set(["table","td","th"]);function Er(e){return xr.has(ue(e))}const Sr=[":popover-open",":modal"];function Te(e){return Sr.some(t=>{try{return e.matches(t)}catch{return!1}})}const Cr=["transform","translate","scale","rotate","perspective"],Ar=["transform","translate","scale","rotate","perspective","filter"],Rr=["paint","layout","strict","content"];function Qe(e){const t=Je(),n=$(e)?H(e):e;return Cr.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||Ar.some(r=>(n.willChange||"").includes(r))||Rr.some(r=>(n.contain||"").includes(r))}function Pr(e){let t=Q(e);for(;X(t)&&!ae(t);){if(Qe(t))return t;if(Te(t))return null;t=Q(t)}return null}function Je(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const Or=new Set(["html","body","#document"]);function ae(e){return Or.has(ue(e))}function H(e){return B(e).getComputedStyle(e)}function De(e){return $(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Q(e){if(ue(e)==="html")return e;const t=e.assignedSlot||e.parentNode||gt(e)&&e.host||Y(e);return gt(t)?t.host:t}function Wt(e){const t=Q(e);return ae(t)?e.ownerDocument?e.ownerDocument.body:e.body:X(t)&&pe(t)?t:Wt(t)}function he(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const o=Wt(e),i=o===((r=e.ownerDocument)==null?void 0:r.body),c=B(o);if(i){const s=Ye(c);return t.concat(c,c.visualViewport||[],pe(o)?o:[],s&&n?he(s):[])}return t.concat(o,he(o,[],n))}function Ye(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function It(e){const t=H(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=X(e),i=o?e.offsetWidth:n,c=o?e.offsetHeight:r,s=Ae(n)!==i||Ae(r)!==c;return s&&(n=i,r=c),{width:n,height:r,$:s}}function et(e){return $(e)?e:e.contextElement}function oe(e){const t=et(e);if(!X(t))return U(1);const n=t.getBoundingClientRect(),{width:r,height:o,$:i}=It(t);let c=(i?Ae(n.width):n.width)/r,s=(i?Ae(n.height):n.height)/o;return(!c||!Number.isFinite(c))&&(c=1),(!s||!Number.isFinite(s))&&(s=1),{x:c,y:s}}const Lr=U(0);function _t(e){const t=B(e);return!Je()||!t.visualViewport?Lr:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Tr(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==B(e)?!1:t}function J(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const o=e.getBoundingClientRect(),i=et(e);let c=U(1);t&&(r?$(r)&&(c=oe(r)):c=oe(e));const s=Tr(i,n,r)?_t(i):U(0);let u=(o.left+s.x)/c.x,a=(o.top+s.y)/c.y,f=o.width/c.x,d=o.height/c.y;if(i){const p=B(i),m=r&&$(r)?B(r):r;let v=p,h=Ye(v);for(;h&&r&&m!==v;){const g=oe(h),y=h.getBoundingClientRect(),w=H(h),x=y.left+(h.clientLeft+parseFloat(w.paddingLeft))*g.x,b=y.top+(h.clientTop+parseFloat(w.paddingTop))*g.y;u*=g.x,a*=g.y,f*=g.x,d*=g.y,u+=x,a+=b,v=B(h),h=Ye(v)}}return Pe({width:f,height:d,x:u,y:a})}function Me(e,t){const n=De(e).scrollLeft;return t?t.left+n:J(Y(e)).left+n}function Bt(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Me(e,n),o=n.top+t.scrollTop;return{x:r,y:o}}function Dr(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e;const i=o==="fixed",c=Y(r),s=t?Te(t.floating):!1;if(r===c||s&&i)return n;let u={scrollLeft:0,scrollTop:0},a=U(1);const f=U(0),d=X(r);if((d||!d&&!i)&&((ue(r)!=="body"||pe(c))&&(u=De(r)),X(r))){const m=J(r);a=oe(r),f.x=m.x+r.clientLeft,f.y=m.y+r.clientTop}const p=c&&!d&&!i?Bt(c,u):U(0);return{width:n.width*a.x,height:n.height*a.y,x:n.x*a.x-u.scrollLeft*a.x+f.x+p.x,y:n.y*a.y-u.scrollTop*a.y+f.y+p.y}}function Mr(e){return Array.from(e.getClientRects())}function Nr(e){const t=Y(e),n=De(e),r=e.ownerDocument.body,o=_(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),i=_(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let c=-n.scrollLeft+Me(e);const s=-n.scrollTop;return H(r).direction==="rtl"&&(c+=_(t.clientWidth,r.clientWidth)-o),{width:o,height:i,x:c,y:s}}const yt=25;function kr(e,t){const n=B(e),r=Y(e),o=n.visualViewport;let i=r.clientWidth,c=r.clientHeight,s=0,u=0;if(o){i=o.width,c=o.height;const f=Je();(!f||f&&t==="fixed")&&(s=o.offsetLeft,u=o.offsetTop)}const a=Me(r);if(a<=0){const f=r.ownerDocument,d=f.body,p=getComputedStyle(d),m=f.compatMode==="CSS1Compat"&&parseFloat(p.marginLeft)+parseFloat(p.marginRight)||0,v=Math.abs(r.clientWidth-d.clientWidth-m);v<=yt&&(i-=v)}else a<=yt&&(i+=a);return{width:i,height:c,x:s,y:u}}const Fr=new Set(["absolute","fixed"]);function Wr(e,t){const n=J(e,!0,t==="fixed"),r=n.top+e.clientTop,o=n.left+e.clientLeft,i=X(e)?oe(e):U(1),c=e.clientWidth*i.x,s=e.clientHeight*i.y,u=o*i.x,a=r*i.y;return{width:c,height:s,x:u,y:a}}function wt(e,t,n){let r;if(t==="viewport")r=kr(e,n);else if(t==="document")r=Nr(Y(e));else if($(t))r=Wr(t,n);else{const o=_t(e);r={x:t.x-o.x,y:t.y-o.y,width:t.width,height:t.height}}return Pe(r)}function $t(e,t){const n=Q(e);return n===t||!$(n)||ae(n)?!1:H(n).position==="fixed"||$t(n,t)}function Ir(e,t){const n=t.get(e);if(n)return n;let r=he(e,[],!1).filter(s=>$(s)&&ue(s)!=="body"),o=null;const i=H(e).position==="fixed";let c=i?Q(e):e;for(;$(c)&&!ae(c);){const s=H(c),u=Qe(c);!u&&s.position==="fixed"&&(o=null),(i?!u&&!o:!u&&s.position==="static"&&!!o&&Fr.has(o.position)||pe(c)&&!u&&$t(e,c))?r=r.filter(f=>f!==c):o=s,c=Q(c)}return t.set(e,r),r}function _r(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e;const c=[...n==="clippingAncestors"?Te(t)?[]:Ir(t,this._c):[].concat(n),r],s=c[0],u=c.reduce((a,f)=>{const d=wt(t,f,o);return a.top=_(d.top,a.top),a.right=G(d.right,a.right),a.bottom=G(d.bottom,a.bottom),a.left=_(d.left,a.left),a},wt(t,s,o));return{width:u.right-u.left,height:u.bottom-u.top,x:u.left,y:u.top}}function Br(e){const{width:t,height:n}=It(e);return{width:t,height:n}}function $r(e,t,n){const r=X(t),o=Y(t),i=n==="fixed",c=J(e,!0,i,t);let s={scrollLeft:0,scrollTop:0};const u=U(0);function a(){u.x=Me(o)}if(r||!r&&!i)if((ue(t)!=="body"||pe(o))&&(s=De(t)),r){const m=J(t,!0,i,t);u.x=m.x+t.clientLeft,u.y=m.y+t.clientTop}else o&&a();i&&!r&&o&&a();const f=o&&!r&&!i?Bt(o,s):U(0),d=c.left+s.scrollLeft-u.x-f.x,p=c.top+s.scrollTop-u.y-f.y;return{x:d,y:p,width:c.width,height:c.height}}function _e(e){return H(e).position==="static"}function bt(e,t){if(!X(e)||H(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return Y(e)===n&&(n=n.ownerDocument.body),n}function Ht(e,t){const n=B(e);if(Te(e))return n;if(!X(e)){let o=Q(e);for(;o&&!ae(o);){if($(o)&&!_e(o))return o;o=Q(o)}return n}let r=bt(e,t);for(;r&&Er(r)&&_e(r);)r=bt(r,t);return r&&ae(r)&&_e(r)&&!Qe(r)?n:r||Pr(e)||n}const Hr=async function(e){const t=this.getOffsetParent||Ht,n=this.getDimensions,r=await n(e.floating);return{reference:$r(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function jr(e){return H(e).direction==="rtl"}const Vr={convertOffsetParentRelativeRectToViewportRelativeRect:Dr,getDocumentElement:Y,getClippingRect:_r,getOffsetParent:Ht,getElementRects:Hr,getClientRects:Mr,getDimensions:Br,getScale:oe,isElement:$,isRTL:jr};function jt(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function zr(e,t){let n=null,r;const o=Y(e);function i(){var s;clearTimeout(r),(s=n)==null||s.disconnect(),n=null}function c(s,u){s===void 0&&(s=!1),u===void 0&&(u=1),i();const a=e.getBoundingClientRect(),{left:f,top:d,width:p,height:m}=a;if(s||t(),!p||!m)return;const v=ge(d),h=ge(o.clientWidth-(f+p)),g=ge(o.clientHeight-(d+m)),y=ge(f),x={rootMargin:-v+"px "+-h+"px "+-g+"px "+-y+"px",threshold:_(0,G(1,u))||1};let b=!0;function E(C){const S=C[0].intersectionRatio;if(S!==u){if(!b)return c();S?c(!1,S):r=setTimeout(()=>{c(!1,1e-7)},1e3)}S===1&&!jt(a,e.getBoundingClientRect())&&c(),b=!1}try{n=new IntersectionObserver(E,{...x,root:o.ownerDocument})}catch{n=new IntersectionObserver(E,x)}n.observe(e)}return c(!0),i}function Ur(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:o=!0,ancestorResize:i=!0,elementResize:c=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:u=!1}=r,a=et(e),f=o||i?[...a?he(a):[],...he(t)]:[];f.forEach(y=>{o&&y.addEventListener("scroll",n,{passive:!0}),i&&y.addEventListener("resize",n)});const d=a&&s?zr(a,n):null;let p=-1,m=null;c&&(m=new ResizeObserver(y=>{let[w]=y;w&&w.target===a&&m&&(m.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var x;(x=m)==null||x.observe(t)})),n()}),a&&!u&&m.observe(a),m.observe(t));let v,h=u?J(e):null;u&&g();function g(){const y=J(e);h&&!jt(h,y)&&n(),h=y,v=requestAnimationFrame(g)}return n(),()=>{var y;f.forEach(w=>{o&&w.removeEventListener("scroll",n),i&&w.removeEventListener("resize",n)}),d?.(),(y=m)==null||y.disconnect(),m=null,u&&cancelAnimationFrame(v)}}const Xr=vr,Yr=gr,Kr=hr,qr=wr,Zr=mr,xt=dr,Gr=yr,Qr=(e,t,n)=>{const r=new Map,o={platform:Vr,...n},i={...o.platform,_c:r};return fr(e,t,{...o,platform:i})};var Jr=typeof document<"u",eo=function(){},Ee=Jr?l.useLayoutEffect:eo;function Oe(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,o;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Oe(e[r],t[r]))return!1;return!0}if(o=Object.keys(e),n=o.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,o[r]))return!1;for(r=n;r--!==0;){const i=o[r];if(!(i==="_owner"&&e.$$typeof)&&!Oe(e[i],t[i]))return!1}return!0}return e!==e&&t!==t}function Vt(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Et(e,t){const n=Vt(e);return Math.round(t*n)/n}function Be(e){const t=l.useRef(e);return Ee(()=>{t.current=e}),t}function to(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:o,elements:{reference:i,floating:c}={},transform:s=!0,whileElementsMounted:u,open:a}=e,[f,d]=l.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[p,m]=l.useState(r);Oe(p,r)||m(r);const[v,h]=l.useState(null),[g,y]=l.useState(null),w=l.useCallback(A=>{A!==C.current&&(C.current=A,h(A))},[]),x=l.useCallback(A=>{A!==S.current&&(S.current=A,y(A))},[]),b=i||v,E=c||g,C=l.useRef(null),S=l.useRef(null),R=l.useRef(f),O=u!=null,P=Be(u),T=Be(o),k=Be(a),D=l.useCallback(()=>{if(!C.current||!S.current)return;const A={placement:t,strategy:n,middleware:p};T.current&&(A.platform=T.current),Qr(C.current,S.current,A).then(W=>{const j={...W,isPositioned:k.current!==!1};L.current&&!Oe(R.current,j)&&(R.current=j,Lt.flushSync(()=>{d(j)}))})},[p,t,n,T,k]);Ee(()=>{a===!1&&R.current.isPositioned&&(R.current.isPositioned=!1,d(A=>({...A,isPositioned:!1})))},[a]);const L=l.useRef(!1);Ee(()=>(L.current=!0,()=>{L.current=!1}),[]),Ee(()=>{if(b&&(C.current=b),E&&(S.current=E),b&&E){if(P.current)return P.current(b,E,D);D()}},[b,E,D,P,O]);const I=l.useMemo(()=>({reference:C,floating:S,setReference:w,setFloating:x}),[w,x]),M=l.useMemo(()=>({reference:b,floating:E}),[b,E]),N=l.useMemo(()=>{const A={position:n,left:0,top:0};if(!M.floating)return A;const W=Et(M.floating,f.x),j=Et(M.floating,f.y);return s?{...A,transform:"translate("+W+"px, "+j+"px)",...Vt(M.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:W,top:j}},[n,s,M.floating,f.x,f.y]);return l.useMemo(()=>({...f,update:D,refs:I,elements:M,floatingStyles:N}),[f,D,I,M,N])}const no=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:o}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?xt({element:r.current,padding:o}).fn(n):{}:r?xt({element:r,padding:o}).fn(n):{}}}},ro=(e,t)=>({...Xr(e),options:[e,t]}),oo=(e,t)=>({...Yr(e),options:[e,t]}),io=(e,t)=>({...Gr(e),options:[e,t]}),so=(e,t)=>({...Kr(e),options:[e,t]}),co=(e,t)=>({...qr(e),options:[e,t]}),ao=(e,t)=>({...Zr(e),options:[e,t]}),lo=(e,t)=>({...no(e),options:[e,t]});var uo="Arrow",zt=l.forwardRef((e,t)=>{const{children:n,width:r=10,height:o=5,...i}=e;return F.jsx(ee.svg,{...i,ref:t,width:r,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:F.jsx("polygon",{points:"0,0 30,0 15,10"})})});zt.displayName=uo;var fo=zt;function ho(e){const[t,n]=l.useState(void 0);return se(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const i=o[0];let c,s;if("borderBoxSize"in i){const u=i.borderBoxSize,a=Array.isArray(u)?u[0]:u;c=a.inlineSize,s=a.blockSize}else c=e.offsetWidth,s=e.offsetHeight;n({width:c,height:s})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var tt="Popper",[Ut,vi]=En(tt),[mo,Xt]=Ut(tt),Yt=e=>{const{__scopePopper:t,children:n}=e,[r,o]=l.useState(null);return F.jsx(mo,{scope:t,anchor:r,onAnchorChange:o,children:n})};Yt.displayName=tt;var Kt="PopperAnchor",qt=l.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...o}=e,i=Xt(Kt,n),c=l.useRef(null),s=me(t,c),u=l.useRef(null);return l.useEffect(()=>{const a=u.current;u.current=r?.current||c.current,a!==u.current&&i.onAnchorChange(u.current)}),r?null:F.jsx(ee.div,{...o,ref:s})});qt.displayName=Kt;var nt="PopperContent",[po,vo]=Ut(nt),Zt=l.forwardRef((e,t)=>{const{__scopePopper:n,side:r="bottom",sideOffset:o=0,align:i="center",alignOffset:c=0,arrowPadding:s=0,avoidCollisions:u=!0,collisionBoundary:a=[],collisionPadding:f=0,sticky:d="partial",hideWhenDetached:p=!1,updatePositionStrategy:m="optimized",onPlaced:v,...h}=e,g=Xt(nt,n),[y,w]=l.useState(null),x=me(t,fe=>w(fe)),[b,E]=l.useState(null),C=ho(b),S=C?.width??0,R=C?.height??0,O=r+(i!=="center"?"-"+i:""),P=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},T=Array.isArray(a)?a:[a],k=T.length>0,D={padding:P,boundary:T.filter(yo),altBoundary:k},{refs:L,floatingStyles:I,placement:M,isPositioned:N,middlewareData:A}=to({strategy:"fixed",placement:O,whileElementsMounted:(...fe)=>Ur(...fe,{animationFrame:m==="always"}),elements:{reference:g.anchor},middleware:[ro({mainAxis:o+R,alignmentAxis:c}),u&&oo({mainAxis:!0,crossAxis:!1,limiter:d==="partial"?io():void 0,...D}),u&&so({...D}),co({...D,apply:({elements:fe,rects:ot,availableWidth:mn,availableHeight:pn})=>{const{width:vn,height:gn}=ot.reference,ve=fe.floating.style;ve.setProperty("--radix-popper-available-width",`${mn}px`),ve.setProperty("--radix-popper-available-height",`${pn}px`),ve.setProperty("--radix-popper-anchor-width",`${vn}px`),ve.setProperty("--radix-popper-anchor-height",`${gn}px`)}}),b&&lo({element:b,padding:s}),wo({arrowWidth:S,arrowHeight:R}),p&&ao({strategy:"referenceHidden",...D})]}),[W,j]=Jt(M),rt=ce(v);se(()=>{N&&rt?.()},[N,rt]);const ln=A.arrow?.x,un=A.arrow?.y,fn=A.arrow?.centerOffset!==0,[dn,hn]=l.useState();return se(()=>{y&&hn(window.getComputedStyle(y).zIndex)},[y]),F.jsx("div",{ref:L.setFloating,"data-radix-popper-content-wrapper":"",style:{...I,transform:N?I.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:dn,"--radix-popper-transform-origin":[A.transformOrigin?.x,A.transformOrigin?.y].join(" "),...A.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:F.jsx(po,{scope:n,placedSide:W,onArrowChange:E,arrowX:ln,arrowY:un,shouldHideArrow:fn,children:F.jsx(ee.div,{"data-side":W,"data-align":j,...h,ref:x,style:{...h.style,animation:N?void 0:"none"}})})})});Zt.displayName=nt;var Gt="PopperArrow",go={top:"bottom",right:"left",bottom:"top",left:"right"},Qt=l.forwardRef(function(t,n){const{__scopePopper:r,...o}=t,i=vo(Gt,r),c=go[i.placedSide];return F.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[c]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:F.jsx(fo,{...o,ref:n,style:{...o.style,display:"block"}})})});Qt.displayName=Gt;function yo(e){return e!==null}var wo=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:r,middlewareData:o}=t,c=o.arrow?.centerOffset!==0,s=c?0:e.arrowWidth,u=c?0:e.arrowHeight,[a,f]=Jt(n),d={start:"0%",center:"50%",end:"100%"}[f],p=(o.arrow?.x??0)+s/2,m=(o.arrow?.y??0)+u/2;let v="",h="";return a==="bottom"?(v=c?d:`${p}px`,h=`${-u}px`):a==="top"?(v=c?d:`${p}px`,h=`${r.floating.height+u}px`):a==="right"?(v=`${-u}px`,h=c?d:`${m}px`):a==="left"&&(v=`${r.floating.width+u}px`,h=c?d:`${m}px`),{data:{x:v,y:h}}}});function Jt(e){const[t,n="center"]=e.split("-");return[t,n]}var gi=Yt,yi=qt,wi=Zt,bi=Qt,bo="Portal",xo=l.forwardRef((e,t)=>{const{container:n,...r}=e,[o,i]=l.useState(!1);se(()=>i(!0),[]);const c=n||o&&globalThis?.document?.body;return c?wn.createPortal(F.jsx(ee.div,{...r,ref:t}),c):null});xo.displayName=bo;var Eo=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},te=new WeakMap,ye=new WeakMap,we={},$e=0,en=function(e){return e&&(e.host||en(e.parentNode))},So=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=en(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},Co=function(e,t,n,r){var o=So(t,Array.isArray(e)?e:[e]);we[n]||(we[n]=new WeakMap);var i=we[n],c=[],s=new Set,u=new Set(o),a=function(d){!d||s.has(d)||(s.add(d),a(d.parentNode))};o.forEach(a);var f=function(d){!d||u.has(d)||Array.prototype.forEach.call(d.children,function(p){if(s.has(p))f(p);else try{var m=p.getAttribute(r),v=m!==null&&m!=="false",h=(te.get(p)||0)+1,g=(i.get(p)||0)+1;te.set(p,h),i.set(p,g),c.push(p),h===1&&v&&ye.set(p,!0),g===1&&p.setAttribute(n,"true"),v||p.setAttribute(r,"true")}catch(y){console.error("aria-hidden: cannot operate on ",p,y)}})};return f(t),s.clear(),$e++,function(){c.forEach(function(d){var p=te.get(d)-1,m=i.get(d)-1;te.set(d,p),i.set(d,m),p||(ye.has(d)||d.removeAttribute(r),ye.delete(d)),m||d.removeAttribute(n)}),$e--,$e||(te=new WeakMap,te=new WeakMap,ye=new WeakMap,we={})}},xi=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=Eo(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),Co(r,o,n,"aria-hidden")):function(){return null}},V=function(){return V=Object.assign||function(t){for(var n,r=1,o=arguments.length;r<o;r++){n=arguments[r];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},V.apply(this,arguments)};function tn(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}function Ao(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,i;r<o;r++)(i||!(r in t))&&(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}var Se="right-scroll-bar-position",Ce="width-before-scroll-bar",Ro="with-scroll-bars-hidden",Po="--removed-body-scroll-bar-size";function He(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function Oo(e,t){var n=l.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var o=n.value;o!==r&&(n.value=r,n.callback(r,o))}}}})[0];return n.callback=t,n.facade}var Lo=typeof window<"u"?l.useLayoutEffect:l.useEffect,St=new WeakMap;function To(e,t){var n=Oo(null,function(r){return e.forEach(function(o){return He(o,r)})});return Lo(function(){var r=St.get(n);if(r){var o=new Set(r),i=new Set(e),c=n.current;o.forEach(function(s){i.has(s)||He(s,null)}),i.forEach(function(s){o.has(s)||He(s,c)})}St.set(n,e)},[e]),n}function Do(e){return e}function Mo(e,t){t===void 0&&(t=Do);var n=[],r=!1,o={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(i){var c=t(i,r);return n.push(c),function(){n=n.filter(function(s){return s!==c})}},assignSyncMedium:function(i){for(r=!0;n.length;){var c=n;n=[],c.forEach(i)}n={push:function(s){return i(s)},filter:function(){return n}}},assignMedium:function(i){r=!0;var c=[];if(n.length){var s=n;n=[],s.forEach(i),c=n}var u=function(){var f=c;c=[],f.forEach(i)},a=function(){return Promise.resolve().then(u)};a(),n={push:function(f){c.push(f),a()},filter:function(f){return c=c.filter(f),n}}}};return o}function No(e){e===void 0&&(e={});var t=Mo(null);return t.options=V({async:!0,ssr:!1},e),t}var nn=function(e){var t=e.sideCar,n=tn(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return l.createElement(r,V({},n))};nn.isSideCarExport=!0;function ko(e,t){return e.useMedium(t),nn}var rn=No(),je=function(){},Ne=l.forwardRef(function(e,t){var n=l.useRef(null),r=l.useState({onScrollCapture:je,onWheelCapture:je,onTouchMoveCapture:je}),o=r[0],i=r[1],c=e.forwardProps,s=e.children,u=e.className,a=e.removeScrollBar,f=e.enabled,d=e.shards,p=e.sideCar,m=e.noRelative,v=e.noIsolation,h=e.inert,g=e.allowPinchZoom,y=e.as,w=y===void 0?"div":y,x=e.gapMode,b=tn(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),E=p,C=To([n,t]),S=V(V({},b),o);return l.createElement(l.Fragment,null,f&&l.createElement(E,{sideCar:rn,removeScrollBar:a,shards:d,noRelative:m,noIsolation:v,inert:h,setCallbacks:i,allowPinchZoom:!!g,lockRef:n,gapMode:x}),c?l.cloneElement(l.Children.only(s),V(V({},S),{ref:C})):l.createElement(w,V({},S,{className:u,ref:C}),s))});Ne.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Ne.classNames={fullWidth:Ce,zeroRight:Se};var Fo=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function Wo(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=Fo();return t&&e.setAttribute("nonce",t),e}function Io(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function _o(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var Bo=function(){var e=0,t=null;return{add:function(n){e==0&&(t=Wo())&&(Io(t,n),_o(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},$o=function(){var e=Bo();return function(t,n){l.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},on=function(){var e=$o(),t=function(n){var r=n.styles,o=n.dynamic;return e(r,o),null};return t},Ho={left:0,top:0,right:0,gap:0},Ve=function(e){return parseInt(e||"",10)||0},jo=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[Ve(n),Ve(r),Ve(o)]},Vo=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return Ho;var t=jo(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},zo=on(),ie="data-scroll-locked",Uo=function(e,t,n,r){var o=e.left,i=e.top,c=e.right,s=e.gap;return n===void 0&&(n="margin"),`
|
|
2
|
+
.`.concat(Ro,` {
|
|
3
|
+
overflow: hidden `).concat(r,`;
|
|
4
|
+
padding-right: `).concat(s,"px ").concat(r,`;
|
|
5
|
+
}
|
|
6
|
+
body[`).concat(ie,`] {
|
|
7
|
+
overflow: hidden `).concat(r,`;
|
|
8
|
+
overscroll-behavior: contain;
|
|
9
|
+
`).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&`
|
|
10
|
+
padding-left: `.concat(o,`px;
|
|
11
|
+
padding-top: `).concat(i,`px;
|
|
12
|
+
padding-right: `).concat(c,`px;
|
|
13
|
+
margin-left:0;
|
|
14
|
+
margin-top:0;
|
|
15
|
+
margin-right: `).concat(s,"px ").concat(r,`;
|
|
16
|
+
`),n==="padding"&&"padding-right: ".concat(s,"px ").concat(r,";")].filter(Boolean).join(""),`
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.`).concat(Se,` {
|
|
20
|
+
right: `).concat(s,"px ").concat(r,`;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.`).concat(Ce,` {
|
|
24
|
+
margin-right: `).concat(s,"px ").concat(r,`;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.`).concat(Se," .").concat(Se,` {
|
|
28
|
+
right: 0 `).concat(r,`;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.`).concat(Ce," .").concat(Ce,` {
|
|
32
|
+
margin-right: 0 `).concat(r,`;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
body[`).concat(ie,`] {
|
|
36
|
+
`).concat(Po,": ").concat(s,`px;
|
|
37
|
+
}
|
|
38
|
+
`)},Ct=function(){var e=parseInt(document.body.getAttribute(ie)||"0",10);return isFinite(e)?e:0},Xo=function(){l.useEffect(function(){return document.body.setAttribute(ie,(Ct()+1).toString()),function(){var e=Ct()-1;e<=0?document.body.removeAttribute(ie):document.body.setAttribute(ie,e.toString())}},[])},Yo=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=r===void 0?"margin":r;Xo();var i=l.useMemo(function(){return Vo(o)},[o]);return l.createElement(zo,{styles:Uo(i,!t,o,n?"":"!important")})},Ke=!1;if(typeof window<"u")try{var be=Object.defineProperty({},"passive",{get:function(){return Ke=!0,!0}});window.addEventListener("test",be,be),window.removeEventListener("test",be,be)}catch{Ke=!1}var ne=Ke?{passive:!1}:!1,Ko=function(e){return e.tagName==="TEXTAREA"},sn=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!Ko(e)&&n[t]==="visible")},qo=function(e){return sn(e,"overflowY")},Zo=function(e){return sn(e,"overflowX")},At=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var o=cn(e,r);if(o){var i=an(e,r),c=i[1],s=i[2];if(c>s)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Go=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},Qo=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},cn=function(e,t){return e==="v"?qo(t):Zo(t)},an=function(e,t){return e==="v"?Go(t):Qo(t)},Jo=function(e,t){return e==="h"&&t==="rtl"?-1:1},ei=function(e,t,n,r,o){var i=Jo(e,window.getComputedStyle(t).direction),c=i*r,s=n.target,u=t.contains(s),a=!1,f=c>0,d=0,p=0;do{if(!s)break;var m=an(e,s),v=m[0],h=m[1],g=m[2],y=h-g-i*v;(v||y)&&cn(e,s)&&(d+=y,p+=v);var w=s.parentNode;s=w&&w.nodeType===Node.DOCUMENT_FRAGMENT_NODE?w.host:w}while(!u&&s!==document.body||u&&(t.contains(s)||t===s));return(f&&Math.abs(d)<1||!f&&Math.abs(p)<1)&&(a=!0),a},xe=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Rt=function(e){return[e.deltaX,e.deltaY]},Pt=function(e){return e&&"current"in e?e.current:e},ti=function(e,t){return e[0]===t[0]&&e[1]===t[1]},ni=function(e){return`
|
|
39
|
+
.block-interactivity-`.concat(e,` {pointer-events: none;}
|
|
40
|
+
.allow-interactivity-`).concat(e,` {pointer-events: all;}
|
|
41
|
+
`)},ri=0,re=[];function oi(e){var t=l.useRef([]),n=l.useRef([0,0]),r=l.useRef(),o=l.useState(ri++)[0],i=l.useState(on)[0],c=l.useRef(e);l.useEffect(function(){c.current=e},[e]),l.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var h=Ao([e.lockRef.current],(e.shards||[]).map(Pt),!0).filter(Boolean);return h.forEach(function(g){return g.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),h.forEach(function(g){return g.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var s=l.useCallback(function(h,g){if("touches"in h&&h.touches.length===2||h.type==="wheel"&&h.ctrlKey)return!c.current.allowPinchZoom;var y=xe(h),w=n.current,x="deltaX"in h?h.deltaX:w[0]-y[0],b="deltaY"in h?h.deltaY:w[1]-y[1],E,C=h.target,S=Math.abs(x)>Math.abs(b)?"h":"v";if("touches"in h&&S==="h"&&C.type==="range")return!1;var R=window.getSelection(),O=R&&R.anchorNode,P=O?O===C||O.contains(C):!1;if(P)return!1;var T=At(S,C);if(!T)return!0;if(T?E=S:(E=S==="v"?"h":"v",T=At(S,C)),!T)return!1;if(!r.current&&"changedTouches"in h&&(x||b)&&(r.current=E),!E)return!0;var k=r.current||E;return ei(k,g,h,k==="h"?x:b)},[]),u=l.useCallback(function(h){var g=h;if(!(!re.length||re[re.length-1]!==i)){var y="deltaY"in g?Rt(g):xe(g),w=t.current.filter(function(E){return E.name===g.type&&(E.target===g.target||g.target===E.shadowParent)&&ti(E.delta,y)})[0];if(w&&w.should){g.cancelable&&g.preventDefault();return}if(!w){var x=(c.current.shards||[]).map(Pt).filter(Boolean).filter(function(E){return E.contains(g.target)}),b=x.length>0?s(g,x[0]):!c.current.noIsolation;b&&g.cancelable&&g.preventDefault()}}},[]),a=l.useCallback(function(h,g,y,w){var x={name:h,delta:g,target:y,should:w,shadowParent:ii(y)};t.current.push(x),setTimeout(function(){t.current=t.current.filter(function(b){return b!==x})},1)},[]),f=l.useCallback(function(h){n.current=xe(h),r.current=void 0},[]),d=l.useCallback(function(h){a(h.type,Rt(h),h.target,s(h,e.lockRef.current))},[]),p=l.useCallback(function(h){a(h.type,xe(h),h.target,s(h,e.lockRef.current))},[]);l.useEffect(function(){return re.push(i),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:p}),document.addEventListener("wheel",u,ne),document.addEventListener("touchmove",u,ne),document.addEventListener("touchstart",f,ne),function(){re=re.filter(function(h){return h!==i}),document.removeEventListener("wheel",u,ne),document.removeEventListener("touchmove",u,ne),document.removeEventListener("touchstart",f,ne)}},[]);var m=e.removeScrollBar,v=e.inert;return l.createElement(l.Fragment,null,v?l.createElement(i,{styles:ni(o)}):null,m?l.createElement(Yo,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function ii(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const si=ko(rn,oi);var ci=l.forwardRef(function(e,t){return l.createElement(Ne,V({},e,{ref:t,sideCar:si}))});ci.classNames=Ne.classNames;export{yi as A,di as C,Bn as D,Un as F,ee as P,gi as R,En as a,pi as b,vi as c,ke as d,xo as e,ci as f,mi as g,xi as h,wi as i,bi as j,se as k,ce as l,kn as m,hi as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-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:"";--tw-divide-x-reverse:0;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-400:oklch(70.4% .191 22.216);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-700:oklch(55.5% .163 48.998);--color-yellow-400:oklch(85.2% .199 91.936);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-700:oklch(50.8% .118 165.612);--color-cyan-400:oklch(78.9% .154 211.53);--color-sky-100:oklch(95.1% .026 236.824);--color-sky-700:oklch(50% .134 242.749);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-700:oklch(45.7% .24 277.023);--color-violet-500:oklch(60.6% .25 292.717);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-700:oklch(51.4% .222 16.935);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--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-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-md:calc(var(--radius) - 2px);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;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{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}*{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)}}button:not([disabled]),[role=button]:not([disabled]){cursor:pointer}input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select{appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-color:#6a7282;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is(input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#155dfc;outline:2px solid #0000}input::placeholder,textarea::placeholder{color:#6a7282;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-date-and-time-value{text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{-webkit-print-color-adjust:exact;print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}select:where([multiple]),select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;-webkit-print-color-adjust:unset;print-color-adjust:unset;padding-right:.75rem}input:where([type=checkbox]),input:where([type=radio]){appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;color:#155dfc;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;border-color:#6a7282;flex-shrink:0;width:1rem;height:1rem;padding:0;display:inline-block}input:where([type=checkbox]){border-radius:0}input:where([type=radio]){border-radius:100%}input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}input:where([type=checkbox]):checked,input:where([type=radio]):checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=checkbox]):checked{appearance:auto}}input:where([type=radio]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=radio]):checked{appearance:auto}}input:where([type=checkbox]):checked:hover,input:where([type=checkbox]):checked:focus,input:where([type=radio]):checked:hover,input:where([type=radio]):checked:focus{background-color:currentColor;border-color:#0000}input:where([type=checkbox]):indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}@media(forced-colors:active){input:where([type=checkbox]):indeterminate{appearance:auto}}input:where([type=checkbox]):indeterminate:hover,input:where([type=checkbox]):indeterminate:focus{background-color:currentColor;border-color:#0000}input:where([type=file]){background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}input:where([type=file]):focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.inset-y-1{inset-block:calc(var(--spacing)*1)}.inset-y-\[1px\]{inset-block:1px}.-top-12{top:calc(var(--spacing)*-12)}.-top-16{top:calc(var(--spacing)*-16)}.top-0{top:calc(var(--spacing)*0)}.top-1\.5{top:calc(var(--spacing)*1.5)}.top-1\/2{top:50%}.top-3\.5{top:calc(var(--spacing)*3.5)}.top-4{top:calc(var(--spacing)*4)}.right-0{right:calc(var(--spacing)*0)}.right-1{right:calc(var(--spacing)*1)}.right-2{right:calc(var(--spacing)*2)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.left-1{left:calc(var(--spacing)*1)}.left-2{left:calc(var(--spacing)*2)}.left-3{left:calc(var(--spacing)*3)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[70\]{z-index:70}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media(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-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)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-10{margin-top:calc(var(--spacing)*10)}.mt-auto{margin-top:auto}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.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}.table{display:table}.aspect-square{aspect-ratio:1}.size-\(--cell-size\){width:var(--cell-size);height:var(--cell-size)}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-2\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-3\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-auto{width:auto;height:auto}.size-full{width:100%;height:100%}.h-\(--cell-size\){height:var(--cell-size)}.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-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-32{height:calc(var(--spacing)*32)}.h-40{height:calc(var(--spacing)*40)}.h-48{height:calc(var(--spacing)*48)}.h-96{height:calc(var(--spacing)*96)}.h-\[6px\]{height:6px}.h-\[84vh\]{height:84vh}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-56{max-height:calc(var(--spacing)*56)}.max-h-60{max-height:calc(var(--spacing)*60)}.max-h-\[84vh\]{max-height:84vh}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-4{min-height:calc(var(--spacing)*4)}.min-h-40{min-height:calc(var(--spacing)*40)}.min-h-dvh{min-height:100dvh}.min-h-svh{min-height:100svh}.w-\(--cell-size\){width:var(--cell-size)}.w-\(--sidebar-width\){width:var(--sidebar-width)}.w-0{width:calc(var(--spacing)*0)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-12{width:calc(var(--spacing)*12)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-48{width:calc(var(--spacing)*48)}.w-56{width:calc(var(--spacing)*56)}.w-64{width:calc(var(--spacing)*64)}.w-72{width:calc(var(--spacing)*72)}.w-\[22rem\]{width:22rem}.w-\[520px\]{width:520px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\(--skeleton-width\){max-width:var(--skeleton-width)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[10rem\]{max-width:10rem}.max-w-\[92px\]{max-width:92px}.max-w-\[1400px\]{max-width:1400px}.max-w-prose{max-width:65ch}.min-w-\(--cell-size\){min-width:var(--cell-size)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-5{min-width:calc(var(--spacing)*5)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[140px\]{min-width:140px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-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-0\.5{--tw-translate-y:calc(var(--spacing)*.5);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}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.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-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-items-start{justify-items:start}.gap-0{gap:calc(var(--spacing)*0)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}: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-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-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-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)))}.gap-y-0\.5{row-gap:calc(var(--spacing)*.5)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--border)}:where(.divide-white\/12>:not(:last-child)){border-color:#ffffff1f}@supports (color:color-mix(in lab,red,red)){:where(.divide-white\/12>:not(:last-child)){border-color:color-mix(in oklab,var(--color-white)12%,transparent)}}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[4px\]{border-radius:4px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.border{border-style:var(--tw-border-style);border-width:1px}.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-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-border{border-color:var(--border)}.border-cyan-400{border-color:var(--color-cyan-400)}.border-foreground\/20{border-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.border-foreground\/20{border-color:color-mix(in oklab,var(--foreground)20%,transparent)}}.border-input{border-color:var(--input)}.border-primary{border-color:var(--primary)}.border-sidebar-border{border-color:var(--sidebar-border)}.border-transparent{border-color:#0000}.border-white\/12{border-color:#ffffff1f}@supports (color:color-mix(in lab,red,red)){.border-white\/12{border-color:color-mix(in oklab,var(--color-white)12%,transparent)}}.bg-\[\#0d0f16\]\/80{background-color:#0d0f16cc}.bg-\[\#0f121a\]{background-color:#0f121a}.bg-\[\#0f1118\]{background-color:#0f1118}.bg-\[\#11131b\]{background-color:#11131b}.bg-\[\#11131b\]\/80{background-color:#11131bcc}.bg-\[radial-gradient\(circle_at_top_left\,rgba\(226\,252\,255\,0\.3\)\,transparent_60\%\)\,radial-gradient\(circle_at_bottom_right\,rgba\(191\,219\,254\,0\.28\)\,transparent_55\%\)\,\#0f1118\]{background-color:radial-gradient(circle at top left,#e2fcff4d,transparent 60%),radial-gradient(circle at bottom right,#bfdbfe47,transparent 55%),#0f1118}.bg-accent{background-color:var(--accent)}.bg-amber-100{background-color:var(--color-amber-100)}.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-amber-500\/12{background-color:#f99c001f}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/12{background-color:color-mix(in oklab,var(--color-amber-500)12%,transparent)}}.bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/15{background-color:color-mix(in oklab,var(--color-amber-500)15%,transparent)}}.bg-background,.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\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.bg-black\/70{background-color:color-mix(in oklab,var(--color-black)70%,transparent)}}.bg-blue-600{background-color:var(--color-blue-600)}.bg-border{background-color:var(--border)}.bg-card,.bg-card\/75{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/75{background-color:color-mix(in oklab,var(--card)75%,transparent)}}.bg-cyan-400{background-color:var(--color-cyan-400)}.bg-cyan-400\/5{background-color:#00d2ef0d}@supports (color:color-mix(in lab,red,red)){.bg-cyan-400\/5{background-color:color-mix(in oklab,var(--color-cyan-400)5%,transparent)}}.bg-cyan-400\/8{background-color:#00d2ef14}@supports (color:color-mix(in lab,red,red)){.bg-cyan-400\/8{background-color:color-mix(in oklab,var(--color-cyan-400)8%,transparent)}}.bg-cyan-400\/10{background-color:#00d2ef1a}@supports (color:color-mix(in lab,red,red)){.bg-cyan-400\/10{background-color:color-mix(in oklab,var(--color-cyan-400)10%,transparent)}}.bg-cyan-400\/12{background-color:#00d2ef1f}@supports (color:color-mix(in lab,red,red)){.bg-cyan-400\/12{background-color:color-mix(in oklab,var(--color-cyan-400)12%,transparent)}}.bg-cyan-400\/20{background-color:#00d2ef33}@supports (color:color-mix(in lab,red,red)){.bg-cyan-400\/20{background-color:color-mix(in oklab,var(--color-cyan-400)20%,transparent)}}.bg-destructive{background-color:var(--destructive)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-500\/5{background-color:#00bb7f0d}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/5{background-color:color-mix(in oklab,var(--color-emerald-500)5%,transparent)}}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/15{background-color:color-mix(in oklab,var(--color-emerald-500)15%,transparent)}}.bg-foreground{background-color:var(--foreground)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-indigo-500\/8{background-color:#625fff14}@supports (color:color-mix(in lab,red,red)){.bg-indigo-500\/8{background-color:color-mix(in oklab,var(--color-indigo-500)8%,transparent)}}.bg-indigo-500\/12{background-color:#625fff1f}@supports (color:color-mix(in lab,red,red)){.bg-indigo-500\/12{background-color:color-mix(in oklab,var(--color-indigo-500)12%,transparent)}}.bg-indigo-500\/15{background-color:#625fff26}@supports (color:color-mix(in lab,red,red)){.bg-indigo-500\/15{background-color:color-mix(in oklab,var(--color-indigo-500)15%,transparent)}}.bg-muted,.bg-muted\/10{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/10{background-color:color-mix(in oklab,var(--muted)10%,transparent)}}.bg-muted\/40{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/40{background-color:color-mix(in oklab,var(--muted)40%,transparent)}}.bg-muted\/60{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/60{background-color:color-mix(in oklab,var(--muted)60%,transparent)}}.bg-popover,.bg-popover\/95{background-color:var(--popover)}@supports (color:color-mix(in lab,red,red)){.bg-popover\/95{background-color:color-mix(in oklab,var(--popover)95%,transparent)}}.bg-primary,.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-400{background-color:var(--color-red-400)}.bg-rose-100{background-color:var(--color-rose-100)}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-border{background-color:var(--sidebar-border)}.bg-sky-100{background-color:var(--color-sky-100)}.bg-slate-900{background-color:var(--color-slate-900)}.bg-slate-950\/80{background-color:#020618cc}@supports (color:color-mix(in lab,red,red)){.bg-slate-950\/80{background-color:color-mix(in oklab,var(--color-slate-950)80%,transparent)}}.bg-transparent{background-color:#0000}.bg-violet-500\/6{background-color:#8d54ff0f}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/6{background-color:color-mix(in oklab,var(--color-violet-500)6%,transparent)}}.bg-violet-500\/8{background-color:#8d54ff14}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/8{background-color:color-mix(in oklab,var(--color-violet-500)8%,transparent)}}.bg-violet-500\/12{background-color:#8d54ff1f}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/12{background-color:color-mix(in oklab,var(--color-violet-500)12%,transparent)}}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.bg-yellow-400{background-color:var(--color-yellow-400)}.fill-current{fill:currentColor}.fill-foreground{fill:var(--foreground)}.object-contain{object-fit:contain}.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-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.px-\(--cell-size\){padding-inline:var(--cell-size)}.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)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.\!py-0{padding-block:calc(var(--spacing)*0)!important}.py-0{padding-block:calc(var(--spacing)*0)}.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-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-10{padding-top:calc(var(--spacing)*10)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-3{padding-right:calc(var(--spacing)*3)}.pr-5{padding-right:calc(var(--spacing)*5)}.pr-8{padding-right:calc(var(--spacing)*8)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-16{padding-bottom:calc(var(--spacing)*16)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-8{padding-left:calc(var(--spacing)*8)}.pl-9{padding-left:calc(var(--spacing)*9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.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-lg\/6{font-size:var(--text-lg);line-height:calc(var(--spacing)*6)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-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}.break-all{word-break:break-all}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.text-accent-foreground{color:var(--accent-foreground)}.text-amber-700{color:var(--color-amber-700)}.text-background{color:var(--background)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-cyan-400{color:var(--color-cyan-400)}.text-cyan-400\/70{color:#00d2efb3}@supports (color:color-mix(in lab,red,red)){.text-cyan-400\/70{color:color-mix(in oklab,var(--color-cyan-400)70%,transparent)}}.text-destructive{color:var(--destructive)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-700{color:var(--color-emerald-700)}.text-foreground,.text-foreground\/50{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/50{color:color-mix(in oklab,var(--foreground)50%,transparent)}}.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-foreground\/80{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/80{color:color-mix(in oklab,var(--foreground)80%,transparent)}}.text-foreground\/90{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/90{color:color-mix(in oklab,var(--foreground)90%,transparent)}}.text-indigo-700{color:var(--color-indigo-700)}.text-muted-foreground,.text-muted-foreground\/80{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/80{color:color-mix(in oklab,var(--muted-foreground)80%,transparent)}}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-red-400{color:var(--color-red-400)}.text-rose-400{color:var(--color-rose-400)}.text-rose-700{color:var(--color-rose-700)}.text-secondary-foreground{color:var(--secondary-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)}}.text-sky-700{color:var(--color-sky-700)}.text-slate-200{color:var(--color-slate-200)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.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{text-decoration-line:underline}.decoration-white\/20{text-decoration-color:#fff3}@supports (color:color-mix(in lab,red,red)){.decoration-white\/20{-webkit-text-decoration-color:color-mix(in oklab,var(--color-white)20%,transparent);text-decoration-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow-\[0_0_0_1px_color-mix\(in_oklch\,var\(--primary\)_65\%\,oklch\(0_0_0\)_35\%\)\,inset_0_1px_0_0_color-mix\(in_oklch\,var\(--primary\)_35\%\,oklch\(1_0_0\)_65\%\)\,0_2px_0_0_color-mix\(in_oklch\,var\(--primary\)_65\%\,oklch\(0_0_0\)_35\%\)\,0_3px_6px_0_color-mix\(in_oklch\,var\(--background\)_35\%\,oklch\(0_0_0\)_65\%\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--primary)),inset 0 1px 0 0 var(--tw-shadow-color,var(--primary)),0 2px 0 0 var(--tw-shadow-color,var(--primary)),0 3px 6px 0 var(--tw-shadow-color,var(--background))}@supports (color:color-mix(in lab,red,red)){.shadow-\[0_0_0_1px_color-mix\(in_oklch\,var\(--primary\)_65\%\,oklch\(0_0_0\)_35\%\)\,inset_0_1px_0_0_color-mix\(in_oklch\,var\(--primary\)_35\%\,oklch\(1_0_0\)_65\%\)\,0_2px_0_0_color-mix\(in_oklch\,var\(--primary\)_65\%\,oklch\(0_0_0\)_35\%\)\,0_3px_6px_0_color-mix\(in_oklch\,var\(--background\)_35\%\,oklch\(0_0_0\)_65\%\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,color-mix(in oklch,var(--primary)65%,oklch(0% 0 0) 35%)),inset 0 1px 0 0 var(--tw-shadow-color,color-mix(in oklch,var(--primary)35%,oklch(100% 0 0) 65%)),0 2px 0 0 var(--tw-shadow-color,color-mix(in oklch,var(--primary)65%,oklch(0% 0 0) 35%)),0 3px 6px 0 var(--tw-shadow-color,color-mix(in oklch,var(--background)35%,oklch(0% 0 0) 65%))}}.shadow-\[0_0_0_1px_color-mix\(in_oklch\,var\(--primary\)_65\%\,oklch\(0_0_0\)_35\%\)\,inset_0_1px_0_0_color-mix\(in_oklch\,var\(--primary\)_35\%\,oklch\(1_0_0\)_65\%\)\,0_2px_0_0_color-mix\(in_oklch\,var\(--primary\)_65\%\,oklch\(0_0_0\)_35\%\)\,0_3px_6px_0_color-mix\(in_oklch\,var\(--background\)_35\%\,oklch\(0_0_0\)_65\%\)\]{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_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-\[0_0_6px_rgba\(37\,99\,235\,0\.6\)\]{--tw-shadow:0 0 6px var(--tw-shadow-color,#2563eb99);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(37\,99\,235\,0\.55\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#2563eb8c);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_4px_12px_rgba\(7\,9\,16\,0\.3\)\]{--tw-shadow:0 4px 12px var(--tw-shadow-color,#0709104d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_12px_26px_rgba\(7\,9\,16\,0\.32\)\]{--tw-shadow:0 12px 26px var(--tw-shadow-color,#07091052);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_16px_48px_rgba\(7\,9\,16\,0\.5\)\]{--tw-shadow:0 16px 48px var(--tw-shadow-color,#07091080);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-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-blue-400\/60{--tw-ring-color:#54a2ff99}@supports (color:color-mix(in lab,red,red)){.ring-blue-400\/60{--tw-ring-color:color-mix(in oklab,var(--color-blue-400)60%,transparent)}}.ring-sidebar-ring{--tw-ring-color:var(--sidebar-ring)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.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,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-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-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.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}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.\[--cell-size\:--spacing\(8\)\]{--cell-size:calc(var(--spacing)*8)}.group-focus-within\/menu-item\:opacity-100:is(:where(.group\/menu-item):focus-within *){opacity:1}@media(hover:hover){.group-hover\:text-cyan-400\/50:is(:where(.group):hover *){color:#00d2ef80}@supports (color:color-mix(in lab,red,red)){.group-hover\:text-cyan-400\/50:is(:where(.group):hover *){color:color-mix(in oklab,var(--color-cyan-400)50%,transparent)}}.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/menu-item\:opacity-100:is(:where(.group\/menu-item):hover *){opacity:1}}.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-\[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\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width)*-1)}.group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width)*-1)}.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-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.group-data-\[focused\=true\]\/day\:relative:is(:where(.group\/day)[data-focused=true] *){position:relative}.group-data-\[focused\=true\]\/day\:z-10:is(:where(.group\/day)[data-focused=true] *){z-index:10}.group-data-\[focused\=true\]\/day\:border-ring:is(:where(.group\/day)[data-focused=true] *){border-color:var(--ring)}.group-data-\[focused\=true\]\/day\:ring-\[3px\]:is(:where(.group\/day)[data-focused=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)}.group-data-\[focused\=true\]\/day\:ring-ring\/50:is(:where(.group\/day)[data-focused=true] *){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.group-data-\[focused\=true\]\/day\:ring-ring\/50:is(:where(.group\/day)[data-focused=true] *){--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.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-\[variant\=floating\]\:rounded-lg:is(:where(.group)[data-variant=floating] *){border-radius:var(--radius)}.group-data-\[variant\=floating\]\:border:is(:where(.group)[data-variant=floating] *){border-style:var(--tw-border-style);border-width:1px}.group-data-\[variant\=floating\]\:border-sidebar-border:is(:where(.group)[data-variant=floating] *){border-color:var(--sidebar-border)}.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-\[\.toast\]\:bg-muted:is(:where(.group).toast *){background-color:var(--muted)}.group-\[\.toast\]\:bg-primary:is(:where(.group).toast *){background-color:var(--primary)}.group-\[\.toast\]\:text-muted-foreground:is(:where(.group).toast *){color:var(--muted-foreground)}.group-\[\.toast\]\:text-primary-foreground:is(:where(.group).toast *){color:var(--primary-foreground)}.group-\[\.toaster\]\:\!border-amber-500\/40:is(:where(.group).toaster *){border-color:#f99c0066!important}@supports (color:color-mix(in lab,red,red)){.group-\[\.toaster\]\:\!border-amber-500\/40:is(:where(.group).toaster *){border-color:color-mix(in oklab,var(--color-amber-500)40%,transparent)!important}}.group-\[\.toaster\]\:\!border-blue-500\/40:is(:where(.group).toaster *){border-color:#3080ff66!important}@supports (color:color-mix(in lab,red,red)){.group-\[\.toaster\]\:\!border-blue-500\/40:is(:where(.group).toaster *){border-color:color-mix(in oklab,var(--color-blue-500)40%,transparent)!important}}.group-\[\.toaster\]\:\!border-destructive\/40:is(:where(.group).toaster *){border-color:var(--destructive)!important}@supports (color:color-mix(in lab,red,red)){.group-\[\.toaster\]\:\!border-destructive\/40:is(:where(.group).toaster *){border-color:color-mix(in oklab,var(--destructive)40%,transparent)!important}}.group-\[\.toaster\]\:\!border-primary\/40:is(:where(.group).toaster *){border-color:var(--primary)!important}@supports (color:color-mix(in lab,red,red)){.group-\[\.toaster\]\:\!border-primary\/40:is(:where(.group).toaster *){border-color:color-mix(in oklab,var(--primary)40%,transparent)!important}}.group-\[\.toaster\]\:border-border:is(:where(.group).toaster *){border-color:var(--border)}.group-\[\.toaster\]\:\!bg-amber-500\/10:is(:where(.group).toaster *){background-color:#f99c001a!important}@supports (color:color-mix(in lab,red,red)){.group-\[\.toaster\]\:\!bg-amber-500\/10:is(:where(.group).toaster *){background-color:color-mix(in oklab,var(--color-amber-500)10%,transparent)!important}}.group-\[\.toaster\]\:\!bg-blue-500\/10:is(:where(.group).toaster *){background-color:#3080ff1a!important}@supports (color:color-mix(in lab,red,red)){.group-\[\.toaster\]\:\!bg-blue-500\/10:is(:where(.group).toaster *){background-color:color-mix(in oklab,var(--color-blue-500)10%,transparent)!important}}.group-\[\.toaster\]\:\!bg-destructive\/10:is(:where(.group).toaster *){background-color:var(--destructive)!important}@supports (color:color-mix(in lab,red,red)){.group-\[\.toaster\]\:\!bg-destructive\/10:is(:where(.group).toaster *){background-color:color-mix(in oklab,var(--destructive)10%,transparent)!important}}.group-\[\.toaster\]\:\!bg-primary\/10:is(:where(.group).toaster *){background-color:var(--primary)!important}@supports (color:color-mix(in lab,red,red)){.group-\[\.toaster\]\:\!bg-primary\/10:is(:where(.group).toaster *){background-color:color-mix(in oklab,var(--primary)10%,transparent)!important}}.group-\[\.toaster\]\:bg-background:is(:where(.group).toaster *){background-color:var(--background)}.group-\[\.toaster\]\:\!text-amber-500:is(:where(.group).toaster *){color:var(--color-amber-500)!important}.group-\[\.toaster\]\:\!text-blue-500:is(:where(.group).toaster *){color:var(--color-blue-500)!important}.group-\[\.toaster\]\:\!text-destructive:is(:where(.group).toaster *){color:var(--destructive)!important}.group-\[\.toaster\]\:\!text-primary:is(:where(.group).toaster *){color:var(--primary)!important}.group-\[\.toaster\]\:text-foreground:is(:where(.group).toaster *){color:var(--foreground)}.group-\[\.toaster\]\:shadow-lg:is(:where(.group).toaster *){--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)}.group-\[\.toaster\]\:backdrop-blur-sm:is(:where(.group).toaster *){--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,)}@media(hover:hover){.peer-hover\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button):hover~*){color:var(--sidebar-accent-foreground)}}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button)[data-active=true]~*){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)}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing)*7)}.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-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.group-data-\[collapsible\=offcanvas\]\:after\:left-full:is(:where(.group)[data-collapsible=offcanvas] *):after{content:var(--tw-content);left:100%}.last\:mb-0:last-child{margin-bottom:calc(var(--spacing)*0)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media(hover:hover){.hover\:-translate-y-px:hover{--tw-translate-y:-1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:border-primary\/90:hover{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/90:hover{border-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-background:hover{background-color:var(--background)}.hover\:bg-cyan-400\/15:hover{background-color:#00d2ef26}@supports (color:color-mix(in lab,red,red)){.hover\:bg-cyan-400\/15:hover{background-color:color-mix(in oklab,var(--color-cyan-400)15%,transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-muted:hover,.hover\:bg-muted\/20:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/20:hover{background-color:color-mix(in oklab,var(--muted)20%,transparent)}}.hover\:bg-muted\/40:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/40:hover{background-color:color-mix(in oklab,var(--muted)40%,transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.hover\:bg-primary\/10:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab,var(--primary)10%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-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{background-color:var(--sidebar-accent)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-primary:hover{color:var(--primary)}.hover\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:decoration-white\/40:hover{text-decoration-color:#fff6}@supports (color:color-mix(in lab,red,red)){.hover\:decoration-white\/40:hover{-webkit-text-decoration-color:color-mix(in oklab,var(--color-white)40%,transparent);text-decoration-color:color-mix(in oklab,var(--color-white)40%,transparent)}}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_color-mix\(in_oklch\,var\(--primary\)_65\%\,oklch\(0_0_0\)_35\%\)\,inset_0_1px_0_0_color-mix\(in_oklch\,var\(--primary\)_45\%\,oklch\(1_0_0\)_55\%\)\,0_3px_0_0_color-mix\(in_oklch\,var\(--primary\)_65\%\,oklch\(0_0_0\)_35\%\)\,0_5px_10px_0_color-mix\(in_oklch\,var\(--background\)_45\%\,oklch\(0_0_0\)_55\%\)\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--primary)),inset 0 1px 0 0 var(--tw-shadow-color,var(--primary)),0 3px 0 0 var(--tw-shadow-color,var(--primary)),0 5px 10px 0 var(--tw-shadow-color,var(--background))}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-\[0_0_0_1px_color-mix\(in_oklch\,var\(--primary\)_65\%\,oklch\(0_0_0\)_35\%\)\,inset_0_1px_0_0_color-mix\(in_oklch\,var\(--primary\)_45\%\,oklch\(1_0_0\)_55\%\)\,0_3px_0_0_color-mix\(in_oklch\,var\(--primary\)_65\%\,oklch\(0_0_0\)_35\%\)\,0_5px_10px_0_color-mix\(in_oklch\,var\(--background\)_45\%\,oklch\(0_0_0\)_55\%\)\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,color-mix(in oklch,var(--primary)65%,oklch(0% 0 0) 35%)),inset 0 1px 0 0 var(--tw-shadow-color,color-mix(in oklch,var(--primary)45%,oklch(100% 0 0) 55%)),0 3px 0 0 var(--tw-shadow-color,color-mix(in oklch,var(--primary)65%,oklch(0% 0 0) 35%)),0 5px 10px 0 var(--tw-shadow-color,color-mix(in oklch,var(--background)45%,oklch(0% 0 0) 55%))}}.hover\:shadow-\[0_0_0_1px_color-mix\(in_oklch\,var\(--primary\)_65\%\,oklch\(0_0_0\)_35\%\)\,inset_0_1px_0_0_color-mix\(in_oklch\,var\(--primary\)_45\%\,oklch\(1_0_0\)_55\%\)\,0_3px_0_0_color-mix\(in_oklch\,var\(--primary\)_65\%\,oklch\(0_0_0\)_35\%\)\,0_5px_10px_0_color-mix\(in_oklch\,var\(--background\)_45\%\,oklch\(0_0_0\)_55\%\)\]:hover{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[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\:shadow-\[0_4px_12px_color-mix\(in_oklch\,var\(--primary\)_25\%\,transparent_75\%\)\]:hover{--tw-shadow:0 4px 12px var(--tw-shadow-color,var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-\[0_4px_12px_color-mix\(in_oklch\,var\(--primary\)_25\%\,transparent_75\%\)\]:hover{--tw-shadow:0 4px 12px var(--tw-shadow-color,color-mix(in oklch,var(--primary)25%,transparent 75%))}}.hover\:shadow-\[0_4px_12px_color-mix\(in_oklch\,var\(--primary\)_25\%\,transparent_75\%\)\]:hover{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.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\:bg-accent:focus{background-color:var(--accent)}.focus\:bg-white\/8:focus{background-color:#ffffff14}@supports (color:color-mix(in lab,red,red)){.focus\:bg-white\/8:focus{background-color:color-mix(in oklab,var(--color-white)8%,transparent)}}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus\:outline-2:focus{outline-style:var(--tw-outline-style);outline-width:2px}.focus\:outline-primary:focus{outline-color:var(--primary)}.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-\[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-primary:focus-visible{--tw-ring-color:var(--primary)}.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)}}.active\:translate-y-0:active{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.active\:bg-sidebar-accent:active{background-color:var(--sidebar-accent)}.active\:text-sidebar-accent-foreground:active{color:var(--sidebar-accent-foreground)}.active\:shadow-\[0_0_0_1px_color-mix\(in_oklch\,var\(--primary\)_65\%\,oklch\(0_0_0\)_35\%\)\,inset_0_0_0_1px_color-mix\(in_oklch\,var\(--primary\)_30\%\,oklch\(0_0_0\)_70\%\)\,0_1px_0_0_color-mix\(in_oklch\,var\(--primary\)_65\%\,oklch\(0_0_0\)_35\%\)\,0_2px_4px_0_color-mix\(in_oklch\,var\(--background\)_40\%\,oklch\(0_0_0\)_60\%\)\]:active{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--primary)),inset 0 0 0 1px var(--tw-shadow-color,var(--primary)),0 1px 0 0 var(--tw-shadow-color,var(--primary)),0 2px 4px 0 var(--tw-shadow-color,var(--background))}@supports (color:color-mix(in lab,red,red)){.active\:shadow-\[0_0_0_1px_color-mix\(in_oklch\,var\(--primary\)_65\%\,oklch\(0_0_0\)_35\%\)\,inset_0_0_0_1px_color-mix\(in_oklch\,var\(--primary\)_30\%\,oklch\(0_0_0\)_70\%\)\,0_1px_0_0_color-mix\(in_oklch\,var\(--primary\)_65\%\,oklch\(0_0_0\)_35\%\)\,0_2px_4px_0_color-mix\(in_oklch\,var\(--background\)_40\%\,oklch\(0_0_0\)_60\%\)\]:active{--tw-shadow:0 0 0 1px var(--tw-shadow-color,color-mix(in oklch,var(--primary)65%,oklch(0% 0 0) 35%)),inset 0 0 0 1px var(--tw-shadow-color,color-mix(in oklch,var(--primary)30%,oklch(0% 0 0) 70%)),0 1px 0 0 var(--tw-shadow-color,color-mix(in oklch,var(--primary)65%,oklch(0% 0 0) 35%)),0 2px 4px 0 var(--tw-shadow-color,color-mix(in oklch,var(--background)40%,oklch(0% 0 0) 60%))}}.active\:shadow-\[0_0_0_1px_color-mix\(in_oklch\,var\(--primary\)_65\%\,oklch\(0_0_0\)_35\%\)\,inset_0_0_0_1px_color-mix\(in_oklch\,var\(--primary\)_30\%\,oklch\(0_0_0\)_70\%\)\,0_1px_0_0_color-mix\(in_oklch\,var\(--primary\)_65\%\,oklch\(0_0_0\)_35\%\)\,0_2px_4px_0_color-mix\(in_oklch\,var\(--background\)_40\%\,oklch\(0_0_0\)_60\%\)\]:active{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.active\:shadow-\[0_2px_6px_color-mix\(in_oklch\,var\(--primary\)_20\%\,transparent_80\%\)\]:active{--tw-shadow:0 2px 6px var(--tw-shadow-color,var(--primary))}@supports (color:color-mix(in lab,red,red)){.active\:shadow-\[0_2px_6px_color-mix\(in_oklch\,var\(--primary\)_20\%\,transparent_80\%\)\]:active{--tw-shadow:0 2px 6px var(--tw-shadow-color,color-mix(in oklch,var(--primary)20%,transparent 80%))}}.active\:shadow-\[0_2px_6px_color-mix\(in_oklch\,var\(--primary\)_20\%\,transparent_80\%\)\]:active{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.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}.has-focus\:border-ring:has(:focus){border-color:var(--ring)}.has-focus\:ring-\[3px\]:has(:focus){--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)}.has-focus\:ring-ring\/50:has(:focus){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.has-focus\:ring-ring\/50:has(:focus){--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-data-\[variant\=inset\]\:bg-sidebar:has([data-variant=inset]){background-color:var(--sidebar)}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing)*4)1fr}.has-\[\>svg\]\:gap-x-3:has(>svg){column-gap:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.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)}}.aria-selected\:text-muted-foreground[aria-selected=true]{color:var(--muted-foreground)}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:var(--sidebar-accent)}.data-\[active\=true\]\:font-medium[data-active=true]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:var(--sidebar-accent-foreground)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing)*8)}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-end\=true\]\:rounded-r-md[data-range-end=true]{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:var(--primary)}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:var(--primary-foreground)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:var(--accent)}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:var(--accent-foreground)}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-start\=true\]\:rounded-l-md[data-range-start=true]{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.data-\[range-start\=true\]\:bg-primary[data-range-start=true]{background-color:var(--primary)}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true]{color:var(--primary-foreground)}.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:var(--primary)}.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:var(--primary-foreground)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[selected\=true\]\:bg-primary\/10[data-selected=true]{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.data-\[selected\=true\]\:bg-primary\/10[data-selected=true]{background-color:color-mix(in oklab,var(--primary)10%,transparent)}}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing)*9)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing)*8)}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--destructive)90%,transparent)}}: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-2>*)[data-slot=select-value]{gap:calc(var(--spacing)*2)}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--secondary)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}@media(hover:hover){.data-\[state\=open\]\:hover\:bg-sidebar-accent[data-state=open]:hover{background-color:var(--sidebar-accent)}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground[data-state=open]:hover{color:var(--sidebar-accent-foreground)}}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}@media(min-width:40rem){.sm\:contents{display:contents}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:w-56{width:calc(var(--spacing)*56)}.sm\:w-auto{width:auto}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-2\.5{gap:calc(var(--spacing)*2.5)}:where(.sm\:divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px*var(--tw-divide-x-reverse));border-inline-end-width:calc(1px*calc(1 - var(--tw-divide-x-reverse)))}:where(.sm\:divide-y-0>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(0px*var(--tw-divide-y-reverse));border-bottom-width:calc(0px*calc(1 - var(--tw-divide-y-reverse)))}.sm\:p-6{padding:calc(var(--spacing)*6)}.sm\:px-0{padding-inline:calc(var(--spacing)*0)}.sm\:pt-10{padding-top:calc(var(--spacing)*10)}.sm\:pb-2{padding-bottom:calc(var(--spacing)*2)}}@media(min-width:48rem){.md\:block{display:block}.md\:flex{display:flex}.md\:w-28{width:calc(var(--spacing)*28)}.md\:grid-cols-\[max-content_minmax\(0\,1fr\)\]{grid-template-columns:max-content minmax(0,1fr)}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:gap-4{gap:calc(var(--spacing)*4)}.md\:self-center{align-self:center}.md\:p-0{padding:calc(var(--spacing)*0)}.md\:p-8{padding:calc(var(--spacing)*8)}.md\:px-8{padding-inline:calc(var(--spacing)*8)}.md\:py-4{padding-block:calc(var(--spacing)*4)}.md\:py-5{padding-block:calc(var(--spacing)*5)}.md\:pt-12{padding-top:calc(var(--spacing)*12)}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.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\:block{display:block}.lg\:hidden{display:none}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:overflow-visible{overflow:visible}.lg\:p-6{padding:calc(var(--spacing)*6)}.lg\:px-8{padding-inline:calc(var(--spacing)*8)}.lg\:pt-16{padding-top:calc(var(--spacing)*16)}}.dark\:border-input:where(.dark,.dark *,[data-theme=dark],[data-theme=dark] *,[data-theme=dark-pro],[data-theme=dark-pro] *){border-color:var(--input)}.dark\:bg-destructive\/60:where(.dark,.dark *,[data-theme=dark],[data-theme=dark] *,[data-theme=dark-pro],[data-theme=dark-pro] *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:where(.dark,.dark *,[data-theme=dark],[data-theme=dark] *,[data-theme=dark-pro],[data-theme=dark-pro] *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\:bg-input\/30:where(.dark,.dark *,[data-theme=dark],[data-theme=dark] *,[data-theme=dark-pro],[data-theme=dark-pro] *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:where(.dark,.dark *,[data-theme=dark],[data-theme=dark] *,[data-theme=dark-pro],[data-theme=dark-pro] *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}@media(hover:hover){.dark\:hover\:bg-accent\/50:where(.dark,.dark *,[data-theme=dark],[data-theme=dark] *,[data-theme=dark-pro],[data-theme=dark-pro] *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:where(.dark,.dark *,[data-theme=dark],[data-theme=dark] *,[data-theme=dark-pro],[data-theme=dark-pro] *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\:hover\:bg-input\/50:where(.dark,.dark *,[data-theme=dark],[data-theme=dark] *,[data-theme=dark-pro],[data-theme=dark-pro] *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:where(.dark,.dark *,[data-theme=dark],[data-theme=dark] *,[data-theme=dark-pro],[data-theme=dark-pro] *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.dark\:hover\:text-accent-foreground:where(.dark,.dark *,[data-theme=dark],[data-theme=dark] *,[data-theme=dark-pro],[data-theme=dark-pro] *):hover{color:var(--accent-foreground)}}.dark\:focus-visible\:ring-destructive\/40:where(.dark,.dark *,[data-theme=dark],[data-theme=dark] *,[data-theme=dark-pro],[data-theme=dark-pro] *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:where(.dark,.dark *,[data-theme=dark],[data-theme=dark] *,[data-theme=dark-pro],[data-theme=dark-pro] *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:where(.dark,.dark *,[data-theme=dark],[data-theme=dark] *,[data-theme=dark-pro],[data-theme=dark-pro] *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:where(.dark,.dark *,[data-theme=dark],[data-theme=dark] *,[data-theme=dark-pro],[data-theme=dark-pro] *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-\[state\=checked\]\:bg-primary:where(.dark,.dark *,[data-theme=dark],[data-theme=dark] *,[data-theme=dark-pro],[data-theme=dark-pro] *)[data-state=checked]{background-color:var(--primary)}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:where(.dark,.dark *,[data-theme=dark],[data-theme=dark] *,[data-theme=dark-pro],[data-theme=dark-pro] *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:where(.dark,.dark *,[data-theme=dark],[data-theme=dark] *,[data-theme=dark-pro],[data-theme=dark-pro] *)[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\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing)*6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing)*6)}:is(.rtl\:\*\*\:\[\.rdp-button\\_next\>svg\]\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *) *):is(.rdp-button_next>svg),:is(.rtl\:\*\*\:\[\.rdp-button\\_previous\>svg\]\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *) *):is(.rdp-button_previous>svg){rotate:180deg}: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)!important}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\]\:text-xs>span{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>span\:last-child\]\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>svg\]\:text-current>svg{color:currentColor}.\[\&\>svg\]\:text-muted-foreground>svg{color:var(--muted-foreground)}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:var(--sidebar-accent-foreground)}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{rotate:180deg}[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}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:#0000}@media(hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,var(--secondary)90%,transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}[data-sonner-toaster]{font-family:inherit}[data-sonner-toast]{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--background)!important}@supports (color:color-mix(in lab,red,red)){[data-sonner-toast]{background:color-mix(in oklch,var(--background)95%,transparent 5%)!important}}[data-sonner-toast]{border-radius:var(--radius-md);box-shadow:0 0 0 1px var(--border),0 4px 12px #0003,0 8px 24px #0000001a}@supports (color:color-mix(in lab,red,red)){[data-sonner-toast]{box-shadow:0 0 0 1px color-mix(in oklch,var(--border)40%,transparent 60%),0 4px 12px #0003,0 8px 24px #0000001a}}[data-sonner-toast]{transition:all .2s}[data-sonner-toast]:hover{box-shadow:0 0 0 1px var(--border),0 8px 20px #00000040,0 12px 32px #00000026}@supports (color:color-mix(in lab,red,red)){[data-sonner-toast]:hover{box-shadow:0 0 0 1px color-mix(in oklch,var(--border)60%,transparent 40%),0 8px 20px #00000040,0 12px 32px #00000026}}[data-sonner-toast]:hover{transform:translateY(-2px)}[data-sonner-toast][data-type=success]{background:var(--primary)!important}@supports (color:color-mix(in lab,red,red)){[data-sonner-toast][data-type=success]{background:color-mix(in oklch,var(--primary)8%,var(--background)92%)!important}}[data-sonner-toast][data-type=success]{border:1px solid var(--primary)!important}@supports (color:color-mix(in lab,red,red)){[data-sonner-toast][data-type=success]{border:1px solid color-mix(in oklch,var(--primary)30%,transparent 70%)!important}}[data-sonner-toast][data-type=success]{color:var(--primary)!important}[data-sonner-toast][data-type=success] [data-icon]{color:var(--primary)}[data-sonner-toast][data-type=error]{background:var(--destructive)!important}@supports (color:color-mix(in lab,red,red)){[data-sonner-toast][data-type=error]{background:color-mix(in oklch,var(--destructive)8%,var(--background)92%)!important}}[data-sonner-toast][data-type=error]{border:1px solid var(--destructive)!important}@supports (color:color-mix(in lab,red,red)){[data-sonner-toast][data-type=error]{border:1px solid color-mix(in oklch,var(--destructive)30%,transparent 70%)!important}}[data-sonner-toast][data-type=error]{color:var(--destructive)!important}[data-sonner-toast][data-type=error] [data-icon]{color:var(--destructive)}[data-sonner-toast][data-type=warning]{background:#e49e22!important}@supports (color:color-mix(in lab,red,red)){[data-sonner-toast][data-type=warning]{background:color-mix(in oklch,oklch(75% .15 75) 8%,var(--background)92%)!important}}[data-sonner-toast][data-type=warning]{color:#e49e22!important;border:1px solid oklch(75% .15 75/.3)!important}[data-sonner-toast][data-type=info]{background:#0099e0!important;background:oklch(65% .15 240)!important}@supports (color:color-mix(in lab,red,red)){[data-sonner-toast][data-type=info]{background:color-mix(in oklch,oklch(65% .15 240) 8%,var(--background)92%)!important}}[data-sonner-toast][data-type=info]{color:#0099e0!important;color:oklch(65% .15 240)!important;border:1px solid oklch(65% .15 240/.3)!important}[data-sonner-toast] [data-button]{border-radius:calc(var(--radius-md) - 2px);padding:.375rem .75rem;font-weight:500;transition:all .15s;background:var(--primary)!important;color:var(--primary-foreground)!important}[data-sonner-toast] [data-button]:hover{background:var(--primary)!important}@supports (color:color-mix(in lab,red,red)){[data-sonner-toast] [data-button]:hover{background:color-mix(in oklch,var(--primary)85%,oklch(0% 0 0) 15%)!important}}[data-sonner-toast] [data-button]:hover{transform:translateY(-1px)}[data-sonner-toast] [data-cancel]{background:var(--muted)!important}@supports (color:color-mix(in lab,red,red)){[data-sonner-toast] [data-cancel]{background:color-mix(in oklch,var(--muted)50%,transparent 50%)!important}}[data-sonner-toast] [data-cancel]{color:var(--muted-foreground)!important}[data-sonner-toast] [data-close-button]{background:var(--foreground)!important}@supports (color:color-mix(in lab,red,red)){[data-sonner-toast] [data-close-button]{background:color-mix(in oklch,var(--foreground)10%,transparent 90%)!important}}[data-sonner-toast] [data-close-button]{border:1px solid var(--border)!important}@supports (color:color-mix(in lab,red,red)){[data-sonner-toast] [data-close-button]{border:1px solid color-mix(in oklch,var(--border)40%,transparent 60%)!important}}[data-sonner-toast] [data-close-button]{transition:all .15s}[data-sonner-toast] [data-close-button]:hover{background:var(--foreground)!important}@supports (color:color-mix(in lab,red,red)){[data-sonner-toast] [data-close-button]:hover{background:color-mix(in oklch,var(--foreground)20%,transparent 80%)!important}}[data-sonner-toast] [data-close-button]:hover{border-color:var(--border)!important}:root{color-scheme:dark;--radius:.625rem;--background:oklch(18% .015 265);--foreground:oklch(92% .02 265);--card:oklch(24% .01 265);--card-foreground:oklch(92% .02 265);--popover:oklch(30% .015 265);--popover-foreground:oklch(95% .02 265);--primary:oklch(78% .18 84);--primary-foreground:oklch(22% .02 265);--secondary:oklch(28% .01 265);--secondary-foreground:oklch(90% .015 265);--muted:oklch(32% .009 265);--muted-foreground:oklch(65% .018 265);--accent:oklch(36% .015 265);--accent-foreground:oklch(95% .02 265);--data-accent:oklch(75% .13 210);--destructive:oklch(56% .25 26);--destructive-foreground:oklch(95% .02 265);--border:oklch(38% .015 265);--input:oklch(95% .005 265);--ring:oklch(78% .15 90);--chart-1:var(--data-accent);--chart-2:oklch(72% .12 230);--chart-3:oklch(70% .12 200);--chart-4:oklch(76% .1 220);--chart-5:oklch(68% .1 240);--sidebar:oklch(24% .01 265);--sidebar-foreground:oklch(90% .02 265);--sidebar-primary:var(--primary);--sidebar-primary-foreground:var(--primary-foreground);--sidebar-accent:oklch(32% .015 265);--sidebar-accent-foreground:oklch(95% .02 265);--sidebar-border:oklch(32% .01 265);--sidebar-ring:var(--ring)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-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:""}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto)))))}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto)))))}to{height:0}}
|