commit 9af1af7f922530a35b2852e63a5aa8997cab2139 Author: Krzysztof Date: Fri Aug 1 18:01:55 2025 +0200 initial commit diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml new file mode 100644 index 0000000..aa1a8b8 --- /dev/null +++ b/.github/workflows/go.yml @@ -0,0 +1,30 @@ +name: Go + +on: + push + +jobs: + build: + permissions: + contents: write + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: '1.24' + + - name: Build + run: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o uptimemonitor ./cmd/uptimemonitor + + - name: Release + uses: softprops/action-gh-release@v2 + if: github.ref_type == 'tag' + with: + files: + uptimemonitor + + - name: Test + run: go run gotest.tools/gotestsum@latest --format testdox -- ./test \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..07c3130 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.sqlite +*.sqlite-shm +*.sqlite-wal +tmp/ \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ff73189 --- /dev/null +++ b/Makefile @@ -0,0 +1,17 @@ +.PHONY: watch +watch: + go tool air \ + -build.cmd="make build" \ + -build.include_ext="go,sql,css,html,js" \ + -build.full_bin="./tmp/main -secure=false" \ + -proxy.enabled="true" \ + -proxy.proxy_port="3001" \ + -proxy.app_port="3000" + +.PHONY: build +build: + go build -o ./tmp/main ./cmd/uptimemonitor + +.PHONY: test +test: + go run gotest.tools/gotestsum@latest --format testdox -- ./test \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..d509db1 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# UPTIME MONITOR + +[![Go](https://github.com/airlabspl/uptimemonitor/actions/workflows/go.yml/badge.svg)](https://github.com/airlabspl/uptimemonitor/actions/workflows/go.yml) + +[uptimemonitor.dev](https://uptimemonitor.dev) + +© 2025 AIR Labs diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..430b958 --- /dev/null +++ b/TODO.md @@ -0,0 +1,29 @@ +# TODO + +What's left to do: + +- [ ] Add sponsors badges (sponsors.uptimemonitor.dev api) +- [ ] Add documentation +- [ ] Document how to install +- [ ] Document webhook parsing and available variables +- [ ] Get app version from git tag + +Optional: + +- [ ] Monitor status +- [ ] Change password +- [ ] Add users +- [ ] Remove users +- [ ] Change user passwords +- [ ] Timezones +- [ ] Reset password via cli +- [ ] Use the same form for creation and editing of monitor +- [ ] Save check response +- [ ] Add check response modal (div#modals + append when clicked + destroy when + clicked) +- [ ] Mobile breadcrumbs (dropdown/select) +- [ ] Add "Test Webhook" button with fake incident +- [ ] Sort monitors option (with localstorage sync) by created_at/name(domain) +- [ ] Session expiration +- [ ] Test check timeout +- [ ] Loading placeholders (skeletons) diff --git a/check.go b/check.go new file mode 100644 index 0000000..8a83838 --- /dev/null +++ b/check.go @@ -0,0 +1,76 @@ +package uptimemonitor + +import ( + "net/http" + "time" +) + +type Check struct { + ID int64 + Uuid string + MonitorID int64 + StatusCode int + ResponseTimeMs int64 + CreatedAt time.Time + + Monitor Monitor +} + +func (c Check) ColorClass() string { + if c.StatusCode >= 200 && c.StatusCode < 300 { + return "bg-lime-300" + } else if c.StatusCode >= 300 && c.StatusCode < 400 { + return "bg-yellow-300" + } else if c.StatusCode >= 400 && c.StatusCode < 500 { + return "bg-orange-300" + } else if c.StatusCode >= 500 { + return "bg-red-400" + } else { + return "bg-neutral-300" + } +} + +func (c Check) HeightClass(maxTime int64) string { + height := int64(c.ResponseTimeMs) * 100 / maxTime + if height < 10 { + return "h-[10%]" + } else if height < 20 { + return "h-[20%]" + } else if height < 30 { + return "h-[30%]" + } else if height < 40 { + return "h-[40%]" + } else if height < 50 { + return "h-[50%]" + } else if height < 60 { + return "h-[60%]" + } else if height < 70 { + return "h-[70%]" + } else if height < 80 { + return "h-[80%]" + } else if height < 90 { + return "h-[90%]" + } else if height < 100 { + return "h-full" + } else { + return "h-full" + } +} + +func (c Check) BadgeClass() string { + if c.StatusCode >= 200 && c.StatusCode < 300 { + return "badge-success" + } else if c.StatusCode >= 300 && c.StatusCode < 400 { + return "badge-warning" + } else if c.StatusCode >= 400 && c.StatusCode < 500 { + return "badge-accent" + } else if c.StatusCode >= 500 { + return "badge-error" + } else { + return "badge-neutral" + } +} + +func (c Check) StatusText() string { + return http.StatusText(c.StatusCode) +} diff --git a/cmd/uptimemonitor/main.go b/cmd/uptimemonitor/main.go new file mode 100644 index 0000000..3f9cab6 --- /dev/null +++ b/cmd/uptimemonitor/main.go @@ -0,0 +1,77 @@ +package main + +import ( + "context" + "flag" + "fmt" + "log/slog" + "net/http" + "os" + "os/signal" + "syscall" + "time" + "uptimemonitor/handler" + "uptimemonitor/router" + "uptimemonitor/service" + "uptimemonitor/store" +) + +var ( + dsn string + addr string + secure bool +) + +func main() { + flag.StringVar(&dsn, "dsn", "uptimemonitor.sqlite?_journal_mode=WAL&_busy_timeout=5000&_synchronous=FULL&_txlock=immediate", "database server name") + flag.StringVar(&addr, "addr", ":3000", "server address") + flag.BoolVar(&secure, "secure", true, "use https") + + flag.Parse() + + store := store.New(dsn) + service := service.New(store) + handler := handler.New(store, service, secure) + router := router.New(handler, func(r *http.ServeMux) {}) + + server := &http.Server{ + Addr: addr, + Handler: router, + } + + done := make(chan bool) + ticker := time.NewTicker(time.Second * 60) + + go func() { + slog.Info(fmt.Sprintf("http://localhost%s", addr), "secure", secure) + + server.ListenAndServe() + }() + + checkCh := service.StartCheck() + + go func() { + service.RunCheck(context.Background(), checkCh) + }() + + // todo: move to service + go func() { + for { + select { + case <-done: + return + case <-ticker.C: + service.RunCheck(context.Background(), checkCh) + } + } + }() + + quit := make(chan os.Signal, 1) + signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM) + + <-quit + + time.Sleep(3 * time.Second) + + done <- true +} diff --git a/form/login_form.go b/form/login_form.go new file mode 100644 index 0000000..195593f --- /dev/null +++ b/form/login_form.go @@ -0,0 +1,30 @@ +package form + +import "net/mail" + +type LoginForm struct { + Email string + Password string + + Errors map[string]string +} + +func (f *LoginForm) Validate() bool { + f.Errors = map[string]string{} + + if f.Email == "" { + f.Errors["Email"] = "The email is required" + } + + if f.Email == "" { + f.Errors["Email"] = "The email is required" + } else if _, err := mail.ParseAddress(f.Email); err != nil { + f.Errors["Email"] = "The email format is invalid" + } + + if f.Password == "" { + f.Errors["Password"] = "The password is required" + } + + return len(f.Errors) == 0 +} diff --git a/form/monitor_form.go b/form/monitor_form.go new file mode 100644 index 0000000..baaf567 --- /dev/null +++ b/form/monitor_form.go @@ -0,0 +1,69 @@ +package form + +import ( + "encoding/json" + "net/http" + "net/url" + "slices" +) + +type MonitorForm struct { + Url string + HttpMethod string + HasCustomHeaders bool + HttpHeaders string + HasCustomBody bool + HttpBody string + HasWebhook bool + WebhookMethod string + WebhookUrl string + WebhookBody string + WebhookHeaders string + + Errors map[string]string +} + +func (f *MonitorForm) Validate() bool { + f.Errors = map[string]string{} + + if f.Url == "" { + f.Errors["Url"] = "The url is required" + } else if _, err := url.ParseRequestURI(f.Url); err != nil { + f.Errors["Url"] = "The url is invalid" + } + + methods := []string{ + http.MethodGet, http.MethodPost, http.MethodPut, + http.MethodPatch, http.MethodDelete, + } + + if !slices.Contains(methods, f.HttpMethod) { + f.Errors["HttpMethod"] = "The http method is invalid" + } + + if f.HasCustomHeaders { + headers := map[string]any{} + err := json.Unmarshal([]byte(f.HttpHeaders), &headers) + + if err != nil { + f.Errors["HttpHeaders"] = "The http headers should be a valid JSON" + } + } + + if f.HasWebhook { + if f.WebhookUrl == "" { + f.Errors["WebhookUrl"] = "The webhook url is required" + } else if _, err := url.ParseRequestURI(f.WebhookUrl); err != nil { + f.Errors["WebhookUrl"] = "The webhook url is invalid" + } + + headers := map[string]any{} + err := json.Unmarshal([]byte(f.WebhookHeaders), &headers) + + if err != nil { + f.Errors["WebhookHeaders"] = "The webhook headers should be a valid JSON" + } + } + + return len(f.Errors) == 0 +} diff --git a/form/setup_form.go b/form/setup_form.go new file mode 100644 index 0000000..48839f7 --- /dev/null +++ b/form/setup_form.go @@ -0,0 +1,31 @@ +package form + +import "net/mail" + +type SetupForm struct { + Name string + Email string + Password string + + Errors map[string]string +} + +func (f *SetupForm) Validate() bool { + f.Errors = map[string]string{} + + if f.Name == "" { + f.Errors["Name"] = "The name is required" + } + + if f.Email == "" { + f.Errors["Email"] = "The email is required" + } else if _, err := mail.ParseAddress(f.Email); err != nil { + f.Errors["Email"] = "The email format is invalid" + } + + if f.Password == "" { + f.Errors["Password"] = "The password is required" + } + + return len(f.Errors) == 0 +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..64b893f --- /dev/null +++ b/go.mod @@ -0,0 +1,90 @@ +module uptimemonitor + +go 1.24.4 + +require ( + github.com/PuerkitoBio/goquery v1.10.3 + github.com/google/uuid v1.6.0 + github.com/pressly/goose/v3 v3.24.3 + golang.org/x/crypto v0.38.0 + modernc.org/sqlite v1.38.0 +) + +require ( + dario.cat/mergo v1.0.2 // indirect + filippo.io/edwards25519 v1.1.0 // indirect + github.com/ClickHouse/ch-go v0.65.1 // indirect + github.com/ClickHouse/clickhouse-go/v2 v2.34.0 // indirect + github.com/air-verse/air v1.62.0 // indirect + github.com/andybalholm/brotli v1.1.1 // indirect + github.com/andybalholm/cascadia v1.3.3 // indirect + github.com/antlr4-go/antlr/v4 v4.13.1 // indirect + github.com/bep/godartsass/v2 v2.5.0 // indirect + github.com/bep/golibsass v1.2.0 // indirect + github.com/coder/websocket v1.8.13 // indirect + github.com/creack/pty v1.1.24 // indirect + github.com/dustin/go-humanize v1.0.1 // indirect + github.com/elastic/go-sysinfo v1.15.3 // indirect + github.com/elastic/go-windows v1.0.2 // indirect + github.com/fatih/color v1.18.0 // indirect + github.com/fsnotify/fsnotify v1.9.0 // indirect + github.com/go-faster/city v1.0.1 // indirect + github.com/go-faster/errors v0.7.1 // indirect + github.com/go-sql-driver/mysql v1.9.2 // indirect + github.com/gobwas/glob v0.2.3 // indirect + github.com/gohugoio/hugo v0.147.6 // indirect + github.com/golang-jwt/jwt/v4 v4.5.2 // indirect + github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect + github.com/golang-sql/sqlexp v0.1.0 // indirect + github.com/jackc/pgpassfile v1.0.0 // indirect + github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect + github.com/jackc/pgx/v5 v5.7.4 // indirect + github.com/jackc/puddle/v2 v2.2.2 // indirect + github.com/joho/godotenv v1.5.1 // indirect + github.com/jonboulle/clockwork v0.5.0 // indirect + github.com/klauspost/compress v1.18.0 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mfridman/interpolate v0.0.2 // indirect + github.com/mfridman/xflag v0.1.0 // indirect + github.com/microsoft/go-mssqldb v1.8.0 // indirect + github.com/ncruces/go-strftime v0.1.9 // indirect + github.com/paulmach/orb v0.11.1 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pelletier/go-toml/v2 v2.2.4 // indirect + github.com/pierrec/lz4/v4 v4.1.22 // indirect + github.com/prometheus/procfs v0.16.1 // indirect + github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect + github.com/segmentio/asm v1.2.0 // indirect + github.com/sethvargo/go-retry v0.3.0 // indirect + github.com/shopspring/decimal v1.4.0 // indirect + github.com/spf13/afero v1.14.0 // indirect + github.com/spf13/cast v1.8.0 // indirect + github.com/tdewolff/parse/v2 v2.8.1 // indirect + github.com/tursodatabase/libsql-client-go v0.0.0-20240902231107-85af5b9d094d // indirect + github.com/vertica/vertica-sql-go v1.3.3 // indirect + github.com/ydb-platform/ydb-go-genproto v0.0.0-20241112172322-ea1f63298f77 // indirect + github.com/ydb-platform/ydb-go-sdk/v3 v3.108.1 // indirect + github.com/ziutek/mymysql v1.5.4 // indirect + go.opentelemetry.io/otel v1.35.0 // indirect + go.opentelemetry.io/otel/trace v1.35.0 // indirect + go.uber.org/multierr v1.11.0 // indirect + golang.org/x/exp v0.0.0-20250531010427-b6e5de432a8b // indirect + golang.org/x/net v0.40.0 // indirect + golang.org/x/sync v0.14.0 // indirect + golang.org/x/sys v0.33.0 // indirect + golang.org/x/text v0.25.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 // indirect + google.golang.org/grpc v1.71.0 // indirect + google.golang.org/protobuf v1.36.6 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + howett.net/plist v1.0.1 // indirect + modernc.org/libc v1.65.10 // indirect + modernc.org/mathutil v1.7.1 // indirect + modernc.org/memory v1.11.0 // indirect +) + +tool ( + github.com/air-verse/air + github.com/pressly/goose/v3/cmd/goose +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..cf0b5bb --- /dev/null +++ b/go.sum @@ -0,0 +1,456 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8= +dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA= +filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= +filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 h1:E+OJmp2tPvt1W+amx48v1eqbjDYsgN+RzP4q16yV5eM= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1/go.mod h1:a6xsAQUZg+VsS3TJ05SRp524Hs4pZ/AeFSr5ENf0Yjo= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.6.0 h1:U2rTu3Ef+7w9FHKIAXM6ZyqF3UOWJZ12zIm8zECAFfg= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.6.0/go.mod h1:9kIvujWAA58nmPmWB1m23fyWic1kYZMxD9CxaWn4Qpg= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0 h1:jBQA3cKT4L2rWMpgE7Yt3Hwh2aUj8KXjIGLxjHeYNNo= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0/go.mod h1:4OG6tQ9EOP/MT0NMjDlRzWoVFxfu9rN9B2X+tlSVktg= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.1 h1:MyVTgWR8qd/Jw1Le0NZebGBUCLbtak3bJ3z1OlqZBpw= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.1/go.mod h1:GpPjLhVR9dnUoJMyHWSPy71xY9/lcmpzIPZXmF0FCVY= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0 h1:D3occbWoio4EBLkbkevetNMAVX197GkzbUMtqjGWn80= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0/go.mod h1:bTSOgj05NGRuHHhQwAdPnYr9TOdNmKlZTgGLL6nyAdI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/ClickHouse/ch-go v0.65.1 h1:SLuxmLl5Mjj44/XbINsK2HFvzqup0s6rwKLFH347ZhU= +github.com/ClickHouse/ch-go v0.65.1/go.mod h1:bsodgURwmrkvkBe5jw1qnGDgyITsYErfONKAHn05nv4= +github.com/ClickHouse/clickhouse-go/v2 v2.34.0 h1:Y4rqkdrRHgExvC4o/NTbLdY5LFQ3LHS77/RNFxFX3Co= +github.com/ClickHouse/clickhouse-go/v2 v2.34.0/go.mod h1:yioSINoRLVZkLyDzdMXPLRIqhDvel8iLBlwh6Iefso8= +github.com/PuerkitoBio/goquery v1.10.3 h1:pFYcNSqHxBD06Fpj/KsbStFRsgRATgnf3LeXiUkhzPo= +github.com/PuerkitoBio/goquery v1.10.3/go.mod h1:tMUX0zDMHXYlAQk6p35XxQMqMweEKB7iK7iLNd4RH4Y= +github.com/air-verse/air v1.62.0 h1:6CoXL4MAX9dc4xAzLfjMcDfbBoGmW5VjuuTV/1+bI+M= +github.com/air-verse/air v1.62.0/go.mod h1:EO+jWuetL10tS9raffwg8WEV0t0KUeucRRaf9ii86dA= +github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= +github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= +github.com/andybalholm/cascadia v1.3.3 h1:AG2YHrzJIm4BZ19iwJ/DAua6Btl3IwJX+VI4kktS1LM= +github.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/antlr4-go/antlr/v4 v4.13.1 h1:SqQKkuVZ+zWkMMNkjy5FZe5mr5WURWnlpmOuzYWrPrQ= +github.com/antlr4-go/antlr/v4 v4.13.1/go.mod h1:GKmUxMtwp6ZgGwZSva4eWPC5mS6vUAmOABFgjdkM7Nw= +github.com/bep/godartsass/v2 v2.5.0 h1:tKRvwVdyjCIr48qgtLa4gHEdtRkPF8H1OeEhJAEv7xg= +github.com/bep/godartsass/v2 v2.5.0/go.mod h1:rjsi1YSXAl/UbsGL85RLDEjRKdIKUlMQHr6ChUNYOFU= +github.com/bep/golibsass v1.2.0 h1:nyZUkKP/0psr8nT6GR2cnmt99xS93Ji82ZD9AgOK6VI= +github.com/bep/golibsass v1.2.0/go.mod h1:DL87K8Un/+pWUS75ggYv41bliGiolxzDKWJAq3eJ1MA= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/coder/websocket v1.8.13 h1:f3QZdXy7uGVz+4uCJy2nTZyM0yTBj8yANEHhqlXZ9FE= +github.com/coder/websocket v1.8.13/go.mod h1:LNVeNrXQZfe5qhS9ALED3uA+l5pPqvwXg3CKoDBB2gs= +github.com/creack/pty v1.1.24 h1:bJrF4RRfyJnbTJqzRLHzcGaZK1NeM5kTC9jGgovnR1s= +github.com/creack/pty v1.1.24/go.mod h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/elastic/go-sysinfo v1.8.1/go.mod h1:JfllUnzoQV/JRYymbH3dO1yggI3mV2oTKSXsDHM+uIM= +github.com/elastic/go-sysinfo v1.15.3 h1:W+RnmhKFkqPTCRoFq2VCTmsT4p/fwpo+3gKNQsn1XU0= +github.com/elastic/go-sysinfo v1.15.3/go.mod h1:K/cNrqYTDrSoMh2oDkYEMS2+a72GRxMvNP+GC+vRIlo= +github.com/elastic/go-windows v1.0.0/go.mod h1:TsU0Nrp7/y3+VwE82FoZF8gC/XFg/Elz6CcloAxnPgU= +github.com/elastic/go-windows v1.0.2 h1:yoLLsAsV5cfg9FLhZ9EXZ2n2sQFKeDYrHenkcivY4vI= +github.com/elastic/go-windows v1.0.2/go.mod h1:bGcDpBzXgYSqM0Gx3DM4+UxFj300SZLixie9u9ixLM8= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= +github.com/frankban/quicktest v1.7.2/go.mod h1:jaStnuzAqU1AJdCO0l53JDCJrVDKcS03DbaAcR7Ks/o= +github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= +github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-faster/city v1.0.1 h1:4WAxSZ3V2Ws4QRDrscLEDcibJY8uf41H6AhXDrNDcGw= +github.com/go-faster/city v1.0.1/go.mod h1:jKcUJId49qdW3L1qKHH/3wPeUstCVpVSXTM6vO3VcTw= +github.com/go-faster/errors v0.7.1 h1:MkJTnDoEdi9pDabt1dpWf7AA8/BaSYZqibYyhZ20AYg= +github.com/go-faster/errors v0.7.1/go.mod h1:5ySTjWFiphBs07IKuiL69nxdfd5+fzh1u7FPGZP2quo= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-sql-driver/mysql v1.9.2 h1:4cNKDYQ1I84SXslGddlsrMhc8k4LeDVj6Ad6WRjiHuU= +github.com/go-sql-driver/mysql v1.9.2/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= +github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= +github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/gohugoio/hugo v0.147.6 h1:rL4rnus/5qzj4+FoA+JMzsVvFJ2YZdVIH6pbuCB2P84= +github.com/gohugoio/hugo v0.147.6/go.mod h1:Sb2COQPDPYG+tRSpePtzKytiuVDqkBivEhgIew1QbNo= +github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI= +github.com/golang-jwt/jwt/v4 v4.5.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= +github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= +github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= +github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= +github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs= +github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= +github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= +github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo= +github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= +github.com/jackc/pgx/v5 v5.7.4 h1:9wKznZrhWa2QiHL+NjTSPP6yjl3451BX3imWDnokYlg= +github.com/jackc/pgx/v5 v5.7.4/go.mod h1:ncY89UGWxg82EykZUwSpUKEfccBGGYq1xjrOpsbsfGQ= +github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo= +github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901/go.mod h1:Z86h9688Y0wesXCyonoVr47MasHilkuLMqGhRZ4Hpak= +github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= +github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= +github.com/jonboulle/clockwork v0.5.0 h1:Hyh9A8u51kptdkR+cqRpT1EebBwTn1oK9YfGYbdFz6I= +github.com/jonboulle/clockwork v0.5.0/go.mod h1:3mZlmanh0g2NDKO5TWZVJAfofYk64M7XN3SzBPjZF60= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= +github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mfridman/interpolate v0.0.2 h1:pnuTK7MQIxxFz1Gr+rjSIx9u7qVjf5VOoM/u6BbAxPY= +github.com/mfridman/interpolate v0.0.2/go.mod h1:p+7uk6oE07mpE/Ik1b8EckO0O4ZXiGAfshKBWLUM9Xg= +github.com/mfridman/xflag v0.1.0 h1:TWZrZwG1QklFX5S4j1vxfF1sZbZeZSGofMwPMLAF29M= +github.com/mfridman/xflag v0.1.0/go.mod h1:/483ywM5ZO5SuMVjrIGquYNE5CzLrj5Ux/LxWWnjRaE= +github.com/microsoft/go-mssqldb v1.8.0 h1:7cyZ/AT7ycDsEoWPIXibd+aVKFtteUNhDGf3aobP+tw= +github.com/microsoft/go-mssqldb v1.8.0/go.mod h1:6znkekS3T2vp0waiMhen4GPU1BiAsrP+iXHcE7a7rFo= +github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= +github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= +github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= +github.com/paulmach/orb v0.11.1 h1:3koVegMC4X/WeiXYz9iswopaTwMem53NzTJuTF20JzU= +github.com/paulmach/orb v0.11.1/go.mod h1:5mULz1xQfs3bmQm63QEJA6lNGujuRafwA5S/EnuLaLU= +github.com/paulmach/protoscan v0.2.1/go.mod h1:SpcSwydNLrxUGSDvXvO0P7g7AuhJ7lcKfDlhJCDw2gY= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= +github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= +github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU= +github.com/pierrec/lz4/v4 v4.1.22/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pressly/goose/v3 v3.24.3 h1:DSWWNwwggVUsYZ0X2VitiAa9sKuqtBfe+Jr9zFGwWlM= +github.com/pressly/goose/v3 v3.24.3/go.mod h1:v9zYL4xdViLHCUUJh/mhjnm6JrK7Eul8AS93IxiZM4E= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= +github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= +github.com/rekby/fixenv v0.6.1 h1:jUFiSPpajT4WY2cYuc++7Y1zWrnCxnovGCIX72PZniM= +github.com/rekby/fixenv v0.6.1/go.mod h1:/b5LRc06BYJtslRtHKxsPWFT/ySpHV+rWvzTg+XWk4c= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= +github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys= +github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= +github.com/sethvargo/go-retry v0.3.0 h1:EEt31A35QhrcRZtrYFDTBg91cqZVnFL2navjDrah2SE= +github.com/sethvargo/go-retry v0.3.0/go.mod h1:mNX17F0C/HguQMyMyJxcnU471gOZGxCLyYaFyAZraas= +github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= +github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= +github.com/spf13/afero v1.14.0 h1:9tH6MapGnn/j0eb0yIXiLjERO8RB6xIVZRDCX7PtqWA= +github.com/spf13/afero v1.14.0/go.mod h1:acJQ8t0ohCGuMN3O+Pv0V0hgMxNYDlvdk+VTfyZmbYo= +github.com/spf13/cast v1.8.0 h1:gEN9K4b8Xws4EX0+a0reLmhq8moKn7ntRlQYgjPeCDk= +github.com/spf13/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/tdewolff/parse/v2 v2.8.1 h1:J5GSHru6o3jF1uLlEKVXkDxxcVx6yzOlIVIotK4w2po= +github.com/tdewolff/parse/v2 v2.8.1/go.mod h1:Hwlni2tiVNKyzR1o6nUs4FOF07URA+JLBLd6dlIXYqo= +github.com/tdewolff/test v1.0.11/go.mod h1:XPuWBzvdUzhCuxWO1ojpXsyzsA5bFoS3tO/Q3kFuTG8= +github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/tursodatabase/libsql-client-go v0.0.0-20240902231107-85af5b9d094d h1:dOMI4+zEbDI37KGb0TI44GUAwxHF9cMsIoDTJ7UmgfU= +github.com/tursodatabase/libsql-client-go v0.0.0-20240902231107-85af5b9d094d/go.mod h1:l8xTsYB90uaVdMHXMCxKKLSgw5wLYBwBKKefNIUnm9s= +github.com/vertica/vertica-sql-go v1.3.3 h1:fL+FKEAEy5ONmsvya2WH5T8bhkvY27y/Ik3ReR2T+Qw= +github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= +github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= +github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= +github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= +github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= +github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= +github.com/ydb-platform/ydb-go-genproto v0.0.0-20241112172322-ea1f63298f77 h1:LY6cI8cP4B9rrpTleZk95+08kl2gF4rixG7+V/dwL6Q= +github.com/ydb-platform/ydb-go-genproto v0.0.0-20241112172322-ea1f63298f77/go.mod h1:Er+FePu1dNUieD+XTMDduGpQuCPssK5Q4BjF+IIXJ3I= +github.com/ydb-platform/ydb-go-sdk/v3 v3.108.1 h1:ixAiqjj2S/dNuJqrz4AxSqgw2P5OBMXp68hB5nNriUk= +github.com/ydb-platform/ydb-go-sdk/v3 v3.108.1/go.mod h1:l5sSv153E18VvYcsmr51hok9Sjc16tEC8AXGbwrk+ho= +github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/ziutek/mymysql v1.5.4 h1:GB0qdRGsTwQSBVYuVShFBKaXSnSnYYC2d9knnE1LHFs= +github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= +go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= +go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= +go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= +go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= +go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= +go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= +go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= +go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= +go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= +go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU= +go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= +golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 h1:y5zboxd6LQAqYIhHnB48p0ByQ/GnQx2BE33L8BOHQkI= +golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6/go.mod h1:U6Lno4MTRCDY+Ba7aCcauB9T60gsv5s4ralQzP72ZoQ= +golang.org/x/exp v0.0.0-20250531010427-b6e5de432a8b h1:QoALfVG9rhQ/M7vYDScfPdWjGL9dlsVVM5VGh7aKoAA= +golang.org/x/exp v0.0.0-20250531010427-b6e5de432a8b/go.mod h1:U6Lno4MTRCDY+Ba7aCcauB9T60gsv5s4ralQzP72ZoQ= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= +golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= +golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= +golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= +golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= +golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= +golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 h1:e0AIkUUhxyBKh6ssZNrAMeqhA7RKUj42346d1y02i2g= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg= +google.golang.org/grpc v1.71.0/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa3CI79GS0ol3YnhVnKP89i0kNg= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0= +howett.net/plist v1.0.1 h1:37GdZ8tP09Q35o9ych3ehygcsL+HqKSwzctveSlarvM= +howett.net/plist v1.0.1/go.mod h1:lqaXoTrLY4hg8tnEzNru53gicrbv7rrk+2xJA/7hw9g= +modernc.org/cc/v4 v4.26.1 h1:+X5NtzVBn0KgsBCBe+xkDC7twLb/jNVj9FPgiwSQO3s= +modernc.org/cc/v4 v4.26.1/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0= +modernc.org/ccgo/v4 v4.28.0 h1:rjznn6WWehKq7dG4JtLRKxb52Ecv8OUGah8+Z/SfpNU= +modernc.org/ccgo/v4 v4.28.0/go.mod h1:JygV3+9AV6SmPhDasu4JgquwU81XAKLd3OKTUDNOiKE= +modernc.org/fileutil v1.3.3 h1:3qaU+7f7xxTUmvU1pJTZiDLAIoJVdUSSauJNHg9yXoA= +modernc.org/fileutil v1.3.3/go.mod h1:HxmghZSZVAz/LXcMNwZPA/DRrQZEVP9VX0V4LQGQFOc= +modernc.org/gc/v2 v2.6.5 h1:nyqdV8q46KvTpZlsw66kWqwXRHdjIlJOhG6kxiV/9xI= +modernc.org/gc/v2 v2.6.5/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito= +modernc.org/libc v1.65.10 h1:ZwEk8+jhW7qBjHIT+wd0d9VjitRyQef9BnzlzGwMODc= +modernc.org/libc v1.65.10/go.mod h1:StFvYpx7i/mXtBAfVOjaU0PWZOvIRoZSgXhrwXzr8Po= +modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU= +modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg= +modernc.org/memory v1.11.0 h1:o4QC8aMQzmcwCK3t3Ux/ZHmwFPzE6hf2Y5LbkRs+hbI= +modernc.org/memory v1.11.0/go.mod h1:/JP4VbVC+K5sU2wZi9bHoq2MAkCnrt2r98UGeSK7Mjw= +modernc.org/opt v0.1.4 h1:2kNGMRiUjrp4LcaPuLY2PzUfqM/w9N23quVwhKt5Qm8= +modernc.org/opt v0.1.4/go.mod h1:03fq9lsNfvkYSfxrfUhZCWPk1lm4cq4N+Bh//bEtgns= +modernc.org/sortutil v1.2.1 h1:+xyoGf15mM3NMlPDnFqrteY07klSFxLElE2PVuWIJ7w= +modernc.org/sortutil v1.2.1/go.mod h1:7ZI3a3REbai7gzCLcotuw9AC4VZVpYMjDzETGsSMqJE= +modernc.org/sqlite v1.38.0 h1:+4OrfPQ8pxHKuWG4md1JpR/EYAh3Md7TdejuuzE7EUI= +modernc.org/sqlite v1.38.0/go.mod h1:1Bj+yES4SVvBZ4cBOpVZ6QgesMCKpJZDq0nxYzOpmNE= +modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0= +modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A= +modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= +modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= diff --git a/handler/check_handler.go b/handler/check_handler.go new file mode 100644 index 0000000..d013814 --- /dev/null +++ b/handler/check_handler.go @@ -0,0 +1,69 @@ +package handler + +import ( + "fmt" + "html/template" + "net/http" + "strconv" + "time" + "uptimemonitor" + "uptimemonitor/html" +) + +func (h *Handler) ListChecks() http.HandlerFunc { + tmpl := template.Must(template.New("check.html").Funcs(template.FuncMap{ + "sub": func(a, b int) int { + return a - b + }, + }).ParseFS(html.FS, "check.html")) + + type data struct { + Monitor uptimemonitor.Monitor + Checks []uptimemonitor.Check + Skeletons []int + MaxTime int64 + StartTime string + EndTime string + } + + return func(w http.ResponseWriter, r *http.Request) { + monitorID, err := strconv.Atoi(r.PathValue("monitor")) + if err != nil { + http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) + return + } + + monitor, err := h.Store.GetMonitorByID(r.Context(), monitorID) + if err != nil || monitor.ID == 0 { + http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound) + return + } + + checks, err := h.Store.ListChecks(r.Context(), int64(monitorID), 60) + if err != nil { + http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) + return + } + + maxTime := int64(0) + for _, check := range checks { + if check.ResponseTimeMs > maxTime { + maxTime = check.ResponseTimeMs + } + } + + err = tmpl.ExecuteTemplate(w, "check_list", data{ + Monitor: monitor, + Checks: checks, + Skeletons: make([]int, 60), + MaxTime: maxTime, + StartTime: time.Now().Add(-1 * time.Hour).Format("15:04"), + EndTime: time.Now().Format("15:04"), + }) + + if err != nil { + http.Error(w, fmt.Sprintf("%v", err), http.StatusInternalServerError) + return + } + } +} diff --git a/handler/handler.go b/handler/handler.go new file mode 100644 index 0000000..af644d7 --- /dev/null +++ b/handler/handler.go @@ -0,0 +1,29 @@ +package handler + +import ( + "net/http" + "uptimemonitor" + "uptimemonitor/service" + "uptimemonitor/store" +) + +type Handler struct { + Store *store.Store + Secure bool +} + +func New(store *store.Store, service *service.Service, secure bool) *Handler { + return &Handler{ + Store: store, + Secure: secure, + } +} + +func getUserFromRequest(r *http.Request) uptimemonitor.User { + user, ok := r.Context().Value(userContextKey).(uptimemonitor.User) + if !ok { + return uptimemonitor.User{} + } + + return user +} diff --git a/handler/home_handler.go b/handler/home_handler.go new file mode 100644 index 0000000..52b034b --- /dev/null +++ b/handler/home_handler.go @@ -0,0 +1,28 @@ +package handler + +import ( + "html/template" + "net/http" + "uptimemonitor" + "uptimemonitor/html" +) + +func (h *Handler) HomePage() http.HandlerFunc { + tmpl := template.Must(template.ParseFS(html.FS, "layout.html", "app.html", "home.html")) + + type data struct { + User uptimemonitor.User + } + + return func(w http.ResponseWriter, r *http.Request) { + count := h.Store.CountMonitors(r.Context()) + if count == 0 { + http.Redirect(w, r, "/new", http.StatusSeeOther) + return + } + + tmpl.Execute(w, data{ + User: getUserFromRequest(r), + }) + } +} diff --git a/handler/incident_handler.go b/handler/incident_handler.go new file mode 100644 index 0000000..ed9062b --- /dev/null +++ b/handler/incident_handler.go @@ -0,0 +1,80 @@ +package handler + +import ( + "fmt" + "html/template" + "net/http" + "strconv" + "uptimemonitor" + "uptimemonitor/html" +) + +func (h *Handler) ListIncidents() http.HandlerFunc { + tmpl := template.Must(template.ParseFS(html.FS, "incident.html")) + + type data struct { + Incidents []uptimemonitor.Incident + } + + return func(w http.ResponseWriter, r *http.Request) { + incidents, err := h.Store.ListOpenIncidents(r.Context()) + if err != nil { + http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) + return + } + + tmpl.ExecuteTemplate(w, "incident_list", data{ + Incidents: incidents, + }) + } +} + +func (h *Handler) DeleteIncident() http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + id, err := strconv.Atoi(r.PathValue("incident")) + if err != nil { + http.Error(w, http.StatusText(http.StatusBadRequest), http.StatusBadRequest) + return + } + + i, err := h.Store.GetIncidentByID(r.Context(), int64(id)) + if err != nil { + http.Error(w, http.StatusText(http.StatusBadRequest), http.StatusBadRequest) + return + } + + h.Store.DeleteIncident(r.Context(), int64(id)) + + w.Header().Set("HX-Redirect", fmt.Sprintf("/m/%s", i.Monitor.Uuid)) + } +} + +func (h *Handler) IncidentPage() http.HandlerFunc { + tmpl := template.Must(template.ParseFS(html.FS, "layout.html", "app.html", "incident.html")) + + type data struct { + User uptimemonitor.User + Incident uptimemonitor.Incident + Monitor uptimemonitor.Monitor + } + + return func(w http.ResponseWriter, r *http.Request) { + uuid := r.PathValue("incident") + incident, err := h.Store.GetIncidentByUuid(r.Context(), uuid) + if err != nil { + http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound) + return + } + + if incident.Monitor.Uuid != r.PathValue("monitor") { + http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound) + return + } + + tmpl.Execute(w, data{ + User: getUserFromRequest(r), + Incident: incident, + Monitor: incident.Monitor, + }) + } +} diff --git a/handler/login_handler.go b/handler/login_handler.go new file mode 100644 index 0000000..ca57e52 --- /dev/null +++ b/handler/login_handler.go @@ -0,0 +1,95 @@ +package handler + +import ( + "html/template" + "net/http" + "time" + "uptimemonitor" + "uptimemonitor/form" + "uptimemonitor/html" + + "golang.org/x/crypto/bcrypt" +) + +func (h *Handler) LoginPage() http.HandlerFunc { + type data struct { + Form form.LoginForm + } + + tmpl := template.Must(template.ParseFS(html.FS, "layout.html", "login.html")) + + return func(w http.ResponseWriter, r *http.Request) { + tmpl.Execute(w, data{ + Form: form.LoginForm{}, + }) + } +} + +func (h *Handler) LoginForm() http.HandlerFunc { + type data struct { + Form form.LoginForm + } + + tmpl := template.Must(template.ParseFS(html.FS, "login.html")) + + return func(w http.ResponseWriter, r *http.Request) { + r.ParseForm() + + f := form.LoginForm{ + Email: r.PostFormValue("email"), + Password: r.PostFormValue("password"), + } + + if !f.Validate() { + w.WriteHeader(http.StatusBadRequest) + tmpl.ExecuteTemplate(w, "login_form", data{ + Form: f, + }) + return + } + + user, err := h.Store.GetUserByEmail(r.Context(), f.Email) + if err != nil { + w.WriteHeader(http.StatusBadRequest) + f.Errors["Email"] = "The credentials do not match our records" + tmpl.ExecuteTemplate(w, "login_form", data{ + Form: f, + }) + return + } + + if err = bcrypt.CompareHashAndPassword([]byte(user.PasswordHash), []byte(f.Password)); err != nil { + w.WriteHeader(http.StatusBadRequest) + f.Errors["Email"] = "The credentials do not match our records" + tmpl.ExecuteTemplate(w, "login_form", data{ + Form: f, + }) + return + } + + session, err := h.Store.CreateSession(r.Context(), uptimemonitor.Session{ + UserID: user.ID, + ExpiresAt: time.Now().Add(time.Hour * 24 * 30), + User: user, + }) + if err != nil { + w.WriteHeader(http.StatusBadRequest) + f.Errors["Email"] = "Something went wrong, try again later" + tmpl.ExecuteTemplate(w, "login_form", data{ + Form: f, + }) + return + } + + http.SetCookie(w, &http.Cookie{ + Name: "session", + Value: session.Uuid, + HttpOnly: true, + SameSite: http.SameSiteLaxMode, + Secure: h.Secure, + Expires: session.ExpiresAt, + }) + + w.Header().Set("HX-Redirect", "/") + } +} diff --git a/handler/logout_handler.go b/handler/logout_handler.go new file mode 100644 index 0000000..71fc23a --- /dev/null +++ b/handler/logout_handler.go @@ -0,0 +1,34 @@ +package handler + +import ( + "net/http" + "time" + "uptimemonitor" +) + +func (h *Handler) Logout() http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + session, ok := r.Context().Value(sessionContextKey).(uptimemonitor.Session) + if !ok { + http.Redirect(w, r, "/login", http.StatusSeeOther) + http.Error(w, http.StatusText(http.StatusUnauthorized), http.StatusServiceUnavailable) + return + } + + err := h.Store.RemoveSessionByID(r.Context(), session.ID) + if err != nil { + // todo: log + } + + http.SetCookie(w, &http.Cookie{ + Name: "session", + Value: "", + HttpOnly: true, + SameSite: http.SameSiteLaxMode, + Secure: h.Secure, + Expires: time.Now().Add(time.Hour * 24 * 30 * -1), + }) + + http.Redirect(w, r, "/login", http.StatusSeeOther) + } +} diff --git a/handler/middleware.go b/handler/middleware.go new file mode 100644 index 0000000..773e6dd --- /dev/null +++ b/handler/middleware.go @@ -0,0 +1,118 @@ +package handler + +import ( + "context" + "log/slog" + "net/http" + "strings" + "uptimemonitor" +) + +type contextKey string + +const ( + sessionContextKey contextKey = "session" + userContextKey contextKey = "user" +) + +func (m *Handler) Installed(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + count, err := m.Store.CountUsers(r.Context()) + if err != nil { + http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) + return + } + + if count == 0 && r.Method == http.MethodGet { + http.Redirect(w, r, "/setup", http.StatusSeeOther) + return + } + + if count == 0 { + http.Error(w, http.StatusText(http.StatusForbidden), http.StatusForbidden) + return + } + + next.ServeHTTP(w, r) + }) +} + +func (m *Handler) UserFromCookie(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + c, err := r.Cookie("session") + if err != nil || c.Value == "" { + next.ServeHTTP(w, r) + return + } + + session, err := m.Store.GetSessionByUuid(r.Context(), c.Value) + if err != nil { + next.ServeHTTP(w, r) + return + } + + ctx := context.WithValue(r.Context(), sessionContextKey, session) + ctx = context.WithValue(ctx, userContextKey, session.User) + + next.ServeHTTP(w, r.WithContext(ctx)) + }) +} + +func (m *Handler) Authenticated(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + value := r.Context().Value(sessionContextKey) + if value == nil { + http.Redirect(w, r, "/login", http.StatusSeeOther) + return + } + + _, ok := value.(uptimemonitor.Session) + if !ok { + http.Redirect(w, r, "/login", http.StatusSeeOther) + return + } + + next.ServeHTTP(w, r) + }) +} + +func (m *Handler) Guest(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + value := r.Context().Value(sessionContextKey) + if value != nil { + http.Redirect(w, r, "/", http.StatusSeeOther) + return + } + + next.ServeHTTP(w, r) + }) +} + +func (m *Handler) Recoverer(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + defer func() { + if err := recover(); err != nil { + slog.Error("panic", "error", err) + w.WriteHeader(http.StatusInternalServerError) + } + }() + + next.ServeHTTP(w, r) + }) +} + +func (m *Handler) NoCache(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Method == http.MethodGet && strings.HasPrefix(r.URL.Path, "/static") { + w.Header().Set("Cache-Control", "public, max-age=31536000") + next.ServeHTTP(w, r) + return + } + + w.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate") + w.Header().Set("Pragma", "no-cache") + w.Header().Set("Expires", "0") + + next.ServeHTTP(w, r) + }) +} diff --git a/handler/monitor_handler.go b/handler/monitor_handler.go new file mode 100644 index 0000000..24af048 --- /dev/null +++ b/handler/monitor_handler.go @@ -0,0 +1,397 @@ +package handler + +import ( + "fmt" + "html/template" + "net/http" + "strconv" + "uptimemonitor" + "uptimemonitor/form" + "uptimemonitor/html" +) + +func (h *Handler) ListMonitors() http.HandlerFunc { + tmpl := template.Must(template.ParseFS(html.FS, "monitor.html")) + + type data struct { + Monitors []uptimemonitor.Monitor + Skeletons []int + } + + return func(w http.ResponseWriter, r *http.Request) { + monitors, err := h.Store.ListMonitors(r.Context()) + if err != nil { + http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) + return + } + + tmpl.ExecuteTemplate(w, "monitor_list", data{ + Monitors: monitors, + Skeletons: make([]int, 60), + }) + } +} + +func (h *Handler) CreateMonitorPage() http.HandlerFunc { + tmpl := template.Must(template.ParseFS(html.FS, "layout.html", "app.html", "new.html")) + + type data struct { + Form form.MonitorForm + User uptimemonitor.User + } + + return func(w http.ResponseWriter, r *http.Request) { + tmpl.Execute(w, data{ + Form: form.MonitorForm{ + HttpHeaders: `{ + "Content-Type": "application/json" +}`, + HttpBody: `{}`, + WebhookHeaders: `{ + "Content-Type": "application/json" +}`, + WebhookBody: `{ + "url": "{{ .Url }}", + "code": "{{ .StatusCode }}" +}`, + }, + User: getUserFromRequest(r), + }) + } +} + +func (h *Handler) CreateMonitorForm() http.HandlerFunc { + tmpl := template.Must(template.ParseFS(html.FS, "new.html")) + + type data struct { + Form form.MonitorForm + } + + return func(w http.ResponseWriter, r *http.Request) { + r.ParseForm() + + f := form.MonitorForm{ + HttpMethod: r.PostFormValue("http_method"), + Url: r.PostFormValue("url"), + HasCustomHeaders: r.PostFormValue("has_custom_headers") == "on", + HasCustomBody: r.PostFormValue("has_custom_body") == "on", + HttpHeaders: r.PostFormValue("http_headers"), + HttpBody: r.PostFormValue("http_body"), + HasWebhook: r.PostFormValue("has_webhook") == "on", + WebhookMethod: r.PostFormValue("webhook_method"), + WebhookUrl: r.PostFormValue("webhook_url"), + WebhookHeaders: r.PostFormValue("webhook_headers"), + WebhookBody: r.PostFormValue("webhook_body"), + } + + if !f.Validate() { + w.WriteHeader(http.StatusBadRequest) + tmpl.ExecuteTemplate(w, "new_form", data{Form: f}) + return + } + + monitor := uptimemonitor.Monitor{ + HttpMethod: f.HttpMethod, + Url: f.Url, + } + + if f.HasCustomHeaders { + monitor.HttpHeaders = f.HttpHeaders + } + + if f.HasCustomBody { + monitor.HttpBody = f.HttpBody + } + + if f.HasWebhook { + monitor.WebhookUrl = f.WebhookUrl + monitor.WebhookMethod = f.WebhookMethod + monitor.WebhookHeaders = f.WebhookHeaders + monitor.WebhookBody = f.WebhookBody + } + + m, err := h.Store.CreateMonitor(r.Context(), monitor) + if err != nil { + http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) + return + } + + w.Header().Set("HX-Redirect", m.URI()) + } +} + +func (h *Handler) MonitorPage() http.HandlerFunc { + tmpl := template.Must(template.ParseFS(html.FS, "layout.html", "app.html", "monitor.html")) + + type data struct { + Monitor uptimemonitor.Monitor + Skeletons []int + User uptimemonitor.User + } + + return func(w http.ResponseWriter, r *http.Request) { + m, err := h.Store.GetMonitorByUuid(r.Context(), r.PathValue("monitor")) + if err != nil || m.ID == 0 { + http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound) + return + } + + tmpl.Execute(w, data{ + Monitor: m, + Skeletons: make([]int, 60), + User: getUserFromRequest(r), + }) + } +} + +func (h *Handler) MonitorStats() http.HandlerFunc { + tmpl := template.Must(template.ParseFS(html.FS, "monitor.html")) + + type data struct { + ID int64 + AvgResponseTime int64 + Uptime string + Count int64 + ChecksCount int64 + FailureCount int64 + } + + return func(w http.ResponseWriter, r *http.Request) { + id, err := strconv.Atoi(r.PathValue("monitor")) + if err != nil { + http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound) + return + } + + m, err := h.Store.GetMonitorByID(r.Context(), id) + if err != nil { + http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound) + return + } + + tmpl.ExecuteTemplate(w, "monitor_stats", data{ + ID: int64(id), + AvgResponseTime: int64(m.AvgResponseTimeMs), + Uptime: fmt.Sprintf("%.1f", m.Uptime), + Count: m.IncidentsCount, + ChecksCount: m.N, + FailureCount: m.IncidentsCount, + }) + } +} + +func (h *Handler) ListMonitorIncidents() http.HandlerFunc { + tmpl := template.Must(template.ParseFS(html.FS, "monitor.html")) + + type data struct { + ID int64 + Monitor uptimemonitor.Monitor + Incidents []uptimemonitor.Incident + } + + return func(w http.ResponseWriter, r *http.Request) { + id, err := strconv.Atoi(r.PathValue("monitor")) + if err != nil { + http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound) + return + } + + m, err := h.Store.GetMonitorByID(r.Context(), id) + if err != nil { + http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound) + return + } + + incidents, err := h.Store.ListMonitorIncidents(r.Context(), int64(id)) + if err != nil { + http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) + return + } + + tmpl.ExecuteTemplate(w, "monitor_incident_list", data{ + ID: int64(id), + Monitor: m, + Incidents: incidents, + }) + } +} + +func (h *Handler) EditMonitorPage() http.HandlerFunc { + tmpl := template.Must(template.ParseFS(html.FS, "layout.html", "app.html", "edit.html")) + + type data struct { + Form form.MonitorForm + User uptimemonitor.User + Monitor uptimemonitor.Monitor + } + + return func(w http.ResponseWriter, r *http.Request) { + m, err := h.Store.GetMonitorByUuid(r.Context(), r.PathValue("monitor")) + if err != nil { + http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound) + return + } + + f := form.MonitorForm{ + Url: m.Url, + HttpMethod: m.HttpMethod, + HttpHeaders: m.HttpHeaders, + HttpBody: m.HttpBody, + HasCustomHeaders: m.HttpHeaders != "", + HasCustomBody: m.HttpBody != "", + HasWebhook: m.WebhookUrl != "", + WebhookUrl: m.WebhookUrl, + WebhookMethod: m.WebhookMethod, + WebhookHeaders: m.WebhookHeaders, + WebhookBody: m.WebhookBody, + } + + if !f.HasCustomBody { + f.HttpBody = "{}" + } + + if !f.HasCustomHeaders { + f.HttpHeaders = "{}" + } + + tmpl.Execute(w, data{ + Monitor: m, + Form: f, + User: getUserFromRequest(r), + }) + } +} + +func (h *Handler) EditMonitorForm() http.HandlerFunc { + tmpl := template.Must(template.ParseFS(html.FS, "edit.html")) + + type data struct { + Form form.MonitorForm + User uptimemonitor.User + Monitor uptimemonitor.Monitor + } + + return func(w http.ResponseWriter, r *http.Request) { + id, err := strconv.Atoi(r.PathValue("monitor")) + if err != nil { + http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound) + return + } + + monitor, err := h.Store.GetMonitorByID(r.Context(), id) + if err != nil { + http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound) + return + } + + r.ParseForm() + + customHeaders := r.PostFormValue("http_headers") + customBody := r.PostFormValue("http_body") + + if r.PostFormValue("has_custom_headers") != "on" { + customHeaders = "" + } + + if r.PostFormValue("has_custom_body") != "on" { + customBody = "" + } + + f := form.MonitorForm{ + HttpMethod: r.PostFormValue("http_method"), + Url: r.PostFormValue("url"), + HasCustomHeaders: r.PostFormValue("has_custom_headers") == "on", + HasCustomBody: r.PostFormValue("has_custom_body") == "on", + HttpHeaders: customHeaders, + HttpBody: customBody, + HasWebhook: r.PostFormValue("has_webhook") == "on", + WebhookMethod: r.PostFormValue("webhook_method"), + WebhookUrl: r.PostFormValue("webhook_url"), + WebhookHeaders: r.PostFormValue("webhook_headers"), + WebhookBody: r.PostFormValue("webhook_body"), + } + + if !f.Validate() { + w.WriteHeader(http.StatusBadRequest) + tmpl.ExecuteTemplate(w, "edit_form", data{ + Monitor: monitor, + Form: f, + User: getUserFromRequest(r), + }) + return + } + + monitor.Url = f.Url + monitor.HttpMethod = f.HttpMethod + + if f.HasCustomHeaders { + monitor.HttpHeaders = f.HttpHeaders + } else { + monitor.HttpHeaders = "" + } + + if f.HasCustomBody { + monitor.HttpBody = f.HttpBody + } else { + monitor.HttpBody = "" + } + + if f.HasWebhook { + monitor.WebhookUrl = f.WebhookUrl + monitor.WebhookMethod = f.WebhookMethod + monitor.WebhookHeaders = f.WebhookHeaders + monitor.WebhookBody = f.WebhookBody + } else { + monitor.WebhookUrl = "" + monitor.WebhookMethod = "" + monitor.WebhookHeaders = "" + monitor.WebhookBody = "" + } + + err = h.Store.UpdateMonitor(r.Context(), monitor) + if err != nil { + http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) + return + } + + w.Header().Set("HX-Redirect", monitor.URI()) + } +} + +func (h *Handler) DeleteMonitorPage() http.HandlerFunc { + tmpl := template.Must(template.ParseFS(html.FS, "layout.html", "app.html", "delete.html")) + + type data struct { + User uptimemonitor.User + Monitor uptimemonitor.Monitor + } + + return func(w http.ResponseWriter, r *http.Request) { + uuid := r.PathValue("monitor") + m, err := h.Store.GetMonitorByUuid(r.Context(), uuid) + if err != nil || m.ID == 0 { + http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound) + return + } + + tmpl.Execute(w, data{ + User: getUserFromRequest(r), + Monitor: m, + }) + } +} + +func (h *Handler) DeleteMonitorForm() http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + id, _ := strconv.Atoi(r.PathValue("monitor")) + m, err := h.Store.GetMonitorByID(r.Context(), id) + if err != nil || m.ID == 0 { + http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound) + return + } + + h.Store.DeleteMonitor(r.Context(), int64(id)) + + w.Header().Add("HX-Redirect", "/") + } +} diff --git a/handler/setup_handler.go b/handler/setup_handler.go new file mode 100644 index 0000000..f4139df --- /dev/null +++ b/handler/setup_handler.go @@ -0,0 +1,104 @@ +package handler + +import ( + "html/template" + "net/http" + "time" + "uptimemonitor" + "uptimemonitor/form" + "uptimemonitor/html" + + "golang.org/x/crypto/bcrypt" +) + +func (h *Handler) SetupPage() http.HandlerFunc { + type data struct { + Form form.SetupForm + } + + tmpl := template.Must(template.ParseFS(html.FS, "layout.html", "setup.html")) + + return func(w http.ResponseWriter, r *http.Request) { + count, err := h.Store.CountUsers(r.Context()) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + if count > 0 { + http.Redirect(w, r, "/", http.StatusSeeOther) + return + } + + tmpl.Execute(w, data{ + Form: form.SetupForm{}, + }) + } +} + +func (h *Handler) SetupForm() http.HandlerFunc { + type data struct { + Form form.SetupForm + } + + tmpl := template.Must(template.ParseFS(html.FS, "setup.html")) + + return func(w http.ResponseWriter, r *http.Request) { + r.ParseForm() + + f := form.SetupForm{ + Name: r.PostFormValue("name"), + Email: r.PostFormValue("email"), + Password: r.PostFormValue("password"), + } + + if !f.Validate() { + w.WriteHeader(http.StatusBadRequest) + tmpl.ExecuteTemplate(w, "setup_form", data{ + Form: f, + }) + return + } + + hash, err := bcrypt.GenerateFromPassword([]byte(f.Password), bcrypt.DefaultCost) + if err != nil { + http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) + return + } + + user, err := h.Store.CreateUser(r.Context(), uptimemonitor.User{ + Name: f.Name, + Email: f.Email, + PasswordHash: string(hash), + }) + if err != nil { + http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) + return + } + + session, err := h.Store.CreateSession(r.Context(), uptimemonitor.Session{ + UserID: user.ID, + ExpiresAt: time.Now().Add(time.Hour * 24 * 30), + User: user, + }) + if err != nil { + w.WriteHeader(http.StatusBadRequest) + f.Errors["Email"] = "Something went wrong, try again later" + tmpl.ExecuteTemplate(w, "login_form", data{ + Form: f, + }) + return + } + + http.SetCookie(w, &http.Cookie{ + Name: "session", + Value: session.Uuid, + HttpOnly: true, + SameSite: http.SameSiteLaxMode, + Secure: h.Secure, + Expires: session.ExpiresAt, + }) + + w.Header().Set("HX-Redirect", "/") + } +} diff --git a/handler/sponsor_handler.go b/handler/sponsor_handler.go new file mode 100644 index 0000000..732c574 --- /dev/null +++ b/handler/sponsor_handler.go @@ -0,0 +1,58 @@ +package handler + +import ( + "encoding/json" + "html/template" + "net/http" + "uptimemonitor" + "uptimemonitor/html" +) + +func (*Handler) ListSponsors() http.HandlerFunc { + layout := template.Must(template.ParseFS(html.FS, "layout.html")) + sponsor := template.Must(template.ParseFS(html.FS, "sponsor.html")) + + type data struct { + Sponsors []uptimemonitor.Sponsor + } + + return func(w http.ResponseWriter, r *http.Request) { + if r.Header.Get("HX-Request") != "true" { + layout.ExecuteTemplate(w, "sponsors", nil) + return + } + + d := data{ + Sponsors: []uptimemonitor.Sponsor{ + { + Name: "AIR Labs", + Url: "https://airlabs.pl", + Image: "/static/img/airlabs.svg", + }, + }, + } + + req, err := http.NewRequest(http.MethodGet, "https://sponsors.uptimemonitor.dev", nil) + if err != nil { + sponsor.Execute(w, d) + return + } + + res, err := http.DefaultClient.Do(req) + if err != nil { + sponsor.Execute(w, d) + return + } + + var sponsors []uptimemonitor.Sponsor + err = json.NewDecoder(res.Body).Decode(&sponsors) + if err != nil { + sponsor.Execute(w, d) + return + } + + sponsor.Execute(w, data{ + Sponsors: sponsors, + }) + } +} diff --git a/html/app.html b/html/app.html new file mode 100644 index 0000000..64fe62d --- /dev/null +++ b/html/app.html @@ -0,0 +1,76 @@ +{{ define "body" }} +
+ {{ template "nav" . }} +
+ {{ block "content" . }}{{ end }} +
+ {{ template "footer" . }} +
+{{ end }} + +{{ define "nav" }} +
+
+
+ +
+ +
+
+{{ end }} + +{{ define "footer" }} +
+ +
+ +
+
+{{ end }} \ No newline at end of file diff --git a/html/check.html b/html/check.html new file mode 100644 index 0000000..d49f955 --- /dev/null +++ b/html/check.html @@ -0,0 +1,57 @@ +{{ define "check_list" }} +
+
+ {{ $checkMaxIndex := sub (len $.Checks) 1 }} + {{ range $i, $v := .Skeletons }} + {{ $currentIndex := sub 59 $i }} + {{ $check := "" }} + {{ if lt $currentIndex (len $.Checks) }} + {{ $check = index $.Checks $currentIndex }} + {{ end }} + + {{ end }} +
+
+
+
+ + {{ if eq (len $.Checks ) 0}} +
+ waiting... +
+ {{ end }} +
+ + +
+{{ end }} \ No newline at end of file diff --git a/html/delete.html b/html/delete.html new file mode 100644 index 0000000..84c345f --- /dev/null +++ b/html/delete.html @@ -0,0 +1,62 @@ +{{ define "title" }}Delete monitor{{end}} + +{{ define "content" }} +
+
+ {{template "delete_form" . }} +
+
+{{ end }} + +{{ define "delete_form" }} +
+
+

Delete monitor

+
+
+ +
+
+{{ end }} + +{{ define "breadcrumbs" }} +
  • + + + + + Monitors + +
  • +
  • + +
    + + + + {{ .Monitor.Host }} +
    +
    +
  • +
  • +
    + Delete +
    +
  • +{{ end }} \ No newline at end of file diff --git a/html/edit.html b/html/edit.html new file mode 100644 index 0000000..2bb536e --- /dev/null +++ b/html/edit.html @@ -0,0 +1,181 @@ +{{ define "title" }}Edit monitor{{end}} + +{{ define "content" }} +
    +
    + {{template "edit_form" . }} +
    +
    +{{ end }} + +{{ define "edit_form" }} +
    +
    +

    Edit monitor

    +
    +
    +
    +
    + +
    +
    + + {{ with .Form.Errors.Url }} +
    {{ . }}
    + {{ end }} +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + + + +
    +
    +
    + +
    +
    +{{ end }} + +{{ define "breadcrumbs" }} +
  • + + + + + Monitors + +
  • +
  • + +
    + + + + {{ .Monitor.Host }} +
    +
    +
  • +
  • +
    + Edit +
    +
  • +{{ end }} \ No newline at end of file diff --git a/html/embed.go b/html/embed.go new file mode 100644 index 0000000..492d020 --- /dev/null +++ b/html/embed.go @@ -0,0 +1,8 @@ +package html + +import "embed" + +var ( + //go:embed *.html + FS embed.FS +) diff --git a/html/home.html b/html/home.html new file mode 100644 index 0000000..e18924e --- /dev/null +++ b/html/home.html @@ -0,0 +1,28 @@ +{{ define "title" }}Home{{ end }} + +{{define "content"}} +
    +
    +
    +
    + +
    +
    + + {{ template "sponsors" . }} +
    +
    +{{ end }} + + +{{ define "breadcrumbs" }} +
  • + + + + + Monitors + +
  • +{{ end }} \ No newline at end of file diff --git a/html/incident.html b/html/incident.html new file mode 100644 index 0000000..ab148f2 --- /dev/null +++ b/html/incident.html @@ -0,0 +1,184 @@ +{{ define "incident_list" }} + +{{ end }} + +{{ define "title" }} +{{ .Incident.StatusCode }} {{ .Incident.StatusCodeText }} ({{ .Incident.CreatedAt.Format "2006-01-02 15:04"}}) +{{ end }} + +{{ define "content" }} +
    +
    + {{ with .Incident }} +
    +
    +
    +
    +
    + {{ .StatusBadgeText }} +
    +
    +
    +
    + {{ .StatusCode }} {{ .StatusCodeText }} +
    +
    + {{ .CreatedAt.Format "2006-01-02 15:04" }} + {{ if .ResolvedAt }} + (resolved at {{ .ResolvedAt.Format "2006-01-02 15:04" }}) + {{ end }} +
    +
    +
    +
    + +
    +

    Request

    +
    + +
    +
    + {{ if and $.Incident.ReqMethod $.Incident.ReqUrl }} +
    curl -X{{ $.Incident.ReqMethod }} {{ $.Incident.ReqUrl }} \
    + {{ end}} + {{ if $.Incident.ReqHeaders }} + {{ range $key, $value := $.Incident.ReqHeadersMap }} +
    -H '{{ $key }}: {{ $value }}' \
    + {{ end }} + {{ end}} + {{ if $.Incident.ReqBody }} +
    -d '{{ $.Incident.ReqBody }}'
    + {{ end}} +
    +
    + +
    +

    Response

    +
    + +
    +
    +
    {{ $.Monitor.HttpMethod }} {{ $.Monitor.Url }}
    +
    +
    + {{ if $.Incident.Headers }} +
    {{ $.Incident.Headers }}
    + {{ end}} + {{ if $.Incident.Body }} +
    {{ $.Incident.Body }}
    + {{ else }} +
    //
    + {{ end}} +
    +
    + +
    + {{ end }} + +
    +
      +
      + +
    + + + +
    + + + +
    + +{{end}} + +{{ define "breadcrumbs" }} +
  • + + + + + Monitors + +
  • +
  • + + + ... + +
  • +
  • +
    + + + + + {{ .Incident.StatusCode }} {{ .Incident.StatusCodeText }} +
    +
  • +{{ end }} \ No newline at end of file diff --git a/html/layout.html b/html/layout.html new file mode 100644 index 0000000..f4054df --- /dev/null +++ b/html/layout.html @@ -0,0 +1,45 @@ + + + + + + + {{ block "title" .}}{{ end }} - Uptime Monitor + + + + {{ block "head" .}}{{ end }} + + + + {{ block "body" . }}{{ end }} + + + + + + + + + +{{ define "logo"}} + + + + + + + UM {{ template "version" . }} + + +{{ end }} + +{{ define "version" }} +v0.5.0-alpha +{{ end }} + +{{ define "sponsors" }} +
    +{{ end }} \ No newline at end of file diff --git a/html/login.html b/html/login.html new file mode 100644 index 0000000..cef66f6 --- /dev/null +++ b/html/login.html @@ -0,0 +1,53 @@ +{{ define "title" }}Log in{{end}} + +{{ define "body" }} +
    +
    + {{ template "logo" . }} +
    + {{template "login_form" . }} +
    +{{ end }} + +{{ define "login_form" }} +
    +
    +

    + + + + + Log in +

    +
    + Please fill in your credentials to proceed +
    +
    +
    +
    + Email + + {{ with .Form.Errors.Email }} +
    {{ . }}
    + {{ end }} +
    +
    + Password + + {{ with .Form.Errors.Password }} +
    {{ . }}
    + {{ end }} +
    +
    + +
    +{{ end }} \ No newline at end of file diff --git a/html/monitor.html b/html/monitor.html new file mode 100644 index 0000000..39ba26c --- /dev/null +++ b/html/monitor.html @@ -0,0 +1,245 @@ +{{ define "title" }} +{{ .Monitor.Domain }} +{{end}} + +{{ define "monitor_list" }} +
    + {{ range .Monitors }} + +
    +

    +
    + {{ if .Secure }} + + + + {{ else }} + + + + {{ end }} + {{ .Domain }} +
    +

    +
    +
    + {{ range $i, $e := $.Skeletons }} + + {{ end }} +
    + + + +
    +
    +
    + {{ end }} +
    +{{ end }} + +{{ define "content" }} +
    +
    +
    +
    +
    +
    +
    + {{ .Monitor.Url }} +
    +
    +
    +
    +
    +
    + {{ range $i, $e := .Skeletons }} + + {{ end }} +
    + +
    +
    --:--
    +
    --:--
    +
    +
    +
    +
    +
    +
    +
    Avg. response time
    +
    -
    +
    + +
    +
    Checks
    +
    -
    +
    + +
    +
    Fails
    +
    -
    +
    + +
    +
    Uptime
    +
    -
    +
    +
    +
    +
    +
    +
    + +
    +
    +{{ end }} + +{{ define "monitor_stats" }} +
    +
    +
    Avg. response time
    +
    {{ .AvgResponseTime }}ms
    +
    + +
    +
    Checks
    +
    {{ .ChecksCount }}
    +
    + +
    +
    Fails
    +
    {{ .FailureCount }}
    +
    + +
    +
    Uptime
    +
    {{ .Uptime }}%
    +
    +
    +{{ end }} + +{{ define "monitor_incident_list" }} +
    + {{ if .Incidents }} +
    + Incidents +
    + + + {{ else }} +
    + Incidents +
    +
    + No incidents to report. +
    + {{ end }} +
    +{{ end }} + +{{ define "breadcrumbs" }} +
  • + + + + + Monitors + +
  • +
  • +
    + + + + {{ .Monitor.Host }} +
    +
  • +{{ end }} \ No newline at end of file diff --git a/html/new.html b/html/new.html new file mode 100644 index 0000000..ef7f210 --- /dev/null +++ b/html/new.html @@ -0,0 +1,175 @@ +{{ define "title" }}Create monitor{{end}} + +{{ define "content" }} +
    +
    + {{template "new_form" . }} +
    +
    +{{ end }} + +{{ define "breadcrumbs" }} +
  • + + + + + Monitors + +
  • +
  • +
    + New +
    +
  • +{{ end }} + +{{ define "new_form" }} +
    +
    +

    Create monitor

    +
    + The url you provide will be monitored every minute. +
    +
    +
    + + Website URL + +
    +
    + +
    +
    + + {{ with .Form.Errors.Url }} +
    {{ . }}
    + {{ end }} +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + + + +
    +
    +
    + +
    +
    +{{ end }} \ No newline at end of file diff --git a/html/setup.html b/html/setup.html new file mode 100644 index 0000000..1cb5498 --- /dev/null +++ b/html/setup.html @@ -0,0 +1,60 @@ +{{ define "title" }}Setup{{end}} + +{{ define "body" }} +
    +
    + {{ template "logo" . }} +
    + {{template "setup_form" . }} +
    +{{ end }} + +{{ define "setup_form" }} +
    +
    +

    + + + + + Setup +

    +
    + Create your admin account +
    +
    +
    +
    + Name + + {{ with .Form.Errors.Name }} +
    {{ . }}
    + {{ end }} +
    +
    + E-mail + + {{ with .Form.Errors.Email }} +
    {{ . }}
    + {{ end }} +
    +
    + Password + + {{ with .Form.Errors.Password }} +
    {{ . }}
    + {{ end }} +
    +
    + +
    +{{ end }} \ No newline at end of file diff --git a/html/sponsor.html b/html/sponsor.html new file mode 100644 index 0000000..69c1411 --- /dev/null +++ b/html/sponsor.html @@ -0,0 +1,15 @@ +
    +
    + Sponsors +
    +
    + {{ range .Sponsors }} + +
    + {{ .Name }} +
    {{ .Name }}
    +
    +
    + {{ end }} +
    +
    \ No newline at end of file diff --git a/incident.go b/incident.go new file mode 100644 index 0000000..08fb64f --- /dev/null +++ b/incident.go @@ -0,0 +1,85 @@ +package uptimemonitor + +import ( + "encoding/json" + "fmt" + "net/http" + "time" +) + +const ( + IncidentStatusOpen string = "open" + IncidentStatusResolved string = "resolved" +) + +type Incident struct { + ID int64 + Uuid string + MonitorID int64 + CreatedAt time.Time + StatusCode int + ResponseTimeMs int64 + Body string + Headers string + StatusText string + ResolvedAt *time.Time + ReqMethod string + ReqUrl string + ReqHeaders string + ReqBody string + + Monitor Monitor +} + +func (i Incident) URI() string { + return fmt.Sprintf("/m/%s/i/%s", i.Monitor.Uuid, i.Uuid) +} + +func (i Incident) BadgeClass() string { + if i.StatusCode >= 200 && i.StatusCode < 300 { + return "badge-success" + } else if i.StatusCode >= 300 && i.StatusCode < 400 { + return "badge-warning" + } else if i.StatusCode >= 400 && i.StatusCode < 500 { + return "badge-accent" + } else if i.StatusCode >= 500 { + return "badge-error" + } else { + return "badge-neutral" + } +} + +func (i Incident) StatusCodeText() string { + return http.StatusText(i.StatusCode) +} + +func (i Incident) StatusBadgeClass() string { + if i.StatusText == IncidentStatusOpen { + return "badge-error" + } + + return "badge-success" +} + +func (i Incident) StatusBadgeText() string { + if i.StatusText == IncidentStatusResolved { + return "Resolved" + } + + return "Open" +} + +func (i Incident) ReqHeadersMap() map[string]string { + if i.ReqHeaders == "" { + return map[string]string{} + } + + customHeaders := map[string]string{} + err := json.Unmarshal([]byte(i.ReqHeaders), &customHeaders) + if err != nil { + return map[string]string{} + + } + + return customHeaders +} diff --git a/monitor.go b/monitor.go new file mode 100644 index 0000000..3c3a21c --- /dev/null +++ b/monitor.go @@ -0,0 +1,73 @@ +package uptimemonitor + +import ( + "fmt" + "net/url" + "strings" + "time" +) + +type Monitor struct { + ID int64 + Uuid string + Url string + HttpMethod string + HttpHeaders string + HttpBody string + WebhookUrl string + WebhookMethod string + WebhookHeaders string + WebhookBody string + Uptime float32 + AvgResponseTimeMs int64 + N int64 + IncidentsCount int64 + CreatedAt time.Time +} + +func (m Monitor) URI() string { + return fmt.Sprintf("/m/%s", m.Uuid) +} + +func (m Monitor) Secure() bool { + uri, err := url.ParseRequestURI(m.Url) + if err != nil { + return false + } + + return uri.Scheme == "https" +} + +func (m Monitor) Domain() string { + uri, err := url.ParseRequestURI(m.Url) + if err != nil { + return m.Url + } + + res, err := url.JoinPath(uri.Host, strings.TrimLeft(uri.Path, "/")) + if err != nil { + return m.Url + } + + if uri.RawQuery != "" { + res = fmt.Sprintf("%s?%s", res, uri.Query().Encode()) + } + + return res +} + +func (m Monitor) Host() string { + uri, err := url.ParseRequestURI(m.Url) + if err != nil { + return m.Url + } + + host := uri.Host + maxLimit := 30 + + if len(host) > maxLimit { + return fmt.Sprintf("%s...", host[:maxLimit]) + } + + return host +} diff --git a/pkg/testutil/assertable_response.go b/pkg/testutil/assertable_response.go new file mode 100644 index 0000000..b426a6d --- /dev/null +++ b/pkg/testutil/assertable_response.go @@ -0,0 +1,155 @@ +package testutil + +import ( + "net/http" + "strings" + "testing" + + "github.com/PuerkitoBio/goquery" +) + +type AssertableResponse struct { + T *testing.T + Response *http.Response + Document *goquery.Document +} + +func NewAssertableResponse(t *testing.T, res *http.Response) *AssertableResponse { + doc, _ := goquery.NewDocumentFromReader(res.Body) + + return &AssertableResponse{ + T: t, + Response: res, + Document: doc, + } +} + +func (ar *AssertableResponse) AssertStatusCode(expected int) *AssertableResponse { + ar.T.Helper() + + if ar.Response.StatusCode != expected { + ar.T.Fatalf("expected status code %d, got %d", expected, ar.Response.StatusCode) + } + + return ar +} + +func (ar *AssertableResponse) AssertRedirect(statusCode int, expected string) *AssertableResponse { + ar.T.Helper() + + if ar.Response.Request.Response == nil { + ar.T.Fatalf("no redirect has been made") + } + + if ar.Response.Request.Response.StatusCode != statusCode { + ar.T.Fatalf("expected status code %d, got %d", statusCode, ar.Response.Request.Response.StatusCode) + } + + if actual := ar.Response.Request.Response.Header.Get("Location"); actual != expected { + ar.T.Fatalf("expected redirect to %s, got %s", expected, actual) + } + + return ar +} + +func (ar *AssertableResponse) AssertNoRedirect() *AssertableResponse { + ar.T.Helper() + + if ar.Response.Request.Response != nil { + ar.T.Fatalf("unexpected redirect: %v", ar.Response.Request.URL) + } + + return ar +} + +func (ar *AssertableResponse) AssertElementVisible(selector string) *AssertableResponse { + ar.T.Helper() + + if ar.Document == nil { + ar.T.Fatalf("no document available for assertion") + } + + if ar.Document.Find(selector).Length() == 0 { + html, _ := ar.Document.Html() + ar.T.Fatalf( + "expected element with selector '%s' to be visible but it was not found in the output: %v", + selector, + html, + ) + } + + return ar +} + +func (ar *AssertableResponse) AssertSeeText(text string) *AssertableResponse { + ar.T.Helper() + + if ar.Document == nil { + ar.T.Fatalf("no document available for assertion") + } + + html, _ := ar.Document.Html() + if !strings.Contains(html, text) { + ar.T.Fatalf("expected to see text '%s' but it was not found in the output: %v", text, html) + } + + return ar +} + +func (ar *AssertableResponse) AssertHeader(header string, expected string) *AssertableResponse { + ar.T.Helper() + + if value := ar.Response.Header.Get(header); value == "" { + ar.T.Fatalf(`no header "%s" found`, header) + } + + if value := ar.Response.Header.Get(header); value != expected { + ar.T.Fatalf("expected header '%s' to have value of '%s' but got '%s' instead", header, expected, value) + } + + return ar +} + +func (ar *AssertableResponse) AssertCookieSet(name string) *AssertableResponse { + ar.T.Helper() + + for _, c := range ar.Response.Cookies() { + if c.Name == name { + return ar + } + } + + if ar.Response.Request != nil && ar.Response.Request.Response != nil { + for _, c := range ar.Response.Request.Response.Cookies() { + if c.Name == name { + return ar + } + } + } + + ar.T.Fatalf("expected to find cookie with a name '%s', but none has been found", name) + + return ar +} + +func (ar *AssertableResponse) AssertCookieMissing(name string) *AssertableResponse { + ar.T.Helper() + + for _, c := range ar.Response.Cookies() { + if c.Name == name { + ar.T.Fatalf("expected not to find cookie with a name '%s'", name) + return ar + } + } + + if ar.Response.Request != nil && ar.Response.Request.Response != nil { + for _, c := range ar.Response.Request.Response.Cookies() { + if c.Name == name { + ar.T.Fatalf("expected not to find cookie with a name '%s'", name) + return ar + } + } + } + + return ar +} diff --git a/router/router.go b/router/router.go new file mode 100644 index 0000000..a7675f5 --- /dev/null +++ b/router/router.go @@ -0,0 +1,69 @@ +package router + +import ( + "net/http" + "uptimemonitor/handler" + "uptimemonitor/static" +) + +func New(handler *handler.Handler, callback func(r *http.ServeMux)) http.Handler { + r := http.NewServeMux() + + r.HandleFunc("GET /setup", handler.SetupPage()) + r.HandleFunc("POST /setup", handler.SetupForm()) + r.HandleFunc("GET /sponsors", handler.ListSponsors()) + + { + mux := http.NewServeMux() + + { + loginMux := http.NewServeMux() + + loginMux.HandleFunc("GET /", handler.LoginPage()) + loginMux.HandleFunc("POST /", handler.LoginForm()) + + mux.Handle("/login", handler.Guest(loginMux)) + } + + { + authenticatedMux := http.NewServeMux() + + authenticatedMux.HandleFunc("GET /{$}", handler.HomePage()) + authenticatedMux.HandleFunc("GET /new", handler.CreateMonitorPage()) + authenticatedMux.HandleFunc("GET /monitors", handler.ListMonitors()) + authenticatedMux.HandleFunc("POST /monitors", handler.CreateMonitorForm()) + authenticatedMux.HandleFunc("GET /m/{monitor}", handler.MonitorPage()) + authenticatedMux.HandleFunc("GET /m/{monitor}/i/{incident}", handler.IncidentPage()) + authenticatedMux.HandleFunc("PATCH /monitors/{monitor}", handler.EditMonitorForm()) + authenticatedMux.HandleFunc("DELETE /monitors/{monitor}", handler.DeleteMonitorForm()) + authenticatedMux.HandleFunc("GET /m/{monitor}/edit", handler.EditMonitorPage()) + authenticatedMux.HandleFunc("GET /m/{monitor}/delete", handler.DeleteMonitorPage()) + authenticatedMux.HandleFunc("GET /monitors/{monitor}/checks", handler.ListChecks()) + authenticatedMux.HandleFunc("GET /monitors/{monitor}/stats", handler.MonitorStats()) + authenticatedMux.HandleFunc("GET /monitors/{monitor}/incidents", handler.ListMonitorIncidents()) + authenticatedMux.HandleFunc("GET /incidents", handler.ListIncidents()) + authenticatedMux.HandleFunc("DELETE /incidents/{incident}", handler.DeleteIncident()) + authenticatedMux.HandleFunc("GET /logout", handler.Logout()) + + mux.Handle("/", handler.Authenticated(authenticatedMux)) + } + + r.Handle( + "/", + handler.UserFromCookie( + handler.Installed( + mux, + ), + ), + ) + + } + + r.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.FS(static.FS)))) + + callback(r) + + return handler.Recoverer( + handler.NoCache(r), + ) +} diff --git a/service/check_service.go b/service/check_service.go new file mode 100644 index 0000000..5c483a2 --- /dev/null +++ b/service/check_service.go @@ -0,0 +1,258 @@ +package service + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "io" + "net/http" + "strings" + "text/template" + "time" + "uptimemonitor" + "uptimemonitor/store" +) + +type CheckService struct { + Store *store.Store +} + +func (s *CheckService) StartCheck() chan uptimemonitor.Monitor { + ch := make(chan uptimemonitor.Monitor, 10) + + go func() { + for m := range ch { + s.handleCheck(m) + } + }() + + return ch +} + +func (s *CheckService) RunCheck(ctx context.Context, ch chan uptimemonitor.Monitor) error { + monitors, err := s.Store.ListMonitors(ctx) + if err != nil { + return err + } + + for _, m := range monitors { + ch <- m + } + + go func() { + s.Cleanup() + }() + + return nil +} + +func (s *CheckService) handleCheck(m uptimemonitor.Monitor) { + c, cancel := context.WithTimeout(context.Background(), time.Minute) + defer cancel() + + start := time.Now() + var customBody io.Reader + + if m.HttpBody != "" { + customBody = strings.NewReader(m.HttpBody) + } + + req, err := http.NewRequest( + m.HttpMethod, + m.Url, + customBody, + ) + + if err != nil { + return + } + + if m.HttpHeaders != "" { + customHeaders := map[string]string{} + err = json.Unmarshal([]byte(m.HttpHeaders), &customHeaders) + if err == nil { + for k, v := range customHeaders { + req.Header.Add(k, v) + } + } + } + + // todo: add timeout + res, err := http.DefaultClient.Do(req) + elapsed := time.Since(start) + + if err != nil { + check, err := s.Store.CreateCheck(c, uptimemonitor.Check{ + MonitorID: m.ID, + Monitor: m, + StatusCode: http.StatusNotFound, + ResponseTimeMs: elapsed.Milliseconds(), + }) + + if err != nil || check.ID == 0 { + return + } + + if err := s.createIncident(m, check, elapsed.Milliseconds(), http.StatusNotFound, "", ""); err != nil { + return + } + + return + } + + statusCode := res.StatusCode + if res.Request.Response != nil { + statusCode = res.Request.Response.StatusCode + } + + check, err := s.Store.CreateCheck(c, uptimemonitor.Check{ + MonitorID: m.ID, + Monitor: m, + StatusCode: statusCode, + ResponseTimeMs: elapsed.Milliseconds(), + }) + + if err != nil { + return + } + + if statusCode < 300 { + open, err := s.Store.ListMonitorOpenIncidents(c, m.ID) + if err != nil { + return + } + + for _, i := range open { + s.Store.ResolveIncident(c, i) + } + + return + } + + var body string + var headers string + + if res.Request.Response != nil { + var resHeaders string + for k, v := range res.Request.Response.Header { + resHeaders += fmt.Sprintf("%s: %s\n", k, v) + } + + resBody, _ := io.ReadAll(res.Request.Response.Body) + defer res.Request.Response.Body.Close() + body = string(resBody) + headers = resHeaders + } else { + var resHeaders string + for k, v := range res.Header { + resHeaders += fmt.Sprintf("%s: %s\n", k, v) + } + + resBody, _ := io.ReadAll(res.Body) + defer res.Body.Close() + body = string(resBody) + headers = resHeaders + } + + s.createIncident(m, check, elapsed.Milliseconds(), statusCode, string(body), headers) +} + +func (s *CheckService) createIncident(m uptimemonitor.Monitor, check uptimemonitor.Check, responseTimeMs int64, statusCode int, body string, headers string) error { + reqURL := m.Url + reqMethod := m.HttpMethod + reqHeaders := m.HttpHeaders + reqBody := m.HttpBody + + if exists, latest := s.incidentAlreadyExists(context.Background(), m, statusCode); exists { + return s.Store.UpdateIncidentBodyAndHeaders(context.Background(), latest, body, headers, reqMethod, reqURL, reqHeaders, reqBody) + } + + s.Store.ResolveMonitorIncidents(context.Background(), m) + + incident := uptimemonitor.Incident{ + MonitorID: m.ID, + StatusCode: check.StatusCode, + ResponseTimeMs: responseTimeMs, + Body: body, + Headers: headers, + ReqUrl: reqURL, + ReqHeaders: reqHeaders, + ReqBody: reqBody, + ReqMethod: reqMethod, + } + + saved, err := s.Store.CreateIncident(context.Background(), incident) + if err != nil { + return fmt.Errorf("failed to create incident for monitor %d: %w", m.ID, err) + } + + if m.WebhookUrl != "" { + s.callWebhook(m, saved) + } + + return nil +} + +func (s *CheckService) incidentAlreadyExists(ctx context.Context, m uptimemonitor.Monitor, statusCode int) (bool, uptimemonitor.Incident) { + latest, err := s.Store.LastIncidentByStatusCode(ctx, m.ID, uptimemonitor.IncidentStatusOpen, statusCode) + if err != nil { + return false, uptimemonitor.Incident{} + } + + return latest.StatusCode == statusCode, latest +} + +func (s *CheckService) callWebhook(m uptimemonitor.Monitor, i uptimemonitor.Incident) { + var customBody io.Reader + + // todo: parse url + if m.WebhookBody != "" { + t, err := template.New("webhook").Parse(m.WebhookBody) + if err != nil { + customBody = strings.NewReader(m.WebhookBody) + } else { + var buf bytes.Buffer + err = t.Execute(&buf, struct { + Url string + StatusCode int + }{ + Url: m.Url, + StatusCode: i.StatusCode, + }) + if err != nil { + customBody = strings.NewReader(m.WebhookBody) + } else { + customBody = strings.NewReader(buf.String()) + } + } + + } + + req, err := http.NewRequest( + m.WebhookMethod, + m.WebhookUrl, + customBody, + ) + + if err != nil { + return + } + + if m.WebhookHeaders != "" { + customHeaders := map[string]string{} + err = json.Unmarshal([]byte(m.WebhookHeaders), &customHeaders) + if err == nil { + for k, v := range customHeaders { + req.Header.Add(k, v) + } + } + } + + http.DefaultClient.Do(req) +} + +func (s *CheckService) Cleanup() { + s.Store.DeleteOldChecks(context.Background()) + s.Store.DeleteOldIncidents(context.Background()) +} diff --git a/service/service.go b/service/service.go new file mode 100644 index 0000000..bd957d9 --- /dev/null +++ b/service/service.go @@ -0,0 +1,17 @@ +package service + +import ( + "uptimemonitor/store" +) + +type Service struct { + CheckService +} + +func New(store *store.Store) *Service { + return &Service{ + CheckService: CheckService{ + Store: store, + }, + } +} diff --git a/session.go b/session.go new file mode 100644 index 0000000..69e38eb --- /dev/null +++ b/session.go @@ -0,0 +1,12 @@ +package uptimemonitor + +import "time" + +type Session struct { + ID int64 + UserID int64 + Uuid string + CreatedAt time.Time + ExpiresAt time.Time + User User +} diff --git a/sponsor.go b/sponsor.go new file mode 100644 index 0000000..e7a9800 --- /dev/null +++ b/sponsor.go @@ -0,0 +1,7 @@ +package uptimemonitor + +type Sponsor struct { + Name string + Url string + Image string +} diff --git a/static/css/daisyui.css b/static/css/daisyui.css new file mode 100644 index 0000000..880a91f --- /dev/null +++ b/static/css/daisyui.css @@ -0,0 +1,7 @@ +/** + * Skipped minification because the original files appears to be already minified. + * Original file: /npm/daisyui@5.0.46/daisyui.css + * + * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files + */ +/*! 🌼 daisyUI 5.0.45 - MIT License */ @layer base{:root,:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(95% 0 0);--color-base-content:oklch(21% .006 285.885);--color-primary:oklch(45% .24 277.023);--color-primary-content:oklch(93% .034 272.788);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=dark]:checked),[data-theme=dark]{color-scheme:dark;--color-base-100:oklch(25.33% .016 252.42);--color-base-200:oklch(23.26% .014 253.1);--color-base-300:oklch(21.15% .012 254.09);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root{--fx-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.34' numOctaves='4' stitchTiles='stitch'%3E%3C/feTurbulence%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)' opacity='0.2'%3E%3C/rect%3E%3C/svg%3E")}*,:after,::backdrop,:before,::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{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");-webkit-tap-highlight-color:#0000}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}table{text-indent:0;border-color:inherit;border-collapse:collapse}::file-selector-button,button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;background:0 0}input:where(:not([type=button],[type=reset],[type=submit])),select,textarea{border-width:1px}::file-selector-button,button,input:where([type=button],[type=reset],[type=submit]){appearance:button}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}::-webkit-search-decoration{-webkit-appearance:none}menu,ol,ul{list-style:none}textarea{resize:vertical}::placeholder{opacity:1;color:color-mix(in oklch,currentColor 50%,#0000)}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}:root{scrollbar-color:color-mix(in oklch,currentColor 35%,#0000)#0000}:root,[data-theme]{background-color:var(--root-bg,var(--color-base-100));color:var(--color-base-content)}:root:has(.modal-open,.modal[open],.modal:target,.modal-toggle:checked,.drawer:not([class*=drawer-open])>.drawer-toggle:checked){overflow:hidden}:where(:root:has(.modal-open,.modal[open],.modal:target,.modal-toggle:checked,.drawer:not(.drawer-open)>.drawer-toggle:checked)){scrollbar-gutter:stable;background-image:linear-gradient(var(--color-base-100),var(--color-base-100));--root-bg:color-mix(in srgb,var(--color-base-100),oklch(0% 0 0) 40%)}:where(.modal[open],.modal-open,.modal-toggle:checked+.modal):not(.modal-start,.modal-end){scrollbar-gutter:stable}@property --radialprogress{syntax: ""; inherits: true; initial-value: 0%;}}@layer utilities{.textarea{border:var(--border)solid #0000;appearance:none;border-radius:var(--radius-field);background-color:var(--color-base-100);vertical-align:middle;touch-action:manipulation;border-color:var(--input-color);width:clamp(3rem,20rem,100%);min-height:5rem;box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);flex-shrink:1;padding-block:.5rem;padding-inline:.75rem;font-size:.875rem;& textarea{appearance:none;background-color:#0000;border:none;&:focus,&:focus-within{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}}&:focus,&:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}&:has(>textarea[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:color-mix(in oklab,var(--color-base-content)40%,transparent);box-shadow:none;&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}&:has(>textarea[disabled])>textarea[disabled]{cursor:not-allowed}}.textarea-ghost{box-shadow:none;background-color:#0000;border-color:#0000;&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.textarea-neutral{&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.textarea-primary{&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.textarea-secondary{&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.textarea-accent{&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.textarea-info{&,&:focus,&:focus-within{--input-color:var(--color-info)}}.textarea-success{&,&:focus,&:focus-within{--input-color:var(--color-success)}}.textarea-warning{&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.textarea-error{&,&:focus,&:focus-within{--input-color:var(--color-error)}}.textarea-xs{font-size:.6875rem}.textarea-sm{font-size:.75rem}.textarea-md{font-size:.875rem}.textarea-lg{font-size:1.125rem}.textarea-xl{font-size:1.375rem}@media (width>=640px){.sm\:textarea{border:var(--border)solid #0000;appearance:none;border-radius:var(--radius-field);background-color:var(--color-base-100);vertical-align:middle;touch-action:manipulation;border-color:var(--input-color);width:clamp(3rem,20rem,100%);min-height:5rem;box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);flex-shrink:1;padding-block:.5rem;padding-inline:.75rem;font-size:.875rem;& textarea{appearance:none;background-color:#0000;border:none;&:focus,&:focus-within{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}}&:focus,&:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}&:has(>textarea[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:color-mix(in oklab,var(--color-base-content)40%,transparent);box-shadow:none;&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}&:has(>textarea[disabled])>textarea[disabled]{cursor:not-allowed}}.sm\:textarea-ghost{box-shadow:none;background-color:#0000;border-color:#0000;&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.sm\:textarea-neutral{&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.sm\:textarea-primary{&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.sm\:textarea-secondary{&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.sm\:textarea-accent{&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.sm\:textarea-info{&,&:focus,&:focus-within{--input-color:var(--color-info)}}.sm\:textarea-success{&,&:focus,&:focus-within{--input-color:var(--color-success)}}.sm\:textarea-warning{&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.sm\:textarea-error{&,&:focus,&:focus-within{--input-color:var(--color-error)}}.sm\:textarea-xs{font-size:.6875rem}.sm\:textarea-sm{font-size:.75rem}.sm\:textarea-md{font-size:.875rem}.sm\:textarea-lg{font-size:1.125rem}.sm\:textarea-xl{font-size:1.375rem}}@media (width>=768px){.md\:textarea{border:var(--border)solid #0000;appearance:none;border-radius:var(--radius-field);background-color:var(--color-base-100);vertical-align:middle;touch-action:manipulation;border-color:var(--input-color);width:clamp(3rem,20rem,100%);min-height:5rem;box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);flex-shrink:1;padding-block:.5rem;padding-inline:.75rem;font-size:.875rem;& textarea{appearance:none;background-color:#0000;border:none;&:focus,&:focus-within{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}}&:focus,&:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}&:has(>textarea[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:color-mix(in oklab,var(--color-base-content)40%,transparent);box-shadow:none;&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}&:has(>textarea[disabled])>textarea[disabled]{cursor:not-allowed}}.md\:textarea-ghost{box-shadow:none;background-color:#0000;border-color:#0000;&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.md\:textarea-neutral{&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.md\:textarea-primary{&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.md\:textarea-secondary{&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.md\:textarea-accent{&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.md\:textarea-info{&,&:focus,&:focus-within{--input-color:var(--color-info)}}.md\:textarea-success{&,&:focus,&:focus-within{--input-color:var(--color-success)}}.md\:textarea-warning{&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.md\:textarea-error{&,&:focus,&:focus-within{--input-color:var(--color-error)}}.md\:textarea-xs{font-size:.6875rem}.md\:textarea-sm{font-size:.75rem}.md\:textarea-md{font-size:.875rem}.md\:textarea-lg{font-size:1.125rem}.md\:textarea-xl{font-size:1.375rem}}@media (width>=1024px){.lg\:textarea{border:var(--border)solid #0000;appearance:none;border-radius:var(--radius-field);background-color:var(--color-base-100);vertical-align:middle;touch-action:manipulation;border-color:var(--input-color);width:clamp(3rem,20rem,100%);min-height:5rem;box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);flex-shrink:1;padding-block:.5rem;padding-inline:.75rem;font-size:.875rem;& textarea{appearance:none;background-color:#0000;border:none;&:focus,&:focus-within{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}}&:focus,&:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}&:has(>textarea[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:color-mix(in oklab,var(--color-base-content)40%,transparent);box-shadow:none;&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}&:has(>textarea[disabled])>textarea[disabled]{cursor:not-allowed}}.lg\:textarea-ghost{box-shadow:none;background-color:#0000;border-color:#0000;&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.lg\:textarea-neutral{&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.lg\:textarea-primary{&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.lg\:textarea-secondary{&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.lg\:textarea-accent{&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.lg\:textarea-info{&,&:focus,&:focus-within{--input-color:var(--color-info)}}.lg\:textarea-success{&,&:focus,&:focus-within{--input-color:var(--color-success)}}.lg\:textarea-warning{&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.lg\:textarea-error{&,&:focus,&:focus-within{--input-color:var(--color-error)}}.lg\:textarea-xs{font-size:.6875rem}.lg\:textarea-sm{font-size:.75rem}.lg\:textarea-md{font-size:.875rem}.lg\:textarea-lg{font-size:1.125rem}.lg\:textarea-xl{font-size:1.375rem}}@media (width>=1280px){.xl\:textarea{border:var(--border)solid #0000;appearance:none;border-radius:var(--radius-field);background-color:var(--color-base-100);vertical-align:middle;touch-action:manipulation;border-color:var(--input-color);width:clamp(3rem,20rem,100%);min-height:5rem;box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);flex-shrink:1;padding-block:.5rem;padding-inline:.75rem;font-size:.875rem;& textarea{appearance:none;background-color:#0000;border:none;&:focus,&:focus-within{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}}&:focus,&:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}&:has(>textarea[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:color-mix(in oklab,var(--color-base-content)40%,transparent);box-shadow:none;&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}&:has(>textarea[disabled])>textarea[disabled]{cursor:not-allowed}}.xl\:textarea-ghost{box-shadow:none;background-color:#0000;border-color:#0000;&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.xl\:textarea-neutral{&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.xl\:textarea-primary{&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.xl\:textarea-secondary{&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.xl\:textarea-accent{&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.xl\:textarea-info{&,&:focus,&:focus-within{--input-color:var(--color-info)}}.xl\:textarea-success{&,&:focus,&:focus-within{--input-color:var(--color-success)}}.xl\:textarea-warning{&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.xl\:textarea-error{&,&:focus,&:focus-within{--input-color:var(--color-error)}}.xl\:textarea-xs{font-size:.6875rem}.xl\:textarea-sm{font-size:.75rem}.xl\:textarea-md{font-size:.875rem}.xl\:textarea-lg{font-size:1.125rem}.xl\:textarea-xl{font-size:1.375rem}}@media (width>=1536px){.\32 xl\:textarea{border:var(--border)solid #0000;appearance:none;border-radius:var(--radius-field);background-color:var(--color-base-100);vertical-align:middle;touch-action:manipulation;border-color:var(--input-color);width:clamp(3rem,20rem,100%);min-height:5rem;box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);flex-shrink:1;padding-block:.5rem;padding-inline:.75rem;font-size:.875rem;& textarea{appearance:none;background-color:#0000;border:none;&:focus,&:focus-within{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}}&:focus,&:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}&:has(>textarea[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:color-mix(in oklab,var(--color-base-content)40%,transparent);box-shadow:none;&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}&:has(>textarea[disabled])>textarea[disabled]{cursor:not-allowed}}.\32 xl\:textarea-ghost{box-shadow:none;background-color:#0000;border-color:#0000;&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.\32 xl\:textarea-neutral{&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.\32 xl\:textarea-primary{&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.\32 xl\:textarea-secondary{&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.\32 xl\:textarea-accent{&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.\32 xl\:textarea-info{&,&:focus,&:focus-within{--input-color:var(--color-info)}}.\32 xl\:textarea-success{&,&:focus,&:focus-within{--input-color:var(--color-success)}}.\32 xl\:textarea-warning{&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.\32 xl\:textarea-error{&,&:focus,&:focus-within{--input-color:var(--color-error)}}.\32 xl\:textarea-xs{font-size:.6875rem}.\32 xl\:textarea-sm{font-size:.75rem}.\32 xl\:textarea-md{font-size:.875rem}.\32 xl\:textarea-lg{font-size:1.125rem}.\32 xl\:textarea-xl{font-size:1.375rem}}.skeleton{border-radius:var(--radius-box);background-color:var(--color-base-300);will-change:background-position;background-image:linear-gradient(105deg,#0000 0% 40%,var(--color-base-100)50%,#0000 60% 100%);background-position-x:-50%;background-repeat:no-repeat;background-size:200%;animation:1.8s ease-in-out infinite skeleton;@media (prefers-reduced-motion:reduce){&{transition-duration:15s}}}@keyframes skeleton{0%{background-position:150%}to{background-position:-50%}}.stats{border-radius:var(--radius-box);grid-auto-flow:column;display:inline-grid;position:relative;overflow-x:auto}.stat{grid-template-columns:repeat(1,1fr);column-gap:1rem;width:100%;padding-block:1rem;padding-inline:1.5rem;display:inline-grid;&:not(:last-child){border-inline-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000);border-block-end:none}}.stat-figure{grid-row:1/span 3;grid-column-start:2;place-self:center flex-end}.stat-title{white-space:nowrap;color:color-mix(in oklab,var(--color-base-content)60%,transparent);grid-column-start:1;font-size:.75rem}.stat-value{white-space:nowrap;grid-column-start:1;font-size:2rem;font-weight:800}.stat-desc{white-space:nowrap;color:color-mix(in oklab,var(--color-base-content)60%,transparent);grid-column-start:1;font-size:.75rem}.stat-actions{white-space:nowrap;grid-column-start:1}.stats-horizontal{grid-auto-flow:column;overflow-x:auto;& .stat:not(:last-child){border-inline-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000);border-block-end:none}}.stats-vertical{grid-auto-flow:row;overflow-y:auto;& .stat:not(:last-child){border-inline-end:none;border-block-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000)}}@media (width>=640px){.sm\:stats{border-radius:var(--radius-box);grid-auto-flow:column;display:inline-grid;position:relative;overflow-x:auto}.sm\:stat{grid-template-columns:repeat(1,1fr);column-gap:1rem;width:100%;padding-block:1rem;padding-inline:1.5rem;display:inline-grid;&:not(:last-child){border-inline-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000);border-block-end:none}}.sm\:stat-figure{grid-row:1/span 3;grid-column-start:2;place-self:center flex-end}.sm\:stat-title{white-space:nowrap;color:color-mix(in oklab,var(--color-base-content)60%,transparent);grid-column-start:1;font-size:.75rem}.sm\:stat-value{white-space:nowrap;grid-column-start:1;font-size:2rem;font-weight:800}.sm\:stat-desc{white-space:nowrap;color:color-mix(in oklab,var(--color-base-content)60%,transparent);grid-column-start:1;font-size:.75rem}.sm\:stat-actions{white-space:nowrap;grid-column-start:1}.sm\:stats-horizontal{grid-auto-flow:column;overflow-x:auto;& .stat:not(:last-child){border-inline-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000);border-block-end:none}}.sm\:stats-vertical{grid-auto-flow:row;overflow-y:auto;& .stat:not(:last-child){border-inline-end:none;border-block-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000)}}}@media (width>=768px){.md\:stats{border-radius:var(--radius-box);grid-auto-flow:column;display:inline-grid;position:relative;overflow-x:auto}.md\:stat{grid-template-columns:repeat(1,1fr);column-gap:1rem;width:100%;padding-block:1rem;padding-inline:1.5rem;display:inline-grid;&:not(:last-child){border-inline-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000);border-block-end:none}}.md\:stat-figure{grid-row:1/span 3;grid-column-start:2;place-self:center flex-end}.md\:stat-title{white-space:nowrap;color:color-mix(in oklab,var(--color-base-content)60%,transparent);grid-column-start:1;font-size:.75rem}.md\:stat-value{white-space:nowrap;grid-column-start:1;font-size:2rem;font-weight:800}.md\:stat-desc{white-space:nowrap;color:color-mix(in oklab,var(--color-base-content)60%,transparent);grid-column-start:1;font-size:.75rem}.md\:stat-actions{white-space:nowrap;grid-column-start:1}.md\:stats-horizontal{grid-auto-flow:column;overflow-x:auto;& .stat:not(:last-child){border-inline-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000);border-block-end:none}}.md\:stats-vertical{grid-auto-flow:row;overflow-y:auto;& .stat:not(:last-child){border-inline-end:none;border-block-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000)}}}@media (width>=1024px){.lg\:stats{border-radius:var(--radius-box);grid-auto-flow:column;display:inline-grid;position:relative;overflow-x:auto}.lg\:stat{grid-template-columns:repeat(1,1fr);column-gap:1rem;width:100%;padding-block:1rem;padding-inline:1.5rem;display:inline-grid;&:not(:last-child){border-inline-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000);border-block-end:none}}.lg\:stat-figure{grid-row:1/span 3;grid-column-start:2;place-self:center flex-end}.lg\:stat-title{white-space:nowrap;color:color-mix(in oklab,var(--color-base-content)60%,transparent);grid-column-start:1;font-size:.75rem}.lg\:stat-value{white-space:nowrap;grid-column-start:1;font-size:2rem;font-weight:800}.lg\:stat-desc{white-space:nowrap;color:color-mix(in oklab,var(--color-base-content)60%,transparent);grid-column-start:1;font-size:.75rem}.lg\:stat-actions{white-space:nowrap;grid-column-start:1}.lg\:stats-horizontal{grid-auto-flow:column;overflow-x:auto;& .stat:not(:last-child){border-inline-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000);border-block-end:none}}.lg\:stats-vertical{grid-auto-flow:row;overflow-y:auto;& .stat:not(:last-child){border-inline-end:none;border-block-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000)}}}@media (width>=1280px){.xl\:stats{border-radius:var(--radius-box);grid-auto-flow:column;display:inline-grid;position:relative;overflow-x:auto}.xl\:stat{grid-template-columns:repeat(1,1fr);column-gap:1rem;width:100%;padding-block:1rem;padding-inline:1.5rem;display:inline-grid;&:not(:last-child){border-inline-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000);border-block-end:none}}.xl\:stat-figure{grid-row:1/span 3;grid-column-start:2;place-self:center flex-end}.xl\:stat-title{white-space:nowrap;color:color-mix(in oklab,var(--color-base-content)60%,transparent);grid-column-start:1;font-size:.75rem}.xl\:stat-value{white-space:nowrap;grid-column-start:1;font-size:2rem;font-weight:800}.xl\:stat-desc{white-space:nowrap;color:color-mix(in oklab,var(--color-base-content)60%,transparent);grid-column-start:1;font-size:.75rem}.xl\:stat-actions{white-space:nowrap;grid-column-start:1}.xl\:stats-horizontal{grid-auto-flow:column;overflow-x:auto;& .stat:not(:last-child){border-inline-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000);border-block-end:none}}.xl\:stats-vertical{grid-auto-flow:row;overflow-y:auto;& .stat:not(:last-child){border-inline-end:none;border-block-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000)}}}@media (width>=1536px){.\32 xl\:stats{border-radius:var(--radius-box);grid-auto-flow:column;display:inline-grid;position:relative;overflow-x:auto}.\32 xl\:stat{grid-template-columns:repeat(1,1fr);column-gap:1rem;width:100%;padding-block:1rem;padding-inline:1.5rem;display:inline-grid;&:not(:last-child){border-inline-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000);border-block-end:none}}.\32 xl\:stat-figure{grid-row:1/span 3;grid-column-start:2;place-self:center flex-end}.\32 xl\:stat-title{white-space:nowrap;color:color-mix(in oklab,var(--color-base-content)60%,transparent);grid-column-start:1;font-size:.75rem}.\32 xl\:stat-value{white-space:nowrap;grid-column-start:1;font-size:2rem;font-weight:800}.\32 xl\:stat-desc{white-space:nowrap;color:color-mix(in oklab,var(--color-base-content)60%,transparent);grid-column-start:1;font-size:.75rem}.\32 xl\:stat-actions{white-space:nowrap;grid-column-start:1}.\32 xl\:stats-horizontal{grid-auto-flow:column;overflow-x:auto;& .stat:not(:last-child){border-inline-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000);border-block-end:none}}.\32 xl\:stats-vertical{grid-auto-flow:row;overflow-y:auto;& .stat:not(:last-child){border-inline-end:none;border-block-end:var(--border)dashed color-mix(in oklab,currentColor 10%,#0000)}}}:where(.btn){width:unset}.btn{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0/calc(var(--depth)*.15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0/calc(var(--depth)*6%))inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:color-mix(in oklab,var(--btn-bg),#000 calc(var(--depth)*5%));--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000);--btn-noise:var(--fx-noise);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex;.prose &{text-decoration-line:none}@media (hover:hover){&:hover{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}&:focus-visible{isolation:isolate;outline-width:2px;outline-style:solid}&:active:not(.btn-active){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 5%);--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);translate:0 .5px}&:is(:disabled,[disabled],.btn-disabled){pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000);&:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);box-shadow:none}@media (hover:hover){&:hover{pointer-events:none;background-color:color-mix(in oklab,var(--color-neutral)20%,transparent);--btn-border:#0000;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}}&:is(input[type=checkbox],input[type=radio]){appearance:none;&:after{content:attr(aria-label)}}&:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}}.btn-active{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);isolation:isolate}.btn-primary{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}.btn-secondary{--btn-color:var(--color-secondary);--btn-fg:var(--color-secondary-content)}.btn-accent{--btn-color:var(--color-accent);--btn-fg:var(--color-accent-content)}.btn-neutral{--btn-color:var(--color-neutral);--btn-fg:var(--color-neutral-content)}.btn-info{--btn-color:var(--color-info);--btn-fg:var(--color-info-content)}.btn-success{--btn-color:var(--color-success);--btn-fg:var(--color-success-content)}.btn-warning{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content)}.btn-error{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}.btn-ghost{&:not(.btn-active,:hover,:active:focus,:focus-visible){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;&:not(:disabled,[disabled],.btn-disabled){--btn-fg:currentColor;outline-color:currentColor}}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;--btn-fg:currentColor}}}.btn-link{--btn-border:#0000;--btn-bg:#0000;--btn-fg:var(--color-primary);--btn-noise:none;--btn-shadow:"";outline-color:currentColor;text-decoration-line:underline;&:is(.btn-active,:hover,:active:focus,:focus-visible){--btn-border:#0000;--btn-bg:#0000;text-decoration-line:underline}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){text-decoration-line:none}}}.btn-outline{&:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}}}.btn-dash{&:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none;border-style:dashed}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none;border-style:dashed}}}.btn-soft{&:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}}}.btn-xs{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem)*6)}.btn-sm{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem)*8)}.btn-md{--fontsize:.875rem;--btn-p:1rem;--size:calc(var(--size-field,.25rem)*10)}.btn-lg{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}.btn-xl{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem)*14)}.btn-square{width:var(--size);height:var(--size);padding-inline:0}.btn-circle{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}.btn-wide{width:100%;max-width:16rem}.btn-block{width:100%}@media (width>=640px){:where(.btn){width:unset}.sm\:btn{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0/calc(var(--depth)*.15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0/calc(var(--depth)*6%))inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:color-mix(in oklab,var(--btn-bg),#000 calc(var(--depth)*5%));--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000);--btn-noise:var(--fx-noise);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex;.prose &{text-decoration-line:none}@media (hover:hover){&:hover{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}&:focus-visible{isolation:isolate;outline-width:2px;outline-style:solid}&:active:not(.btn-active){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 5%);--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);translate:0 .5px}&:is(:disabled,[disabled],.btn-disabled){pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000);&:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);box-shadow:none}@media (hover:hover){&:hover{pointer-events:none;background-color:color-mix(in oklab,var(--color-neutral)20%,transparent);--btn-border:#0000;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}}&:is(input[type=checkbox],input[type=radio]){appearance:none;&:after{content:attr(aria-label)}}&:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}}.sm\:btn-active{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);isolation:isolate}.sm\:btn-primary{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}.sm\:btn-secondary{--btn-color:var(--color-secondary);--btn-fg:var(--color-secondary-content)}.sm\:btn-accent{--btn-color:var(--color-accent);--btn-fg:var(--color-accent-content)}.sm\:btn-neutral{--btn-color:var(--color-neutral);--btn-fg:var(--color-neutral-content)}.sm\:btn-info{--btn-color:var(--color-info);--btn-fg:var(--color-info-content)}.sm\:btn-success{--btn-color:var(--color-success);--btn-fg:var(--color-success-content)}.sm\:btn-warning{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content)}.sm\:btn-error{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}.sm\:btn-ghost{&:not(.btn-active,:hover,:active:focus,:focus-visible){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;&:not(:disabled,[disabled],.btn-disabled){--btn-fg:currentColor;outline-color:currentColor}}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;--btn-fg:currentColor}}}.sm\:btn-link{--btn-border:#0000;--btn-bg:#0000;--btn-fg:var(--color-primary);--btn-noise:none;--btn-shadow:"";outline-color:currentColor;text-decoration-line:underline;&:is(.btn-active,:hover,:active:focus,:focus-visible){--btn-border:#0000;--btn-bg:#0000;text-decoration-line:underline}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){text-decoration-line:none}}}.sm\:btn-outline{&:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}}}.sm\:btn-dash{&:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none;border-style:dashed}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none;border-style:dashed}}}.sm\:btn-soft{&:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}}}.sm\:btn-xs{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem)*6)}.sm\:btn-sm{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem)*8)}.sm\:btn-md{--fontsize:.875rem;--btn-p:1rem;--size:calc(var(--size-field,.25rem)*10)}.sm\:btn-lg{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}.sm\:btn-xl{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem)*14)}.sm\:btn-square{width:var(--size);height:var(--size);padding-inline:0}.sm\:btn-circle{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}.sm\:btn-wide{width:100%;max-width:16rem}.sm\:btn-block{width:100%}}@media (width>=768px){:where(.btn){width:unset}.md\:btn{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0/calc(var(--depth)*.15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0/calc(var(--depth)*6%))inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:color-mix(in oklab,var(--btn-bg),#000 calc(var(--depth)*5%));--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000);--btn-noise:var(--fx-noise);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex;.prose &{text-decoration-line:none}@media (hover:hover){&:hover{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}&:focus-visible{isolation:isolate;outline-width:2px;outline-style:solid}&:active:not(.btn-active){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 5%);--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);translate:0 .5px}&:is(:disabled,[disabled],.btn-disabled){pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000);&:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);box-shadow:none}@media (hover:hover){&:hover{pointer-events:none;background-color:color-mix(in oklab,var(--color-neutral)20%,transparent);--btn-border:#0000;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}}&:is(input[type=checkbox],input[type=radio]){appearance:none;&:after{content:attr(aria-label)}}&:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}}.md\:btn-active{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);isolation:isolate}.md\:btn-primary{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}.md\:btn-secondary{--btn-color:var(--color-secondary);--btn-fg:var(--color-secondary-content)}.md\:btn-accent{--btn-color:var(--color-accent);--btn-fg:var(--color-accent-content)}.md\:btn-neutral{--btn-color:var(--color-neutral);--btn-fg:var(--color-neutral-content)}.md\:btn-info{--btn-color:var(--color-info);--btn-fg:var(--color-info-content)}.md\:btn-success{--btn-color:var(--color-success);--btn-fg:var(--color-success-content)}.md\:btn-warning{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content)}.md\:btn-error{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}.md\:btn-ghost{&:not(.btn-active,:hover,:active:focus,:focus-visible){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;&:not(:disabled,[disabled],.btn-disabled){--btn-fg:currentColor;outline-color:currentColor}}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;--btn-fg:currentColor}}}.md\:btn-link{--btn-border:#0000;--btn-bg:#0000;--btn-fg:var(--color-primary);--btn-noise:none;--btn-shadow:"";outline-color:currentColor;text-decoration-line:underline;&:is(.btn-active,:hover,:active:focus,:focus-visible){--btn-border:#0000;--btn-bg:#0000;text-decoration-line:underline}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){text-decoration-line:none}}}.md\:btn-outline{&:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}}}.md\:btn-dash{&:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none;border-style:dashed}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none;border-style:dashed}}}.md\:btn-soft{&:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}}}.md\:btn-xs{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem)*6)}.md\:btn-sm{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem)*8)}.md\:btn-md{--fontsize:.875rem;--btn-p:1rem;--size:calc(var(--size-field,.25rem)*10)}.md\:btn-lg{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}.md\:btn-xl{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem)*14)}.md\:btn-square{width:var(--size);height:var(--size);padding-inline:0}.md\:btn-circle{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}.md\:btn-wide{width:100%;max-width:16rem}.md\:btn-block{width:100%}}@media (width>=1024px){:where(.btn){width:unset}.lg\:btn{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0/calc(var(--depth)*.15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0/calc(var(--depth)*6%))inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:color-mix(in oklab,var(--btn-bg),#000 calc(var(--depth)*5%));--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000);--btn-noise:var(--fx-noise);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex;.prose &{text-decoration-line:none}@media (hover:hover){&:hover{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}&:focus-visible{isolation:isolate;outline-width:2px;outline-style:solid}&:active:not(.btn-active){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 5%);--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);translate:0 .5px}&:is(:disabled,[disabled],.btn-disabled){pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000);&:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);box-shadow:none}@media (hover:hover){&:hover{pointer-events:none;background-color:color-mix(in oklab,var(--color-neutral)20%,transparent);--btn-border:#0000;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}}&:is(input[type=checkbox],input[type=radio]){appearance:none;&:after{content:attr(aria-label)}}&:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}}.lg\:btn-active{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);isolation:isolate}.lg\:btn-primary{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}.lg\:btn-secondary{--btn-color:var(--color-secondary);--btn-fg:var(--color-secondary-content)}.lg\:btn-accent{--btn-color:var(--color-accent);--btn-fg:var(--color-accent-content)}.lg\:btn-neutral{--btn-color:var(--color-neutral);--btn-fg:var(--color-neutral-content)}.lg\:btn-info{--btn-color:var(--color-info);--btn-fg:var(--color-info-content)}.lg\:btn-success{--btn-color:var(--color-success);--btn-fg:var(--color-success-content)}.lg\:btn-warning{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content)}.lg\:btn-error{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}.lg\:btn-ghost{&:not(.btn-active,:hover,:active:focus,:focus-visible){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;&:not(:disabled,[disabled],.btn-disabled){--btn-fg:currentColor;outline-color:currentColor}}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;--btn-fg:currentColor}}}.lg\:btn-link{--btn-border:#0000;--btn-bg:#0000;--btn-fg:var(--color-primary);--btn-noise:none;--btn-shadow:"";outline-color:currentColor;text-decoration-line:underline;&:is(.btn-active,:hover,:active:focus,:focus-visible){--btn-border:#0000;--btn-bg:#0000;text-decoration-line:underline}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){text-decoration-line:none}}}.lg\:btn-outline{&:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}}}.lg\:btn-dash{&:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none;border-style:dashed}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none;border-style:dashed}}}.lg\:btn-soft{&:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}}}.lg\:btn-xs{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem)*6)}.lg\:btn-sm{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem)*8)}.lg\:btn-md{--fontsize:.875rem;--btn-p:1rem;--size:calc(var(--size-field,.25rem)*10)}.lg\:btn-lg{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}.lg\:btn-xl{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem)*14)}.lg\:btn-square{width:var(--size);height:var(--size);padding-inline:0}.lg\:btn-circle{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}.lg\:btn-wide{width:100%;max-width:16rem}.lg\:btn-block{width:100%}}@media (width>=1280px){:where(.btn){width:unset}.xl\:btn{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0/calc(var(--depth)*.15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0/calc(var(--depth)*6%))inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:color-mix(in oklab,var(--btn-bg),#000 calc(var(--depth)*5%));--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000);--btn-noise:var(--fx-noise);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex;.prose &{text-decoration-line:none}@media (hover:hover){&:hover{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}&:focus-visible{isolation:isolate;outline-width:2px;outline-style:solid}&:active:not(.btn-active){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 5%);--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);translate:0 .5px}&:is(:disabled,[disabled],.btn-disabled){pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000);&:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);box-shadow:none}@media (hover:hover){&:hover{pointer-events:none;background-color:color-mix(in oklab,var(--color-neutral)20%,transparent);--btn-border:#0000;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}}&:is(input[type=checkbox],input[type=radio]){appearance:none;&:after{content:attr(aria-label)}}&:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}}.xl\:btn-active{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);isolation:isolate}.xl\:btn-primary{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}.xl\:btn-secondary{--btn-color:var(--color-secondary);--btn-fg:var(--color-secondary-content)}.xl\:btn-accent{--btn-color:var(--color-accent);--btn-fg:var(--color-accent-content)}.xl\:btn-neutral{--btn-color:var(--color-neutral);--btn-fg:var(--color-neutral-content)}.xl\:btn-info{--btn-color:var(--color-info);--btn-fg:var(--color-info-content)}.xl\:btn-success{--btn-color:var(--color-success);--btn-fg:var(--color-success-content)}.xl\:btn-warning{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content)}.xl\:btn-error{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}.xl\:btn-ghost{&:not(.btn-active,:hover,:active:focus,:focus-visible){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;&:not(:disabled,[disabled],.btn-disabled){--btn-fg:currentColor;outline-color:currentColor}}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;--btn-fg:currentColor}}}.xl\:btn-link{--btn-border:#0000;--btn-bg:#0000;--btn-fg:var(--color-primary);--btn-noise:none;--btn-shadow:"";outline-color:currentColor;text-decoration-line:underline;&:is(.btn-active,:hover,:active:focus,:focus-visible){--btn-border:#0000;--btn-bg:#0000;text-decoration-line:underline}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){text-decoration-line:none}}}.xl\:btn-outline{&:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}}}.xl\:btn-dash{&:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none;border-style:dashed}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none;border-style:dashed}}}.xl\:btn-soft{&:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}}}.xl\:btn-xs{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem)*6)}.xl\:btn-sm{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem)*8)}.xl\:btn-md{--fontsize:.875rem;--btn-p:1rem;--size:calc(var(--size-field,.25rem)*10)}.xl\:btn-lg{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}.xl\:btn-xl{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem)*14)}.xl\:btn-square{width:var(--size);height:var(--size);padding-inline:0}.xl\:btn-circle{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}.xl\:btn-wide{width:100%;max-width:16rem}.xl\:btn-block{width:100%}}@media (width>=1536px){:where(.btn){width:unset}.\32 xl\:btn{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0/calc(var(--depth)*.15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0/calc(var(--depth)*6%))inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:color-mix(in oklab,var(--btn-bg),#000 calc(var(--depth)*5%));--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000);--btn-noise:var(--fx-noise);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex;.prose &{text-decoration-line:none}@media (hover:hover){&:hover{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}&:focus-visible{isolation:isolate;outline-width:2px;outline-style:solid}&:active:not(.btn-active){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 5%);--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);translate:0 .5px}&:is(:disabled,[disabled],.btn-disabled){pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000);&:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);box-shadow:none}@media (hover:hover){&:hover{pointer-events:none;background-color:color-mix(in oklab,var(--color-neutral)20%,transparent);--btn-border:#0000;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}}&:is(input[type=checkbox],input[type=radio]){appearance:none;&:after{content:attr(aria-label)}}&:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}}.\32 xl\:btn-active{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);isolation:isolate}.\32 xl\:btn-primary{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}.\32 xl\:btn-secondary{--btn-color:var(--color-secondary);--btn-fg:var(--color-secondary-content)}.\32 xl\:btn-accent{--btn-color:var(--color-accent);--btn-fg:var(--color-accent-content)}.\32 xl\:btn-neutral{--btn-color:var(--color-neutral);--btn-fg:var(--color-neutral-content)}.\32 xl\:btn-info{--btn-color:var(--color-info);--btn-fg:var(--color-info-content)}.\32 xl\:btn-success{--btn-color:var(--color-success);--btn-fg:var(--color-success-content)}.\32 xl\:btn-warning{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content)}.\32 xl\:btn-error{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}.\32 xl\:btn-ghost{&:not(.btn-active,:hover,:active:focus,:focus-visible){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;&:not(:disabled,[disabled],.btn-disabled){--btn-fg:currentColor;outline-color:currentColor}}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;--btn-fg:currentColor}}}.\32 xl\:btn-link{--btn-border:#0000;--btn-bg:#0000;--btn-fg:var(--color-primary);--btn-noise:none;--btn-shadow:"";outline-color:currentColor;text-decoration-line:underline;&:is(.btn-active,:hover,:active:focus,:focus-visible){--btn-border:#0000;--btn-bg:#0000;text-decoration-line:underline}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){text-decoration-line:none}}}.\32 xl\:btn-outline{&:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}}}.\32 xl\:btn-dash{&:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none;border-style:dashed}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled,:checked){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none;border-style:dashed}}}.\32 xl\:btn-soft{&:not(.btn-active,:hover,:active:focus,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}@media (hover:none){&:hover:not(.btn-active,:active,:focus-visible,:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}}}.\32 xl\:btn-xs{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem)*6)}.\32 xl\:btn-sm{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem)*8)}.\32 xl\:btn-md{--fontsize:.875rem;--btn-p:1rem;--size:calc(var(--size-field,.25rem)*10)}.\32 xl\:btn-lg{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}.\32 xl\:btn-xl{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem)*14)}.\32 xl\:btn-square{width:var(--size);height:var(--size);padding-inline:0}.\32 xl\:btn-circle{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}.\32 xl\:btn-wide{width:100%;max-width:16rem}.\32 xl\:btn-block{width:100%}}.menu{--menu-active-fg:var(--color-neutral-content);--menu-active-bg:var(--color-neutral);flex-flow:column wrap;width:fit-content;padding:.5rem;font-size:.875rem;display:flex;& :where(li ul){white-space:nowrap;margin-inline-start:1rem;padding-inline-start:.5rem;position:relative;&:before{inset-inline-start:0;background-color:var(--color-base-content);opacity:.1;width:var(--border);content:"";position:absolute;top:.75rem;bottom:.75rem}}& :where(li>.menu-dropdown:not(.menu-dropdown-show)){display:none}& :where(li:not(.menu-title)>:not(ul,details,.menu-title,.btn)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);text-align:start;text-wrap:balance;user-select:none;grid-auto-columns:minmax(auto,max-content) auto max-content;grid-auto-flow:column;align-content:flex-start;align-items:center;gap:.5rem;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:grid}& :where(li>details>summary){--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}&::-webkit-details-marker{display:none}}& :where(li>details>summary),& :where(li>.menu-dropdown-toggle){&:after{content:"";transform-origin:50%;pointer-events:none;justify-self:flex-end;width:.375rem;height:.375rem;transition-property:rotate,translate;transition-duration:.2s;display:block;translate:0 -1px;rotate:-135deg;box-shadow:inset 2px 2px}}& :where(li>details[open]>summary):after,& :where(li>.menu-dropdown-toggle.menu-dropdown-show):after{translate:0 1px;rotate:45deg}& :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn){&.menu-focus,&:focus-visible{cursor:pointer;background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);color:var(--color-base-content);--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}}& :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){cursor:pointer;background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);--tw-outline-style:none;outline-style:none;box-shadow:inset 0 1px oklch(0% 0 0/.01),inset 0 -1px oklch(100% 0 0/.01);@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}& :where(li:empty){background-color:var(--color-base-content);opacity:.1;height:1px;margin:.5rem 1rem}& :where(li){flex-flow:column wrap;flex-shrink:0;align-items:stretch;display:flex;position:relative;& .badge{justify-self:flex-end}&>:not(ul,.menu-title,details,.btn):active,&>:not(ul,.menu-title,details,.btn).menu-active,&>details>summary:active{--tw-outline-style:none;color:var(--menu-active-fg);background-color:var(--menu-active-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}&:not(&:active){box-shadow:0 2px calc(var(--depth)*3px)-2px var(--menu-active-bg)}}&.menu-disabled{pointer-events:none;color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}& .dropdown:focus-within{& .menu-dropdown-toggle:after{translate:0 1px;rotate:45deg}}& .dropdown-content{margin-top:.5rem;padding:.5rem;&:before{display:none}}}.menu-title{color:color-mix(in oklab,var(--color-base-content)40%,transparent);padding-block:.5rem;padding-inline:.75rem;font-size:.875rem;font-weight:600}.menu-horizontal{flex-direction:row;display:inline-flex;&>li:not(.menu-title)>details>ul{margin-inline-start:0;margin-top:1rem;padding-block:.5rem;padding-inline-end:.5rem;position:absolute}&>li>details>ul{&:before{content:none}}:where(&>li:not(.menu-title)>details>ul){border-radius:var(--radius-box);background-color:var(--color-base-100);box-shadow:0 1px 3px oklch(0% 0 0/.1),0 1px 2px -1px oklch(0% 0 0/.1)}}.menu-vertical{flex-direction:column;display:inline-flex;&>li:not(.menu-title)>details>ul{margin-inline-start:1rem;margin-top:0;padding-block:0;padding-inline-end:0;position:relative}}.menu-xs{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.25rem;padding-inline:.5rem;font-size:.6875rem}& .menu-title{padding-block:.25rem;padding-inline:.5rem}}.menu-sm{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.25rem;padding-inline:.625rem;font-size:.75rem}& .menu-title{padding-block:.5rem;padding-inline:.75rem}}.menu-md{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:.75rem;font-size:.875rem}& .menu-title{padding-block:.5rem;padding-inline:.75rem}}.menu-lg{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:1rem;font-size:1.125rem}& .menu-title{padding-block:.75rem;padding-inline:1.5rem}}.menu-xl{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:1.25rem;font-size:1.375rem}& .menu-title{padding-block:.75rem;padding-inline:1.5rem}}@media (width>=640px){.sm\:menu{--menu-active-fg:var(--color-neutral-content);--menu-active-bg:var(--color-neutral);flex-flow:column wrap;width:fit-content;padding:.5rem;font-size:.875rem;display:flex;& :where(li ul){white-space:nowrap;margin-inline-start:1rem;padding-inline-start:.5rem;position:relative;&:before{inset-inline-start:0;background-color:var(--color-base-content);opacity:.1;width:var(--border);content:"";position:absolute;top:.75rem;bottom:.75rem}}& :where(li>.menu-dropdown:not(.menu-dropdown-show)){display:none}& :where(li:not(.menu-title)>:not(ul,details,.menu-title,.btn)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);text-align:start;text-wrap:balance;user-select:none;grid-auto-columns:minmax(auto,max-content) auto max-content;grid-auto-flow:column;align-content:flex-start;align-items:center;gap:.5rem;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:grid}& :where(li>details>summary){--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}&::-webkit-details-marker{display:none}}& :where(li>details>summary),& :where(li>.menu-dropdown-toggle){&:after{content:"";transform-origin:50%;pointer-events:none;justify-self:flex-end;width:.375rem;height:.375rem;transition-property:rotate,translate;transition-duration:.2s;display:block;translate:0 -1px;rotate:-135deg;box-shadow:inset 2px 2px}}& :where(li>details[open]>summary):after,& :where(li>.menu-dropdown-toggle.menu-dropdown-show):after{translate:0 1px;rotate:45deg}& :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn){&.menu-focus,&:focus-visible{cursor:pointer;background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);color:var(--color-base-content);--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}}& :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){cursor:pointer;background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);--tw-outline-style:none;outline-style:none;box-shadow:inset 0 1px oklch(0% 0 0/.01),inset 0 -1px oklch(100% 0 0/.01);@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}& :where(li:empty){background-color:var(--color-base-content);opacity:.1;height:1px;margin:.5rem 1rem}& :where(li){flex-flow:column wrap;flex-shrink:0;align-items:stretch;display:flex;position:relative;& .badge{justify-self:flex-end}&>:not(ul,.menu-title,details,.btn):active,&>:not(ul,.menu-title,details,.btn).menu-active,&>details>summary:active{--tw-outline-style:none;color:var(--menu-active-fg);background-color:var(--menu-active-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}&:not(&:active){box-shadow:0 2px calc(var(--depth)*3px)-2px var(--menu-active-bg)}}&.menu-disabled{pointer-events:none;color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}& .dropdown:focus-within{& .menu-dropdown-toggle:after{translate:0 1px;rotate:45deg}}& .dropdown-content{margin-top:.5rem;padding:.5rem;&:before{display:none}}}.sm\:menu-title{color:color-mix(in oklab,var(--color-base-content)40%,transparent);padding-block:.5rem;padding-inline:.75rem;font-size:.875rem;font-weight:600}.sm\:menu-horizontal{flex-direction:row;display:inline-flex;&>li:not(.menu-title)>details>ul{margin-inline-start:0;margin-top:1rem;padding-block:.5rem;padding-inline-end:.5rem;position:absolute}&>li>details>ul{&:before{content:none}}:where(&>li:not(.menu-title)>details>ul){border-radius:var(--radius-box);background-color:var(--color-base-100);box-shadow:0 1px 3px oklch(0% 0 0/.1),0 1px 2px -1px oklch(0% 0 0/.1)}}.sm\:menu-vertical{flex-direction:column;display:inline-flex;&>li:not(.menu-title)>details>ul{margin-inline-start:1rem;margin-top:0;padding-block:0;padding-inline-end:0;position:relative}}.sm\:menu-xs{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.25rem;padding-inline:.5rem;font-size:.6875rem}& .menu-title{padding-block:.25rem;padding-inline:.5rem}}.sm\:menu-sm{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.25rem;padding-inline:.625rem;font-size:.75rem}& .menu-title{padding-block:.5rem;padding-inline:.75rem}}.sm\:menu-md{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:.75rem;font-size:.875rem}& .menu-title{padding-block:.5rem;padding-inline:.75rem}}.sm\:menu-lg{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:1rem;font-size:1.125rem}& .menu-title{padding-block:.75rem;padding-inline:1.5rem}}.sm\:menu-xl{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:1.25rem;font-size:1.375rem}& .menu-title{padding-block:.75rem;padding-inline:1.5rem}}}@media (width>=768px){.md\:menu{--menu-active-fg:var(--color-neutral-content);--menu-active-bg:var(--color-neutral);flex-flow:column wrap;width:fit-content;padding:.5rem;font-size:.875rem;display:flex;& :where(li ul){white-space:nowrap;margin-inline-start:1rem;padding-inline-start:.5rem;position:relative;&:before{inset-inline-start:0;background-color:var(--color-base-content);opacity:.1;width:var(--border);content:"";position:absolute;top:.75rem;bottom:.75rem}}& :where(li>.menu-dropdown:not(.menu-dropdown-show)){display:none}& :where(li:not(.menu-title)>:not(ul,details,.menu-title,.btn)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);text-align:start;text-wrap:balance;user-select:none;grid-auto-columns:minmax(auto,max-content) auto max-content;grid-auto-flow:column;align-content:flex-start;align-items:center;gap:.5rem;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:grid}& :where(li>details>summary){--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}&::-webkit-details-marker{display:none}}& :where(li>details>summary),& :where(li>.menu-dropdown-toggle){&:after{content:"";transform-origin:50%;pointer-events:none;justify-self:flex-end;width:.375rem;height:.375rem;transition-property:rotate,translate;transition-duration:.2s;display:block;translate:0 -1px;rotate:-135deg;box-shadow:inset 2px 2px}}& :where(li>details[open]>summary):after,& :where(li>.menu-dropdown-toggle.menu-dropdown-show):after{translate:0 1px;rotate:45deg}& :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn){&.menu-focus,&:focus-visible{cursor:pointer;background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);color:var(--color-base-content);--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}}& :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){cursor:pointer;background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);--tw-outline-style:none;outline-style:none;box-shadow:inset 0 1px oklch(0% 0 0/.01),inset 0 -1px oklch(100% 0 0/.01);@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}& :where(li:empty){background-color:var(--color-base-content);opacity:.1;height:1px;margin:.5rem 1rem}& :where(li){flex-flow:column wrap;flex-shrink:0;align-items:stretch;display:flex;position:relative;& .badge{justify-self:flex-end}&>:not(ul,.menu-title,details,.btn):active,&>:not(ul,.menu-title,details,.btn).menu-active,&>details>summary:active{--tw-outline-style:none;color:var(--menu-active-fg);background-color:var(--menu-active-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}&:not(&:active){box-shadow:0 2px calc(var(--depth)*3px)-2px var(--menu-active-bg)}}&.menu-disabled{pointer-events:none;color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}& .dropdown:focus-within{& .menu-dropdown-toggle:after{translate:0 1px;rotate:45deg}}& .dropdown-content{margin-top:.5rem;padding:.5rem;&:before{display:none}}}.md\:menu-title{color:color-mix(in oklab,var(--color-base-content)40%,transparent);padding-block:.5rem;padding-inline:.75rem;font-size:.875rem;font-weight:600}.md\:menu-horizontal{flex-direction:row;display:inline-flex;&>li:not(.menu-title)>details>ul{margin-inline-start:0;margin-top:1rem;padding-block:.5rem;padding-inline-end:.5rem;position:absolute}&>li>details>ul{&:before{content:none}}:where(&>li:not(.menu-title)>details>ul){border-radius:var(--radius-box);background-color:var(--color-base-100);box-shadow:0 1px 3px oklch(0% 0 0/.1),0 1px 2px -1px oklch(0% 0 0/.1)}}.md\:menu-vertical{flex-direction:column;display:inline-flex;&>li:not(.menu-title)>details>ul{margin-inline-start:1rem;margin-top:0;padding-block:0;padding-inline-end:0;position:relative}}.md\:menu-xs{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.25rem;padding-inline:.5rem;font-size:.6875rem}& .menu-title{padding-block:.25rem;padding-inline:.5rem}}.md\:menu-sm{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.25rem;padding-inline:.625rem;font-size:.75rem}& .menu-title{padding-block:.5rem;padding-inline:.75rem}}.md\:menu-md{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:.75rem;font-size:.875rem}& .menu-title{padding-block:.5rem;padding-inline:.75rem}}.md\:menu-lg{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:1rem;font-size:1.125rem}& .menu-title{padding-block:.75rem;padding-inline:1.5rem}}.md\:menu-xl{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:1.25rem;font-size:1.375rem}& .menu-title{padding-block:.75rem;padding-inline:1.5rem}}}@media (width>=1024px){.lg\:menu{--menu-active-fg:var(--color-neutral-content);--menu-active-bg:var(--color-neutral);flex-flow:column wrap;width:fit-content;padding:.5rem;font-size:.875rem;display:flex;& :where(li ul){white-space:nowrap;margin-inline-start:1rem;padding-inline-start:.5rem;position:relative;&:before{inset-inline-start:0;background-color:var(--color-base-content);opacity:.1;width:var(--border);content:"";position:absolute;top:.75rem;bottom:.75rem}}& :where(li>.menu-dropdown:not(.menu-dropdown-show)){display:none}& :where(li:not(.menu-title)>:not(ul,details,.menu-title,.btn)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);text-align:start;text-wrap:balance;user-select:none;grid-auto-columns:minmax(auto,max-content) auto max-content;grid-auto-flow:column;align-content:flex-start;align-items:center;gap:.5rem;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:grid}& :where(li>details>summary){--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}&::-webkit-details-marker{display:none}}& :where(li>details>summary),& :where(li>.menu-dropdown-toggle){&:after{content:"";transform-origin:50%;pointer-events:none;justify-self:flex-end;width:.375rem;height:.375rem;transition-property:rotate,translate;transition-duration:.2s;display:block;translate:0 -1px;rotate:-135deg;box-shadow:inset 2px 2px}}& :where(li>details[open]>summary):after,& :where(li>.menu-dropdown-toggle.menu-dropdown-show):after{translate:0 1px;rotate:45deg}& :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn){&.menu-focus,&:focus-visible{cursor:pointer;background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);color:var(--color-base-content);--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}}& :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){cursor:pointer;background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);--tw-outline-style:none;outline-style:none;box-shadow:inset 0 1px oklch(0% 0 0/.01),inset 0 -1px oklch(100% 0 0/.01);@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}& :where(li:empty){background-color:var(--color-base-content);opacity:.1;height:1px;margin:.5rem 1rem}& :where(li){flex-flow:column wrap;flex-shrink:0;align-items:stretch;display:flex;position:relative;& .badge{justify-self:flex-end}&>:not(ul,.menu-title,details,.btn):active,&>:not(ul,.menu-title,details,.btn).menu-active,&>details>summary:active{--tw-outline-style:none;color:var(--menu-active-fg);background-color:var(--menu-active-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}&:not(&:active){box-shadow:0 2px calc(var(--depth)*3px)-2px var(--menu-active-bg)}}&.menu-disabled{pointer-events:none;color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}& .dropdown:focus-within{& .menu-dropdown-toggle:after{translate:0 1px;rotate:45deg}}& .dropdown-content{margin-top:.5rem;padding:.5rem;&:before{display:none}}}.lg\:menu-title{color:color-mix(in oklab,var(--color-base-content)40%,transparent);padding-block:.5rem;padding-inline:.75rem;font-size:.875rem;font-weight:600}.lg\:menu-horizontal{flex-direction:row;display:inline-flex;&>li:not(.menu-title)>details>ul{margin-inline-start:0;margin-top:1rem;padding-block:.5rem;padding-inline-end:.5rem;position:absolute}&>li>details>ul{&:before{content:none}}:where(&>li:not(.menu-title)>details>ul){border-radius:var(--radius-box);background-color:var(--color-base-100);box-shadow:0 1px 3px oklch(0% 0 0/.1),0 1px 2px -1px oklch(0% 0 0/.1)}}.lg\:menu-vertical{flex-direction:column;display:inline-flex;&>li:not(.menu-title)>details>ul{margin-inline-start:1rem;margin-top:0;padding-block:0;padding-inline-end:0;position:relative}}.lg\:menu-xs{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.25rem;padding-inline:.5rem;font-size:.6875rem}& .menu-title{padding-block:.25rem;padding-inline:.5rem}}.lg\:menu-sm{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.25rem;padding-inline:.625rem;font-size:.75rem}& .menu-title{padding-block:.5rem;padding-inline:.75rem}}.lg\:menu-md{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:.75rem;font-size:.875rem}& .menu-title{padding-block:.5rem;padding-inline:.75rem}}.lg\:menu-lg{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:1rem;font-size:1.125rem}& .menu-title{padding-block:.75rem;padding-inline:1.5rem}}.lg\:menu-xl{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:1.25rem;font-size:1.375rem}& .menu-title{padding-block:.75rem;padding-inline:1.5rem}}}@media (width>=1280px){.xl\:menu{--menu-active-fg:var(--color-neutral-content);--menu-active-bg:var(--color-neutral);flex-flow:column wrap;width:fit-content;padding:.5rem;font-size:.875rem;display:flex;& :where(li ul){white-space:nowrap;margin-inline-start:1rem;padding-inline-start:.5rem;position:relative;&:before{inset-inline-start:0;background-color:var(--color-base-content);opacity:.1;width:var(--border);content:"";position:absolute;top:.75rem;bottom:.75rem}}& :where(li>.menu-dropdown:not(.menu-dropdown-show)){display:none}& :where(li:not(.menu-title)>:not(ul,details,.menu-title,.btn)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);text-align:start;text-wrap:balance;user-select:none;grid-auto-columns:minmax(auto,max-content) auto max-content;grid-auto-flow:column;align-content:flex-start;align-items:center;gap:.5rem;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:grid}& :where(li>details>summary){--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}&::-webkit-details-marker{display:none}}& :where(li>details>summary),& :where(li>.menu-dropdown-toggle){&:after{content:"";transform-origin:50%;pointer-events:none;justify-self:flex-end;width:.375rem;height:.375rem;transition-property:rotate,translate;transition-duration:.2s;display:block;translate:0 -1px;rotate:-135deg;box-shadow:inset 2px 2px}}& :where(li>details[open]>summary):after,& :where(li>.menu-dropdown-toggle.menu-dropdown-show):after{translate:0 1px;rotate:45deg}& :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn){&.menu-focus,&:focus-visible{cursor:pointer;background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);color:var(--color-base-content);--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}}& :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){cursor:pointer;background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);--tw-outline-style:none;outline-style:none;box-shadow:inset 0 1px oklch(0% 0 0/.01),inset 0 -1px oklch(100% 0 0/.01);@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}& :where(li:empty){background-color:var(--color-base-content);opacity:.1;height:1px;margin:.5rem 1rem}& :where(li){flex-flow:column wrap;flex-shrink:0;align-items:stretch;display:flex;position:relative;& .badge{justify-self:flex-end}&>:not(ul,.menu-title,details,.btn):active,&>:not(ul,.menu-title,details,.btn).menu-active,&>details>summary:active{--tw-outline-style:none;color:var(--menu-active-fg);background-color:var(--menu-active-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}&:not(&:active){box-shadow:0 2px calc(var(--depth)*3px)-2px var(--menu-active-bg)}}&.menu-disabled{pointer-events:none;color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}& .dropdown:focus-within{& .menu-dropdown-toggle:after{translate:0 1px;rotate:45deg}}& .dropdown-content{margin-top:.5rem;padding:.5rem;&:before{display:none}}}.xl\:menu-title{color:color-mix(in oklab,var(--color-base-content)40%,transparent);padding-block:.5rem;padding-inline:.75rem;font-size:.875rem;font-weight:600}.xl\:menu-horizontal{flex-direction:row;display:inline-flex;&>li:not(.menu-title)>details>ul{margin-inline-start:0;margin-top:1rem;padding-block:.5rem;padding-inline-end:.5rem;position:absolute}&>li>details>ul{&:before{content:none}}:where(&>li:not(.menu-title)>details>ul){border-radius:var(--radius-box);background-color:var(--color-base-100);box-shadow:0 1px 3px oklch(0% 0 0/.1),0 1px 2px -1px oklch(0% 0 0/.1)}}.xl\:menu-vertical{flex-direction:column;display:inline-flex;&>li:not(.menu-title)>details>ul{margin-inline-start:1rem;margin-top:0;padding-block:0;padding-inline-end:0;position:relative}}.xl\:menu-xs{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.25rem;padding-inline:.5rem;font-size:.6875rem}& .menu-title{padding-block:.25rem;padding-inline:.5rem}}.xl\:menu-sm{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.25rem;padding-inline:.625rem;font-size:.75rem}& .menu-title{padding-block:.5rem;padding-inline:.75rem}}.xl\:menu-md{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:.75rem;font-size:.875rem}& .menu-title{padding-block:.5rem;padding-inline:.75rem}}.xl\:menu-lg{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:1rem;font-size:1.125rem}& .menu-title{padding-block:.75rem;padding-inline:1.5rem}}.xl\:menu-xl{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:1.25rem;font-size:1.375rem}& .menu-title{padding-block:.75rem;padding-inline:1.5rem}}}@media (width>=1536px){.\32 xl\:menu{--menu-active-fg:var(--color-neutral-content);--menu-active-bg:var(--color-neutral);flex-flow:column wrap;width:fit-content;padding:.5rem;font-size:.875rem;display:flex;& :where(li ul){white-space:nowrap;margin-inline-start:1rem;padding-inline-start:.5rem;position:relative;&:before{inset-inline-start:0;background-color:var(--color-base-content);opacity:.1;width:var(--border);content:"";position:absolute;top:.75rem;bottom:.75rem}}& :where(li>.menu-dropdown:not(.menu-dropdown-show)){display:none}& :where(li:not(.menu-title)>:not(ul,details,.menu-title,.btn)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);text-align:start;text-wrap:balance;user-select:none;grid-auto-columns:minmax(auto,max-content) auto max-content;grid-auto-flow:column;align-content:flex-start;align-items:center;gap:.5rem;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:grid}& :where(li>details>summary){--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}&::-webkit-details-marker{display:none}}& :where(li>details>summary),& :where(li>.menu-dropdown-toggle){&:after{content:"";transform-origin:50%;pointer-events:none;justify-self:flex-end;width:.375rem;height:.375rem;transition-property:rotate,translate;transition-duration:.2s;display:block;translate:0 -1px;rotate:-135deg;box-shadow:inset 2px 2px}}& :where(li>details[open]>summary):after,& :where(li>.menu-dropdown-toggle.menu-dropdown-show):after{translate:0 1px;rotate:45deg}& :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn){&.menu-focus,&:focus-visible{cursor:pointer;background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);color:var(--color-base-content);--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}}& :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){cursor:pointer;background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);--tw-outline-style:none;outline-style:none;box-shadow:inset 0 1px oklch(0% 0 0/.01),inset 0 -1px oklch(100% 0 0/.01);@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}& :where(li:empty){background-color:var(--color-base-content);opacity:.1;height:1px;margin:.5rem 1rem}& :where(li){flex-flow:column wrap;flex-shrink:0;align-items:stretch;display:flex;position:relative;& .badge{justify-self:flex-end}&>:not(ul,.menu-title,details,.btn):active,&>:not(ul,.menu-title,details,.btn).menu-active,&>details>summary:active{--tw-outline-style:none;color:var(--menu-active-fg);background-color:var(--menu-active-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}&:not(&:active){box-shadow:0 2px calc(var(--depth)*3px)-2px var(--menu-active-bg)}}&.menu-disabled{pointer-events:none;color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}& .dropdown:focus-within{& .menu-dropdown-toggle:after{translate:0 1px;rotate:45deg}}& .dropdown-content{margin-top:.5rem;padding:.5rem;&:before{display:none}}}.\32 xl\:menu-title{color:color-mix(in oklab,var(--color-base-content)40%,transparent);padding-block:.5rem;padding-inline:.75rem;font-size:.875rem;font-weight:600}.\32 xl\:menu-horizontal{flex-direction:row;display:inline-flex;&>li:not(.menu-title)>details>ul{margin-inline-start:0;margin-top:1rem;padding-block:.5rem;padding-inline-end:.5rem;position:absolute}&>li>details>ul{&:before{content:none}}:where(&>li:not(.menu-title)>details>ul){border-radius:var(--radius-box);background-color:var(--color-base-100);box-shadow:0 1px 3px oklch(0% 0 0/.1),0 1px 2px -1px oklch(0% 0 0/.1)}}.\32 xl\:menu-vertical{flex-direction:column;display:inline-flex;&>li:not(.menu-title)>details>ul{margin-inline-start:1rem;margin-top:0;padding-block:0;padding-inline-end:0;position:relative}}.\32 xl\:menu-xs{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.25rem;padding-inline:.5rem;font-size:.6875rem}& .menu-title{padding-block:.25rem;padding-inline:.5rem}}.\32 xl\:menu-sm{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.25rem;padding-inline:.625rem;font-size:.75rem}& .menu-title{padding-block:.5rem;padding-inline:.75rem}}.\32 xl\:menu-md{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:.75rem;font-size:.875rem}& .menu-title{padding-block:.5rem;padding-inline:.75rem}}.\32 xl\:menu-lg{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:1rem;font-size:1.125rem}& .menu-title{padding-block:.75rem;padding-inline:1.5rem}}.\32 xl\:menu-xl{& :where(li:not(.menu-title)>:not(ul,details,.menu-title)),& :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:1.25rem;font-size:1.375rem}& .menu-title{padding-block:.75rem;padding-inline:1.5rem}}}.range{-webkit-appearance:none;appearance:none;--range-thumb:var(--color-base-100);--range-thumb-size:calc(var(--size-selector,.25rem)*6);--range-progress:currentColor;--range-fill:1;--range-p:.25rem;--range-bg:color-mix(in oklab,currentColor 10%,#0000);cursor:pointer;vertical-align:middle;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));width:clamp(3rem,20rem,100%);height:var(--range-thumb-size);background-color:#0000;border:none;overflow:hidden;[dir=rtl] &{--range-dir:-1}&:focus{outline:none}&:focus-visible{outline-offset:2px;outline:2px solid}&::-webkit-slider-runnable-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size)*.5)}@media (forced-colors:active){&::-webkit-slider-runnable-track{border:1px solid}}&::-webkit-slider-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p)solid;-webkit-appearance:none;appearance:none;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000),0 0 0 2rem var(--range-thumb)inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2))0 0 calc(100rem*var(--range-fill));background-color:currentColor;position:relative;top:50%;transform:translateY(-50%)}&::-moz-range-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size)*.5)}@media (forced-colors:active){&::-moz-range-track{border:1px solid}}&::-moz-range-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p)solid;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000),0 0 0 2rem var(--range-thumb)inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2))0 0 calc(100rem*var(--range-fill));background-color:currentColor;position:relative;top:50%}&:disabled{cursor:not-allowed;opacity:.3}}.range-primary{color:var(--color-primary);--range-thumb:var(--color-primary-content)}.range-secondary{color:var(--color-secondary);--range-thumb:var(--color-secondary-content)}.range-accent{color:var(--color-accent);--range-thumb:var(--color-accent-content)}.range-neutral{color:var(--color-neutral);--range-thumb:var(--color-neutral-content)}.range-success{color:var(--color-success);--range-thumb:var(--color-success-content)}.range-warning{color:var(--color-warning);--range-thumb:var(--color-warning-content)}.range-info{color:var(--color-info);--range-thumb:var(--color-info-content)}.range-error{color:var(--color-error);--range-thumb:var(--color-error-content)}.range-xs{--range-thumb-size:calc(var(--size-selector,.25rem)*4)}.range-sm{--range-thumb-size:calc(var(--size-selector,.25rem)*5)}.range-md{--range-thumb-size:calc(var(--size-selector,.25rem)*6)}.range-lg{--range-thumb-size:calc(var(--size-selector,.25rem)*7)}.range-xl{--range-thumb-size:calc(var(--size-selector,.25rem)*8)}@media (width>=640px){.sm\:range{-webkit-appearance:none;appearance:none;--range-thumb:var(--color-base-100);--range-thumb-size:calc(var(--size-selector,.25rem)*6);--range-progress:currentColor;--range-fill:1;--range-p:.25rem;--range-bg:color-mix(in oklab,currentColor 10%,#0000);cursor:pointer;vertical-align:middle;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));width:clamp(3rem,20rem,100%);height:var(--range-thumb-size);background-color:#0000;border:none;overflow:hidden;[dir=rtl] &{--range-dir:-1}&:focus{outline:none}&:focus-visible{outline-offset:2px;outline:2px solid}&::-webkit-slider-runnable-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size)*.5)}@media (forced-colors:active){&::-webkit-slider-runnable-track{border:1px solid}}&::-webkit-slider-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p)solid;-webkit-appearance:none;appearance:none;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000),0 0 0 2rem var(--range-thumb)inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2))0 0 calc(100rem*var(--range-fill));background-color:currentColor;position:relative;top:50%;transform:translateY(-50%)}&::-moz-range-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size)*.5)}@media (forced-colors:active){&::-moz-range-track{border:1px solid}}&::-moz-range-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p)solid;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000),0 0 0 2rem var(--range-thumb)inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2))0 0 calc(100rem*var(--range-fill));background-color:currentColor;position:relative;top:50%}&:disabled{cursor:not-allowed;opacity:.3}}.sm\:range-primary{color:var(--color-primary);--range-thumb:var(--color-primary-content)}.sm\:range-secondary{color:var(--color-secondary);--range-thumb:var(--color-secondary-content)}.sm\:range-accent{color:var(--color-accent);--range-thumb:var(--color-accent-content)}.sm\:range-neutral{color:var(--color-neutral);--range-thumb:var(--color-neutral-content)}.sm\:range-success{color:var(--color-success);--range-thumb:var(--color-success-content)}.sm\:range-warning{color:var(--color-warning);--range-thumb:var(--color-warning-content)}.sm\:range-info{color:var(--color-info);--range-thumb:var(--color-info-content)}.sm\:range-error{color:var(--color-error);--range-thumb:var(--color-error-content)}.sm\:range-xs{--range-thumb-size:calc(var(--size-selector,.25rem)*4)}.sm\:range-sm{--range-thumb-size:calc(var(--size-selector,.25rem)*5)}.sm\:range-md{--range-thumb-size:calc(var(--size-selector,.25rem)*6)}.sm\:range-lg{--range-thumb-size:calc(var(--size-selector,.25rem)*7)}.sm\:range-xl{--range-thumb-size:calc(var(--size-selector,.25rem)*8)}}@media (width>=768px){.md\:range{-webkit-appearance:none;appearance:none;--range-thumb:var(--color-base-100);--range-thumb-size:calc(var(--size-selector,.25rem)*6);--range-progress:currentColor;--range-fill:1;--range-p:.25rem;--range-bg:color-mix(in oklab,currentColor 10%,#0000);cursor:pointer;vertical-align:middle;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));width:clamp(3rem,20rem,100%);height:var(--range-thumb-size);background-color:#0000;border:none;overflow:hidden;[dir=rtl] &{--range-dir:-1}&:focus{outline:none}&:focus-visible{outline-offset:2px;outline:2px solid}&::-webkit-slider-runnable-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size)*.5)}@media (forced-colors:active){&::-webkit-slider-runnable-track{border:1px solid}}&::-webkit-slider-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p)solid;-webkit-appearance:none;appearance:none;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000),0 0 0 2rem var(--range-thumb)inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2))0 0 calc(100rem*var(--range-fill));background-color:currentColor;position:relative;top:50%;transform:translateY(-50%)}&::-moz-range-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size)*.5)}@media (forced-colors:active){&::-moz-range-track{border:1px solid}}&::-moz-range-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p)solid;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000),0 0 0 2rem var(--range-thumb)inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2))0 0 calc(100rem*var(--range-fill));background-color:currentColor;position:relative;top:50%}&:disabled{cursor:not-allowed;opacity:.3}}.md\:range-primary{color:var(--color-primary);--range-thumb:var(--color-primary-content)}.md\:range-secondary{color:var(--color-secondary);--range-thumb:var(--color-secondary-content)}.md\:range-accent{color:var(--color-accent);--range-thumb:var(--color-accent-content)}.md\:range-neutral{color:var(--color-neutral);--range-thumb:var(--color-neutral-content)}.md\:range-success{color:var(--color-success);--range-thumb:var(--color-success-content)}.md\:range-warning{color:var(--color-warning);--range-thumb:var(--color-warning-content)}.md\:range-info{color:var(--color-info);--range-thumb:var(--color-info-content)}.md\:range-error{color:var(--color-error);--range-thumb:var(--color-error-content)}.md\:range-xs{--range-thumb-size:calc(var(--size-selector,.25rem)*4)}.md\:range-sm{--range-thumb-size:calc(var(--size-selector,.25rem)*5)}.md\:range-md{--range-thumb-size:calc(var(--size-selector,.25rem)*6)}.md\:range-lg{--range-thumb-size:calc(var(--size-selector,.25rem)*7)}.md\:range-xl{--range-thumb-size:calc(var(--size-selector,.25rem)*8)}}@media (width>=1024px){.lg\:range{-webkit-appearance:none;appearance:none;--range-thumb:var(--color-base-100);--range-thumb-size:calc(var(--size-selector,.25rem)*6);--range-progress:currentColor;--range-fill:1;--range-p:.25rem;--range-bg:color-mix(in oklab,currentColor 10%,#0000);cursor:pointer;vertical-align:middle;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));width:clamp(3rem,20rem,100%);height:var(--range-thumb-size);background-color:#0000;border:none;overflow:hidden;[dir=rtl] &{--range-dir:-1}&:focus{outline:none}&:focus-visible{outline-offset:2px;outline:2px solid}&::-webkit-slider-runnable-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size)*.5)}@media (forced-colors:active){&::-webkit-slider-runnable-track{border:1px solid}}&::-webkit-slider-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p)solid;-webkit-appearance:none;appearance:none;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000),0 0 0 2rem var(--range-thumb)inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2))0 0 calc(100rem*var(--range-fill));background-color:currentColor;position:relative;top:50%;transform:translateY(-50%)}&::-moz-range-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size)*.5)}@media (forced-colors:active){&::-moz-range-track{border:1px solid}}&::-moz-range-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p)solid;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000),0 0 0 2rem var(--range-thumb)inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2))0 0 calc(100rem*var(--range-fill));background-color:currentColor;position:relative;top:50%}&:disabled{cursor:not-allowed;opacity:.3}}.lg\:range-primary{color:var(--color-primary);--range-thumb:var(--color-primary-content)}.lg\:range-secondary{color:var(--color-secondary);--range-thumb:var(--color-secondary-content)}.lg\:range-accent{color:var(--color-accent);--range-thumb:var(--color-accent-content)}.lg\:range-neutral{color:var(--color-neutral);--range-thumb:var(--color-neutral-content)}.lg\:range-success{color:var(--color-success);--range-thumb:var(--color-success-content)}.lg\:range-warning{color:var(--color-warning);--range-thumb:var(--color-warning-content)}.lg\:range-info{color:var(--color-info);--range-thumb:var(--color-info-content)}.lg\:range-error{color:var(--color-error);--range-thumb:var(--color-error-content)}.lg\:range-xs{--range-thumb-size:calc(var(--size-selector,.25rem)*4)}.lg\:range-sm{--range-thumb-size:calc(var(--size-selector,.25rem)*5)}.lg\:range-md{--range-thumb-size:calc(var(--size-selector,.25rem)*6)}.lg\:range-lg{--range-thumb-size:calc(var(--size-selector,.25rem)*7)}.lg\:range-xl{--range-thumb-size:calc(var(--size-selector,.25rem)*8)}}@media (width>=1280px){.xl\:range{-webkit-appearance:none;appearance:none;--range-thumb:var(--color-base-100);--range-thumb-size:calc(var(--size-selector,.25rem)*6);--range-progress:currentColor;--range-fill:1;--range-p:.25rem;--range-bg:color-mix(in oklab,currentColor 10%,#0000);cursor:pointer;vertical-align:middle;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));width:clamp(3rem,20rem,100%);height:var(--range-thumb-size);background-color:#0000;border:none;overflow:hidden;[dir=rtl] &{--range-dir:-1}&:focus{outline:none}&:focus-visible{outline-offset:2px;outline:2px solid}&::-webkit-slider-runnable-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size)*.5)}@media (forced-colors:active){&::-webkit-slider-runnable-track{border:1px solid}}&::-webkit-slider-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p)solid;-webkit-appearance:none;appearance:none;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000),0 0 0 2rem var(--range-thumb)inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2))0 0 calc(100rem*var(--range-fill));background-color:currentColor;position:relative;top:50%;transform:translateY(-50%)}&::-moz-range-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size)*.5)}@media (forced-colors:active){&::-moz-range-track{border:1px solid}}&::-moz-range-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p)solid;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000),0 0 0 2rem var(--range-thumb)inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2))0 0 calc(100rem*var(--range-fill));background-color:currentColor;position:relative;top:50%}&:disabled{cursor:not-allowed;opacity:.3}}.xl\:range-primary{color:var(--color-primary);--range-thumb:var(--color-primary-content)}.xl\:range-secondary{color:var(--color-secondary);--range-thumb:var(--color-secondary-content)}.xl\:range-accent{color:var(--color-accent);--range-thumb:var(--color-accent-content)}.xl\:range-neutral{color:var(--color-neutral);--range-thumb:var(--color-neutral-content)}.xl\:range-success{color:var(--color-success);--range-thumb:var(--color-success-content)}.xl\:range-warning{color:var(--color-warning);--range-thumb:var(--color-warning-content)}.xl\:range-info{color:var(--color-info);--range-thumb:var(--color-info-content)}.xl\:range-error{color:var(--color-error);--range-thumb:var(--color-error-content)}.xl\:range-xs{--range-thumb-size:calc(var(--size-selector,.25rem)*4)}.xl\:range-sm{--range-thumb-size:calc(var(--size-selector,.25rem)*5)}.xl\:range-md{--range-thumb-size:calc(var(--size-selector,.25rem)*6)}.xl\:range-lg{--range-thumb-size:calc(var(--size-selector,.25rem)*7)}.xl\:range-xl{--range-thumb-size:calc(var(--size-selector,.25rem)*8)}}@media (width>=1536px){.\32 xl\:range{-webkit-appearance:none;appearance:none;--range-thumb:var(--color-base-100);--range-thumb-size:calc(var(--size-selector,.25rem)*6);--range-progress:currentColor;--range-fill:1;--range-p:.25rem;--range-bg:color-mix(in oklab,currentColor 10%,#0000);cursor:pointer;vertical-align:middle;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));width:clamp(3rem,20rem,100%);height:var(--range-thumb-size);background-color:#0000;border:none;overflow:hidden;[dir=rtl] &{--range-dir:-1}&:focus{outline:none}&:focus-visible{outline-offset:2px;outline:2px solid}&::-webkit-slider-runnable-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size)*.5)}@media (forced-colors:active){&::-webkit-slider-runnable-track{border:1px solid}}&::-webkit-slider-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p)solid;-webkit-appearance:none;appearance:none;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000),0 0 0 2rem var(--range-thumb)inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2))0 0 calc(100rem*var(--range-fill));background-color:currentColor;position:relative;top:50%;transform:translateY(-50%)}&::-moz-range-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size)*.5)}@media (forced-colors:active){&::-moz-range-track{border:1px solid}}&::-moz-range-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p)solid;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000),0 0 0 2rem var(--range-thumb)inset,calc((var(--range-dir,1)*-100rem) - (var(--range-dir,1)*var(--range-thumb-size)/2))0 0 calc(100rem*var(--range-fill));background-color:currentColor;position:relative;top:50%}&:disabled{cursor:not-allowed;opacity:.3}}.\32 xl\:range-primary{color:var(--color-primary);--range-thumb:var(--color-primary-content)}.\32 xl\:range-secondary{color:var(--color-secondary);--range-thumb:var(--color-secondary-content)}.\32 xl\:range-accent{color:var(--color-accent);--range-thumb:var(--color-accent-content)}.\32 xl\:range-neutral{color:var(--color-neutral);--range-thumb:var(--color-neutral-content)}.\32 xl\:range-success{color:var(--color-success);--range-thumb:var(--color-success-content)}.\32 xl\:range-warning{color:var(--color-warning);--range-thumb:var(--color-warning-content)}.\32 xl\:range-info{color:var(--color-info);--range-thumb:var(--color-info-content)}.\32 xl\:range-error{color:var(--color-error);--range-thumb:var(--color-error-content)}.\32 xl\:range-xs{--range-thumb-size:calc(var(--size-selector,.25rem)*4)}.\32 xl\:range-sm{--range-thumb-size:calc(var(--size-selector,.25rem)*5)}.\32 xl\:range-md{--range-thumb-size:calc(var(--size-selector,.25rem)*6)}.\32 xl\:range-lg{--range-thumb-size:calc(var(--size-selector,.25rem)*7)}.\32 xl\:range-xl{--range-thumb-size:calc(var(--size-selector,.25rem)*8)}}.cally{font-size:.7rem;&::part(container){user-select:none;padding:.5rem 1rem}& ::part(th){block-size:auto;font-weight:400}&::part(header){direction:ltr}& ::part(head){opacity:.5;font-size:.7rem}&::part(button){border-radius:var(--radius-field);background:0 0;border:none;padding:.5rem}&::part(button):hover{background:var(--color-base-200)}& ::part(day){border-radius:var(--radius-field);font-size:.7rem}& ::part(button day today){background:var(--color-primary);color:var(--color-primary-content)}& ::part(selected){color:var(--color-base-100);background:var(--color-base-content);border-radius:var(--radius-field)}& ::part(range-inner){border-radius:0}& ::part(range-start){border-start-end-radius:0;border-end-end-radius:0}& ::part(range-end){border-start-start-radius:0;border-end-start-radius:0}& ::part(range-start range-end){border-radius:var(--radius-field)}& calendar-month{width:100%}}.react-day-picker{user-select:none;background-color:var(--color-base-100);border-radius:var(--radius-box);border:var(--border)solid var(--color-base-200);font-size:.75rem;display:inline-block;position:relative;overflow:clip;&[dir=rtl]{& .rdp-nav{& .rdp-chevron{transform-origin:50%;transform:rotate(180deg)}}}& *{box-sizing:border-box}& .rdp-day{text-align:center;width:2.25rem;height:2.25rem}& .rdp-day_button{cursor:pointer;font:inherit;color:inherit;border-radius:var(--radius-field);background:0 0;border:2px solid #0000;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;margin:0;padding:0;display:flex;&:disabled{cursor:revert}&:hover{background-color:var(--color-base-200)}}& .rdp-caption_label{z-index:1;white-space:nowrap;border:0;align-items:center;display:inline-flex;position:relative}& .rdp-button_next{border-radius:var(--radius-field);&:hover{background-color:var(--color-base-200)}}& .rdp-button_previous{border-radius:var(--radius-field);&:hover{background-color:var(--color-base-200)}}& .rdp-button_next,& .rdp-button_previous{cursor:pointer;font:inherit;color:inherit;appearance:none;background:0 0;border:none;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;margin:0;padding:0;display:inline-flex;position:relative;&:disabled{cursor:revert;opacity:.5}}& .rdp-chevron{fill:var(--color-base-content);width:1rem;height:1rem;display:inline-block}& .rdp-dropdowns{align-items:center;gap:.5rem;display:inline-flex;position:relative}& .rdp-dropdown{z-index:2;opacity:0;appearance:none;cursor:inherit;line-height:inherit;border:none;width:100%;margin:0;padding:0;position:absolute;inset-block:0;inset-inline-start:0;&:focus-visible{&~.rdp-caption_label{outline:5px auto highlight;outline:5px auto -webkit-focus-ring-color}}}& .rdp-dropdown_root{align-items:center;display:inline-flex;position:relative;&[data-disabled=true]{& .rdp-chevron{opacity:.5}}}& .rdp-month_caption{height:2.75rem;font-size:.75rem;font-weight:inherit;place-content:center;display:flex}& .rdp-months{flex-wrap:wrap;gap:2rem;max-width:fit-content;padding:.5rem;display:flex;position:relative}& .rdp-month_grid{border-collapse:collapse}& .rdp-nav{inset-block-start:0;inset-inline-end:0;justify-content:space-between;align-items:center;width:100%;height:2.75rem;padding-inline:.5rem;display:flex;position:absolute;top:.25rem}& .rdp-weekday{opacity:.6;text-align:center;padding:.5rem 0;font-size:smaller;font-weight:500}& .rdp-week_number{opacity:.6;text-align:center;border:none;border-radius:100%;width:2.25rem;height:2.25rem;font-size:small;font-weight:400}& .rdp-today:not(.rdp-outside){& .rdp-day_button{background:var(--color-primary);color:var(--color-primary-content)}}& .rdp-selected{font-weight:inherit;font-size:.75rem;& .rdp-day_button{color:var(--color-base-100);background-color:var(--color-base-content);border-radius:var(--radius-field);border:none;&:hover{background-color:var(--color-base-content)}}}& .rdp-outside{opacity:.75}& .rdp-disabled{opacity:.5}& .rdp-hidden{visibility:hidden;color:var(--color-base-content)}& .rdp-range_start{& .rdp-day_button{border-radius:var(--radius-field)0 0 var(--radius-field)}}& .rdp-range_start .rdp-day_button{background-color:var(--color-base-content);color:var(--color-base-100)}& .rdp-range_middle{background-color:var(--color-base-200)}& .rdp-range_middle .rdp-day_button{border:unset;border-radius:unset;color:inherit}& .rdp-range_end{color:var(--color-base-content);& .rdp-day_button{border-radius:0 var(--radius-field)var(--radius-field)0}}& .rdp-range_end .rdp-day_button{background-color:var(--color-base-content);color:var(--color-base-100)}& .rdp-range_start.rdp-range_end{background:revert}& .rdp-focusable{cursor:pointer}& .rdp-footer{border-top:var(--border)solid var(--color-base-200);padding:.5rem}}.pika-single{&:is(div){user-select:none;z-index:999;color:var(--color-base-content);background-color:var(--color-base-100);border-radius:var(--radius-box);border:var(--border)solid var(--color-base-200);padding:.5rem;font-size:.75rem;display:inline-block;position:relative;&:before,&:after{content:"";display:table}&:after{clear:both}&.is-hidden{display:none}&.is-bound{position:absolute}& .pika-lendar{float:left}& .pika-title{text-align:center;position:relative}& .pika-label{z-index:999;background-color:var(--color-base-100);margin:0;padding:5px 3px;display:inline-block;position:relative;overflow:hidden}& .pika-title{& select{cursor:pointer;z-index:999;opacity:0;margin:0;position:absolute;top:5px;left:0}}& .pika-prev,& .pika-next{cursor:pointer;color:#0000;border-radius:var(--radius-field);border:0;outline:none;width:2.25rem;height:2.25rem;font-size:1.2em;display:block;position:absolute;top:0;&:hover{background-color:var(--color-base-200)}&.is-disabled{cursor:default;opacity:.2}&:before{width:2.25rem;height:2.25rem;color:var(--color-base-content);line-height:2.25;display:inline-block}}& .pika-prev{left:0;&:before{content:"‹"}}& .pika-next{right:0;&:before{content:"›"}}& .pika-select{display:inline-block}& .pika-table{border-collapse:collapse;border-spacing:0;border:0;width:100%}& .pika-table{& th,& td{padding:0}& th{opacity:.6;text-align:center;width:2.25rem;height:2.25rem}}& .pika-button{cursor:pointer;text-align:right;text-align:center;border:0;outline:none;width:2.25rem;height:2.25rem;margin:0;padding:5px;display:block}& .pika-week{color:var(--color-base-content)}& .is-today{& .pika-button{background:var(--color-primary);color:var(--color-primary-content)}}& .is-selected,& .has-event{& .pika-button{&,&:hover{color:var(--color-base-100);background-color:var(--color-base-content);border-radius:var(--radius-field)}}}& .has-event{& .pika-button{background:var(--color-base-primary)}}& .is-disabled,& .is-inrange{& .pika-button{background:var(--color-base-primary)}}& .is-startrange{& .pika-button{color:var(--color-base-100);background:var(--color-base-content);border-radius:var(--radius-field)}}& .is-endrange{& .pika-button{color:var(--color-base-100);background:var(--color-base-content);border-radius:var(--radius-field)}}& .is-disabled{& .pika-button{pointer-events:none;cursor:default;color:var(--color-base-content);opacity:.3}}& .is-outside-current-month{& .pika-button{color:var(--color-base-content);opacity:.3}}& .is-selection-disabled{pointer-events:none;cursor:default}& .pika-button:hover,& .pika-row.pick-whole-week:hover .pika-button{color:var(--color-base-content);background-color:var(--color-base-200);border-radius:var(--radius-field)}& .pika-table abbr{font-weight:400;text-decoration:none}}}.dock{z-index:1;background-color:var(--color-base-100);color:currentColor;border-top:.5px solid color-mix(in oklab,var(--color-base-content)5%,#0000);width:100%;height:4rem;height:calc(4rem + env(safe-area-inset-bottom));padding:.5rem;padding-bottom:env(safe-area-inset-bottom);flex-direction:row;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0;&>*{cursor:pointer;border-radius:var(--radius-box);background-color:#0000;flex-direction:column;flex-shrink:1;flex-basis:100%;justify-content:center;align-items:center;gap:1px;max-width:8rem;height:100%;margin-bottom:.5rem;transition:opacity .2s ease-out;display:flex;position:relative;@media (hover:hover){&:hover{opacity:.8}}&[aria-disabled=true],&[disabled]{&,&:hover{pointer-events:none;color:color-mix(in oklab,var(--color-base-content)10%,transparent);opacity:1}}& .dock-label{font-size:.6875rem}&:after{content:"";background-color:#0000;border-top:3px solid #0000;border-radius:3.40282e38px;width:1.5rem;height:.25rem;transition:background-color .1s ease-out,text-color .1s ease-out,width .1s ease-out;position:absolute;bottom:.2rem}}}.dock-active{&:after{color:currentColor;background-color:currentColor;width:2.5rem}}.dock-xs{height:3rem;height:calc(3rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:-.1rem}}& .dock-label{font-size:.625rem}}.dock-sm{height:3.5rem;height:calc(3.5rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:-.1rem}}& .dock-label{font-size:.625rem}}.dock-md{height:4rem;height:calc(4rem + env(safe-area-inset-bottom));& .dock-label{font-size:.6875rem}}.dock-lg{height:4.5rem;height:calc(4.5rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:.4rem}}& .dock-label{font-size:.6875rem}}.dock-xl{height:5rem;height:calc(5rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:.4rem}}& .dock-label{font-size:.75rem}}@media (width>=640px){.sm\:dock{z-index:1;background-color:var(--color-base-100);color:currentColor;border-top:.5px solid color-mix(in oklab,var(--color-base-content)5%,#0000);width:100%;height:4rem;height:calc(4rem + env(safe-area-inset-bottom));padding:.5rem;padding-bottom:env(safe-area-inset-bottom);flex-direction:row;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0;&>*{cursor:pointer;border-radius:var(--radius-box);background-color:#0000;flex-direction:column;flex-shrink:1;flex-basis:100%;justify-content:center;align-items:center;gap:1px;max-width:8rem;height:100%;margin-bottom:.5rem;transition:opacity .2s ease-out;display:flex;position:relative;@media (hover:hover){&:hover{opacity:.8}}&[aria-disabled=true],&[disabled]{&,&:hover{pointer-events:none;color:color-mix(in oklab,var(--color-base-content)10%,transparent);opacity:1}}& .dock-label{font-size:.6875rem}&:after{content:"";background-color:#0000;border-top:3px solid #0000;border-radius:3.40282e38px;width:1.5rem;height:.25rem;transition:background-color .1s ease-out,text-color .1s ease-out,width .1s ease-out;position:absolute;bottom:.2rem}}}.sm\:dock-active{&:after{color:currentColor;background-color:currentColor;width:2.5rem}}.sm\:dock-xs{height:3rem;height:calc(3rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:-.1rem}}& .dock-label{font-size:.625rem}}.sm\:dock-sm{height:3.5rem;height:calc(3.5rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:-.1rem}}& .dock-label{font-size:.625rem}}.sm\:dock-md{height:4rem;height:calc(4rem + env(safe-area-inset-bottom));& .dock-label{font-size:.6875rem}}.sm\:dock-lg{height:4.5rem;height:calc(4.5rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:.4rem}}& .dock-label{font-size:.6875rem}}.sm\:dock-xl{height:5rem;height:calc(5rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:.4rem}}& .dock-label{font-size:.75rem}}}@media (width>=768px){.md\:dock{z-index:1;background-color:var(--color-base-100);color:currentColor;border-top:.5px solid color-mix(in oklab,var(--color-base-content)5%,#0000);width:100%;height:4rem;height:calc(4rem + env(safe-area-inset-bottom));padding:.5rem;padding-bottom:env(safe-area-inset-bottom);flex-direction:row;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0;&>*{cursor:pointer;border-radius:var(--radius-box);background-color:#0000;flex-direction:column;flex-shrink:1;flex-basis:100%;justify-content:center;align-items:center;gap:1px;max-width:8rem;height:100%;margin-bottom:.5rem;transition:opacity .2s ease-out;display:flex;position:relative;@media (hover:hover){&:hover{opacity:.8}}&[aria-disabled=true],&[disabled]{&,&:hover{pointer-events:none;color:color-mix(in oklab,var(--color-base-content)10%,transparent);opacity:1}}& .dock-label{font-size:.6875rem}&:after{content:"";background-color:#0000;border-top:3px solid #0000;border-radius:3.40282e38px;width:1.5rem;height:.25rem;transition:background-color .1s ease-out,text-color .1s ease-out,width .1s ease-out;position:absolute;bottom:.2rem}}}.md\:dock-active{&:after{color:currentColor;background-color:currentColor;width:2.5rem}}.md\:dock-xs{height:3rem;height:calc(3rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:-.1rem}}& .dock-label{font-size:.625rem}}.md\:dock-sm{height:3.5rem;height:calc(3.5rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:-.1rem}}& .dock-label{font-size:.625rem}}.md\:dock-md{height:4rem;height:calc(4rem + env(safe-area-inset-bottom));& .dock-label{font-size:.6875rem}}.md\:dock-lg{height:4.5rem;height:calc(4.5rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:.4rem}}& .dock-label{font-size:.6875rem}}.md\:dock-xl{height:5rem;height:calc(5rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:.4rem}}& .dock-label{font-size:.75rem}}}@media (width>=1024px){.lg\:dock{z-index:1;background-color:var(--color-base-100);color:currentColor;border-top:.5px solid color-mix(in oklab,var(--color-base-content)5%,#0000);width:100%;height:4rem;height:calc(4rem + env(safe-area-inset-bottom));padding:.5rem;padding-bottom:env(safe-area-inset-bottom);flex-direction:row;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0;&>*{cursor:pointer;border-radius:var(--radius-box);background-color:#0000;flex-direction:column;flex-shrink:1;flex-basis:100%;justify-content:center;align-items:center;gap:1px;max-width:8rem;height:100%;margin-bottom:.5rem;transition:opacity .2s ease-out;display:flex;position:relative;@media (hover:hover){&:hover{opacity:.8}}&[aria-disabled=true],&[disabled]{&,&:hover{pointer-events:none;color:color-mix(in oklab,var(--color-base-content)10%,transparent);opacity:1}}& .dock-label{font-size:.6875rem}&:after{content:"";background-color:#0000;border-top:3px solid #0000;border-radius:3.40282e38px;width:1.5rem;height:.25rem;transition:background-color .1s ease-out,text-color .1s ease-out,width .1s ease-out;position:absolute;bottom:.2rem}}}.lg\:dock-active{&:after{color:currentColor;background-color:currentColor;width:2.5rem}}.lg\:dock-xs{height:3rem;height:calc(3rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:-.1rem}}& .dock-label{font-size:.625rem}}.lg\:dock-sm{height:3.5rem;height:calc(3.5rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:-.1rem}}& .dock-label{font-size:.625rem}}.lg\:dock-md{height:4rem;height:calc(4rem + env(safe-area-inset-bottom));& .dock-label{font-size:.6875rem}}.lg\:dock-lg{height:4.5rem;height:calc(4.5rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:.4rem}}& .dock-label{font-size:.6875rem}}.lg\:dock-xl{height:5rem;height:calc(5rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:.4rem}}& .dock-label{font-size:.75rem}}}@media (width>=1280px){.xl\:dock{z-index:1;background-color:var(--color-base-100);color:currentColor;border-top:.5px solid color-mix(in oklab,var(--color-base-content)5%,#0000);width:100%;height:4rem;height:calc(4rem + env(safe-area-inset-bottom));padding:.5rem;padding-bottom:env(safe-area-inset-bottom);flex-direction:row;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0;&>*{cursor:pointer;border-radius:var(--radius-box);background-color:#0000;flex-direction:column;flex-shrink:1;flex-basis:100%;justify-content:center;align-items:center;gap:1px;max-width:8rem;height:100%;margin-bottom:.5rem;transition:opacity .2s ease-out;display:flex;position:relative;@media (hover:hover){&:hover{opacity:.8}}&[aria-disabled=true],&[disabled]{&,&:hover{pointer-events:none;color:color-mix(in oklab,var(--color-base-content)10%,transparent);opacity:1}}& .dock-label{font-size:.6875rem}&:after{content:"";background-color:#0000;border-top:3px solid #0000;border-radius:3.40282e38px;width:1.5rem;height:.25rem;transition:background-color .1s ease-out,text-color .1s ease-out,width .1s ease-out;position:absolute;bottom:.2rem}}}.xl\:dock-active{&:after{color:currentColor;background-color:currentColor;width:2.5rem}}.xl\:dock-xs{height:3rem;height:calc(3rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:-.1rem}}& .dock-label{font-size:.625rem}}.xl\:dock-sm{height:3.5rem;height:calc(3.5rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:-.1rem}}& .dock-label{font-size:.625rem}}.xl\:dock-md{height:4rem;height:calc(4rem + env(safe-area-inset-bottom));& .dock-label{font-size:.6875rem}}.xl\:dock-lg{height:4.5rem;height:calc(4.5rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:.4rem}}& .dock-label{font-size:.6875rem}}.xl\:dock-xl{height:5rem;height:calc(5rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:.4rem}}& .dock-label{font-size:.75rem}}}@media (width>=1536px){.\32 xl\:dock{z-index:1;background-color:var(--color-base-100);color:currentColor;border-top:.5px solid color-mix(in oklab,var(--color-base-content)5%,#0000);width:100%;height:4rem;height:calc(4rem + env(safe-area-inset-bottom));padding:.5rem;padding-bottom:env(safe-area-inset-bottom);flex-direction:row;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0;&>*{cursor:pointer;border-radius:var(--radius-box);background-color:#0000;flex-direction:column;flex-shrink:1;flex-basis:100%;justify-content:center;align-items:center;gap:1px;max-width:8rem;height:100%;margin-bottom:.5rem;transition:opacity .2s ease-out;display:flex;position:relative;@media (hover:hover){&:hover{opacity:.8}}&[aria-disabled=true],&[disabled]{&,&:hover{pointer-events:none;color:color-mix(in oklab,var(--color-base-content)10%,transparent);opacity:1}}& .dock-label{font-size:.6875rem}&:after{content:"";background-color:#0000;border-top:3px solid #0000;border-radius:3.40282e38px;width:1.5rem;height:.25rem;transition:background-color .1s ease-out,text-color .1s ease-out,width .1s ease-out;position:absolute;bottom:.2rem}}}.\32 xl\:dock-active{&:after{color:currentColor;background-color:currentColor;width:2.5rem}}.\32 xl\:dock-xs{height:3rem;height:calc(3rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:-.1rem}}& .dock-label{font-size:.625rem}}.\32 xl\:dock-sm{height:3.5rem;height:calc(3.5rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:-.1rem}}& .dock-label{font-size:.625rem}}.\32 xl\:dock-md{height:4rem;height:calc(4rem + env(safe-area-inset-bottom));& .dock-label{font-size:.6875rem}}.\32 xl\:dock-lg{height:4.5rem;height:calc(4.5rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:.4rem}}& .dock-label{font-size:.6875rem}}.\32 xl\:dock-xl{height:5rem;height:calc(5rem + env(safe-area-inset-bottom));& .dock-active{&:after{bottom:.4rem}}& .dock-label{font-size:.75rem}}}.status{aspect-ratio:1;border-radius:var(--radius-selector);background-color:color-mix(in oklab,var(--color-base-content)20%,transparent);vertical-align:middle;color:#0000004d;background-position:50%;background-repeat:no-repeat;background-image:radial-gradient(circle at 35% 30%,oklch(1 0 0/calc(var(--depth)*.5)),#0000);width:.5rem;height:.5rem;box-shadow:0 2px 3px -1px color-mix(in oklab,currentColor calc(var(--depth)*100%),#0000);display:inline-block;@supports (color:color-mix(in lab, red, red)){&{color:color-mix(in oklab,var(--color-black)30%,transparent)}}}.status-primary{background-color:var(--color-primary);color:var(--color-primary)}.status-secondary{background-color:var(--color-secondary);color:var(--color-secondary)}.status-accent{background-color:var(--color-accent);color:var(--color-accent)}.status-neutral{background-color:var(--color-neutral);color:var(--color-neutral)}.status-info{background-color:var(--color-info);color:var(--color-info)}.status-success{background-color:var(--color-success);color:var(--color-success)}.status-warning{background-color:var(--color-warning);color:var(--color-warning)}.status-error{background-color:var(--color-error);color:var(--color-error)}.status-xs{width:.125rem;height:.125rem}.status-sm{width:.25rem;height:.25rem}.status-md{width:.5rem;height:.5rem}.status-lg{width:.75rem;height:.75rem}.status-xl{width:1rem;height:1rem}@media (width>=640px){.sm\:status{aspect-ratio:1;border-radius:var(--radius-selector);background-color:color-mix(in oklab,var(--color-base-content)20%,transparent);vertical-align:middle;color:#0000004d;background-position:50%;background-repeat:no-repeat;background-image:radial-gradient(circle at 35% 30%,oklch(1 0 0/calc(var(--depth)*.5)),#0000);width:.5rem;height:.5rem;box-shadow:0 2px 3px -1px color-mix(in oklab,currentColor calc(var(--depth)*100%),#0000);display:inline-block;@supports (color:color-mix(in lab, red, red)){&{color:color-mix(in oklab,var(--color-black)30%,transparent)}}}.sm\:status-primary{background-color:var(--color-primary);color:var(--color-primary)}.sm\:status-secondary{background-color:var(--color-secondary);color:var(--color-secondary)}.sm\:status-accent{background-color:var(--color-accent);color:var(--color-accent)}.sm\:status-neutral{background-color:var(--color-neutral);color:var(--color-neutral)}.sm\:status-info{background-color:var(--color-info);color:var(--color-info)}.sm\:status-success{background-color:var(--color-success);color:var(--color-success)}.sm\:status-warning{background-color:var(--color-warning);color:var(--color-warning)}.sm\:status-error{background-color:var(--color-error);color:var(--color-error)}.sm\:status-xs{width:.125rem;height:.125rem}.sm\:status-sm{width:.25rem;height:.25rem}.sm\:status-md{width:.5rem;height:.5rem}.sm\:status-lg{width:.75rem;height:.75rem}.sm\:status-xl{width:1rem;height:1rem}}@media (width>=768px){.md\:status{aspect-ratio:1;border-radius:var(--radius-selector);background-color:color-mix(in oklab,var(--color-base-content)20%,transparent);vertical-align:middle;color:#0000004d;background-position:50%;background-repeat:no-repeat;background-image:radial-gradient(circle at 35% 30%,oklch(1 0 0/calc(var(--depth)*.5)),#0000);width:.5rem;height:.5rem;box-shadow:0 2px 3px -1px color-mix(in oklab,currentColor calc(var(--depth)*100%),#0000);display:inline-block;@supports (color:color-mix(in lab, red, red)){&{color:color-mix(in oklab,var(--color-black)30%,transparent)}}}.md\:status-primary{background-color:var(--color-primary);color:var(--color-primary)}.md\:status-secondary{background-color:var(--color-secondary);color:var(--color-secondary)}.md\:status-accent{background-color:var(--color-accent);color:var(--color-accent)}.md\:status-neutral{background-color:var(--color-neutral);color:var(--color-neutral)}.md\:status-info{background-color:var(--color-info);color:var(--color-info)}.md\:status-success{background-color:var(--color-success);color:var(--color-success)}.md\:status-warning{background-color:var(--color-warning);color:var(--color-warning)}.md\:status-error{background-color:var(--color-error);color:var(--color-error)}.md\:status-xs{width:.125rem;height:.125rem}.md\:status-sm{width:.25rem;height:.25rem}.md\:status-md{width:.5rem;height:.5rem}.md\:status-lg{width:.75rem;height:.75rem}.md\:status-xl{width:1rem;height:1rem}}@media (width>=1024px){.lg\:status{aspect-ratio:1;border-radius:var(--radius-selector);background-color:color-mix(in oklab,var(--color-base-content)20%,transparent);vertical-align:middle;color:#0000004d;background-position:50%;background-repeat:no-repeat;background-image:radial-gradient(circle at 35% 30%,oklch(1 0 0/calc(var(--depth)*.5)),#0000);width:.5rem;height:.5rem;box-shadow:0 2px 3px -1px color-mix(in oklab,currentColor calc(var(--depth)*100%),#0000);display:inline-block;@supports (color:color-mix(in lab, red, red)){&{color:color-mix(in oklab,var(--color-black)30%,transparent)}}}.lg\:status-primary{background-color:var(--color-primary);color:var(--color-primary)}.lg\:status-secondary{background-color:var(--color-secondary);color:var(--color-secondary)}.lg\:status-accent{background-color:var(--color-accent);color:var(--color-accent)}.lg\:status-neutral{background-color:var(--color-neutral);color:var(--color-neutral)}.lg\:status-info{background-color:var(--color-info);color:var(--color-info)}.lg\:status-success{background-color:var(--color-success);color:var(--color-success)}.lg\:status-warning{background-color:var(--color-warning);color:var(--color-warning)}.lg\:status-error{background-color:var(--color-error);color:var(--color-error)}.lg\:status-xs{width:.125rem;height:.125rem}.lg\:status-sm{width:.25rem;height:.25rem}.lg\:status-md{width:.5rem;height:.5rem}.lg\:status-lg{width:.75rem;height:.75rem}.lg\:status-xl{width:1rem;height:1rem}}@media (width>=1280px){.xl\:status{aspect-ratio:1;border-radius:var(--radius-selector);background-color:color-mix(in oklab,var(--color-base-content)20%,transparent);vertical-align:middle;color:#0000004d;background-position:50%;background-repeat:no-repeat;background-image:radial-gradient(circle at 35% 30%,oklch(1 0 0/calc(var(--depth)*.5)),#0000);width:.5rem;height:.5rem;box-shadow:0 2px 3px -1px color-mix(in oklab,currentColor calc(var(--depth)*100%),#0000);display:inline-block;@supports (color:color-mix(in lab, red, red)){&{color:color-mix(in oklab,var(--color-black)30%,transparent)}}}.xl\:status-primary{background-color:var(--color-primary);color:var(--color-primary)}.xl\:status-secondary{background-color:var(--color-secondary);color:var(--color-secondary)}.xl\:status-accent{background-color:var(--color-accent);color:var(--color-accent)}.xl\:status-neutral{background-color:var(--color-neutral);color:var(--color-neutral)}.xl\:status-info{background-color:var(--color-info);color:var(--color-info)}.xl\:status-success{background-color:var(--color-success);color:var(--color-success)}.xl\:status-warning{background-color:var(--color-warning);color:var(--color-warning)}.xl\:status-error{background-color:var(--color-error);color:var(--color-error)}.xl\:status-xs{width:.125rem;height:.125rem}.xl\:status-sm{width:.25rem;height:.25rem}.xl\:status-md{width:.5rem;height:.5rem}.xl\:status-lg{width:.75rem;height:.75rem}.xl\:status-xl{width:1rem;height:1rem}}@media (width>=1536px){.\32 xl\:status{aspect-ratio:1;border-radius:var(--radius-selector);background-color:color-mix(in oklab,var(--color-base-content)20%,transparent);vertical-align:middle;color:#0000004d;background-position:50%;background-repeat:no-repeat;background-image:radial-gradient(circle at 35% 30%,oklch(1 0 0/calc(var(--depth)*.5)),#0000);width:.5rem;height:.5rem;box-shadow:0 2px 3px -1px color-mix(in oklab,currentColor calc(var(--depth)*100%),#0000);display:inline-block;@supports (color:color-mix(in lab, red, red)){&{color:color-mix(in oklab,var(--color-black)30%,transparent)}}}.\32 xl\:status-primary{background-color:var(--color-primary);color:var(--color-primary)}.\32 xl\:status-secondary{background-color:var(--color-secondary);color:var(--color-secondary)}.\32 xl\:status-accent{background-color:var(--color-accent);color:var(--color-accent)}.\32 xl\:status-neutral{background-color:var(--color-neutral);color:var(--color-neutral)}.\32 xl\:status-info{background-color:var(--color-info);color:var(--color-info)}.\32 xl\:status-success{background-color:var(--color-success);color:var(--color-success)}.\32 xl\:status-warning{background-color:var(--color-warning);color:var(--color-warning)}.\32 xl\:status-error{background-color:var(--color-error);color:var(--color-error)}.\32 xl\:status-xs{width:.125rem;height:.125rem}.\32 xl\:status-sm{width:.25rem;height:.25rem}.\32 xl\:status-md{width:.5rem;height:.5rem}.\32 xl\:status-lg{width:.75rem;height:.75rem}.\32 xl\:status-xl{width:1rem;height:1rem}}.chat{--mask-chat:url("data:image/svg+xml,%3csvg width='13' height='13' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M0 11.5004C0 13.0004 2 13.0004 2 13.0004H12H13V0.00036329L12.5 0C12.5 0 11.977 2.09572 11.8581 2.50033C11.6075 3.35237 10.9149 4.22374 9 5.50036C6 7.50036 0 10.0004 0 11.5004Z'/%3e%3c/svg%3e");column-gap:.75rem;padding-block:.25rem;display:grid}.chat-bubble{border-radius:var(--radius-field);background-color:var(--color-base-300);width:fit-content;color:var(--color-base-content);grid-row-end:3;min-width:2.5rem;max-width:90%;min-height:2rem;padding-block:.5rem;padding-inline:1rem;display:block;position:relative;&:before{background-color:inherit;content:"";width:.75rem;height:.75rem;mask-repeat:no-repeat;mask-image:var(--mask-chat);position:absolute;bottom:0;mask-position:0 -1px;mask-size:13px}}.chat-bubble-primary{background-color:var(--color-primary);color:var(--color-primary-content)}.chat-bubble-secondary{background-color:var(--color-secondary);color:var(--color-secondary-content)}.chat-bubble-accent{background-color:var(--color-accent);color:var(--color-accent-content)}.chat-bubble-neutral{background-color:var(--color-neutral);color:var(--color-neutral-content)}.chat-bubble-info{background-color:var(--color-info);color:var(--color-info-content)}.chat-bubble-success{background-color:var(--color-success);color:var(--color-success-content)}.chat-bubble-warning{background-color:var(--color-warning);color:var(--color-warning-content)}.chat-bubble-error{background-color:var(--color-error);color:var(--color-error-content)}.chat-image{grid-row:span 2/span 2;align-self:flex-end}.chat-header{grid-row-start:1;gap:.25rem;font-size:.6875rem;display:flex}.chat-footer{grid-row-start:3;gap:.25rem;font-size:.6875rem;display:flex}.chat-start{grid-template-columns:auto 1fr;place-items:start;& .chat-header,& .chat-footer{grid-column-start:2}& .chat-image{grid-column-start:1}& .chat-bubble{border-end-start-radius:0;grid-column-start:2;&:before{inset-inline-start:-.75rem;transform:rotateY(0)}[dir=rtl] &:before{transform:rotateY(180deg)}}}.chat-end{grid-template-columns:1fr auto;place-items:end;& .chat-header,& .chat-footer{grid-column-start:1}& .chat-image{grid-column-start:2}& .chat-bubble{border-end-end-radius:0;grid-column-start:1;&:before{inset-inline-start:100%;transform:rotateY(180deg)}[dir=rtl] &:before{transform:rotateY(0)}}}@media (width>=640px){.sm\:chat{--mask-chat:url("data:image/svg+xml,%3csvg width='13' height='13' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M0 11.5004C0 13.0004 2 13.0004 2 13.0004H12H13V0.00036329L12.5 0C12.5 0 11.977 2.09572 11.8581 2.50033C11.6075 3.35237 10.9149 4.22374 9 5.50036C6 7.50036 0 10.0004 0 11.5004Z'/%3e%3c/svg%3e");column-gap:.75rem;padding-block:.25rem;display:grid}.sm\:chat-bubble{border-radius:var(--radius-field);background-color:var(--color-base-300);width:fit-content;color:var(--color-base-content);grid-row-end:3;min-width:2.5rem;max-width:90%;min-height:2rem;padding-block:.5rem;padding-inline:1rem;display:block;position:relative;&:before{background-color:inherit;content:"";width:.75rem;height:.75rem;mask-repeat:no-repeat;mask-image:var(--mask-chat);position:absolute;bottom:0;mask-position:0 -1px;mask-size:13px}}.sm\:chat-bubble-primary{background-color:var(--color-primary);color:var(--color-primary-content)}.sm\:chat-bubble-secondary{background-color:var(--color-secondary);color:var(--color-secondary-content)}.sm\:chat-bubble-accent{background-color:var(--color-accent);color:var(--color-accent-content)}.sm\:chat-bubble-neutral{background-color:var(--color-neutral);color:var(--color-neutral-content)}.sm\:chat-bubble-info{background-color:var(--color-info);color:var(--color-info-content)}.sm\:chat-bubble-success{background-color:var(--color-success);color:var(--color-success-content)}.sm\:chat-bubble-warning{background-color:var(--color-warning);color:var(--color-warning-content)}.sm\:chat-bubble-error{background-color:var(--color-error);color:var(--color-error-content)}.sm\:chat-image{grid-row:span 2/span 2;align-self:flex-end}.sm\:chat-header{grid-row-start:1;gap:.25rem;font-size:.6875rem;display:flex}.sm\:chat-footer{grid-row-start:3;gap:.25rem;font-size:.6875rem;display:flex}.sm\:chat-start{grid-template-columns:auto 1fr;place-items:start;& .chat-header,& .chat-footer{grid-column-start:2}& .chat-image{grid-column-start:1}& .chat-bubble{border-end-start-radius:0;grid-column-start:2;&:before{inset-inline-start:-.75rem;transform:rotateY(0)}[dir=rtl] &:before{transform:rotateY(180deg)}}}.sm\:chat-end{grid-template-columns:1fr auto;place-items:end;& .chat-header,& .chat-footer{grid-column-start:1}& .chat-image{grid-column-start:2}& .chat-bubble{border-end-end-radius:0;grid-column-start:1;&:before{inset-inline-start:100%;transform:rotateY(180deg)}[dir=rtl] &:before{transform:rotateY(0)}}}}@media (width>=768px){.md\:chat{--mask-chat:url("data:image/svg+xml,%3csvg width='13' height='13' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M0 11.5004C0 13.0004 2 13.0004 2 13.0004H12H13V0.00036329L12.5 0C12.5 0 11.977 2.09572 11.8581 2.50033C11.6075 3.35237 10.9149 4.22374 9 5.50036C6 7.50036 0 10.0004 0 11.5004Z'/%3e%3c/svg%3e");column-gap:.75rem;padding-block:.25rem;display:grid}.md\:chat-bubble{border-radius:var(--radius-field);background-color:var(--color-base-300);width:fit-content;color:var(--color-base-content);grid-row-end:3;min-width:2.5rem;max-width:90%;min-height:2rem;padding-block:.5rem;padding-inline:1rem;display:block;position:relative;&:before{background-color:inherit;content:"";width:.75rem;height:.75rem;mask-repeat:no-repeat;mask-image:var(--mask-chat);position:absolute;bottom:0;mask-position:0 -1px;mask-size:13px}}.md\:chat-bubble-primary{background-color:var(--color-primary);color:var(--color-primary-content)}.md\:chat-bubble-secondary{background-color:var(--color-secondary);color:var(--color-secondary-content)}.md\:chat-bubble-accent{background-color:var(--color-accent);color:var(--color-accent-content)}.md\:chat-bubble-neutral{background-color:var(--color-neutral);color:var(--color-neutral-content)}.md\:chat-bubble-info{background-color:var(--color-info);color:var(--color-info-content)}.md\:chat-bubble-success{background-color:var(--color-success);color:var(--color-success-content)}.md\:chat-bubble-warning{background-color:var(--color-warning);color:var(--color-warning-content)}.md\:chat-bubble-error{background-color:var(--color-error);color:var(--color-error-content)}.md\:chat-image{grid-row:span 2/span 2;align-self:flex-end}.md\:chat-header{grid-row-start:1;gap:.25rem;font-size:.6875rem;display:flex}.md\:chat-footer{grid-row-start:3;gap:.25rem;font-size:.6875rem;display:flex}.md\:chat-start{grid-template-columns:auto 1fr;place-items:start;& .chat-header,& .chat-footer{grid-column-start:2}& .chat-image{grid-column-start:1}& .chat-bubble{border-end-start-radius:0;grid-column-start:2;&:before{inset-inline-start:-.75rem;transform:rotateY(0)}[dir=rtl] &:before{transform:rotateY(180deg)}}}.md\:chat-end{grid-template-columns:1fr auto;place-items:end;& .chat-header,& .chat-footer{grid-column-start:1}& .chat-image{grid-column-start:2}& .chat-bubble{border-end-end-radius:0;grid-column-start:1;&:before{inset-inline-start:100%;transform:rotateY(180deg)}[dir=rtl] &:before{transform:rotateY(0)}}}}@media (width>=1024px){.lg\:chat{--mask-chat:url("data:image/svg+xml,%3csvg width='13' height='13' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M0 11.5004C0 13.0004 2 13.0004 2 13.0004H12H13V0.00036329L12.5 0C12.5 0 11.977 2.09572 11.8581 2.50033C11.6075 3.35237 10.9149 4.22374 9 5.50036C6 7.50036 0 10.0004 0 11.5004Z'/%3e%3c/svg%3e");column-gap:.75rem;padding-block:.25rem;display:grid}.lg\:chat-bubble{border-radius:var(--radius-field);background-color:var(--color-base-300);width:fit-content;color:var(--color-base-content);grid-row-end:3;min-width:2.5rem;max-width:90%;min-height:2rem;padding-block:.5rem;padding-inline:1rem;display:block;position:relative;&:before{background-color:inherit;content:"";width:.75rem;height:.75rem;mask-repeat:no-repeat;mask-image:var(--mask-chat);position:absolute;bottom:0;mask-position:0 -1px;mask-size:13px}}.lg\:chat-bubble-primary{background-color:var(--color-primary);color:var(--color-primary-content)}.lg\:chat-bubble-secondary{background-color:var(--color-secondary);color:var(--color-secondary-content)}.lg\:chat-bubble-accent{background-color:var(--color-accent);color:var(--color-accent-content)}.lg\:chat-bubble-neutral{background-color:var(--color-neutral);color:var(--color-neutral-content)}.lg\:chat-bubble-info{background-color:var(--color-info);color:var(--color-info-content)}.lg\:chat-bubble-success{background-color:var(--color-success);color:var(--color-success-content)}.lg\:chat-bubble-warning{background-color:var(--color-warning);color:var(--color-warning-content)}.lg\:chat-bubble-error{background-color:var(--color-error);color:var(--color-error-content)}.lg\:chat-image{grid-row:span 2/span 2;align-self:flex-end}.lg\:chat-header{grid-row-start:1;gap:.25rem;font-size:.6875rem;display:flex}.lg\:chat-footer{grid-row-start:3;gap:.25rem;font-size:.6875rem;display:flex}.lg\:chat-start{grid-template-columns:auto 1fr;place-items:start;& .chat-header,& .chat-footer{grid-column-start:2}& .chat-image{grid-column-start:1}& .chat-bubble{border-end-start-radius:0;grid-column-start:2;&:before{inset-inline-start:-.75rem;transform:rotateY(0)}[dir=rtl] &:before{transform:rotateY(180deg)}}}.lg\:chat-end{grid-template-columns:1fr auto;place-items:end;& .chat-header,& .chat-footer{grid-column-start:1}& .chat-image{grid-column-start:2}& .chat-bubble{border-end-end-radius:0;grid-column-start:1;&:before{inset-inline-start:100%;transform:rotateY(180deg)}[dir=rtl] &:before{transform:rotateY(0)}}}}@media (width>=1280px){.xl\:chat{--mask-chat:url("data:image/svg+xml,%3csvg width='13' height='13' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M0 11.5004C0 13.0004 2 13.0004 2 13.0004H12H13V0.00036329L12.5 0C12.5 0 11.977 2.09572 11.8581 2.50033C11.6075 3.35237 10.9149 4.22374 9 5.50036C6 7.50036 0 10.0004 0 11.5004Z'/%3e%3c/svg%3e");column-gap:.75rem;padding-block:.25rem;display:grid}.xl\:chat-bubble{border-radius:var(--radius-field);background-color:var(--color-base-300);width:fit-content;color:var(--color-base-content);grid-row-end:3;min-width:2.5rem;max-width:90%;min-height:2rem;padding-block:.5rem;padding-inline:1rem;display:block;position:relative;&:before{background-color:inherit;content:"";width:.75rem;height:.75rem;mask-repeat:no-repeat;mask-image:var(--mask-chat);position:absolute;bottom:0;mask-position:0 -1px;mask-size:13px}}.xl\:chat-bubble-primary{background-color:var(--color-primary);color:var(--color-primary-content)}.xl\:chat-bubble-secondary{background-color:var(--color-secondary);color:var(--color-secondary-content)}.xl\:chat-bubble-accent{background-color:var(--color-accent);color:var(--color-accent-content)}.xl\:chat-bubble-neutral{background-color:var(--color-neutral);color:var(--color-neutral-content)}.xl\:chat-bubble-info{background-color:var(--color-info);color:var(--color-info-content)}.xl\:chat-bubble-success{background-color:var(--color-success);color:var(--color-success-content)}.xl\:chat-bubble-warning{background-color:var(--color-warning);color:var(--color-warning-content)}.xl\:chat-bubble-error{background-color:var(--color-error);color:var(--color-error-content)}.xl\:chat-image{grid-row:span 2/span 2;align-self:flex-end}.xl\:chat-header{grid-row-start:1;gap:.25rem;font-size:.6875rem;display:flex}.xl\:chat-footer{grid-row-start:3;gap:.25rem;font-size:.6875rem;display:flex}.xl\:chat-start{grid-template-columns:auto 1fr;place-items:start;& .chat-header,& .chat-footer{grid-column-start:2}& .chat-image{grid-column-start:1}& .chat-bubble{border-end-start-radius:0;grid-column-start:2;&:before{inset-inline-start:-.75rem;transform:rotateY(0)}[dir=rtl] &:before{transform:rotateY(180deg)}}}.xl\:chat-end{grid-template-columns:1fr auto;place-items:end;& .chat-header,& .chat-footer{grid-column-start:1}& .chat-image{grid-column-start:2}& .chat-bubble{border-end-end-radius:0;grid-column-start:1;&:before{inset-inline-start:100%;transform:rotateY(180deg)}[dir=rtl] &:before{transform:rotateY(0)}}}}@media (width>=1536px){.\32 xl\:chat{--mask-chat:url("data:image/svg+xml,%3csvg width='13' height='13' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M0 11.5004C0 13.0004 2 13.0004 2 13.0004H12H13V0.00036329L12.5 0C12.5 0 11.977 2.09572 11.8581 2.50033C11.6075 3.35237 10.9149 4.22374 9 5.50036C6 7.50036 0 10.0004 0 11.5004Z'/%3e%3c/svg%3e");column-gap:.75rem;padding-block:.25rem;display:grid}.\32 xl\:chat-bubble{border-radius:var(--radius-field);background-color:var(--color-base-300);width:fit-content;color:var(--color-base-content);grid-row-end:3;min-width:2.5rem;max-width:90%;min-height:2rem;padding-block:.5rem;padding-inline:1rem;display:block;position:relative;&:before{background-color:inherit;content:"";width:.75rem;height:.75rem;mask-repeat:no-repeat;mask-image:var(--mask-chat);position:absolute;bottom:0;mask-position:0 -1px;mask-size:13px}}.\32 xl\:chat-bubble-primary{background-color:var(--color-primary);color:var(--color-primary-content)}.\32 xl\:chat-bubble-secondary{background-color:var(--color-secondary);color:var(--color-secondary-content)}.\32 xl\:chat-bubble-accent{background-color:var(--color-accent);color:var(--color-accent-content)}.\32 xl\:chat-bubble-neutral{background-color:var(--color-neutral);color:var(--color-neutral-content)}.\32 xl\:chat-bubble-info{background-color:var(--color-info);color:var(--color-info-content)}.\32 xl\:chat-bubble-success{background-color:var(--color-success);color:var(--color-success-content)}.\32 xl\:chat-bubble-warning{background-color:var(--color-warning);color:var(--color-warning-content)}.\32 xl\:chat-bubble-error{background-color:var(--color-error);color:var(--color-error-content)}.\32 xl\:chat-image{grid-row:span 2/span 2;align-self:flex-end}.\32 xl\:chat-header{grid-row-start:1;gap:.25rem;font-size:.6875rem;display:flex}.\32 xl\:chat-footer{grid-row-start:3;gap:.25rem;font-size:.6875rem;display:flex}.\32 xl\:chat-start{grid-template-columns:auto 1fr;place-items:start;& .chat-header,& .chat-footer{grid-column-start:2}& .chat-image{grid-column-start:1}& .chat-bubble{border-end-start-radius:0;grid-column-start:2;&:before{inset-inline-start:-.75rem;transform:rotateY(0)}[dir=rtl] &:before{transform:rotateY(180deg)}}}.\32 xl\:chat-end{grid-template-columns:1fr auto;place-items:end;& .chat-header,& .chat-footer{grid-column-start:1}& .chat-image{grid-column-start:2}& .chat-bubble{border-end-end-radius:0;grid-column-start:1;&:before{inset-inline-start:100%;transform:rotateY(180deg)}[dir=rtl] &:before{transform:rotateY(0)}}}}.mask{vertical-align:middle;display:inline-block;mask-position:50%;mask-size:contain;mask-repeat:no-repeat}.mask-half-1{mask-position:0;mask-size:200%;&:where(:dir(rtl),[dir=rtl],[dir=rtl] *){mask-position:100%}}.mask-half-2{mask-position:100%;mask-size:200%;&:where(:dir(rtl),[dir=rtl],[dir=rtl] *){mask-position:0}}.mask-squircle{mask-image:url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M100 0C20 0 0 20 0 100s20 100 100 100 100-20 100-100S180 0 100 0Z'/%3e%3c/svg%3e")}.mask-decagon{mask-image:url("data:image/svg+xml,%3csvg width='192' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 0 58.779 19.098 36.327 50v61.804l-36.327 50L96 200l-58.779-19.098-36.327-50V69.098l36.327-50z' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-diamond{mask-image:url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m100 0 100 100-100 100L0 100z' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-heart{mask-image:url("data:image/svg+xml,%3csvg width='200' height='185' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M100 184.606a15.384 15.384 0 0 1-8.653-2.678C53.565 156.28 37.205 138.695 28.182 127.7 8.952 104.264-.254 80.202.005 54.146.308 24.287 24.264 0 53.406 0c21.192 0 35.869 11.937 44.416 21.879a2.884 2.884 0 0 0 4.356 0C110.725 11.927 125.402 0 146.594 0c29.142 0 53.098 24.287 53.4 54.151.26 26.061-8.956 50.122-28.176 73.554-9.023 10.994-25.383 28.58-63.165 54.228a15.384 15.384 0 0 1-8.653 2.673Z' fill='black' fill-rule='nonzero'/%3e%3c/svg%3e")}.mask-hexagon{mask-image:url("data:image/svg+xml,%3csvg width='182' height='201' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M.3 65.486c0-9.196 6.687-20.063 14.211-25.078l61.86-35.946c8.36-5.016 20.899-5.016 29.258 0l61.86 35.946c8.36 5.015 14.211 15.882 14.211 25.078v71.055c0 9.196-6.687 20.063-14.211 25.079l-61.86 35.945c-8.36 4.18-20.899 4.18-29.258 0L14.51 161.62C6.151 157.44.3 145.737.3 136.54V65.486Z' fill='black' fill-rule='nonzero'/%3e%3c/svg%3e")}.mask-hexagon-2{mask-image:url("data:image/svg+xml,%3csvg width='200' height='182' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M64.786 181.4c-9.196 0-20.063-6.687-25.079-14.21L3.762 105.33c-5.016-8.36-5.016-20.9 0-29.259l35.945-61.86C44.723 5.851 55.59 0 64.786 0h71.055c9.196 0 20.063 6.688 25.079 14.211l35.945 61.86c4.18 8.36 4.18 20.899 0 29.258l-35.945 61.86c-4.18 8.36-15.883 14.211-25.079 14.211H64.786Z' fill='black' fill-rule='nonzero'/%3e%3c/svg%3e")}.mask-circle{mask-image:url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='black' cx='100' cy='100' r='100' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-pentagon{mask-image:url("data:image/svg+xml,%3csvg width='192' height='181' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 0 95.106 69.098-36.327 111.804H37.22L.894 69.098z' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-star{mask-image:url("data:image/svg+xml,%3csvg width='192' height='180' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 137.263-58.779 42.024 22.163-68.389L.894 68.481l72.476-.243L96 0l22.63 68.238 72.476.243-58.49 42.417 22.163 68.389z' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-star-2{mask-image:url("data:image/svg+xml,%3csvg width='192' height='180' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 153.044-58.779 26.243 7.02-63.513L.894 68.481l63.117-13.01L96 0l31.989 55.472 63.117 13.01-43.347 47.292 7.02 63.513z' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-triangle{mask-image:url("data:image/svg+xml,%3csvg width='174' height='149' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m87 148.476-86.603.185L43.86 74.423 87 0l43.14 74.423 43.463 74.238z' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-triangle-2{mask-image:url("data:image/svg+xml,%3csvg width='174' height='150' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m87 .738 86.603-.184-43.463 74.238L87 149.214 43.86 74.792.397.554z' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-triangle-3{mask-image:url("data:image/svg+xml,%3csvg width='150' height='174' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m149.369 87.107.185 86.603-74.239-43.463L.893 87.107l74.422-43.14L149.554.505z' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-triangle-4{mask-image:url("data:image/svg+xml,%3csvg width='150' height='174' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M.631 87.107.446.505l74.239 43.462 74.422 43.14-74.422 43.14L.446 173.71z' fill-rule='evenodd'/%3e%3c/svg%3e")}.hero{background-position:50%;background-size:cover;place-items:center;width:100%;display:grid;&>*{grid-row-start:1;grid-column-start:1}}.hero-overlay{background-color:color-mix(in oklab,var(--color-neutral)50%,transparent);grid-row-start:1;grid-column-start:1;width:100%;height:100%}.hero-content{isolation:isolate;justify-content:center;align-items:center;gap:1rem;max-width:80rem;padding:1rem;display:flex}@media (width>=640px){.sm\:hero{background-position:50%;background-size:cover;place-items:center;width:100%;display:grid;&>*{grid-row-start:1;grid-column-start:1}}.sm\:hero-overlay{background-color:color-mix(in oklab,var(--color-neutral)50%,transparent);grid-row-start:1;grid-column-start:1;width:100%;height:100%}.sm\:hero-content{isolation:isolate;justify-content:center;align-items:center;gap:1rem;max-width:80rem;padding:1rem;display:flex}}@media (width>=768px){.md\:hero{background-position:50%;background-size:cover;place-items:center;width:100%;display:grid;&>*{grid-row-start:1;grid-column-start:1}}.md\:hero-overlay{background-color:color-mix(in oklab,var(--color-neutral)50%,transparent);grid-row-start:1;grid-column-start:1;width:100%;height:100%}.md\:hero-content{isolation:isolate;justify-content:center;align-items:center;gap:1rem;max-width:80rem;padding:1rem;display:flex}}@media (width>=1024px){.lg\:hero{background-position:50%;background-size:cover;place-items:center;width:100%;display:grid;&>*{grid-row-start:1;grid-column-start:1}}.lg\:hero-overlay{background-color:color-mix(in oklab,var(--color-neutral)50%,transparent);grid-row-start:1;grid-column-start:1;width:100%;height:100%}.lg\:hero-content{isolation:isolate;justify-content:center;align-items:center;gap:1rem;max-width:80rem;padding:1rem;display:flex}}@media (width>=1280px){.xl\:hero{background-position:50%;background-size:cover;place-items:center;width:100%;display:grid;&>*{grid-row-start:1;grid-column-start:1}}.xl\:hero-overlay{background-color:color-mix(in oklab,var(--color-neutral)50%,transparent);grid-row-start:1;grid-column-start:1;width:100%;height:100%}.xl\:hero-content{isolation:isolate;justify-content:center;align-items:center;gap:1rem;max-width:80rem;padding:1rem;display:flex}}@media (width>=1536px){.\32 xl\:hero{background-position:50%;background-size:cover;place-items:center;width:100%;display:grid;&>*{grid-row-start:1;grid-column-start:1}}.\32 xl\:hero-overlay{background-color:color-mix(in oklab,var(--color-neutral)50%,transparent);grid-row-start:1;grid-column-start:1;width:100%;height:100%}.\32 xl\:hero-content{isolation:isolate;justify-content:center;align-items:center;gap:1rem;max-width:80rem;padding:1rem;display:flex}}.diff{-webkit-user-select:none;user-select:none;direction:ltr;grid-template-columns:auto 1fr;width:100%;display:grid;position:relative;overflow:hidden;container-type:inline-size;&:focus-visible,&:has(.diff-item-1:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--color-base-content)}&:focus-visible{outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--color-base-content);& .diff-resizer{min-width:90cqi;max-width:90cqi}}&:has(.diff-item-2:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;& .diff-resizer{min-width:10cqi;max-width:10cqi}}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){&:focus{& .diff-resizer{min-width:10cqi;max-width:10cqi}}&:has(.diff-item-1:focus){& .diff-resizer{min-width:90cqi;max-width:90cqi}}}}.diff-resizer{z-index:1;resize:horizontal;opacity:0;cursor:ew-resize;transform-origin:100% 100%;clip-path:inset(calc(100% - .75rem) 0 0 calc(100% - .75rem));grid-row-start:1;grid-column-start:1;width:50cqi;min-width:1rem;max-width:calc(100cqi - 1rem);height:.5rem;transition:min-width .3s ease-out,max-width .3s ease-out;position:relative;top:50%;overflow:hidden;transform:scaleY(3)translate(.35rem,.08rem)}.diff-item-2{grid-row-start:1;grid-column-start:1;position:relative;&:after{pointer-events:none;z-index:2;background-color:color-mix(in oklab,var(--color-base-100)50%,transparent);border:2px solid var(--color-base-100);content:"";outline:1px solid color-mix(in oklab,var(--color-base-content)5%,#0000);outline-offset:-3px;backdrop-filter:blur(8px);border-radius:3.40282e38px;width:1.2rem;height:1.8rem;position:absolute;top:50%;bottom:0;right:1px;translate:50% -50%;box-shadow:0 1px 2px oklch(0% 0 0/.1)}&>*{pointer-events:none;object-fit:cover;object-position:center;width:100cqi;max-width:none;height:100%;position:absolute;top:0;bottom:0;left:0}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){&:after{content:none}}}.diff-item-1{z-index:1;border-right:2px solid var(--color-base-100);grid-row-start:1;grid-column-start:1;position:relative;overflow:hidden;&>*{pointer-events:none;object-fit:cover;object-position:center;width:100cqi;max-width:none;height:100%;position:absolute;top:0;bottom:0;left:0}}@media (width>=640px){.sm\:diff{-webkit-user-select:none;user-select:none;direction:ltr;grid-template-columns:auto 1fr;width:100%;display:grid;position:relative;overflow:hidden;container-type:inline-size;&:focus-visible,&:has(.diff-item-1:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--color-base-content)}&:focus-visible{outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--color-base-content);& .diff-resizer{min-width:90cqi;max-width:90cqi}}&:has(.diff-item-2:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;& .diff-resizer{min-width:10cqi;max-width:10cqi}}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){&:focus{& .diff-resizer{min-width:10cqi;max-width:10cqi}}&:has(.diff-item-1:focus){& .diff-resizer{min-width:90cqi;max-width:90cqi}}}}.sm\:diff-resizer{z-index:1;resize:horizontal;opacity:0;cursor:ew-resize;transform-origin:100% 100%;clip-path:inset(calc(100% - .75rem) 0 0 calc(100% - .75rem));grid-row-start:1;grid-column-start:1;width:50cqi;min-width:1rem;max-width:calc(100cqi - 1rem);height:.5rem;transition:min-width .3s ease-out,max-width .3s ease-out;position:relative;top:50%;overflow:hidden;transform:scaleY(3)translate(.35rem,.08rem)}.sm\:diff-item-2{grid-row-start:1;grid-column-start:1;position:relative;&:after{pointer-events:none;z-index:2;background-color:color-mix(in oklab,var(--color-base-100)50%,transparent);border:2px solid var(--color-base-100);content:"";outline:1px solid color-mix(in oklab,var(--color-base-content)5%,#0000);outline-offset:-3px;backdrop-filter:blur(8px);border-radius:3.40282e38px;width:1.2rem;height:1.8rem;position:absolute;top:50%;bottom:0;right:1px;translate:50% -50%;box-shadow:0 1px 2px oklch(0% 0 0/.1)}&>*{pointer-events:none;object-fit:cover;object-position:center;width:100cqi;max-width:none;height:100%;position:absolute;top:0;bottom:0;left:0}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){&:after{content:none}}}.sm\:diff-item-1{z-index:1;border-right:2px solid var(--color-base-100);grid-row-start:1;grid-column-start:1;position:relative;overflow:hidden;&>*{pointer-events:none;object-fit:cover;object-position:center;width:100cqi;max-width:none;height:100%;position:absolute;top:0;bottom:0;left:0}}}@media (width>=768px){.md\:diff{-webkit-user-select:none;user-select:none;direction:ltr;grid-template-columns:auto 1fr;width:100%;display:grid;position:relative;overflow:hidden;container-type:inline-size;&:focus-visible,&:has(.diff-item-1:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--color-base-content)}&:focus-visible{outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--color-base-content);& .diff-resizer{min-width:90cqi;max-width:90cqi}}&:has(.diff-item-2:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;& .diff-resizer{min-width:10cqi;max-width:10cqi}}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){&:focus{& .diff-resizer{min-width:10cqi;max-width:10cqi}}&:has(.diff-item-1:focus){& .diff-resizer{min-width:90cqi;max-width:90cqi}}}}.md\:diff-resizer{z-index:1;resize:horizontal;opacity:0;cursor:ew-resize;transform-origin:100% 100%;clip-path:inset(calc(100% - .75rem) 0 0 calc(100% - .75rem));grid-row-start:1;grid-column-start:1;width:50cqi;min-width:1rem;max-width:calc(100cqi - 1rem);height:.5rem;transition:min-width .3s ease-out,max-width .3s ease-out;position:relative;top:50%;overflow:hidden;transform:scaleY(3)translate(.35rem,.08rem)}.md\:diff-item-2{grid-row-start:1;grid-column-start:1;position:relative;&:after{pointer-events:none;z-index:2;background-color:color-mix(in oklab,var(--color-base-100)50%,transparent);border:2px solid var(--color-base-100);content:"";outline:1px solid color-mix(in oklab,var(--color-base-content)5%,#0000);outline-offset:-3px;backdrop-filter:blur(8px);border-radius:3.40282e38px;width:1.2rem;height:1.8rem;position:absolute;top:50%;bottom:0;right:1px;translate:50% -50%;box-shadow:0 1px 2px oklch(0% 0 0/.1)}&>*{pointer-events:none;object-fit:cover;object-position:center;width:100cqi;max-width:none;height:100%;position:absolute;top:0;bottom:0;left:0}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){&:after{content:none}}}.md\:diff-item-1{z-index:1;border-right:2px solid var(--color-base-100);grid-row-start:1;grid-column-start:1;position:relative;overflow:hidden;&>*{pointer-events:none;object-fit:cover;object-position:center;width:100cqi;max-width:none;height:100%;position:absolute;top:0;bottom:0;left:0}}}@media (width>=1024px){.lg\:diff{-webkit-user-select:none;user-select:none;direction:ltr;grid-template-columns:auto 1fr;width:100%;display:grid;position:relative;overflow:hidden;container-type:inline-size;&:focus-visible,&:has(.diff-item-1:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--color-base-content)}&:focus-visible{outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--color-base-content);& .diff-resizer{min-width:90cqi;max-width:90cqi}}&:has(.diff-item-2:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;& .diff-resizer{min-width:10cqi;max-width:10cqi}}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){&:focus{& .diff-resizer{min-width:10cqi;max-width:10cqi}}&:has(.diff-item-1:focus){& .diff-resizer{min-width:90cqi;max-width:90cqi}}}}.lg\:diff-resizer{z-index:1;resize:horizontal;opacity:0;cursor:ew-resize;transform-origin:100% 100%;clip-path:inset(calc(100% - .75rem) 0 0 calc(100% - .75rem));grid-row-start:1;grid-column-start:1;width:50cqi;min-width:1rem;max-width:calc(100cqi - 1rem);height:.5rem;transition:min-width .3s ease-out,max-width .3s ease-out;position:relative;top:50%;overflow:hidden;transform:scaleY(3)translate(.35rem,.08rem)}.lg\:diff-item-2{grid-row-start:1;grid-column-start:1;position:relative;&:after{pointer-events:none;z-index:2;background-color:color-mix(in oklab,var(--color-base-100)50%,transparent);border:2px solid var(--color-base-100);content:"";outline:1px solid color-mix(in oklab,var(--color-base-content)5%,#0000);outline-offset:-3px;backdrop-filter:blur(8px);border-radius:3.40282e38px;width:1.2rem;height:1.8rem;position:absolute;top:50%;bottom:0;right:1px;translate:50% -50%;box-shadow:0 1px 2px oklch(0% 0 0/.1)}&>*{pointer-events:none;object-fit:cover;object-position:center;width:100cqi;max-width:none;height:100%;position:absolute;top:0;bottom:0;left:0}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){&:after{content:none}}}.lg\:diff-item-1{z-index:1;border-right:2px solid var(--color-base-100);grid-row-start:1;grid-column-start:1;position:relative;overflow:hidden;&>*{pointer-events:none;object-fit:cover;object-position:center;width:100cqi;max-width:none;height:100%;position:absolute;top:0;bottom:0;left:0}}}@media (width>=1280px){.xl\:diff{-webkit-user-select:none;user-select:none;direction:ltr;grid-template-columns:auto 1fr;width:100%;display:grid;position:relative;overflow:hidden;container-type:inline-size;&:focus-visible,&:has(.diff-item-1:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--color-base-content)}&:focus-visible{outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--color-base-content);& .diff-resizer{min-width:90cqi;max-width:90cqi}}&:has(.diff-item-2:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;& .diff-resizer{min-width:10cqi;max-width:10cqi}}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){&:focus{& .diff-resizer{min-width:10cqi;max-width:10cqi}}&:has(.diff-item-1:focus){& .diff-resizer{min-width:90cqi;max-width:90cqi}}}}.xl\:diff-resizer{z-index:1;resize:horizontal;opacity:0;cursor:ew-resize;transform-origin:100% 100%;clip-path:inset(calc(100% - .75rem) 0 0 calc(100% - .75rem));grid-row-start:1;grid-column-start:1;width:50cqi;min-width:1rem;max-width:calc(100cqi - 1rem);height:.5rem;transition:min-width .3s ease-out,max-width .3s ease-out;position:relative;top:50%;overflow:hidden;transform:scaleY(3)translate(.35rem,.08rem)}.xl\:diff-item-2{grid-row-start:1;grid-column-start:1;position:relative;&:after{pointer-events:none;z-index:2;background-color:color-mix(in oklab,var(--color-base-100)50%,transparent);border:2px solid var(--color-base-100);content:"";outline:1px solid color-mix(in oklab,var(--color-base-content)5%,#0000);outline-offset:-3px;backdrop-filter:blur(8px);border-radius:3.40282e38px;width:1.2rem;height:1.8rem;position:absolute;top:50%;bottom:0;right:1px;translate:50% -50%;box-shadow:0 1px 2px oklch(0% 0 0/.1)}&>*{pointer-events:none;object-fit:cover;object-position:center;width:100cqi;max-width:none;height:100%;position:absolute;top:0;bottom:0;left:0}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){&:after{content:none}}}.xl\:diff-item-1{z-index:1;border-right:2px solid var(--color-base-100);grid-row-start:1;grid-column-start:1;position:relative;overflow:hidden;&>*{pointer-events:none;object-fit:cover;object-position:center;width:100cqi;max-width:none;height:100%;position:absolute;top:0;bottom:0;left:0}}}@media (width>=1536px){.\32 xl\:diff{-webkit-user-select:none;user-select:none;direction:ltr;grid-template-columns:auto 1fr;width:100%;display:grid;position:relative;overflow:hidden;container-type:inline-size;&:focus-visible,&:has(.diff-item-1:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--color-base-content)}&:focus-visible{outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--color-base-content);& .diff-resizer{min-width:90cqi;max-width:90cqi}}&:has(.diff-item-2:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;& .diff-resizer{min-width:10cqi;max-width:10cqi}}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){&:focus{& .diff-resizer{min-width:10cqi;max-width:10cqi}}&:has(.diff-item-1:focus){& .diff-resizer{min-width:90cqi;max-width:90cqi}}}}.\32 xl\:diff-resizer{z-index:1;resize:horizontal;opacity:0;cursor:ew-resize;transform-origin:100% 100%;clip-path:inset(calc(100% - .75rem) 0 0 calc(100% - .75rem));grid-row-start:1;grid-column-start:1;width:50cqi;min-width:1rem;max-width:calc(100cqi - 1rem);height:.5rem;transition:min-width .3s ease-out,max-width .3s ease-out;position:relative;top:50%;overflow:hidden;transform:scaleY(3)translate(.35rem,.08rem)}.\32 xl\:diff-item-2{grid-row-start:1;grid-column-start:1;position:relative;&:after{pointer-events:none;z-index:2;background-color:color-mix(in oklab,var(--color-base-100)50%,transparent);border:2px solid var(--color-base-100);content:"";outline:1px solid color-mix(in oklab,var(--color-base-content)5%,#0000);outline-offset:-3px;backdrop-filter:blur(8px);border-radius:3.40282e38px;width:1.2rem;height:1.8rem;position:absolute;top:50%;bottom:0;right:1px;translate:50% -50%;box-shadow:0 1px 2px oklch(0% 0 0/.1)}&>*{pointer-events:none;object-fit:cover;object-position:center;width:100cqi;max-width:none;height:100%;position:absolute;top:0;bottom:0;left:0}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){&:after{content:none}}}.\32 xl\:diff-item-1{z-index:1;border-right:2px solid var(--color-base-100);grid-row-start:1;grid-column-start:1;position:relative;overflow:hidden;&>*{pointer-events:none;object-fit:cover;object-position:center;width:100cqi;max-width:none;height:100%;position:absolute;top:0;bottom:0;left:0}}}.table{border-radius:var(--radius-box);text-align:left;width:100%;font-size:.875rem;position:relative;&:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right}& tr.row-hover{&,&:nth-child(2n){&:hover{@media (hover:hover){&{background-color:var(--color-base-200)}}}}}& :where(th,td){vertical-align:middle;padding-block:.75rem;padding-inline:1rem}& :where(thead,tfoot){white-space:nowrap;color:color-mix(in oklab,var(--color-base-content)60%,transparent);font-size:.875rem;font-weight:600}& :where(tfoot){border-top:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}& :where(.table-pin-rows thead tr){z-index:1;background-color:var(--color-base-100);position:sticky;top:0}& :where(.table-pin-rows tfoot tr){z-index:1;background-color:var(--color-base-100);position:sticky;bottom:0}& :where(.table-pin-cols tr th){background-color:var(--color-base-100);position:sticky;left:0;right:0}& :where(thead tr,tbody tr:not(:last-child)){border-bottom:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}}.table-zebra{& tbody{& tr{&:where(:nth-child(2n)){background-color:var(--color-base-200);& :where(.table-pin-cols tr th){background-color:var(--color-base-200)}}&.row-hover{&,&:where(:nth-child(2n)){&:hover{@media (hover:hover){&{background-color:var(--color-base-300)}}}}}}}}.table-xs{& :not(thead,tfoot) tr{font-size:.6875rem}& :where(th,td){padding-block:.25rem;padding-inline:.5rem}}.table-sm{& :not(thead,tfoot) tr{font-size:.75rem}& :where(th,td){padding-block:.5rem;padding-inline:.75rem}}.table-md{& :not(thead,tfoot) tr{font-size:.875rem}& :where(th,td){padding-block:.75rem;padding-inline:1rem}}.table-lg{& :not(thead,tfoot) tr{font-size:1.125rem}& :where(th,td){padding-block:1rem;padding-inline:1.25rem}}.table-xl{& :not(thead,tfoot) tr{font-size:1.375rem}& :where(th,td){padding-block:1.25rem;padding-inline:1.5rem}}@media (width>=640px){.sm\:table{border-radius:var(--radius-box);text-align:left;width:100%;font-size:.875rem;position:relative;&:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right}& tr.row-hover{&,&:nth-child(2n){&:hover{@media (hover:hover){&{background-color:var(--color-base-200)}}}}}& :where(th,td){vertical-align:middle;padding-block:.75rem;padding-inline:1rem}& :where(thead,tfoot){white-space:nowrap;color:color-mix(in oklab,var(--color-base-content)60%,transparent);font-size:.875rem;font-weight:600}& :where(tfoot){border-top:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}& :where(.table-pin-rows thead tr){z-index:1;background-color:var(--color-base-100);position:sticky;top:0}& :where(.table-pin-rows tfoot tr){z-index:1;background-color:var(--color-base-100);position:sticky;bottom:0}& :where(.table-pin-cols tr th){background-color:var(--color-base-100);position:sticky;left:0;right:0}& :where(thead tr,tbody tr:not(:last-child)){border-bottom:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}}.sm\:table-zebra{& tbody{& tr{&:where(:nth-child(2n)){background-color:var(--color-base-200);& :where(.table-pin-cols tr th){background-color:var(--color-base-200)}}&.row-hover{&,&:where(:nth-child(2n)){&:hover{@media (hover:hover){&{background-color:var(--color-base-300)}}}}}}}}.sm\:table-xs{& :not(thead,tfoot) tr{font-size:.6875rem}& :where(th,td){padding-block:.25rem;padding-inline:.5rem}}.sm\:table-sm{& :not(thead,tfoot) tr{font-size:.75rem}& :where(th,td){padding-block:.5rem;padding-inline:.75rem}}.sm\:table-md{& :not(thead,tfoot) tr{font-size:.875rem}& :where(th,td){padding-block:.75rem;padding-inline:1rem}}.sm\:table-lg{& :not(thead,tfoot) tr{font-size:1.125rem}& :where(th,td){padding-block:1rem;padding-inline:1.25rem}}.sm\:table-xl{& :not(thead,tfoot) tr{font-size:1.375rem}& :where(th,td){padding-block:1.25rem;padding-inline:1.5rem}}}@media (width>=768px){.md\:table{border-radius:var(--radius-box);text-align:left;width:100%;font-size:.875rem;position:relative;&:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right}& tr.row-hover{&,&:nth-child(2n){&:hover{@media (hover:hover){&{background-color:var(--color-base-200)}}}}}& :where(th,td){vertical-align:middle;padding-block:.75rem;padding-inline:1rem}& :where(thead,tfoot){white-space:nowrap;color:color-mix(in oklab,var(--color-base-content)60%,transparent);font-size:.875rem;font-weight:600}& :where(tfoot){border-top:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}& :where(.table-pin-rows thead tr){z-index:1;background-color:var(--color-base-100);position:sticky;top:0}& :where(.table-pin-rows tfoot tr){z-index:1;background-color:var(--color-base-100);position:sticky;bottom:0}& :where(.table-pin-cols tr th){background-color:var(--color-base-100);position:sticky;left:0;right:0}& :where(thead tr,tbody tr:not(:last-child)){border-bottom:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}}.md\:table-zebra{& tbody{& tr{&:where(:nth-child(2n)){background-color:var(--color-base-200);& :where(.table-pin-cols tr th){background-color:var(--color-base-200)}}&.row-hover{&,&:where(:nth-child(2n)){&:hover{@media (hover:hover){&{background-color:var(--color-base-300)}}}}}}}}.md\:table-xs{& :not(thead,tfoot) tr{font-size:.6875rem}& :where(th,td){padding-block:.25rem;padding-inline:.5rem}}.md\:table-sm{& :not(thead,tfoot) tr{font-size:.75rem}& :where(th,td){padding-block:.5rem;padding-inline:.75rem}}.md\:table-md{& :not(thead,tfoot) tr{font-size:.875rem}& :where(th,td){padding-block:.75rem;padding-inline:1rem}}.md\:table-lg{& :not(thead,tfoot) tr{font-size:1.125rem}& :where(th,td){padding-block:1rem;padding-inline:1.25rem}}.md\:table-xl{& :not(thead,tfoot) tr{font-size:1.375rem}& :where(th,td){padding-block:1.25rem;padding-inline:1.5rem}}}@media (width>=1024px){.lg\:table{border-radius:var(--radius-box);text-align:left;width:100%;font-size:.875rem;position:relative;&:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right}& tr.row-hover{&,&:nth-child(2n){&:hover{@media (hover:hover){&{background-color:var(--color-base-200)}}}}}& :where(th,td){vertical-align:middle;padding-block:.75rem;padding-inline:1rem}& :where(thead,tfoot){white-space:nowrap;color:color-mix(in oklab,var(--color-base-content)60%,transparent);font-size:.875rem;font-weight:600}& :where(tfoot){border-top:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}& :where(.table-pin-rows thead tr){z-index:1;background-color:var(--color-base-100);position:sticky;top:0}& :where(.table-pin-rows tfoot tr){z-index:1;background-color:var(--color-base-100);position:sticky;bottom:0}& :where(.table-pin-cols tr th){background-color:var(--color-base-100);position:sticky;left:0;right:0}& :where(thead tr,tbody tr:not(:last-child)){border-bottom:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}}.lg\:table-zebra{& tbody{& tr{&:where(:nth-child(2n)){background-color:var(--color-base-200);& :where(.table-pin-cols tr th){background-color:var(--color-base-200)}}&.row-hover{&,&:where(:nth-child(2n)){&:hover{@media (hover:hover){&{background-color:var(--color-base-300)}}}}}}}}.lg\:table-xs{& :not(thead,tfoot) tr{font-size:.6875rem}& :where(th,td){padding-block:.25rem;padding-inline:.5rem}}.lg\:table-sm{& :not(thead,tfoot) tr{font-size:.75rem}& :where(th,td){padding-block:.5rem;padding-inline:.75rem}}.lg\:table-md{& :not(thead,tfoot) tr{font-size:.875rem}& :where(th,td){padding-block:.75rem;padding-inline:1rem}}.lg\:table-lg{& :not(thead,tfoot) tr{font-size:1.125rem}& :where(th,td){padding-block:1rem;padding-inline:1.25rem}}.lg\:table-xl{& :not(thead,tfoot) tr{font-size:1.375rem}& :where(th,td){padding-block:1.25rem;padding-inline:1.5rem}}}@media (width>=1280px){.xl\:table{border-radius:var(--radius-box);text-align:left;width:100%;font-size:.875rem;position:relative;&:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right}& tr.row-hover{&,&:nth-child(2n){&:hover{@media (hover:hover){&{background-color:var(--color-base-200)}}}}}& :where(th,td){vertical-align:middle;padding-block:.75rem;padding-inline:1rem}& :where(thead,tfoot){white-space:nowrap;color:color-mix(in oklab,var(--color-base-content)60%,transparent);font-size:.875rem;font-weight:600}& :where(tfoot){border-top:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}& :where(.table-pin-rows thead tr){z-index:1;background-color:var(--color-base-100);position:sticky;top:0}& :where(.table-pin-rows tfoot tr){z-index:1;background-color:var(--color-base-100);position:sticky;bottom:0}& :where(.table-pin-cols tr th){background-color:var(--color-base-100);position:sticky;left:0;right:0}& :where(thead tr,tbody tr:not(:last-child)){border-bottom:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}}.xl\:table-zebra{& tbody{& tr{&:where(:nth-child(2n)){background-color:var(--color-base-200);& :where(.table-pin-cols tr th){background-color:var(--color-base-200)}}&.row-hover{&,&:where(:nth-child(2n)){&:hover{@media (hover:hover){&{background-color:var(--color-base-300)}}}}}}}}.xl\:table-xs{& :not(thead,tfoot) tr{font-size:.6875rem}& :where(th,td){padding-block:.25rem;padding-inline:.5rem}}.xl\:table-sm{& :not(thead,tfoot) tr{font-size:.75rem}& :where(th,td){padding-block:.5rem;padding-inline:.75rem}}.xl\:table-md{& :not(thead,tfoot) tr{font-size:.875rem}& :where(th,td){padding-block:.75rem;padding-inline:1rem}}.xl\:table-lg{& :not(thead,tfoot) tr{font-size:1.125rem}& :where(th,td){padding-block:1rem;padding-inline:1.25rem}}.xl\:table-xl{& :not(thead,tfoot) tr{font-size:1.375rem}& :where(th,td){padding-block:1.25rem;padding-inline:1.5rem}}}@media (width>=1536px){.\32 xl\:table{border-radius:var(--radius-box);text-align:left;width:100%;font-size:.875rem;position:relative;&:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right}& tr.row-hover{&,&:nth-child(2n){&:hover{@media (hover:hover){&{background-color:var(--color-base-200)}}}}}& :where(th,td){vertical-align:middle;padding-block:.75rem;padding-inline:1rem}& :where(thead,tfoot){white-space:nowrap;color:color-mix(in oklab,var(--color-base-content)60%,transparent);font-size:.875rem;font-weight:600}& :where(tfoot){border-top:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}& :where(.table-pin-rows thead tr){z-index:1;background-color:var(--color-base-100);position:sticky;top:0}& :where(.table-pin-rows tfoot tr){z-index:1;background-color:var(--color-base-100);position:sticky;bottom:0}& :where(.table-pin-cols tr th){background-color:var(--color-base-100);position:sticky;left:0;right:0}& :where(thead tr,tbody tr:not(:last-child)){border-bottom:var(--border)solid color-mix(in oklch,var(--color-base-content)5%,#0000)}}.\32 xl\:table-zebra{& tbody{& tr{&:where(:nth-child(2n)){background-color:var(--color-base-200);& :where(.table-pin-cols tr th){background-color:var(--color-base-200)}}&.row-hover{&,&:where(:nth-child(2n)){&:hover{@media (hover:hover){&{background-color:var(--color-base-300)}}}}}}}}.\32 xl\:table-xs{& :not(thead,tfoot) tr{font-size:.6875rem}& :where(th,td){padding-block:.25rem;padding-inline:.5rem}}.\32 xl\:table-sm{& :not(thead,tfoot) tr{font-size:.75rem}& :where(th,td){padding-block:.5rem;padding-inline:.75rem}}.\32 xl\:table-md{& :not(thead,tfoot) tr{font-size:.875rem}& :where(th,td){padding-block:.75rem;padding-inline:1rem}}.\32 xl\:table-lg{& :not(thead,tfoot) tr{font-size:1.125rem}& :where(th,td){padding-block:1rem;padding-inline:1.25rem}}.\32 xl\:table-xl{& :not(thead,tfoot) tr{font-size:1.375rem}& :where(th,td){padding-block:1.25rem;padding-inline:1.5rem}}}.file-input{cursor:pointer;border:var(--border)solid #0000;cursor:pointer;appearance:none;background-color:var(--color-base-100);vertical-align:middle;-webkit-user-select:none;user-select:none;width:clamp(3rem,20rem,100%);height:var(--size);border-color:var(--input-color);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;--size:calc(var(--size-field,.25rem)*10);--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));align-items:center;padding-inline-end:.75rem;font-size:.875rem;line-height:2;display:inline-flex;&::file-selector-button{cursor:pointer;-webkit-user-select:none;user-select:none;height:calc(100% + var(--border)*2);margin-inline-end:1rem;margin-block:calc(var(--border)*-1);color:var(--btn-fg);border-width:var(--border);border-style:solid;border-color:var(--btn-border);background-color:var(--btn-bg);background-size:calc(var(--noise)*100%);background-image:var(--btn-noise);text-shadow:0 .5px oklch(1 0 0/calc(var(--depth)*.15));box-shadow:0 .5px 0 .5px color-mix(in oklab,color-mix(in oklab,white 30%,var(--btn-bg))calc(var(--depth)*20%),#0000)inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-border:color-mix(in oklab,var(--btn-bg),#000 5%);--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)30%,#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)30%,#0000);--btn-noise:var(--fx-noise);border-start-start-radius:calc(var(--join-ss,var(--radius-field) - var(--border)));border-end-start-radius:calc(var(--join-es,var(--radius-field) - var(--border)));margin-inline-start:calc(var(--border)*-1);padding-inline:1rem;font-size:.875rem;font-weight:600}&:focus{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)10%,#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}&:has(>input[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);box-shadow:none;color:color-mix(in oklch,var(--color-base-content)20%,#0000);&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}&::file-selector-button{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);--btn-border:#0000;--btn-noise:none;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}}.file-input-ghost{box-shadow:none;background-color:#0000;border-color:#0000;transition:background-color .2s;&::file-selector-button{cursor:pointer;-webkit-user-select:none;user-select:none;border-start-end-radius:calc(var(--join-ss,var(--radius-field) - var(--border)));border-end-end-radius:calc(var(--join-es,var(--radius-field) - var(--border)));height:100%;margin-block:0;margin-inline:0 1rem;padding-inline:1rem}&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.file-input-neutral{--btn-color:var(--color-neutral);&::file-selector-button{color:var(--color-neutral-content)}&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.file-input-primary{--btn-color:var(--color-primary);&::file-selector-button{color:var(--color-primary-content)}&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.file-input-secondary{--btn-color:var(--color-secondary);&::file-selector-button{color:var(--color-secondary-content)}&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.file-input-accent{--btn-color:var(--color-accent);&::file-selector-button{color:var(--color-accent-content)}&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.file-input-info{--btn-color:var(--color-info);&::file-selector-button{color:var(--color-info-content)}&,&:focus,&:focus-within{--input-color:var(--color-info)}}.file-input-success{--btn-color:var(--color-success);&::file-selector-button{color:var(--color-success-content)}&,&:focus,&:focus-within{--input-color:var(--color-success)}}.file-input-warning{--btn-color:var(--color-warning);&::file-selector-button{color:var(--color-warning-content)}&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.file-input-error{--btn-color:var(--color-error);&::file-selector-button{color:var(--color-error-content)}&,&:focus,&:focus-within{--input-color:var(--color-error)}}.file-input-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem;line-height:1rem;&::file-selector-button{font-size:.6875rem}}.file-input-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem;line-height:1.5rem;&::file-selector-button{font-size:.75rem}}.file-input-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem;line-height:2;&::file-selector-button{font-size:.875rem}}.file-input-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem;line-height:2.5rem;&::file-selector-button{font-size:1.125rem}}.file-input-xl{--size:calc(var(--size-field,.25rem)*14);padding-inline-end:1.5rem;font-size:1.125rem;line-height:3rem;&::file-selector-button{font-size:1.375rem}}@media (width>=640px){.sm\:file-input{cursor:pointer;border:var(--border)solid #0000;cursor:pointer;appearance:none;background-color:var(--color-base-100);vertical-align:middle;-webkit-user-select:none;user-select:none;width:clamp(3rem,20rem,100%);height:var(--size);border-color:var(--input-color);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;--size:calc(var(--size-field,.25rem)*10);--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));align-items:center;padding-inline-end:.75rem;font-size:.875rem;line-height:2;display:inline-flex;&::file-selector-button{cursor:pointer;-webkit-user-select:none;user-select:none;height:calc(100% + var(--border)*2);margin-inline-end:1rem;margin-block:calc(var(--border)*-1);color:var(--btn-fg);border-width:var(--border);border-style:solid;border-color:var(--btn-border);background-color:var(--btn-bg);background-size:calc(var(--noise)*100%);background-image:var(--btn-noise);text-shadow:0 .5px oklch(1 0 0/calc(var(--depth)*.15));box-shadow:0 .5px 0 .5px color-mix(in oklab,color-mix(in oklab,white 30%,var(--btn-bg))calc(var(--depth)*20%),#0000)inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-border:color-mix(in oklab,var(--btn-bg),#000 5%);--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)30%,#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)30%,#0000);--btn-noise:var(--fx-noise);border-start-start-radius:calc(var(--join-ss,var(--radius-field) - var(--border)));border-end-start-radius:calc(var(--join-es,var(--radius-field) - var(--border)));margin-inline-start:calc(var(--border)*-1);padding-inline:1rem;font-size:.875rem;font-weight:600}&:focus{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)10%,#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}&:has(>input[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);box-shadow:none;color:color-mix(in oklch,var(--color-base-content)20%,#0000);&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}&::file-selector-button{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);--btn-border:#0000;--btn-noise:none;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}}.sm\:file-input-ghost{box-shadow:none;background-color:#0000;border-color:#0000;transition:background-color .2s;&::file-selector-button{cursor:pointer;-webkit-user-select:none;user-select:none;border-start-end-radius:calc(var(--join-ss,var(--radius-field) - var(--border)));border-end-end-radius:calc(var(--join-es,var(--radius-field) - var(--border)));height:100%;margin-block:0;margin-inline:0 1rem;padding-inline:1rem}&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.sm\:file-input-neutral{--btn-color:var(--color-neutral);&::file-selector-button{color:var(--color-neutral-content)}&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.sm\:file-input-primary{--btn-color:var(--color-primary);&::file-selector-button{color:var(--color-primary-content)}&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.sm\:file-input-secondary{--btn-color:var(--color-secondary);&::file-selector-button{color:var(--color-secondary-content)}&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.sm\:file-input-accent{--btn-color:var(--color-accent);&::file-selector-button{color:var(--color-accent-content)}&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.sm\:file-input-info{--btn-color:var(--color-info);&::file-selector-button{color:var(--color-info-content)}&,&:focus,&:focus-within{--input-color:var(--color-info)}}.sm\:file-input-success{--btn-color:var(--color-success);&::file-selector-button{color:var(--color-success-content)}&,&:focus,&:focus-within{--input-color:var(--color-success)}}.sm\:file-input-warning{--btn-color:var(--color-warning);&::file-selector-button{color:var(--color-warning-content)}&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.sm\:file-input-error{--btn-color:var(--color-error);&::file-selector-button{color:var(--color-error-content)}&,&:focus,&:focus-within{--input-color:var(--color-error)}}.sm\:file-input-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem;line-height:1rem;&::file-selector-button{font-size:.6875rem}}.sm\:file-input-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem;line-height:1.5rem;&::file-selector-button{font-size:.75rem}}.sm\:file-input-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem;line-height:2;&::file-selector-button{font-size:.875rem}}.sm\:file-input-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem;line-height:2.5rem;&::file-selector-button{font-size:1.125rem}}.sm\:file-input-xl{--size:calc(var(--size-field,.25rem)*14);padding-inline-end:1.5rem;font-size:1.125rem;line-height:3rem;&::file-selector-button{font-size:1.375rem}}}@media (width>=768px){.md\:file-input{cursor:pointer;border:var(--border)solid #0000;cursor:pointer;appearance:none;background-color:var(--color-base-100);vertical-align:middle;-webkit-user-select:none;user-select:none;width:clamp(3rem,20rem,100%);height:var(--size);border-color:var(--input-color);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;--size:calc(var(--size-field,.25rem)*10);--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));align-items:center;padding-inline-end:.75rem;font-size:.875rem;line-height:2;display:inline-flex;&::file-selector-button{cursor:pointer;-webkit-user-select:none;user-select:none;height:calc(100% + var(--border)*2);margin-inline-end:1rem;margin-block:calc(var(--border)*-1);color:var(--btn-fg);border-width:var(--border);border-style:solid;border-color:var(--btn-border);background-color:var(--btn-bg);background-size:calc(var(--noise)*100%);background-image:var(--btn-noise);text-shadow:0 .5px oklch(1 0 0/calc(var(--depth)*.15));box-shadow:0 .5px 0 .5px color-mix(in oklab,color-mix(in oklab,white 30%,var(--btn-bg))calc(var(--depth)*20%),#0000)inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-border:color-mix(in oklab,var(--btn-bg),#000 5%);--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)30%,#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)30%,#0000);--btn-noise:var(--fx-noise);border-start-start-radius:calc(var(--join-ss,var(--radius-field) - var(--border)));border-end-start-radius:calc(var(--join-es,var(--radius-field) - var(--border)));margin-inline-start:calc(var(--border)*-1);padding-inline:1rem;font-size:.875rem;font-weight:600}&:focus{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)10%,#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}&:has(>input[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);box-shadow:none;color:color-mix(in oklch,var(--color-base-content)20%,#0000);&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}&::file-selector-button{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);--btn-border:#0000;--btn-noise:none;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}}.md\:file-input-ghost{box-shadow:none;background-color:#0000;border-color:#0000;transition:background-color .2s;&::file-selector-button{cursor:pointer;-webkit-user-select:none;user-select:none;border-start-end-radius:calc(var(--join-ss,var(--radius-field) - var(--border)));border-end-end-radius:calc(var(--join-es,var(--radius-field) - var(--border)));height:100%;margin-block:0;margin-inline:0 1rem;padding-inline:1rem}&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.md\:file-input-neutral{--btn-color:var(--color-neutral);&::file-selector-button{color:var(--color-neutral-content)}&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.md\:file-input-primary{--btn-color:var(--color-primary);&::file-selector-button{color:var(--color-primary-content)}&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.md\:file-input-secondary{--btn-color:var(--color-secondary);&::file-selector-button{color:var(--color-secondary-content)}&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.md\:file-input-accent{--btn-color:var(--color-accent);&::file-selector-button{color:var(--color-accent-content)}&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.md\:file-input-info{--btn-color:var(--color-info);&::file-selector-button{color:var(--color-info-content)}&,&:focus,&:focus-within{--input-color:var(--color-info)}}.md\:file-input-success{--btn-color:var(--color-success);&::file-selector-button{color:var(--color-success-content)}&,&:focus,&:focus-within{--input-color:var(--color-success)}}.md\:file-input-warning{--btn-color:var(--color-warning);&::file-selector-button{color:var(--color-warning-content)}&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.md\:file-input-error{--btn-color:var(--color-error);&::file-selector-button{color:var(--color-error-content)}&,&:focus,&:focus-within{--input-color:var(--color-error)}}.md\:file-input-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem;line-height:1rem;&::file-selector-button{font-size:.6875rem}}.md\:file-input-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem;line-height:1.5rem;&::file-selector-button{font-size:.75rem}}.md\:file-input-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem;line-height:2;&::file-selector-button{font-size:.875rem}}.md\:file-input-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem;line-height:2.5rem;&::file-selector-button{font-size:1.125rem}}.md\:file-input-xl{--size:calc(var(--size-field,.25rem)*14);padding-inline-end:1.5rem;font-size:1.125rem;line-height:3rem;&::file-selector-button{font-size:1.375rem}}}@media (width>=1024px){.lg\:file-input{cursor:pointer;border:var(--border)solid #0000;cursor:pointer;appearance:none;background-color:var(--color-base-100);vertical-align:middle;-webkit-user-select:none;user-select:none;width:clamp(3rem,20rem,100%);height:var(--size);border-color:var(--input-color);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;--size:calc(var(--size-field,.25rem)*10);--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));align-items:center;padding-inline-end:.75rem;font-size:.875rem;line-height:2;display:inline-flex;&::file-selector-button{cursor:pointer;-webkit-user-select:none;user-select:none;height:calc(100% + var(--border)*2);margin-inline-end:1rem;margin-block:calc(var(--border)*-1);color:var(--btn-fg);border-width:var(--border);border-style:solid;border-color:var(--btn-border);background-color:var(--btn-bg);background-size:calc(var(--noise)*100%);background-image:var(--btn-noise);text-shadow:0 .5px oklch(1 0 0/calc(var(--depth)*.15));box-shadow:0 .5px 0 .5px color-mix(in oklab,color-mix(in oklab,white 30%,var(--btn-bg))calc(var(--depth)*20%),#0000)inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-border:color-mix(in oklab,var(--btn-bg),#000 5%);--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)30%,#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)30%,#0000);--btn-noise:var(--fx-noise);border-start-start-radius:calc(var(--join-ss,var(--radius-field) - var(--border)));border-end-start-radius:calc(var(--join-es,var(--radius-field) - var(--border)));margin-inline-start:calc(var(--border)*-1);padding-inline:1rem;font-size:.875rem;font-weight:600}&:focus{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)10%,#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}&:has(>input[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);box-shadow:none;color:color-mix(in oklch,var(--color-base-content)20%,#0000);&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}&::file-selector-button{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);--btn-border:#0000;--btn-noise:none;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}}.lg\:file-input-ghost{box-shadow:none;background-color:#0000;border-color:#0000;transition:background-color .2s;&::file-selector-button{cursor:pointer;-webkit-user-select:none;user-select:none;border-start-end-radius:calc(var(--join-ss,var(--radius-field) - var(--border)));border-end-end-radius:calc(var(--join-es,var(--radius-field) - var(--border)));height:100%;margin-block:0;margin-inline:0 1rem;padding-inline:1rem}&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.lg\:file-input-neutral{--btn-color:var(--color-neutral);&::file-selector-button{color:var(--color-neutral-content)}&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.lg\:file-input-primary{--btn-color:var(--color-primary);&::file-selector-button{color:var(--color-primary-content)}&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.lg\:file-input-secondary{--btn-color:var(--color-secondary);&::file-selector-button{color:var(--color-secondary-content)}&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.lg\:file-input-accent{--btn-color:var(--color-accent);&::file-selector-button{color:var(--color-accent-content)}&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.lg\:file-input-info{--btn-color:var(--color-info);&::file-selector-button{color:var(--color-info-content)}&,&:focus,&:focus-within{--input-color:var(--color-info)}}.lg\:file-input-success{--btn-color:var(--color-success);&::file-selector-button{color:var(--color-success-content)}&,&:focus,&:focus-within{--input-color:var(--color-success)}}.lg\:file-input-warning{--btn-color:var(--color-warning);&::file-selector-button{color:var(--color-warning-content)}&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.lg\:file-input-error{--btn-color:var(--color-error);&::file-selector-button{color:var(--color-error-content)}&,&:focus,&:focus-within{--input-color:var(--color-error)}}.lg\:file-input-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem;line-height:1rem;&::file-selector-button{font-size:.6875rem}}.lg\:file-input-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem;line-height:1.5rem;&::file-selector-button{font-size:.75rem}}.lg\:file-input-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem;line-height:2;&::file-selector-button{font-size:.875rem}}.lg\:file-input-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem;line-height:2.5rem;&::file-selector-button{font-size:1.125rem}}.lg\:file-input-xl{--size:calc(var(--size-field,.25rem)*14);padding-inline-end:1.5rem;font-size:1.125rem;line-height:3rem;&::file-selector-button{font-size:1.375rem}}}@media (width>=1280px){.xl\:file-input{cursor:pointer;border:var(--border)solid #0000;cursor:pointer;appearance:none;background-color:var(--color-base-100);vertical-align:middle;-webkit-user-select:none;user-select:none;width:clamp(3rem,20rem,100%);height:var(--size);border-color:var(--input-color);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;--size:calc(var(--size-field,.25rem)*10);--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));align-items:center;padding-inline-end:.75rem;font-size:.875rem;line-height:2;display:inline-flex;&::file-selector-button{cursor:pointer;-webkit-user-select:none;user-select:none;height:calc(100% + var(--border)*2);margin-inline-end:1rem;margin-block:calc(var(--border)*-1);color:var(--btn-fg);border-width:var(--border);border-style:solid;border-color:var(--btn-border);background-color:var(--btn-bg);background-size:calc(var(--noise)*100%);background-image:var(--btn-noise);text-shadow:0 .5px oklch(1 0 0/calc(var(--depth)*.15));box-shadow:0 .5px 0 .5px color-mix(in oklab,color-mix(in oklab,white 30%,var(--btn-bg))calc(var(--depth)*20%),#0000)inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-border:color-mix(in oklab,var(--btn-bg),#000 5%);--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)30%,#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)30%,#0000);--btn-noise:var(--fx-noise);border-start-start-radius:calc(var(--join-ss,var(--radius-field) - var(--border)));border-end-start-radius:calc(var(--join-es,var(--radius-field) - var(--border)));margin-inline-start:calc(var(--border)*-1);padding-inline:1rem;font-size:.875rem;font-weight:600}&:focus{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)10%,#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}&:has(>input[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);box-shadow:none;color:color-mix(in oklch,var(--color-base-content)20%,#0000);&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}&::file-selector-button{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);--btn-border:#0000;--btn-noise:none;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}}.xl\:file-input-ghost{box-shadow:none;background-color:#0000;border-color:#0000;transition:background-color .2s;&::file-selector-button{cursor:pointer;-webkit-user-select:none;user-select:none;border-start-end-radius:calc(var(--join-ss,var(--radius-field) - var(--border)));border-end-end-radius:calc(var(--join-es,var(--radius-field) - var(--border)));height:100%;margin-block:0;margin-inline:0 1rem;padding-inline:1rem}&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.xl\:file-input-neutral{--btn-color:var(--color-neutral);&::file-selector-button{color:var(--color-neutral-content)}&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.xl\:file-input-primary{--btn-color:var(--color-primary);&::file-selector-button{color:var(--color-primary-content)}&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.xl\:file-input-secondary{--btn-color:var(--color-secondary);&::file-selector-button{color:var(--color-secondary-content)}&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.xl\:file-input-accent{--btn-color:var(--color-accent);&::file-selector-button{color:var(--color-accent-content)}&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.xl\:file-input-info{--btn-color:var(--color-info);&::file-selector-button{color:var(--color-info-content)}&,&:focus,&:focus-within{--input-color:var(--color-info)}}.xl\:file-input-success{--btn-color:var(--color-success);&::file-selector-button{color:var(--color-success-content)}&,&:focus,&:focus-within{--input-color:var(--color-success)}}.xl\:file-input-warning{--btn-color:var(--color-warning);&::file-selector-button{color:var(--color-warning-content)}&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.xl\:file-input-error{--btn-color:var(--color-error);&::file-selector-button{color:var(--color-error-content)}&,&:focus,&:focus-within{--input-color:var(--color-error)}}.xl\:file-input-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem;line-height:1rem;&::file-selector-button{font-size:.6875rem}}.xl\:file-input-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem;line-height:1.5rem;&::file-selector-button{font-size:.75rem}}.xl\:file-input-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem;line-height:2;&::file-selector-button{font-size:.875rem}}.xl\:file-input-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem;line-height:2.5rem;&::file-selector-button{font-size:1.125rem}}.xl\:file-input-xl{--size:calc(var(--size-field,.25rem)*14);padding-inline-end:1.5rem;font-size:1.125rem;line-height:3rem;&::file-selector-button{font-size:1.375rem}}}@media (width>=1536px){.\32 xl\:file-input{cursor:pointer;border:var(--border)solid #0000;cursor:pointer;appearance:none;background-color:var(--color-base-100);vertical-align:middle;-webkit-user-select:none;user-select:none;width:clamp(3rem,20rem,100%);height:var(--size);border-color:var(--input-color);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;--size:calc(var(--size-field,.25rem)*10);--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));align-items:center;padding-inline-end:.75rem;font-size:.875rem;line-height:2;display:inline-flex;&::file-selector-button{cursor:pointer;-webkit-user-select:none;user-select:none;height:calc(100% + var(--border)*2);margin-inline-end:1rem;margin-block:calc(var(--border)*-1);color:var(--btn-fg);border-width:var(--border);border-style:solid;border-color:var(--btn-border);background-color:var(--btn-bg);background-size:calc(var(--noise)*100%);background-image:var(--btn-noise);text-shadow:0 .5px oklch(1 0 0/calc(var(--depth)*.15));box-shadow:0 .5px 0 .5px color-mix(in oklab,color-mix(in oklab,white 30%,var(--btn-bg))calc(var(--depth)*20%),#0000)inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-border:color-mix(in oklab,var(--btn-bg),#000 5%);--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)30%,#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)30%,#0000);--btn-noise:var(--fx-noise);border-start-start-radius:calc(var(--join-ss,var(--radius-field) - var(--border)));border-end-start-radius:calc(var(--join-es,var(--radius-field) - var(--border)));margin-inline-start:calc(var(--border)*-1);padding-inline:1rem;font-size:.875rem;font-weight:600}&:focus{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)10%,#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}&:has(>input[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);box-shadow:none;color:color-mix(in oklch,var(--color-base-content)20%,#0000);&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}&::file-selector-button{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);--btn-border:#0000;--btn-noise:none;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}}.\32 xl\:file-input-ghost{box-shadow:none;background-color:#0000;border-color:#0000;transition:background-color .2s;&::file-selector-button{cursor:pointer;-webkit-user-select:none;user-select:none;border-start-end-radius:calc(var(--join-ss,var(--radius-field) - var(--border)));border-end-end-radius:calc(var(--join-es,var(--radius-field) - var(--border)));height:100%;margin-block:0;margin-inline:0 1rem;padding-inline:1rem}&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.\32 xl\:file-input-neutral{--btn-color:var(--color-neutral);&::file-selector-button{color:var(--color-neutral-content)}&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.\32 xl\:file-input-primary{--btn-color:var(--color-primary);&::file-selector-button{color:var(--color-primary-content)}&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.\32 xl\:file-input-secondary{--btn-color:var(--color-secondary);&::file-selector-button{color:var(--color-secondary-content)}&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.\32 xl\:file-input-accent{--btn-color:var(--color-accent);&::file-selector-button{color:var(--color-accent-content)}&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.\32 xl\:file-input-info{--btn-color:var(--color-info);&::file-selector-button{color:var(--color-info-content)}&,&:focus,&:focus-within{--input-color:var(--color-info)}}.\32 xl\:file-input-success{--btn-color:var(--color-success);&::file-selector-button{color:var(--color-success-content)}&,&:focus,&:focus-within{--input-color:var(--color-success)}}.\32 xl\:file-input-warning{--btn-color:var(--color-warning);&::file-selector-button{color:var(--color-warning-content)}&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.\32 xl\:file-input-error{--btn-color:var(--color-error);&::file-selector-button{color:var(--color-error-content)}&,&:focus,&:focus-within{--input-color:var(--color-error)}}.\32 xl\:file-input-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem;line-height:1rem;&::file-selector-button{font-size:.6875rem}}.\32 xl\:file-input-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem;line-height:1.5rem;&::file-selector-button{font-size:.75rem}}.\32 xl\:file-input-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem;line-height:2;&::file-selector-button{font-size:.875rem}}.\32 xl\:file-input-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem;line-height:2.5rem;&::file-selector-button{font-size:1.125rem}}.\32 xl\:file-input-xl{--size:calc(var(--size-field,.25rem)*14);padding-inline-end:1.5rem;font-size:1.125rem;line-height:3rem;&::file-selector-button{font-size:1.375rem}}}.mockup-code{border-radius:var(--radius-box);background-color:var(--color-neutral);color:var(--color-neutral-content);direction:ltr;padding-block:1.25rem;font-size:.875rem;position:relative;overflow:auto hidden;&:before{content:"";opacity:.3;border-radius:3.40282e38px;width:.75rem;height:.75rem;margin-bottom:1rem;display:block;box-shadow:1.4em 0,2.8em 0,4.2em 0}& pre{padding-right:1.25rem;&:before{content:"";margin-right:2ch}&[data-prefix]{&:before{content:attr(data-prefix);text-align:right;opacity:.5;width:2rem;display:inline-block}}}}.mockup-window{border-radius:var(--radius-box);flex-direction:column;padding-top:1.25rem;display:flex;position:relative;overflow:auto hidden;&:before{content:"";aspect-ratio:1;opacity:.3;border-radius:3.40282e38px;flex-shrink:0;align-self:flex-start;height:.75rem;margin-bottom:1rem;display:block;box-shadow:1.4em 0,2.8em 0,4.2em 0}[dir=rtl] &:before{align-self:flex-end}& pre[data-prefix]{&:before{content:attr(data-prefix);text-align:right;display:inline-block}}}.mockup-browser{border-radius:var(--radius-box);position:relative;overflow:auto hidden;& pre[data-prefix]{&:before{content:attr(data-prefix);text-align:right;display:inline-block}}& .mockup-browser-toolbar{align-items:center;width:100%;margin-block:.75rem;padding-right:1.4em;display:inline-flex;&:where(:dir(rtl),[dir=rtl],[dir=rtl] *){flex-direction:row-reverse}&:before{content:"";aspect-ratio:1;opacity:.3;border-radius:3.40282e38px;height:.75rem;margin-right:4.8rem;display:inline-block;box-shadow:1.4em 0,2.8em 0,4.2em 0}& .input{background-color:var(--color-base-200);text-overflow:ellipsis;white-space:nowrap;direction:ltr;align-items:center;gap:.5rem;height:100%;margin-inline:auto;font-size:.75rem;display:flex;overflow:hidden;&:before{content:"";opacity:.3;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='currentColor' class='size-4!'%3E%3Cpath fill-rule='evenodd' d='M9.965 11.026a5 5 0 1 1 1.06-1.06l2.755 2.754a.75.75 0 1 1-1.06 1.06l-2.755-2.754ZM10.5 7a3.5 3.5 0 1 1-7 0 3.5 3.5 0 0 1 7 0Z' clip-rule='evenodd' /%3E%3C/svg%3E%0A");width:1rem;height:1rem}}}}.mockup-phone{background-color:#000;border:6px solid #6b6b6b;border-radius:65px;justify-items:center;padding:11px;display:inline-grid;overflow:hidden}.mockup-phone-camera{z-index:1;background:#000;border-radius:17px;grid-area:1/1/1/1;width:126px;height:32px;margin-top:6px}.mockup-phone-display{border-radius:49px;grid-area:1/1/1/1;width:390px;height:845px;overflow:hidden}.footer{grid-auto-flow:row;place-items:start;gap:2.5rem 1rem;width:100%;font-size:.875rem;line-height:1.25rem;display:grid;&>*{place-items:start;gap:.5rem;display:grid}&.footer-center{text-align:center;grid-auto-flow:column dense;place-items:center;&>*{place-items:center}}}.footer-title{text-transform:uppercase;opacity:.6;margin-bottom:.5rem;font-weight:600}.footer-horizontal{grid-auto-flow:column;&.footer-center{grid-auto-flow:dense}}.footer-vertical{grid-auto-flow:row;&.footer-center{grid-auto-flow:column dense}}@media (width>=640px){.sm\:footer{grid-auto-flow:row;place-items:start;gap:2.5rem 1rem;width:100%;font-size:.875rem;line-height:1.25rem;display:grid;&>*{place-items:start;gap:.5rem;display:grid}&.footer-center{text-align:center;grid-auto-flow:column dense;place-items:center;&>*{place-items:center}}}.sm\:footer-title{text-transform:uppercase;opacity:.6;margin-bottom:.5rem;font-weight:600}.sm\:footer-horizontal{grid-auto-flow:column;&.footer-center{grid-auto-flow:dense}}.sm\:footer-vertical{grid-auto-flow:row;&.footer-center{grid-auto-flow:column dense}}}@media (width>=768px){.md\:footer{grid-auto-flow:row;place-items:start;gap:2.5rem 1rem;width:100%;font-size:.875rem;line-height:1.25rem;display:grid;&>*{place-items:start;gap:.5rem;display:grid}&.footer-center{text-align:center;grid-auto-flow:column dense;place-items:center;&>*{place-items:center}}}.md\:footer-title{text-transform:uppercase;opacity:.6;margin-bottom:.5rem;font-weight:600}.md\:footer-horizontal{grid-auto-flow:column;&.footer-center{grid-auto-flow:dense}}.md\:footer-vertical{grid-auto-flow:row;&.footer-center{grid-auto-flow:column dense}}}@media (width>=1024px){.lg\:footer{grid-auto-flow:row;place-items:start;gap:2.5rem 1rem;width:100%;font-size:.875rem;line-height:1.25rem;display:grid;&>*{place-items:start;gap:.5rem;display:grid}&.footer-center{text-align:center;grid-auto-flow:column dense;place-items:center;&>*{place-items:center}}}.lg\:footer-title{text-transform:uppercase;opacity:.6;margin-bottom:.5rem;font-weight:600}.lg\:footer-horizontal{grid-auto-flow:column;&.footer-center{grid-auto-flow:dense}}.lg\:footer-vertical{grid-auto-flow:row;&.footer-center{grid-auto-flow:column dense}}}@media (width>=1280px){.xl\:footer{grid-auto-flow:row;place-items:start;gap:2.5rem 1rem;width:100%;font-size:.875rem;line-height:1.25rem;display:grid;&>*{place-items:start;gap:.5rem;display:grid}&.footer-center{text-align:center;grid-auto-flow:column dense;place-items:center;&>*{place-items:center}}}.xl\:footer-title{text-transform:uppercase;opacity:.6;margin-bottom:.5rem;font-weight:600}.xl\:footer-horizontal{grid-auto-flow:column;&.footer-center{grid-auto-flow:dense}}.xl\:footer-vertical{grid-auto-flow:row;&.footer-center{grid-auto-flow:column dense}}}@media (width>=1536px){.\32 xl\:footer{grid-auto-flow:row;place-items:start;gap:2.5rem 1rem;width:100%;font-size:.875rem;line-height:1.25rem;display:grid;&>*{place-items:start;gap:.5rem;display:grid}&.footer-center{text-align:center;grid-auto-flow:column dense;place-items:center;&>*{place-items:center}}}.\32 xl\:footer-title{text-transform:uppercase;opacity:.6;margin-bottom:.5rem;font-weight:600}.\32 xl\:footer-horizontal{grid-auto-flow:column;&.footer-center{grid-auto-flow:dense}}.\32 xl\:footer-vertical{grid-auto-flow:row;&.footer-center{grid-auto-flow:column dense}}}.select{border:var(--border)solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;text-overflow:ellipsis;box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;border-color:var(--input-color);--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);--size:calc(var(--size-field,.25rem)*10);background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 20px) calc(1px + 50%),calc(100% - 16.1px) calc(1px + 50%);background-repeat:no-repeat;background-size:4px 4px,4px 4px;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.375rem;padding-inline:1rem 1.75rem;font-size:.875rem;display:inline-flex;position:relative;[dir=rtl] &{background-position:12px calc(1px + 50%),16px calc(1px + 50%)}& select{appearance:none;background:inherit;border-radius:inherit;border-style:none;width:calc(100% + 2.75rem);height:calc(100% - 2px);margin-inline:-1rem -1.75rem;padding-inline:1rem 1.75rem;&:focus,&:focus-within{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:not(:last-child){background-image:none;margin-inline-end:-1.375rem}}&:focus,&:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}&:has(>select[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:color-mix(in oklab,var(--color-base-content)40%,transparent);&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}&:has(>select[disabled])>select[disabled]{cursor:not-allowed}}.select-ghost{box-shadow:none;background-color:#0000;border-color:#0000;transition:background-color .2s;&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.select-neutral{&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.select-primary{&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.select-secondary{&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.select-accent{&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.select-info{&,&:focus,&:focus-within{--input-color:var(--color-info)}}.select-success{&,&:focus,&:focus-within{--input-color:var(--color-success)}}.select-warning{&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.select-error{&,&:focus,&:focus-within{--input-color:var(--color-error)}}.select-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem}.select-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem}.select-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem}.select-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem}.select-xl{--size:calc(var(--size-field,.25rem)*14);font-size:1.375rem}@media (width>=640px){.sm\:select{border:var(--border)solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;text-overflow:ellipsis;box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;border-color:var(--input-color);--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);--size:calc(var(--size-field,.25rem)*10);background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 20px) calc(1px + 50%),calc(100% - 16.1px) calc(1px + 50%);background-repeat:no-repeat;background-size:4px 4px,4px 4px;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.375rem;padding-inline:1rem 1.75rem;font-size:.875rem;display:inline-flex;position:relative;[dir=rtl] &{background-position:12px calc(1px + 50%),16px calc(1px + 50%)}& select{appearance:none;background:inherit;border-radius:inherit;border-style:none;width:calc(100% + 2.75rem);height:calc(100% - 2px);margin-inline:-1rem -1.75rem;padding-inline:1rem 1.75rem;&:focus,&:focus-within{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:not(:last-child){background-image:none;margin-inline-end:-1.375rem}}&:focus,&:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}&:has(>select[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:color-mix(in oklab,var(--color-base-content)40%,transparent);&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}&:has(>select[disabled])>select[disabled]{cursor:not-allowed}}.sm\:select-ghost{box-shadow:none;background-color:#0000;border-color:#0000;transition:background-color .2s;&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.sm\:select-neutral{&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.sm\:select-primary{&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.sm\:select-secondary{&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.sm\:select-accent{&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.sm\:select-info{&,&:focus,&:focus-within{--input-color:var(--color-info)}}.sm\:select-success{&,&:focus,&:focus-within{--input-color:var(--color-success)}}.sm\:select-warning{&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.sm\:select-error{&,&:focus,&:focus-within{--input-color:var(--color-error)}}.sm\:select-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem}.sm\:select-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem}.sm\:select-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem}.sm\:select-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem}.sm\:select-xl{--size:calc(var(--size-field,.25rem)*14);font-size:1.375rem}}@media (width>=768px){.md\:select{border:var(--border)solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;text-overflow:ellipsis;box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;border-color:var(--input-color);--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);--size:calc(var(--size-field,.25rem)*10);background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 20px) calc(1px + 50%),calc(100% - 16.1px) calc(1px + 50%);background-repeat:no-repeat;background-size:4px 4px,4px 4px;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.375rem;padding-inline:1rem 1.75rem;font-size:.875rem;display:inline-flex;position:relative;[dir=rtl] &{background-position:12px calc(1px + 50%),16px calc(1px + 50%)}& select{appearance:none;background:inherit;border-radius:inherit;border-style:none;width:calc(100% + 2.75rem);height:calc(100% - 2px);margin-inline:-1rem -1.75rem;padding-inline:1rem 1.75rem;&:focus,&:focus-within{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:not(:last-child){background-image:none;margin-inline-end:-1.375rem}}&:focus,&:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}&:has(>select[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:color-mix(in oklab,var(--color-base-content)40%,transparent);&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}&:has(>select[disabled])>select[disabled]{cursor:not-allowed}}.md\:select-ghost{box-shadow:none;background-color:#0000;border-color:#0000;transition:background-color .2s;&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.md\:select-neutral{&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.md\:select-primary{&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.md\:select-secondary{&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.md\:select-accent{&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.md\:select-info{&,&:focus,&:focus-within{--input-color:var(--color-info)}}.md\:select-success{&,&:focus,&:focus-within{--input-color:var(--color-success)}}.md\:select-warning{&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.md\:select-error{&,&:focus,&:focus-within{--input-color:var(--color-error)}}.md\:select-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem}.md\:select-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem}.md\:select-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem}.md\:select-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem}.md\:select-xl{--size:calc(var(--size-field,.25rem)*14);font-size:1.375rem}}@media (width>=1024px){.lg\:select{border:var(--border)solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;text-overflow:ellipsis;box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;border-color:var(--input-color);--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);--size:calc(var(--size-field,.25rem)*10);background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 20px) calc(1px + 50%),calc(100% - 16.1px) calc(1px + 50%);background-repeat:no-repeat;background-size:4px 4px,4px 4px;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.375rem;padding-inline:1rem 1.75rem;font-size:.875rem;display:inline-flex;position:relative;[dir=rtl] &{background-position:12px calc(1px + 50%),16px calc(1px + 50%)}& select{appearance:none;background:inherit;border-radius:inherit;border-style:none;width:calc(100% + 2.75rem);height:calc(100% - 2px);margin-inline:-1rem -1.75rem;padding-inline:1rem 1.75rem;&:focus,&:focus-within{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:not(:last-child){background-image:none;margin-inline-end:-1.375rem}}&:focus,&:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}&:has(>select[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:color-mix(in oklab,var(--color-base-content)40%,transparent);&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}&:has(>select[disabled])>select[disabled]{cursor:not-allowed}}.lg\:select-ghost{box-shadow:none;background-color:#0000;border-color:#0000;transition:background-color .2s;&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.lg\:select-neutral{&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.lg\:select-primary{&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.lg\:select-secondary{&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.lg\:select-accent{&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.lg\:select-info{&,&:focus,&:focus-within{--input-color:var(--color-info)}}.lg\:select-success{&,&:focus,&:focus-within{--input-color:var(--color-success)}}.lg\:select-warning{&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.lg\:select-error{&,&:focus,&:focus-within{--input-color:var(--color-error)}}.lg\:select-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem}.lg\:select-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem}.lg\:select-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem}.lg\:select-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem}.lg\:select-xl{--size:calc(var(--size-field,.25rem)*14);font-size:1.375rem}}@media (width>=1280px){.xl\:select{border:var(--border)solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;text-overflow:ellipsis;box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;border-color:var(--input-color);--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);--size:calc(var(--size-field,.25rem)*10);background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 20px) calc(1px + 50%),calc(100% - 16.1px) calc(1px + 50%);background-repeat:no-repeat;background-size:4px 4px,4px 4px;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.375rem;padding-inline:1rem 1.75rem;font-size:.875rem;display:inline-flex;position:relative;[dir=rtl] &{background-position:12px calc(1px + 50%),16px calc(1px + 50%)}& select{appearance:none;background:inherit;border-radius:inherit;border-style:none;width:calc(100% + 2.75rem);height:calc(100% - 2px);margin-inline:-1rem -1.75rem;padding-inline:1rem 1.75rem;&:focus,&:focus-within{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:not(:last-child){background-image:none;margin-inline-end:-1.375rem}}&:focus,&:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}&:has(>select[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:color-mix(in oklab,var(--color-base-content)40%,transparent);&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}&:has(>select[disabled])>select[disabled]{cursor:not-allowed}}.xl\:select-ghost{box-shadow:none;background-color:#0000;border-color:#0000;transition:background-color .2s;&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.xl\:select-neutral{&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.xl\:select-primary{&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.xl\:select-secondary{&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.xl\:select-accent{&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.xl\:select-info{&,&:focus,&:focus-within{--input-color:var(--color-info)}}.xl\:select-success{&,&:focus,&:focus-within{--input-color:var(--color-success)}}.xl\:select-warning{&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.xl\:select-error{&,&:focus,&:focus-within{--input-color:var(--color-error)}}.xl\:select-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem}.xl\:select-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem}.xl\:select-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem}.xl\:select-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem}.xl\:select-xl{--size:calc(var(--size-field,.25rem)*14);font-size:1.375rem}}@media (width>=1536px){.\32 xl\:select{border:var(--border)solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;text-overflow:ellipsis;box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;border-color:var(--input-color);--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);--size:calc(var(--size-field,.25rem)*10);background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 20px) calc(1px + 50%),calc(100% - 16.1px) calc(1px + 50%);background-repeat:no-repeat;background-size:4px 4px,4px 4px;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.375rem;padding-inline:1rem 1.75rem;font-size:.875rem;display:inline-flex;position:relative;[dir=rtl] &{background-position:12px calc(1px + 50%),16px calc(1px + 50%)}& select{appearance:none;background:inherit;border-radius:inherit;border-style:none;width:calc(100% + 2.75rem);height:calc(100% - 2px);margin-inline:-1rem -1.75rem;padding-inline:1rem 1.75rem;&:focus,&:focus-within{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:not(:last-child){background-image:none;margin-inline-end:-1.375rem}}&:focus,&:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}&:has(>select[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:color-mix(in oklab,var(--color-base-content)40%,transparent);&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}&:has(>select[disabled])>select[disabled]{cursor:not-allowed}}.\32 xl\:select-ghost{box-shadow:none;background-color:#0000;border-color:#0000;transition:background-color .2s;&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.\32 xl\:select-neutral{&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.\32 xl\:select-primary{&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.\32 xl\:select-secondary{&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.\32 xl\:select-accent{&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.\32 xl\:select-info{&,&:focus,&:focus-within{--input-color:var(--color-info)}}.\32 xl\:select-success{&,&:focus,&:focus-within{--input-color:var(--color-success)}}.\32 xl\:select-warning{&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.\32 xl\:select-error{&,&:focus,&:focus-within{--input-color:var(--color-error)}}.\32 xl\:select-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem}.\32 xl\:select-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem}.\32 xl\:select-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem}.\32 xl\:select-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem}.\32 xl\:select-xl{--size:calc(var(--size-field,.25rem)*14);font-size:1.375rem}}.loading{pointer-events:none;aspect-ratio:1;vertical-align:middle;width:calc(var(--size-selector,.25rem)*6);background-color:currentColor;display:inline-block;mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-position:50%;mask-size:100%;mask-repeat:no-repeat}.loading-spinner{mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")}.loading-dots{mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='4' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1'/%3E%3C/circle%3E%3Ccircle cx='12' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.1s'/%3E%3C/circle%3E%3Ccircle cx='20' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.2s'/%3E%3C/circle%3E%3C/svg%3E")}.loading-ring{mask-image:url("data:image/svg+xml,%3Csvg width='44' height='44' viewBox='0 0 44 44' xmlns='http://www.w3.org/2000/svg' stroke='white'%3E%3Cg fill='none' fill-rule='evenodd' stroke-width='2'%3E%3Ccircle cx='22' cy='22' r='1'%3E%3Canimate attributeName='r' begin='0s' dur='1.8s' values='1;20' calcMode='spline' keyTimes='0;1' keySplines='0.165,0.84,0.44,1' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-opacity' begin='0s' dur='1.8s' values='1;0' calcMode='spline' keyTimes='0;1' keySplines='0.3,0.61,0.355,1' repeatCount='indefinite'/%3E%3C/circle%3E%3Ccircle cx='22' cy='22' r='1'%3E%3Canimate attributeName='r' begin='-0.9s' dur='1.8s' values='1;20' calcMode='spline' keyTimes='0;1' keySplines='0.165,0.84,0.44,1' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-opacity' begin='-0.9s' dur='1.8s' values='1;0' calcMode='spline' keyTimes='0;1' keySplines='0.3,0.61,0.355,1' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")}.loading-ball{mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cellipse cx='12' cy='5' rx='4' ry='4'%3E%3Canimate attributeName='cy' values='5;20;20.5;20;5' keyTimes='0;0.469;0.5;0.531;1' dur='.8s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1'/%3E%3Canimate attributeName='rx' values='4;4;4.8;4;4' keyTimes='0;0.469;0.5;0.531;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='ry' values='4;4;3;4;4' keyTimes='0;0.469;0.5;0.531;1' dur='.8s' repeatCount='indefinite'/%3E%3C/ellipse%3E%3C/svg%3E")}.loading-bars{mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3C/rect%3E%3Crect x='9' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3C/rect%3E%3Crect x='17' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3C/rect%3E%3C/svg%3E")}.loading-infinity{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' style='shape-rendering:auto;' width='200px' height='200px' viewBox='0 0 100 100' preserveAspectRatio='xMidYMid'%3E%3Cpath fill='none' stroke='black' stroke-width='10' stroke-dasharray='205.271 51.318' d='M24.3 30C11.4 30 5 43.3 5 50s6.4 20 19.3 20c19.3 0 32.1-40 51.4-40C88.6 30 95 43.3 95 50s-6.4 20-19.3 20C56.4 70 43.6 30 24.3 30z' stroke-linecap='round' style='transform:scale(0.8);transform-origin:50px 50px'%3E%3Canimate attributeName='stroke-dashoffset' repeatCount='indefinite' dur='2s' keyTimes='0;1' values='0;256.589'/%3E%3C/path%3E%3C/svg%3E")}.loading-xs{width:calc(var(--size-selector,.25rem)*4)}.loading-sm{width:calc(var(--size-selector,.25rem)*5)}.loading-md{width:calc(var(--size-selector,.25rem)*6)}.loading-lg{width:calc(var(--size-selector,.25rem)*7)}.loading-xl{width:calc(var(--size-selector,.25rem)*8)}.filter{flex-wrap:wrap;display:flex;& input[type=radio]{width:auto}& input{opacity:1;transition:margin .1s,opacity .3s,padding .3s,border-width .1s;overflow:hidden;scale:1;&:not(:last-child){margin-inline-end:.25rem}&.filter-reset{aspect-ratio:1;&:after{content:"×"}}}&:not(:has(input:checked:not(.filter-reset))){& .filter-reset,& input[type=reset]{opacity:0;border-width:0;width:0;margin-inline:0;padding-inline:0;scale:0}}&:has(input:checked:not(.filter-reset)){& input:not(:checked,.filter-reset,input[type=reset]){opacity:0;border-width:0;width:0;margin-inline:0;padding-inline:0;scale:0}}}.toggle{border:var(--border)solid currentColor;color:var(--input-color);cursor:pointer;appearance:none;vertical-align:middle;-webkit-user-select:none;user-select:none;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--toggle-p),var(--radius-selector-max)) + min(var(--border),var(--radius-selector-max)));padding:var(--toggle-p);box-shadow:0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000)inset;--input-color:color-mix(in oklab,var(--color-base-content)50%,#0000);--toggle-p:calc(var(--size)*.125);--size:calc(var(--size-selector,.25rem)*6);width:calc((var(--size)*2) - (var(--border) + var(--toggle-p))*2);height:var(--size);flex-shrink:0;grid-template-columns:0fr 1fr 1fr;place-content:center;transition:color .3s,grid-template-columns .2s;display:inline-grid;position:relative;&>*{z-index:1;cursor:pointer;appearance:none;background-color:#0000;border:none;grid-column:2/span 1;grid-row-start:1;height:100%;padding:.125rem;transition:opacity .2s,rotate .4s;&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:nth-child(2){color:var(--color-base-100);rotate:none}&:nth-child(3){color:var(--color-base-100);opacity:0;rotate:-15deg}}&:has(:checked){&>:nth-child(2){opacity:0;rotate:15deg}&>:nth-child(3){opacity:1;rotate:none}}&:before{aspect-ratio:1;border-radius:var(--radius-selector);--tw-content:"";content:var(--tw-content);height:100%;box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000);background-color:currentColor;background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);grid-row-start:1;grid-column-start:2;transition:background-color .1s,translate .2s,inset-inline-start .2s;position:relative;inset-inline-start:0;translate:0}@media (forced-colors:active){&:before{outline-style:var(--tw-outline-style);outline-offset:calc(1px*-1);outline-width:1px}}@media print{&:before{outline-offset:-1rem;outline:.25rem solid}}&:focus-visible,&:has(:focus-visible){outline-offset:2px;outline:2px solid}&:checked,&[aria-checked=true],&:has(>input:checked){background-color:var(--color-base-100);--input-color:var(--color-base-content);grid-template-columns:1fr 1fr 0fr;&:before{background-color:currentColor}@starting-style{&:before{opacity:0}}}&:indeterminate{grid-template-columns:.5fr 1fr .5fr}&:disabled{cursor:not-allowed;opacity:.3;&:before{border:var(--border)solid currentColor;background-color:#0000}}}.toggle-primary{&:checked,&[aria-checked=true]{--input-color:var(--color-primary)}}.toggle-secondary{&:checked,&[aria-checked=true]{--input-color:var(--color-secondary)}}.toggle-accent{&:checked,&[aria-checked=true]{--input-color:var(--color-accent)}}.toggle-neutral{&:checked,&[aria-checked=true]{--input-color:var(--color-neutral)}}.toggle-success{&:checked,&[aria-checked=true]{--input-color:var(--color-success)}}.toggle-warning{&:checked,&[aria-checked=true]{--input-color:var(--color-warning)}}.toggle-info{&:checked,&[aria-checked=true]{--input-color:var(--color-info)}}.toggle-error{&:checked,&[aria-checked=true]{--input-color:var(--color-error)}}.toggle-xs{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*4)}}.toggle-sm{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*5)}}.toggle-md{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*6)}}.toggle-lg{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*7)}}.toggle-xl{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*8)}}@media (width>=640px){.sm\:toggle{border:var(--border)solid currentColor;color:var(--input-color);cursor:pointer;appearance:none;vertical-align:middle;-webkit-user-select:none;user-select:none;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--toggle-p),var(--radius-selector-max)) + min(var(--border),var(--radius-selector-max)));padding:var(--toggle-p);box-shadow:0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000)inset;--input-color:color-mix(in oklab,var(--color-base-content)50%,#0000);--toggle-p:calc(var(--size)*.125);--size:calc(var(--size-selector,.25rem)*6);width:calc((var(--size)*2) - (var(--border) + var(--toggle-p))*2);height:var(--size);flex-shrink:0;grid-template-columns:0fr 1fr 1fr;place-content:center;transition:color .3s,grid-template-columns .2s;display:inline-grid;position:relative;&>*{z-index:1;cursor:pointer;appearance:none;background-color:#0000;border:none;grid-column:2/span 1;grid-row-start:1;height:100%;padding:.125rem;transition:opacity .2s,rotate .4s;&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:nth-child(2){color:var(--color-base-100);rotate:none}&:nth-child(3){color:var(--color-base-100);opacity:0;rotate:-15deg}}&:has(:checked){&>:nth-child(2){opacity:0;rotate:15deg}&>:nth-child(3){opacity:1;rotate:none}}&:before{aspect-ratio:1;border-radius:var(--radius-selector);--tw-content:"";content:var(--tw-content);height:100%;box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000);background-color:currentColor;background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);grid-row-start:1;grid-column-start:2;transition:background-color .1s,translate .2s,inset-inline-start .2s;position:relative;inset-inline-start:0;translate:0}@media (forced-colors:active){&:before{outline-style:var(--tw-outline-style);outline-offset:calc(1px*-1);outline-width:1px}}@media print{&:before{outline-offset:-1rem;outline:.25rem solid}}&:focus-visible,&:has(:focus-visible){outline-offset:2px;outline:2px solid}&:checked,&[aria-checked=true],&:has(>input:checked){background-color:var(--color-base-100);--input-color:var(--color-base-content);grid-template-columns:1fr 1fr 0fr;&:before{background-color:currentColor}@starting-style{&:before{opacity:0}}}&:indeterminate{grid-template-columns:.5fr 1fr .5fr}&:disabled{cursor:not-allowed;opacity:.3;&:before{border:var(--border)solid currentColor;background-color:#0000}}}.sm\:toggle-primary{&:checked,&[aria-checked=true]{--input-color:var(--color-primary)}}.sm\:toggle-secondary{&:checked,&[aria-checked=true]{--input-color:var(--color-secondary)}}.sm\:toggle-accent{&:checked,&[aria-checked=true]{--input-color:var(--color-accent)}}.sm\:toggle-neutral{&:checked,&[aria-checked=true]{--input-color:var(--color-neutral)}}.sm\:toggle-success{&:checked,&[aria-checked=true]{--input-color:var(--color-success)}}.sm\:toggle-warning{&:checked,&[aria-checked=true]{--input-color:var(--color-warning)}}.sm\:toggle-info{&:checked,&[aria-checked=true]{--input-color:var(--color-info)}}.sm\:toggle-error{&:checked,&[aria-checked=true]{--input-color:var(--color-error)}}.sm\:toggle-xs{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*4)}}.sm\:toggle-sm{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*5)}}.sm\:toggle-md{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*6)}}.sm\:toggle-lg{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*7)}}.sm\:toggle-xl{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*8)}}}@media (width>=768px){.md\:toggle{border:var(--border)solid currentColor;color:var(--input-color);cursor:pointer;appearance:none;vertical-align:middle;-webkit-user-select:none;user-select:none;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--toggle-p),var(--radius-selector-max)) + min(var(--border),var(--radius-selector-max)));padding:var(--toggle-p);box-shadow:0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000)inset;--input-color:color-mix(in oklab,var(--color-base-content)50%,#0000);--toggle-p:calc(var(--size)*.125);--size:calc(var(--size-selector,.25rem)*6);width:calc((var(--size)*2) - (var(--border) + var(--toggle-p))*2);height:var(--size);flex-shrink:0;grid-template-columns:0fr 1fr 1fr;place-content:center;transition:color .3s,grid-template-columns .2s;display:inline-grid;position:relative;&>*{z-index:1;cursor:pointer;appearance:none;background-color:#0000;border:none;grid-column:2/span 1;grid-row-start:1;height:100%;padding:.125rem;transition:opacity .2s,rotate .4s;&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:nth-child(2){color:var(--color-base-100);rotate:none}&:nth-child(3){color:var(--color-base-100);opacity:0;rotate:-15deg}}&:has(:checked){&>:nth-child(2){opacity:0;rotate:15deg}&>:nth-child(3){opacity:1;rotate:none}}&:before{aspect-ratio:1;border-radius:var(--radius-selector);--tw-content:"";content:var(--tw-content);height:100%;box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000);background-color:currentColor;background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);grid-row-start:1;grid-column-start:2;transition:background-color .1s,translate .2s,inset-inline-start .2s;position:relative;inset-inline-start:0;translate:0}@media (forced-colors:active){&:before{outline-style:var(--tw-outline-style);outline-offset:calc(1px*-1);outline-width:1px}}@media print{&:before{outline-offset:-1rem;outline:.25rem solid}}&:focus-visible,&:has(:focus-visible){outline-offset:2px;outline:2px solid}&:checked,&[aria-checked=true],&:has(>input:checked){background-color:var(--color-base-100);--input-color:var(--color-base-content);grid-template-columns:1fr 1fr 0fr;&:before{background-color:currentColor}@starting-style{&:before{opacity:0}}}&:indeterminate{grid-template-columns:.5fr 1fr .5fr}&:disabled{cursor:not-allowed;opacity:.3;&:before{border:var(--border)solid currentColor;background-color:#0000}}}.md\:toggle-primary{&:checked,&[aria-checked=true]{--input-color:var(--color-primary)}}.md\:toggle-secondary{&:checked,&[aria-checked=true]{--input-color:var(--color-secondary)}}.md\:toggle-accent{&:checked,&[aria-checked=true]{--input-color:var(--color-accent)}}.md\:toggle-neutral{&:checked,&[aria-checked=true]{--input-color:var(--color-neutral)}}.md\:toggle-success{&:checked,&[aria-checked=true]{--input-color:var(--color-success)}}.md\:toggle-warning{&:checked,&[aria-checked=true]{--input-color:var(--color-warning)}}.md\:toggle-info{&:checked,&[aria-checked=true]{--input-color:var(--color-info)}}.md\:toggle-error{&:checked,&[aria-checked=true]{--input-color:var(--color-error)}}.md\:toggle-xs{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*4)}}.md\:toggle-sm{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*5)}}.md\:toggle-md{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*6)}}.md\:toggle-lg{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*7)}}.md\:toggle-xl{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*8)}}}@media (width>=1024px){.lg\:toggle{border:var(--border)solid currentColor;color:var(--input-color);cursor:pointer;appearance:none;vertical-align:middle;-webkit-user-select:none;user-select:none;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--toggle-p),var(--radius-selector-max)) + min(var(--border),var(--radius-selector-max)));padding:var(--toggle-p);box-shadow:0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000)inset;--input-color:color-mix(in oklab,var(--color-base-content)50%,#0000);--toggle-p:calc(var(--size)*.125);--size:calc(var(--size-selector,.25rem)*6);width:calc((var(--size)*2) - (var(--border) + var(--toggle-p))*2);height:var(--size);flex-shrink:0;grid-template-columns:0fr 1fr 1fr;place-content:center;transition:color .3s,grid-template-columns .2s;display:inline-grid;position:relative;&>*{z-index:1;cursor:pointer;appearance:none;background-color:#0000;border:none;grid-column:2/span 1;grid-row-start:1;height:100%;padding:.125rem;transition:opacity .2s,rotate .4s;&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:nth-child(2){color:var(--color-base-100);rotate:none}&:nth-child(3){color:var(--color-base-100);opacity:0;rotate:-15deg}}&:has(:checked){&>:nth-child(2){opacity:0;rotate:15deg}&>:nth-child(3){opacity:1;rotate:none}}&:before{aspect-ratio:1;border-radius:var(--radius-selector);--tw-content:"";content:var(--tw-content);height:100%;box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000);background-color:currentColor;background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);grid-row-start:1;grid-column-start:2;transition:background-color .1s,translate .2s,inset-inline-start .2s;position:relative;inset-inline-start:0;translate:0}@media (forced-colors:active){&:before{outline-style:var(--tw-outline-style);outline-offset:calc(1px*-1);outline-width:1px}}@media print{&:before{outline-offset:-1rem;outline:.25rem solid}}&:focus-visible,&:has(:focus-visible){outline-offset:2px;outline:2px solid}&:checked,&[aria-checked=true],&:has(>input:checked){background-color:var(--color-base-100);--input-color:var(--color-base-content);grid-template-columns:1fr 1fr 0fr;&:before{background-color:currentColor}@starting-style{&:before{opacity:0}}}&:indeterminate{grid-template-columns:.5fr 1fr .5fr}&:disabled{cursor:not-allowed;opacity:.3;&:before{border:var(--border)solid currentColor;background-color:#0000}}}.lg\:toggle-primary{&:checked,&[aria-checked=true]{--input-color:var(--color-primary)}}.lg\:toggle-secondary{&:checked,&[aria-checked=true]{--input-color:var(--color-secondary)}}.lg\:toggle-accent{&:checked,&[aria-checked=true]{--input-color:var(--color-accent)}}.lg\:toggle-neutral{&:checked,&[aria-checked=true]{--input-color:var(--color-neutral)}}.lg\:toggle-success{&:checked,&[aria-checked=true]{--input-color:var(--color-success)}}.lg\:toggle-warning{&:checked,&[aria-checked=true]{--input-color:var(--color-warning)}}.lg\:toggle-info{&:checked,&[aria-checked=true]{--input-color:var(--color-info)}}.lg\:toggle-error{&:checked,&[aria-checked=true]{--input-color:var(--color-error)}}.lg\:toggle-xs{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*4)}}.lg\:toggle-sm{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*5)}}.lg\:toggle-md{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*6)}}.lg\:toggle-lg{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*7)}}.lg\:toggle-xl{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*8)}}}@media (width>=1280px){.xl\:toggle{border:var(--border)solid currentColor;color:var(--input-color);cursor:pointer;appearance:none;vertical-align:middle;-webkit-user-select:none;user-select:none;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--toggle-p),var(--radius-selector-max)) + min(var(--border),var(--radius-selector-max)));padding:var(--toggle-p);box-shadow:0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000)inset;--input-color:color-mix(in oklab,var(--color-base-content)50%,#0000);--toggle-p:calc(var(--size)*.125);--size:calc(var(--size-selector,.25rem)*6);width:calc((var(--size)*2) - (var(--border) + var(--toggle-p))*2);height:var(--size);flex-shrink:0;grid-template-columns:0fr 1fr 1fr;place-content:center;transition:color .3s,grid-template-columns .2s;display:inline-grid;position:relative;&>*{z-index:1;cursor:pointer;appearance:none;background-color:#0000;border:none;grid-column:2/span 1;grid-row-start:1;height:100%;padding:.125rem;transition:opacity .2s,rotate .4s;&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:nth-child(2){color:var(--color-base-100);rotate:none}&:nth-child(3){color:var(--color-base-100);opacity:0;rotate:-15deg}}&:has(:checked){&>:nth-child(2){opacity:0;rotate:15deg}&>:nth-child(3){opacity:1;rotate:none}}&:before{aspect-ratio:1;border-radius:var(--radius-selector);--tw-content:"";content:var(--tw-content);height:100%;box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000);background-color:currentColor;background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);grid-row-start:1;grid-column-start:2;transition:background-color .1s,translate .2s,inset-inline-start .2s;position:relative;inset-inline-start:0;translate:0}@media (forced-colors:active){&:before{outline-style:var(--tw-outline-style);outline-offset:calc(1px*-1);outline-width:1px}}@media print{&:before{outline-offset:-1rem;outline:.25rem solid}}&:focus-visible,&:has(:focus-visible){outline-offset:2px;outline:2px solid}&:checked,&[aria-checked=true],&:has(>input:checked){background-color:var(--color-base-100);--input-color:var(--color-base-content);grid-template-columns:1fr 1fr 0fr;&:before{background-color:currentColor}@starting-style{&:before{opacity:0}}}&:indeterminate{grid-template-columns:.5fr 1fr .5fr}&:disabled{cursor:not-allowed;opacity:.3;&:before{border:var(--border)solid currentColor;background-color:#0000}}}.xl\:toggle-primary{&:checked,&[aria-checked=true]{--input-color:var(--color-primary)}}.xl\:toggle-secondary{&:checked,&[aria-checked=true]{--input-color:var(--color-secondary)}}.xl\:toggle-accent{&:checked,&[aria-checked=true]{--input-color:var(--color-accent)}}.xl\:toggle-neutral{&:checked,&[aria-checked=true]{--input-color:var(--color-neutral)}}.xl\:toggle-success{&:checked,&[aria-checked=true]{--input-color:var(--color-success)}}.xl\:toggle-warning{&:checked,&[aria-checked=true]{--input-color:var(--color-warning)}}.xl\:toggle-info{&:checked,&[aria-checked=true]{--input-color:var(--color-info)}}.xl\:toggle-error{&:checked,&[aria-checked=true]{--input-color:var(--color-error)}}.xl\:toggle-xs{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*4)}}.xl\:toggle-sm{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*5)}}.xl\:toggle-md{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*6)}}.xl\:toggle-lg{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*7)}}.xl\:toggle-xl{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*8)}}}@media (width>=1536px){.\32 xl\:toggle{border:var(--border)solid currentColor;color:var(--input-color);cursor:pointer;appearance:none;vertical-align:middle;-webkit-user-select:none;user-select:none;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--toggle-p),var(--radius-selector-max)) + min(var(--border),var(--radius-selector-max)));padding:var(--toggle-p);box-shadow:0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000)inset;--input-color:color-mix(in oklab,var(--color-base-content)50%,#0000);--toggle-p:calc(var(--size)*.125);--size:calc(var(--size-selector,.25rem)*6);width:calc((var(--size)*2) - (var(--border) + var(--toggle-p))*2);height:var(--size);flex-shrink:0;grid-template-columns:0fr 1fr 1fr;place-content:center;transition:color .3s,grid-template-columns .2s;display:inline-grid;position:relative;&>*{z-index:1;cursor:pointer;appearance:none;background-color:#0000;border:none;grid-column:2/span 1;grid-row-start:1;height:100%;padding:.125rem;transition:opacity .2s,rotate .4s;&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:nth-child(2){color:var(--color-base-100);rotate:none}&:nth-child(3){color:var(--color-base-100);opacity:0;rotate:-15deg}}&:has(:checked){&>:nth-child(2){opacity:0;rotate:15deg}&>:nth-child(3){opacity:1;rotate:none}}&:before{aspect-ratio:1;border-radius:var(--radius-selector);--tw-content:"";content:var(--tw-content);height:100%;box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px color-mix(in oklab,currentColor calc(var(--depth)*10%),#0000);background-color:currentColor;background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);grid-row-start:1;grid-column-start:2;transition:background-color .1s,translate .2s,inset-inline-start .2s;position:relative;inset-inline-start:0;translate:0}@media (forced-colors:active){&:before{outline-style:var(--tw-outline-style);outline-offset:calc(1px*-1);outline-width:1px}}@media print{&:before{outline-offset:-1rem;outline:.25rem solid}}&:focus-visible,&:has(:focus-visible){outline-offset:2px;outline:2px solid}&:checked,&[aria-checked=true],&:has(>input:checked){background-color:var(--color-base-100);--input-color:var(--color-base-content);grid-template-columns:1fr 1fr 0fr;&:before{background-color:currentColor}@starting-style{&:before{opacity:0}}}&:indeterminate{grid-template-columns:.5fr 1fr .5fr}&:disabled{cursor:not-allowed;opacity:.3;&:before{border:var(--border)solid currentColor;background-color:#0000}}}.\32 xl\:toggle-primary{&:checked,&[aria-checked=true]{--input-color:var(--color-primary)}}.\32 xl\:toggle-secondary{&:checked,&[aria-checked=true]{--input-color:var(--color-secondary)}}.\32 xl\:toggle-accent{&:checked,&[aria-checked=true]{--input-color:var(--color-accent)}}.\32 xl\:toggle-neutral{&:checked,&[aria-checked=true]{--input-color:var(--color-neutral)}}.\32 xl\:toggle-success{&:checked,&[aria-checked=true]{--input-color:var(--color-success)}}.\32 xl\:toggle-warning{&:checked,&[aria-checked=true]{--input-color:var(--color-warning)}}.\32 xl\:toggle-info{&:checked,&[aria-checked=true]{--input-color:var(--color-info)}}.\32 xl\:toggle-error{&:checked,&[aria-checked=true]{--input-color:var(--color-error)}}.\32 xl\:toggle-xs{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*4)}}.\32 xl\:toggle-sm{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*5)}}.\32 xl\:toggle-md{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*6)}}.\32 xl\:toggle-lg{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*7)}}.\32 xl\:toggle-xl{&[type=checkbox],&:has([type=checkbox]){--size:calc(var(--size-selector,.25rem)*8)}}}.radial-progress{height:var(--size);width:var(--size);vertical-align:middle;box-sizing:content-box;--value:0;--size:5rem;--thickness:calc(var(--size)/10);--radialprogress:calc(var(--value)*1%);background-color:#0000;border-radius:3.40282e38px;place-content:center;transition:--radialprogress .3s linear;display:inline-grid;position:relative;&:before{content:"";background:radial-gradient(farthest-side,currentColor 98%,#0000)top/var(--thickness)var(--thickness)no-repeat,conic-gradient(currentColor var(--radialprogress),#0000 0);-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - var(--thickness)),#000 calc(100% + .5px - var(--thickness)));mask:radial-gradient(farthest-side,#0000 calc(100% - var(--thickness)),#000 calc(100% + .5px - var(--thickness)));border-radius:3.40282e38px;position:absolute;inset:0}&:after{content:"";inset:calc(50% - var(--thickness)/2);transform:rotate(calc(var(--value)*3.6deg - 90deg))translate(calc(var(--size)/2 - 50%));background-color:currentColor;border-radius:3.40282e38px;transition:transform .3s linear;position:absolute}}@media (width>=640px){.sm\:radial-progress{height:var(--size);width:var(--size);vertical-align:middle;box-sizing:content-box;--value:0;--size:5rem;--thickness:calc(var(--size)/10);--radialprogress:calc(var(--value)*1%);background-color:#0000;border-radius:3.40282e38px;place-content:center;transition:--radialprogress .3s linear;display:inline-grid;position:relative;&:before{content:"";background:radial-gradient(farthest-side,currentColor 98%,#0000)top/var(--thickness)var(--thickness)no-repeat,conic-gradient(currentColor var(--radialprogress),#0000 0);-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - var(--thickness)),#000 calc(100% + .5px - var(--thickness)));mask:radial-gradient(farthest-side,#0000 calc(100% - var(--thickness)),#000 calc(100% + .5px - var(--thickness)));border-radius:3.40282e38px;position:absolute;inset:0}&:after{content:"";inset:calc(50% - var(--thickness)/2);transform:rotate(calc(var(--value)*3.6deg - 90deg))translate(calc(var(--size)/2 - 50%));background-color:currentColor;border-radius:3.40282e38px;transition:transform .3s linear;position:absolute}}}@media (width>=768px){.md\:radial-progress{height:var(--size);width:var(--size);vertical-align:middle;box-sizing:content-box;--value:0;--size:5rem;--thickness:calc(var(--size)/10);--radialprogress:calc(var(--value)*1%);background-color:#0000;border-radius:3.40282e38px;place-content:center;transition:--radialprogress .3s linear;display:inline-grid;position:relative;&:before{content:"";background:radial-gradient(farthest-side,currentColor 98%,#0000)top/var(--thickness)var(--thickness)no-repeat,conic-gradient(currentColor var(--radialprogress),#0000 0);-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - var(--thickness)),#000 calc(100% + .5px - var(--thickness)));mask:radial-gradient(farthest-side,#0000 calc(100% - var(--thickness)),#000 calc(100% + .5px - var(--thickness)));border-radius:3.40282e38px;position:absolute;inset:0}&:after{content:"";inset:calc(50% - var(--thickness)/2);transform:rotate(calc(var(--value)*3.6deg - 90deg))translate(calc(var(--size)/2 - 50%));background-color:currentColor;border-radius:3.40282e38px;transition:transform .3s linear;position:absolute}}}@media (width>=1024px){.lg\:radial-progress{height:var(--size);width:var(--size);vertical-align:middle;box-sizing:content-box;--value:0;--size:5rem;--thickness:calc(var(--size)/10);--radialprogress:calc(var(--value)*1%);background-color:#0000;border-radius:3.40282e38px;place-content:center;transition:--radialprogress .3s linear;display:inline-grid;position:relative;&:before{content:"";background:radial-gradient(farthest-side,currentColor 98%,#0000)top/var(--thickness)var(--thickness)no-repeat,conic-gradient(currentColor var(--radialprogress),#0000 0);-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - var(--thickness)),#000 calc(100% + .5px - var(--thickness)));mask:radial-gradient(farthest-side,#0000 calc(100% - var(--thickness)),#000 calc(100% + .5px - var(--thickness)));border-radius:3.40282e38px;position:absolute;inset:0}&:after{content:"";inset:calc(50% - var(--thickness)/2);transform:rotate(calc(var(--value)*3.6deg - 90deg))translate(calc(var(--size)/2 - 50%));background-color:currentColor;border-radius:3.40282e38px;transition:transform .3s linear;position:absolute}}}@media (width>=1280px){.xl\:radial-progress{height:var(--size);width:var(--size);vertical-align:middle;box-sizing:content-box;--value:0;--size:5rem;--thickness:calc(var(--size)/10);--radialprogress:calc(var(--value)*1%);background-color:#0000;border-radius:3.40282e38px;place-content:center;transition:--radialprogress .3s linear;display:inline-grid;position:relative;&:before{content:"";background:radial-gradient(farthest-side,currentColor 98%,#0000)top/var(--thickness)var(--thickness)no-repeat,conic-gradient(currentColor var(--radialprogress),#0000 0);-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - var(--thickness)),#000 calc(100% + .5px - var(--thickness)));mask:radial-gradient(farthest-side,#0000 calc(100% - var(--thickness)),#000 calc(100% + .5px - var(--thickness)));border-radius:3.40282e38px;position:absolute;inset:0}&:after{content:"";inset:calc(50% - var(--thickness)/2);transform:rotate(calc(var(--value)*3.6deg - 90deg))translate(calc(var(--size)/2 - 50%));background-color:currentColor;border-radius:3.40282e38px;transition:transform .3s linear;position:absolute}}}@media (width>=1536px){.\32 xl\:radial-progress{height:var(--size);width:var(--size);vertical-align:middle;box-sizing:content-box;--value:0;--size:5rem;--thickness:calc(var(--size)/10);--radialprogress:calc(var(--value)*1%);background-color:#0000;border-radius:3.40282e38px;place-content:center;transition:--radialprogress .3s linear;display:inline-grid;position:relative;&:before{content:"";background:radial-gradient(farthest-side,currentColor 98%,#0000)top/var(--thickness)var(--thickness)no-repeat,conic-gradient(currentColor var(--radialprogress),#0000 0);-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - var(--thickness)),#000 calc(100% + .5px - var(--thickness)));mask:radial-gradient(farthest-side,#0000 calc(100% - var(--thickness)),#000 calc(100% + .5px - var(--thickness)));border-radius:3.40282e38px;position:absolute;inset:0}&:after{content:"";inset:calc(50% - var(--thickness)/2);transform:rotate(calc(var(--value)*3.6deg - 90deg))translate(calc(var(--size)/2 - 50%));background-color:currentColor;border-radius:3.40282e38px;transition:transform .3s linear;position:absolute}}}.radio{cursor:pointer;appearance:none;vertical-align:middle;border:var(--border)solid var(--input-color,color-mix(in srgb,currentColor 20%,#0000));box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1))inset;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);color:var(--input-color,currentColor);border-radius:3.40282e38px;flex-shrink:0;padding:.25rem;display:inline-block;position:relative;&:before{--tw-content:"";content:var(--tw-content);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);border-radius:3.40282e38px;width:100%;height:100%;display:block}&:focus-visible{outline:2px solid}&:checked,&[aria-checked=true]{background-color:var(--color-base-100);border-color:currentColor;animation:.2s ease-out radio;&:before{box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1));background-color:currentColor}@media (forced-colors:active){&:before{outline-style:var(--tw-outline-style);outline-offset:calc(1px*-1);outline-width:1px}}@media print{&:before{outline-offset:-1rem;outline:.25rem solid}}}}.radio-primary{--input-color:var(--color-primary)}.radio-secondary{--input-color:var(--color-secondary)}.radio-accent{--input-color:var(--color-accent)}.radio-neutral{--input-color:var(--color-neutral)}.radio-info{--input-color:var(--color-info)}.radio-success{--input-color:var(--color-success)}.radio-warning{--input-color:var(--color-warning)}.radio-error{--input-color:var(--color-error)}.radio:disabled{cursor:not-allowed;opacity:.2}.radio-xs{padding:.125rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*4)}}.radio-sm{padding:.1875rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*5)}}.radio-md{padding:.25rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*6)}}.radio-lg{padding:.3125rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*7)}}.radio-xl{padding:.375rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*8)}}@keyframes radio{0%{padding:5px}50%{padding:3px}}@media (width>=640px){.sm\:radio{cursor:pointer;appearance:none;vertical-align:middle;border:var(--border)solid var(--input-color,color-mix(in srgb,currentColor 20%,#0000));box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1))inset;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);color:var(--input-color,currentColor);border-radius:3.40282e38px;flex-shrink:0;padding:.25rem;display:inline-block;position:relative;&:before{--tw-content:"";content:var(--tw-content);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);border-radius:3.40282e38px;width:100%;height:100%;display:block}&:focus-visible{outline:2px solid}&:checked,&[aria-checked=true]{background-color:var(--color-base-100);border-color:currentColor;animation:.2s ease-out radio;&:before{box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1));background-color:currentColor}@media (forced-colors:active){&:before{outline-style:var(--tw-outline-style);outline-offset:calc(1px*-1);outline-width:1px}}@media print{&:before{outline-offset:-1rem;outline:.25rem solid}}}}.sm\:radio-primary{--input-color:var(--color-primary)}.sm\:radio-secondary{--input-color:var(--color-secondary)}.sm\:radio-accent{--input-color:var(--color-accent)}.sm\:radio-neutral{--input-color:var(--color-neutral)}.sm\:radio-info{--input-color:var(--color-info)}.sm\:radio-success{--input-color:var(--color-success)}.sm\:radio-warning{--input-color:var(--color-warning)}.sm\:radio-error{--input-color:var(--color-error)}.sm\:radio:disabled{cursor:not-allowed;opacity:.2}.sm\:radio-xs{padding:.125rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*4)}}.sm\:radio-sm{padding:.1875rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*5)}}.sm\:radio-md{padding:.25rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*6)}}.sm\:radio-lg{padding:.3125rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*7)}}.sm\:radio-xl{padding:.375rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*8)}}}@media (width>=768px){.md\:radio{cursor:pointer;appearance:none;vertical-align:middle;border:var(--border)solid var(--input-color,color-mix(in srgb,currentColor 20%,#0000));box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1))inset;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);color:var(--input-color,currentColor);border-radius:3.40282e38px;flex-shrink:0;padding:.25rem;display:inline-block;position:relative;&:before{--tw-content:"";content:var(--tw-content);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);border-radius:3.40282e38px;width:100%;height:100%;display:block}&:focus-visible{outline:2px solid}&:checked,&[aria-checked=true]{background-color:var(--color-base-100);border-color:currentColor;animation:.2s ease-out radio;&:before{box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1));background-color:currentColor}@media (forced-colors:active){&:before{outline-style:var(--tw-outline-style);outline-offset:calc(1px*-1);outline-width:1px}}@media print{&:before{outline-offset:-1rem;outline:.25rem solid}}}}.md\:radio-primary{--input-color:var(--color-primary)}.md\:radio-secondary{--input-color:var(--color-secondary)}.md\:radio-accent{--input-color:var(--color-accent)}.md\:radio-neutral{--input-color:var(--color-neutral)}.md\:radio-info{--input-color:var(--color-info)}.md\:radio-success{--input-color:var(--color-success)}.md\:radio-warning{--input-color:var(--color-warning)}.md\:radio-error{--input-color:var(--color-error)}.md\:radio:disabled{cursor:not-allowed;opacity:.2}.md\:radio-xs{padding:.125rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*4)}}.md\:radio-sm{padding:.1875rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*5)}}.md\:radio-md{padding:.25rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*6)}}.md\:radio-lg{padding:.3125rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*7)}}.md\:radio-xl{padding:.375rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*8)}}}@media (width>=1024px){.lg\:radio{cursor:pointer;appearance:none;vertical-align:middle;border:var(--border)solid var(--input-color,color-mix(in srgb,currentColor 20%,#0000));box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1))inset;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);color:var(--input-color,currentColor);border-radius:3.40282e38px;flex-shrink:0;padding:.25rem;display:inline-block;position:relative;&:before{--tw-content:"";content:var(--tw-content);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);border-radius:3.40282e38px;width:100%;height:100%;display:block}&:focus-visible{outline:2px solid}&:checked,&[aria-checked=true]{background-color:var(--color-base-100);border-color:currentColor;animation:.2s ease-out radio;&:before{box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1));background-color:currentColor}@media (forced-colors:active){&:before{outline-style:var(--tw-outline-style);outline-offset:calc(1px*-1);outline-width:1px}}@media print{&:before{outline-offset:-1rem;outline:.25rem solid}}}}.lg\:radio-primary{--input-color:var(--color-primary)}.lg\:radio-secondary{--input-color:var(--color-secondary)}.lg\:radio-accent{--input-color:var(--color-accent)}.lg\:radio-neutral{--input-color:var(--color-neutral)}.lg\:radio-info{--input-color:var(--color-info)}.lg\:radio-success{--input-color:var(--color-success)}.lg\:radio-warning{--input-color:var(--color-warning)}.lg\:radio-error{--input-color:var(--color-error)}.lg\:radio:disabled{cursor:not-allowed;opacity:.2}.lg\:radio-xs{padding:.125rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*4)}}.lg\:radio-sm{padding:.1875rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*5)}}.lg\:radio-md{padding:.25rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*6)}}.lg\:radio-lg{padding:.3125rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*7)}}.lg\:radio-xl{padding:.375rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*8)}}}@media (width>=1280px){.xl\:radio{cursor:pointer;appearance:none;vertical-align:middle;border:var(--border)solid var(--input-color,color-mix(in srgb,currentColor 20%,#0000));box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1))inset;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);color:var(--input-color,currentColor);border-radius:3.40282e38px;flex-shrink:0;padding:.25rem;display:inline-block;position:relative;&:before{--tw-content:"";content:var(--tw-content);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);border-radius:3.40282e38px;width:100%;height:100%;display:block}&:focus-visible{outline:2px solid}&:checked,&[aria-checked=true]{background-color:var(--color-base-100);border-color:currentColor;animation:.2s ease-out radio;&:before{box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1));background-color:currentColor}@media (forced-colors:active){&:before{outline-style:var(--tw-outline-style);outline-offset:calc(1px*-1);outline-width:1px}}@media print{&:before{outline-offset:-1rem;outline:.25rem solid}}}}.xl\:radio-primary{--input-color:var(--color-primary)}.xl\:radio-secondary{--input-color:var(--color-secondary)}.xl\:radio-accent{--input-color:var(--color-accent)}.xl\:radio-neutral{--input-color:var(--color-neutral)}.xl\:radio-info{--input-color:var(--color-info)}.xl\:radio-success{--input-color:var(--color-success)}.xl\:radio-warning{--input-color:var(--color-warning)}.xl\:radio-error{--input-color:var(--color-error)}.xl\:radio:disabled{cursor:not-allowed;opacity:.2}.xl\:radio-xs{padding:.125rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*4)}}.xl\:radio-sm{padding:.1875rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*5)}}.xl\:radio-md{padding:.25rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*6)}}.xl\:radio-lg{padding:.3125rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*7)}}.xl\:radio-xl{padding:.375rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*8)}}}@media (width>=1536px){.\32 xl\:radio{cursor:pointer;appearance:none;vertical-align:middle;border:var(--border)solid var(--input-color,color-mix(in srgb,currentColor 20%,#0000));box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1))inset;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);color:var(--input-color,currentColor);border-radius:3.40282e38px;flex-shrink:0;padding:.25rem;display:inline-block;position:relative;&:before{--tw-content:"";content:var(--tw-content);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);border-radius:3.40282e38px;width:100%;height:100%;display:block}&:focus-visible{outline:2px solid}&:checked,&[aria-checked=true]{background-color:var(--color-base-100);border-color:currentColor;animation:.2s ease-out radio;&:before{box-shadow:0 -1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1));background-color:currentColor}@media (forced-colors:active){&:before{outline-style:var(--tw-outline-style);outline-offset:calc(1px*-1);outline-width:1px}}@media print{&:before{outline-offset:-1rem;outline:.25rem solid}}}}.\32 xl\:radio-primary{--input-color:var(--color-primary)}.\32 xl\:radio-secondary{--input-color:var(--color-secondary)}.\32 xl\:radio-accent{--input-color:var(--color-accent)}.\32 xl\:radio-neutral{--input-color:var(--color-neutral)}.\32 xl\:radio-info{--input-color:var(--color-info)}.\32 xl\:radio-success{--input-color:var(--color-success)}.\32 xl\:radio-warning{--input-color:var(--color-warning)}.\32 xl\:radio-error{--input-color:var(--color-error)}.\32 xl\:radio:disabled{cursor:not-allowed;opacity:.2}.\32 xl\:radio-xs{padding:.125rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*4)}}.\32 xl\:radio-sm{padding:.1875rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*5)}}.\32 xl\:radio-md{padding:.25rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*6)}}.\32 xl\:radio-lg{padding:.3125rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*7)}}.\32 xl\:radio-xl{padding:.375rem;&[type=radio]{--size:calc(var(--size-selector,.25rem)*8)}}}.rating{vertical-align:middle;display:inline-flex;position:relative;& input{appearance:none;border:none}& :where(*){background-color:var(--color-base-content);opacity:.2;border-radius:0;width:1.5rem;height:1.5rem;animation:.25s ease-out rating;&:is(input){cursor:pointer}}& .rating-hidden{background-color:#0000;width:.5rem}& input[type=radio]:checked{background-image:none}& *{&:checked,&[aria-checked=true],&[aria-current=true],&:has(~:checked,~[aria-checked=true],~[aria-current=true]){opacity:1}&:focus-visible{transition:scale .2s ease-out;scale:1.1}}& :active:focus{animation:none;scale:1.1}&.rating-xs :where(:not(.rating-hidden)){width:1rem;height:1rem}&.rating-sm :where(:not(.rating-hidden)){width:1.25rem;height:1.25rem}&.rating-md :where(:not(.rating-hidden)){width:1.5rem;height:1.5rem}&.rating-lg :where(:not(.rating-hidden)){width:1.75rem;height:1.75rem}&.rating-xl :where(:not(.rating-hidden)){width:2rem;height:2rem}}.rating-half{& :where(:not(.rating-hidden)){width:.75rem}}.rating-half{&.rating-xs :not(.rating-hidden){width:.5rem}&.rating-sm :not(.rating-hidden){width:.625rem}&.rating-md :not(.rating-hidden){width:.75rem}&.rating-lg :not(.rating-hidden){width:.875rem}&.rating-xl :not(.rating-hidden){width:1rem}}@keyframes rating{0%,40%{filter:brightness(1.05)contrast(1.05);scale:1.1}}@media (width>=640px){.sm\:rating{vertical-align:middle;display:inline-flex;position:relative;& input{appearance:none;border:none}& :where(*){background-color:var(--color-base-content);opacity:.2;border-radius:0;width:1.5rem;height:1.5rem;animation:.25s ease-out rating;&:is(input){cursor:pointer}}& .rating-hidden{background-color:#0000;width:.5rem}& input[type=radio]:checked{background-image:none}& *{&:checked,&[aria-checked=true],&[aria-current=true],&:has(~:checked,~[aria-checked=true],~[aria-current=true]){opacity:1}&:focus-visible{transition:scale .2s ease-out;scale:1.1}}& :active:focus{animation:none;scale:1.1}&.rating-xs :where(:not(.rating-hidden)){width:1rem;height:1rem}&.rating-sm :where(:not(.rating-hidden)){width:1.25rem;height:1.25rem}&.rating-md :where(:not(.rating-hidden)){width:1.5rem;height:1.5rem}&.rating-lg :where(:not(.rating-hidden)){width:1.75rem;height:1.75rem}&.rating-xl :where(:not(.rating-hidden)){width:2rem;height:2rem}}.sm\:rating-half{& :where(:not(.rating-hidden)){width:.75rem}}.sm\:rating-half{&.rating-xs :not(.rating-hidden){width:.5rem}&.rating-sm :not(.rating-hidden){width:.625rem}&.rating-md :not(.rating-hidden){width:.75rem}&.rating-lg :not(.rating-hidden){width:.875rem}&.rating-xl :not(.rating-hidden){width:1rem}}}@media (width>=768px){.md\:rating{vertical-align:middle;display:inline-flex;position:relative;& input{appearance:none;border:none}& :where(*){background-color:var(--color-base-content);opacity:.2;border-radius:0;width:1.5rem;height:1.5rem;animation:.25s ease-out rating;&:is(input){cursor:pointer}}& .rating-hidden{background-color:#0000;width:.5rem}& input[type=radio]:checked{background-image:none}& *{&:checked,&[aria-checked=true],&[aria-current=true],&:has(~:checked,~[aria-checked=true],~[aria-current=true]){opacity:1}&:focus-visible{transition:scale .2s ease-out;scale:1.1}}& :active:focus{animation:none;scale:1.1}&.rating-xs :where(:not(.rating-hidden)){width:1rem;height:1rem}&.rating-sm :where(:not(.rating-hidden)){width:1.25rem;height:1.25rem}&.rating-md :where(:not(.rating-hidden)){width:1.5rem;height:1.5rem}&.rating-lg :where(:not(.rating-hidden)){width:1.75rem;height:1.75rem}&.rating-xl :where(:not(.rating-hidden)){width:2rem;height:2rem}}.md\:rating-half{& :where(:not(.rating-hidden)){width:.75rem}}.md\:rating-half{&.rating-xs :not(.rating-hidden){width:.5rem}&.rating-sm :not(.rating-hidden){width:.625rem}&.rating-md :not(.rating-hidden){width:.75rem}&.rating-lg :not(.rating-hidden){width:.875rem}&.rating-xl :not(.rating-hidden){width:1rem}}}@media (width>=1024px){.lg\:rating{vertical-align:middle;display:inline-flex;position:relative;& input{appearance:none;border:none}& :where(*){background-color:var(--color-base-content);opacity:.2;border-radius:0;width:1.5rem;height:1.5rem;animation:.25s ease-out rating;&:is(input){cursor:pointer}}& .rating-hidden{background-color:#0000;width:.5rem}& input[type=radio]:checked{background-image:none}& *{&:checked,&[aria-checked=true],&[aria-current=true],&:has(~:checked,~[aria-checked=true],~[aria-current=true]){opacity:1}&:focus-visible{transition:scale .2s ease-out;scale:1.1}}& :active:focus{animation:none;scale:1.1}&.rating-xs :where(:not(.rating-hidden)){width:1rem;height:1rem}&.rating-sm :where(:not(.rating-hidden)){width:1.25rem;height:1.25rem}&.rating-md :where(:not(.rating-hidden)){width:1.5rem;height:1.5rem}&.rating-lg :where(:not(.rating-hidden)){width:1.75rem;height:1.75rem}&.rating-xl :where(:not(.rating-hidden)){width:2rem;height:2rem}}.lg\:rating-half{& :where(:not(.rating-hidden)){width:.75rem}}.lg\:rating-half{&.rating-xs :not(.rating-hidden){width:.5rem}&.rating-sm :not(.rating-hidden){width:.625rem}&.rating-md :not(.rating-hidden){width:.75rem}&.rating-lg :not(.rating-hidden){width:.875rem}&.rating-xl :not(.rating-hidden){width:1rem}}}@media (width>=1280px){.xl\:rating{vertical-align:middle;display:inline-flex;position:relative;& input{appearance:none;border:none}& :where(*){background-color:var(--color-base-content);opacity:.2;border-radius:0;width:1.5rem;height:1.5rem;animation:.25s ease-out rating;&:is(input){cursor:pointer}}& .rating-hidden{background-color:#0000;width:.5rem}& input[type=radio]:checked{background-image:none}& *{&:checked,&[aria-checked=true],&[aria-current=true],&:has(~:checked,~[aria-checked=true],~[aria-current=true]){opacity:1}&:focus-visible{transition:scale .2s ease-out;scale:1.1}}& :active:focus{animation:none;scale:1.1}&.rating-xs :where(:not(.rating-hidden)){width:1rem;height:1rem}&.rating-sm :where(:not(.rating-hidden)){width:1.25rem;height:1.25rem}&.rating-md :where(:not(.rating-hidden)){width:1.5rem;height:1.5rem}&.rating-lg :where(:not(.rating-hidden)){width:1.75rem;height:1.75rem}&.rating-xl :where(:not(.rating-hidden)){width:2rem;height:2rem}}.xl\:rating-half{& :where(:not(.rating-hidden)){width:.75rem}}.xl\:rating-half{&.rating-xs :not(.rating-hidden){width:.5rem}&.rating-sm :not(.rating-hidden){width:.625rem}&.rating-md :not(.rating-hidden){width:.75rem}&.rating-lg :not(.rating-hidden){width:.875rem}&.rating-xl :not(.rating-hidden){width:1rem}}}@media (width>=1536px){.\32 xl\:rating{vertical-align:middle;display:inline-flex;position:relative;& input{appearance:none;border:none}& :where(*){background-color:var(--color-base-content);opacity:.2;border-radius:0;width:1.5rem;height:1.5rem;animation:.25s ease-out rating;&:is(input){cursor:pointer}}& .rating-hidden{background-color:#0000;width:.5rem}& input[type=radio]:checked{background-image:none}& *{&:checked,&[aria-checked=true],&[aria-current=true],&:has(~:checked,~[aria-checked=true],~[aria-current=true]){opacity:1}&:focus-visible{transition:scale .2s ease-out;scale:1.1}}& :active:focus{animation:none;scale:1.1}&.rating-xs :where(:not(.rating-hidden)){width:1rem;height:1rem}&.rating-sm :where(:not(.rating-hidden)){width:1.25rem;height:1.25rem}&.rating-md :where(:not(.rating-hidden)){width:1.5rem;height:1.5rem}&.rating-lg :where(:not(.rating-hidden)){width:1.75rem;height:1.75rem}&.rating-xl :where(:not(.rating-hidden)){width:2rem;height:2rem}}.\32 xl\:rating-half{& :where(:not(.rating-hidden)){width:.75rem}}.\32 xl\:rating-half{&.rating-xs :not(.rating-hidden){width:.5rem}&.rating-sm :not(.rating-hidden){width:.625rem}&.rating-md :not(.rating-hidden){width:.75rem}&.rating-lg :not(.rating-hidden){width:.875rem}&.rating-xl :not(.rating-hidden){width:1rem}}}.swap{cursor:pointer;vertical-align:middle;-webkit-user-select:none;user-select:none;place-content:center;display:inline-grid;position:relative;& input{appearance:none;border:none}&>*{grid-row-start:1;grid-column-start:1;transition-property:transform,rotate,opacity;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}& .swap-on,& .swap-indeterminate,& input:indeterminate~.swap-on{opacity:0}& input:is(:checked,:indeterminate){&~.swap-off{opacity:0}}& input:checked~.swap-on,& input:indeterminate~.swap-indeterminate{opacity:1;backface-visibility:visible}}.swap-active{& .swap-off{opacity:0}& .swap-on{opacity:1}}.swap-rotate{& .swap-on,& input:indeterminate~.swap-on{rotate:45deg}& input:is(:checked,:indeterminate)~.swap-on,&.swap-active .swap-on{rotate:none}& input:is(:checked,:indeterminate)~.swap-off,&.swap-active .swap-off{rotate:-45deg}}.swap-flip{transform-style:preserve-3d;perspective:20rem;& .swap-on,& .swap-indeterminate,& input:indeterminate~.swap-on{backface-visibility:hidden;transform:rotateY(180deg)}& input:is(:checked,:indeterminate)~.swap-on,&.swap-active .swap-on{transform:rotateY(0)}& input:is(:checked,:indeterminate)~.swap-off,&.swap-active .swap-off{backface-visibility:hidden;opacity:1;transform:rotateY(-180deg)}}.indicator{width:max-content;display:inline-flex;position:relative;& :where(.indicator-item){z-index:1;white-space:nowrap;top:var(--indicator-t,0);bottom:var(--indicator-b,auto);left:var(--indicator-s,auto);right:var(--indicator-e,0);translate:var(--indicator-x,50%)var(--indicator-y,-50%);position:absolute}}.indicator-start{--indicator-s:0;--indicator-e:auto;--indicator-x:-50%;[dir=rtl] &{--indicator-s:auto;--indicator-e:0;--indicator-x:50%}}.indicator-center{--indicator-s:50%;--indicator-e:50%;--indicator-x:-50%;[dir=rtl] &{--indicator-x:50%}}.indicator-end{--indicator-s:auto;--indicator-e:0;--indicator-x:50%;[dir=rtl] &{--indicator-s:0;--indicator-e:auto;--indicator-x:-50%}}.indicator-bottom{--indicator-t:auto;--indicator-b:0;--indicator-y:50%}.indicator-middle{--indicator-t:50%;--indicator-b:50%;--indicator-y:-50%}.indicator-top{--indicator-t:0;--indicator-b:auto;--indicator-y:-50%}@media (width>=640px){.sm\:indicator{width:max-content;display:inline-flex;position:relative;& :where(.indicator-item){z-index:1;white-space:nowrap;top:var(--indicator-t,0);bottom:var(--indicator-b,auto);left:var(--indicator-s,auto);right:var(--indicator-e,0);translate:var(--indicator-x,50%)var(--indicator-y,-50%);position:absolute}}.sm\:indicator-start{--indicator-s:0;--indicator-e:auto;--indicator-x:-50%;[dir=rtl] &{--indicator-s:auto;--indicator-e:0;--indicator-x:50%}}.sm\:indicator-center{--indicator-s:50%;--indicator-e:50%;--indicator-x:-50%;[dir=rtl] &{--indicator-x:50%}}.sm\:indicator-end{--indicator-s:auto;--indicator-e:0;--indicator-x:50%;[dir=rtl] &{--indicator-s:0;--indicator-e:auto;--indicator-x:-50%}}.sm\:indicator-bottom{--indicator-t:auto;--indicator-b:0;--indicator-y:50%}.sm\:indicator-middle{--indicator-t:50%;--indicator-b:50%;--indicator-y:-50%}.sm\:indicator-top{--indicator-t:0;--indicator-b:auto;--indicator-y:-50%}}@media (width>=768px){.md\:indicator{width:max-content;display:inline-flex;position:relative;& :where(.indicator-item){z-index:1;white-space:nowrap;top:var(--indicator-t,0);bottom:var(--indicator-b,auto);left:var(--indicator-s,auto);right:var(--indicator-e,0);translate:var(--indicator-x,50%)var(--indicator-y,-50%);position:absolute}}.md\:indicator-start{--indicator-s:0;--indicator-e:auto;--indicator-x:-50%;[dir=rtl] &{--indicator-s:auto;--indicator-e:0;--indicator-x:50%}}.md\:indicator-center{--indicator-s:50%;--indicator-e:50%;--indicator-x:-50%;[dir=rtl] &{--indicator-x:50%}}.md\:indicator-end{--indicator-s:auto;--indicator-e:0;--indicator-x:50%;[dir=rtl] &{--indicator-s:0;--indicator-e:auto;--indicator-x:-50%}}.md\:indicator-bottom{--indicator-t:auto;--indicator-b:0;--indicator-y:50%}.md\:indicator-middle{--indicator-t:50%;--indicator-b:50%;--indicator-y:-50%}.md\:indicator-top{--indicator-t:0;--indicator-b:auto;--indicator-y:-50%}}@media (width>=1024px){.lg\:indicator{width:max-content;display:inline-flex;position:relative;& :where(.indicator-item){z-index:1;white-space:nowrap;top:var(--indicator-t,0);bottom:var(--indicator-b,auto);left:var(--indicator-s,auto);right:var(--indicator-e,0);translate:var(--indicator-x,50%)var(--indicator-y,-50%);position:absolute}}.lg\:indicator-start{--indicator-s:0;--indicator-e:auto;--indicator-x:-50%;[dir=rtl] &{--indicator-s:auto;--indicator-e:0;--indicator-x:50%}}.lg\:indicator-center{--indicator-s:50%;--indicator-e:50%;--indicator-x:-50%;[dir=rtl] &{--indicator-x:50%}}.lg\:indicator-end{--indicator-s:auto;--indicator-e:0;--indicator-x:50%;[dir=rtl] &{--indicator-s:0;--indicator-e:auto;--indicator-x:-50%}}.lg\:indicator-bottom{--indicator-t:auto;--indicator-b:0;--indicator-y:50%}.lg\:indicator-middle{--indicator-t:50%;--indicator-b:50%;--indicator-y:-50%}.lg\:indicator-top{--indicator-t:0;--indicator-b:auto;--indicator-y:-50%}}@media (width>=1280px){.xl\:indicator{width:max-content;display:inline-flex;position:relative;& :where(.indicator-item){z-index:1;white-space:nowrap;top:var(--indicator-t,0);bottom:var(--indicator-b,auto);left:var(--indicator-s,auto);right:var(--indicator-e,0);translate:var(--indicator-x,50%)var(--indicator-y,-50%);position:absolute}}.xl\:indicator-start{--indicator-s:0;--indicator-e:auto;--indicator-x:-50%;[dir=rtl] &{--indicator-s:auto;--indicator-e:0;--indicator-x:50%}}.xl\:indicator-center{--indicator-s:50%;--indicator-e:50%;--indicator-x:-50%;[dir=rtl] &{--indicator-x:50%}}.xl\:indicator-end{--indicator-s:auto;--indicator-e:0;--indicator-x:50%;[dir=rtl] &{--indicator-s:0;--indicator-e:auto;--indicator-x:-50%}}.xl\:indicator-bottom{--indicator-t:auto;--indicator-b:0;--indicator-y:50%}.xl\:indicator-middle{--indicator-t:50%;--indicator-b:50%;--indicator-y:-50%}.xl\:indicator-top{--indicator-t:0;--indicator-b:auto;--indicator-y:-50%}}@media (width>=1536px){.\32 xl\:indicator{width:max-content;display:inline-flex;position:relative;& :where(.indicator-item){z-index:1;white-space:nowrap;top:var(--indicator-t,0);bottom:var(--indicator-b,auto);left:var(--indicator-s,auto);right:var(--indicator-e,0);translate:var(--indicator-x,50%)var(--indicator-y,-50%);position:absolute}}.\32 xl\:indicator-start{--indicator-s:0;--indicator-e:auto;--indicator-x:-50%;[dir=rtl] &{--indicator-s:auto;--indicator-e:0;--indicator-x:50%}}.\32 xl\:indicator-center{--indicator-s:50%;--indicator-e:50%;--indicator-x:-50%;[dir=rtl] &{--indicator-x:50%}}.\32 xl\:indicator-end{--indicator-s:auto;--indicator-e:0;--indicator-x:50%;[dir=rtl] &{--indicator-s:0;--indicator-e:auto;--indicator-x:-50%}}.\32 xl\:indicator-bottom{--indicator-t:auto;--indicator-b:0;--indicator-y:50%}.\32 xl\:indicator-middle{--indicator-t:50%;--indicator-b:50%;--indicator-y:-50%}.\32 xl\:indicator-top{--indicator-t:0;--indicator-b:auto;--indicator-y:-50%}}.drawer{grid-auto-columns:max-content auto;width:100%;display:grid;position:relative}.drawer-content{grid-row-start:1;grid-column-start:2;min-width:0}.drawer-side{pointer-events:none;visibility:hidden;inset-inline-start:0;z-index:1;overscroll-behavior:contain;opacity:0;width:100%;transition:opacity .2s ease-out .1s allow-discrete,visibility .3s ease-out .1s allow-discrete;grid-template-rows:repeat(1,minmax(0,1fr));grid-template-columns:repeat(1,minmax(0,1fr));grid-row-start:1;grid-column-start:1;place-items:flex-start start;height:100dvh;display:grid;position:fixed;top:0;overflow:hidden;&>.drawer-overlay{cursor:pointer;background-color:oklch(0% 0 0/.4);place-self:stretch stretch;position:sticky;top:0}&>*{grid-row-start:1;grid-column-start:1}&>:not(.drawer-overlay){will-change:transform;transition:translate .3s ease-out;translate:-100%;[dir=rtl] &{translate:100%}}}.drawer-toggle{appearance:none;opacity:0;width:0;height:0;position:fixed;&:checked{&~.drawer-side{pointer-events:auto;visibility:visible;opacity:1;overflow-y:auto;&>:not(.drawer-overlay){translate:0%}}}&:focus-visible~.drawer-content label.drawer-button{outline-offset:2px;outline:2px solid}}.drawer-end{grid-auto-columns:auto max-content;&>.drawer-toggle{&~.drawer-content{grid-column-start:1}&~.drawer-side{grid-column-start:2;justify-items:end}&~.drawer-side>:not(.drawer-overlay){translate:100%;[dir=rtl] &{translate:-100%}}&:checked~.drawer-side>:not(.drawer-overlay){translate:0%}}}.drawer-open{&>.drawer-side{overflow-y:auto}&>.drawer-toggle{display:none;&~.drawer-side{pointer-events:auto;visibility:visible;overscroll-behavior:auto;opacity:1;width:auto;display:block;position:sticky;&>.drawer-overlay{cursor:default;background-color:#0000}&>:not(.drawer-overlay){translate:0%;[dir=rtl] &{translate:0%}}}&:checked~.drawer-side{pointer-events:auto;visibility:visible}}}@media (width>=640px){.sm\:drawer{grid-auto-columns:max-content auto;width:100%;display:grid;position:relative}.sm\:drawer-content{grid-row-start:1;grid-column-start:2;min-width:0}.sm\:drawer-side{pointer-events:none;visibility:hidden;inset-inline-start:0;z-index:1;overscroll-behavior:contain;opacity:0;width:100%;transition:opacity .2s ease-out .1s allow-discrete,visibility .3s ease-out .1s allow-discrete;grid-template-rows:repeat(1,minmax(0,1fr));grid-template-columns:repeat(1,minmax(0,1fr));grid-row-start:1;grid-column-start:1;place-items:flex-start start;height:100dvh;display:grid;position:fixed;top:0;overflow:hidden;&>.drawer-overlay{cursor:pointer;background-color:oklch(0% 0 0/.4);place-self:stretch stretch;position:sticky;top:0}&>*{grid-row-start:1;grid-column-start:1}&>:not(.drawer-overlay){will-change:transform;transition:translate .3s ease-out;translate:-100%;[dir=rtl] &{translate:100%}}}.sm\:drawer-toggle{appearance:none;opacity:0;width:0;height:0;position:fixed;&:checked{&~.drawer-side{pointer-events:auto;visibility:visible;opacity:1;overflow-y:auto;&>:not(.drawer-overlay){translate:0%}}}&:focus-visible~.drawer-content label.drawer-button{outline-offset:2px;outline:2px solid}}.sm\:drawer-end{grid-auto-columns:auto max-content;&>.drawer-toggle{&~.drawer-content{grid-column-start:1}&~.drawer-side{grid-column-start:2;justify-items:end}&~.drawer-side>:not(.drawer-overlay){translate:100%;[dir=rtl] &{translate:-100%}}&:checked~.drawer-side>:not(.drawer-overlay){translate:0%}}}.sm\:drawer-open{&>.drawer-side{overflow-y:auto}&>.drawer-toggle{display:none;&~.drawer-side{pointer-events:auto;visibility:visible;overscroll-behavior:auto;opacity:1;width:auto;display:block;position:sticky;&>.drawer-overlay{cursor:default;background-color:#0000}&>:not(.drawer-overlay){translate:0%;[dir=rtl] &{translate:0%}}}&:checked~.drawer-side{pointer-events:auto;visibility:visible}}}}@media (width>=768px){.md\:drawer{grid-auto-columns:max-content auto;width:100%;display:grid;position:relative}.md\:drawer-content{grid-row-start:1;grid-column-start:2;min-width:0}.md\:drawer-side{pointer-events:none;visibility:hidden;inset-inline-start:0;z-index:1;overscroll-behavior:contain;opacity:0;width:100%;transition:opacity .2s ease-out .1s allow-discrete,visibility .3s ease-out .1s allow-discrete;grid-template-rows:repeat(1,minmax(0,1fr));grid-template-columns:repeat(1,minmax(0,1fr));grid-row-start:1;grid-column-start:1;place-items:flex-start start;height:100dvh;display:grid;position:fixed;top:0;overflow:hidden;&>.drawer-overlay{cursor:pointer;background-color:oklch(0% 0 0/.4);place-self:stretch stretch;position:sticky;top:0}&>*{grid-row-start:1;grid-column-start:1}&>:not(.drawer-overlay){will-change:transform;transition:translate .3s ease-out;translate:-100%;[dir=rtl] &{translate:100%}}}.md\:drawer-toggle{appearance:none;opacity:0;width:0;height:0;position:fixed;&:checked{&~.drawer-side{pointer-events:auto;visibility:visible;opacity:1;overflow-y:auto;&>:not(.drawer-overlay){translate:0%}}}&:focus-visible~.drawer-content label.drawer-button{outline-offset:2px;outline:2px solid}}.md\:drawer-end{grid-auto-columns:auto max-content;&>.drawer-toggle{&~.drawer-content{grid-column-start:1}&~.drawer-side{grid-column-start:2;justify-items:end}&~.drawer-side>:not(.drawer-overlay){translate:100%;[dir=rtl] &{translate:-100%}}&:checked~.drawer-side>:not(.drawer-overlay){translate:0%}}}.md\:drawer-open{&>.drawer-side{overflow-y:auto}&>.drawer-toggle{display:none;&~.drawer-side{pointer-events:auto;visibility:visible;overscroll-behavior:auto;opacity:1;width:auto;display:block;position:sticky;&>.drawer-overlay{cursor:default;background-color:#0000}&>:not(.drawer-overlay){translate:0%;[dir=rtl] &{translate:0%}}}&:checked~.drawer-side{pointer-events:auto;visibility:visible}}}}@media (width>=1024px){.lg\:drawer{grid-auto-columns:max-content auto;width:100%;display:grid;position:relative}.lg\:drawer-content{grid-row-start:1;grid-column-start:2;min-width:0}.lg\:drawer-side{pointer-events:none;visibility:hidden;inset-inline-start:0;z-index:1;overscroll-behavior:contain;opacity:0;width:100%;transition:opacity .2s ease-out .1s allow-discrete,visibility .3s ease-out .1s allow-discrete;grid-template-rows:repeat(1,minmax(0,1fr));grid-template-columns:repeat(1,minmax(0,1fr));grid-row-start:1;grid-column-start:1;place-items:flex-start start;height:100dvh;display:grid;position:fixed;top:0;overflow:hidden;&>.drawer-overlay{cursor:pointer;background-color:oklch(0% 0 0/.4);place-self:stretch stretch;position:sticky;top:0}&>*{grid-row-start:1;grid-column-start:1}&>:not(.drawer-overlay){will-change:transform;transition:translate .3s ease-out;translate:-100%;[dir=rtl] &{translate:100%}}}.lg\:drawer-toggle{appearance:none;opacity:0;width:0;height:0;position:fixed;&:checked{&~.drawer-side{pointer-events:auto;visibility:visible;opacity:1;overflow-y:auto;&>:not(.drawer-overlay){translate:0%}}}&:focus-visible~.drawer-content label.drawer-button{outline-offset:2px;outline:2px solid}}.lg\:drawer-end{grid-auto-columns:auto max-content;&>.drawer-toggle{&~.drawer-content{grid-column-start:1}&~.drawer-side{grid-column-start:2;justify-items:end}&~.drawer-side>:not(.drawer-overlay){translate:100%;[dir=rtl] &{translate:-100%}}&:checked~.drawer-side>:not(.drawer-overlay){translate:0%}}}.lg\:drawer-open{&>.drawer-side{overflow-y:auto}&>.drawer-toggle{display:none;&~.drawer-side{pointer-events:auto;visibility:visible;overscroll-behavior:auto;opacity:1;width:auto;display:block;position:sticky;&>.drawer-overlay{cursor:default;background-color:#0000}&>:not(.drawer-overlay){translate:0%;[dir=rtl] &{translate:0%}}}&:checked~.drawer-side{pointer-events:auto;visibility:visible}}}}@media (width>=1280px){.xl\:drawer{grid-auto-columns:max-content auto;width:100%;display:grid;position:relative}.xl\:drawer-content{grid-row-start:1;grid-column-start:2;min-width:0}.xl\:drawer-side{pointer-events:none;visibility:hidden;inset-inline-start:0;z-index:1;overscroll-behavior:contain;opacity:0;width:100%;transition:opacity .2s ease-out .1s allow-discrete,visibility .3s ease-out .1s allow-discrete;grid-template-rows:repeat(1,minmax(0,1fr));grid-template-columns:repeat(1,minmax(0,1fr));grid-row-start:1;grid-column-start:1;place-items:flex-start start;height:100dvh;display:grid;position:fixed;top:0;overflow:hidden;&>.drawer-overlay{cursor:pointer;background-color:oklch(0% 0 0/.4);place-self:stretch stretch;position:sticky;top:0}&>*{grid-row-start:1;grid-column-start:1}&>:not(.drawer-overlay){will-change:transform;transition:translate .3s ease-out;translate:-100%;[dir=rtl] &{translate:100%}}}.xl\:drawer-toggle{appearance:none;opacity:0;width:0;height:0;position:fixed;&:checked{&~.drawer-side{pointer-events:auto;visibility:visible;opacity:1;overflow-y:auto;&>:not(.drawer-overlay){translate:0%}}}&:focus-visible~.drawer-content label.drawer-button{outline-offset:2px;outline:2px solid}}.xl\:drawer-end{grid-auto-columns:auto max-content;&>.drawer-toggle{&~.drawer-content{grid-column-start:1}&~.drawer-side{grid-column-start:2;justify-items:end}&~.drawer-side>:not(.drawer-overlay){translate:100%;[dir=rtl] &{translate:-100%}}&:checked~.drawer-side>:not(.drawer-overlay){translate:0%}}}.xl\:drawer-open{&>.drawer-side{overflow-y:auto}&>.drawer-toggle{display:none;&~.drawer-side{pointer-events:auto;visibility:visible;overscroll-behavior:auto;opacity:1;width:auto;display:block;position:sticky;&>.drawer-overlay{cursor:default;background-color:#0000}&>:not(.drawer-overlay){translate:0%;[dir=rtl] &{translate:0%}}}&:checked~.drawer-side{pointer-events:auto;visibility:visible}}}}@media (width>=1536px){.\32 xl\:drawer{grid-auto-columns:max-content auto;width:100%;display:grid;position:relative}.\32 xl\:drawer-content{grid-row-start:1;grid-column-start:2;min-width:0}.\32 xl\:drawer-side{pointer-events:none;visibility:hidden;inset-inline-start:0;z-index:1;overscroll-behavior:contain;opacity:0;width:100%;transition:opacity .2s ease-out .1s allow-discrete,visibility .3s ease-out .1s allow-discrete;grid-template-rows:repeat(1,minmax(0,1fr));grid-template-columns:repeat(1,minmax(0,1fr));grid-row-start:1;grid-column-start:1;place-items:flex-start start;height:100dvh;display:grid;position:fixed;top:0;overflow:hidden;&>.drawer-overlay{cursor:pointer;background-color:oklch(0% 0 0/.4);place-self:stretch stretch;position:sticky;top:0}&>*{grid-row-start:1;grid-column-start:1}&>:not(.drawer-overlay){will-change:transform;transition:translate .3s ease-out;translate:-100%;[dir=rtl] &{translate:100%}}}.\32 xl\:drawer-toggle{appearance:none;opacity:0;width:0;height:0;position:fixed;&:checked{&~.drawer-side{pointer-events:auto;visibility:visible;opacity:1;overflow-y:auto;&>:not(.drawer-overlay){translate:0%}}}&:focus-visible~.drawer-content label.drawer-button{outline-offset:2px;outline:2px solid}}.\32 xl\:drawer-end{grid-auto-columns:auto max-content;&>.drawer-toggle{&~.drawer-content{grid-column-start:1}&~.drawer-side{grid-column-start:2;justify-items:end}&~.drawer-side>:not(.drawer-overlay){translate:100%;[dir=rtl] &{translate:-100%}}&:checked~.drawer-side>:not(.drawer-overlay){translate:0%}}}.\32 xl\:drawer-open{&>.drawer-side{overflow-y:auto}&>.drawer-toggle{display:none;&~.drawer-side{pointer-events:auto;visibility:visible;overscroll-behavior:auto;opacity:1;width:auto;display:block;position:sticky;&>.drawer-overlay{cursor:default;background-color:#0000}&>:not(.drawer-overlay){translate:0%;[dir=rtl] &{translate:0%}}}&:checked~.drawer-side{pointer-events:auto;visibility:visible}}}}.tabs{--tabs-height:auto;--tabs-direction:row;--tab-height:calc(var(--size-field,.25rem)*10);height:var(--tabs-height);flex-wrap:wrap;flex-direction:var(--tabs-direction);display:flex}.tab{cursor:pointer;appearance:none;text-align:center;-webkit-user-select:none;user-select:none;--tab-p:1rem;--tab-bg:var(--color-base-100);--tab-border-color:var(--color-base-300);--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:0;--tab-radius-ee:0;--tab-order:0;--tab-radius-min:calc(.75rem - var(--border));flex-wrap:wrap;order:var(--tab-order);height:var(--tab-height);border-color:#0000;justify-content:center;align-items:center;padding-inline-start:var(--tab-p);padding-inline-end:var(--tab-p);font-size:.875rem;display:inline-flex;position:relative;&:hover{@media (hover:hover){&{color:var(--color-base-content)}}}&:is(input[type=radio]){min-width:fit-content;&:after{content:attr(aria-label)}}&:is(label){position:relative;& input{cursor:pointer;appearance:none;opacity:0;position:absolute;inset:0}}&:checked,&:is(label:has(:checked)),&:is(.tab-active,[aria-selected=true]){&+.tab-content{height:calc(100% - var(--tab-height) + var(--border));display:block}}&:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true]){color:color-mix(in oklab,var(--color-base-content)50%,transparent)}&:not(input):empty{cursor:default;flex-grow:1}&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible,&:is(label:has(:checked:focus-visible)){outline-offset:-5px;outline:2px solid}&[disabled]{pointer-events:none;opacity:.4}}.tab-disabled{pointer-events:none;opacity:.4}.tabs-border{& .tab{--tab-border-color:#0000 #0000 var(--tab-border-color)#0000;border-radius:var(--radius-field);position:relative;&:before{--tw-content:"";content:var(--tw-content);background-color:var(--tab-border-color);border-radius:var(--radius-field);width:80%;height:3px;transition:background-color .2s;position:absolute;bottom:0;left:10%}&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked),&:is(label:has(:checked)){&:before{--tab-border-color:currentColor;border-top:3px solid}}}}.tabs-lift{--tabs-height:auto;--tabs-direction:row;&>.tab{--tab-border:0 0 var(--border)0;--tab-radius-ss:min(var(--radius-field),var(--tab-radius-min));--tab-radius-se:min(var(--radius-field),var(--tab-radius-min));--tab-radius-es:0;--tab-radius-ee:0;--tab-paddings:var(--border)var(--tab-p)0 var(--tab-p);--tab-border-colors:#0000 #0000 var(--tab-border-color)#0000;--tab-corner-width:calc(100% + min(var(--radius-field),var(--tab-radius-min))*2);--tab-corner-height:min(var(--radius-field),var(--tab-radius-min));--tab-corner-position:top left,top right;border-width:var(--tab-border);padding:var(--tab-paddings);border-color:var(--tab-border-colors);border-start-start-radius:var(--tab-radius-ss);border-start-end-radius:var(--tab-radius-se);border-end-end-radius:var(--tab-radius-ee);border-end-start-radius:var(--tab-radius-es);&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked,label:has(:checked)){--tab-border:var(--border)var(--border)0 var(--border);--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color);--tab-paddings:0 calc(var(--tab-p) - var(--border))var(--border)calc(var(--tab-p) - var(--border));--tab-inset:auto auto 0 auto;--tab-grad:calc(69% - var(--border));--radius-start:radial-gradient(circle at top left,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));--radius-end:radial-gradient(circle at top right,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));background-color:var(--tab-bg);&:before{z-index:1;content:"";width:var(--tab-corner-width);height:var(--tab-corner-height);background-position:var(--tab-corner-position);background-image:var(--radius-start),var(--radius-end);background-size:min(var(--radius-field),var(--tab-radius-min))min(var(--radius-field),var(--tab-radius-min));inset:var(--tab-inset);background-repeat:no-repeat;display:block;position:absolute}&:first-child:before{--radius-start:none}[dir=rtl] &:first-child:before{transform:rotateY(180deg)}&:last-child:before{--radius-end:none}[dir=rtl] &:last-child:before{transform:rotateY(180deg)}}}&:has(.tab-content){&>.tab:first-child{&:not(.tab-active,[aria-selected=true]){--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color)}}}& .tab-content{--tabcontent-margin:calc(-1*var(--border))0 0 0;--tabcontent-radius-ss:0;--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box)}& :checked,& label:has(:checked),& :is(.tab-active,[aria-selected=true]){&+.tab-content{&:first-child,&:nth-child(n+3){--tabcontent-radius-ss:var(--radius-box)}}}}.tabs-top{--tabs-height:auto;--tabs-direction:row;& .tab{--tab-order:0;--tab-border:0 0 var(--border)0;--tab-radius-ss:min(var(--radius-field),var(--tab-radius-min));--tab-radius-se:min(var(--radius-field),var(--tab-radius-min));--tab-radius-es:0;--tab-radius-ee:0;--tab-paddings:var(--border)var(--tab-p)0 var(--tab-p);--tab-border-colors:#0000 #0000 var(--tab-border-color)#0000;--tab-corner-width:calc(100% + min(var(--radius-field),var(--tab-radius-min))*2);--tab-corner-height:min(var(--radius-field),var(--tab-radius-min));--tab-corner-position:top left,top right;&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked),&:is(label:has(:checked)){--tab-border:var(--border)var(--border)0 var(--border);--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color);--tab-paddings:0 calc(var(--tab-p) - var(--border))var(--border)calc(var(--tab-p) - var(--border));--tab-inset:auto auto 0 auto;--radius-start:radial-gradient(circle at top left,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));--radius-end:radial-gradient(circle at top right,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px))}}&:has(.tab-content){&>.tab:first-child{&:not(.tab-active,[aria-selected=true]){--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color)}}}& .tab-content{--tabcontent-order:1;--tabcontent-margin:calc(-1*var(--border))0 0 0;--tabcontent-radius-ss:0;--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box)}& :checked,& label:has(:checked),& :is(.tab-active,[aria-selected=true]){&+.tab-content{&:first-child,&:nth-child(n+3){--tabcontent-radius-ss:var(--radius-box)}}}}.tabs-bottom{--tabs-height:auto;--tabs-direction:row;& .tab{--tab-order:1;--tab-border:var(--border)0 0 0;--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:min(var(--radius-field),var(--tab-radius-min));--tab-radius-ee:min(var(--radius-field),var(--tab-radius-min));--tab-border-colors:var(--tab-border-color)#0000 #0000 #0000;--tab-paddings:0 var(--tab-p)var(--border)var(--tab-p);--tab-corner-width:calc(100% + min(var(--radius-field),var(--tab-radius-min))*2);--tab-corner-height:min(var(--radius-field),var(--tab-radius-min));--tab-corner-position:top left,top right;&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked),&:is(label:has(:checked)){--tab-border:0 var(--border)var(--border)var(--border);--tab-border-colors:#0000 var(--tab-border-color)var(--tab-border-color)var(--tab-border-color);--tab-paddings:var(--border)calc(var(--tab-p) - var(--border))0 calc(var(--tab-p) - var(--border));--tab-inset:0 auto auto auto;--radius-start:radial-gradient(circle at bottom left,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));--radius-end:radial-gradient(circle at bottom right,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px))}}&:has(.tab-content){&>.tab:first-child{&:not(.tab-active,[aria-selected=true]){--tab-border-colors:#0000 var(--tab-border-color)var(--tab-border-color)var(--tab-border-color)}}}& .tab-content{--tabcontent-order:0;--tabcontent-margin:0 0 calc(-1*var(--border))0;--tabcontent-radius-ss:var(--radius-box);--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:0;--tabcontent-radius-ee:var(--radius-box)}&>:checked,&>:is(label:has(:checked)),&>:is(.tab-active,[aria-selected=true]){&+.tab-content:not(:nth-child(2)){--tabcontent-radius-es:var(--radius-box)}}}.tabs-box{background-color:var(--color-base-200);--tabs-box-radius:calc(var(--radius-field) + var(--radius-field) + var(--radius-field));border-radius:calc(var(--radius-field) + min(.25rem,var(--tabs-box-radius)));box-shadow:0 -.5px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 .5px oklch(0% 0 0/calc(var(--depth)*.05))inset;padding:.25rem;& .tab{border-radius:var(--radius-field);border-style:none;&:focus-visible,&:is(label:has(:checked:focus-visible)){outline-offset:2px}}&>:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&>:is(input:checked),&>:is(label:has(:checked)){background-color:var(--tab-bg,var(--color-base-100));box-shadow:0 1px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px 1px -1px color-mix(in oklab,var(--color-neutral)calc(var(--depth)*50%),#0000),0 1px 6px -4px color-mix(in oklab,var(--color-neutral)calc(var(--depth)*100%),#0000);@media (forced-colors:active){&{border:1px solid}}}}.tab-content{--tabcontent-radius-ss:0;--tabcontent-radius-se:0;--tabcontent-radius-es:0;--tabcontent-radius-ee:0;--tabcontent-order:1;width:100%;margin:var(--tabcontent-margin);order:1;order:var(--tabcontent-order);border-color:#0000;border-width:var(--border);border-start-start-radius:var(--tabcontent-radius-ss);border-start-end-radius:var(--tabcontent-radius-se);border-end-end-radius:var(--tabcontent-radius-ee);border-end-start-radius:var(--tabcontent-radius-es);display:none}.tabs-xs{--tab-height:calc(var(--size-field,.25rem)*6);& :where(.tab){--tab-p:.375rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.75rem}}.tabs-sm{--tab-height:calc(var(--size-field,.25rem)*8);& :where(.tab){--tab-p:.5rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.875rem}}.tabs-md{--tab-height:calc(var(--size-field,.25rem)*10);& :where(.tab){--tab-p:.75rem;--tab-radius-min:calc(.75rem - var(--border));font-size:.875rem}}.tabs-lg{--tab-height:calc(var(--size-field,.25rem)*12);& :where(.tab){--tab-p:1rem;--tab-radius-min:calc(1.5rem - var(--border));font-size:1.125rem}}.tabs-xl{--tab-height:calc(var(--size-field,.25rem)*14);& :where(.tab){--tab-p:1.25rem;--tab-radius-min:calc(2rem - var(--border));font-size:1.125rem}}@media (width>=640px){.sm\:tabs{--tabs-height:auto;--tabs-direction:row;--tab-height:calc(var(--size-field,.25rem)*10);height:var(--tabs-height);flex-wrap:wrap;flex-direction:var(--tabs-direction);display:flex}.sm\:tab{cursor:pointer;appearance:none;text-align:center;-webkit-user-select:none;user-select:none;--tab-p:1rem;--tab-bg:var(--color-base-100);--tab-border-color:var(--color-base-300);--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:0;--tab-radius-ee:0;--tab-order:0;--tab-radius-min:calc(.75rem - var(--border));flex-wrap:wrap;order:var(--tab-order);height:var(--tab-height);border-color:#0000;justify-content:center;align-items:center;padding-inline-start:var(--tab-p);padding-inline-end:var(--tab-p);font-size:.875rem;display:inline-flex;position:relative;&:hover{@media (hover:hover){&{color:var(--color-base-content)}}}&:is(input[type=radio]){min-width:fit-content;&:after{content:attr(aria-label)}}&:is(label){position:relative;& input{cursor:pointer;appearance:none;opacity:0;position:absolute;inset:0}}&:checked,&:is(label:has(:checked)),&:is(.tab-active,[aria-selected=true]){&+.tab-content{height:calc(100% - var(--tab-height) + var(--border));display:block}}&:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true]){color:color-mix(in oklab,var(--color-base-content)50%,transparent)}&:not(input):empty{cursor:default;flex-grow:1}&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible,&:is(label:has(:checked:focus-visible)){outline-offset:-5px;outline:2px solid}&[disabled]{pointer-events:none;opacity:.4}}.sm\:tab-disabled{pointer-events:none;opacity:.4}.sm\:tabs-border{& .tab{--tab-border-color:#0000 #0000 var(--tab-border-color)#0000;border-radius:var(--radius-field);position:relative;&:before{--tw-content:"";content:var(--tw-content);background-color:var(--tab-border-color);border-radius:var(--radius-field);width:80%;height:3px;transition:background-color .2s;position:absolute;bottom:0;left:10%}&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked),&:is(label:has(:checked)){&:before{--tab-border-color:currentColor;border-top:3px solid}}}}.sm\:tabs-lift{--tabs-height:auto;--tabs-direction:row;&>.tab{--tab-border:0 0 var(--border)0;--tab-radius-ss:min(var(--radius-field),var(--tab-radius-min));--tab-radius-se:min(var(--radius-field),var(--tab-radius-min));--tab-radius-es:0;--tab-radius-ee:0;--tab-paddings:var(--border)var(--tab-p)0 var(--tab-p);--tab-border-colors:#0000 #0000 var(--tab-border-color)#0000;--tab-corner-width:calc(100% + min(var(--radius-field),var(--tab-radius-min))*2);--tab-corner-height:min(var(--radius-field),var(--tab-radius-min));--tab-corner-position:top left,top right;border-width:var(--tab-border);padding:var(--tab-paddings);border-color:var(--tab-border-colors);border-start-start-radius:var(--tab-radius-ss);border-start-end-radius:var(--tab-radius-se);border-end-end-radius:var(--tab-radius-ee);border-end-start-radius:var(--tab-radius-es);&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked,label:has(:checked)){--tab-border:var(--border)var(--border)0 var(--border);--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color);--tab-paddings:0 calc(var(--tab-p) - var(--border))var(--border)calc(var(--tab-p) - var(--border));--tab-inset:auto auto 0 auto;--tab-grad:calc(69% - var(--border));--radius-start:radial-gradient(circle at top left,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));--radius-end:radial-gradient(circle at top right,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));background-color:var(--tab-bg);&:before{z-index:1;content:"";width:var(--tab-corner-width);height:var(--tab-corner-height);background-position:var(--tab-corner-position);background-image:var(--radius-start),var(--radius-end);background-size:min(var(--radius-field),var(--tab-radius-min))min(var(--radius-field),var(--tab-radius-min));inset:var(--tab-inset);background-repeat:no-repeat;display:block;position:absolute}&:first-child:before{--radius-start:none}[dir=rtl] &:first-child:before{transform:rotateY(180deg)}&:last-child:before{--radius-end:none}[dir=rtl] &:last-child:before{transform:rotateY(180deg)}}}&:has(.tab-content){&>.tab:first-child{&:not(.tab-active,[aria-selected=true]){--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color)}}}& .tab-content{--tabcontent-margin:calc(-1*var(--border))0 0 0;--tabcontent-radius-ss:0;--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box)}& :checked,& label:has(:checked),& :is(.tab-active,[aria-selected=true]){&+.tab-content{&:first-child,&:nth-child(n+3){--tabcontent-radius-ss:var(--radius-box)}}}}.sm\:tabs-top{--tabs-height:auto;--tabs-direction:row;& .tab{--tab-order:0;--tab-border:0 0 var(--border)0;--tab-radius-ss:min(var(--radius-field),var(--tab-radius-min));--tab-radius-se:min(var(--radius-field),var(--tab-radius-min));--tab-radius-es:0;--tab-radius-ee:0;--tab-paddings:var(--border)var(--tab-p)0 var(--tab-p);--tab-border-colors:#0000 #0000 var(--tab-border-color)#0000;--tab-corner-width:calc(100% + min(var(--radius-field),var(--tab-radius-min))*2);--tab-corner-height:min(var(--radius-field),var(--tab-radius-min));--tab-corner-position:top left,top right;&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked),&:is(label:has(:checked)){--tab-border:var(--border)var(--border)0 var(--border);--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color);--tab-paddings:0 calc(var(--tab-p) - var(--border))var(--border)calc(var(--tab-p) - var(--border));--tab-inset:auto auto 0 auto;--radius-start:radial-gradient(circle at top left,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));--radius-end:radial-gradient(circle at top right,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px))}}&:has(.tab-content){&>.tab:first-child{&:not(.tab-active,[aria-selected=true]){--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color)}}}& .tab-content{--tabcontent-order:1;--tabcontent-margin:calc(-1*var(--border))0 0 0;--tabcontent-radius-ss:0;--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box)}& :checked,& label:has(:checked),& :is(.tab-active,[aria-selected=true]){&+.tab-content{&:first-child,&:nth-child(n+3){--tabcontent-radius-ss:var(--radius-box)}}}}.sm\:tabs-bottom{--tabs-height:auto;--tabs-direction:row;& .tab{--tab-order:1;--tab-border:var(--border)0 0 0;--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:min(var(--radius-field),var(--tab-radius-min));--tab-radius-ee:min(var(--radius-field),var(--tab-radius-min));--tab-border-colors:var(--tab-border-color)#0000 #0000 #0000;--tab-paddings:0 var(--tab-p)var(--border)var(--tab-p);--tab-corner-width:calc(100% + min(var(--radius-field),var(--tab-radius-min))*2);--tab-corner-height:min(var(--radius-field),var(--tab-radius-min));--tab-corner-position:top left,top right;&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked),&:is(label:has(:checked)){--tab-border:0 var(--border)var(--border)var(--border);--tab-border-colors:#0000 var(--tab-border-color)var(--tab-border-color)var(--tab-border-color);--tab-paddings:var(--border)calc(var(--tab-p) - var(--border))0 calc(var(--tab-p) - var(--border));--tab-inset:0 auto auto auto;--radius-start:radial-gradient(circle at bottom left,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));--radius-end:radial-gradient(circle at bottom right,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px))}}&:has(.tab-content){&>.tab:first-child{&:not(.tab-active,[aria-selected=true]){--tab-border-colors:#0000 var(--tab-border-color)var(--tab-border-color)var(--tab-border-color)}}}& .tab-content{--tabcontent-order:0;--tabcontent-margin:0 0 calc(-1*var(--border))0;--tabcontent-radius-ss:var(--radius-box);--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:0;--tabcontent-radius-ee:var(--radius-box)}&>:checked,&>:is(label:has(:checked)),&>:is(.tab-active,[aria-selected=true]){&+.tab-content:not(:nth-child(2)){--tabcontent-radius-es:var(--radius-box)}}}.sm\:tabs-box{background-color:var(--color-base-200);--tabs-box-radius:calc(var(--radius-field) + var(--radius-field) + var(--radius-field));border-radius:calc(var(--radius-field) + min(.25rem,var(--tabs-box-radius)));box-shadow:0 -.5px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 .5px oklch(0% 0 0/calc(var(--depth)*.05))inset;padding:.25rem;& .tab{border-radius:var(--radius-field);border-style:none;&:focus-visible,&:is(label:has(:checked:focus-visible)){outline-offset:2px}}&>:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&>:is(input:checked),&>:is(label:has(:checked)){background-color:var(--tab-bg,var(--color-base-100));box-shadow:0 1px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px 1px -1px color-mix(in oklab,var(--color-neutral)calc(var(--depth)*50%),#0000),0 1px 6px -4px color-mix(in oklab,var(--color-neutral)calc(var(--depth)*100%),#0000);@media (forced-colors:active){&{border:1px solid}}}}.sm\:tab-content{--tabcontent-radius-ss:0;--tabcontent-radius-se:0;--tabcontent-radius-es:0;--tabcontent-radius-ee:0;--tabcontent-order:1;width:100%;margin:var(--tabcontent-margin);order:1;order:var(--tabcontent-order);border-color:#0000;border-width:var(--border);border-start-start-radius:var(--tabcontent-radius-ss);border-start-end-radius:var(--tabcontent-radius-se);border-end-end-radius:var(--tabcontent-radius-ee);border-end-start-radius:var(--tabcontent-radius-es);display:none}.sm\:tabs-xs{--tab-height:calc(var(--size-field,.25rem)*6);& :where(.tab){--tab-p:.375rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.75rem}}.sm\:tabs-sm{--tab-height:calc(var(--size-field,.25rem)*8);& :where(.tab){--tab-p:.5rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.875rem}}.sm\:tabs-md{--tab-height:calc(var(--size-field,.25rem)*10);& :where(.tab){--tab-p:.75rem;--tab-radius-min:calc(.75rem - var(--border));font-size:.875rem}}.sm\:tabs-lg{--tab-height:calc(var(--size-field,.25rem)*12);& :where(.tab){--tab-p:1rem;--tab-radius-min:calc(1.5rem - var(--border));font-size:1.125rem}}.sm\:tabs-xl{--tab-height:calc(var(--size-field,.25rem)*14);& :where(.tab){--tab-p:1.25rem;--tab-radius-min:calc(2rem - var(--border));font-size:1.125rem}}}@media (width>=768px){.md\:tabs{--tabs-height:auto;--tabs-direction:row;--tab-height:calc(var(--size-field,.25rem)*10);height:var(--tabs-height);flex-wrap:wrap;flex-direction:var(--tabs-direction);display:flex}.md\:tab{cursor:pointer;appearance:none;text-align:center;-webkit-user-select:none;user-select:none;--tab-p:1rem;--tab-bg:var(--color-base-100);--tab-border-color:var(--color-base-300);--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:0;--tab-radius-ee:0;--tab-order:0;--tab-radius-min:calc(.75rem - var(--border));flex-wrap:wrap;order:var(--tab-order);height:var(--tab-height);border-color:#0000;justify-content:center;align-items:center;padding-inline-start:var(--tab-p);padding-inline-end:var(--tab-p);font-size:.875rem;display:inline-flex;position:relative;&:hover{@media (hover:hover){&{color:var(--color-base-content)}}}&:is(input[type=radio]){min-width:fit-content;&:after{content:attr(aria-label)}}&:is(label){position:relative;& input{cursor:pointer;appearance:none;opacity:0;position:absolute;inset:0}}&:checked,&:is(label:has(:checked)),&:is(.tab-active,[aria-selected=true]){&+.tab-content{height:calc(100% - var(--tab-height) + var(--border));display:block}}&:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true]){color:color-mix(in oklab,var(--color-base-content)50%,transparent)}&:not(input):empty{cursor:default;flex-grow:1}&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible,&:is(label:has(:checked:focus-visible)){outline-offset:-5px;outline:2px solid}&[disabled]{pointer-events:none;opacity:.4}}.md\:tab-disabled{pointer-events:none;opacity:.4}.md\:tabs-border{& .tab{--tab-border-color:#0000 #0000 var(--tab-border-color)#0000;border-radius:var(--radius-field);position:relative;&:before{--tw-content:"";content:var(--tw-content);background-color:var(--tab-border-color);border-radius:var(--radius-field);width:80%;height:3px;transition:background-color .2s;position:absolute;bottom:0;left:10%}&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked),&:is(label:has(:checked)){&:before{--tab-border-color:currentColor;border-top:3px solid}}}}.md\:tabs-lift{--tabs-height:auto;--tabs-direction:row;&>.tab{--tab-border:0 0 var(--border)0;--tab-radius-ss:min(var(--radius-field),var(--tab-radius-min));--tab-radius-se:min(var(--radius-field),var(--tab-radius-min));--tab-radius-es:0;--tab-radius-ee:0;--tab-paddings:var(--border)var(--tab-p)0 var(--tab-p);--tab-border-colors:#0000 #0000 var(--tab-border-color)#0000;--tab-corner-width:calc(100% + min(var(--radius-field),var(--tab-radius-min))*2);--tab-corner-height:min(var(--radius-field),var(--tab-radius-min));--tab-corner-position:top left,top right;border-width:var(--tab-border);padding:var(--tab-paddings);border-color:var(--tab-border-colors);border-start-start-radius:var(--tab-radius-ss);border-start-end-radius:var(--tab-radius-se);border-end-end-radius:var(--tab-radius-ee);border-end-start-radius:var(--tab-radius-es);&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked,label:has(:checked)){--tab-border:var(--border)var(--border)0 var(--border);--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color);--tab-paddings:0 calc(var(--tab-p) - var(--border))var(--border)calc(var(--tab-p) - var(--border));--tab-inset:auto auto 0 auto;--tab-grad:calc(69% - var(--border));--radius-start:radial-gradient(circle at top left,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));--radius-end:radial-gradient(circle at top right,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));background-color:var(--tab-bg);&:before{z-index:1;content:"";width:var(--tab-corner-width);height:var(--tab-corner-height);background-position:var(--tab-corner-position);background-image:var(--radius-start),var(--radius-end);background-size:min(var(--radius-field),var(--tab-radius-min))min(var(--radius-field),var(--tab-radius-min));inset:var(--tab-inset);background-repeat:no-repeat;display:block;position:absolute}&:first-child:before{--radius-start:none}[dir=rtl] &:first-child:before{transform:rotateY(180deg)}&:last-child:before{--radius-end:none}[dir=rtl] &:last-child:before{transform:rotateY(180deg)}}}&:has(.tab-content){&>.tab:first-child{&:not(.tab-active,[aria-selected=true]){--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color)}}}& .tab-content{--tabcontent-margin:calc(-1*var(--border))0 0 0;--tabcontent-radius-ss:0;--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box)}& :checked,& label:has(:checked),& :is(.tab-active,[aria-selected=true]){&+.tab-content{&:first-child,&:nth-child(n+3){--tabcontent-radius-ss:var(--radius-box)}}}}.md\:tabs-top{--tabs-height:auto;--tabs-direction:row;& .tab{--tab-order:0;--tab-border:0 0 var(--border)0;--tab-radius-ss:min(var(--radius-field),var(--tab-radius-min));--tab-radius-se:min(var(--radius-field),var(--tab-radius-min));--tab-radius-es:0;--tab-radius-ee:0;--tab-paddings:var(--border)var(--tab-p)0 var(--tab-p);--tab-border-colors:#0000 #0000 var(--tab-border-color)#0000;--tab-corner-width:calc(100% + min(var(--radius-field),var(--tab-radius-min))*2);--tab-corner-height:min(var(--radius-field),var(--tab-radius-min));--tab-corner-position:top left,top right;&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked),&:is(label:has(:checked)){--tab-border:var(--border)var(--border)0 var(--border);--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color);--tab-paddings:0 calc(var(--tab-p) - var(--border))var(--border)calc(var(--tab-p) - var(--border));--tab-inset:auto auto 0 auto;--radius-start:radial-gradient(circle at top left,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));--radius-end:radial-gradient(circle at top right,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px))}}&:has(.tab-content){&>.tab:first-child{&:not(.tab-active,[aria-selected=true]){--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color)}}}& .tab-content{--tabcontent-order:1;--tabcontent-margin:calc(-1*var(--border))0 0 0;--tabcontent-radius-ss:0;--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box)}& :checked,& label:has(:checked),& :is(.tab-active,[aria-selected=true]){&+.tab-content{&:first-child,&:nth-child(n+3){--tabcontent-radius-ss:var(--radius-box)}}}}.md\:tabs-bottom{--tabs-height:auto;--tabs-direction:row;& .tab{--tab-order:1;--tab-border:var(--border)0 0 0;--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:min(var(--radius-field),var(--tab-radius-min));--tab-radius-ee:min(var(--radius-field),var(--tab-radius-min));--tab-border-colors:var(--tab-border-color)#0000 #0000 #0000;--tab-paddings:0 var(--tab-p)var(--border)var(--tab-p);--tab-corner-width:calc(100% + min(var(--radius-field),var(--tab-radius-min))*2);--tab-corner-height:min(var(--radius-field),var(--tab-radius-min));--tab-corner-position:top left,top right;&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked),&:is(label:has(:checked)){--tab-border:0 var(--border)var(--border)var(--border);--tab-border-colors:#0000 var(--tab-border-color)var(--tab-border-color)var(--tab-border-color);--tab-paddings:var(--border)calc(var(--tab-p) - var(--border))0 calc(var(--tab-p) - var(--border));--tab-inset:0 auto auto auto;--radius-start:radial-gradient(circle at bottom left,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));--radius-end:radial-gradient(circle at bottom right,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px))}}&:has(.tab-content){&>.tab:first-child{&:not(.tab-active,[aria-selected=true]){--tab-border-colors:#0000 var(--tab-border-color)var(--tab-border-color)var(--tab-border-color)}}}& .tab-content{--tabcontent-order:0;--tabcontent-margin:0 0 calc(-1*var(--border))0;--tabcontent-radius-ss:var(--radius-box);--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:0;--tabcontent-radius-ee:var(--radius-box)}&>:checked,&>:is(label:has(:checked)),&>:is(.tab-active,[aria-selected=true]){&+.tab-content:not(:nth-child(2)){--tabcontent-radius-es:var(--radius-box)}}}.md\:tabs-box{background-color:var(--color-base-200);--tabs-box-radius:calc(var(--radius-field) + var(--radius-field) + var(--radius-field));border-radius:calc(var(--radius-field) + min(.25rem,var(--tabs-box-radius)));box-shadow:0 -.5px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 .5px oklch(0% 0 0/calc(var(--depth)*.05))inset;padding:.25rem;& .tab{border-radius:var(--radius-field);border-style:none;&:focus-visible,&:is(label:has(:checked:focus-visible)){outline-offset:2px}}&>:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&>:is(input:checked),&>:is(label:has(:checked)){background-color:var(--tab-bg,var(--color-base-100));box-shadow:0 1px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px 1px -1px color-mix(in oklab,var(--color-neutral)calc(var(--depth)*50%),#0000),0 1px 6px -4px color-mix(in oklab,var(--color-neutral)calc(var(--depth)*100%),#0000);@media (forced-colors:active){&{border:1px solid}}}}.md\:tab-content{--tabcontent-radius-ss:0;--tabcontent-radius-se:0;--tabcontent-radius-es:0;--tabcontent-radius-ee:0;--tabcontent-order:1;width:100%;margin:var(--tabcontent-margin);order:1;order:var(--tabcontent-order);border-color:#0000;border-width:var(--border);border-start-start-radius:var(--tabcontent-radius-ss);border-start-end-radius:var(--tabcontent-radius-se);border-end-end-radius:var(--tabcontent-radius-ee);border-end-start-radius:var(--tabcontent-radius-es);display:none}.md\:tabs-xs{--tab-height:calc(var(--size-field,.25rem)*6);& :where(.tab){--tab-p:.375rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.75rem}}.md\:tabs-sm{--tab-height:calc(var(--size-field,.25rem)*8);& :where(.tab){--tab-p:.5rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.875rem}}.md\:tabs-md{--tab-height:calc(var(--size-field,.25rem)*10);& :where(.tab){--tab-p:.75rem;--tab-radius-min:calc(.75rem - var(--border));font-size:.875rem}}.md\:tabs-lg{--tab-height:calc(var(--size-field,.25rem)*12);& :where(.tab){--tab-p:1rem;--tab-radius-min:calc(1.5rem - var(--border));font-size:1.125rem}}.md\:tabs-xl{--tab-height:calc(var(--size-field,.25rem)*14);& :where(.tab){--tab-p:1.25rem;--tab-radius-min:calc(2rem - var(--border));font-size:1.125rem}}}@media (width>=1024px){.lg\:tabs{--tabs-height:auto;--tabs-direction:row;--tab-height:calc(var(--size-field,.25rem)*10);height:var(--tabs-height);flex-wrap:wrap;flex-direction:var(--tabs-direction);display:flex}.lg\:tab{cursor:pointer;appearance:none;text-align:center;-webkit-user-select:none;user-select:none;--tab-p:1rem;--tab-bg:var(--color-base-100);--tab-border-color:var(--color-base-300);--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:0;--tab-radius-ee:0;--tab-order:0;--tab-radius-min:calc(.75rem - var(--border));flex-wrap:wrap;order:var(--tab-order);height:var(--tab-height);border-color:#0000;justify-content:center;align-items:center;padding-inline-start:var(--tab-p);padding-inline-end:var(--tab-p);font-size:.875rem;display:inline-flex;position:relative;&:hover{@media (hover:hover){&{color:var(--color-base-content)}}}&:is(input[type=radio]){min-width:fit-content;&:after{content:attr(aria-label)}}&:is(label){position:relative;& input{cursor:pointer;appearance:none;opacity:0;position:absolute;inset:0}}&:checked,&:is(label:has(:checked)),&:is(.tab-active,[aria-selected=true]){&+.tab-content{height:calc(100% - var(--tab-height) + var(--border));display:block}}&:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true]){color:color-mix(in oklab,var(--color-base-content)50%,transparent)}&:not(input):empty{cursor:default;flex-grow:1}&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible,&:is(label:has(:checked:focus-visible)){outline-offset:-5px;outline:2px solid}&[disabled]{pointer-events:none;opacity:.4}}.lg\:tab-disabled{pointer-events:none;opacity:.4}.lg\:tabs-border{& .tab{--tab-border-color:#0000 #0000 var(--tab-border-color)#0000;border-radius:var(--radius-field);position:relative;&:before{--tw-content:"";content:var(--tw-content);background-color:var(--tab-border-color);border-radius:var(--radius-field);width:80%;height:3px;transition:background-color .2s;position:absolute;bottom:0;left:10%}&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked),&:is(label:has(:checked)){&:before{--tab-border-color:currentColor;border-top:3px solid}}}}.lg\:tabs-lift{--tabs-height:auto;--tabs-direction:row;&>.tab{--tab-border:0 0 var(--border)0;--tab-radius-ss:min(var(--radius-field),var(--tab-radius-min));--tab-radius-se:min(var(--radius-field),var(--tab-radius-min));--tab-radius-es:0;--tab-radius-ee:0;--tab-paddings:var(--border)var(--tab-p)0 var(--tab-p);--tab-border-colors:#0000 #0000 var(--tab-border-color)#0000;--tab-corner-width:calc(100% + min(var(--radius-field),var(--tab-radius-min))*2);--tab-corner-height:min(var(--radius-field),var(--tab-radius-min));--tab-corner-position:top left,top right;border-width:var(--tab-border);padding:var(--tab-paddings);border-color:var(--tab-border-colors);border-start-start-radius:var(--tab-radius-ss);border-start-end-radius:var(--tab-radius-se);border-end-end-radius:var(--tab-radius-ee);border-end-start-radius:var(--tab-radius-es);&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked,label:has(:checked)){--tab-border:var(--border)var(--border)0 var(--border);--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color);--tab-paddings:0 calc(var(--tab-p) - var(--border))var(--border)calc(var(--tab-p) - var(--border));--tab-inset:auto auto 0 auto;--tab-grad:calc(69% - var(--border));--radius-start:radial-gradient(circle at top left,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));--radius-end:radial-gradient(circle at top right,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));background-color:var(--tab-bg);&:before{z-index:1;content:"";width:var(--tab-corner-width);height:var(--tab-corner-height);background-position:var(--tab-corner-position);background-image:var(--radius-start),var(--radius-end);background-size:min(var(--radius-field),var(--tab-radius-min))min(var(--radius-field),var(--tab-radius-min));inset:var(--tab-inset);background-repeat:no-repeat;display:block;position:absolute}&:first-child:before{--radius-start:none}[dir=rtl] &:first-child:before{transform:rotateY(180deg)}&:last-child:before{--radius-end:none}[dir=rtl] &:last-child:before{transform:rotateY(180deg)}}}&:has(.tab-content){&>.tab:first-child{&:not(.tab-active,[aria-selected=true]){--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color)}}}& .tab-content{--tabcontent-margin:calc(-1*var(--border))0 0 0;--tabcontent-radius-ss:0;--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box)}& :checked,& label:has(:checked),& :is(.tab-active,[aria-selected=true]){&+.tab-content{&:first-child,&:nth-child(n+3){--tabcontent-radius-ss:var(--radius-box)}}}}.lg\:tabs-top{--tabs-height:auto;--tabs-direction:row;& .tab{--tab-order:0;--tab-border:0 0 var(--border)0;--tab-radius-ss:min(var(--radius-field),var(--tab-radius-min));--tab-radius-se:min(var(--radius-field),var(--tab-radius-min));--tab-radius-es:0;--tab-radius-ee:0;--tab-paddings:var(--border)var(--tab-p)0 var(--tab-p);--tab-border-colors:#0000 #0000 var(--tab-border-color)#0000;--tab-corner-width:calc(100% + min(var(--radius-field),var(--tab-radius-min))*2);--tab-corner-height:min(var(--radius-field),var(--tab-radius-min));--tab-corner-position:top left,top right;&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked),&:is(label:has(:checked)){--tab-border:var(--border)var(--border)0 var(--border);--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color);--tab-paddings:0 calc(var(--tab-p) - var(--border))var(--border)calc(var(--tab-p) - var(--border));--tab-inset:auto auto 0 auto;--radius-start:radial-gradient(circle at top left,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));--radius-end:radial-gradient(circle at top right,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px))}}&:has(.tab-content){&>.tab:first-child{&:not(.tab-active,[aria-selected=true]){--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color)}}}& .tab-content{--tabcontent-order:1;--tabcontent-margin:calc(-1*var(--border))0 0 0;--tabcontent-radius-ss:0;--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box)}& :checked,& label:has(:checked),& :is(.tab-active,[aria-selected=true]){&+.tab-content{&:first-child,&:nth-child(n+3){--tabcontent-radius-ss:var(--radius-box)}}}}.lg\:tabs-bottom{--tabs-height:auto;--tabs-direction:row;& .tab{--tab-order:1;--tab-border:var(--border)0 0 0;--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:min(var(--radius-field),var(--tab-radius-min));--tab-radius-ee:min(var(--radius-field),var(--tab-radius-min));--tab-border-colors:var(--tab-border-color)#0000 #0000 #0000;--tab-paddings:0 var(--tab-p)var(--border)var(--tab-p);--tab-corner-width:calc(100% + min(var(--radius-field),var(--tab-radius-min))*2);--tab-corner-height:min(var(--radius-field),var(--tab-radius-min));--tab-corner-position:top left,top right;&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked),&:is(label:has(:checked)){--tab-border:0 var(--border)var(--border)var(--border);--tab-border-colors:#0000 var(--tab-border-color)var(--tab-border-color)var(--tab-border-color);--tab-paddings:var(--border)calc(var(--tab-p) - var(--border))0 calc(var(--tab-p) - var(--border));--tab-inset:0 auto auto auto;--radius-start:radial-gradient(circle at bottom left,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));--radius-end:radial-gradient(circle at bottom right,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px))}}&:has(.tab-content){&>.tab:first-child{&:not(.tab-active,[aria-selected=true]){--tab-border-colors:#0000 var(--tab-border-color)var(--tab-border-color)var(--tab-border-color)}}}& .tab-content{--tabcontent-order:0;--tabcontent-margin:0 0 calc(-1*var(--border))0;--tabcontent-radius-ss:var(--radius-box);--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:0;--tabcontent-radius-ee:var(--radius-box)}&>:checked,&>:is(label:has(:checked)),&>:is(.tab-active,[aria-selected=true]){&+.tab-content:not(:nth-child(2)){--tabcontent-radius-es:var(--radius-box)}}}.lg\:tabs-box{background-color:var(--color-base-200);--tabs-box-radius:calc(var(--radius-field) + var(--radius-field) + var(--radius-field));border-radius:calc(var(--radius-field) + min(.25rem,var(--tabs-box-radius)));box-shadow:0 -.5px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 .5px oklch(0% 0 0/calc(var(--depth)*.05))inset;padding:.25rem;& .tab{border-radius:var(--radius-field);border-style:none;&:focus-visible,&:is(label:has(:checked:focus-visible)){outline-offset:2px}}&>:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&>:is(input:checked),&>:is(label:has(:checked)){background-color:var(--tab-bg,var(--color-base-100));box-shadow:0 1px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px 1px -1px color-mix(in oklab,var(--color-neutral)calc(var(--depth)*50%),#0000),0 1px 6px -4px color-mix(in oklab,var(--color-neutral)calc(var(--depth)*100%),#0000);@media (forced-colors:active){&{border:1px solid}}}}.lg\:tab-content{--tabcontent-radius-ss:0;--tabcontent-radius-se:0;--tabcontent-radius-es:0;--tabcontent-radius-ee:0;--tabcontent-order:1;width:100%;margin:var(--tabcontent-margin);order:1;order:var(--tabcontent-order);border-color:#0000;border-width:var(--border);border-start-start-radius:var(--tabcontent-radius-ss);border-start-end-radius:var(--tabcontent-radius-se);border-end-end-radius:var(--tabcontent-radius-ee);border-end-start-radius:var(--tabcontent-radius-es);display:none}.lg\:tabs-xs{--tab-height:calc(var(--size-field,.25rem)*6);& :where(.tab){--tab-p:.375rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.75rem}}.lg\:tabs-sm{--tab-height:calc(var(--size-field,.25rem)*8);& :where(.tab){--tab-p:.5rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.875rem}}.lg\:tabs-md{--tab-height:calc(var(--size-field,.25rem)*10);& :where(.tab){--tab-p:.75rem;--tab-radius-min:calc(.75rem - var(--border));font-size:.875rem}}.lg\:tabs-lg{--tab-height:calc(var(--size-field,.25rem)*12);& :where(.tab){--tab-p:1rem;--tab-radius-min:calc(1.5rem - var(--border));font-size:1.125rem}}.lg\:tabs-xl{--tab-height:calc(var(--size-field,.25rem)*14);& :where(.tab){--tab-p:1.25rem;--tab-radius-min:calc(2rem - var(--border));font-size:1.125rem}}}@media (width>=1280px){.xl\:tabs{--tabs-height:auto;--tabs-direction:row;--tab-height:calc(var(--size-field,.25rem)*10);height:var(--tabs-height);flex-wrap:wrap;flex-direction:var(--tabs-direction);display:flex}.xl\:tab{cursor:pointer;appearance:none;text-align:center;-webkit-user-select:none;user-select:none;--tab-p:1rem;--tab-bg:var(--color-base-100);--tab-border-color:var(--color-base-300);--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:0;--tab-radius-ee:0;--tab-order:0;--tab-radius-min:calc(.75rem - var(--border));flex-wrap:wrap;order:var(--tab-order);height:var(--tab-height);border-color:#0000;justify-content:center;align-items:center;padding-inline-start:var(--tab-p);padding-inline-end:var(--tab-p);font-size:.875rem;display:inline-flex;position:relative;&:hover{@media (hover:hover){&{color:var(--color-base-content)}}}&:is(input[type=radio]){min-width:fit-content;&:after{content:attr(aria-label)}}&:is(label){position:relative;& input{cursor:pointer;appearance:none;opacity:0;position:absolute;inset:0}}&:checked,&:is(label:has(:checked)),&:is(.tab-active,[aria-selected=true]){&+.tab-content{height:calc(100% - var(--tab-height) + var(--border));display:block}}&:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true]){color:color-mix(in oklab,var(--color-base-content)50%,transparent)}&:not(input):empty{cursor:default;flex-grow:1}&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible,&:is(label:has(:checked:focus-visible)){outline-offset:-5px;outline:2px solid}&[disabled]{pointer-events:none;opacity:.4}}.xl\:tab-disabled{pointer-events:none;opacity:.4}.xl\:tabs-border{& .tab{--tab-border-color:#0000 #0000 var(--tab-border-color)#0000;border-radius:var(--radius-field);position:relative;&:before{--tw-content:"";content:var(--tw-content);background-color:var(--tab-border-color);border-radius:var(--radius-field);width:80%;height:3px;transition:background-color .2s;position:absolute;bottom:0;left:10%}&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked),&:is(label:has(:checked)){&:before{--tab-border-color:currentColor;border-top:3px solid}}}}.xl\:tabs-lift{--tabs-height:auto;--tabs-direction:row;&>.tab{--tab-border:0 0 var(--border)0;--tab-radius-ss:min(var(--radius-field),var(--tab-radius-min));--tab-radius-se:min(var(--radius-field),var(--tab-radius-min));--tab-radius-es:0;--tab-radius-ee:0;--tab-paddings:var(--border)var(--tab-p)0 var(--tab-p);--tab-border-colors:#0000 #0000 var(--tab-border-color)#0000;--tab-corner-width:calc(100% + min(var(--radius-field),var(--tab-radius-min))*2);--tab-corner-height:min(var(--radius-field),var(--tab-radius-min));--tab-corner-position:top left,top right;border-width:var(--tab-border);padding:var(--tab-paddings);border-color:var(--tab-border-colors);border-start-start-radius:var(--tab-radius-ss);border-start-end-radius:var(--tab-radius-se);border-end-end-radius:var(--tab-radius-ee);border-end-start-radius:var(--tab-radius-es);&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked,label:has(:checked)){--tab-border:var(--border)var(--border)0 var(--border);--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color);--tab-paddings:0 calc(var(--tab-p) - var(--border))var(--border)calc(var(--tab-p) - var(--border));--tab-inset:auto auto 0 auto;--tab-grad:calc(69% - var(--border));--radius-start:radial-gradient(circle at top left,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));--radius-end:radial-gradient(circle at top right,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));background-color:var(--tab-bg);&:before{z-index:1;content:"";width:var(--tab-corner-width);height:var(--tab-corner-height);background-position:var(--tab-corner-position);background-image:var(--radius-start),var(--radius-end);background-size:min(var(--radius-field),var(--tab-radius-min))min(var(--radius-field),var(--tab-radius-min));inset:var(--tab-inset);background-repeat:no-repeat;display:block;position:absolute}&:first-child:before{--radius-start:none}[dir=rtl] &:first-child:before{transform:rotateY(180deg)}&:last-child:before{--radius-end:none}[dir=rtl] &:last-child:before{transform:rotateY(180deg)}}}&:has(.tab-content){&>.tab:first-child{&:not(.tab-active,[aria-selected=true]){--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color)}}}& .tab-content{--tabcontent-margin:calc(-1*var(--border))0 0 0;--tabcontent-radius-ss:0;--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box)}& :checked,& label:has(:checked),& :is(.tab-active,[aria-selected=true]){&+.tab-content{&:first-child,&:nth-child(n+3){--tabcontent-radius-ss:var(--radius-box)}}}}.xl\:tabs-top{--tabs-height:auto;--tabs-direction:row;& .tab{--tab-order:0;--tab-border:0 0 var(--border)0;--tab-radius-ss:min(var(--radius-field),var(--tab-radius-min));--tab-radius-se:min(var(--radius-field),var(--tab-radius-min));--tab-radius-es:0;--tab-radius-ee:0;--tab-paddings:var(--border)var(--tab-p)0 var(--tab-p);--tab-border-colors:#0000 #0000 var(--tab-border-color)#0000;--tab-corner-width:calc(100% + min(var(--radius-field),var(--tab-radius-min))*2);--tab-corner-height:min(var(--radius-field),var(--tab-radius-min));--tab-corner-position:top left,top right;&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked),&:is(label:has(:checked)){--tab-border:var(--border)var(--border)0 var(--border);--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color);--tab-paddings:0 calc(var(--tab-p) - var(--border))var(--border)calc(var(--tab-p) - var(--border));--tab-inset:auto auto 0 auto;--radius-start:radial-gradient(circle at top left,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));--radius-end:radial-gradient(circle at top right,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px))}}&:has(.tab-content){&>.tab:first-child{&:not(.tab-active,[aria-selected=true]){--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color)}}}& .tab-content{--tabcontent-order:1;--tabcontent-margin:calc(-1*var(--border))0 0 0;--tabcontent-radius-ss:0;--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box)}& :checked,& label:has(:checked),& :is(.tab-active,[aria-selected=true]){&+.tab-content{&:first-child,&:nth-child(n+3){--tabcontent-radius-ss:var(--radius-box)}}}}.xl\:tabs-bottom{--tabs-height:auto;--tabs-direction:row;& .tab{--tab-order:1;--tab-border:var(--border)0 0 0;--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:min(var(--radius-field),var(--tab-radius-min));--tab-radius-ee:min(var(--radius-field),var(--tab-radius-min));--tab-border-colors:var(--tab-border-color)#0000 #0000 #0000;--tab-paddings:0 var(--tab-p)var(--border)var(--tab-p);--tab-corner-width:calc(100% + min(var(--radius-field),var(--tab-radius-min))*2);--tab-corner-height:min(var(--radius-field),var(--tab-radius-min));--tab-corner-position:top left,top right;&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked),&:is(label:has(:checked)){--tab-border:0 var(--border)var(--border)var(--border);--tab-border-colors:#0000 var(--tab-border-color)var(--tab-border-color)var(--tab-border-color);--tab-paddings:var(--border)calc(var(--tab-p) - var(--border))0 calc(var(--tab-p) - var(--border));--tab-inset:0 auto auto auto;--radius-start:radial-gradient(circle at bottom left,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));--radius-end:radial-gradient(circle at bottom right,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px))}}&:has(.tab-content){&>.tab:first-child{&:not(.tab-active,[aria-selected=true]){--tab-border-colors:#0000 var(--tab-border-color)var(--tab-border-color)var(--tab-border-color)}}}& .tab-content{--tabcontent-order:0;--tabcontent-margin:0 0 calc(-1*var(--border))0;--tabcontent-radius-ss:var(--radius-box);--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:0;--tabcontent-radius-ee:var(--radius-box)}&>:checked,&>:is(label:has(:checked)),&>:is(.tab-active,[aria-selected=true]){&+.tab-content:not(:nth-child(2)){--tabcontent-radius-es:var(--radius-box)}}}.xl\:tabs-box{background-color:var(--color-base-200);--tabs-box-radius:calc(var(--radius-field) + var(--radius-field) + var(--radius-field));border-radius:calc(var(--radius-field) + min(.25rem,var(--tabs-box-radius)));box-shadow:0 -.5px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 .5px oklch(0% 0 0/calc(var(--depth)*.05))inset;padding:.25rem;& .tab{border-radius:var(--radius-field);border-style:none;&:focus-visible,&:is(label:has(:checked:focus-visible)){outline-offset:2px}}&>:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&>:is(input:checked),&>:is(label:has(:checked)){background-color:var(--tab-bg,var(--color-base-100));box-shadow:0 1px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px 1px -1px color-mix(in oklab,var(--color-neutral)calc(var(--depth)*50%),#0000),0 1px 6px -4px color-mix(in oklab,var(--color-neutral)calc(var(--depth)*100%),#0000);@media (forced-colors:active){&{border:1px solid}}}}.xl\:tab-content{--tabcontent-radius-ss:0;--tabcontent-radius-se:0;--tabcontent-radius-es:0;--tabcontent-radius-ee:0;--tabcontent-order:1;width:100%;margin:var(--tabcontent-margin);order:1;order:var(--tabcontent-order);border-color:#0000;border-width:var(--border);border-start-start-radius:var(--tabcontent-radius-ss);border-start-end-radius:var(--tabcontent-radius-se);border-end-end-radius:var(--tabcontent-radius-ee);border-end-start-radius:var(--tabcontent-radius-es);display:none}.xl\:tabs-xs{--tab-height:calc(var(--size-field,.25rem)*6);& :where(.tab){--tab-p:.375rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.75rem}}.xl\:tabs-sm{--tab-height:calc(var(--size-field,.25rem)*8);& :where(.tab){--tab-p:.5rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.875rem}}.xl\:tabs-md{--tab-height:calc(var(--size-field,.25rem)*10);& :where(.tab){--tab-p:.75rem;--tab-radius-min:calc(.75rem - var(--border));font-size:.875rem}}.xl\:tabs-lg{--tab-height:calc(var(--size-field,.25rem)*12);& :where(.tab){--tab-p:1rem;--tab-radius-min:calc(1.5rem - var(--border));font-size:1.125rem}}.xl\:tabs-xl{--tab-height:calc(var(--size-field,.25rem)*14);& :where(.tab){--tab-p:1.25rem;--tab-radius-min:calc(2rem - var(--border));font-size:1.125rem}}}@media (width>=1536px){.\32 xl\:tabs{--tabs-height:auto;--tabs-direction:row;--tab-height:calc(var(--size-field,.25rem)*10);height:var(--tabs-height);flex-wrap:wrap;flex-direction:var(--tabs-direction);display:flex}.\32 xl\:tab{cursor:pointer;appearance:none;text-align:center;-webkit-user-select:none;user-select:none;--tab-p:1rem;--tab-bg:var(--color-base-100);--tab-border-color:var(--color-base-300);--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:0;--tab-radius-ee:0;--tab-order:0;--tab-radius-min:calc(.75rem - var(--border));flex-wrap:wrap;order:var(--tab-order);height:var(--tab-height);border-color:#0000;justify-content:center;align-items:center;padding-inline-start:var(--tab-p);padding-inline-end:var(--tab-p);font-size:.875rem;display:inline-flex;position:relative;&:hover{@media (hover:hover){&{color:var(--color-base-content)}}}&:is(input[type=radio]){min-width:fit-content;&:after{content:attr(aria-label)}}&:is(label){position:relative;& input{cursor:pointer;appearance:none;opacity:0;position:absolute;inset:0}}&:checked,&:is(label:has(:checked)),&:is(.tab-active,[aria-selected=true]){&+.tab-content{height:calc(100% - var(--tab-height) + var(--border));display:block}}&:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true]){color:color-mix(in oklab,var(--color-base-content)50%,transparent)}&:not(input):empty{cursor:default;flex-grow:1}&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible,&:is(label:has(:checked:focus-visible)){outline-offset:-5px;outline:2px solid}&[disabled]{pointer-events:none;opacity:.4}}.\32 xl\:tab-disabled{pointer-events:none;opacity:.4}.\32 xl\:tabs-border{& .tab{--tab-border-color:#0000 #0000 var(--tab-border-color)#0000;border-radius:var(--radius-field);position:relative;&:before{--tw-content:"";content:var(--tw-content);background-color:var(--tab-border-color);border-radius:var(--radius-field);width:80%;height:3px;transition:background-color .2s;position:absolute;bottom:0;left:10%}&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked),&:is(label:has(:checked)){&:before{--tab-border-color:currentColor;border-top:3px solid}}}}.\32 xl\:tabs-lift{--tabs-height:auto;--tabs-direction:row;&>.tab{--tab-border:0 0 var(--border)0;--tab-radius-ss:min(var(--radius-field),var(--tab-radius-min));--tab-radius-se:min(var(--radius-field),var(--tab-radius-min));--tab-radius-es:0;--tab-radius-ee:0;--tab-paddings:var(--border)var(--tab-p)0 var(--tab-p);--tab-border-colors:#0000 #0000 var(--tab-border-color)#0000;--tab-corner-width:calc(100% + min(var(--radius-field),var(--tab-radius-min))*2);--tab-corner-height:min(var(--radius-field),var(--tab-radius-min));--tab-corner-position:top left,top right;border-width:var(--tab-border);padding:var(--tab-paddings);border-color:var(--tab-border-colors);border-start-start-radius:var(--tab-radius-ss);border-start-end-radius:var(--tab-radius-se);border-end-end-radius:var(--tab-radius-ee);border-end-start-radius:var(--tab-radius-es);&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked,label:has(:checked)){--tab-border:var(--border)var(--border)0 var(--border);--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color);--tab-paddings:0 calc(var(--tab-p) - var(--border))var(--border)calc(var(--tab-p) - var(--border));--tab-inset:auto auto 0 auto;--tab-grad:calc(69% - var(--border));--radius-start:radial-gradient(circle at top left,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));--radius-end:radial-gradient(circle at top right,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));background-color:var(--tab-bg);&:before{z-index:1;content:"";width:var(--tab-corner-width);height:var(--tab-corner-height);background-position:var(--tab-corner-position);background-image:var(--radius-start),var(--radius-end);background-size:min(var(--radius-field),var(--tab-radius-min))min(var(--radius-field),var(--tab-radius-min));inset:var(--tab-inset);background-repeat:no-repeat;display:block;position:absolute}&:first-child:before{--radius-start:none}[dir=rtl] &:first-child:before{transform:rotateY(180deg)}&:last-child:before{--radius-end:none}[dir=rtl] &:last-child:before{transform:rotateY(180deg)}}}&:has(.tab-content){&>.tab:first-child{&:not(.tab-active,[aria-selected=true]){--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color)}}}& .tab-content{--tabcontent-margin:calc(-1*var(--border))0 0 0;--tabcontent-radius-ss:0;--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box)}& :checked,& label:has(:checked),& :is(.tab-active,[aria-selected=true]){&+.tab-content{&:first-child,&:nth-child(n+3){--tabcontent-radius-ss:var(--radius-box)}}}}.\32 xl\:tabs-top{--tabs-height:auto;--tabs-direction:row;& .tab{--tab-order:0;--tab-border:0 0 var(--border)0;--tab-radius-ss:min(var(--radius-field),var(--tab-radius-min));--tab-radius-se:min(var(--radius-field),var(--tab-radius-min));--tab-radius-es:0;--tab-radius-ee:0;--tab-paddings:var(--border)var(--tab-p)0 var(--tab-p);--tab-border-colors:#0000 #0000 var(--tab-border-color)#0000;--tab-corner-width:calc(100% + min(var(--radius-field),var(--tab-radius-min))*2);--tab-corner-height:min(var(--radius-field),var(--tab-radius-min));--tab-corner-position:top left,top right;&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked),&:is(label:has(:checked)){--tab-border:var(--border)var(--border)0 var(--border);--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color);--tab-paddings:0 calc(var(--tab-p) - var(--border))var(--border)calc(var(--tab-p) - var(--border));--tab-inset:auto auto 0 auto;--radius-start:radial-gradient(circle at top left,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));--radius-end:radial-gradient(circle at top right,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px))}}&:has(.tab-content){&>.tab:first-child{&:not(.tab-active,[aria-selected=true]){--tab-border-colors:var(--tab-border-color)var(--tab-border-color)#0000 var(--tab-border-color)}}}& .tab-content{--tabcontent-order:1;--tabcontent-margin:calc(-1*var(--border))0 0 0;--tabcontent-radius-ss:0;--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box)}& :checked,& label:has(:checked),& :is(.tab-active,[aria-selected=true]){&+.tab-content{&:first-child,&:nth-child(n+3){--tabcontent-radius-ss:var(--radius-box)}}}}.\32 xl\:tabs-bottom{--tabs-height:auto;--tabs-direction:row;& .tab{--tab-order:1;--tab-border:var(--border)0 0 0;--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:min(var(--radius-field),var(--tab-radius-min));--tab-radius-ee:min(var(--radius-field),var(--tab-radius-min));--tab-border-colors:var(--tab-border-color)#0000 #0000 #0000;--tab-paddings:0 var(--tab-p)var(--border)var(--tab-p);--tab-corner-width:calc(100% + min(var(--radius-field),var(--tab-radius-min))*2);--tab-corner-height:min(var(--radius-field),var(--tab-radius-min));--tab-corner-position:top left,top right;&:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&:is(input:checked),&:is(label:has(:checked)){--tab-border:0 var(--border)var(--border)var(--border);--tab-border-colors:#0000 var(--tab-border-color)var(--tab-border-color)var(--tab-border-color);--tab-paddings:var(--border)calc(var(--tab-p) - var(--border))0 calc(var(--tab-p) - var(--border));--tab-inset:0 auto auto auto;--radius-start:radial-gradient(circle at bottom left,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px));--radius-end:radial-gradient(circle at bottom right,#0000 var(--tab-grad),var(--tab-border-color)calc(var(--tab-grad) + .25px),var(--tab-border-color)calc(var(--tab-grad) + var(--border)),var(--tab-bg)calc(var(--tab-grad) + var(--border) + .25px))}}&:has(.tab-content){&>.tab:first-child{&:not(.tab-active,[aria-selected=true]){--tab-border-colors:#0000 var(--tab-border-color)var(--tab-border-color)var(--tab-border-color)}}}& .tab-content{--tabcontent-order:0;--tabcontent-margin:0 0 calc(-1*var(--border))0;--tabcontent-radius-ss:var(--radius-box);--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:0;--tabcontent-radius-ee:var(--radius-box)}&>:checked,&>:is(label:has(:checked)),&>:is(.tab-active,[aria-selected=true]){&+.tab-content:not(:nth-child(2)){--tabcontent-radius-es:var(--radius-box)}}}.\32 xl\:tabs-box{background-color:var(--color-base-200);--tabs-box-radius:calc(var(--radius-field) + var(--radius-field) + var(--radius-field));border-radius:calc(var(--radius-field) + min(.25rem,var(--tabs-box-radius)));box-shadow:0 -.5px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 .5px oklch(0% 0 0/calc(var(--depth)*.05))inset;padding:.25rem;& .tab{border-radius:var(--radius-field);border-style:none;&:focus-visible,&:is(label:has(:checked:focus-visible)){outline-offset:2px}}&>:is(.tab-active,[aria-selected=true]):not(.tab-disabled,[disabled]),&>:is(input:checked),&>:is(label:has(:checked)){background-color:var(--tab-bg,var(--color-base-100));box-shadow:0 1px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px 1px -1px color-mix(in oklab,var(--color-neutral)calc(var(--depth)*50%),#0000),0 1px 6px -4px color-mix(in oklab,var(--color-neutral)calc(var(--depth)*100%),#0000);@media (forced-colors:active){&{border:1px solid}}}}.\32 xl\:tab-content{--tabcontent-radius-ss:0;--tabcontent-radius-se:0;--tabcontent-radius-es:0;--tabcontent-radius-ee:0;--tabcontent-order:1;width:100%;margin:var(--tabcontent-margin);order:1;order:var(--tabcontent-order);border-color:#0000;border-width:var(--border);border-start-start-radius:var(--tabcontent-radius-ss);border-start-end-radius:var(--tabcontent-radius-se);border-end-end-radius:var(--tabcontent-radius-ee);border-end-start-radius:var(--tabcontent-radius-es);display:none}.\32 xl\:tabs-xs{--tab-height:calc(var(--size-field,.25rem)*6);& :where(.tab){--tab-p:.375rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.75rem}}.\32 xl\:tabs-sm{--tab-height:calc(var(--size-field,.25rem)*8);& :where(.tab){--tab-p:.5rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.875rem}}.\32 xl\:tabs-md{--tab-height:calc(var(--size-field,.25rem)*10);& :where(.tab){--tab-p:.75rem;--tab-radius-min:calc(.75rem - var(--border));font-size:.875rem}}.\32 xl\:tabs-lg{--tab-height:calc(var(--size-field,.25rem)*12);& :where(.tab){--tab-p:1rem;--tab-radius-min:calc(1.5rem - var(--border));font-size:1.125rem}}.\32 xl\:tabs-xl{--tab-height:calc(var(--size-field,.25rem)*14);& :where(.tab){--tab-p:1.25rem;--tab-radius-min:calc(2rem - var(--border));font-size:1.125rem}}}.steps{counter-reset:step;grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid;overflow:auto hidden;& .step{text-align:center;--step-bg:var(--color-base-300);--step-fg:var(--color-base-content);grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid;&:before{width:100%;height:.5rem;color:var(--step-bg);background-color:var(--step-bg);--tw-content:"";content:var(--tw-content);border:1px solid;grid-row-start:1;grid-column-start:1;margin-inline-start:-100%;top:0}&>.step-icon,&:not(:has(.step-icon)):after{content:counter(step);counter-increment:step;z-index:1;color:var(--step-fg);background-color:var(--step-bg);border:1px solid var(--step-bg);border-radius:3.40282e38px;grid-row-start:1;grid-column-start:1;place-self:center;place-items:center;width:2rem;height:2rem;display:grid;position:relative}&:first-child:before{content:none}&[data-content]:after{content:attr(data-content)}}& .step-neutral{&+.step-neutral:before,&:after,&>.step-icon{--step-bg:var(--color-neutral);--step-fg:var(--color-neutral-content)}}& .step-primary{&+.step-primary:before,&:after,&>.step-icon{--step-bg:var(--color-primary);--step-fg:var(--color-primary-content)}}& .step-secondary{&+.step-secondary:before,&:after,&>.step-icon{--step-bg:var(--color-secondary);--step-fg:var(--color-secondary-content)}}& .step-accent{&+.step-accent:before,&:after,&>.step-icon{--step-bg:var(--color-accent);--step-fg:var(--color-accent-content)}}& .step-info{&+.step-info:before,&:after,&>.step-icon{--step-bg:var(--color-info);--step-fg:var(--color-info-content)}}& .step-success{&+.step-success:before,&:after,&>.step-icon{--step-bg:var(--color-success);--step-fg:var(--color-success-content)}}& .step-warning{&+.step-warning:before,&:after,&>.step-icon{--step-bg:var(--color-warning);--step-fg:var(--color-warning-content)}}& .step-error{&+.step-error:before,&:after,&>.step-icon{--step-bg:var(--color-error);--step-fg:var(--color-error-content)}}}.steps-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid;overflow:auto hidden;& .step{text-align:center;grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid;&:before{content:"";width:100%;height:.5rem;margin-inline-start:-100%;translate:0}[dir=rtl] &:before{translate:0}}}.steps-vertical{grid-auto-rows:1fr;grid-auto-flow:row;& .step{grid-template-rows:auto;grid-template-columns:40px 1fr;justify-items:start;gap:.5rem;min-height:4rem;display:grid;&:before{width:.5rem;height:100%;margin-inline-start:50%;translate:-50% -50%}[dir=rtl] &:before{translate:50% -50%}}}@media (width>=640px){.sm\:steps{counter-reset:step;grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid;overflow:auto hidden;& .step{text-align:center;--step-bg:var(--color-base-300);--step-fg:var(--color-base-content);grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid;&:before{width:100%;height:.5rem;color:var(--step-bg);background-color:var(--step-bg);--tw-content:"";content:var(--tw-content);border:1px solid;grid-row-start:1;grid-column-start:1;margin-inline-start:-100%;top:0}&>.step-icon,&:not(:has(.step-icon)):after{content:counter(step);counter-increment:step;z-index:1;color:var(--step-fg);background-color:var(--step-bg);border:1px solid var(--step-bg);border-radius:3.40282e38px;grid-row-start:1;grid-column-start:1;place-self:center;place-items:center;width:2rem;height:2rem;display:grid;position:relative}&:first-child:before{content:none}&[data-content]:after{content:attr(data-content)}}& .step-neutral{&+.step-neutral:before,&:after,&>.step-icon{--step-bg:var(--color-neutral);--step-fg:var(--color-neutral-content)}}& .step-primary{&+.step-primary:before,&:after,&>.step-icon{--step-bg:var(--color-primary);--step-fg:var(--color-primary-content)}}& .step-secondary{&+.step-secondary:before,&:after,&>.step-icon{--step-bg:var(--color-secondary);--step-fg:var(--color-secondary-content)}}& .step-accent{&+.step-accent:before,&:after,&>.step-icon{--step-bg:var(--color-accent);--step-fg:var(--color-accent-content)}}& .step-info{&+.step-info:before,&:after,&>.step-icon{--step-bg:var(--color-info);--step-fg:var(--color-info-content)}}& .step-success{&+.step-success:before,&:after,&>.step-icon{--step-bg:var(--color-success);--step-fg:var(--color-success-content)}}& .step-warning{&+.step-warning:before,&:after,&>.step-icon{--step-bg:var(--color-warning);--step-fg:var(--color-warning-content)}}& .step-error{&+.step-error:before,&:after,&>.step-icon{--step-bg:var(--color-error);--step-fg:var(--color-error-content)}}}.sm\:steps-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid;overflow:auto hidden;& .step{text-align:center;grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid;&:before{content:"";width:100%;height:.5rem;margin-inline-start:-100%;translate:0}[dir=rtl] &:before{translate:0}}}.sm\:steps-vertical{grid-auto-rows:1fr;grid-auto-flow:row;& .step{grid-template-rows:auto;grid-template-columns:40px 1fr;justify-items:start;gap:.5rem;min-height:4rem;display:grid;&:before{width:.5rem;height:100%;margin-inline-start:50%;translate:-50% -50%}[dir=rtl] &:before{translate:50% -50%}}}}@media (width>=768px){.md\:steps{counter-reset:step;grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid;overflow:auto hidden;& .step{text-align:center;--step-bg:var(--color-base-300);--step-fg:var(--color-base-content);grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid;&:before{width:100%;height:.5rem;color:var(--step-bg);background-color:var(--step-bg);--tw-content:"";content:var(--tw-content);border:1px solid;grid-row-start:1;grid-column-start:1;margin-inline-start:-100%;top:0}&>.step-icon,&:not(:has(.step-icon)):after{content:counter(step);counter-increment:step;z-index:1;color:var(--step-fg);background-color:var(--step-bg);border:1px solid var(--step-bg);border-radius:3.40282e38px;grid-row-start:1;grid-column-start:1;place-self:center;place-items:center;width:2rem;height:2rem;display:grid;position:relative}&:first-child:before{content:none}&[data-content]:after{content:attr(data-content)}}& .step-neutral{&+.step-neutral:before,&:after,&>.step-icon{--step-bg:var(--color-neutral);--step-fg:var(--color-neutral-content)}}& .step-primary{&+.step-primary:before,&:after,&>.step-icon{--step-bg:var(--color-primary);--step-fg:var(--color-primary-content)}}& .step-secondary{&+.step-secondary:before,&:after,&>.step-icon{--step-bg:var(--color-secondary);--step-fg:var(--color-secondary-content)}}& .step-accent{&+.step-accent:before,&:after,&>.step-icon{--step-bg:var(--color-accent);--step-fg:var(--color-accent-content)}}& .step-info{&+.step-info:before,&:after,&>.step-icon{--step-bg:var(--color-info);--step-fg:var(--color-info-content)}}& .step-success{&+.step-success:before,&:after,&>.step-icon{--step-bg:var(--color-success);--step-fg:var(--color-success-content)}}& .step-warning{&+.step-warning:before,&:after,&>.step-icon{--step-bg:var(--color-warning);--step-fg:var(--color-warning-content)}}& .step-error{&+.step-error:before,&:after,&>.step-icon{--step-bg:var(--color-error);--step-fg:var(--color-error-content)}}}.md\:steps-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid;overflow:auto hidden;& .step{text-align:center;grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid;&:before{content:"";width:100%;height:.5rem;margin-inline-start:-100%;translate:0}[dir=rtl] &:before{translate:0}}}.md\:steps-vertical{grid-auto-rows:1fr;grid-auto-flow:row;& .step{grid-template-rows:auto;grid-template-columns:40px 1fr;justify-items:start;gap:.5rem;min-height:4rem;display:grid;&:before{width:.5rem;height:100%;margin-inline-start:50%;translate:-50% -50%}[dir=rtl] &:before{translate:50% -50%}}}}@media (width>=1024px){.lg\:steps{counter-reset:step;grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid;overflow:auto hidden;& .step{text-align:center;--step-bg:var(--color-base-300);--step-fg:var(--color-base-content);grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid;&:before{width:100%;height:.5rem;color:var(--step-bg);background-color:var(--step-bg);--tw-content:"";content:var(--tw-content);border:1px solid;grid-row-start:1;grid-column-start:1;margin-inline-start:-100%;top:0}&>.step-icon,&:not(:has(.step-icon)):after{content:counter(step);counter-increment:step;z-index:1;color:var(--step-fg);background-color:var(--step-bg);border:1px solid var(--step-bg);border-radius:3.40282e38px;grid-row-start:1;grid-column-start:1;place-self:center;place-items:center;width:2rem;height:2rem;display:grid;position:relative}&:first-child:before{content:none}&[data-content]:after{content:attr(data-content)}}& .step-neutral{&+.step-neutral:before,&:after,&>.step-icon{--step-bg:var(--color-neutral);--step-fg:var(--color-neutral-content)}}& .step-primary{&+.step-primary:before,&:after,&>.step-icon{--step-bg:var(--color-primary);--step-fg:var(--color-primary-content)}}& .step-secondary{&+.step-secondary:before,&:after,&>.step-icon{--step-bg:var(--color-secondary);--step-fg:var(--color-secondary-content)}}& .step-accent{&+.step-accent:before,&:after,&>.step-icon{--step-bg:var(--color-accent);--step-fg:var(--color-accent-content)}}& .step-info{&+.step-info:before,&:after,&>.step-icon{--step-bg:var(--color-info);--step-fg:var(--color-info-content)}}& .step-success{&+.step-success:before,&:after,&>.step-icon{--step-bg:var(--color-success);--step-fg:var(--color-success-content)}}& .step-warning{&+.step-warning:before,&:after,&>.step-icon{--step-bg:var(--color-warning);--step-fg:var(--color-warning-content)}}& .step-error{&+.step-error:before,&:after,&>.step-icon{--step-bg:var(--color-error);--step-fg:var(--color-error-content)}}}.lg\:steps-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid;overflow:auto hidden;& .step{text-align:center;grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid;&:before{content:"";width:100%;height:.5rem;margin-inline-start:-100%;translate:0}[dir=rtl] &:before{translate:0}}}.lg\:steps-vertical{grid-auto-rows:1fr;grid-auto-flow:row;& .step{grid-template-rows:auto;grid-template-columns:40px 1fr;justify-items:start;gap:.5rem;min-height:4rem;display:grid;&:before{width:.5rem;height:100%;margin-inline-start:50%;translate:-50% -50%}[dir=rtl] &:before{translate:50% -50%}}}}@media (width>=1280px){.xl\:steps{counter-reset:step;grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid;overflow:auto hidden;& .step{text-align:center;--step-bg:var(--color-base-300);--step-fg:var(--color-base-content);grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid;&:before{width:100%;height:.5rem;color:var(--step-bg);background-color:var(--step-bg);--tw-content:"";content:var(--tw-content);border:1px solid;grid-row-start:1;grid-column-start:1;margin-inline-start:-100%;top:0}&>.step-icon,&:not(:has(.step-icon)):after{content:counter(step);counter-increment:step;z-index:1;color:var(--step-fg);background-color:var(--step-bg);border:1px solid var(--step-bg);border-radius:3.40282e38px;grid-row-start:1;grid-column-start:1;place-self:center;place-items:center;width:2rem;height:2rem;display:grid;position:relative}&:first-child:before{content:none}&[data-content]:after{content:attr(data-content)}}& .step-neutral{&+.step-neutral:before,&:after,&>.step-icon{--step-bg:var(--color-neutral);--step-fg:var(--color-neutral-content)}}& .step-primary{&+.step-primary:before,&:after,&>.step-icon{--step-bg:var(--color-primary);--step-fg:var(--color-primary-content)}}& .step-secondary{&+.step-secondary:before,&:after,&>.step-icon{--step-bg:var(--color-secondary);--step-fg:var(--color-secondary-content)}}& .step-accent{&+.step-accent:before,&:after,&>.step-icon{--step-bg:var(--color-accent);--step-fg:var(--color-accent-content)}}& .step-info{&+.step-info:before,&:after,&>.step-icon{--step-bg:var(--color-info);--step-fg:var(--color-info-content)}}& .step-success{&+.step-success:before,&:after,&>.step-icon{--step-bg:var(--color-success);--step-fg:var(--color-success-content)}}& .step-warning{&+.step-warning:before,&:after,&>.step-icon{--step-bg:var(--color-warning);--step-fg:var(--color-warning-content)}}& .step-error{&+.step-error:before,&:after,&>.step-icon{--step-bg:var(--color-error);--step-fg:var(--color-error-content)}}}.xl\:steps-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid;overflow:auto hidden;& .step{text-align:center;grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid;&:before{content:"";width:100%;height:.5rem;margin-inline-start:-100%;translate:0}[dir=rtl] &:before{translate:0}}}.xl\:steps-vertical{grid-auto-rows:1fr;grid-auto-flow:row;& .step{grid-template-rows:auto;grid-template-columns:40px 1fr;justify-items:start;gap:.5rem;min-height:4rem;display:grid;&:before{width:.5rem;height:100%;margin-inline-start:50%;translate:-50% -50%}[dir=rtl] &:before{translate:50% -50%}}}}@media (width>=1536px){.\32 xl\:steps{counter-reset:step;grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid;overflow:auto hidden;& .step{text-align:center;--step-bg:var(--color-base-300);--step-fg:var(--color-base-content);grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid;&:before{width:100%;height:.5rem;color:var(--step-bg);background-color:var(--step-bg);--tw-content:"";content:var(--tw-content);border:1px solid;grid-row-start:1;grid-column-start:1;margin-inline-start:-100%;top:0}&>.step-icon,&:not(:has(.step-icon)):after{content:counter(step);counter-increment:step;z-index:1;color:var(--step-fg);background-color:var(--step-bg);border:1px solid var(--step-bg);border-radius:3.40282e38px;grid-row-start:1;grid-column-start:1;place-self:center;place-items:center;width:2rem;height:2rem;display:grid;position:relative}&:first-child:before{content:none}&[data-content]:after{content:attr(data-content)}}& .step-neutral{&+.step-neutral:before,&:after,&>.step-icon{--step-bg:var(--color-neutral);--step-fg:var(--color-neutral-content)}}& .step-primary{&+.step-primary:before,&:after,&>.step-icon{--step-bg:var(--color-primary);--step-fg:var(--color-primary-content)}}& .step-secondary{&+.step-secondary:before,&:after,&>.step-icon{--step-bg:var(--color-secondary);--step-fg:var(--color-secondary-content)}}& .step-accent{&+.step-accent:before,&:after,&>.step-icon{--step-bg:var(--color-accent);--step-fg:var(--color-accent-content)}}& .step-info{&+.step-info:before,&:after,&>.step-icon{--step-bg:var(--color-info);--step-fg:var(--color-info-content)}}& .step-success{&+.step-success:before,&:after,&>.step-icon{--step-bg:var(--color-success);--step-fg:var(--color-success-content)}}& .step-warning{&+.step-warning:before,&:after,&>.step-icon{--step-bg:var(--color-warning);--step-fg:var(--color-warning-content)}}& .step-error{&+.step-error:before,&:after,&>.step-icon{--step-bg:var(--color-error);--step-fg:var(--color-error-content)}}}.\32 xl\:steps-horizontal{grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid;overflow:auto hidden;& .step{text-align:center;grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid;&:before{content:"";width:100%;height:.5rem;margin-inline-start:-100%;translate:0}[dir=rtl] &:before{translate:0}}}.\32 xl\:steps-vertical{grid-auto-rows:1fr;grid-auto-flow:row;& .step{grid-template-rows:auto;grid-template-columns:40px 1fr;justify-items:start;gap:.5rem;min-height:4rem;display:grid;&:before{width:.5rem;height:100%;margin-inline-start:50%;translate:-50% -50%}[dir=rtl] &:before{translate:50% -50%}}}}.label{white-space:nowrap;color:color-mix(in oklab,currentColor 60%,transparent);align-items:center;gap:.375rem;display:inline-flex;&:has(input){cursor:pointer}&:is(.input>*,.select>*){white-space:nowrap;height:calc(100% - .5rem);font-size:inherit;align-items:center;padding-inline:.75rem;display:flex;&:first-child{border-inline-end:var(--border)solid color-mix(in oklab,currentColor 10%,#0000);margin-inline:-.75rem .75rem}&:last-child{border-inline-start:var(--border)solid color-mix(in oklab,currentColor 10%,#0000);margin-inline:.75rem -.75rem}}}.floating-label{display:block;position:relative;& input{display:block;&::placeholder{transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out}}& textarea{&::placeholder{transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out}}&>span{z-index:1;background-color:var(--color-base-100);opacity:0;inset-inline-start:.75rem;top:calc(var(--size-field,.25rem)*10/2);pointer-events:none;border-radius:2px;padding-inline:.25rem;font-size:.875rem;line-height:1;transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out;position:absolute;translate:0 -50%}&:focus-within,&:not(:has(input:placeholder-shown,textarea:placeholder-shown)){& ::placeholder{opacity:0;pointer-events:auto;top:0;translate:-12.5% calc(-50% - .125em);scale:.75}&>span{opacity:1;pointer-events:auto;z-index:2;top:0;translate:-12.5% calc(-50% - .125em);scale:.75}}&:has(:disabled,[disabled]){&>span{opacity:0}}&:has(.input-xs,.select-xs,.textarea-xs) span{top:calc(var(--size-field,.25rem)*6/2);font-size:.6875rem}&:has(.input-sm,.select-sm,.textarea-sm) span{top:calc(var(--size-field,.25rem)*8/2);font-size:.75rem}&:has(.input-md,.select-md,.textarea-md) span{top:calc(var(--size-field,.25rem)*10/2);font-size:.875rem}&:has(.input-lg,.select-lg,.textarea-lg) span{top:calc(var(--size-field,.25rem)*12/2);font-size:1.125rem}&:has(.input-xl,.select-xl,.textarea-xl) span{top:calc(var(--size-field,.25rem)*14/2);font-size:1.375rem}}@media (width>=640px){.sm\:label{white-space:nowrap;color:color-mix(in oklab,currentColor 60%,transparent);align-items:center;gap:.375rem;display:inline-flex;&:has(input){cursor:pointer}&:is(.input>*,.select>*){white-space:nowrap;height:calc(100% - .5rem);font-size:inherit;align-items:center;padding-inline:.75rem;display:flex;&:first-child{border-inline-end:var(--border)solid color-mix(in oklab,currentColor 10%,#0000);margin-inline:-.75rem .75rem}&:last-child{border-inline-start:var(--border)solid color-mix(in oklab,currentColor 10%,#0000);margin-inline:.75rem -.75rem}}}.sm\:floating-label{display:block;position:relative;& input{display:block;&::placeholder{transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out}}& textarea{&::placeholder{transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out}}&>span{z-index:1;background-color:var(--color-base-100);opacity:0;inset-inline-start:.75rem;top:calc(var(--size-field,.25rem)*10/2);pointer-events:none;border-radius:2px;padding-inline:.25rem;font-size:.875rem;line-height:1;transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out;position:absolute;translate:0 -50%}&:focus-within,&:not(:has(input:placeholder-shown,textarea:placeholder-shown)){& ::placeholder{opacity:0;pointer-events:auto;top:0;translate:-12.5% calc(-50% - .125em);scale:.75}&>span{opacity:1;pointer-events:auto;z-index:2;top:0;translate:-12.5% calc(-50% - .125em);scale:.75}}&:has(:disabled,[disabled]){&>span{opacity:0}}&:has(.input-xs,.select-xs,.textarea-xs) span{top:calc(var(--size-field,.25rem)*6/2);font-size:.6875rem}&:has(.input-sm,.select-sm,.textarea-sm) span{top:calc(var(--size-field,.25rem)*8/2);font-size:.75rem}&:has(.input-md,.select-md,.textarea-md) span{top:calc(var(--size-field,.25rem)*10/2);font-size:.875rem}&:has(.input-lg,.select-lg,.textarea-lg) span{top:calc(var(--size-field,.25rem)*12/2);font-size:1.125rem}&:has(.input-xl,.select-xl,.textarea-xl) span{top:calc(var(--size-field,.25rem)*14/2);font-size:1.375rem}}}@media (width>=768px){.md\:label{white-space:nowrap;color:color-mix(in oklab,currentColor 60%,transparent);align-items:center;gap:.375rem;display:inline-flex;&:has(input){cursor:pointer}&:is(.input>*,.select>*){white-space:nowrap;height:calc(100% - .5rem);font-size:inherit;align-items:center;padding-inline:.75rem;display:flex;&:first-child{border-inline-end:var(--border)solid color-mix(in oklab,currentColor 10%,#0000);margin-inline:-.75rem .75rem}&:last-child{border-inline-start:var(--border)solid color-mix(in oklab,currentColor 10%,#0000);margin-inline:.75rem -.75rem}}}.md\:floating-label{display:block;position:relative;& input{display:block;&::placeholder{transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out}}& textarea{&::placeholder{transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out}}&>span{z-index:1;background-color:var(--color-base-100);opacity:0;inset-inline-start:.75rem;top:calc(var(--size-field,.25rem)*10/2);pointer-events:none;border-radius:2px;padding-inline:.25rem;font-size:.875rem;line-height:1;transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out;position:absolute;translate:0 -50%}&:focus-within,&:not(:has(input:placeholder-shown,textarea:placeholder-shown)){& ::placeholder{opacity:0;pointer-events:auto;top:0;translate:-12.5% calc(-50% - .125em);scale:.75}&>span{opacity:1;pointer-events:auto;z-index:2;top:0;translate:-12.5% calc(-50% - .125em);scale:.75}}&:has(:disabled,[disabled]){&>span{opacity:0}}&:has(.input-xs,.select-xs,.textarea-xs) span{top:calc(var(--size-field,.25rem)*6/2);font-size:.6875rem}&:has(.input-sm,.select-sm,.textarea-sm) span{top:calc(var(--size-field,.25rem)*8/2);font-size:.75rem}&:has(.input-md,.select-md,.textarea-md) span{top:calc(var(--size-field,.25rem)*10/2);font-size:.875rem}&:has(.input-lg,.select-lg,.textarea-lg) span{top:calc(var(--size-field,.25rem)*12/2);font-size:1.125rem}&:has(.input-xl,.select-xl,.textarea-xl) span{top:calc(var(--size-field,.25rem)*14/2);font-size:1.375rem}}}@media (width>=1024px){.lg\:label{white-space:nowrap;color:color-mix(in oklab,currentColor 60%,transparent);align-items:center;gap:.375rem;display:inline-flex;&:has(input){cursor:pointer}&:is(.input>*,.select>*){white-space:nowrap;height:calc(100% - .5rem);font-size:inherit;align-items:center;padding-inline:.75rem;display:flex;&:first-child{border-inline-end:var(--border)solid color-mix(in oklab,currentColor 10%,#0000);margin-inline:-.75rem .75rem}&:last-child{border-inline-start:var(--border)solid color-mix(in oklab,currentColor 10%,#0000);margin-inline:.75rem -.75rem}}}.lg\:floating-label{display:block;position:relative;& input{display:block;&::placeholder{transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out}}& textarea{&::placeholder{transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out}}&>span{z-index:1;background-color:var(--color-base-100);opacity:0;inset-inline-start:.75rem;top:calc(var(--size-field,.25rem)*10/2);pointer-events:none;border-radius:2px;padding-inline:.25rem;font-size:.875rem;line-height:1;transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out;position:absolute;translate:0 -50%}&:focus-within,&:not(:has(input:placeholder-shown,textarea:placeholder-shown)){& ::placeholder{opacity:0;pointer-events:auto;top:0;translate:-12.5% calc(-50% - .125em);scale:.75}&>span{opacity:1;pointer-events:auto;z-index:2;top:0;translate:-12.5% calc(-50% - .125em);scale:.75}}&:has(:disabled,[disabled]){&>span{opacity:0}}&:has(.input-xs,.select-xs,.textarea-xs) span{top:calc(var(--size-field,.25rem)*6/2);font-size:.6875rem}&:has(.input-sm,.select-sm,.textarea-sm) span{top:calc(var(--size-field,.25rem)*8/2);font-size:.75rem}&:has(.input-md,.select-md,.textarea-md) span{top:calc(var(--size-field,.25rem)*10/2);font-size:.875rem}&:has(.input-lg,.select-lg,.textarea-lg) span{top:calc(var(--size-field,.25rem)*12/2);font-size:1.125rem}&:has(.input-xl,.select-xl,.textarea-xl) span{top:calc(var(--size-field,.25rem)*14/2);font-size:1.375rem}}}@media (width>=1280px){.xl\:label{white-space:nowrap;color:color-mix(in oklab,currentColor 60%,transparent);align-items:center;gap:.375rem;display:inline-flex;&:has(input){cursor:pointer}&:is(.input>*,.select>*){white-space:nowrap;height:calc(100% - .5rem);font-size:inherit;align-items:center;padding-inline:.75rem;display:flex;&:first-child{border-inline-end:var(--border)solid color-mix(in oklab,currentColor 10%,#0000);margin-inline:-.75rem .75rem}&:last-child{border-inline-start:var(--border)solid color-mix(in oklab,currentColor 10%,#0000);margin-inline:.75rem -.75rem}}}.xl\:floating-label{display:block;position:relative;& input{display:block;&::placeholder{transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out}}& textarea{&::placeholder{transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out}}&>span{z-index:1;background-color:var(--color-base-100);opacity:0;inset-inline-start:.75rem;top:calc(var(--size-field,.25rem)*10/2);pointer-events:none;border-radius:2px;padding-inline:.25rem;font-size:.875rem;line-height:1;transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out;position:absolute;translate:0 -50%}&:focus-within,&:not(:has(input:placeholder-shown,textarea:placeholder-shown)){& ::placeholder{opacity:0;pointer-events:auto;top:0;translate:-12.5% calc(-50% - .125em);scale:.75}&>span{opacity:1;pointer-events:auto;z-index:2;top:0;translate:-12.5% calc(-50% - .125em);scale:.75}}&:has(:disabled,[disabled]){&>span{opacity:0}}&:has(.input-xs,.select-xs,.textarea-xs) span{top:calc(var(--size-field,.25rem)*6/2);font-size:.6875rem}&:has(.input-sm,.select-sm,.textarea-sm) span{top:calc(var(--size-field,.25rem)*8/2);font-size:.75rem}&:has(.input-md,.select-md,.textarea-md) span{top:calc(var(--size-field,.25rem)*10/2);font-size:.875rem}&:has(.input-lg,.select-lg,.textarea-lg) span{top:calc(var(--size-field,.25rem)*12/2);font-size:1.125rem}&:has(.input-xl,.select-xl,.textarea-xl) span{top:calc(var(--size-field,.25rem)*14/2);font-size:1.375rem}}}@media (width>=1536px){.\32 xl\:label{white-space:nowrap;color:color-mix(in oklab,currentColor 60%,transparent);align-items:center;gap:.375rem;display:inline-flex;&:has(input){cursor:pointer}&:is(.input>*,.select>*){white-space:nowrap;height:calc(100% - .5rem);font-size:inherit;align-items:center;padding-inline:.75rem;display:flex;&:first-child{border-inline-end:var(--border)solid color-mix(in oklab,currentColor 10%,#0000);margin-inline:-.75rem .75rem}&:last-child{border-inline-start:var(--border)solid color-mix(in oklab,currentColor 10%,#0000);margin-inline:.75rem -.75rem}}}.\32 xl\:floating-label{display:block;position:relative;& input{display:block;&::placeholder{transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out}}& textarea{&::placeholder{transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out}}&>span{z-index:1;background-color:var(--color-base-100);opacity:0;inset-inline-start:.75rem;top:calc(var(--size-field,.25rem)*10/2);pointer-events:none;border-radius:2px;padding-inline:.25rem;font-size:.875rem;line-height:1;transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out;position:absolute;translate:0 -50%}&:focus-within,&:not(:has(input:placeholder-shown,textarea:placeholder-shown)){& ::placeholder{opacity:0;pointer-events:auto;top:0;translate:-12.5% calc(-50% - .125em);scale:.75}&>span{opacity:1;pointer-events:auto;z-index:2;top:0;translate:-12.5% calc(-50% - .125em);scale:.75}}&:has(:disabled,[disabled]){&>span{opacity:0}}&:has(.input-xs,.select-xs,.textarea-xs) span{top:calc(var(--size-field,.25rem)*6/2);font-size:.6875rem}&:has(.input-sm,.select-sm,.textarea-sm) span{top:calc(var(--size-field,.25rem)*8/2);font-size:.75rem}&:has(.input-md,.select-md,.textarea-md) span{top:calc(var(--size-field,.25rem)*10/2);font-size:.875rem}&:has(.input-lg,.select-lg,.textarea-lg) span{top:calc(var(--size-field,.25rem)*12/2);font-size:1.125rem}&:has(.input-xl,.select-xl,.textarea-xl) span{top:calc(var(--size-field,.25rem)*14/2);font-size:1.375rem}}}.checkbox{border:var(--border)solid var(--input-color,color-mix(in oklab,var(--color-base-content)20%,#0000));cursor:pointer;appearance:none;border-radius:var(--radius-selector);vertical-align:middle;color:var(--color-base-content);box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 0 #0000 inset,0 0 #0000;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);flex-shrink:0;padding:.25rem;transition:background-color .2s,box-shadow .2s;display:inline-block;position:relative;&:before{--tw-content:"";content:var(--tw-content);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);width:100%;height:100%;box-shadow:0px 3px 0 0px oklch(100% 0 0/calc(var(--depth)*.1))inset;background-color:currentColor;font-size:1rem;line-height:.75;transition:clip-path .3s .1s,opacity .1s .1s,rotate .3s .1s,translate .3s .1s;display:block;rotate:45deg}&:focus-visible{outline:2px solid var(--input-color,currentColor);outline-offset:2px}&:checked,&[aria-checked=true]{background-color:var(--input-color,#0000);box-shadow:0 0 #0000 inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1));&:before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1}@media (forced-colors:active){&:before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}@media print{&:before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}}&:indeterminate{&:before{opacity:1;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,80% 80%,80% 100%);translate:0 -35%;rotate:none}}}.checkbox-primary{color:var(--color-primary-content);--input-color:var(--color-primary)}.checkbox-secondary{color:var(--color-secondary-content);--input-color:var(--color-secondary)}.checkbox-accent{color:var(--color-accent-content);--input-color:var(--color-accent)}.checkbox-neutral{color:var(--color-neutral-content);--input-color:var(--color-neutral)}.checkbox-info{color:var(--color-info-content);--input-color:var(--color-info)}.checkbox-success{color:var(--color-success-content);--input-color:var(--color-success)}.checkbox-warning{color:var(--color-warning-content);--input-color:var(--color-warning)}.checkbox-error{color:var(--color-error-content);--input-color:var(--color-error)}.checkbox:disabled{cursor:not-allowed;opacity:.2}.checkbox-xs{--size:calc(var(--size-selector,.25rem)*4);padding:.125rem}.checkbox-sm{--size:calc(var(--size-selector,.25rem)*5);padding:.1875rem}.checkbox-md{--size:calc(var(--size-selector,.25rem)*6);padding:.25rem}.checkbox-lg{--size:calc(var(--size-selector,.25rem)*7);padding:.3125rem}.checkbox-xl{--size:calc(var(--size-selector,.25rem)*8);padding:.375rem}@media (width>=640px){.sm\:checkbox{border:var(--border)solid var(--input-color,color-mix(in oklab,var(--color-base-content)20%,#0000));cursor:pointer;appearance:none;border-radius:var(--radius-selector);vertical-align:middle;color:var(--color-base-content);box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 0 #0000 inset,0 0 #0000;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);flex-shrink:0;padding:.25rem;transition:background-color .2s,box-shadow .2s;display:inline-block;position:relative;&:before{--tw-content:"";content:var(--tw-content);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);width:100%;height:100%;box-shadow:0px 3px 0 0px oklch(100% 0 0/calc(var(--depth)*.1))inset;background-color:currentColor;font-size:1rem;line-height:.75;transition:clip-path .3s .1s,opacity .1s .1s,rotate .3s .1s,translate .3s .1s;display:block;rotate:45deg}&:focus-visible{outline:2px solid var(--input-color,currentColor);outline-offset:2px}&:checked,&[aria-checked=true]{background-color:var(--input-color,#0000);box-shadow:0 0 #0000 inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1));&:before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1}@media (forced-colors:active){&:before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}@media print{&:before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}}&:indeterminate{&:before{opacity:1;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,80% 80%,80% 100%);translate:0 -35%;rotate:none}}}.sm\:checkbox-primary{color:var(--color-primary-content);--input-color:var(--color-primary)}.sm\:checkbox-secondary{color:var(--color-secondary-content);--input-color:var(--color-secondary)}.sm\:checkbox-accent{color:var(--color-accent-content);--input-color:var(--color-accent)}.sm\:checkbox-neutral{color:var(--color-neutral-content);--input-color:var(--color-neutral)}.sm\:checkbox-info{color:var(--color-info-content);--input-color:var(--color-info)}.sm\:checkbox-success{color:var(--color-success-content);--input-color:var(--color-success)}.sm\:checkbox-warning{color:var(--color-warning-content);--input-color:var(--color-warning)}.sm\:checkbox-error{color:var(--color-error-content);--input-color:var(--color-error)}.sm\:checkbox:disabled{cursor:not-allowed;opacity:.2}.sm\:checkbox-xs{--size:calc(var(--size-selector,.25rem)*4);padding:.125rem}.sm\:checkbox-sm{--size:calc(var(--size-selector,.25rem)*5);padding:.1875rem}.sm\:checkbox-md{--size:calc(var(--size-selector,.25rem)*6);padding:.25rem}.sm\:checkbox-lg{--size:calc(var(--size-selector,.25rem)*7);padding:.3125rem}.sm\:checkbox-xl{--size:calc(var(--size-selector,.25rem)*8);padding:.375rem}}@media (width>=768px){.md\:checkbox{border:var(--border)solid var(--input-color,color-mix(in oklab,var(--color-base-content)20%,#0000));cursor:pointer;appearance:none;border-radius:var(--radius-selector);vertical-align:middle;color:var(--color-base-content);box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 0 #0000 inset,0 0 #0000;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);flex-shrink:0;padding:.25rem;transition:background-color .2s,box-shadow .2s;display:inline-block;position:relative;&:before{--tw-content:"";content:var(--tw-content);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);width:100%;height:100%;box-shadow:0px 3px 0 0px oklch(100% 0 0/calc(var(--depth)*.1))inset;background-color:currentColor;font-size:1rem;line-height:.75;transition:clip-path .3s .1s,opacity .1s .1s,rotate .3s .1s,translate .3s .1s;display:block;rotate:45deg}&:focus-visible{outline:2px solid var(--input-color,currentColor);outline-offset:2px}&:checked,&[aria-checked=true]{background-color:var(--input-color,#0000);box-shadow:0 0 #0000 inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1));&:before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1}@media (forced-colors:active){&:before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}@media print{&:before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}}&:indeterminate{&:before{opacity:1;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,80% 80%,80% 100%);translate:0 -35%;rotate:none}}}.md\:checkbox-primary{color:var(--color-primary-content);--input-color:var(--color-primary)}.md\:checkbox-secondary{color:var(--color-secondary-content);--input-color:var(--color-secondary)}.md\:checkbox-accent{color:var(--color-accent-content);--input-color:var(--color-accent)}.md\:checkbox-neutral{color:var(--color-neutral-content);--input-color:var(--color-neutral)}.md\:checkbox-info{color:var(--color-info-content);--input-color:var(--color-info)}.md\:checkbox-success{color:var(--color-success-content);--input-color:var(--color-success)}.md\:checkbox-warning{color:var(--color-warning-content);--input-color:var(--color-warning)}.md\:checkbox-error{color:var(--color-error-content);--input-color:var(--color-error)}.md\:checkbox:disabled{cursor:not-allowed;opacity:.2}.md\:checkbox-xs{--size:calc(var(--size-selector,.25rem)*4);padding:.125rem}.md\:checkbox-sm{--size:calc(var(--size-selector,.25rem)*5);padding:.1875rem}.md\:checkbox-md{--size:calc(var(--size-selector,.25rem)*6);padding:.25rem}.md\:checkbox-lg{--size:calc(var(--size-selector,.25rem)*7);padding:.3125rem}.md\:checkbox-xl{--size:calc(var(--size-selector,.25rem)*8);padding:.375rem}}@media (width>=1024px){.lg\:checkbox{border:var(--border)solid var(--input-color,color-mix(in oklab,var(--color-base-content)20%,#0000));cursor:pointer;appearance:none;border-radius:var(--radius-selector);vertical-align:middle;color:var(--color-base-content);box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 0 #0000 inset,0 0 #0000;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);flex-shrink:0;padding:.25rem;transition:background-color .2s,box-shadow .2s;display:inline-block;position:relative;&:before{--tw-content:"";content:var(--tw-content);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);width:100%;height:100%;box-shadow:0px 3px 0 0px oklch(100% 0 0/calc(var(--depth)*.1))inset;background-color:currentColor;font-size:1rem;line-height:.75;transition:clip-path .3s .1s,opacity .1s .1s,rotate .3s .1s,translate .3s .1s;display:block;rotate:45deg}&:focus-visible{outline:2px solid var(--input-color,currentColor);outline-offset:2px}&:checked,&[aria-checked=true]{background-color:var(--input-color,#0000);box-shadow:0 0 #0000 inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1));&:before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1}@media (forced-colors:active){&:before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}@media print{&:before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}}&:indeterminate{&:before{opacity:1;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,80% 80%,80% 100%);translate:0 -35%;rotate:none}}}.lg\:checkbox-primary{color:var(--color-primary-content);--input-color:var(--color-primary)}.lg\:checkbox-secondary{color:var(--color-secondary-content);--input-color:var(--color-secondary)}.lg\:checkbox-accent{color:var(--color-accent-content);--input-color:var(--color-accent)}.lg\:checkbox-neutral{color:var(--color-neutral-content);--input-color:var(--color-neutral)}.lg\:checkbox-info{color:var(--color-info-content);--input-color:var(--color-info)}.lg\:checkbox-success{color:var(--color-success-content);--input-color:var(--color-success)}.lg\:checkbox-warning{color:var(--color-warning-content);--input-color:var(--color-warning)}.lg\:checkbox-error{color:var(--color-error-content);--input-color:var(--color-error)}.lg\:checkbox:disabled{cursor:not-allowed;opacity:.2}.lg\:checkbox-xs{--size:calc(var(--size-selector,.25rem)*4);padding:.125rem}.lg\:checkbox-sm{--size:calc(var(--size-selector,.25rem)*5);padding:.1875rem}.lg\:checkbox-md{--size:calc(var(--size-selector,.25rem)*6);padding:.25rem}.lg\:checkbox-lg{--size:calc(var(--size-selector,.25rem)*7);padding:.3125rem}.lg\:checkbox-xl{--size:calc(var(--size-selector,.25rem)*8);padding:.375rem}}@media (width>=1280px){.xl\:checkbox{border:var(--border)solid var(--input-color,color-mix(in oklab,var(--color-base-content)20%,#0000));cursor:pointer;appearance:none;border-radius:var(--radius-selector);vertical-align:middle;color:var(--color-base-content);box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 0 #0000 inset,0 0 #0000;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);flex-shrink:0;padding:.25rem;transition:background-color .2s,box-shadow .2s;display:inline-block;position:relative;&:before{--tw-content:"";content:var(--tw-content);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);width:100%;height:100%;box-shadow:0px 3px 0 0px oklch(100% 0 0/calc(var(--depth)*.1))inset;background-color:currentColor;font-size:1rem;line-height:.75;transition:clip-path .3s .1s,opacity .1s .1s,rotate .3s .1s,translate .3s .1s;display:block;rotate:45deg}&:focus-visible{outline:2px solid var(--input-color,currentColor);outline-offset:2px}&:checked,&[aria-checked=true]{background-color:var(--input-color,#0000);box-shadow:0 0 #0000 inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1));&:before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1}@media (forced-colors:active){&:before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}@media print{&:before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}}&:indeterminate{&:before{opacity:1;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,80% 80%,80% 100%);translate:0 -35%;rotate:none}}}.xl\:checkbox-primary{color:var(--color-primary-content);--input-color:var(--color-primary)}.xl\:checkbox-secondary{color:var(--color-secondary-content);--input-color:var(--color-secondary)}.xl\:checkbox-accent{color:var(--color-accent-content);--input-color:var(--color-accent)}.xl\:checkbox-neutral{color:var(--color-neutral-content);--input-color:var(--color-neutral)}.xl\:checkbox-info{color:var(--color-info-content);--input-color:var(--color-info)}.xl\:checkbox-success{color:var(--color-success-content);--input-color:var(--color-success)}.xl\:checkbox-warning{color:var(--color-warning-content);--input-color:var(--color-warning)}.xl\:checkbox-error{color:var(--color-error-content);--input-color:var(--color-error)}.xl\:checkbox:disabled{cursor:not-allowed;opacity:.2}.xl\:checkbox-xs{--size:calc(var(--size-selector,.25rem)*4);padding:.125rem}.xl\:checkbox-sm{--size:calc(var(--size-selector,.25rem)*5);padding:.1875rem}.xl\:checkbox-md{--size:calc(var(--size-selector,.25rem)*6);padding:.25rem}.xl\:checkbox-lg{--size:calc(var(--size-selector,.25rem)*7);padding:.3125rem}.xl\:checkbox-xl{--size:calc(var(--size-selector,.25rem)*8);padding:.375rem}}@media (width>=1536px){.\32 xl\:checkbox{border:var(--border)solid var(--input-color,color-mix(in oklab,var(--color-base-content)20%,#0000));cursor:pointer;appearance:none;border-radius:var(--radius-selector);vertical-align:middle;color:var(--color-base-content);box-shadow:0 1px oklch(0% 0 0/calc(var(--depth)*.1))inset,0 0 #0000 inset,0 0 #0000;--size:calc(var(--size-selector,.25rem)*6);width:var(--size);height:var(--size);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);flex-shrink:0;padding:.25rem;transition:background-color .2s,box-shadow .2s;display:inline-block;position:relative;&:before{--tw-content:"";content:var(--tw-content);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);width:100%;height:100%;box-shadow:0px 3px 0 0px oklch(100% 0 0/calc(var(--depth)*.1))inset;background-color:currentColor;font-size:1rem;line-height:.75;transition:clip-path .3s .1s,opacity .1s .1s,rotate .3s .1s,translate .3s .1s;display:block;rotate:45deg}&:focus-visible{outline:2px solid var(--input-color,currentColor);outline-offset:2px}&:checked,&[aria-checked=true]{background-color:var(--input-color,#0000);box-shadow:0 0 #0000 inset,0 8px 0 -4px oklch(100% 0 0/calc(var(--depth)*.1))inset,0 1px oklch(0% 0 0/calc(var(--depth)*.1));&:before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1}@media (forced-colors:active){&:before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}@media print{&:before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:none}}}&:indeterminate{&:before{opacity:1;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,80% 80%,80% 100%);translate:0 -35%;rotate:none}}}.\32 xl\:checkbox-primary{color:var(--color-primary-content);--input-color:var(--color-primary)}.\32 xl\:checkbox-secondary{color:var(--color-secondary-content);--input-color:var(--color-secondary)}.\32 xl\:checkbox-accent{color:var(--color-accent-content);--input-color:var(--color-accent)}.\32 xl\:checkbox-neutral{color:var(--color-neutral-content);--input-color:var(--color-neutral)}.\32 xl\:checkbox-info{color:var(--color-info-content);--input-color:var(--color-info)}.\32 xl\:checkbox-success{color:var(--color-success-content);--input-color:var(--color-success)}.\32 xl\:checkbox-warning{color:var(--color-warning-content);--input-color:var(--color-warning)}.\32 xl\:checkbox-error{color:var(--color-error-content);--input-color:var(--color-error)}.\32 xl\:checkbox:disabled{cursor:not-allowed;opacity:.2}.\32 xl\:checkbox-xs{--size:calc(var(--size-selector,.25rem)*4);padding:.125rem}.\32 xl\:checkbox-sm{--size:calc(var(--size-selector,.25rem)*5);padding:.1875rem}.\32 xl\:checkbox-md{--size:calc(var(--size-selector,.25rem)*6);padding:.25rem}.\32 xl\:checkbox-lg{--size:calc(var(--size-selector,.25rem)*7);padding:.3125rem}.\32 xl\:checkbox-xl{--size:calc(var(--size-selector,.25rem)*8);padding:.375rem}}.input{cursor:text;border:var(--border)solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;white-space:nowrap;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;--size:calc(var(--size-field,.25rem)*10);--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.5rem;padding-inline:.75rem;font-size:.875rem;display:inline-flex;position:relative;&:where(input){display:inline-flex}& :where(input){appearance:none;background-color:#0000;border:none;width:100%;height:100%;display:inline-flex;&:focus,&:focus-within{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}}& :where(input[type=url]),& :where(input[type=email]){direction:ltr}& :where(input[type=date]){display:inline-block}&:focus,&:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}&:has(>input[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:color-mix(in oklab,var(--color-base-content)40%,transparent);box-shadow:none;&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}&:has(>input[disabled])>input[disabled]{cursor:not-allowed}&::-webkit-date-and-time-value{text-align:inherit}&[type=number]{&::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}}&::-webkit-calendar-picker-indicator{position:absolute;inset-inline-end:.75em}}.input-ghost{box-shadow:none;background-color:#0000;border-color:#0000;&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.input-neutral{&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.input-primary{&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.input-secondary{&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.input-accent{&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.input-info{&,&:focus,&:focus-within{--input-color:var(--color-info)}}.input-success{&,&:focus,&:focus-within{--input-color:var(--color-success)}}.input-warning{&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.input-error{&,&:focus,&:focus-within{--input-color:var(--color-error)}}.input-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.25rem;margin-inline-end:-.75rem}}}.input-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.5rem;margin-inline-end:-.75rem}}}.input-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}}}.input-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}}}.input-xl{--size:calc(var(--size-field,.25rem)*14);font-size:1.375rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-1rem;margin-inline-end:-.75rem}}}@media (width>=640px){.sm\:input{cursor:text;border:var(--border)solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;white-space:nowrap;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;--size:calc(var(--size-field,.25rem)*10);--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.5rem;padding-inline:.75rem;font-size:.875rem;display:inline-flex;position:relative;&:where(input){display:inline-flex}& :where(input){appearance:none;background-color:#0000;border:none;width:100%;height:100%;display:inline-flex;&:focus,&:focus-within{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}}& :where(input[type=url]),& :where(input[type=email]){direction:ltr}& :where(input[type=date]){display:inline-block}&:focus,&:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}&:has(>input[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:color-mix(in oklab,var(--color-base-content)40%,transparent);box-shadow:none;&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}&:has(>input[disabled])>input[disabled]{cursor:not-allowed}&::-webkit-date-and-time-value{text-align:inherit}&[type=number]{&::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}}&::-webkit-calendar-picker-indicator{position:absolute;inset-inline-end:.75em}}.sm\:input-ghost{box-shadow:none;background-color:#0000;border-color:#0000;&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.sm\:input-neutral{&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.sm\:input-primary{&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.sm\:input-secondary{&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.sm\:input-accent{&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.sm\:input-info{&,&:focus,&:focus-within{--input-color:var(--color-info)}}.sm\:input-success{&,&:focus,&:focus-within{--input-color:var(--color-success)}}.sm\:input-warning{&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.sm\:input-error{&,&:focus,&:focus-within{--input-color:var(--color-error)}}.sm\:input-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.25rem;margin-inline-end:-.75rem}}}.sm\:input-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.5rem;margin-inline-end:-.75rem}}}.sm\:input-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}}}.sm\:input-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}}}.sm\:input-xl{--size:calc(var(--size-field,.25rem)*14);font-size:1.375rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-1rem;margin-inline-end:-.75rem}}}}@media (width>=768px){.md\:input{cursor:text;border:var(--border)solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;white-space:nowrap;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;--size:calc(var(--size-field,.25rem)*10);--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.5rem;padding-inline:.75rem;font-size:.875rem;display:inline-flex;position:relative;&:where(input){display:inline-flex}& :where(input){appearance:none;background-color:#0000;border:none;width:100%;height:100%;display:inline-flex;&:focus,&:focus-within{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}}& :where(input[type=url]),& :where(input[type=email]){direction:ltr}& :where(input[type=date]){display:inline-block}&:focus,&:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}&:has(>input[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:color-mix(in oklab,var(--color-base-content)40%,transparent);box-shadow:none;&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}&:has(>input[disabled])>input[disabled]{cursor:not-allowed}&::-webkit-date-and-time-value{text-align:inherit}&[type=number]{&::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}}&::-webkit-calendar-picker-indicator{position:absolute;inset-inline-end:.75em}}.md\:input-ghost{box-shadow:none;background-color:#0000;border-color:#0000;&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.md\:input-neutral{&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.md\:input-primary{&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.md\:input-secondary{&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.md\:input-accent{&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.md\:input-info{&,&:focus,&:focus-within{--input-color:var(--color-info)}}.md\:input-success{&,&:focus,&:focus-within{--input-color:var(--color-success)}}.md\:input-warning{&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.md\:input-error{&,&:focus,&:focus-within{--input-color:var(--color-error)}}.md\:input-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.25rem;margin-inline-end:-.75rem}}}.md\:input-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.5rem;margin-inline-end:-.75rem}}}.md\:input-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}}}.md\:input-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}}}.md\:input-xl{--size:calc(var(--size-field,.25rem)*14);font-size:1.375rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-1rem;margin-inline-end:-.75rem}}}}@media (width>=1024px){.lg\:input{cursor:text;border:var(--border)solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;white-space:nowrap;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;--size:calc(var(--size-field,.25rem)*10);--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.5rem;padding-inline:.75rem;font-size:.875rem;display:inline-flex;position:relative;&:where(input){display:inline-flex}& :where(input){appearance:none;background-color:#0000;border:none;width:100%;height:100%;display:inline-flex;&:focus,&:focus-within{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}}& :where(input[type=url]),& :where(input[type=email]){direction:ltr}& :where(input[type=date]){display:inline-block}&:focus,&:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}&:has(>input[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:color-mix(in oklab,var(--color-base-content)40%,transparent);box-shadow:none;&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}&:has(>input[disabled])>input[disabled]{cursor:not-allowed}&::-webkit-date-and-time-value{text-align:inherit}&[type=number]{&::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}}&::-webkit-calendar-picker-indicator{position:absolute;inset-inline-end:.75em}}.lg\:input-ghost{box-shadow:none;background-color:#0000;border-color:#0000;&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.lg\:input-neutral{&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.lg\:input-primary{&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.lg\:input-secondary{&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.lg\:input-accent{&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.lg\:input-info{&,&:focus,&:focus-within{--input-color:var(--color-info)}}.lg\:input-success{&,&:focus,&:focus-within{--input-color:var(--color-success)}}.lg\:input-warning{&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.lg\:input-error{&,&:focus,&:focus-within{--input-color:var(--color-error)}}.lg\:input-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.25rem;margin-inline-end:-.75rem}}}.lg\:input-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.5rem;margin-inline-end:-.75rem}}}.lg\:input-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}}}.lg\:input-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}}}.lg\:input-xl{--size:calc(var(--size-field,.25rem)*14);font-size:1.375rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-1rem;margin-inline-end:-.75rem}}}}@media (width>=1280px){.xl\:input{cursor:text;border:var(--border)solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;white-space:nowrap;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;--size:calc(var(--size-field,.25rem)*10);--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.5rem;padding-inline:.75rem;font-size:.875rem;display:inline-flex;position:relative;&:where(input){display:inline-flex}& :where(input){appearance:none;background-color:#0000;border:none;width:100%;height:100%;display:inline-flex;&:focus,&:focus-within{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}}& :where(input[type=url]),& :where(input[type=email]){direction:ltr}& :where(input[type=date]){display:inline-block}&:focus,&:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}&:has(>input[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:color-mix(in oklab,var(--color-base-content)40%,transparent);box-shadow:none;&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}&:has(>input[disabled])>input[disabled]{cursor:not-allowed}&::-webkit-date-and-time-value{text-align:inherit}&[type=number]{&::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}}&::-webkit-calendar-picker-indicator{position:absolute;inset-inline-end:.75em}}.xl\:input-ghost{box-shadow:none;background-color:#0000;border-color:#0000;&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.xl\:input-neutral{&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.xl\:input-primary{&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.xl\:input-secondary{&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.xl\:input-accent{&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.xl\:input-info{&,&:focus,&:focus-within{--input-color:var(--color-info)}}.xl\:input-success{&,&:focus,&:focus-within{--input-color:var(--color-success)}}.xl\:input-warning{&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.xl\:input-error{&,&:focus,&:focus-within{--input-color:var(--color-error)}}.xl\:input-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.25rem;margin-inline-end:-.75rem}}}.xl\:input-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.5rem;margin-inline-end:-.75rem}}}.xl\:input-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}}}.xl\:input-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}}}.xl\:input-xl{--size:calc(var(--size-field,.25rem)*14);font-size:1.375rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-1rem;margin-inline-end:-.75rem}}}}@media (width>=1536px){.\32 xl\:input{cursor:text;border:var(--border)solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;white-space:nowrap;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)inset,0 -1px oklch(100% 0 0/calc(var(--depth)*.1))inset;--size:calc(var(--size-field,.25rem)*10);--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.5rem;padding-inline:.75rem;font-size:.875rem;display:inline-flex;position:relative;&:where(input){display:inline-flex}& :where(input){appearance:none;background-color:#0000;border:none;width:100%;height:100%;display:inline-flex;&:focus,&:focus-within{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}}& :where(input[type=url]),& :where(input[type=email]){direction:ltr}& :where(input[type=date]){display:inline-block}&:focus,&:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000);outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}&:has(>input[disabled]),&:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:color-mix(in oklab,var(--color-base-content)40%,transparent);box-shadow:none;&::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}&:has(>input[disabled])>input[disabled]{cursor:not-allowed}&::-webkit-date-and-time-value{text-align:inherit}&[type=number]{&::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}}&::-webkit-calendar-picker-indicator{position:absolute;inset-inline-end:.75em}}.\32 xl\:input-ghost{box-shadow:none;background-color:#0000;border-color:#0000;&:focus,&:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}}.\32 xl\:input-neutral{&,&:focus,&:focus-within{--input-color:var(--color-neutral)}}.\32 xl\:input-primary{&,&:focus,&:focus-within{--input-color:var(--color-primary)}}.\32 xl\:input-secondary{&,&:focus,&:focus-within{--input-color:var(--color-secondary)}}.\32 xl\:input-accent{&,&:focus,&:focus-within{--input-color:var(--color-accent)}}.\32 xl\:input-info{&,&:focus,&:focus-within{--input-color:var(--color-info)}}.\32 xl\:input-success{&,&:focus,&:focus-within{--input-color:var(--color-success)}}.\32 xl\:input-warning{&,&:focus,&:focus-within{--input-color:var(--color-warning)}}.\32 xl\:input-error{&,&:focus,&:focus-within{--input-color:var(--color-error)}}.\32 xl\:input-xs{--size:calc(var(--size-field,.25rem)*6);font-size:.6875rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.25rem;margin-inline-end:-.75rem}}}.\32 xl\:input-sm{--size:calc(var(--size-field,.25rem)*8);font-size:.75rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.5rem;margin-inline-end:-.75rem}}}.\32 xl\:input-md{--size:calc(var(--size-field,.25rem)*10);font-size:.875rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}}}.\32 xl\:input-lg{--size:calc(var(--size-field,.25rem)*12);font-size:1.125rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}}}.\32 xl\:input-xl{--size:calc(var(--size-field,.25rem)*14);font-size:1.375rem;&[type=number]{&::-webkit-inner-spin-button{margin-block:-1rem;margin-inline-end:-.75rem}}}}.link{cursor:pointer;text-decoration-line:underline;&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible{outline-offset:2px;outline:2px solid}}.link-hover{text-decoration-line:none;&:hover{@media (hover:hover){&{text-decoration-line:underline}}}}.link-primary{color:var(--color-primary);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-primary)80%,#000)}}}.link-secondary{color:var(--color-secondary);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-secondary)80%,#000)}}}.link-accent{color:var(--color-accent);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-accent)80%,#000)}}}.link-neutral{color:var(--color-neutral);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-neutral)80%,#000)}}}.link-success{color:var(--color-success);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-success)80%,#000)}}}.link-info{color:var(--color-info);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-info)80%,#000)}}}.link-warning{color:var(--color-warning);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-warning)80%,#000)}}}.link-error{color:var(--color-error);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-error)80%,#000)}}}@media (width>=640px){.sm\:link{cursor:pointer;text-decoration-line:underline;&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible{outline-offset:2px;outline:2px solid}}.sm\:link-hover{text-decoration-line:none;&:hover{@media (hover:hover){&{text-decoration-line:underline}}}}.sm\:link-primary{color:var(--color-primary);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-primary)80%,#000)}}}.sm\:link-secondary{color:var(--color-secondary);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-secondary)80%,#000)}}}.sm\:link-accent{color:var(--color-accent);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-accent)80%,#000)}}}.sm\:link-neutral{color:var(--color-neutral);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-neutral)80%,#000)}}}.sm\:link-success{color:var(--color-success);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-success)80%,#000)}}}.sm\:link-info{color:var(--color-info);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-info)80%,#000)}}}.sm\:link-warning{color:var(--color-warning);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-warning)80%,#000)}}}.sm\:link-error{color:var(--color-error);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-error)80%,#000)}}}}@media (width>=768px){.md\:link{cursor:pointer;text-decoration-line:underline;&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible{outline-offset:2px;outline:2px solid}}.md\:link-hover{text-decoration-line:none;&:hover{@media (hover:hover){&{text-decoration-line:underline}}}}.md\:link-primary{color:var(--color-primary);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-primary)80%,#000)}}}.md\:link-secondary{color:var(--color-secondary);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-secondary)80%,#000)}}}.md\:link-accent{color:var(--color-accent);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-accent)80%,#000)}}}.md\:link-neutral{color:var(--color-neutral);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-neutral)80%,#000)}}}.md\:link-success{color:var(--color-success);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-success)80%,#000)}}}.md\:link-info{color:var(--color-info);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-info)80%,#000)}}}.md\:link-warning{color:var(--color-warning);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-warning)80%,#000)}}}.md\:link-error{color:var(--color-error);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-error)80%,#000)}}}}@media (width>=1024px){.lg\:link{cursor:pointer;text-decoration-line:underline;&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible{outline-offset:2px;outline:2px solid}}.lg\:link-hover{text-decoration-line:none;&:hover{@media (hover:hover){&{text-decoration-line:underline}}}}.lg\:link-primary{color:var(--color-primary);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-primary)80%,#000)}}}.lg\:link-secondary{color:var(--color-secondary);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-secondary)80%,#000)}}}.lg\:link-accent{color:var(--color-accent);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-accent)80%,#000)}}}.lg\:link-neutral{color:var(--color-neutral);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-neutral)80%,#000)}}}.lg\:link-success{color:var(--color-success);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-success)80%,#000)}}}.lg\:link-info{color:var(--color-info);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-info)80%,#000)}}}.lg\:link-warning{color:var(--color-warning);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-warning)80%,#000)}}}.lg\:link-error{color:var(--color-error);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-error)80%,#000)}}}}@media (width>=1280px){.xl\:link{cursor:pointer;text-decoration-line:underline;&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible{outline-offset:2px;outline:2px solid}}.xl\:link-hover{text-decoration-line:none;&:hover{@media (hover:hover){&{text-decoration-line:underline}}}}.xl\:link-primary{color:var(--color-primary);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-primary)80%,#000)}}}.xl\:link-secondary{color:var(--color-secondary);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-secondary)80%,#000)}}}.xl\:link-accent{color:var(--color-accent);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-accent)80%,#000)}}}.xl\:link-neutral{color:var(--color-neutral);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-neutral)80%,#000)}}}.xl\:link-success{color:var(--color-success);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-success)80%,#000)}}}.xl\:link-info{color:var(--color-info);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-info)80%,#000)}}}.xl\:link-warning{color:var(--color-warning);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-warning)80%,#000)}}}.xl\:link-error{color:var(--color-error);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-error)80%,#000)}}}}@media (width>=1536px){.\32 xl\:link{cursor:pointer;text-decoration-line:underline;&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible{outline-offset:2px;outline:2px solid}}.\32 xl\:link-hover{text-decoration-line:none;&:hover{@media (hover:hover){&{text-decoration-line:underline}}}}.\32 xl\:link-primary{color:var(--color-primary);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-primary)80%,#000)}}}.\32 xl\:link-secondary{color:var(--color-secondary);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-secondary)80%,#000)}}}.\32 xl\:link-accent{color:var(--color-accent);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-accent)80%,#000)}}}.\32 xl\:link-neutral{color:var(--color-neutral);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-neutral)80%,#000)}}}.\32 xl\:link-success{color:var(--color-success);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-success)80%,#000)}}}.\32 xl\:link-info{color:var(--color-info);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-info)80%,#000)}}}.\32 xl\:link-warning{color:var(--color-warning);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-warning)80%,#000)}}}.\32 xl\:link-error{color:var(--color-error);@media (hover:hover){&:hover{color:color-mix(in oklab,var(--color-error)80%,#000)}}}}.badge{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border)solid var(--badge-color,var(--color-base-200));width:fit-content;padding-inline:calc(.25rem*3 - var(--border));background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.badge-outline{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}.badge-dash{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-style:dashed;border-color:currentColor}.badge-soft{color:var(--badge-color,var(--color-base-content));background-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))8%,var(--color-base-100));border-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))10%,var(--color-base-100));background-image:none}.badge-primary{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}.badge-secondary{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}.badge-accent{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}.badge-neutral{--badge-color:var(--color-neutral);--badge-fg:var(--color-neutral-content)}.badge-info{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}.badge-success{--badge-color:var(--color-success);--badge-fg:var(--color-success-content)}.badge-warning{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}.badge-error{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}.badge-ghost{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}.badge-xs{--size:calc(var(--size-selector,.25rem)*4);padding-inline:calc(.25rem*2 - var(--border));font-size:.625rem}.badge-sm{--size:calc(var(--size-selector,.25rem)*5);padding-inline:calc(.25rem*2.5 - var(--border));font-size:.75rem}.badge-md{--size:calc(var(--size-selector,.25rem)*6);padding-inline:calc(.25rem*3 - var(--border));font-size:.875rem}.badge-lg{--size:calc(var(--size-selector,.25rem)*7);padding-inline:calc(.25rem*3.5 - var(--border));font-size:1rem}.badge-xl{--size:calc(var(--size-selector,.25rem)*8);padding-inline:calc(.25rem*4 - var(--border));font-size:1.125rem}@media (width>=640px){.sm\:badge{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border)solid var(--badge-color,var(--color-base-200));width:fit-content;padding-inline:calc(.25rem*3 - var(--border));background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.sm\:badge-outline{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}.sm\:badge-dash{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-style:dashed;border-color:currentColor}.sm\:badge-soft{color:var(--badge-color,var(--color-base-content));background-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))8%,var(--color-base-100));border-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))10%,var(--color-base-100));background-image:none}.sm\:badge-primary{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}.sm\:badge-secondary{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}.sm\:badge-accent{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}.sm\:badge-neutral{--badge-color:var(--color-neutral);--badge-fg:var(--color-neutral-content)}.sm\:badge-info{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}.sm\:badge-success{--badge-color:var(--color-success);--badge-fg:var(--color-success-content)}.sm\:badge-warning{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}.sm\:badge-error{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}.sm\:badge-ghost{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}.sm\:badge-xs{--size:calc(var(--size-selector,.25rem)*4);padding-inline:calc(.25rem*2 - var(--border));font-size:.625rem}.sm\:badge-sm{--size:calc(var(--size-selector,.25rem)*5);padding-inline:calc(.25rem*2.5 - var(--border));font-size:.75rem}.sm\:badge-md{--size:calc(var(--size-selector,.25rem)*6);padding-inline:calc(.25rem*3 - var(--border));font-size:.875rem}.sm\:badge-lg{--size:calc(var(--size-selector,.25rem)*7);padding-inline:calc(.25rem*3.5 - var(--border));font-size:1rem}.sm\:badge-xl{--size:calc(var(--size-selector,.25rem)*8);padding-inline:calc(.25rem*4 - var(--border));font-size:1.125rem}}@media (width>=768px){.md\:badge{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border)solid var(--badge-color,var(--color-base-200));width:fit-content;padding-inline:calc(.25rem*3 - var(--border));background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.md\:badge-outline{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}.md\:badge-dash{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-style:dashed;border-color:currentColor}.md\:badge-soft{color:var(--badge-color,var(--color-base-content));background-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))8%,var(--color-base-100));border-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))10%,var(--color-base-100));background-image:none}.md\:badge-primary{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}.md\:badge-secondary{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}.md\:badge-accent{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}.md\:badge-neutral{--badge-color:var(--color-neutral);--badge-fg:var(--color-neutral-content)}.md\:badge-info{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}.md\:badge-success{--badge-color:var(--color-success);--badge-fg:var(--color-success-content)}.md\:badge-warning{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}.md\:badge-error{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}.md\:badge-ghost{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}.md\:badge-xs{--size:calc(var(--size-selector,.25rem)*4);padding-inline:calc(.25rem*2 - var(--border));font-size:.625rem}.md\:badge-sm{--size:calc(var(--size-selector,.25rem)*5);padding-inline:calc(.25rem*2.5 - var(--border));font-size:.75rem}.md\:badge-md{--size:calc(var(--size-selector,.25rem)*6);padding-inline:calc(.25rem*3 - var(--border));font-size:.875rem}.md\:badge-lg{--size:calc(var(--size-selector,.25rem)*7);padding-inline:calc(.25rem*3.5 - var(--border));font-size:1rem}.md\:badge-xl{--size:calc(var(--size-selector,.25rem)*8);padding-inline:calc(.25rem*4 - var(--border));font-size:1.125rem}}@media (width>=1024px){.lg\:badge{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border)solid var(--badge-color,var(--color-base-200));width:fit-content;padding-inline:calc(.25rem*3 - var(--border));background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.lg\:badge-outline{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}.lg\:badge-dash{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-style:dashed;border-color:currentColor}.lg\:badge-soft{color:var(--badge-color,var(--color-base-content));background-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))8%,var(--color-base-100));border-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))10%,var(--color-base-100));background-image:none}.lg\:badge-primary{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}.lg\:badge-secondary{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}.lg\:badge-accent{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}.lg\:badge-neutral{--badge-color:var(--color-neutral);--badge-fg:var(--color-neutral-content)}.lg\:badge-info{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}.lg\:badge-success{--badge-color:var(--color-success);--badge-fg:var(--color-success-content)}.lg\:badge-warning{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}.lg\:badge-error{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}.lg\:badge-ghost{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}.lg\:badge-xs{--size:calc(var(--size-selector,.25rem)*4);padding-inline:calc(.25rem*2 - var(--border));font-size:.625rem}.lg\:badge-sm{--size:calc(var(--size-selector,.25rem)*5);padding-inline:calc(.25rem*2.5 - var(--border));font-size:.75rem}.lg\:badge-md{--size:calc(var(--size-selector,.25rem)*6);padding-inline:calc(.25rem*3 - var(--border));font-size:.875rem}.lg\:badge-lg{--size:calc(var(--size-selector,.25rem)*7);padding-inline:calc(.25rem*3.5 - var(--border));font-size:1rem}.lg\:badge-xl{--size:calc(var(--size-selector,.25rem)*8);padding-inline:calc(.25rem*4 - var(--border));font-size:1.125rem}}@media (width>=1280px){.xl\:badge{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border)solid var(--badge-color,var(--color-base-200));width:fit-content;padding-inline:calc(.25rem*3 - var(--border));background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.xl\:badge-outline{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}.xl\:badge-dash{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-style:dashed;border-color:currentColor}.xl\:badge-soft{color:var(--badge-color,var(--color-base-content));background-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))8%,var(--color-base-100));border-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))10%,var(--color-base-100));background-image:none}.xl\:badge-primary{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}.xl\:badge-secondary{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}.xl\:badge-accent{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}.xl\:badge-neutral{--badge-color:var(--color-neutral);--badge-fg:var(--color-neutral-content)}.xl\:badge-info{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}.xl\:badge-success{--badge-color:var(--color-success);--badge-fg:var(--color-success-content)}.xl\:badge-warning{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}.xl\:badge-error{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}.xl\:badge-ghost{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}.xl\:badge-xs{--size:calc(var(--size-selector,.25rem)*4);padding-inline:calc(.25rem*2 - var(--border));font-size:.625rem}.xl\:badge-sm{--size:calc(var(--size-selector,.25rem)*5);padding-inline:calc(.25rem*2.5 - var(--border));font-size:.75rem}.xl\:badge-md{--size:calc(var(--size-selector,.25rem)*6);padding-inline:calc(.25rem*3 - var(--border));font-size:.875rem}.xl\:badge-lg{--size:calc(var(--size-selector,.25rem)*7);padding-inline:calc(.25rem*3.5 - var(--border));font-size:1rem}.xl\:badge-xl{--size:calc(var(--size-selector,.25rem)*8);padding-inline:calc(.25rem*4 - var(--border));font-size:1.125rem}}@media (width>=1536px){.\32 xl\:badge{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border)solid var(--badge-color,var(--color-base-200));width:fit-content;padding-inline:calc(.25rem*3 - var(--border));background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.\32 xl\:badge-outline{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}.\32 xl\:badge-dash{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-style:dashed;border-color:currentColor}.\32 xl\:badge-soft{color:var(--badge-color,var(--color-base-content));background-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))8%,var(--color-base-100));border-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))10%,var(--color-base-100));background-image:none}.\32 xl\:badge-primary{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}.\32 xl\:badge-secondary{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}.\32 xl\:badge-accent{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}.\32 xl\:badge-neutral{--badge-color:var(--color-neutral);--badge-fg:var(--color-neutral-content)}.\32 xl\:badge-info{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}.\32 xl\:badge-success{--badge-color:var(--color-success);--badge-fg:var(--color-success-content)}.\32 xl\:badge-warning{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}.\32 xl\:badge-error{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}.\32 xl\:badge-ghost{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}.\32 xl\:badge-xs{--size:calc(var(--size-selector,.25rem)*4);padding-inline:calc(.25rem*2 - var(--border));font-size:.625rem}.\32 xl\:badge-sm{--size:calc(var(--size-selector,.25rem)*5);padding-inline:calc(.25rem*2.5 - var(--border));font-size:.75rem}.\32 xl\:badge-md{--size:calc(var(--size-selector,.25rem)*6);padding-inline:calc(.25rem*3 - var(--border));font-size:.875rem}.\32 xl\:badge-lg{--size:calc(var(--size-selector,.25rem)*7);padding-inline:calc(.25rem*3.5 - var(--border));font-size:1rem}.\32 xl\:badge-xl{--size:calc(var(--size-selector,.25rem)*8);padding-inline:calc(.25rem*4 - var(--border));font-size:1.125rem}}.toast{inset-inline:auto 1rem;translate:var(--toast-x,0)var(--toast-y,0);background-color:#0000;flex-direction:column;gap:.5rem;width:max-content;max-width:calc(100vw - 2rem);display:flex;position:fixed;top:auto;bottom:1rem;&>*{animation:.25s ease-out toast}&:where(.toast-start){--toast-x:0;inset-inline:1rem auto}&:where(.toast-center){--toast-x:-50%;inset-inline:50%}&:where(.toast-end){--toast-x:0;inset-inline:auto 1rem}&:where(.toast-bottom){--toast-y:0;top:auto;bottom:1rem}&:where(.toast-middle){--toast-y:-50%;top:50%;bottom:auto}&:where(.toast-top){--toast-y:0;top:1rem;bottom:auto}}@keyframes toast{0%{opacity:0;scale:.9}to{opacity:1;scale:1}}@media (width>=640px){.sm\:toast{inset-inline:auto 1rem;translate:var(--toast-x,0)var(--toast-y,0);background-color:#0000;flex-direction:column;gap:.5rem;width:max-content;max-width:calc(100vw - 2rem);display:flex;position:fixed;top:auto;bottom:1rem;&>*{animation:.25s ease-out toast}&:where(.toast-start){--toast-x:0;inset-inline:1rem auto}&:where(.toast-center){--toast-x:-50%;inset-inline:50%}&:where(.toast-end){--toast-x:0;inset-inline:auto 1rem}&:where(.toast-bottom){--toast-y:0;top:auto;bottom:1rem}&:where(.toast-middle){--toast-y:-50%;top:50%;bottom:auto}&:where(.toast-top){--toast-y:0;top:1rem;bottom:auto}}}@media (width>=768px){.md\:toast{inset-inline:auto 1rem;translate:var(--toast-x,0)var(--toast-y,0);background-color:#0000;flex-direction:column;gap:.5rem;width:max-content;max-width:calc(100vw - 2rem);display:flex;position:fixed;top:auto;bottom:1rem;&>*{animation:.25s ease-out toast}&:where(.toast-start){--toast-x:0;inset-inline:1rem auto}&:where(.toast-center){--toast-x:-50%;inset-inline:50%}&:where(.toast-end){--toast-x:0;inset-inline:auto 1rem}&:where(.toast-bottom){--toast-y:0;top:auto;bottom:1rem}&:where(.toast-middle){--toast-y:-50%;top:50%;bottom:auto}&:where(.toast-top){--toast-y:0;top:1rem;bottom:auto}}}@media (width>=1024px){.lg\:toast{inset-inline:auto 1rem;translate:var(--toast-x,0)var(--toast-y,0);background-color:#0000;flex-direction:column;gap:.5rem;width:max-content;max-width:calc(100vw - 2rem);display:flex;position:fixed;top:auto;bottom:1rem;&>*{animation:.25s ease-out toast}&:where(.toast-start){--toast-x:0;inset-inline:1rem auto}&:where(.toast-center){--toast-x:-50%;inset-inline:50%}&:where(.toast-end){--toast-x:0;inset-inline:auto 1rem}&:where(.toast-bottom){--toast-y:0;top:auto;bottom:1rem}&:where(.toast-middle){--toast-y:-50%;top:50%;bottom:auto}&:where(.toast-top){--toast-y:0;top:1rem;bottom:auto}}}@media (width>=1280px){.xl\:toast{inset-inline:auto 1rem;translate:var(--toast-x,0)var(--toast-y,0);background-color:#0000;flex-direction:column;gap:.5rem;width:max-content;max-width:calc(100vw - 2rem);display:flex;position:fixed;top:auto;bottom:1rem;&>*{animation:.25s ease-out toast}&:where(.toast-start){--toast-x:0;inset-inline:1rem auto}&:where(.toast-center){--toast-x:-50%;inset-inline:50%}&:where(.toast-end){--toast-x:0;inset-inline:auto 1rem}&:where(.toast-bottom){--toast-y:0;top:auto;bottom:1rem}&:where(.toast-middle){--toast-y:-50%;top:50%;bottom:auto}&:where(.toast-top){--toast-y:0;top:1rem;bottom:auto}}}@media (width>=1536px){.\32 xl\:toast{inset-inline:auto 1rem;translate:var(--toast-x,0)var(--toast-y,0);background-color:#0000;flex-direction:column;gap:.5rem;width:max-content;max-width:calc(100vw - 2rem);display:flex;position:fixed;top:auto;bottom:1rem;&>*{animation:.25s ease-out toast}&:where(.toast-start){--toast-x:0;inset-inline:1rem auto}&:where(.toast-center){--toast-x:-50%;inset-inline:50%}&:where(.toast-end){--toast-x:0;inset-inline:auto 1rem}&:where(.toast-bottom){--toast-y:0;top:auto;bottom:1rem}&:where(.toast-middle){--toast-y:-50%;top:50%;bottom:auto}&:where(.toast-top){--toast-y:0;top:1rem;bottom:auto}}}.list{flex-direction:column;font-size:.875rem;display:flex;& :where(.list-row){--list-grid-cols:minmax(0,auto)1fr;border-radius:var(--radius-box);word-break:break-word;grid-auto-flow:column;grid-template-columns:var(--list-grid-cols);gap:1rem;padding:1rem;display:grid;position:relative;&:has(.list-col-grow:first-child){--list-grid-cols:1fr}&:has(.list-col-grow:nth-child(2)){--list-grid-cols:minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(3)){--list-grid-cols:minmax(0,auto)minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(4)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(5)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(6)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}& :not(.list-col-wrap){grid-row-start:1}}&>:not(:last-child){&.list-row,& .list-row{&:after{content:"";border-bottom:var(--border)solid;inset-inline:var(--radius-box);border-color:color-mix(in oklab,var(--color-base-content)5%,transparent);position:absolute;bottom:0}}}}.list-col-wrap{grid-row-start:2}@media (width>=640px){.sm\:list{flex-direction:column;font-size:.875rem;display:flex;& :where(.list-row){--list-grid-cols:minmax(0,auto)1fr;border-radius:var(--radius-box);word-break:break-word;grid-auto-flow:column;grid-template-columns:var(--list-grid-cols);gap:1rem;padding:1rem;display:grid;position:relative;&:has(.list-col-grow:first-child){--list-grid-cols:1fr}&:has(.list-col-grow:nth-child(2)){--list-grid-cols:minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(3)){--list-grid-cols:minmax(0,auto)minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(4)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(5)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(6)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}& :not(.list-col-wrap){grid-row-start:1}}&>:not(:last-child){&.list-row,& .list-row{&:after{content:"";border-bottom:var(--border)solid;inset-inline:var(--radius-box);border-color:color-mix(in oklab,var(--color-base-content)5%,transparent);position:absolute;bottom:0}}}}.sm\:list-col-wrap{grid-row-start:2}}@media (width>=768px){.md\:list{flex-direction:column;font-size:.875rem;display:flex;& :where(.list-row){--list-grid-cols:minmax(0,auto)1fr;border-radius:var(--radius-box);word-break:break-word;grid-auto-flow:column;grid-template-columns:var(--list-grid-cols);gap:1rem;padding:1rem;display:grid;position:relative;&:has(.list-col-grow:first-child){--list-grid-cols:1fr}&:has(.list-col-grow:nth-child(2)){--list-grid-cols:minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(3)){--list-grid-cols:minmax(0,auto)minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(4)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(5)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(6)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}& :not(.list-col-wrap){grid-row-start:1}}&>:not(:last-child){&.list-row,& .list-row{&:after{content:"";border-bottom:var(--border)solid;inset-inline:var(--radius-box);border-color:color-mix(in oklab,var(--color-base-content)5%,transparent);position:absolute;bottom:0}}}}.md\:list-col-wrap{grid-row-start:2}}@media (width>=1024px){.lg\:list{flex-direction:column;font-size:.875rem;display:flex;& :where(.list-row){--list-grid-cols:minmax(0,auto)1fr;border-radius:var(--radius-box);word-break:break-word;grid-auto-flow:column;grid-template-columns:var(--list-grid-cols);gap:1rem;padding:1rem;display:grid;position:relative;&:has(.list-col-grow:first-child){--list-grid-cols:1fr}&:has(.list-col-grow:nth-child(2)){--list-grid-cols:minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(3)){--list-grid-cols:minmax(0,auto)minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(4)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(5)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(6)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}& :not(.list-col-wrap){grid-row-start:1}}&>:not(:last-child){&.list-row,& .list-row{&:after{content:"";border-bottom:var(--border)solid;inset-inline:var(--radius-box);border-color:color-mix(in oklab,var(--color-base-content)5%,transparent);position:absolute;bottom:0}}}}.lg\:list-col-wrap{grid-row-start:2}}@media (width>=1280px){.xl\:list{flex-direction:column;font-size:.875rem;display:flex;& :where(.list-row){--list-grid-cols:minmax(0,auto)1fr;border-radius:var(--radius-box);word-break:break-word;grid-auto-flow:column;grid-template-columns:var(--list-grid-cols);gap:1rem;padding:1rem;display:grid;position:relative;&:has(.list-col-grow:first-child){--list-grid-cols:1fr}&:has(.list-col-grow:nth-child(2)){--list-grid-cols:minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(3)){--list-grid-cols:minmax(0,auto)minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(4)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(5)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(6)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}& :not(.list-col-wrap){grid-row-start:1}}&>:not(:last-child){&.list-row,& .list-row{&:after{content:"";border-bottom:var(--border)solid;inset-inline:var(--radius-box);border-color:color-mix(in oklab,var(--color-base-content)5%,transparent);position:absolute;bottom:0}}}}.xl\:list-col-wrap{grid-row-start:2}}@media (width>=1536px){.\32 xl\:list{flex-direction:column;font-size:.875rem;display:flex;& :where(.list-row){--list-grid-cols:minmax(0,auto)1fr;border-radius:var(--radius-box);word-break:break-word;grid-auto-flow:column;grid-template-columns:var(--list-grid-cols);gap:1rem;padding:1rem;display:grid;position:relative;&:has(.list-col-grow:first-child){--list-grid-cols:1fr}&:has(.list-col-grow:nth-child(2)){--list-grid-cols:minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(3)){--list-grid-cols:minmax(0,auto)minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(4)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(5)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}&:has(.list-col-grow:nth-child(6)){--list-grid-cols:minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)minmax(0,auto)1fr}& :not(.list-col-wrap){grid-row-start:1}}&>:not(:last-child){&.list-row,& .list-row{&:after{content:"";border-bottom:var(--border)solid;inset-inline:var(--radius-box);border-color:color-mix(in oklab,var(--color-base-content)5%,transparent);position:absolute;bottom:0}}}}.\32 xl\:list-col-wrap{grid-row-start:2}}.kbd{border-radius:var(--radius-field);background-color:var(--color-base-200);vertical-align:middle;border:var(--border)solid color-mix(in srgb,var(--color-base-content)20%,#0000);border-bottom:calc(var(--border) + 1px)solid color-mix(in srgb,var(--color-base-content)20%,#0000);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);min-width:var(--size);justify-content:center;align-items:center;padding-left:.5em;padding-right:.5em;font-size:.875rem;display:inline-flex}.kbd-xs{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}.kbd-sm{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}.kbd-md{--size:calc(var(--size-selector,.25rem)*6);font-size:.875rem}.kbd-lg{--size:calc(var(--size-selector,.25rem)*7);font-size:1rem}.kbd-xl{--size:calc(var(--size-selector,.25rem)*8);font-size:1.125rem}@media (width>=640px){.sm\:kbd{border-radius:var(--radius-field);background-color:var(--color-base-200);vertical-align:middle;border:var(--border)solid color-mix(in srgb,var(--color-base-content)20%,#0000);border-bottom:calc(var(--border) + 1px)solid color-mix(in srgb,var(--color-base-content)20%,#0000);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);min-width:var(--size);justify-content:center;align-items:center;padding-left:.5em;padding-right:.5em;font-size:.875rem;display:inline-flex}.sm\:kbd-xs{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}.sm\:kbd-sm{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}.sm\:kbd-md{--size:calc(var(--size-selector,.25rem)*6);font-size:.875rem}.sm\:kbd-lg{--size:calc(var(--size-selector,.25rem)*7);font-size:1rem}.sm\:kbd-xl{--size:calc(var(--size-selector,.25rem)*8);font-size:1.125rem}}@media (width>=768px){.md\:kbd{border-radius:var(--radius-field);background-color:var(--color-base-200);vertical-align:middle;border:var(--border)solid color-mix(in srgb,var(--color-base-content)20%,#0000);border-bottom:calc(var(--border) + 1px)solid color-mix(in srgb,var(--color-base-content)20%,#0000);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);min-width:var(--size);justify-content:center;align-items:center;padding-left:.5em;padding-right:.5em;font-size:.875rem;display:inline-flex}.md\:kbd-xs{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}.md\:kbd-sm{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}.md\:kbd-md{--size:calc(var(--size-selector,.25rem)*6);font-size:.875rem}.md\:kbd-lg{--size:calc(var(--size-selector,.25rem)*7);font-size:1rem}.md\:kbd-xl{--size:calc(var(--size-selector,.25rem)*8);font-size:1.125rem}}@media (width>=1024px){.lg\:kbd{border-radius:var(--radius-field);background-color:var(--color-base-200);vertical-align:middle;border:var(--border)solid color-mix(in srgb,var(--color-base-content)20%,#0000);border-bottom:calc(var(--border) + 1px)solid color-mix(in srgb,var(--color-base-content)20%,#0000);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);min-width:var(--size);justify-content:center;align-items:center;padding-left:.5em;padding-right:.5em;font-size:.875rem;display:inline-flex}.lg\:kbd-xs{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}.lg\:kbd-sm{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}.lg\:kbd-md{--size:calc(var(--size-selector,.25rem)*6);font-size:.875rem}.lg\:kbd-lg{--size:calc(var(--size-selector,.25rem)*7);font-size:1rem}.lg\:kbd-xl{--size:calc(var(--size-selector,.25rem)*8);font-size:1.125rem}}@media (width>=1280px){.xl\:kbd{border-radius:var(--radius-field);background-color:var(--color-base-200);vertical-align:middle;border:var(--border)solid color-mix(in srgb,var(--color-base-content)20%,#0000);border-bottom:calc(var(--border) + 1px)solid color-mix(in srgb,var(--color-base-content)20%,#0000);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);min-width:var(--size);justify-content:center;align-items:center;padding-left:.5em;padding-right:.5em;font-size:.875rem;display:inline-flex}.xl\:kbd-xs{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}.xl\:kbd-sm{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}.xl\:kbd-md{--size:calc(var(--size-selector,.25rem)*6);font-size:.875rem}.xl\:kbd-lg{--size:calc(var(--size-selector,.25rem)*7);font-size:1rem}.xl\:kbd-xl{--size:calc(var(--size-selector,.25rem)*8);font-size:1.125rem}}@media (width>=1536px){.\32 xl\:kbd{border-radius:var(--radius-field);background-color:var(--color-base-200);vertical-align:middle;border:var(--border)solid color-mix(in srgb,var(--color-base-content)20%,#0000);border-bottom:calc(var(--border) + 1px)solid color-mix(in srgb,var(--color-base-content)20%,#0000);--size:calc(var(--size-selector,.25rem)*6);height:var(--size);min-width:var(--size);justify-content:center;align-items:center;padding-left:.5em;padding-right:.5em;font-size:.875rem;display:inline-flex}.\32 xl\:kbd-xs{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}.\32 xl\:kbd-sm{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}.\32 xl\:kbd-md{--size:calc(var(--size-selector,.25rem)*6);font-size:.875rem}.\32 xl\:kbd-lg{--size:calc(var(--size-selector,.25rem)*7);font-size:1rem}.\32 xl\:kbd-xl{--size:calc(var(--size-selector,.25rem)*8);font-size:1.125rem}}.divider{white-space:nowrap;height:1rem;margin:var(--divider-m,1rem 0);--divider-color:color-mix(in oklab,var(--color-base-content)10%,transparent);flex-direction:row;align-self:stretch;align-items:center;display:flex;&:before,&:after{content:"";background-color:var(--divider-color);flex-grow:1;width:100%;height:.125rem}@media print{&:before,&:after{border:.5px solid}}&:not(:empty){gap:1rem}}.divider-horizontal{--divider-m:0 1rem;&.divider{flex-direction:column;width:1rem;height:auto;&:before,&:after{width:.125rem;height:100%}}}.divider-vertical{--divider-m:1rem 0;&.divider{flex-direction:row;width:auto;height:1rem;&:before,&:after{width:100%;height:.125rem}}}.divider-neutral{&:before,&:after{background-color:var(--color-neutral)}}.divider-primary{&:before,&:after{background-color:var(--color-primary)}}.divider-secondary{&:before,&:after{background-color:var(--color-secondary)}}.divider-accent{&:before,&:after{background-color:var(--color-accent)}}.divider-success{&:before,&:after{background-color:var(--color-success)}}.divider-warning{&:before,&:after{background-color:var(--color-warning)}}.divider-info{&:before,&:after{background-color:var(--color-info)}}.divider-error{&:before,&:after{background-color:var(--color-error)}}.divider-start:before,.divider-end:after{display:none}@media (width>=640px){.sm\:divider{white-space:nowrap;height:1rem;margin:var(--divider-m,1rem 0);--divider-color:color-mix(in oklab,var(--color-base-content)10%,transparent);flex-direction:row;align-self:stretch;align-items:center;display:flex;&:before,&:after{content:"";background-color:var(--divider-color);flex-grow:1;width:100%;height:.125rem}@media print{&:before,&:after{border:.5px solid}}&:not(:empty){gap:1rem}}.sm\:divider-horizontal{--divider-m:0 1rem;&.divider{flex-direction:column;width:1rem;height:auto;&:before,&:after{width:.125rem;height:100%}}}.sm\:divider-vertical{--divider-m:1rem 0;&.divider{flex-direction:row;width:auto;height:1rem;&:before,&:after{width:100%;height:.125rem}}}.sm\:divider-neutral{&:before,&:after{background-color:var(--color-neutral)}}.sm\:divider-primary{&:before,&:after{background-color:var(--color-primary)}}.sm\:divider-secondary{&:before,&:after{background-color:var(--color-secondary)}}.sm\:divider-accent{&:before,&:after{background-color:var(--color-accent)}}.sm\:divider-success{&:before,&:after{background-color:var(--color-success)}}.sm\:divider-warning{&:before,&:after{background-color:var(--color-warning)}}.sm\:divider-info{&:before,&:after{background-color:var(--color-info)}}.sm\:divider-error{&:before,&:after{background-color:var(--color-error)}}.sm\:divider-start:before,.sm\:divider-end:after{display:none}}@media (width>=768px){.md\:divider{white-space:nowrap;height:1rem;margin:var(--divider-m,1rem 0);--divider-color:color-mix(in oklab,var(--color-base-content)10%,transparent);flex-direction:row;align-self:stretch;align-items:center;display:flex;&:before,&:after{content:"";background-color:var(--divider-color);flex-grow:1;width:100%;height:.125rem}@media print{&:before,&:after{border:.5px solid}}&:not(:empty){gap:1rem}}.md\:divider-horizontal{--divider-m:0 1rem;&.divider{flex-direction:column;width:1rem;height:auto;&:before,&:after{width:.125rem;height:100%}}}.md\:divider-vertical{--divider-m:1rem 0;&.divider{flex-direction:row;width:auto;height:1rem;&:before,&:after{width:100%;height:.125rem}}}.md\:divider-neutral{&:before,&:after{background-color:var(--color-neutral)}}.md\:divider-primary{&:before,&:after{background-color:var(--color-primary)}}.md\:divider-secondary{&:before,&:after{background-color:var(--color-secondary)}}.md\:divider-accent{&:before,&:after{background-color:var(--color-accent)}}.md\:divider-success{&:before,&:after{background-color:var(--color-success)}}.md\:divider-warning{&:before,&:after{background-color:var(--color-warning)}}.md\:divider-info{&:before,&:after{background-color:var(--color-info)}}.md\:divider-error{&:before,&:after{background-color:var(--color-error)}}.md\:divider-start:before,.md\:divider-end:after{display:none}}@media (width>=1024px){.lg\:divider{white-space:nowrap;height:1rem;margin:var(--divider-m,1rem 0);--divider-color:color-mix(in oklab,var(--color-base-content)10%,transparent);flex-direction:row;align-self:stretch;align-items:center;display:flex;&:before,&:after{content:"";background-color:var(--divider-color);flex-grow:1;width:100%;height:.125rem}@media print{&:before,&:after{border:.5px solid}}&:not(:empty){gap:1rem}}.lg\:divider-horizontal{--divider-m:0 1rem;&.divider{flex-direction:column;width:1rem;height:auto;&:before,&:after{width:.125rem;height:100%}}}.lg\:divider-vertical{--divider-m:1rem 0;&.divider{flex-direction:row;width:auto;height:1rem;&:before,&:after{width:100%;height:.125rem}}}.lg\:divider-neutral{&:before,&:after{background-color:var(--color-neutral)}}.lg\:divider-primary{&:before,&:after{background-color:var(--color-primary)}}.lg\:divider-secondary{&:before,&:after{background-color:var(--color-secondary)}}.lg\:divider-accent{&:before,&:after{background-color:var(--color-accent)}}.lg\:divider-success{&:before,&:after{background-color:var(--color-success)}}.lg\:divider-warning{&:before,&:after{background-color:var(--color-warning)}}.lg\:divider-info{&:before,&:after{background-color:var(--color-info)}}.lg\:divider-error{&:before,&:after{background-color:var(--color-error)}}.lg\:divider-start:before,.lg\:divider-end:after{display:none}}@media (width>=1280px){.xl\:divider{white-space:nowrap;height:1rem;margin:var(--divider-m,1rem 0);--divider-color:color-mix(in oklab,var(--color-base-content)10%,transparent);flex-direction:row;align-self:stretch;align-items:center;display:flex;&:before,&:after{content:"";background-color:var(--divider-color);flex-grow:1;width:100%;height:.125rem}@media print{&:before,&:after{border:.5px solid}}&:not(:empty){gap:1rem}}.xl\:divider-horizontal{--divider-m:0 1rem;&.divider{flex-direction:column;width:1rem;height:auto;&:before,&:after{width:.125rem;height:100%}}}.xl\:divider-vertical{--divider-m:1rem 0;&.divider{flex-direction:row;width:auto;height:1rem;&:before,&:after{width:100%;height:.125rem}}}.xl\:divider-neutral{&:before,&:after{background-color:var(--color-neutral)}}.xl\:divider-primary{&:before,&:after{background-color:var(--color-primary)}}.xl\:divider-secondary{&:before,&:after{background-color:var(--color-secondary)}}.xl\:divider-accent{&:before,&:after{background-color:var(--color-accent)}}.xl\:divider-success{&:before,&:after{background-color:var(--color-success)}}.xl\:divider-warning{&:before,&:after{background-color:var(--color-warning)}}.xl\:divider-info{&:before,&:after{background-color:var(--color-info)}}.xl\:divider-error{&:before,&:after{background-color:var(--color-error)}}.xl\:divider-start:before,.xl\:divider-end:after{display:none}}@media (width>=1536px){.\32 xl\:divider{white-space:nowrap;height:1rem;margin:var(--divider-m,1rem 0);--divider-color:color-mix(in oklab,var(--color-base-content)10%,transparent);flex-direction:row;align-self:stretch;align-items:center;display:flex;&:before,&:after{content:"";background-color:var(--divider-color);flex-grow:1;width:100%;height:.125rem}@media print{&:before,&:after{border:.5px solid}}&:not(:empty){gap:1rem}}.\32 xl\:divider-horizontal{--divider-m:0 1rem;&.divider{flex-direction:column;width:1rem;height:auto;&:before,&:after{width:.125rem;height:100%}}}.\32 xl\:divider-vertical{--divider-m:1rem 0;&.divider{flex-direction:row;width:auto;height:1rem;&:before,&:after{width:100%;height:.125rem}}}.\32 xl\:divider-neutral{&:before,&:after{background-color:var(--color-neutral)}}.\32 xl\:divider-primary{&:before,&:after{background-color:var(--color-primary)}}.\32 xl\:divider-secondary{&:before,&:after{background-color:var(--color-secondary)}}.\32 xl\:divider-accent{&:before,&:after{background-color:var(--color-accent)}}.\32 xl\:divider-success{&:before,&:after{background-color:var(--color-success)}}.\32 xl\:divider-warning{&:before,&:after{background-color:var(--color-warning)}}.\32 xl\:divider-info{&:before,&:after{background-color:var(--color-info)}}.\32 xl\:divider-error{&:before,&:after{background-color:var(--color-error)}}.\32 xl\:divider-start:before,.\32 xl\:divider-end:after{display:none}}.validator{&:user-valid,&:has(:user-valid){&,&:focus,&:checked,&[aria-checked=true],&:focus-within{--input-color:var(--color-success)}}&:user-invalid,&:has(:user-invalid),&[aria-invalid]:not([aria-invalid=false]){&,&:focus,&:checked,&[aria-checked=true],&:focus-within{--input-color:var(--color-error)}&~.validator-hint{visibility:visible;color:var(--color-error);display:block}}}.validator-hint{visibility:hidden;margin-top:.5rem;font-size:.75rem}.breadcrumbs{max-width:100%;padding-block:.5rem;overflow-x:auto;&>menu,&>ul,&>ol{white-space:nowrap;align-items:center;min-height:min-content;display:flex;&>li{align-items:center;display:flex;&>*{cursor:pointer;align-items:center;gap:.5rem;display:flex;&:hover{@media (hover:hover){&{text-decoration-line:underline}}}&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible{outline-offset:2px;outline:2px solid}}&+:before{content:"";opacity:.4;background-color:#0000;border-top:1px solid;border-right:1px solid;width:.375rem;height:.375rem;margin-left:.5rem;margin-right:.75rem;display:block;rotate:45deg}[dir=rtl] &+:before{rotate:-135deg}}}}@media (width>=640px){.sm\:breadcrumbs{max-width:100%;padding-block:.5rem;overflow-x:auto;&>menu,&>ul,&>ol{white-space:nowrap;align-items:center;min-height:min-content;display:flex;&>li{align-items:center;display:flex;&>*{cursor:pointer;align-items:center;gap:.5rem;display:flex;&:hover{@media (hover:hover){&{text-decoration-line:underline}}}&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible{outline-offset:2px;outline:2px solid}}&+:before{content:"";opacity:.4;background-color:#0000;border-top:1px solid;border-right:1px solid;width:.375rem;height:.375rem;margin-left:.5rem;margin-right:.75rem;display:block;rotate:45deg}[dir=rtl] &+:before{rotate:-135deg}}}}}@media (width>=768px){.md\:breadcrumbs{max-width:100%;padding-block:.5rem;overflow-x:auto;&>menu,&>ul,&>ol{white-space:nowrap;align-items:center;min-height:min-content;display:flex;&>li{align-items:center;display:flex;&>*{cursor:pointer;align-items:center;gap:.5rem;display:flex;&:hover{@media (hover:hover){&{text-decoration-line:underline}}}&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible{outline-offset:2px;outline:2px solid}}&+:before{content:"";opacity:.4;background-color:#0000;border-top:1px solid;border-right:1px solid;width:.375rem;height:.375rem;margin-left:.5rem;margin-right:.75rem;display:block;rotate:45deg}[dir=rtl] &+:before{rotate:-135deg}}}}}@media (width>=1024px){.lg\:breadcrumbs{max-width:100%;padding-block:.5rem;overflow-x:auto;&>menu,&>ul,&>ol{white-space:nowrap;align-items:center;min-height:min-content;display:flex;&>li{align-items:center;display:flex;&>*{cursor:pointer;align-items:center;gap:.5rem;display:flex;&:hover{@media (hover:hover){&{text-decoration-line:underline}}}&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible{outline-offset:2px;outline:2px solid}}&+:before{content:"";opacity:.4;background-color:#0000;border-top:1px solid;border-right:1px solid;width:.375rem;height:.375rem;margin-left:.5rem;margin-right:.75rem;display:block;rotate:45deg}[dir=rtl] &+:before{rotate:-135deg}}}}}@media (width>=1280px){.xl\:breadcrumbs{max-width:100%;padding-block:.5rem;overflow-x:auto;&>menu,&>ul,&>ol{white-space:nowrap;align-items:center;min-height:min-content;display:flex;&>li{align-items:center;display:flex;&>*{cursor:pointer;align-items:center;gap:.5rem;display:flex;&:hover{@media (hover:hover){&{text-decoration-line:underline}}}&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible{outline-offset:2px;outline:2px solid}}&+:before{content:"";opacity:.4;background-color:#0000;border-top:1px solid;border-right:1px solid;width:.375rem;height:.375rem;margin-left:.5rem;margin-right:.75rem;display:block;rotate:45deg}[dir=rtl] &+:before{rotate:-135deg}}}}}@media (width>=1536px){.\32 xl\:breadcrumbs{max-width:100%;padding-block:.5rem;overflow-x:auto;&>menu,&>ul,&>ol{white-space:nowrap;align-items:center;min-height:min-content;display:flex;&>li{align-items:center;display:flex;&>*{cursor:pointer;align-items:center;gap:.5rem;display:flex;&:hover{@media (hover:hover){&{text-decoration-line:underline}}}&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible{outline-offset:2px;outline:2px solid}}&+:before{content:"";opacity:.4;background-color:#0000;border-top:1px solid;border-right:1px solid;width:.375rem;height:.375rem;margin-left:.5rem;margin-right:.75rem;display:block;rotate:45deg}[dir=rtl] &+:before{rotate:-135deg}}}}}.countdown{display:inline-flex;&.countdown{line-height:1em}&>*{height:1em;display:inline-block;overflow-y:hidden;&:before{content:"00\a 01\a 02\a 03\a 04\a 05\a 06\a 07\a 08\a 09\a 10\a 11\a 12\a 13\a 14\a 15\a 16\a 17\a 18\a 19\a 20\a 21\a 22\a 23\a 24\a 25\a 26\a 27\a 28\a 29\a 30\a 31\a 32\a 33\a 34\a 35\a 36\a 37\a 38\a 39\a 40\a 41\a 42\a 43\a 44\a 45\a 46\a 47\a 48\a 49\a 50\a 51\a 52\a 53\a 54\a 55\a 56\a 57\a 58\a 59\a 60\a 61\a 62\a 63\a 64\a 65\a 66\a 67\a 68\a 69\a 70\a 71\a 72\a 73\a 74\a 75\a 76\a 77\a 78\a 79\a 80\a 81\a 82\a 83\a 84\a 85\a 86\a 87\a 88\a 89\a 90\a 91\a 92\a 93\a 94\a 95\a 96\a 97\a 98\a 99\a ";white-space:pre;top:calc(var(--value)*-1em);text-align:center;transition:all 1s cubic-bezier(1,0,0,1);position:relative}}}.alert{border-radius:var(--radius-box);color:var(--color-base-content);background-color:var(--alert-color,var(--color-base-200));text-align:start;border:var(--border)solid var(--color-base-200);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);box-shadow:0 3px 0 -2px oklch(100% 0 0/calc(var(--depth)*.08))inset,0 1px color-mix(in oklab,color-mix(in oklab,#000 20%,var(--alert-color,var(--color-base-200)))calc(var(--depth)*20%),#0000),0 4px 3px -2px oklch(0% 0 0/calc(var(--depth)*.08));grid-template-columns:auto;grid-auto-flow:column;justify-content:start;place-items:center start;gap:1rem;padding-block:.75rem;padding-inline:1rem;font-size:.875rem;line-height:1.25rem;display:grid;&:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}&.alert-outline{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none}&.alert-dash{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none;border-style:dashed}&.alert-soft{color:var(--alert-color,var(--color-base-content));background:color-mix(in oklab,var(--alert-color,var(--color-base-content))8%,var(--color-base-100));border-color:color-mix(in oklab,var(--alert-color,var(--color-base-content))10%,var(--color-base-100));box-shadow:none;background-image:none}}.alert-info{border-color:var(--color-info);color:var(--color-info-content);--alert-color:var(--color-info)}.alert-success{border-color:var(--color-success);color:var(--color-success-content);--alert-color:var(--color-success)}.alert-warning{border-color:var(--color-warning);color:var(--color-warning-content);--alert-color:var(--color-warning)}.alert-error{border-color:var(--color-error);color:var(--color-error-content);--alert-color:var(--color-error)}.alert-vertical{text-align:center;grid-template-columns:auto;grid-auto-flow:row;justify-content:center;justify-items:center;&:has(:nth-child(2)){grid-template-columns:auto}}.alert-horizontal{text-align:start;grid-template-columns:auto;grid-auto-flow:column;justify-content:start;justify-items:start;&:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}}@media (width>=640px){.sm\:alert{border-radius:var(--radius-box);color:var(--color-base-content);background-color:var(--alert-color,var(--color-base-200));text-align:start;border:var(--border)solid var(--color-base-200);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);box-shadow:0 3px 0 -2px oklch(100% 0 0/calc(var(--depth)*.08))inset,0 1px color-mix(in oklab,color-mix(in oklab,#000 20%,var(--alert-color,var(--color-base-200)))calc(var(--depth)*20%),#0000),0 4px 3px -2px oklch(0% 0 0/calc(var(--depth)*.08));grid-template-columns:auto;grid-auto-flow:column;justify-content:start;place-items:center start;gap:1rem;padding-block:.75rem;padding-inline:1rem;font-size:.875rem;line-height:1.25rem;display:grid;&:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}&.alert-outline{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none}&.alert-dash{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none;border-style:dashed}&.alert-soft{color:var(--alert-color,var(--color-base-content));background:color-mix(in oklab,var(--alert-color,var(--color-base-content))8%,var(--color-base-100));border-color:color-mix(in oklab,var(--alert-color,var(--color-base-content))10%,var(--color-base-100));box-shadow:none;background-image:none}}.sm\:alert-info{border-color:var(--color-info);color:var(--color-info-content);--alert-color:var(--color-info)}.sm\:alert-success{border-color:var(--color-success);color:var(--color-success-content);--alert-color:var(--color-success)}.sm\:alert-warning{border-color:var(--color-warning);color:var(--color-warning-content);--alert-color:var(--color-warning)}.sm\:alert-error{border-color:var(--color-error);color:var(--color-error-content);--alert-color:var(--color-error)}.sm\:alert-vertical{text-align:center;grid-template-columns:auto;grid-auto-flow:row;justify-content:center;justify-items:center;&:has(:nth-child(2)){grid-template-columns:auto}}.sm\:alert-horizontal{text-align:start;grid-template-columns:auto;grid-auto-flow:column;justify-content:start;justify-items:start;&:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}}}@media (width>=768px){.md\:alert{border-radius:var(--radius-box);color:var(--color-base-content);background-color:var(--alert-color,var(--color-base-200));text-align:start;border:var(--border)solid var(--color-base-200);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);box-shadow:0 3px 0 -2px oklch(100% 0 0/calc(var(--depth)*.08))inset,0 1px color-mix(in oklab,color-mix(in oklab,#000 20%,var(--alert-color,var(--color-base-200)))calc(var(--depth)*20%),#0000),0 4px 3px -2px oklch(0% 0 0/calc(var(--depth)*.08));grid-template-columns:auto;grid-auto-flow:column;justify-content:start;place-items:center start;gap:1rem;padding-block:.75rem;padding-inline:1rem;font-size:.875rem;line-height:1.25rem;display:grid;&:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}&.alert-outline{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none}&.alert-dash{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none;border-style:dashed}&.alert-soft{color:var(--alert-color,var(--color-base-content));background:color-mix(in oklab,var(--alert-color,var(--color-base-content))8%,var(--color-base-100));border-color:color-mix(in oklab,var(--alert-color,var(--color-base-content))10%,var(--color-base-100));box-shadow:none;background-image:none}}.md\:alert-info{border-color:var(--color-info);color:var(--color-info-content);--alert-color:var(--color-info)}.md\:alert-success{border-color:var(--color-success);color:var(--color-success-content);--alert-color:var(--color-success)}.md\:alert-warning{border-color:var(--color-warning);color:var(--color-warning-content);--alert-color:var(--color-warning)}.md\:alert-error{border-color:var(--color-error);color:var(--color-error-content);--alert-color:var(--color-error)}.md\:alert-vertical{text-align:center;grid-template-columns:auto;grid-auto-flow:row;justify-content:center;justify-items:center;&:has(:nth-child(2)){grid-template-columns:auto}}.md\:alert-horizontal{text-align:start;grid-template-columns:auto;grid-auto-flow:column;justify-content:start;justify-items:start;&:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}}}@media (width>=1024px){.lg\:alert{border-radius:var(--radius-box);color:var(--color-base-content);background-color:var(--alert-color,var(--color-base-200));text-align:start;border:var(--border)solid var(--color-base-200);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);box-shadow:0 3px 0 -2px oklch(100% 0 0/calc(var(--depth)*.08))inset,0 1px color-mix(in oklab,color-mix(in oklab,#000 20%,var(--alert-color,var(--color-base-200)))calc(var(--depth)*20%),#0000),0 4px 3px -2px oklch(0% 0 0/calc(var(--depth)*.08));grid-template-columns:auto;grid-auto-flow:column;justify-content:start;place-items:center start;gap:1rem;padding-block:.75rem;padding-inline:1rem;font-size:.875rem;line-height:1.25rem;display:grid;&:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}&.alert-outline{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none}&.alert-dash{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none;border-style:dashed}&.alert-soft{color:var(--alert-color,var(--color-base-content));background:color-mix(in oklab,var(--alert-color,var(--color-base-content))8%,var(--color-base-100));border-color:color-mix(in oklab,var(--alert-color,var(--color-base-content))10%,var(--color-base-100));box-shadow:none;background-image:none}}.lg\:alert-info{border-color:var(--color-info);color:var(--color-info-content);--alert-color:var(--color-info)}.lg\:alert-success{border-color:var(--color-success);color:var(--color-success-content);--alert-color:var(--color-success)}.lg\:alert-warning{border-color:var(--color-warning);color:var(--color-warning-content);--alert-color:var(--color-warning)}.lg\:alert-error{border-color:var(--color-error);color:var(--color-error-content);--alert-color:var(--color-error)}.lg\:alert-vertical{text-align:center;grid-template-columns:auto;grid-auto-flow:row;justify-content:center;justify-items:center;&:has(:nth-child(2)){grid-template-columns:auto}}.lg\:alert-horizontal{text-align:start;grid-template-columns:auto;grid-auto-flow:column;justify-content:start;justify-items:start;&:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}}}@media (width>=1280px){.xl\:alert{border-radius:var(--radius-box);color:var(--color-base-content);background-color:var(--alert-color,var(--color-base-200));text-align:start;border:var(--border)solid var(--color-base-200);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);box-shadow:0 3px 0 -2px oklch(100% 0 0/calc(var(--depth)*.08))inset,0 1px color-mix(in oklab,color-mix(in oklab,#000 20%,var(--alert-color,var(--color-base-200)))calc(var(--depth)*20%),#0000),0 4px 3px -2px oklch(0% 0 0/calc(var(--depth)*.08));grid-template-columns:auto;grid-auto-flow:column;justify-content:start;place-items:center start;gap:1rem;padding-block:.75rem;padding-inline:1rem;font-size:.875rem;line-height:1.25rem;display:grid;&:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}&.alert-outline{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none}&.alert-dash{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none;border-style:dashed}&.alert-soft{color:var(--alert-color,var(--color-base-content));background:color-mix(in oklab,var(--alert-color,var(--color-base-content))8%,var(--color-base-100));border-color:color-mix(in oklab,var(--alert-color,var(--color-base-content))10%,var(--color-base-100));box-shadow:none;background-image:none}}.xl\:alert-info{border-color:var(--color-info);color:var(--color-info-content);--alert-color:var(--color-info)}.xl\:alert-success{border-color:var(--color-success);color:var(--color-success-content);--alert-color:var(--color-success)}.xl\:alert-warning{border-color:var(--color-warning);color:var(--color-warning-content);--alert-color:var(--color-warning)}.xl\:alert-error{border-color:var(--color-error);color:var(--color-error-content);--alert-color:var(--color-error)}.xl\:alert-vertical{text-align:center;grid-template-columns:auto;grid-auto-flow:row;justify-content:center;justify-items:center;&:has(:nth-child(2)){grid-template-columns:auto}}.xl\:alert-horizontal{text-align:start;grid-template-columns:auto;grid-auto-flow:column;justify-content:start;justify-items:start;&:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}}}@media (width>=1536px){.\32 xl\:alert{border-radius:var(--radius-box);color:var(--color-base-content);background-color:var(--alert-color,var(--color-base-200));text-align:start;border:var(--border)solid var(--color-base-200);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);box-shadow:0 3px 0 -2px oklch(100% 0 0/calc(var(--depth)*.08))inset,0 1px color-mix(in oklab,color-mix(in oklab,#000 20%,var(--alert-color,var(--color-base-200)))calc(var(--depth)*20%),#0000),0 4px 3px -2px oklch(0% 0 0/calc(var(--depth)*.08));grid-template-columns:auto;grid-auto-flow:column;justify-content:start;place-items:center start;gap:1rem;padding-block:.75rem;padding-inline:1rem;font-size:.875rem;line-height:1.25rem;display:grid;&:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}&.alert-outline{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none}&.alert-dash{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none;border-style:dashed}&.alert-soft{color:var(--alert-color,var(--color-base-content));background:color-mix(in oklab,var(--alert-color,var(--color-base-content))8%,var(--color-base-100));border-color:color-mix(in oklab,var(--alert-color,var(--color-base-content))10%,var(--color-base-100));box-shadow:none;background-image:none}}.\32 xl\:alert-info{border-color:var(--color-info);color:var(--color-info-content);--alert-color:var(--color-info)}.\32 xl\:alert-success{border-color:var(--color-success);color:var(--color-success-content);--alert-color:var(--color-success)}.\32 xl\:alert-warning{border-color:var(--color-warning);color:var(--color-warning-content);--alert-color:var(--color-warning)}.\32 xl\:alert-error{border-color:var(--color-error);color:var(--color-error-content);--alert-color:var(--color-error)}.\32 xl\:alert-vertical{text-align:center;grid-template-columns:auto;grid-auto-flow:row;justify-content:center;justify-items:center;&:has(:nth-child(2)){grid-template-columns:auto}}.\32 xl\:alert-horizontal{text-align:start;grid-template-columns:auto;grid-auto-flow:column;justify-content:start;justify-items:start;&:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}}}.card{border-radius:var(--radius-box);outline-offset:2px;outline:0 solid #0000;flex-direction:column;transition:outline .2s ease-in-out;display:flex;position:relative;&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible{outline-color:currentColor}& :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:inherit;border-end-end-radius:unset;border-end-start-radius:unset;overflow:hidden}& :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:unset;border-end-end-radius:inherit;border-end-start-radius:inherit;overflow:hidden}&:where(.card-border){border:var(--border)solid var(--color-base-200)}&:where(.card-dash){border:var(--border)dashed var(--color-base-200)}&.image-full{display:grid;&>*{grid-row-start:1;grid-column-start:1}&>.card-body{color:var(--color-neutral-content);position:relative}& :where(figure){border-radius:inherit;overflow:hidden}&>figure img{object-fit:cover;filter:brightness(28%);height:100%}}& figure{justify-content:center;align-items:center;display:flex}&:has(>input:is(input[type=checkbox],input[type=radio])){cursor:pointer;user-select:none}&:has(>:checked){outline:2px solid}}.card-title{font-size:var(--cardtitle-fs,1.125rem);align-items:center;gap:.5rem;font-weight:600;display:flex}.card-body{padding:var(--card-p,1.5rem);font-size:var(--card-fs,.875rem);flex-direction:column;flex:auto;gap:.5rem;display:flex;& :where(p){flex-grow:1}}.card-actions{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.card-xs{& .card-body{--card-p:.5rem;--card-fs:.6875rem}& .card-title{--cardtitle-fs:.875rem}}.card-sm{& .card-body{--card-p:1rem;--card-fs:.75rem}& .card-title{--cardtitle-fs:1rem}}.card-md{& .card-body{--card-p:1.5rem;--card-fs:.875rem}& .card-title{--cardtitle-fs:1.125rem}}.card-lg{& .card-body{--card-p:2rem;--card-fs:1rem}& .card-title{--cardtitle-fs:1.25rem}}.card-xl{& .card-body{--card-p:2.5rem;--card-fs:1.125rem}& .card-title{--cardtitle-fs:1.375rem}}.card-side{flex-direction:row;align-items:stretch;& :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:unset;border-end-end-radius:unset;border-end-start-radius:inherit;overflow:hidden}& :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:inherit;border-end-end-radius:inherit;border-end-start-radius:unset;overflow:hidden}& figure>*{max-width:unset}& :where(figure>*){object-fit:cover;width:100%;height:100%}}@media (width>=640px){.sm\:card{border-radius:var(--radius-box);outline-offset:2px;outline:0 solid #0000;flex-direction:column;transition:outline .2s ease-in-out;display:flex;position:relative;&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible{outline-color:currentColor}& :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:inherit;border-end-end-radius:unset;border-end-start-radius:unset;overflow:hidden}& :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:unset;border-end-end-radius:inherit;border-end-start-radius:inherit;overflow:hidden}&:where(.card-border){border:var(--border)solid var(--color-base-200)}&:where(.card-dash){border:var(--border)dashed var(--color-base-200)}&.image-full{display:grid;&>*{grid-row-start:1;grid-column-start:1}&>.card-body{color:var(--color-neutral-content);position:relative}& :where(figure){border-radius:inherit;overflow:hidden}&>figure img{object-fit:cover;filter:brightness(28%);height:100%}}& figure{justify-content:center;align-items:center;display:flex}&:has(>input:is(input[type=checkbox],input[type=radio])){cursor:pointer;user-select:none}&:has(>:checked){outline:2px solid}}.sm\:card-title{font-size:var(--cardtitle-fs,1.125rem);align-items:center;gap:.5rem;font-weight:600;display:flex}.sm\:card-body{padding:var(--card-p,1.5rem);font-size:var(--card-fs,.875rem);flex-direction:column;flex:auto;gap:.5rem;display:flex;& :where(p){flex-grow:1}}.sm\:card-actions{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.sm\:card-xs{& .card-body{--card-p:.5rem;--card-fs:.6875rem}& .card-title{--cardtitle-fs:.875rem}}.sm\:card-sm{& .card-body{--card-p:1rem;--card-fs:.75rem}& .card-title{--cardtitle-fs:1rem}}.sm\:card-md{& .card-body{--card-p:1.5rem;--card-fs:.875rem}& .card-title{--cardtitle-fs:1.125rem}}.sm\:card-lg{& .card-body{--card-p:2rem;--card-fs:1rem}& .card-title{--cardtitle-fs:1.25rem}}.sm\:card-xl{& .card-body{--card-p:2.5rem;--card-fs:1.125rem}& .card-title{--cardtitle-fs:1.375rem}}.sm\:card-side{flex-direction:row;align-items:stretch;& :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:unset;border-end-end-radius:unset;border-end-start-radius:inherit;overflow:hidden}& :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:inherit;border-end-end-radius:inherit;border-end-start-radius:unset;overflow:hidden}& figure>*{max-width:unset}& :where(figure>*){object-fit:cover;width:100%;height:100%}}}@media (width>=768px){.md\:card{border-radius:var(--radius-box);outline-offset:2px;outline:0 solid #0000;flex-direction:column;transition:outline .2s ease-in-out;display:flex;position:relative;&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible{outline-color:currentColor}& :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:inherit;border-end-end-radius:unset;border-end-start-radius:unset;overflow:hidden}& :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:unset;border-end-end-radius:inherit;border-end-start-radius:inherit;overflow:hidden}&:where(.card-border){border:var(--border)solid var(--color-base-200)}&:where(.card-dash){border:var(--border)dashed var(--color-base-200)}&.image-full{display:grid;&>*{grid-row-start:1;grid-column-start:1}&>.card-body{color:var(--color-neutral-content);position:relative}& :where(figure){border-radius:inherit;overflow:hidden}&>figure img{object-fit:cover;filter:brightness(28%);height:100%}}& figure{justify-content:center;align-items:center;display:flex}&:has(>input:is(input[type=checkbox],input[type=radio])){cursor:pointer;user-select:none}&:has(>:checked){outline:2px solid}}.md\:card-title{font-size:var(--cardtitle-fs,1.125rem);align-items:center;gap:.5rem;font-weight:600;display:flex}.md\:card-body{padding:var(--card-p,1.5rem);font-size:var(--card-fs,.875rem);flex-direction:column;flex:auto;gap:.5rem;display:flex;& :where(p){flex-grow:1}}.md\:card-actions{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.md\:card-xs{& .card-body{--card-p:.5rem;--card-fs:.6875rem}& .card-title{--cardtitle-fs:.875rem}}.md\:card-sm{& .card-body{--card-p:1rem;--card-fs:.75rem}& .card-title{--cardtitle-fs:1rem}}.md\:card-md{& .card-body{--card-p:1.5rem;--card-fs:.875rem}& .card-title{--cardtitle-fs:1.125rem}}.md\:card-lg{& .card-body{--card-p:2rem;--card-fs:1rem}& .card-title{--cardtitle-fs:1.25rem}}.md\:card-xl{& .card-body{--card-p:2.5rem;--card-fs:1.125rem}& .card-title{--cardtitle-fs:1.375rem}}.md\:card-side{flex-direction:row;align-items:stretch;& :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:unset;border-end-end-radius:unset;border-end-start-radius:inherit;overflow:hidden}& :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:inherit;border-end-end-radius:inherit;border-end-start-radius:unset;overflow:hidden}& figure>*{max-width:unset}& :where(figure>*){object-fit:cover;width:100%;height:100%}}}@media (width>=1024px){.lg\:card{border-radius:var(--radius-box);outline-offset:2px;outline:0 solid #0000;flex-direction:column;transition:outline .2s ease-in-out;display:flex;position:relative;&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible{outline-color:currentColor}& :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:inherit;border-end-end-radius:unset;border-end-start-radius:unset;overflow:hidden}& :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:unset;border-end-end-radius:inherit;border-end-start-radius:inherit;overflow:hidden}&:where(.card-border){border:var(--border)solid var(--color-base-200)}&:where(.card-dash){border:var(--border)dashed var(--color-base-200)}&.image-full{display:grid;&>*{grid-row-start:1;grid-column-start:1}&>.card-body{color:var(--color-neutral-content);position:relative}& :where(figure){border-radius:inherit;overflow:hidden}&>figure img{object-fit:cover;filter:brightness(28%);height:100%}}& figure{justify-content:center;align-items:center;display:flex}&:has(>input:is(input[type=checkbox],input[type=radio])){cursor:pointer;user-select:none}&:has(>:checked){outline:2px solid}}.lg\:card-title{font-size:var(--cardtitle-fs,1.125rem);align-items:center;gap:.5rem;font-weight:600;display:flex}.lg\:card-body{padding:var(--card-p,1.5rem);font-size:var(--card-fs,.875rem);flex-direction:column;flex:auto;gap:.5rem;display:flex;& :where(p){flex-grow:1}}.lg\:card-actions{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.lg\:card-xs{& .card-body{--card-p:.5rem;--card-fs:.6875rem}& .card-title{--cardtitle-fs:.875rem}}.lg\:card-sm{& .card-body{--card-p:1rem;--card-fs:.75rem}& .card-title{--cardtitle-fs:1rem}}.lg\:card-md{& .card-body{--card-p:1.5rem;--card-fs:.875rem}& .card-title{--cardtitle-fs:1.125rem}}.lg\:card-lg{& .card-body{--card-p:2rem;--card-fs:1rem}& .card-title{--cardtitle-fs:1.25rem}}.lg\:card-xl{& .card-body{--card-p:2.5rem;--card-fs:1.125rem}& .card-title{--cardtitle-fs:1.375rem}}.lg\:card-side{flex-direction:row;align-items:stretch;& :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:unset;border-end-end-radius:unset;border-end-start-radius:inherit;overflow:hidden}& :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:inherit;border-end-end-radius:inherit;border-end-start-radius:unset;overflow:hidden}& figure>*{max-width:unset}& :where(figure>*){object-fit:cover;width:100%;height:100%}}}@media (width>=1280px){.xl\:card{border-radius:var(--radius-box);outline-offset:2px;outline:0 solid #0000;flex-direction:column;transition:outline .2s ease-in-out;display:flex;position:relative;&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible{outline-color:currentColor}& :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:inherit;border-end-end-radius:unset;border-end-start-radius:unset;overflow:hidden}& :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:unset;border-end-end-radius:inherit;border-end-start-radius:inherit;overflow:hidden}&:where(.card-border){border:var(--border)solid var(--color-base-200)}&:where(.card-dash){border:var(--border)dashed var(--color-base-200)}&.image-full{display:grid;&>*{grid-row-start:1;grid-column-start:1}&>.card-body{color:var(--color-neutral-content);position:relative}& :where(figure){border-radius:inherit;overflow:hidden}&>figure img{object-fit:cover;filter:brightness(28%);height:100%}}& figure{justify-content:center;align-items:center;display:flex}&:has(>input:is(input[type=checkbox],input[type=radio])){cursor:pointer;user-select:none}&:has(>:checked){outline:2px solid}}.xl\:card-title{font-size:var(--cardtitle-fs,1.125rem);align-items:center;gap:.5rem;font-weight:600;display:flex}.xl\:card-body{padding:var(--card-p,1.5rem);font-size:var(--card-fs,.875rem);flex-direction:column;flex:auto;gap:.5rem;display:flex;& :where(p){flex-grow:1}}.xl\:card-actions{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.xl\:card-xs{& .card-body{--card-p:.5rem;--card-fs:.6875rem}& .card-title{--cardtitle-fs:.875rem}}.xl\:card-sm{& .card-body{--card-p:1rem;--card-fs:.75rem}& .card-title{--cardtitle-fs:1rem}}.xl\:card-md{& .card-body{--card-p:1.5rem;--card-fs:.875rem}& .card-title{--cardtitle-fs:1.125rem}}.xl\:card-lg{& .card-body{--card-p:2rem;--card-fs:1rem}& .card-title{--cardtitle-fs:1.25rem}}.xl\:card-xl{& .card-body{--card-p:2.5rem;--card-fs:1.125rem}& .card-title{--cardtitle-fs:1.375rem}}.xl\:card-side{flex-direction:row;align-items:stretch;& :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:unset;border-end-end-radius:unset;border-end-start-radius:inherit;overflow:hidden}& :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:inherit;border-end-end-radius:inherit;border-end-start-radius:unset;overflow:hidden}& figure>*{max-width:unset}& :where(figure>*){object-fit:cover;width:100%;height:100%}}}@media (width>=1536px){.\32 xl\:card{border-radius:var(--radius-box);outline-offset:2px;outline:0 solid #0000;flex-direction:column;transition:outline .2s ease-in-out;display:flex;position:relative;&:focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}&:focus-visible{outline-color:currentColor}& :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:inherit;border-end-end-radius:unset;border-end-start-radius:unset;overflow:hidden}& :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:unset;border-end-end-radius:inherit;border-end-start-radius:inherit;overflow:hidden}&:where(.card-border){border:var(--border)solid var(--color-base-200)}&:where(.card-dash){border:var(--border)dashed var(--color-base-200)}&.image-full{display:grid;&>*{grid-row-start:1;grid-column-start:1}&>.card-body{color:var(--color-neutral-content);position:relative}& :where(figure){border-radius:inherit;overflow:hidden}&>figure img{object-fit:cover;filter:brightness(28%);height:100%}}& figure{justify-content:center;align-items:center;display:flex}&:has(>input:is(input[type=checkbox],input[type=radio])){cursor:pointer;user-select:none}&:has(>:checked){outline:2px solid}}.\32 xl\:card-title{font-size:var(--cardtitle-fs,1.125rem);align-items:center;gap:.5rem;font-weight:600;display:flex}.\32 xl\:card-body{padding:var(--card-p,1.5rem);font-size:var(--card-fs,.875rem);flex-direction:column;flex:auto;gap:.5rem;display:flex;& :where(p){flex-grow:1}}.\32 xl\:card-actions{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.\32 xl\:card-xs{& .card-body{--card-p:.5rem;--card-fs:.6875rem}& .card-title{--cardtitle-fs:.875rem}}.\32 xl\:card-sm{& .card-body{--card-p:1rem;--card-fs:.75rem}& .card-title{--cardtitle-fs:1rem}}.\32 xl\:card-md{& .card-body{--card-p:1.5rem;--card-fs:.875rem}& .card-title{--cardtitle-fs:1.125rem}}.\32 xl\:card-lg{& .card-body{--card-p:2rem;--card-fs:1rem}& .card-title{--cardtitle-fs:1.25rem}}.\32 xl\:card-xl{& .card-body{--card-p:2.5rem;--card-fs:1.125rem}& .card-title{--cardtitle-fs:1.375rem}}.\32 xl\:card-side{flex-direction:row;align-items:stretch;& :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:unset;border-end-end-radius:unset;border-end-start-radius:inherit;overflow:hidden}& :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:inherit;border-end-end-radius:inherit;border-end-start-radius:unset;overflow:hidden}& figure>*{max-width:unset}& :where(figure>*){object-fit:cover;width:100%;height:100%}}}.tooltip{--tt-bg:var(--color-neutral);--tt-off:calc(100% + .5rem);--tt-tail:calc(100% + 1px + .25rem);display:inline-block;position:relative;&>:where(.tooltip-content),&:where([data-tip]):before{border-radius:var(--radius-field);text-align:center;white-space:normal;max-width:20rem;color:var(--color-neutral-content);opacity:0;background-color:var(--tt-bg);pointer-events:none;z-index:2;--tw-content:attr(data-tip);content:var(--tw-content);width:max-content;padding-block:.25rem;padding-inline:.5rem;font-size:.875rem;line-height:1.25;transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms;position:absolute}&:after{opacity:0;background-color:var(--tt-bg);content:"";pointer-events:none;--mask-tooltip:url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");width:.625rem;height:.25rem;mask-position:-1px 0;mask-repeat:no-repeat;mask-image:var(--mask-tooltip);transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms;display:block;position:absolute}}.tooltip,.tooltip-top{&>.tooltip-content,&[data-tip]:before{transform:translateX(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off)50%}}.tooltip-bottom{&>.tooltip-content,&[data-tip]:before{transform:translateX(-50%)translateY(var(--tt-pos,-.25rem));inset:var(--tt-off)auto auto 50%}}.tooltip-left{&>.tooltip-content,&[data-tip]:before{transform:translateX(calc(var(--tt-pos,.25rem) - .25rem))translateY(-50%);inset:50% var(--tt-off)auto auto}}.tooltip-right{&>.tooltip-content,&[data-tip]:before{transform:translateX(calc(var(--tt-pos,-.25rem) + .25rem))translateY(-50%);inset:50% auto auto var(--tt-off)}}.tooltip{&.tooltip-open,&[data-tip]:not([data-tip=""]):hover,&:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,&:has(:focus-visible){&>.tooltip-content,&[data-tip]:before,&:after{opacity:1;--tt-pos:0rem;transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}}.tooltip,.tooltip-top{&:after{transform:translateX(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail)50%}}.tooltip-bottom{&:after{transform:translateX(-50%)translateY(var(--tt-pos,-.25rem))rotate(180deg);inset:var(--tt-tail)auto auto 50%}}.tooltip-left{&:after{transform:translateX(var(--tt-pos,.25rem))translateY(-50%)rotate(-90deg);inset:50% calc(var(--tt-tail) + 1px)auto auto}}.tooltip-right{&:after{transform:translateX(var(--tt-pos,-.25rem))translateY(-50%)rotate(90deg);inset:50% auto auto calc(var(--tt-tail) + 1px)}}.tooltip-primary{--tt-bg:var(--color-primary);&>.tooltip-content,&[data-tip]:before{color:var(--color-primary-content)}}.tooltip-secondary{--tt-bg:var(--color-secondary);&>.tooltip-content,&[data-tip]:before{color:var(--color-secondary-content)}}.tooltip-accent{--tt-bg:var(--color-accent);&>.tooltip-content,&[data-tip]:before{color:var(--color-accent-content)}}.tooltip-info{--tt-bg:var(--color-info);&>.tooltip-content,&[data-tip]:before{color:var(--color-info-content)}}.tooltip-success{--tt-bg:var(--color-success);&>.tooltip-content,&[data-tip]:before{color:var(--color-success-content)}}.tooltip-warning{--tt-bg:var(--color-warning);&>.tooltip-content,&[data-tip]:before{color:var(--color-warning-content)}}.tooltip-error{--tt-bg:var(--color-error);&>.tooltip-content,&[data-tip]:before{color:var(--color-error-content)}}@media (width>=640px){.sm\:tooltip{--tt-bg:var(--color-neutral);--tt-off:calc(100% + .5rem);--tt-tail:calc(100% + 1px + .25rem);display:inline-block;position:relative;&>:where(.tooltip-content),&:where([data-tip]):before{border-radius:var(--radius-field);text-align:center;white-space:normal;max-width:20rem;color:var(--color-neutral-content);opacity:0;background-color:var(--tt-bg);pointer-events:none;z-index:2;--tw-content:attr(data-tip);content:var(--tw-content);width:max-content;padding-block:.25rem;padding-inline:.5rem;font-size:.875rem;line-height:1.25;transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms;position:absolute}&:after{opacity:0;background-color:var(--tt-bg);content:"";pointer-events:none;--mask-tooltip:url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");width:.625rem;height:.25rem;mask-position:-1px 0;mask-repeat:no-repeat;mask-image:var(--mask-tooltip);transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms;display:block;position:absolute}}.sm\:tooltip,.sm\:tooltip-top{&>.tooltip-content,&[data-tip]:before{transform:translateX(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off)50%}}.sm\:tooltip-bottom{&>.tooltip-content,&[data-tip]:before{transform:translateX(-50%)translateY(var(--tt-pos,-.25rem));inset:var(--tt-off)auto auto 50%}}.sm\:tooltip-left{&>.tooltip-content,&[data-tip]:before{transform:translateX(calc(var(--tt-pos,.25rem) - .25rem))translateY(-50%);inset:50% var(--tt-off)auto auto}}.sm\:tooltip-right{&>.tooltip-content,&[data-tip]:before{transform:translateX(calc(var(--tt-pos,-.25rem) + .25rem))translateY(-50%);inset:50% auto auto var(--tt-off)}}.sm\:tooltip{&.tooltip-open,&[data-tip]:not([data-tip=""]):hover,&:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,&:has(:focus-visible){&>.tooltip-content,&[data-tip]:before,&:after{opacity:1;--tt-pos:0rem;transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}}.sm\:tooltip,.sm\:tooltip-top{&:after{transform:translateX(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail)50%}}.sm\:tooltip-bottom{&:after{transform:translateX(-50%)translateY(var(--tt-pos,-.25rem))rotate(180deg);inset:var(--tt-tail)auto auto 50%}}.sm\:tooltip-left{&:after{transform:translateX(var(--tt-pos,.25rem))translateY(-50%)rotate(-90deg);inset:50% calc(var(--tt-tail) + 1px)auto auto}}.sm\:tooltip-right{&:after{transform:translateX(var(--tt-pos,-.25rem))translateY(-50%)rotate(90deg);inset:50% auto auto calc(var(--tt-tail) + 1px)}}.sm\:tooltip-primary{--tt-bg:var(--color-primary);&>.tooltip-content,&[data-tip]:before{color:var(--color-primary-content)}}.sm\:tooltip-secondary{--tt-bg:var(--color-secondary);&>.tooltip-content,&[data-tip]:before{color:var(--color-secondary-content)}}.sm\:tooltip-accent{--tt-bg:var(--color-accent);&>.tooltip-content,&[data-tip]:before{color:var(--color-accent-content)}}.sm\:tooltip-info{--tt-bg:var(--color-info);&>.tooltip-content,&[data-tip]:before{color:var(--color-info-content)}}.sm\:tooltip-success{--tt-bg:var(--color-success);&>.tooltip-content,&[data-tip]:before{color:var(--color-success-content)}}.sm\:tooltip-warning{--tt-bg:var(--color-warning);&>.tooltip-content,&[data-tip]:before{color:var(--color-warning-content)}}.sm\:tooltip-error{--tt-bg:var(--color-error);&>.tooltip-content,&[data-tip]:before{color:var(--color-error-content)}}}@media (width>=768px){.md\:tooltip{--tt-bg:var(--color-neutral);--tt-off:calc(100% + .5rem);--tt-tail:calc(100% + 1px + .25rem);display:inline-block;position:relative;&>:where(.tooltip-content),&:where([data-tip]):before{border-radius:var(--radius-field);text-align:center;white-space:normal;max-width:20rem;color:var(--color-neutral-content);opacity:0;background-color:var(--tt-bg);pointer-events:none;z-index:2;--tw-content:attr(data-tip);content:var(--tw-content);width:max-content;padding-block:.25rem;padding-inline:.5rem;font-size:.875rem;line-height:1.25;transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms;position:absolute}&:after{opacity:0;background-color:var(--tt-bg);content:"";pointer-events:none;--mask-tooltip:url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");width:.625rem;height:.25rem;mask-position:-1px 0;mask-repeat:no-repeat;mask-image:var(--mask-tooltip);transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms;display:block;position:absolute}}.md\:tooltip,.md\:tooltip-top{&>.tooltip-content,&[data-tip]:before{transform:translateX(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off)50%}}.md\:tooltip-bottom{&>.tooltip-content,&[data-tip]:before{transform:translateX(-50%)translateY(var(--tt-pos,-.25rem));inset:var(--tt-off)auto auto 50%}}.md\:tooltip-left{&>.tooltip-content,&[data-tip]:before{transform:translateX(calc(var(--tt-pos,.25rem) - .25rem))translateY(-50%);inset:50% var(--tt-off)auto auto}}.md\:tooltip-right{&>.tooltip-content,&[data-tip]:before{transform:translateX(calc(var(--tt-pos,-.25rem) + .25rem))translateY(-50%);inset:50% auto auto var(--tt-off)}}.md\:tooltip{&.tooltip-open,&[data-tip]:not([data-tip=""]):hover,&:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,&:has(:focus-visible){&>.tooltip-content,&[data-tip]:before,&:after{opacity:1;--tt-pos:0rem;transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}}.md\:tooltip,.md\:tooltip-top{&:after{transform:translateX(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail)50%}}.md\:tooltip-bottom{&:after{transform:translateX(-50%)translateY(var(--tt-pos,-.25rem))rotate(180deg);inset:var(--tt-tail)auto auto 50%}}.md\:tooltip-left{&:after{transform:translateX(var(--tt-pos,.25rem))translateY(-50%)rotate(-90deg);inset:50% calc(var(--tt-tail) + 1px)auto auto}}.md\:tooltip-right{&:after{transform:translateX(var(--tt-pos,-.25rem))translateY(-50%)rotate(90deg);inset:50% auto auto calc(var(--tt-tail) + 1px)}}.md\:tooltip-primary{--tt-bg:var(--color-primary);&>.tooltip-content,&[data-tip]:before{color:var(--color-primary-content)}}.md\:tooltip-secondary{--tt-bg:var(--color-secondary);&>.tooltip-content,&[data-tip]:before{color:var(--color-secondary-content)}}.md\:tooltip-accent{--tt-bg:var(--color-accent);&>.tooltip-content,&[data-tip]:before{color:var(--color-accent-content)}}.md\:tooltip-info{--tt-bg:var(--color-info);&>.tooltip-content,&[data-tip]:before{color:var(--color-info-content)}}.md\:tooltip-success{--tt-bg:var(--color-success);&>.tooltip-content,&[data-tip]:before{color:var(--color-success-content)}}.md\:tooltip-warning{--tt-bg:var(--color-warning);&>.tooltip-content,&[data-tip]:before{color:var(--color-warning-content)}}.md\:tooltip-error{--tt-bg:var(--color-error);&>.tooltip-content,&[data-tip]:before{color:var(--color-error-content)}}}@media (width>=1024px){.lg\:tooltip{--tt-bg:var(--color-neutral);--tt-off:calc(100% + .5rem);--tt-tail:calc(100% + 1px + .25rem);display:inline-block;position:relative;&>:where(.tooltip-content),&:where([data-tip]):before{border-radius:var(--radius-field);text-align:center;white-space:normal;max-width:20rem;color:var(--color-neutral-content);opacity:0;background-color:var(--tt-bg);pointer-events:none;z-index:2;--tw-content:attr(data-tip);content:var(--tw-content);width:max-content;padding-block:.25rem;padding-inline:.5rem;font-size:.875rem;line-height:1.25;transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms;position:absolute}&:after{opacity:0;background-color:var(--tt-bg);content:"";pointer-events:none;--mask-tooltip:url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");width:.625rem;height:.25rem;mask-position:-1px 0;mask-repeat:no-repeat;mask-image:var(--mask-tooltip);transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms;display:block;position:absolute}}.lg\:tooltip,.lg\:tooltip-top{&>.tooltip-content,&[data-tip]:before{transform:translateX(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off)50%}}.lg\:tooltip-bottom{&>.tooltip-content,&[data-tip]:before{transform:translateX(-50%)translateY(var(--tt-pos,-.25rem));inset:var(--tt-off)auto auto 50%}}.lg\:tooltip-left{&>.tooltip-content,&[data-tip]:before{transform:translateX(calc(var(--tt-pos,.25rem) - .25rem))translateY(-50%);inset:50% var(--tt-off)auto auto}}.lg\:tooltip-right{&>.tooltip-content,&[data-tip]:before{transform:translateX(calc(var(--tt-pos,-.25rem) + .25rem))translateY(-50%);inset:50% auto auto var(--tt-off)}}.lg\:tooltip{&.tooltip-open,&[data-tip]:not([data-tip=""]):hover,&:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,&:has(:focus-visible){&>.tooltip-content,&[data-tip]:before,&:after{opacity:1;--tt-pos:0rem;transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}}.lg\:tooltip,.lg\:tooltip-top{&:after{transform:translateX(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail)50%}}.lg\:tooltip-bottom{&:after{transform:translateX(-50%)translateY(var(--tt-pos,-.25rem))rotate(180deg);inset:var(--tt-tail)auto auto 50%}}.lg\:tooltip-left{&:after{transform:translateX(var(--tt-pos,.25rem))translateY(-50%)rotate(-90deg);inset:50% calc(var(--tt-tail) + 1px)auto auto}}.lg\:tooltip-right{&:after{transform:translateX(var(--tt-pos,-.25rem))translateY(-50%)rotate(90deg);inset:50% auto auto calc(var(--tt-tail) + 1px)}}.lg\:tooltip-primary{--tt-bg:var(--color-primary);&>.tooltip-content,&[data-tip]:before{color:var(--color-primary-content)}}.lg\:tooltip-secondary{--tt-bg:var(--color-secondary);&>.tooltip-content,&[data-tip]:before{color:var(--color-secondary-content)}}.lg\:tooltip-accent{--tt-bg:var(--color-accent);&>.tooltip-content,&[data-tip]:before{color:var(--color-accent-content)}}.lg\:tooltip-info{--tt-bg:var(--color-info);&>.tooltip-content,&[data-tip]:before{color:var(--color-info-content)}}.lg\:tooltip-success{--tt-bg:var(--color-success);&>.tooltip-content,&[data-tip]:before{color:var(--color-success-content)}}.lg\:tooltip-warning{--tt-bg:var(--color-warning);&>.tooltip-content,&[data-tip]:before{color:var(--color-warning-content)}}.lg\:tooltip-error{--tt-bg:var(--color-error);&>.tooltip-content,&[data-tip]:before{color:var(--color-error-content)}}}@media (width>=1280px){.xl\:tooltip{--tt-bg:var(--color-neutral);--tt-off:calc(100% + .5rem);--tt-tail:calc(100% + 1px + .25rem);display:inline-block;position:relative;&>:where(.tooltip-content),&:where([data-tip]):before{border-radius:var(--radius-field);text-align:center;white-space:normal;max-width:20rem;color:var(--color-neutral-content);opacity:0;background-color:var(--tt-bg);pointer-events:none;z-index:2;--tw-content:attr(data-tip);content:var(--tw-content);width:max-content;padding-block:.25rem;padding-inline:.5rem;font-size:.875rem;line-height:1.25;transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms;position:absolute}&:after{opacity:0;background-color:var(--tt-bg);content:"";pointer-events:none;--mask-tooltip:url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");width:.625rem;height:.25rem;mask-position:-1px 0;mask-repeat:no-repeat;mask-image:var(--mask-tooltip);transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms;display:block;position:absolute}}.xl\:tooltip,.xl\:tooltip-top{&>.tooltip-content,&[data-tip]:before{transform:translateX(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off)50%}}.xl\:tooltip-bottom{&>.tooltip-content,&[data-tip]:before{transform:translateX(-50%)translateY(var(--tt-pos,-.25rem));inset:var(--tt-off)auto auto 50%}}.xl\:tooltip-left{&>.tooltip-content,&[data-tip]:before{transform:translateX(calc(var(--tt-pos,.25rem) - .25rem))translateY(-50%);inset:50% var(--tt-off)auto auto}}.xl\:tooltip-right{&>.tooltip-content,&[data-tip]:before{transform:translateX(calc(var(--tt-pos,-.25rem) + .25rem))translateY(-50%);inset:50% auto auto var(--tt-off)}}.xl\:tooltip{&.tooltip-open,&[data-tip]:not([data-tip=""]):hover,&:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,&:has(:focus-visible){&>.tooltip-content,&[data-tip]:before,&:after{opacity:1;--tt-pos:0rem;transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}}.xl\:tooltip,.xl\:tooltip-top{&:after{transform:translateX(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail)50%}}.xl\:tooltip-bottom{&:after{transform:translateX(-50%)translateY(var(--tt-pos,-.25rem))rotate(180deg);inset:var(--tt-tail)auto auto 50%}}.xl\:tooltip-left{&:after{transform:translateX(var(--tt-pos,.25rem))translateY(-50%)rotate(-90deg);inset:50% calc(var(--tt-tail) + 1px)auto auto}}.xl\:tooltip-right{&:after{transform:translateX(var(--tt-pos,-.25rem))translateY(-50%)rotate(90deg);inset:50% auto auto calc(var(--tt-tail) + 1px)}}.xl\:tooltip-primary{--tt-bg:var(--color-primary);&>.tooltip-content,&[data-tip]:before{color:var(--color-primary-content)}}.xl\:tooltip-secondary{--tt-bg:var(--color-secondary);&>.tooltip-content,&[data-tip]:before{color:var(--color-secondary-content)}}.xl\:tooltip-accent{--tt-bg:var(--color-accent);&>.tooltip-content,&[data-tip]:before{color:var(--color-accent-content)}}.xl\:tooltip-info{--tt-bg:var(--color-info);&>.tooltip-content,&[data-tip]:before{color:var(--color-info-content)}}.xl\:tooltip-success{--tt-bg:var(--color-success);&>.tooltip-content,&[data-tip]:before{color:var(--color-success-content)}}.xl\:tooltip-warning{--tt-bg:var(--color-warning);&>.tooltip-content,&[data-tip]:before{color:var(--color-warning-content)}}.xl\:tooltip-error{--tt-bg:var(--color-error);&>.tooltip-content,&[data-tip]:before{color:var(--color-error-content)}}}@media (width>=1536px){.\32 xl\:tooltip{--tt-bg:var(--color-neutral);--tt-off:calc(100% + .5rem);--tt-tail:calc(100% + 1px + .25rem);display:inline-block;position:relative;&>:where(.tooltip-content),&:where([data-tip]):before{border-radius:var(--radius-field);text-align:center;white-space:normal;max-width:20rem;color:var(--color-neutral-content);opacity:0;background-color:var(--tt-bg);pointer-events:none;z-index:2;--tw-content:attr(data-tip);content:var(--tw-content);width:max-content;padding-block:.25rem;padding-inline:.5rem;font-size:.875rem;line-height:1.25;transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms;position:absolute}&:after{opacity:0;background-color:var(--tt-bg);content:"";pointer-events:none;--mask-tooltip:url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");width:.625rem;height:.25rem;mask-position:-1px 0;mask-repeat:no-repeat;mask-image:var(--mask-tooltip);transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms;display:block;position:absolute}}.\32 xl\:tooltip,.\32 xl\:tooltip-top{&>.tooltip-content,&[data-tip]:before{transform:translateX(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off)50%}}.\32 xl\:tooltip-bottom{&>.tooltip-content,&[data-tip]:before{transform:translateX(-50%)translateY(var(--tt-pos,-.25rem));inset:var(--tt-off)auto auto 50%}}.\32 xl\:tooltip-left{&>.tooltip-content,&[data-tip]:before{transform:translateX(calc(var(--tt-pos,.25rem) - .25rem))translateY(-50%);inset:50% var(--tt-off)auto auto}}.\32 xl\:tooltip-right{&>.tooltip-content,&[data-tip]:before{transform:translateX(calc(var(--tt-pos,-.25rem) + .25rem))translateY(-50%);inset:50% auto auto var(--tt-off)}}.\32 xl\:tooltip{&.tooltip-open,&[data-tip]:not([data-tip=""]):hover,&:not(:has(.tooltip-content:empty)):has(.tooltip-content):hover,&:has(:focus-visible){&>.tooltip-content,&[data-tip]:before,&:after{opacity:1;--tt-pos:0rem;transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}}.\32 xl\:tooltip,.\32 xl\:tooltip-top{&:after{transform:translateX(-50%)translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail)50%}}.\32 xl\:tooltip-bottom{&:after{transform:translateX(-50%)translateY(var(--tt-pos,-.25rem))rotate(180deg);inset:var(--tt-tail)auto auto 50%}}.\32 xl\:tooltip-left{&:after{transform:translateX(var(--tt-pos,.25rem))translateY(-50%)rotate(-90deg);inset:50% calc(var(--tt-tail) + 1px)auto auto}}.\32 xl\:tooltip-right{&:after{transform:translateX(var(--tt-pos,-.25rem))translateY(-50%)rotate(90deg);inset:50% auto auto calc(var(--tt-tail) + 1px)}}.\32 xl\:tooltip-primary{--tt-bg:var(--color-primary);&>.tooltip-content,&[data-tip]:before{color:var(--color-primary-content)}}.\32 xl\:tooltip-secondary{--tt-bg:var(--color-secondary);&>.tooltip-content,&[data-tip]:before{color:var(--color-secondary-content)}}.\32 xl\:tooltip-accent{--tt-bg:var(--color-accent);&>.tooltip-content,&[data-tip]:before{color:var(--color-accent-content)}}.\32 xl\:tooltip-info{--tt-bg:var(--color-info);&>.tooltip-content,&[data-tip]:before{color:var(--color-info-content)}}.\32 xl\:tooltip-success{--tt-bg:var(--color-success);&>.tooltip-content,&[data-tip]:before{color:var(--color-success-content)}}.\32 xl\:tooltip-warning{--tt-bg:var(--color-warning);&>.tooltip-content,&[data-tip]:before{color:var(--color-warning-content)}}.\32 xl\:tooltip-error{--tt-bg:var(--color-error);&>.tooltip-content,&[data-tip]:before{color:var(--color-error-content)}}}.navbar{align-items:center;width:100%;min-height:4rem;padding:.5rem;display:flex}.navbar-start{justify-content:flex-start;align-items:center;width:50%;display:inline-flex}.navbar-center{flex-shrink:0;align-items:center;display:inline-flex}.navbar-end{justify-content:flex-end;align-items:center;width:50%;display:inline-flex}@media (width>=640px){.sm\:navbar{align-items:center;width:100%;min-height:4rem;padding:.5rem;display:flex}.sm\:navbar-start{justify-content:flex-start;align-items:center;width:50%;display:inline-flex}.sm\:navbar-center{flex-shrink:0;align-items:center;display:inline-flex}.sm\:navbar-end{justify-content:flex-end;align-items:center;width:50%;display:inline-flex}}@media (width>=768px){.md\:navbar{align-items:center;width:100%;min-height:4rem;padding:.5rem;display:flex}.md\:navbar-start{justify-content:flex-start;align-items:center;width:50%;display:inline-flex}.md\:navbar-center{flex-shrink:0;align-items:center;display:inline-flex}.md\:navbar-end{justify-content:flex-end;align-items:center;width:50%;display:inline-flex}}@media (width>=1024px){.lg\:navbar{align-items:center;width:100%;min-height:4rem;padding:.5rem;display:flex}.lg\:navbar-start{justify-content:flex-start;align-items:center;width:50%;display:inline-flex}.lg\:navbar-center{flex-shrink:0;align-items:center;display:inline-flex}.lg\:navbar-end{justify-content:flex-end;align-items:center;width:50%;display:inline-flex}}@media (width>=1280px){.xl\:navbar{align-items:center;width:100%;min-height:4rem;padding:.5rem;display:flex}.xl\:navbar-start{justify-content:flex-start;align-items:center;width:50%;display:inline-flex}.xl\:navbar-center{flex-shrink:0;align-items:center;display:inline-flex}.xl\:navbar-end{justify-content:flex-end;align-items:center;width:50%;display:inline-flex}}@media (width>=1536px){.\32 xl\:navbar{align-items:center;width:100%;min-height:4rem;padding:.5rem;display:flex}.\32 xl\:navbar-start{justify-content:flex-start;align-items:center;width:50%;display:inline-flex}.\32 xl\:navbar-center{flex-shrink:0;align-items:center;display:inline-flex}.\32 xl\:navbar-end{justify-content:flex-end;align-items:center;width:50%;display:inline-flex}}.fieldset{grid-template-columns:1fr;grid-auto-rows:max-content;gap:.375rem;padding-block:.25rem;font-size:.75rem;display:grid}.fieldset-legend{color:var(--color-base-content);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:-.25rem;padding-block:.5rem;font-weight:600;display:flex}.fieldset-label{color:color-mix(in oklab,var(--color-base-content)60%,transparent);align-items:center;gap:.375rem;display:flex;&:has(input){cursor:pointer}}@media (width>=640px){.sm\:fieldset{grid-template-columns:1fr;grid-auto-rows:max-content;gap:.375rem;padding-block:.25rem;font-size:.75rem;display:grid}.sm\:fieldset-legend{color:var(--color-base-content);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:-.25rem;padding-block:.5rem;font-weight:600;display:flex}.sm\:fieldset-label{color:color-mix(in oklab,var(--color-base-content)60%,transparent);align-items:center;gap:.375rem;display:flex;&:has(input){cursor:pointer}}}@media (width>=768px){.md\:fieldset{grid-template-columns:1fr;grid-auto-rows:max-content;gap:.375rem;padding-block:.25rem;font-size:.75rem;display:grid}.md\:fieldset-legend{color:var(--color-base-content);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:-.25rem;padding-block:.5rem;font-weight:600;display:flex}.md\:fieldset-label{color:color-mix(in oklab,var(--color-base-content)60%,transparent);align-items:center;gap:.375rem;display:flex;&:has(input){cursor:pointer}}}@media (width>=1024px){.lg\:fieldset{grid-template-columns:1fr;grid-auto-rows:max-content;gap:.375rem;padding-block:.25rem;font-size:.75rem;display:grid}.lg\:fieldset-legend{color:var(--color-base-content);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:-.25rem;padding-block:.5rem;font-weight:600;display:flex}.lg\:fieldset-label{color:color-mix(in oklab,var(--color-base-content)60%,transparent);align-items:center;gap:.375rem;display:flex;&:has(input){cursor:pointer}}}@media (width>=1280px){.xl\:fieldset{grid-template-columns:1fr;grid-auto-rows:max-content;gap:.375rem;padding-block:.25rem;font-size:.75rem;display:grid}.xl\:fieldset-legend{color:var(--color-base-content);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:-.25rem;padding-block:.5rem;font-weight:600;display:flex}.xl\:fieldset-label{color:color-mix(in oklab,var(--color-base-content)60%,transparent);align-items:center;gap:.375rem;display:flex;&:has(input){cursor:pointer}}}@media (width>=1536px){.\32 xl\:fieldset{grid-template-columns:1fr;grid-auto-rows:max-content;gap:.375rem;padding-block:.25rem;font-size:.75rem;display:grid}.\32 xl\:fieldset-legend{color:var(--color-base-content);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:-.25rem;padding-block:.5rem;font-weight:600;display:flex}.\32 xl\:fieldset-label{color:color-mix(in oklab,var(--color-base-content)60%,transparent);align-items:center;gap:.375rem;display:flex;&:has(input){cursor:pointer}}}.modal{pointer-events:none;visibility:hidden;width:100%;max-width:none;height:100%;max-height:none;color:inherit;transition:translate .3s ease-out,visibility .3s allow-discrete,background-color .3s ease-out,opacity .1s ease-out;overscroll-behavior:contain;z-index:999;background-color:#0000;place-items:center;margin:0;padding:0;display:grid;position:fixed;inset:0;overflow:hidden;&::backdrop{display:none}&.modal-open,&[open],&:target{pointer-events:auto;visibility:visible;opacity:1;background-color:oklch(0% 0 0/.4);& .modal-box{opacity:1;translate:0;scale:1}}@starting-style{&.modal-open,&[open],&:target{visibility:hidden;opacity:0}}}.modal-action{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.modal-toggle{appearance:none;opacity:0;width:0;height:0;position:fixed;&:checked+.modal{pointer-events:auto;visibility:visible;opacity:1;background-color:oklch(0% 0 0/.4);& .modal-box{opacity:1;translate:0;scale:1}}@starting-style{&:checked+.modal{visibility:hidden;opacity:0}}}.modal-backdrop{color:#0000;z-index:-1;grid-row-start:1;grid-column-start:1;place-self:stretch stretch;display:grid;& button{cursor:pointer}}.modal-box{background-color:var(--color-base-100);border-top-left-radius:var(--modal-tl,var(--radius-box));border-top-right-radius:var(--modal-tr,var(--radius-box));border-bottom-left-radius:var(--modal-bl,var(--radius-box));border-bottom-right-radius:var(--modal-br,var(--radius-box));opacity:0;overscroll-behavior:contain;grid-row-start:1;grid-column-start:1;width:91.6667%;max-width:32rem;max-height:100vh;padding:1.5rem;transition:translate .3s ease-out,scale .3s ease-out,opacity .2s ease-out 50ms,box-shadow .3s ease-out;overflow-y:auto;scale:95%;box-shadow:0 25px 50px -12px oklch(0% 0 0/.25)}.modal-top{place-items:start;& :where(.modal-box){--modal-tl:0;--modal-tr:0;--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:100%;max-width:none;height:auto;max-height:calc(100vh - 5em);translate:0 -100%;scale:1}}.modal-middle{place-items:center;& :where(.modal-box){--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:91.6667%;max-width:32rem;height:auto;max-height:calc(100vh - 5em);translate:0 2%;scale:98%}}.modal-bottom{place-items:end;& :where(.modal-box){--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:0;--modal-br:0;width:100%;max-width:none;height:auto;max-height:calc(100vh - 5em);translate:0 100%;scale:1}}.modal-start{place-items:start;& :where(.modal-box){--modal-tl:0;--modal-tr:var(--radius-box);--modal-bl:0;--modal-br:var(--radius-box);width:auto;max-width:none;height:100vh;max-height:none;translate:-100%;scale:1}}.modal-end{place-items:end;& :where(.modal-box){--modal-tl:var(--radius-box);--modal-tr:0;--modal-bl:var(--radius-box);--modal-br:0;width:auto;max-width:none;height:100vh;max-height:none;translate:100%;scale:1}}@media (width>=640px){.sm\:modal{pointer-events:none;visibility:hidden;width:100%;max-width:none;height:100%;max-height:none;color:inherit;transition:translate .3s ease-out,visibility .3s allow-discrete,background-color .3s ease-out,opacity .1s ease-out;overscroll-behavior:contain;z-index:999;background-color:#0000;place-items:center;margin:0;padding:0;display:grid;position:fixed;inset:0;overflow:hidden;&::backdrop{display:none}&.modal-open,&[open],&:target{pointer-events:auto;visibility:visible;opacity:1;background-color:oklch(0% 0 0/.4);& .modal-box{opacity:1;translate:0;scale:1}}@starting-style{&.modal-open,&[open],&:target{visibility:hidden;opacity:0}}}.sm\:modal-action{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.sm\:modal-toggle{appearance:none;opacity:0;width:0;height:0;position:fixed;&:checked+.modal{pointer-events:auto;visibility:visible;opacity:1;background-color:oklch(0% 0 0/.4);& .modal-box{opacity:1;translate:0;scale:1}}@starting-style{&:checked+.modal{visibility:hidden;opacity:0}}}.sm\:modal-backdrop{color:#0000;z-index:-1;grid-row-start:1;grid-column-start:1;place-self:stretch stretch;display:grid;& button{cursor:pointer}}.sm\:modal-box{background-color:var(--color-base-100);border-top-left-radius:var(--modal-tl,var(--radius-box));border-top-right-radius:var(--modal-tr,var(--radius-box));border-bottom-left-radius:var(--modal-bl,var(--radius-box));border-bottom-right-radius:var(--modal-br,var(--radius-box));opacity:0;overscroll-behavior:contain;grid-row-start:1;grid-column-start:1;width:91.6667%;max-width:32rem;max-height:100vh;padding:1.5rem;transition:translate .3s ease-out,scale .3s ease-out,opacity .2s ease-out 50ms,box-shadow .3s ease-out;overflow-y:auto;scale:95%;box-shadow:0 25px 50px -12px oklch(0% 0 0/.25)}.sm\:modal-top{place-items:start;& :where(.modal-box){--modal-tl:0;--modal-tr:0;--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:100%;max-width:none;height:auto;max-height:calc(100vh - 5em);translate:0 -100%;scale:1}}.sm\:modal-middle{place-items:center;& :where(.modal-box){--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:91.6667%;max-width:32rem;height:auto;max-height:calc(100vh - 5em);translate:0 2%;scale:98%}}.sm\:modal-bottom{place-items:end;& :where(.modal-box){--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:0;--modal-br:0;width:100%;max-width:none;height:auto;max-height:calc(100vh - 5em);translate:0 100%;scale:1}}.sm\:modal-start{place-items:start;& :where(.modal-box){--modal-tl:0;--modal-tr:var(--radius-box);--modal-bl:0;--modal-br:var(--radius-box);width:auto;max-width:none;height:100vh;max-height:none;translate:-100%;scale:1}}.sm\:modal-end{place-items:end;& :where(.modal-box){--modal-tl:var(--radius-box);--modal-tr:0;--modal-bl:var(--radius-box);--modal-br:0;width:auto;max-width:none;height:100vh;max-height:none;translate:100%;scale:1}}}@media (width>=768px){.md\:modal{pointer-events:none;visibility:hidden;width:100%;max-width:none;height:100%;max-height:none;color:inherit;transition:translate .3s ease-out,visibility .3s allow-discrete,background-color .3s ease-out,opacity .1s ease-out;overscroll-behavior:contain;z-index:999;background-color:#0000;place-items:center;margin:0;padding:0;display:grid;position:fixed;inset:0;overflow:hidden;&::backdrop{display:none}&.modal-open,&[open],&:target{pointer-events:auto;visibility:visible;opacity:1;background-color:oklch(0% 0 0/.4);& .modal-box{opacity:1;translate:0;scale:1}}@starting-style{&.modal-open,&[open],&:target{visibility:hidden;opacity:0}}}.md\:modal-action{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.md\:modal-toggle{appearance:none;opacity:0;width:0;height:0;position:fixed;&:checked+.modal{pointer-events:auto;visibility:visible;opacity:1;background-color:oklch(0% 0 0/.4);& .modal-box{opacity:1;translate:0;scale:1}}@starting-style{&:checked+.modal{visibility:hidden;opacity:0}}}.md\:modal-backdrop{color:#0000;z-index:-1;grid-row-start:1;grid-column-start:1;place-self:stretch stretch;display:grid;& button{cursor:pointer}}.md\:modal-box{background-color:var(--color-base-100);border-top-left-radius:var(--modal-tl,var(--radius-box));border-top-right-radius:var(--modal-tr,var(--radius-box));border-bottom-left-radius:var(--modal-bl,var(--radius-box));border-bottom-right-radius:var(--modal-br,var(--radius-box));opacity:0;overscroll-behavior:contain;grid-row-start:1;grid-column-start:1;width:91.6667%;max-width:32rem;max-height:100vh;padding:1.5rem;transition:translate .3s ease-out,scale .3s ease-out,opacity .2s ease-out 50ms,box-shadow .3s ease-out;overflow-y:auto;scale:95%;box-shadow:0 25px 50px -12px oklch(0% 0 0/.25)}.md\:modal-top{place-items:start;& :where(.modal-box){--modal-tl:0;--modal-tr:0;--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:100%;max-width:none;height:auto;max-height:calc(100vh - 5em);translate:0 -100%;scale:1}}.md\:modal-middle{place-items:center;& :where(.modal-box){--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:91.6667%;max-width:32rem;height:auto;max-height:calc(100vh - 5em);translate:0 2%;scale:98%}}.md\:modal-bottom{place-items:end;& :where(.modal-box){--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:0;--modal-br:0;width:100%;max-width:none;height:auto;max-height:calc(100vh - 5em);translate:0 100%;scale:1}}.md\:modal-start{place-items:start;& :where(.modal-box){--modal-tl:0;--modal-tr:var(--radius-box);--modal-bl:0;--modal-br:var(--radius-box);width:auto;max-width:none;height:100vh;max-height:none;translate:-100%;scale:1}}.md\:modal-end{place-items:end;& :where(.modal-box){--modal-tl:var(--radius-box);--modal-tr:0;--modal-bl:var(--radius-box);--modal-br:0;width:auto;max-width:none;height:100vh;max-height:none;translate:100%;scale:1}}}@media (width>=1024px){.lg\:modal{pointer-events:none;visibility:hidden;width:100%;max-width:none;height:100%;max-height:none;color:inherit;transition:translate .3s ease-out,visibility .3s allow-discrete,background-color .3s ease-out,opacity .1s ease-out;overscroll-behavior:contain;z-index:999;background-color:#0000;place-items:center;margin:0;padding:0;display:grid;position:fixed;inset:0;overflow:hidden;&::backdrop{display:none}&.modal-open,&[open],&:target{pointer-events:auto;visibility:visible;opacity:1;background-color:oklch(0% 0 0/.4);& .modal-box{opacity:1;translate:0;scale:1}}@starting-style{&.modal-open,&[open],&:target{visibility:hidden;opacity:0}}}.lg\:modal-action{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.lg\:modal-toggle{appearance:none;opacity:0;width:0;height:0;position:fixed;&:checked+.modal{pointer-events:auto;visibility:visible;opacity:1;background-color:oklch(0% 0 0/.4);& .modal-box{opacity:1;translate:0;scale:1}}@starting-style{&:checked+.modal{visibility:hidden;opacity:0}}}.lg\:modal-backdrop{color:#0000;z-index:-1;grid-row-start:1;grid-column-start:1;place-self:stretch stretch;display:grid;& button{cursor:pointer}}.lg\:modal-box{background-color:var(--color-base-100);border-top-left-radius:var(--modal-tl,var(--radius-box));border-top-right-radius:var(--modal-tr,var(--radius-box));border-bottom-left-radius:var(--modal-bl,var(--radius-box));border-bottom-right-radius:var(--modal-br,var(--radius-box));opacity:0;overscroll-behavior:contain;grid-row-start:1;grid-column-start:1;width:91.6667%;max-width:32rem;max-height:100vh;padding:1.5rem;transition:translate .3s ease-out,scale .3s ease-out,opacity .2s ease-out 50ms,box-shadow .3s ease-out;overflow-y:auto;scale:95%;box-shadow:0 25px 50px -12px oklch(0% 0 0/.25)}.lg\:modal-top{place-items:start;& :where(.modal-box){--modal-tl:0;--modal-tr:0;--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:100%;max-width:none;height:auto;max-height:calc(100vh - 5em);translate:0 -100%;scale:1}}.lg\:modal-middle{place-items:center;& :where(.modal-box){--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:91.6667%;max-width:32rem;height:auto;max-height:calc(100vh - 5em);translate:0 2%;scale:98%}}.lg\:modal-bottom{place-items:end;& :where(.modal-box){--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:0;--modal-br:0;width:100%;max-width:none;height:auto;max-height:calc(100vh - 5em);translate:0 100%;scale:1}}.lg\:modal-start{place-items:start;& :where(.modal-box){--modal-tl:0;--modal-tr:var(--radius-box);--modal-bl:0;--modal-br:var(--radius-box);width:auto;max-width:none;height:100vh;max-height:none;translate:-100%;scale:1}}.lg\:modal-end{place-items:end;& :where(.modal-box){--modal-tl:var(--radius-box);--modal-tr:0;--modal-bl:var(--radius-box);--modal-br:0;width:auto;max-width:none;height:100vh;max-height:none;translate:100%;scale:1}}}@media (width>=1280px){.xl\:modal{pointer-events:none;visibility:hidden;width:100%;max-width:none;height:100%;max-height:none;color:inherit;transition:translate .3s ease-out,visibility .3s allow-discrete,background-color .3s ease-out,opacity .1s ease-out;overscroll-behavior:contain;z-index:999;background-color:#0000;place-items:center;margin:0;padding:0;display:grid;position:fixed;inset:0;overflow:hidden;&::backdrop{display:none}&.modal-open,&[open],&:target{pointer-events:auto;visibility:visible;opacity:1;background-color:oklch(0% 0 0/.4);& .modal-box{opacity:1;translate:0;scale:1}}@starting-style{&.modal-open,&[open],&:target{visibility:hidden;opacity:0}}}.xl\:modal-action{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.xl\:modal-toggle{appearance:none;opacity:0;width:0;height:0;position:fixed;&:checked+.modal{pointer-events:auto;visibility:visible;opacity:1;background-color:oklch(0% 0 0/.4);& .modal-box{opacity:1;translate:0;scale:1}}@starting-style{&:checked+.modal{visibility:hidden;opacity:0}}}.xl\:modal-backdrop{color:#0000;z-index:-1;grid-row-start:1;grid-column-start:1;place-self:stretch stretch;display:grid;& button{cursor:pointer}}.xl\:modal-box{background-color:var(--color-base-100);border-top-left-radius:var(--modal-tl,var(--radius-box));border-top-right-radius:var(--modal-tr,var(--radius-box));border-bottom-left-radius:var(--modal-bl,var(--radius-box));border-bottom-right-radius:var(--modal-br,var(--radius-box));opacity:0;overscroll-behavior:contain;grid-row-start:1;grid-column-start:1;width:91.6667%;max-width:32rem;max-height:100vh;padding:1.5rem;transition:translate .3s ease-out,scale .3s ease-out,opacity .2s ease-out 50ms,box-shadow .3s ease-out;overflow-y:auto;scale:95%;box-shadow:0 25px 50px -12px oklch(0% 0 0/.25)}.xl\:modal-top{place-items:start;& :where(.modal-box){--modal-tl:0;--modal-tr:0;--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:100%;max-width:none;height:auto;max-height:calc(100vh - 5em);translate:0 -100%;scale:1}}.xl\:modal-middle{place-items:center;& :where(.modal-box){--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:91.6667%;max-width:32rem;height:auto;max-height:calc(100vh - 5em);translate:0 2%;scale:98%}}.xl\:modal-bottom{place-items:end;& :where(.modal-box){--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:0;--modal-br:0;width:100%;max-width:none;height:auto;max-height:calc(100vh - 5em);translate:0 100%;scale:1}}.xl\:modal-start{place-items:start;& :where(.modal-box){--modal-tl:0;--modal-tr:var(--radius-box);--modal-bl:0;--modal-br:var(--radius-box);width:auto;max-width:none;height:100vh;max-height:none;translate:-100%;scale:1}}.xl\:modal-end{place-items:end;& :where(.modal-box){--modal-tl:var(--radius-box);--modal-tr:0;--modal-bl:var(--radius-box);--modal-br:0;width:auto;max-width:none;height:100vh;max-height:none;translate:100%;scale:1}}}@media (width>=1536px){.\32 xl\:modal{pointer-events:none;visibility:hidden;width:100%;max-width:none;height:100%;max-height:none;color:inherit;transition:translate .3s ease-out,visibility .3s allow-discrete,background-color .3s ease-out,opacity .1s ease-out;overscroll-behavior:contain;z-index:999;background-color:#0000;place-items:center;margin:0;padding:0;display:grid;position:fixed;inset:0;overflow:hidden;&::backdrop{display:none}&.modal-open,&[open],&:target{pointer-events:auto;visibility:visible;opacity:1;background-color:oklch(0% 0 0/.4);& .modal-box{opacity:1;translate:0;scale:1}}@starting-style{&.modal-open,&[open],&:target{visibility:hidden;opacity:0}}}.\32 xl\:modal-action{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.\32 xl\:modal-toggle{appearance:none;opacity:0;width:0;height:0;position:fixed;&:checked+.modal{pointer-events:auto;visibility:visible;opacity:1;background-color:oklch(0% 0 0/.4);& .modal-box{opacity:1;translate:0;scale:1}}@starting-style{&:checked+.modal{visibility:hidden;opacity:0}}}.\32 xl\:modal-backdrop{color:#0000;z-index:-1;grid-row-start:1;grid-column-start:1;place-self:stretch stretch;display:grid;& button{cursor:pointer}}.\32 xl\:modal-box{background-color:var(--color-base-100);border-top-left-radius:var(--modal-tl,var(--radius-box));border-top-right-radius:var(--modal-tr,var(--radius-box));border-bottom-left-radius:var(--modal-bl,var(--radius-box));border-bottom-right-radius:var(--modal-br,var(--radius-box));opacity:0;overscroll-behavior:contain;grid-row-start:1;grid-column-start:1;width:91.6667%;max-width:32rem;max-height:100vh;padding:1.5rem;transition:translate .3s ease-out,scale .3s ease-out,opacity .2s ease-out 50ms,box-shadow .3s ease-out;overflow-y:auto;scale:95%;box-shadow:0 25px 50px -12px oklch(0% 0 0/.25)}.\32 xl\:modal-top{place-items:start;& :where(.modal-box){--modal-tl:0;--modal-tr:0;--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:100%;max-width:none;height:auto;max-height:calc(100vh - 5em);translate:0 -100%;scale:1}}.\32 xl\:modal-middle{place-items:center;& :where(.modal-box){--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:91.6667%;max-width:32rem;height:auto;max-height:calc(100vh - 5em);translate:0 2%;scale:98%}}.\32 xl\:modal-bottom{place-items:end;& :where(.modal-box){--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:0;--modal-br:0;width:100%;max-width:none;height:auto;max-height:calc(100vh - 5em);translate:0 100%;scale:1}}.\32 xl\:modal-start{place-items:start;& :where(.modal-box){--modal-tl:0;--modal-tr:var(--radius-box);--modal-bl:0;--modal-br:var(--radius-box);width:auto;max-width:none;height:100vh;max-height:none;translate:-100%;scale:1}}.\32 xl\:modal-end{place-items:end;& :where(.modal-box){--modal-tl:var(--radius-box);--modal-tr:0;--modal-bl:var(--radius-box);--modal-br:0;width:auto;max-width:none;height:100vh;max-height:none;translate:100%;scale:1}}}.stack{grid-template-rows:3px 4px 1fr 4px 3px;grid-template-columns:3px 4px 1fr 4px 3px;display:inline-grid;&>*{width:100%;height:100%;&:nth-child(n+2){opacity:.7;width:100%}&:nth-child(2){z-index:2;opacity:.9}&:first-child{z-index:3;width:100%}}&,&.stack-bottom{&>*{grid-area:3/3/6/4;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:1/1/4/6}}}&.stack-top{&>*{grid-area:1/3/4/4;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:3/1/6/6}}}&.stack-start{&>*{grid-area:3/1/4/4;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:1/3/6/6}}}&.stack-end{&>*{grid-area:3/3/4/6;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:1/1/6/4}}}}@media (width>=640px){.sm\:stack{grid-template-rows:3px 4px 1fr 4px 3px;grid-template-columns:3px 4px 1fr 4px 3px;display:inline-grid;&>*{width:100%;height:100%;&:nth-child(n+2){opacity:.7;width:100%}&:nth-child(2){z-index:2;opacity:.9}&:first-child{z-index:3;width:100%}}&,&.stack-bottom{&>*{grid-area:3/3/6/4;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:1/1/4/6}}}&.stack-top{&>*{grid-area:1/3/4/4;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:3/1/6/6}}}&.stack-start{&>*{grid-area:3/1/4/4;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:1/3/6/6}}}&.stack-end{&>*{grid-area:3/3/4/6;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:1/1/6/4}}}}}@media (width>=768px){.md\:stack{grid-template-rows:3px 4px 1fr 4px 3px;grid-template-columns:3px 4px 1fr 4px 3px;display:inline-grid;&>*{width:100%;height:100%;&:nth-child(n+2){opacity:.7;width:100%}&:nth-child(2){z-index:2;opacity:.9}&:first-child{z-index:3;width:100%}}&,&.stack-bottom{&>*{grid-area:3/3/6/4;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:1/1/4/6}}}&.stack-top{&>*{grid-area:1/3/4/4;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:3/1/6/6}}}&.stack-start{&>*{grid-area:3/1/4/4;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:1/3/6/6}}}&.stack-end{&>*{grid-area:3/3/4/6;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:1/1/6/4}}}}}@media (width>=1024px){.lg\:stack{grid-template-rows:3px 4px 1fr 4px 3px;grid-template-columns:3px 4px 1fr 4px 3px;display:inline-grid;&>*{width:100%;height:100%;&:nth-child(n+2){opacity:.7;width:100%}&:nth-child(2){z-index:2;opacity:.9}&:first-child{z-index:3;width:100%}}&,&.stack-bottom{&>*{grid-area:3/3/6/4;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:1/1/4/6}}}&.stack-top{&>*{grid-area:1/3/4/4;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:3/1/6/6}}}&.stack-start{&>*{grid-area:3/1/4/4;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:1/3/6/6}}}&.stack-end{&>*{grid-area:3/3/4/6;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:1/1/6/4}}}}}@media (width>=1280px){.xl\:stack{grid-template-rows:3px 4px 1fr 4px 3px;grid-template-columns:3px 4px 1fr 4px 3px;display:inline-grid;&>*{width:100%;height:100%;&:nth-child(n+2){opacity:.7;width:100%}&:nth-child(2){z-index:2;opacity:.9}&:first-child{z-index:3;width:100%}}&,&.stack-bottom{&>*{grid-area:3/3/6/4;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:1/1/4/6}}}&.stack-top{&>*{grid-area:1/3/4/4;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:3/1/6/6}}}&.stack-start{&>*{grid-area:3/1/4/4;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:1/3/6/6}}}&.stack-end{&>*{grid-area:3/3/4/6;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:1/1/6/4}}}}}@media (width>=1536px){.\32 xl\:stack{grid-template-rows:3px 4px 1fr 4px 3px;grid-template-columns:3px 4px 1fr 4px 3px;display:inline-grid;&>*{width:100%;height:100%;&:nth-child(n+2){opacity:.7;width:100%}&:nth-child(2){z-index:2;opacity:.9}&:first-child{z-index:3;width:100%}}&,&.stack-bottom{&>*{grid-area:3/3/6/4;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:1/1/4/6}}}&.stack-top{&>*{grid-area:1/3/4/4;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:3/1/6/6}}}&.stack-start{&>*{grid-area:3/1/4/4;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:1/3/6/6}}}&.stack-end{&>*{grid-area:3/3/4/6;&:nth-child(2){grid-area:2/2/5/5}&:first-child{grid-area:1/1/6/4}}}}}.carousel{scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;display:inline-flex;overflow-x:scroll;&::-webkit-scrollbar{display:none}}.carousel-vertical{scroll-snap-type:y mandatory;flex-direction:column;overflow-y:scroll}.carousel-horizontal{scroll-snap-type:x mandatory;flex-direction:row;overflow-x:scroll}.carousel-item{box-sizing:content-box;scroll-snap-align:start;flex:none;display:flex}.carousel-start{& .carousel-item{scroll-snap-align:start}}.carousel-center{& .carousel-item{scroll-snap-align:center}}.carousel-end{& .carousel-item{scroll-snap-align:end}}@media (width>=640px){.sm\:carousel{scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;display:inline-flex;overflow-x:scroll;&::-webkit-scrollbar{display:none}}.sm\:carousel-vertical{scroll-snap-type:y mandatory;flex-direction:column;overflow-y:scroll}.sm\:carousel-horizontal{scroll-snap-type:x mandatory;flex-direction:row;overflow-x:scroll}.sm\:carousel-item{box-sizing:content-box;scroll-snap-align:start;flex:none;display:flex}.sm\:carousel-start{& .carousel-item{scroll-snap-align:start}}.sm\:carousel-center{& .carousel-item{scroll-snap-align:center}}.sm\:carousel-end{& .carousel-item{scroll-snap-align:end}}}@media (width>=768px){.md\:carousel{scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;display:inline-flex;overflow-x:scroll;&::-webkit-scrollbar{display:none}}.md\:carousel-vertical{scroll-snap-type:y mandatory;flex-direction:column;overflow-y:scroll}.md\:carousel-horizontal{scroll-snap-type:x mandatory;flex-direction:row;overflow-x:scroll}.md\:carousel-item{box-sizing:content-box;scroll-snap-align:start;flex:none;display:flex}.md\:carousel-start{& .carousel-item{scroll-snap-align:start}}.md\:carousel-center{& .carousel-item{scroll-snap-align:center}}.md\:carousel-end{& .carousel-item{scroll-snap-align:end}}}@media (width>=1024px){.lg\:carousel{scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;display:inline-flex;overflow-x:scroll;&::-webkit-scrollbar{display:none}}.lg\:carousel-vertical{scroll-snap-type:y mandatory;flex-direction:column;overflow-y:scroll}.lg\:carousel-horizontal{scroll-snap-type:x mandatory;flex-direction:row;overflow-x:scroll}.lg\:carousel-item{box-sizing:content-box;scroll-snap-align:start;flex:none;display:flex}.lg\:carousel-start{& .carousel-item{scroll-snap-align:start}}.lg\:carousel-center{& .carousel-item{scroll-snap-align:center}}.lg\:carousel-end{& .carousel-item{scroll-snap-align:end}}}@media (width>=1280px){.xl\:carousel{scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;display:inline-flex;overflow-x:scroll;&::-webkit-scrollbar{display:none}}.xl\:carousel-vertical{scroll-snap-type:y mandatory;flex-direction:column;overflow-y:scroll}.xl\:carousel-horizontal{scroll-snap-type:x mandatory;flex-direction:row;overflow-x:scroll}.xl\:carousel-item{box-sizing:content-box;scroll-snap-align:start;flex:none;display:flex}.xl\:carousel-start{& .carousel-item{scroll-snap-align:start}}.xl\:carousel-center{& .carousel-item{scroll-snap-align:center}}.xl\:carousel-end{& .carousel-item{scroll-snap-align:end}}}@media (width>=1536px){.\32 xl\:carousel{scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;display:inline-flex;overflow-x:scroll;&::-webkit-scrollbar{display:none}}.\32 xl\:carousel-vertical{scroll-snap-type:y mandatory;flex-direction:column;overflow-y:scroll}.\32 xl\:carousel-horizontal{scroll-snap-type:x mandatory;flex-direction:row;overflow-x:scroll}.\32 xl\:carousel-item{box-sizing:content-box;scroll-snap-align:start;flex:none;display:flex}.\32 xl\:carousel-start{& .carousel-item{scroll-snap-align:start}}.\32 xl\:carousel-center{& .carousel-item{scroll-snap-align:center}}.\32 xl\:carousel-end{& .carousel-item{scroll-snap-align:end}}}.avatar-group{display:flex;overflow:hidden;& :where(.avatar){border:4px solid var(--color-base-100);border-radius:3.40282e38px;overflow:hidden}}.avatar{vertical-align:middle;display:inline-flex;position:relative;&>div{aspect-ratio:1;display:block;overflow:hidden}& img{object-fit:cover;width:100%;height:100%}}.avatar-placeholder{&>div{justify-content:center;align-items:center;display:flex}}.avatar-online{&:before{content:"";z-index:1;background-color:var(--color-success);outline:2px solid var(--color-base-100);border-radius:3.40282e38px;width:15%;height:15%;display:block;position:absolute;top:7%;right:7%}}.avatar-offline{&:before{content:"";z-index:1;background-color:var(--color-base-300);outline:2px solid var(--color-base-100);border-radius:3.40282e38px;width:15%;height:15%;display:block;position:absolute;top:7%;right:7%}}@media (width>=640px){.sm\:avatar-group{display:flex;overflow:hidden;& :where(.avatar){border:4px solid var(--color-base-100);border-radius:3.40282e38px;overflow:hidden}}.sm\:avatar{vertical-align:middle;display:inline-flex;position:relative;&>div{aspect-ratio:1;display:block;overflow:hidden}& img{object-fit:cover;width:100%;height:100%}}.sm\:avatar-placeholder{&>div{justify-content:center;align-items:center;display:flex}}.sm\:avatar-online{&:before{content:"";z-index:1;background-color:var(--color-success);outline:2px solid var(--color-base-100);border-radius:3.40282e38px;width:15%;height:15%;display:block;position:absolute;top:7%;right:7%}}.sm\:avatar-offline{&:before{content:"";z-index:1;background-color:var(--color-base-300);outline:2px solid var(--color-base-100);border-radius:3.40282e38px;width:15%;height:15%;display:block;position:absolute;top:7%;right:7%}}}@media (width>=768px){.md\:avatar-group{display:flex;overflow:hidden;& :where(.avatar){border:4px solid var(--color-base-100);border-radius:3.40282e38px;overflow:hidden}}.md\:avatar{vertical-align:middle;display:inline-flex;position:relative;&>div{aspect-ratio:1;display:block;overflow:hidden}& img{object-fit:cover;width:100%;height:100%}}.md\:avatar-placeholder{&>div{justify-content:center;align-items:center;display:flex}}.md\:avatar-online{&:before{content:"";z-index:1;background-color:var(--color-success);outline:2px solid var(--color-base-100);border-radius:3.40282e38px;width:15%;height:15%;display:block;position:absolute;top:7%;right:7%}}.md\:avatar-offline{&:before{content:"";z-index:1;background-color:var(--color-base-300);outline:2px solid var(--color-base-100);border-radius:3.40282e38px;width:15%;height:15%;display:block;position:absolute;top:7%;right:7%}}}@media (width>=1024px){.lg\:avatar-group{display:flex;overflow:hidden;& :where(.avatar){border:4px solid var(--color-base-100);border-radius:3.40282e38px;overflow:hidden}}.lg\:avatar{vertical-align:middle;display:inline-flex;position:relative;&>div{aspect-ratio:1;display:block;overflow:hidden}& img{object-fit:cover;width:100%;height:100%}}.lg\:avatar-placeholder{&>div{justify-content:center;align-items:center;display:flex}}.lg\:avatar-online{&:before{content:"";z-index:1;background-color:var(--color-success);outline:2px solid var(--color-base-100);border-radius:3.40282e38px;width:15%;height:15%;display:block;position:absolute;top:7%;right:7%}}.lg\:avatar-offline{&:before{content:"";z-index:1;background-color:var(--color-base-300);outline:2px solid var(--color-base-100);border-radius:3.40282e38px;width:15%;height:15%;display:block;position:absolute;top:7%;right:7%}}}@media (width>=1280px){.xl\:avatar-group{display:flex;overflow:hidden;& :where(.avatar){border:4px solid var(--color-base-100);border-radius:3.40282e38px;overflow:hidden}}.xl\:avatar{vertical-align:middle;display:inline-flex;position:relative;&>div{aspect-ratio:1;display:block;overflow:hidden}& img{object-fit:cover;width:100%;height:100%}}.xl\:avatar-placeholder{&>div{justify-content:center;align-items:center;display:flex}}.xl\:avatar-online{&:before{content:"";z-index:1;background-color:var(--color-success);outline:2px solid var(--color-base-100);border-radius:3.40282e38px;width:15%;height:15%;display:block;position:absolute;top:7%;right:7%}}.xl\:avatar-offline{&:before{content:"";z-index:1;background-color:var(--color-base-300);outline:2px solid var(--color-base-100);border-radius:3.40282e38px;width:15%;height:15%;display:block;position:absolute;top:7%;right:7%}}}@media (width>=1536px){.\32 xl\:avatar-group{display:flex;overflow:hidden;& :where(.avatar){border:4px solid var(--color-base-100);border-radius:3.40282e38px;overflow:hidden}}.\32 xl\:avatar{vertical-align:middle;display:inline-flex;position:relative;&>div{aspect-ratio:1;display:block;overflow:hidden}& img{object-fit:cover;width:100%;height:100%}}.\32 xl\:avatar-placeholder{&>div{justify-content:center;align-items:center;display:flex}}.\32 xl\:avatar-online{&:before{content:"";z-index:1;background-color:var(--color-success);outline:2px solid var(--color-base-100);border-radius:3.40282e38px;width:15%;height:15%;display:block;position:absolute;top:7%;right:7%}}.\32 xl\:avatar-offline{&:before{content:"";z-index:1;background-color:var(--color-base-300);outline:2px solid var(--color-base-100);border-radius:3.40282e38px;width:15%;height:15%;display:block;position:absolute;top:7%;right:7%}}}.dropdown{position-area:var(--anchor-v,bottom)var(--anchor-h,span-right);display:inline-block;position:relative;&>:not(summary):focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}& .dropdown-content{position:absolute}&:not(details,.dropdown-open,.dropdown-hover:hover,:focus-within){& .dropdown-content{transform-origin:top;opacity:0;display:none;scale:95%}}&[popover],& .dropdown-content{z-index:999;transition-behavior:allow-discrete;transition-property:opacity,scale,display;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation:.2s dropdown}@starting-style{&[popover],& .dropdown-content{opacity:0;scale:95%}}&.dropdown-open,&:not(.dropdown-hover):focus,&:focus-within{&>[tabindex]:first-child{pointer-events:none}& .dropdown-content{opacity:1}}&.dropdown-hover:hover{& .dropdown-content{opacity:1;scale:100%}}&:is(details){& summary{&::-webkit-details-marker{display:none}}}&.dropdown-open,&:focus,&:focus-within{& .dropdown-content{scale:100%}}&:where([popover]){background:0 0}&[popover]{color:inherit;position:fixed;@supports not (position-area:bottom){&{margin:auto}&.dropdown-open:not(:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}&::backdrop{background-color:oklab(0% none none/.3)}}&:not(.dropdown-open,:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}}}.dropdown-start{--anchor-h:span-right;& :where(.dropdown-content){inset-inline-end:auto;translate:0;[dir=rtl] &{translate:0}}&.dropdown-left{--anchor-h:left;--anchor-v:span-bottom;& .dropdown-content{top:0;bottom:auto}}&.dropdown-right{--anchor-h:right;--anchor-v:span-bottom;& .dropdown-content{top:0;bottom:auto}}}.dropdown-center{--anchor-h:center;& :where(.dropdown-content){inset-inline-end:50%;translate:50%;[dir=rtl] &{translate:-50%}}&.dropdown-left{--anchor-h:left;--anchor-v:center;& .dropdown-content{top:auto;bottom:50%;translate:0 50%}}&.dropdown-right{--anchor-h:right;--anchor-v:center;& .dropdown-content{top:auto;bottom:50%;translate:0 50%}}}.dropdown-end{--anchor-h:span-left;& :where(.dropdown-content){inset-inline-end:0;translate:0;[dir=rtl] &{translate:0}}&.dropdown-left{--anchor-h:left;--anchor-v:span-top;& .dropdown-content{top:auto;bottom:0}}&.dropdown-right{--anchor-h:right;--anchor-v:span-top;& .dropdown-content{top:auto;bottom:0}}}.dropdown-left{--anchor-h:left;--anchor-v:span-bottom;& .dropdown-content{inset-inline-end:100%;transform-origin:100%;top:0;bottom:auto}}.dropdown-right{--anchor-h:right;--anchor-v:span-bottom;& .dropdown-content{inset-inline-start:100%;transform-origin:0;top:0;bottom:auto}}.dropdown-bottom{--anchor-v:bottom;& .dropdown-content{transform-origin:top;top:100%;bottom:auto}}.dropdown-top{--anchor-v:top;& .dropdown-content{transform-origin:bottom;top:auto;bottom:100%}}@keyframes dropdown{0%{opacity:0}}@media (width>=640px){.sm\:dropdown{position-area:var(--anchor-v,bottom)var(--anchor-h,span-right);display:inline-block;position:relative;&>:not(summary):focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}& .dropdown-content{position:absolute}&:not(details,.dropdown-open,.dropdown-hover:hover,:focus-within){& .dropdown-content{transform-origin:top;opacity:0;display:none;scale:95%}}&[popover],& .dropdown-content{z-index:999;transition-behavior:allow-discrete;transition-property:opacity,scale,display;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation:.2s dropdown}@starting-style{&[popover],& .dropdown-content{opacity:0;scale:95%}}&.dropdown-open,&:not(.dropdown-hover):focus,&:focus-within{&>[tabindex]:first-child{pointer-events:none}& .dropdown-content{opacity:1}}&.dropdown-hover:hover{& .dropdown-content{opacity:1;scale:100%}}&:is(details){& summary{&::-webkit-details-marker{display:none}}}&.dropdown-open,&:focus,&:focus-within{& .dropdown-content{scale:100%}}&:where([popover]){background:0 0}&[popover]{color:inherit;position:fixed;@supports not (position-area:bottom){&{margin:auto}&.dropdown-open:not(:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}&::backdrop{background-color:oklab(0% none none/.3)}}&:not(.dropdown-open,:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}}}.sm\:dropdown-start{--anchor-h:span-right;& :where(.dropdown-content){inset-inline-end:auto;translate:0;[dir=rtl] &{translate:0}}&.dropdown-left{--anchor-h:left;--anchor-v:span-bottom;& .dropdown-content{top:0;bottom:auto}}&.dropdown-right{--anchor-h:right;--anchor-v:span-bottom;& .dropdown-content{top:0;bottom:auto}}}.sm\:dropdown-center{--anchor-h:center;& :where(.dropdown-content){inset-inline-end:50%;translate:50%;[dir=rtl] &{translate:-50%}}&.dropdown-left{--anchor-h:left;--anchor-v:center;& .dropdown-content{top:auto;bottom:50%;translate:0 50%}}&.dropdown-right{--anchor-h:right;--anchor-v:center;& .dropdown-content{top:auto;bottom:50%;translate:0 50%}}}.sm\:dropdown-end{--anchor-h:span-left;& :where(.dropdown-content){inset-inline-end:0;translate:0;[dir=rtl] &{translate:0}}&.dropdown-left{--anchor-h:left;--anchor-v:span-top;& .dropdown-content{top:auto;bottom:0}}&.dropdown-right{--anchor-h:right;--anchor-v:span-top;& .dropdown-content{top:auto;bottom:0}}}.sm\:dropdown-left{--anchor-h:left;--anchor-v:span-bottom;& .dropdown-content{inset-inline-end:100%;transform-origin:100%;top:0;bottom:auto}}.sm\:dropdown-right{--anchor-h:right;--anchor-v:span-bottom;& .dropdown-content{inset-inline-start:100%;transform-origin:0;top:0;bottom:auto}}.sm\:dropdown-bottom{--anchor-v:bottom;& .dropdown-content{transform-origin:top;top:100%;bottom:auto}}.sm\:dropdown-top{--anchor-v:top;& .dropdown-content{transform-origin:bottom;top:auto;bottom:100%}}}@media (width>=768px){.md\:dropdown{position-area:var(--anchor-v,bottom)var(--anchor-h,span-right);display:inline-block;position:relative;&>:not(summary):focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}& .dropdown-content{position:absolute}&:not(details,.dropdown-open,.dropdown-hover:hover,:focus-within){& .dropdown-content{transform-origin:top;opacity:0;display:none;scale:95%}}&[popover],& .dropdown-content{z-index:999;transition-behavior:allow-discrete;transition-property:opacity,scale,display;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation:.2s dropdown}@starting-style{&[popover],& .dropdown-content{opacity:0;scale:95%}}&.dropdown-open,&:not(.dropdown-hover):focus,&:focus-within{&>[tabindex]:first-child{pointer-events:none}& .dropdown-content{opacity:1}}&.dropdown-hover:hover{& .dropdown-content{opacity:1;scale:100%}}&:is(details){& summary{&::-webkit-details-marker{display:none}}}&.dropdown-open,&:focus,&:focus-within{& .dropdown-content{scale:100%}}&:where([popover]){background:0 0}&[popover]{color:inherit;position:fixed;@supports not (position-area:bottom){&{margin:auto}&.dropdown-open:not(:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}&::backdrop{background-color:oklab(0% none none/.3)}}&:not(.dropdown-open,:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}}}.md\:dropdown-start{--anchor-h:span-right;& :where(.dropdown-content){inset-inline-end:auto;translate:0;[dir=rtl] &{translate:0}}&.dropdown-left{--anchor-h:left;--anchor-v:span-bottom;& .dropdown-content{top:0;bottom:auto}}&.dropdown-right{--anchor-h:right;--anchor-v:span-bottom;& .dropdown-content{top:0;bottom:auto}}}.md\:dropdown-center{--anchor-h:center;& :where(.dropdown-content){inset-inline-end:50%;translate:50%;[dir=rtl] &{translate:-50%}}&.dropdown-left{--anchor-h:left;--anchor-v:center;& .dropdown-content{top:auto;bottom:50%;translate:0 50%}}&.dropdown-right{--anchor-h:right;--anchor-v:center;& .dropdown-content{top:auto;bottom:50%;translate:0 50%}}}.md\:dropdown-end{--anchor-h:span-left;& :where(.dropdown-content){inset-inline-end:0;translate:0;[dir=rtl] &{translate:0}}&.dropdown-left{--anchor-h:left;--anchor-v:span-top;& .dropdown-content{top:auto;bottom:0}}&.dropdown-right{--anchor-h:right;--anchor-v:span-top;& .dropdown-content{top:auto;bottom:0}}}.md\:dropdown-left{--anchor-h:left;--anchor-v:span-bottom;& .dropdown-content{inset-inline-end:100%;transform-origin:100%;top:0;bottom:auto}}.md\:dropdown-right{--anchor-h:right;--anchor-v:span-bottom;& .dropdown-content{inset-inline-start:100%;transform-origin:0;top:0;bottom:auto}}.md\:dropdown-bottom{--anchor-v:bottom;& .dropdown-content{transform-origin:top;top:100%;bottom:auto}}.md\:dropdown-top{--anchor-v:top;& .dropdown-content{transform-origin:bottom;top:auto;bottom:100%}}}@media (width>=1024px){.lg\:dropdown{position-area:var(--anchor-v,bottom)var(--anchor-h,span-right);display:inline-block;position:relative;&>:not(summary):focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}& .dropdown-content{position:absolute}&:not(details,.dropdown-open,.dropdown-hover:hover,:focus-within){& .dropdown-content{transform-origin:top;opacity:0;display:none;scale:95%}}&[popover],& .dropdown-content{z-index:999;transition-behavior:allow-discrete;transition-property:opacity,scale,display;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation:.2s dropdown}@starting-style{&[popover],& .dropdown-content{opacity:0;scale:95%}}&.dropdown-open,&:not(.dropdown-hover):focus,&:focus-within{&>[tabindex]:first-child{pointer-events:none}& .dropdown-content{opacity:1}}&.dropdown-hover:hover{& .dropdown-content{opacity:1;scale:100%}}&:is(details){& summary{&::-webkit-details-marker{display:none}}}&.dropdown-open,&:focus,&:focus-within{& .dropdown-content{scale:100%}}&:where([popover]){background:0 0}&[popover]{color:inherit;position:fixed;@supports not (position-area:bottom){&{margin:auto}&.dropdown-open:not(:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}&::backdrop{background-color:oklab(0% none none/.3)}}&:not(.dropdown-open,:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}}}.lg\:dropdown-start{--anchor-h:span-right;& :where(.dropdown-content){inset-inline-end:auto;translate:0;[dir=rtl] &{translate:0}}&.dropdown-left{--anchor-h:left;--anchor-v:span-bottom;& .dropdown-content{top:0;bottom:auto}}&.dropdown-right{--anchor-h:right;--anchor-v:span-bottom;& .dropdown-content{top:0;bottom:auto}}}.lg\:dropdown-center{--anchor-h:center;& :where(.dropdown-content){inset-inline-end:50%;translate:50%;[dir=rtl] &{translate:-50%}}&.dropdown-left{--anchor-h:left;--anchor-v:center;& .dropdown-content{top:auto;bottom:50%;translate:0 50%}}&.dropdown-right{--anchor-h:right;--anchor-v:center;& .dropdown-content{top:auto;bottom:50%;translate:0 50%}}}.lg\:dropdown-end{--anchor-h:span-left;& :where(.dropdown-content){inset-inline-end:0;translate:0;[dir=rtl] &{translate:0}}&.dropdown-left{--anchor-h:left;--anchor-v:span-top;& .dropdown-content{top:auto;bottom:0}}&.dropdown-right{--anchor-h:right;--anchor-v:span-top;& .dropdown-content{top:auto;bottom:0}}}.lg\:dropdown-left{--anchor-h:left;--anchor-v:span-bottom;& .dropdown-content{inset-inline-end:100%;transform-origin:100%;top:0;bottom:auto}}.lg\:dropdown-right{--anchor-h:right;--anchor-v:span-bottom;& .dropdown-content{inset-inline-start:100%;transform-origin:0;top:0;bottom:auto}}.lg\:dropdown-bottom{--anchor-v:bottom;& .dropdown-content{transform-origin:top;top:100%;bottom:auto}}.lg\:dropdown-top{--anchor-v:top;& .dropdown-content{transform-origin:bottom;top:auto;bottom:100%}}}@media (width>=1280px){.xl\:dropdown{position-area:var(--anchor-v,bottom)var(--anchor-h,span-right);display:inline-block;position:relative;&>:not(summary):focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}& .dropdown-content{position:absolute}&:not(details,.dropdown-open,.dropdown-hover:hover,:focus-within){& .dropdown-content{transform-origin:top;opacity:0;display:none;scale:95%}}&[popover],& .dropdown-content{z-index:999;transition-behavior:allow-discrete;transition-property:opacity,scale,display;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation:.2s dropdown}@starting-style{&[popover],& .dropdown-content{opacity:0;scale:95%}}&.dropdown-open,&:not(.dropdown-hover):focus,&:focus-within{&>[tabindex]:first-child{pointer-events:none}& .dropdown-content{opacity:1}}&.dropdown-hover:hover{& .dropdown-content{opacity:1;scale:100%}}&:is(details){& summary{&::-webkit-details-marker{display:none}}}&.dropdown-open,&:focus,&:focus-within{& .dropdown-content{scale:100%}}&:where([popover]){background:0 0}&[popover]{color:inherit;position:fixed;@supports not (position-area:bottom){&{margin:auto}&.dropdown-open:not(:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}&::backdrop{background-color:oklab(0% none none/.3)}}&:not(.dropdown-open,:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}}}.xl\:dropdown-start{--anchor-h:span-right;& :where(.dropdown-content){inset-inline-end:auto;translate:0;[dir=rtl] &{translate:0}}&.dropdown-left{--anchor-h:left;--anchor-v:span-bottom;& .dropdown-content{top:0;bottom:auto}}&.dropdown-right{--anchor-h:right;--anchor-v:span-bottom;& .dropdown-content{top:0;bottom:auto}}}.xl\:dropdown-center{--anchor-h:center;& :where(.dropdown-content){inset-inline-end:50%;translate:50%;[dir=rtl] &{translate:-50%}}&.dropdown-left{--anchor-h:left;--anchor-v:center;& .dropdown-content{top:auto;bottom:50%;translate:0 50%}}&.dropdown-right{--anchor-h:right;--anchor-v:center;& .dropdown-content{top:auto;bottom:50%;translate:0 50%}}}.xl\:dropdown-end{--anchor-h:span-left;& :where(.dropdown-content){inset-inline-end:0;translate:0;[dir=rtl] &{translate:0}}&.dropdown-left{--anchor-h:left;--anchor-v:span-top;& .dropdown-content{top:auto;bottom:0}}&.dropdown-right{--anchor-h:right;--anchor-v:span-top;& .dropdown-content{top:auto;bottom:0}}}.xl\:dropdown-left{--anchor-h:left;--anchor-v:span-bottom;& .dropdown-content{inset-inline-end:100%;transform-origin:100%;top:0;bottom:auto}}.xl\:dropdown-right{--anchor-h:right;--anchor-v:span-bottom;& .dropdown-content{inset-inline-start:100%;transform-origin:0;top:0;bottom:auto}}.xl\:dropdown-bottom{--anchor-v:bottom;& .dropdown-content{transform-origin:top;top:100%;bottom:auto}}.xl\:dropdown-top{--anchor-v:top;& .dropdown-content{transform-origin:bottom;top:auto;bottom:100%}}}@media (width>=1536px){.\32 xl\:dropdown{position-area:var(--anchor-v,bottom)var(--anchor-h,span-right);display:inline-block;position:relative;&>:not(summary):focus{--tw-outline-style:none;outline-style:none;@media (forced-colors:active){&{outline-offset:2px;outline:2px solid #0000}}}& .dropdown-content{position:absolute}&:not(details,.dropdown-open,.dropdown-hover:hover,:focus-within){& .dropdown-content{transform-origin:top;opacity:0;display:none;scale:95%}}&[popover],& .dropdown-content{z-index:999;transition-behavior:allow-discrete;transition-property:opacity,scale,display;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation:.2s dropdown}@starting-style{&[popover],& .dropdown-content{opacity:0;scale:95%}}&.dropdown-open,&:not(.dropdown-hover):focus,&:focus-within{&>[tabindex]:first-child{pointer-events:none}& .dropdown-content{opacity:1}}&.dropdown-hover:hover{& .dropdown-content{opacity:1;scale:100%}}&:is(details){& summary{&::-webkit-details-marker{display:none}}}&.dropdown-open,&:focus,&:focus-within{& .dropdown-content{scale:100%}}&:where([popover]){background:0 0}&[popover]{color:inherit;position:fixed;@supports not (position-area:bottom){&{margin:auto}&.dropdown-open:not(:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}&::backdrop{background-color:oklab(0% none none/.3)}}&:not(.dropdown-open,:popover-open){transform-origin:top;opacity:0;display:none;scale:95%}}}.\32 xl\:dropdown-start{--anchor-h:span-right;& :where(.dropdown-content){inset-inline-end:auto;translate:0;[dir=rtl] &{translate:0}}&.dropdown-left{--anchor-h:left;--anchor-v:span-bottom;& .dropdown-content{top:0;bottom:auto}}&.dropdown-right{--anchor-h:right;--anchor-v:span-bottom;& .dropdown-content{top:0;bottom:auto}}}.\32 xl\:dropdown-center{--anchor-h:center;& :where(.dropdown-content){inset-inline-end:50%;translate:50%;[dir=rtl] &{translate:-50%}}&.dropdown-left{--anchor-h:left;--anchor-v:center;& .dropdown-content{top:auto;bottom:50%;translate:0 50%}}&.dropdown-right{--anchor-h:right;--anchor-v:center;& .dropdown-content{top:auto;bottom:50%;translate:0 50%}}}.\32 xl\:dropdown-end{--anchor-h:span-left;& :where(.dropdown-content){inset-inline-end:0;translate:0;[dir=rtl] &{translate:0}}&.dropdown-left{--anchor-h:left;--anchor-v:span-top;& .dropdown-content{top:auto;bottom:0}}&.dropdown-right{--anchor-h:right;--anchor-v:span-top;& .dropdown-content{top:auto;bottom:0}}}.\32 xl\:dropdown-left{--anchor-h:left;--anchor-v:span-bottom;& .dropdown-content{inset-inline-end:100%;transform-origin:100%;top:0;bottom:auto}}.\32 xl\:dropdown-right{--anchor-h:right;--anchor-v:span-bottom;& .dropdown-content{inset-inline-start:100%;transform-origin:0;top:0;bottom:auto}}.\32 xl\:dropdown-bottom{--anchor-v:bottom;& .dropdown-content{transform-origin:top;top:100%;bottom:auto}}.\32 xl\:dropdown-top{--anchor-v:top;& .dropdown-content{transform-origin:bottom;top:auto;bottom:100%}}}.collapse:not(td,tr,colgroup){visibility:visible}.collapse{border-radius:var(--radius-box,1rem);isolation:isolate;grid-template-rows:max-content 0fr;width:100%;transition:grid-template-rows .2s;display:grid;position:relative;overflow:hidden;&>input:is([type=checkbox],[type=radio]){appearance:none;opacity:0;grid-row-start:1;grid-column-start:1}&:is([open],:focus:not(.collapse-close)),&:not(.collapse-close):has(>input:is([type=checkbox],[type=radio]):checked){grid-template-rows:max-content 1fr}&:is([open],:focus:not(.collapse-close))>.collapse-content,&:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){visibility:visible;min-height:fit-content}&:focus-visible,&:has(>input:is([type=checkbox],[type=radio]):focus-visible){outline-color:var(--color-base-content);outline-offset:2px;outline-width:2px;outline-style:solid}&:not(.collapse-close){&>input[type=checkbox],&>input[type=radio]:not(:checked),&>.collapse-title{cursor:pointer}}&:focus:not(.collapse-close,.collapse[open])>.collapse-title{cursor:unset}&:is([open],:focus:not(.collapse-close))>:where(.collapse-content),&:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){padding-bottom:1rem;transition:padding .2s ease-out,background-color .2s ease-out}&[open]{&.collapse-arrow{&>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}}&.collapse-open{&.collapse-arrow{&>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}}&.collapse-arrow:focus:not(.collapse-close){&>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}&.collapse-arrow:not(.collapse-close){&>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}&[open]{&.collapse-plus{&>.collapse-title:after{content:"−"}}}&.collapse-open{&.collapse-plus{&>.collapse-title:after{content:"−"}}}&.collapse-plus:focus:not(.collapse-close){&>.collapse-title:after{content:"−"}}&.collapse-plus:not(.collapse-close){&>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{content:"−"}}&>input:is([type=checkbox],[type=radio]){z-index:1;padding:1rem;width:100%;min-height:1lh;padding-inline-end:3rem;transition:background-color .2s ease-out}}.collapse-title,.collapse-content{grid-row-start:1;grid-column-start:1}.collapse-content{visibility:hidden;min-height:0;cursor:unset;grid-row-start:2;grid-column-start:1;padding-left:1rem;padding-right:1rem;transition:visibility .2s,padding .2s ease-out,background-color .2s ease-out}.collapse:is(details){width:100%;& summary{display:block;position:relative;&::-webkit-details-marker{display:none}}}.collapse:is(details) summary{outline:none}.collapse-arrow{&>.collapse-title:after{top:1.9rem;content:"";transform-origin:75% 75%;pointer-events:none;width:.5rem;height:.5rem;transition-property:all;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:block;position:absolute;inset-inline-end:1.4rem;transform:translateY(-100%)rotate(45deg);box-shadow:2px 2px}}.collapse-plus{&>.collapse-title:after{top:.9rem;content:"+";pointer-events:none;width:.5rem;height:.5rem;transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:block;position:absolute;inset-inline-end:1.4rem}}.collapse-title{width:100%;min-height:1lh;padding:1rem;padding-inline-end:3rem;transition:background-color .2s ease-out;position:relative}.collapse-open{grid-template-rows:max-content 1fr;&>.collapse-content{visibility:visible;min-height:fit-content;padding-bottom:1rem;transition:padding .2s ease-out,background-color .2s ease-out}}@media (width>=640px){.sm\:collapse:not(td,tr,colgroup){visibility:visible}.sm\:collapse{border-radius:var(--radius-box,1rem);isolation:isolate;grid-template-rows:max-content 0fr;width:100%;transition:grid-template-rows .2s;display:grid;position:relative;overflow:hidden;&>input:is([type=checkbox],[type=radio]){appearance:none;opacity:0;grid-row-start:1;grid-column-start:1}&:is([open],:focus:not(.collapse-close)),&:not(.collapse-close):has(>input:is([type=checkbox],[type=radio]):checked){grid-template-rows:max-content 1fr}&:is([open],:focus:not(.collapse-close))>.collapse-content,&:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){visibility:visible;min-height:fit-content}&:focus-visible,&:has(>input:is([type=checkbox],[type=radio]):focus-visible){outline-color:var(--color-base-content);outline-offset:2px;outline-width:2px;outline-style:solid}&:not(.collapse-close){&>input[type=checkbox],&>input[type=radio]:not(:checked),&>.collapse-title{cursor:pointer}}&:focus:not(.collapse-close,.collapse[open])>.collapse-title{cursor:unset}&:is([open],:focus:not(.collapse-close))>:where(.collapse-content),&:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){padding-bottom:1rem;transition:padding .2s ease-out,background-color .2s ease-out}&[open]{&.collapse-arrow{&>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}}&.collapse-open{&.collapse-arrow{&>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}}&.collapse-arrow:focus:not(.collapse-close){&>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}&.collapse-arrow:not(.collapse-close){&>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}&[open]{&.collapse-plus{&>.collapse-title:after{content:"−"}}}&.collapse-open{&.collapse-plus{&>.collapse-title:after{content:"−"}}}&.collapse-plus:focus:not(.collapse-close){&>.collapse-title:after{content:"−"}}&.collapse-plus:not(.collapse-close){&>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{content:"−"}}&>input:is([type=checkbox],[type=radio]){z-index:1;padding:1rem;width:100%;min-height:1lh;padding-inline-end:3rem;transition:background-color .2s ease-out}}.sm\:collapse-title,.sm\:collapse-content{grid-row-start:1;grid-column-start:1}.sm\:collapse-content{visibility:hidden;min-height:0;cursor:unset;grid-row-start:2;grid-column-start:1;padding-left:1rem;padding-right:1rem;transition:visibility .2s,padding .2s ease-out,background-color .2s ease-out}.sm\:collapse:is(details){width:100%;& summary{display:block;position:relative;&::-webkit-details-marker{display:none}}}.sm\:collapse:is(details) summary{outline:none}.sm\:collapse-arrow{&>.collapse-title:after{top:1.9rem;content:"";transform-origin:75% 75%;pointer-events:none;width:.5rem;height:.5rem;transition-property:all;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:block;position:absolute;inset-inline-end:1.4rem;transform:translateY(-100%)rotate(45deg);box-shadow:2px 2px}}.sm\:collapse-plus{&>.collapse-title:after{top:.9rem;content:"+";pointer-events:none;width:.5rem;height:.5rem;transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:block;position:absolute;inset-inline-end:1.4rem}}.sm\:collapse-title{width:100%;min-height:1lh;padding:1rem;padding-inline-end:3rem;transition:background-color .2s ease-out;position:relative}.sm\:collapse-open{grid-template-rows:max-content 1fr;&>.collapse-content{visibility:visible;min-height:fit-content;padding-bottom:1rem;transition:padding .2s ease-out,background-color .2s ease-out}}}@media (width>=768px){.md\:collapse:not(td,tr,colgroup){visibility:visible}.md\:collapse{border-radius:var(--radius-box,1rem);isolation:isolate;grid-template-rows:max-content 0fr;width:100%;transition:grid-template-rows .2s;display:grid;position:relative;overflow:hidden;&>input:is([type=checkbox],[type=radio]){appearance:none;opacity:0;grid-row-start:1;grid-column-start:1}&:is([open],:focus:not(.collapse-close)),&:not(.collapse-close):has(>input:is([type=checkbox],[type=radio]):checked){grid-template-rows:max-content 1fr}&:is([open],:focus:not(.collapse-close))>.collapse-content,&:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){visibility:visible;min-height:fit-content}&:focus-visible,&:has(>input:is([type=checkbox],[type=radio]):focus-visible){outline-color:var(--color-base-content);outline-offset:2px;outline-width:2px;outline-style:solid}&:not(.collapse-close){&>input[type=checkbox],&>input[type=radio]:not(:checked),&>.collapse-title{cursor:pointer}}&:focus:not(.collapse-close,.collapse[open])>.collapse-title{cursor:unset}&:is([open],:focus:not(.collapse-close))>:where(.collapse-content),&:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){padding-bottom:1rem;transition:padding .2s ease-out,background-color .2s ease-out}&[open]{&.collapse-arrow{&>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}}&.collapse-open{&.collapse-arrow{&>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}}&.collapse-arrow:focus:not(.collapse-close){&>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}&.collapse-arrow:not(.collapse-close){&>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}&[open]{&.collapse-plus{&>.collapse-title:after{content:"−"}}}&.collapse-open{&.collapse-plus{&>.collapse-title:after{content:"−"}}}&.collapse-plus:focus:not(.collapse-close){&>.collapse-title:after{content:"−"}}&.collapse-plus:not(.collapse-close){&>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{content:"−"}}&>input:is([type=checkbox],[type=radio]){z-index:1;padding:1rem;width:100%;min-height:1lh;padding-inline-end:3rem;transition:background-color .2s ease-out}}.md\:collapse-title,.md\:collapse-content{grid-row-start:1;grid-column-start:1}.md\:collapse-content{visibility:hidden;min-height:0;cursor:unset;grid-row-start:2;grid-column-start:1;padding-left:1rem;padding-right:1rem;transition:visibility .2s,padding .2s ease-out,background-color .2s ease-out}.md\:collapse:is(details){width:100%;& summary{display:block;position:relative;&::-webkit-details-marker{display:none}}}.md\:collapse:is(details) summary{outline:none}.md\:collapse-arrow{&>.collapse-title:after{top:1.9rem;content:"";transform-origin:75% 75%;pointer-events:none;width:.5rem;height:.5rem;transition-property:all;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:block;position:absolute;inset-inline-end:1.4rem;transform:translateY(-100%)rotate(45deg);box-shadow:2px 2px}}.md\:collapse-plus{&>.collapse-title:after{top:.9rem;content:"+";pointer-events:none;width:.5rem;height:.5rem;transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:block;position:absolute;inset-inline-end:1.4rem}}.md\:collapse-title{width:100%;min-height:1lh;padding:1rem;padding-inline-end:3rem;transition:background-color .2s ease-out;position:relative}.md\:collapse-open{grid-template-rows:max-content 1fr;&>.collapse-content{visibility:visible;min-height:fit-content;padding-bottom:1rem;transition:padding .2s ease-out,background-color .2s ease-out}}}@media (width>=1024px){.lg\:collapse:not(td,tr,colgroup){visibility:visible}.lg\:collapse{border-radius:var(--radius-box,1rem);isolation:isolate;grid-template-rows:max-content 0fr;width:100%;transition:grid-template-rows .2s;display:grid;position:relative;overflow:hidden;&>input:is([type=checkbox],[type=radio]){appearance:none;opacity:0;grid-row-start:1;grid-column-start:1}&:is([open],:focus:not(.collapse-close)),&:not(.collapse-close):has(>input:is([type=checkbox],[type=radio]):checked){grid-template-rows:max-content 1fr}&:is([open],:focus:not(.collapse-close))>.collapse-content,&:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){visibility:visible;min-height:fit-content}&:focus-visible,&:has(>input:is([type=checkbox],[type=radio]):focus-visible){outline-color:var(--color-base-content);outline-offset:2px;outline-width:2px;outline-style:solid}&:not(.collapse-close){&>input[type=checkbox],&>input[type=radio]:not(:checked),&>.collapse-title{cursor:pointer}}&:focus:not(.collapse-close,.collapse[open])>.collapse-title{cursor:unset}&:is([open],:focus:not(.collapse-close))>:where(.collapse-content),&:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){padding-bottom:1rem;transition:padding .2s ease-out,background-color .2s ease-out}&[open]{&.collapse-arrow{&>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}}&.collapse-open{&.collapse-arrow{&>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}}&.collapse-arrow:focus:not(.collapse-close){&>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}&.collapse-arrow:not(.collapse-close){&>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}&[open]{&.collapse-plus{&>.collapse-title:after{content:"−"}}}&.collapse-open{&.collapse-plus{&>.collapse-title:after{content:"−"}}}&.collapse-plus:focus:not(.collapse-close){&>.collapse-title:after{content:"−"}}&.collapse-plus:not(.collapse-close){&>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{content:"−"}}&>input:is([type=checkbox],[type=radio]){z-index:1;padding:1rem;width:100%;min-height:1lh;padding-inline-end:3rem;transition:background-color .2s ease-out}}.lg\:collapse-title,.lg\:collapse-content{grid-row-start:1;grid-column-start:1}.lg\:collapse-content{visibility:hidden;min-height:0;cursor:unset;grid-row-start:2;grid-column-start:1;padding-left:1rem;padding-right:1rem;transition:visibility .2s,padding .2s ease-out,background-color .2s ease-out}.lg\:collapse:is(details){width:100%;& summary{display:block;position:relative;&::-webkit-details-marker{display:none}}}.lg\:collapse:is(details) summary{outline:none}.lg\:collapse-arrow{&>.collapse-title:after{top:1.9rem;content:"";transform-origin:75% 75%;pointer-events:none;width:.5rem;height:.5rem;transition-property:all;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:block;position:absolute;inset-inline-end:1.4rem;transform:translateY(-100%)rotate(45deg);box-shadow:2px 2px}}.lg\:collapse-plus{&>.collapse-title:after{top:.9rem;content:"+";pointer-events:none;width:.5rem;height:.5rem;transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:block;position:absolute;inset-inline-end:1.4rem}}.lg\:collapse-title{width:100%;min-height:1lh;padding:1rem;padding-inline-end:3rem;transition:background-color .2s ease-out;position:relative}.lg\:collapse-open{grid-template-rows:max-content 1fr;&>.collapse-content{visibility:visible;min-height:fit-content;padding-bottom:1rem;transition:padding .2s ease-out,background-color .2s ease-out}}}@media (width>=1280px){.xl\:collapse:not(td,tr,colgroup){visibility:visible}.xl\:collapse{border-radius:var(--radius-box,1rem);isolation:isolate;grid-template-rows:max-content 0fr;width:100%;transition:grid-template-rows .2s;display:grid;position:relative;overflow:hidden;&>input:is([type=checkbox],[type=radio]){appearance:none;opacity:0;grid-row-start:1;grid-column-start:1}&:is([open],:focus:not(.collapse-close)),&:not(.collapse-close):has(>input:is([type=checkbox],[type=radio]):checked){grid-template-rows:max-content 1fr}&:is([open],:focus:not(.collapse-close))>.collapse-content,&:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){visibility:visible;min-height:fit-content}&:focus-visible,&:has(>input:is([type=checkbox],[type=radio]):focus-visible){outline-color:var(--color-base-content);outline-offset:2px;outline-width:2px;outline-style:solid}&:not(.collapse-close){&>input[type=checkbox],&>input[type=radio]:not(:checked),&>.collapse-title{cursor:pointer}}&:focus:not(.collapse-close,.collapse[open])>.collapse-title{cursor:unset}&:is([open],:focus:not(.collapse-close))>:where(.collapse-content),&:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){padding-bottom:1rem;transition:padding .2s ease-out,background-color .2s ease-out}&[open]{&.collapse-arrow{&>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}}&.collapse-open{&.collapse-arrow{&>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}}&.collapse-arrow:focus:not(.collapse-close){&>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}&.collapse-arrow:not(.collapse-close){&>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}&[open]{&.collapse-plus{&>.collapse-title:after{content:"−"}}}&.collapse-open{&.collapse-plus{&>.collapse-title:after{content:"−"}}}&.collapse-plus:focus:not(.collapse-close){&>.collapse-title:after{content:"−"}}&.collapse-plus:not(.collapse-close){&>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{content:"−"}}&>input:is([type=checkbox],[type=radio]){z-index:1;padding:1rem;width:100%;min-height:1lh;padding-inline-end:3rem;transition:background-color .2s ease-out}}.xl\:collapse-title,.xl\:collapse-content{grid-row-start:1;grid-column-start:1}.xl\:collapse-content{visibility:hidden;min-height:0;cursor:unset;grid-row-start:2;grid-column-start:1;padding-left:1rem;padding-right:1rem;transition:visibility .2s,padding .2s ease-out,background-color .2s ease-out}.xl\:collapse:is(details){width:100%;& summary{display:block;position:relative;&::-webkit-details-marker{display:none}}}.xl\:collapse:is(details) summary{outline:none}.xl\:collapse-arrow{&>.collapse-title:after{top:1.9rem;content:"";transform-origin:75% 75%;pointer-events:none;width:.5rem;height:.5rem;transition-property:all;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:block;position:absolute;inset-inline-end:1.4rem;transform:translateY(-100%)rotate(45deg);box-shadow:2px 2px}}.xl\:collapse-plus{&>.collapse-title:after{top:.9rem;content:"+";pointer-events:none;width:.5rem;height:.5rem;transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:block;position:absolute;inset-inline-end:1.4rem}}.xl\:collapse-title{width:100%;min-height:1lh;padding:1rem;padding-inline-end:3rem;transition:background-color .2s ease-out;position:relative}.xl\:collapse-open{grid-template-rows:max-content 1fr;&>.collapse-content{visibility:visible;min-height:fit-content;padding-bottom:1rem;transition:padding .2s ease-out,background-color .2s ease-out}}}@media (width>=1536px){.\32 xl\:collapse:not(td,tr,colgroup){visibility:visible}.\32 xl\:collapse{border-radius:var(--radius-box,1rem);isolation:isolate;grid-template-rows:max-content 0fr;width:100%;transition:grid-template-rows .2s;display:grid;position:relative;overflow:hidden;&>input:is([type=checkbox],[type=radio]){appearance:none;opacity:0;grid-row-start:1;grid-column-start:1}&:is([open],:focus:not(.collapse-close)),&:not(.collapse-close):has(>input:is([type=checkbox],[type=radio]):checked){grid-template-rows:max-content 1fr}&:is([open],:focus:not(.collapse-close))>.collapse-content,&:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){visibility:visible;min-height:fit-content}&:focus-visible,&:has(>input:is([type=checkbox],[type=radio]):focus-visible){outline-color:var(--color-base-content);outline-offset:2px;outline-width:2px;outline-style:solid}&:not(.collapse-close){&>input[type=checkbox],&>input[type=radio]:not(:checked),&>.collapse-title{cursor:pointer}}&:focus:not(.collapse-close,.collapse[open])>.collapse-title{cursor:unset}&:is([open],:focus:not(.collapse-close))>:where(.collapse-content),&:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){padding-bottom:1rem;transition:padding .2s ease-out,background-color .2s ease-out}&[open]{&.collapse-arrow{&>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}}&.collapse-open{&.collapse-arrow{&>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}}&.collapse-arrow:focus:not(.collapse-close){&>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}&.collapse-arrow:not(.collapse-close){&>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}&[open]{&.collapse-plus{&>.collapse-title:after{content:"−"}}}&.collapse-open{&.collapse-plus{&>.collapse-title:after{content:"−"}}}&.collapse-plus:focus:not(.collapse-close){&>.collapse-title:after{content:"−"}}&.collapse-plus:not(.collapse-close){&>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{content:"−"}}&>input:is([type=checkbox],[type=radio]){z-index:1;padding:1rem;width:100%;min-height:1lh;padding-inline-end:3rem;transition:background-color .2s ease-out}}.\32 xl\:collapse-title,.\32 xl\:collapse-content{grid-row-start:1;grid-column-start:1}.\32 xl\:collapse-content{visibility:hidden;min-height:0;cursor:unset;grid-row-start:2;grid-column-start:1;padding-left:1rem;padding-right:1rem;transition:visibility .2s,padding .2s ease-out,background-color .2s ease-out}.\32 xl\:collapse:is(details){width:100%;& summary{display:block;position:relative;&::-webkit-details-marker{display:none}}}.\32 xl\:collapse:is(details) summary{outline:none}.\32 xl\:collapse-arrow{&>.collapse-title:after{top:1.9rem;content:"";transform-origin:75% 75%;pointer-events:none;width:.5rem;height:.5rem;transition-property:all;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:block;position:absolute;inset-inline-end:1.4rem;transform:translateY(-100%)rotate(45deg);box-shadow:2px 2px}}.\32 xl\:collapse-plus{&>.collapse-title:after{top:.9rem;content:"+";pointer-events:none;width:.5rem;height:.5rem;transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:block;position:absolute;inset-inline-end:1.4rem}}.\32 xl\:collapse-title{width:100%;min-height:1lh;padding:1rem;padding-inline-end:3rem;transition:background-color .2s ease-out;position:relative}.\32 xl\:collapse-open{grid-template-rows:max-content 1fr;&>.collapse-content{visibility:visible;min-height:fit-content;padding-bottom:1rem;transition:padding .2s ease-out,background-color .2s ease-out}}}.progress{appearance:none;border-radius:var(--radius-box);background-color:color-mix(in oklab,currentColor 20%,transparent);width:100%;height:.5rem;color:var(--color-base-content);position:relative;overflow:hidden;&:indeterminate{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress;@supports ((-moz-appearance:none)){&::-moz-progress-bar{background-color:#0000;background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress}}}@supports ((-moz-appearance:none)){&::-moz-progress-bar{border-radius:var(--radius-box);background-color:currentColor}}@supports ((-webkit-appearance:none)){&::-webkit-progress-bar{border-radius:var(--radius-box);background-color:#0000}&::-webkit-progress-value{border-radius:var(--radius-box);background-color:currentColor}}}.progress-primary{color:var(--color-primary)}.progress-secondary{color:var(--color-secondary)}.progress-accent{color:var(--color-accent)}.progress-neutral{color:var(--color-neutral)}.progress-info{color:var(--color-info)}.progress-success{color:var(--color-success)}.progress-warning{color:var(--color-warning)}.progress-error{color:var(--color-error)}@keyframes progress{50%{background-position-x:-115%}}@media (width>=640px){.sm\:progress{appearance:none;border-radius:var(--radius-box);background-color:color-mix(in oklab,currentColor 20%,transparent);width:100%;height:.5rem;color:var(--color-base-content);position:relative;overflow:hidden;&:indeterminate{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress;@supports ((-moz-appearance:none)){&::-moz-progress-bar{background-color:#0000;background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress}}}@supports ((-moz-appearance:none)){&::-moz-progress-bar{border-radius:var(--radius-box);background-color:currentColor}}@supports ((-webkit-appearance:none)){&::-webkit-progress-bar{border-radius:var(--radius-box);background-color:#0000}&::-webkit-progress-value{border-radius:var(--radius-box);background-color:currentColor}}}.sm\:progress-primary{color:var(--color-primary)}.sm\:progress-secondary{color:var(--color-secondary)}.sm\:progress-accent{color:var(--color-accent)}.sm\:progress-neutral{color:var(--color-neutral)}.sm\:progress-info{color:var(--color-info)}.sm\:progress-success{color:var(--color-success)}.sm\:progress-warning{color:var(--color-warning)}.sm\:progress-error{color:var(--color-error)}}@media (width>=768px){.md\:progress{appearance:none;border-radius:var(--radius-box);background-color:color-mix(in oklab,currentColor 20%,transparent);width:100%;height:.5rem;color:var(--color-base-content);position:relative;overflow:hidden;&:indeterminate{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress;@supports ((-moz-appearance:none)){&::-moz-progress-bar{background-color:#0000;background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress}}}@supports ((-moz-appearance:none)){&::-moz-progress-bar{border-radius:var(--radius-box);background-color:currentColor}}@supports ((-webkit-appearance:none)){&::-webkit-progress-bar{border-radius:var(--radius-box);background-color:#0000}&::-webkit-progress-value{border-radius:var(--radius-box);background-color:currentColor}}}.md\:progress-primary{color:var(--color-primary)}.md\:progress-secondary{color:var(--color-secondary)}.md\:progress-accent{color:var(--color-accent)}.md\:progress-neutral{color:var(--color-neutral)}.md\:progress-info{color:var(--color-info)}.md\:progress-success{color:var(--color-success)}.md\:progress-warning{color:var(--color-warning)}.md\:progress-error{color:var(--color-error)}}@media (width>=1024px){.lg\:progress{appearance:none;border-radius:var(--radius-box);background-color:color-mix(in oklab,currentColor 20%,transparent);width:100%;height:.5rem;color:var(--color-base-content);position:relative;overflow:hidden;&:indeterminate{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress;@supports ((-moz-appearance:none)){&::-moz-progress-bar{background-color:#0000;background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress}}}@supports ((-moz-appearance:none)){&::-moz-progress-bar{border-radius:var(--radius-box);background-color:currentColor}}@supports ((-webkit-appearance:none)){&::-webkit-progress-bar{border-radius:var(--radius-box);background-color:#0000}&::-webkit-progress-value{border-radius:var(--radius-box);background-color:currentColor}}}.lg\:progress-primary{color:var(--color-primary)}.lg\:progress-secondary{color:var(--color-secondary)}.lg\:progress-accent{color:var(--color-accent)}.lg\:progress-neutral{color:var(--color-neutral)}.lg\:progress-info{color:var(--color-info)}.lg\:progress-success{color:var(--color-success)}.lg\:progress-warning{color:var(--color-warning)}.lg\:progress-error{color:var(--color-error)}}@media (width>=1280px){.xl\:progress{appearance:none;border-radius:var(--radius-box);background-color:color-mix(in oklab,currentColor 20%,transparent);width:100%;height:.5rem;color:var(--color-base-content);position:relative;overflow:hidden;&:indeterminate{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress;@supports ((-moz-appearance:none)){&::-moz-progress-bar{background-color:#0000;background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress}}}@supports ((-moz-appearance:none)){&::-moz-progress-bar{border-radius:var(--radius-box);background-color:currentColor}}@supports ((-webkit-appearance:none)){&::-webkit-progress-bar{border-radius:var(--radius-box);background-color:#0000}&::-webkit-progress-value{border-radius:var(--radius-box);background-color:currentColor}}}.xl\:progress-primary{color:var(--color-primary)}.xl\:progress-secondary{color:var(--color-secondary)}.xl\:progress-accent{color:var(--color-accent)}.xl\:progress-neutral{color:var(--color-neutral)}.xl\:progress-info{color:var(--color-info)}.xl\:progress-success{color:var(--color-success)}.xl\:progress-warning{color:var(--color-warning)}.xl\:progress-error{color:var(--color-error)}}@media (width>=1536px){.\32 xl\:progress{appearance:none;border-radius:var(--radius-box);background-color:color-mix(in oklab,currentColor 20%,transparent);width:100%;height:.5rem;color:var(--color-base-content);position:relative;overflow:hidden;&:indeterminate{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress;@supports ((-moz-appearance:none)){&::-moz-progress-bar{background-color:#0000;background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress}}}@supports ((-moz-appearance:none)){&::-moz-progress-bar{border-radius:var(--radius-box);background-color:currentColor}}@supports ((-webkit-appearance:none)){&::-webkit-progress-bar{border-radius:var(--radius-box);background-color:#0000}&::-webkit-progress-value{border-radius:var(--radius-box);background-color:currentColor}}}.\32 xl\:progress-primary{color:var(--color-primary)}.\32 xl\:progress-secondary{color:var(--color-secondary)}.\32 xl\:progress-accent{color:var(--color-accent)}.\32 xl\:progress-neutral{color:var(--color-neutral)}.\32 xl\:progress-info{color:var(--color-info)}.\32 xl\:progress-success{color:var(--color-success)}.\32 xl\:progress-warning{color:var(--color-warning)}.\32 xl\:progress-error{color:var(--color-error)}}.timeline{display:flex;position:relative;&>li{grid-template-rows:var(--timeline-row-start,minmax(0,1fr))auto var(--timeline-row-end,minmax(0,1fr));grid-template-columns:var(--timeline-col-start,minmax(0,1fr))auto var(--timeline-col-end,minmax(0,1fr));flex-shrink:0;align-items:center;display:grid;position:relative;&>hr{border:none;width:100%;&:first-child{grid-row-start:2;grid-column-start:1}&:last-child{grid-area:2/3/auto/none}@media print{&{border:.1px solid var(--color-base-300)}}}}& :where(hr){background-color:var(--color-base-300);height:.25rem}&:has(.timeline-middle hr){&:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}&:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}}&:not(:has(.timeline-middle)){& :first-child hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}& :last-child hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}}}.timeline-box{border:var(--border)solid;border-radius:var(--radius-box);border-color:var(--color-base-300);background-color:var(--color-base-100);padding-block:.5rem;padding-inline:1rem;font-size:.75rem;box-shadow:0 1px 2px oklch(0% 0 0/.05)}.timeline-start{grid-area:1/1/2/4;place-self:flex-end center;margin:.25rem}.timeline-middle{grid-row-start:2;grid-column-start:2}.timeline-end{grid-area:3/1/4/4;place-self:flex-start center;margin:.25rem}.timeline-compact{--timeline-row-start:0;& .timeline-start{grid-area:3/1/4/4;place-self:flex-start center}& li:has(.timeline-start){& .timeline-end{grid-row-start:auto;grid-column-start:none}}&.timeline-vertical{&>li{--timeline-col-start:0}& .timeline-start{grid-area:1/3/4/4;place-self:center flex-start}& li:has(.timeline-start){& .timeline-end{grid-row-start:none;grid-column-start:auto}}}}.timeline-snap-icon{&>li{--timeline-col-start:.5rem;--timeline-row-start:minmax(0,1fr)}}.timeline-vertical{flex-direction:column;&>li{--timeline-row-start:minmax(0,1fr);--timeline-row-end:minmax(0,1fr);justify-items:center;&>hr{width:.25rem;height:100%;&:first-child{grid-row-start:1;grid-column-start:2}&:last-child{grid-area:3/2/none}}}& .timeline-start{grid-area:1/1/4/2;place-self:center flex-end}& .timeline-end{grid-area:1/3/4/4;place-self:center flex-start}&:has(.timeline-middle){&>li{&>hr{&:first-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}&:last-child{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector);border-bottom-right-radius:0;border-bottom-left-radius:0}}}}&:not(:has(.timeline-middle)){& :first-child{&>hr:last-child{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector);border-bottom-right-radius:0;border-bottom-left-radius:0}}& :last-child{&>hr:first-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}}}&.timeline-snap-icon{&>li{--timeline-col-start:minmax(0,1fr);--timeline-row-start:.5rem}}}.timeline-horizontal{flex-direction:row;&>li{align-items:center;&>hr{width:100%;height:.25rem;&:first-child{grid-row-start:2;grid-column-start:1}&:last-child{grid-area:2/3/auto/none}}}& .timeline-start{grid-area:1/1/2/4;place-self:flex-end center}& .timeline-end{grid-area:3/1/4/4;place-self:flex-start center}&:has(.timeline-middle){&>li{&>hr{&:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}&:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}}}}&:not(:has(.timeline-middle)){& :first-child{&>hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}}& :last-child{&>hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}}}}@media (width>=640px){.sm\:timeline{display:flex;position:relative;&>li{grid-template-rows:var(--timeline-row-start,minmax(0,1fr))auto var(--timeline-row-end,minmax(0,1fr));grid-template-columns:var(--timeline-col-start,minmax(0,1fr))auto var(--timeline-col-end,minmax(0,1fr));flex-shrink:0;align-items:center;display:grid;position:relative;&>hr{border:none;width:100%;&:first-child{grid-row-start:2;grid-column-start:1}&:last-child{grid-area:2/3/auto/none}@media print{&{border:.1px solid var(--color-base-300)}}}}& :where(hr){background-color:var(--color-base-300);height:.25rem}&:has(.timeline-middle hr){&:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}&:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}}&:not(:has(.timeline-middle)){& :first-child hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}& :last-child hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}}}.sm\:timeline-box{border:var(--border)solid;border-radius:var(--radius-box);border-color:var(--color-base-300);background-color:var(--color-base-100);padding-block:.5rem;padding-inline:1rem;font-size:.75rem;box-shadow:0 1px 2px oklch(0% 0 0/.05)}.sm\:timeline-start{grid-area:1/1/2/4;place-self:flex-end center;margin:.25rem}.sm\:timeline-middle{grid-row-start:2;grid-column-start:2}.sm\:timeline-end{grid-area:3/1/4/4;place-self:flex-start center;margin:.25rem}.sm\:timeline-compact{--timeline-row-start:0;& .timeline-start{grid-area:3/1/4/4;place-self:flex-start center}& li:has(.timeline-start){& .timeline-end{grid-row-start:auto;grid-column-start:none}}&.timeline-vertical{&>li{--timeline-col-start:0}& .timeline-start{grid-area:1/3/4/4;place-self:center flex-start}& li:has(.timeline-start){& .timeline-end{grid-row-start:none;grid-column-start:auto}}}}.sm\:timeline-snap-icon{&>li{--timeline-col-start:.5rem;--timeline-row-start:minmax(0,1fr)}}.sm\:timeline-vertical{flex-direction:column;&>li{--timeline-row-start:minmax(0,1fr);--timeline-row-end:minmax(0,1fr);justify-items:center;&>hr{width:.25rem;height:100%;&:first-child{grid-row-start:1;grid-column-start:2}&:last-child{grid-area:3/2/none}}}& .timeline-start{grid-area:1/1/4/2;place-self:center flex-end}& .timeline-end{grid-area:1/3/4/4;place-self:center flex-start}&:has(.timeline-middle){&>li{&>hr{&:first-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}&:last-child{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector);border-bottom-right-radius:0;border-bottom-left-radius:0}}}}&:not(:has(.timeline-middle)){& :first-child{&>hr:last-child{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector);border-bottom-right-radius:0;border-bottom-left-radius:0}}& :last-child{&>hr:first-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}}}&.timeline-snap-icon{&>li{--timeline-col-start:minmax(0,1fr);--timeline-row-start:.5rem}}}.sm\:timeline-horizontal{flex-direction:row;&>li{align-items:center;&>hr{width:100%;height:.25rem;&:first-child{grid-row-start:2;grid-column-start:1}&:last-child{grid-area:2/3/auto/none}}}& .timeline-start{grid-area:1/1/2/4;place-self:flex-end center}& .timeline-end{grid-area:3/1/4/4;place-self:flex-start center}&:has(.timeline-middle){&>li{&>hr{&:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}&:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}}}}&:not(:has(.timeline-middle)){& :first-child{&>hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}}& :last-child{&>hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}}}}}@media (width>=768px){.md\:timeline{display:flex;position:relative;&>li{grid-template-rows:var(--timeline-row-start,minmax(0,1fr))auto var(--timeline-row-end,minmax(0,1fr));grid-template-columns:var(--timeline-col-start,minmax(0,1fr))auto var(--timeline-col-end,minmax(0,1fr));flex-shrink:0;align-items:center;display:grid;position:relative;&>hr{border:none;width:100%;&:first-child{grid-row-start:2;grid-column-start:1}&:last-child{grid-area:2/3/auto/none}@media print{&{border:.1px solid var(--color-base-300)}}}}& :where(hr){background-color:var(--color-base-300);height:.25rem}&:has(.timeline-middle hr){&:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}&:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}}&:not(:has(.timeline-middle)){& :first-child hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}& :last-child hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}}}.md\:timeline-box{border:var(--border)solid;border-radius:var(--radius-box);border-color:var(--color-base-300);background-color:var(--color-base-100);padding-block:.5rem;padding-inline:1rem;font-size:.75rem;box-shadow:0 1px 2px oklch(0% 0 0/.05)}.md\:timeline-start{grid-area:1/1/2/4;place-self:flex-end center;margin:.25rem}.md\:timeline-middle{grid-row-start:2;grid-column-start:2}.md\:timeline-end{grid-area:3/1/4/4;place-self:flex-start center;margin:.25rem}.md\:timeline-compact{--timeline-row-start:0;& .timeline-start{grid-area:3/1/4/4;place-self:flex-start center}& li:has(.timeline-start){& .timeline-end{grid-row-start:auto;grid-column-start:none}}&.timeline-vertical{&>li{--timeline-col-start:0}& .timeline-start{grid-area:1/3/4/4;place-self:center flex-start}& li:has(.timeline-start){& .timeline-end{grid-row-start:none;grid-column-start:auto}}}}.md\:timeline-snap-icon{&>li{--timeline-col-start:.5rem;--timeline-row-start:minmax(0,1fr)}}.md\:timeline-vertical{flex-direction:column;&>li{--timeline-row-start:minmax(0,1fr);--timeline-row-end:minmax(0,1fr);justify-items:center;&>hr{width:.25rem;height:100%;&:first-child{grid-row-start:1;grid-column-start:2}&:last-child{grid-area:3/2/none}}}& .timeline-start{grid-area:1/1/4/2;place-self:center flex-end}& .timeline-end{grid-area:1/3/4/4;place-self:center flex-start}&:has(.timeline-middle){&>li{&>hr{&:first-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}&:last-child{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector);border-bottom-right-radius:0;border-bottom-left-radius:0}}}}&:not(:has(.timeline-middle)){& :first-child{&>hr:last-child{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector);border-bottom-right-radius:0;border-bottom-left-radius:0}}& :last-child{&>hr:first-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}}}&.timeline-snap-icon{&>li{--timeline-col-start:minmax(0,1fr);--timeline-row-start:.5rem}}}.md\:timeline-horizontal{flex-direction:row;&>li{align-items:center;&>hr{width:100%;height:.25rem;&:first-child{grid-row-start:2;grid-column-start:1}&:last-child{grid-area:2/3/auto/none}}}& .timeline-start{grid-area:1/1/2/4;place-self:flex-end center}& .timeline-end{grid-area:3/1/4/4;place-self:flex-start center}&:has(.timeline-middle){&>li{&>hr{&:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}&:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}}}}&:not(:has(.timeline-middle)){& :first-child{&>hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}}& :last-child{&>hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}}}}}@media (width>=1024px){.lg\:timeline{display:flex;position:relative;&>li{grid-template-rows:var(--timeline-row-start,minmax(0,1fr))auto var(--timeline-row-end,minmax(0,1fr));grid-template-columns:var(--timeline-col-start,minmax(0,1fr))auto var(--timeline-col-end,minmax(0,1fr));flex-shrink:0;align-items:center;display:grid;position:relative;&>hr{border:none;width:100%;&:first-child{grid-row-start:2;grid-column-start:1}&:last-child{grid-area:2/3/auto/none}@media print{&{border:.1px solid var(--color-base-300)}}}}& :where(hr){background-color:var(--color-base-300);height:.25rem}&:has(.timeline-middle hr){&:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}&:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}}&:not(:has(.timeline-middle)){& :first-child hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}& :last-child hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}}}.lg\:timeline-box{border:var(--border)solid;border-radius:var(--radius-box);border-color:var(--color-base-300);background-color:var(--color-base-100);padding-block:.5rem;padding-inline:1rem;font-size:.75rem;box-shadow:0 1px 2px oklch(0% 0 0/.05)}.lg\:timeline-start{grid-area:1/1/2/4;place-self:flex-end center;margin:.25rem}.lg\:timeline-middle{grid-row-start:2;grid-column-start:2}.lg\:timeline-end{grid-area:3/1/4/4;place-self:flex-start center;margin:.25rem}.lg\:timeline-compact{--timeline-row-start:0;& .timeline-start{grid-area:3/1/4/4;place-self:flex-start center}& li:has(.timeline-start){& .timeline-end{grid-row-start:auto;grid-column-start:none}}&.timeline-vertical{&>li{--timeline-col-start:0}& .timeline-start{grid-area:1/3/4/4;place-self:center flex-start}& li:has(.timeline-start){& .timeline-end{grid-row-start:none;grid-column-start:auto}}}}.lg\:timeline-snap-icon{&>li{--timeline-col-start:.5rem;--timeline-row-start:minmax(0,1fr)}}.lg\:timeline-vertical{flex-direction:column;&>li{--timeline-row-start:minmax(0,1fr);--timeline-row-end:minmax(0,1fr);justify-items:center;&>hr{width:.25rem;height:100%;&:first-child{grid-row-start:1;grid-column-start:2}&:last-child{grid-area:3/2/none}}}& .timeline-start{grid-area:1/1/4/2;place-self:center flex-end}& .timeline-end{grid-area:1/3/4/4;place-self:center flex-start}&:has(.timeline-middle){&>li{&>hr{&:first-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}&:last-child{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector);border-bottom-right-radius:0;border-bottom-left-radius:0}}}}&:not(:has(.timeline-middle)){& :first-child{&>hr:last-child{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector);border-bottom-right-radius:0;border-bottom-left-radius:0}}& :last-child{&>hr:first-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}}}&.timeline-snap-icon{&>li{--timeline-col-start:minmax(0,1fr);--timeline-row-start:.5rem}}}.lg\:timeline-horizontal{flex-direction:row;&>li{align-items:center;&>hr{width:100%;height:.25rem;&:first-child{grid-row-start:2;grid-column-start:1}&:last-child{grid-area:2/3/auto/none}}}& .timeline-start{grid-area:1/1/2/4;place-self:flex-end center}& .timeline-end{grid-area:3/1/4/4;place-self:flex-start center}&:has(.timeline-middle){&>li{&>hr{&:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}&:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}}}}&:not(:has(.timeline-middle)){& :first-child{&>hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}}& :last-child{&>hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}}}}}@media (width>=1280px){.xl\:timeline{display:flex;position:relative;&>li{grid-template-rows:var(--timeline-row-start,minmax(0,1fr))auto var(--timeline-row-end,minmax(0,1fr));grid-template-columns:var(--timeline-col-start,minmax(0,1fr))auto var(--timeline-col-end,minmax(0,1fr));flex-shrink:0;align-items:center;display:grid;position:relative;&>hr{border:none;width:100%;&:first-child{grid-row-start:2;grid-column-start:1}&:last-child{grid-area:2/3/auto/none}@media print{&{border:.1px solid var(--color-base-300)}}}}& :where(hr){background-color:var(--color-base-300);height:.25rem}&:has(.timeline-middle hr){&:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}&:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}}&:not(:has(.timeline-middle)){& :first-child hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}& :last-child hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}}}.xl\:timeline-box{border:var(--border)solid;border-radius:var(--radius-box);border-color:var(--color-base-300);background-color:var(--color-base-100);padding-block:.5rem;padding-inline:1rem;font-size:.75rem;box-shadow:0 1px 2px oklch(0% 0 0/.05)}.xl\:timeline-start{grid-area:1/1/2/4;place-self:flex-end center;margin:.25rem}.xl\:timeline-middle{grid-row-start:2;grid-column-start:2}.xl\:timeline-end{grid-area:3/1/4/4;place-self:flex-start center;margin:.25rem}.xl\:timeline-compact{--timeline-row-start:0;& .timeline-start{grid-area:3/1/4/4;place-self:flex-start center}& li:has(.timeline-start){& .timeline-end{grid-row-start:auto;grid-column-start:none}}&.timeline-vertical{&>li{--timeline-col-start:0}& .timeline-start{grid-area:1/3/4/4;place-self:center flex-start}& li:has(.timeline-start){& .timeline-end{grid-row-start:none;grid-column-start:auto}}}}.xl\:timeline-snap-icon{&>li{--timeline-col-start:.5rem;--timeline-row-start:minmax(0,1fr)}}.xl\:timeline-vertical{flex-direction:column;&>li{--timeline-row-start:minmax(0,1fr);--timeline-row-end:minmax(0,1fr);justify-items:center;&>hr{width:.25rem;height:100%;&:first-child{grid-row-start:1;grid-column-start:2}&:last-child{grid-area:3/2/none}}}& .timeline-start{grid-area:1/1/4/2;place-self:center flex-end}& .timeline-end{grid-area:1/3/4/4;place-self:center flex-start}&:has(.timeline-middle){&>li{&>hr{&:first-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}&:last-child{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector);border-bottom-right-radius:0;border-bottom-left-radius:0}}}}&:not(:has(.timeline-middle)){& :first-child{&>hr:last-child{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector);border-bottom-right-radius:0;border-bottom-left-radius:0}}& :last-child{&>hr:first-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}}}&.timeline-snap-icon{&>li{--timeline-col-start:minmax(0,1fr);--timeline-row-start:.5rem}}}.xl\:timeline-horizontal{flex-direction:row;&>li{align-items:center;&>hr{width:100%;height:.25rem;&:first-child{grid-row-start:2;grid-column-start:1}&:last-child{grid-area:2/3/auto/none}}}& .timeline-start{grid-area:1/1/2/4;place-self:flex-end center}& .timeline-end{grid-area:3/1/4/4;place-self:flex-start center}&:has(.timeline-middle){&>li{&>hr{&:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}&:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}}}}&:not(:has(.timeline-middle)){& :first-child{&>hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}}& :last-child{&>hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}}}}}@media (width>=1536px){.\32 xl\:timeline{display:flex;position:relative;&>li{grid-template-rows:var(--timeline-row-start,minmax(0,1fr))auto var(--timeline-row-end,minmax(0,1fr));grid-template-columns:var(--timeline-col-start,minmax(0,1fr))auto var(--timeline-col-end,minmax(0,1fr));flex-shrink:0;align-items:center;display:grid;position:relative;&>hr{border:none;width:100%;&:first-child{grid-row-start:2;grid-column-start:1}&:last-child{grid-area:2/3/auto/none}@media print{&{border:.1px solid var(--color-base-300)}}}}& :where(hr){background-color:var(--color-base-300);height:.25rem}&:has(.timeline-middle hr){&:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}&:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}}&:not(:has(.timeline-middle)){& :first-child hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}& :last-child hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}}}.\32 xl\:timeline-box{border:var(--border)solid;border-radius:var(--radius-box);border-color:var(--color-base-300);background-color:var(--color-base-100);padding-block:.5rem;padding-inline:1rem;font-size:.75rem;box-shadow:0 1px 2px oklch(0% 0 0/.05)}.\32 xl\:timeline-start{grid-area:1/1/2/4;place-self:flex-end center;margin:.25rem}.\32 xl\:timeline-middle{grid-row-start:2;grid-column-start:2}.\32 xl\:timeline-end{grid-area:3/1/4/4;place-self:flex-start center;margin:.25rem}.\32 xl\:timeline-compact{--timeline-row-start:0;& .timeline-start{grid-area:3/1/4/4;place-self:flex-start center}& li:has(.timeline-start){& .timeline-end{grid-row-start:auto;grid-column-start:none}}&.timeline-vertical{&>li{--timeline-col-start:0}& .timeline-start{grid-area:1/3/4/4;place-self:center flex-start}& li:has(.timeline-start){& .timeline-end{grid-row-start:none;grid-column-start:auto}}}}.\32 xl\:timeline-snap-icon{&>li{--timeline-col-start:.5rem;--timeline-row-start:minmax(0,1fr)}}.\32 xl\:timeline-vertical{flex-direction:column;&>li{--timeline-row-start:minmax(0,1fr);--timeline-row-end:minmax(0,1fr);justify-items:center;&>hr{width:.25rem;height:100%;&:first-child{grid-row-start:1;grid-column-start:2}&:last-child{grid-area:3/2/none}}}& .timeline-start{grid-area:1/1/4/2;place-self:center flex-end}& .timeline-end{grid-area:1/3/4/4;place-self:center flex-start}&:has(.timeline-middle){&>li{&>hr{&:first-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}&:last-child{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector);border-bottom-right-radius:0;border-bottom-left-radius:0}}}}&:not(:has(.timeline-middle)){& :first-child{&>hr:last-child{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector);border-bottom-right-radius:0;border-bottom-left-radius:0}}& :last-child{&>hr:first-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}}}&.timeline-snap-icon{&>li{--timeline-col-start:minmax(0,1fr);--timeline-row-start:.5rem}}}.\32 xl\:timeline-horizontal{flex-direction:row;&>li{align-items:center;&>hr{width:100%;height:.25rem;&:first-child{grid-row-start:2;grid-column-start:1}&:last-child{grid-area:2/3/auto/none}}}& .timeline-start{grid-area:1/1/2/4;place-self:flex-end center}& .timeline-end{grid-area:3/1/4/4;place-self:flex-start center}&:has(.timeline-middle){&>li{&>hr{&:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}&:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}}}}&:not(:has(.timeline-middle)){& :first-child{&>hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}}& :last-child{&>hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}}}}}.glass{backdrop-filter:blur(var(--glass-blur,40px));background-color:#0000;background-image:linear-gradient(135deg,oklch(100% 0 0/var(--glass-opacity,30%))0%,oklch(0% 0 0/0) 100%),linear-gradient(var(--glass-reflect-degree,100deg),oklch(100% 0 0/var(--glass-reflect-opacity,5%))25%,oklch(0% 0 0/0) 25%);box-shadow:0 0 0 1px oklch(100% 0 0/var(--glass-border-opacity,20%))inset,0 0 0 2px oklch(0% 0 0/.05);text-shadow:0 1px oklch(0% 0 0/var(--glass-text-shadow-opacity,5%));border:none}.join{--join-ss:0;--join-se:0;--join-es:0;--join-ee:0;align-items:stretch;display:inline-flex;& :where(.join-item){border-start-start-radius:var(--join-ss,0);border-start-end-radius:var(--join-se,0);border-end-end-radius:var(--join-ee,0);border-end-start-radius:var(--join-es,0);& *{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}&>.join-item:where(:first-child){--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}& :first-child:not(:last-child){& :where(.join-item){--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}}&>.join-item:where(:last-child){--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}& :last-child:not(:first-child){& :where(.join-item){--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}}&>.join-item:where(:only-child){--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :only-child{& :where(.join-item){--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}}.join-item{&:where(:not(:first-child,:disabled,[disabled],.btn-disabled)){margin-block-start:0;margin-inline-start:calc(var(--border,1px)*-1)}&:where(:is(:disabled,[disabled],.btn-disabled)){border-width:var(--border,1px)0 var(--border,1px)var(--border,1px)}}.join-vertical{flex-direction:column;&>.join-item:first-child{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:0;--join-ee:0}& :first-child:not(:last-child){& .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:0;--join-ee:0}}&>.join-item:last-child{--join-ss:0;--join-se:0;--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :last-child:not(:first-child){& .join-item{--join-ss:0;--join-se:0;--join-es:var(--radius-field);--join-ee:var(--radius-field)}}&>.join-item:only-child{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :only-child{& .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}& .join-item{&:where(:not(:first-child)){margin-block-start:calc(var(--border,1px)*-1);margin-inline-start:0}}}.join-horizontal{flex-direction:row;&>.join-item:first-child{--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}& :first-child:not(:last-child){& .join-item{--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}}&>.join-item:last-child{--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}& :last-child:not(:first-child){& .join-item{--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}}&>.join-item:only-child{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :only-child{& .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}& .join-item{&:where(:not(:first-child)){margin-block-start:0;margin-inline-start:calc(var(--border,1px)*-1)}}}@media (width>=640px){.sm\:join{--join-ss:0;--join-se:0;--join-es:0;--join-ee:0;align-items:stretch;display:inline-flex;& :where(.join-item){border-start-start-radius:var(--join-ss,0);border-start-end-radius:var(--join-se,0);border-end-end-radius:var(--join-ee,0);border-end-start-radius:var(--join-es,0);& *{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}&>.join-item:where(:first-child){--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}& :first-child:not(:last-child){& :where(.join-item){--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}}&>.join-item:where(:last-child){--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}& :last-child:not(:first-child){& :where(.join-item){--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}}&>.join-item:where(:only-child){--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :only-child{& :where(.join-item){--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}}.sm\:join-item{&:where(:not(:first-child,:disabled,[disabled],.btn-disabled)){margin-block-start:0;margin-inline-start:calc(var(--border,1px)*-1)}&:where(:is(:disabled,[disabled],.btn-disabled)){border-width:var(--border,1px)0 var(--border,1px)var(--border,1px)}}.sm\:join-vertical{flex-direction:column;&>.join-item:first-child{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:0;--join-ee:0}& :first-child:not(:last-child){& .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:0;--join-ee:0}}&>.join-item:last-child{--join-ss:0;--join-se:0;--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :last-child:not(:first-child){& .join-item{--join-ss:0;--join-se:0;--join-es:var(--radius-field);--join-ee:var(--radius-field)}}&>.join-item:only-child{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :only-child{& .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}& .join-item{&:where(:not(:first-child)){margin-block-start:calc(var(--border,1px)*-1);margin-inline-start:0}}}.sm\:join-horizontal{flex-direction:row;&>.join-item:first-child{--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}& :first-child:not(:last-child){& .join-item{--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}}&>.join-item:last-child{--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}& :last-child:not(:first-child){& .join-item{--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}}&>.join-item:only-child{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :only-child{& .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}& .join-item{&:where(:not(:first-child)){margin-block-start:0;margin-inline-start:calc(var(--border,1px)*-1)}}}}@media (width>=768px){.md\:join{--join-ss:0;--join-se:0;--join-es:0;--join-ee:0;align-items:stretch;display:inline-flex;& :where(.join-item){border-start-start-radius:var(--join-ss,0);border-start-end-radius:var(--join-se,0);border-end-end-radius:var(--join-ee,0);border-end-start-radius:var(--join-es,0);& *{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}&>.join-item:where(:first-child){--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}& :first-child:not(:last-child){& :where(.join-item){--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}}&>.join-item:where(:last-child){--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}& :last-child:not(:first-child){& :where(.join-item){--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}}&>.join-item:where(:only-child){--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :only-child{& :where(.join-item){--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}}.md\:join-item{&:where(:not(:first-child,:disabled,[disabled],.btn-disabled)){margin-block-start:0;margin-inline-start:calc(var(--border,1px)*-1)}&:where(:is(:disabled,[disabled],.btn-disabled)){border-width:var(--border,1px)0 var(--border,1px)var(--border,1px)}}.md\:join-vertical{flex-direction:column;&>.join-item:first-child{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:0;--join-ee:0}& :first-child:not(:last-child){& .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:0;--join-ee:0}}&>.join-item:last-child{--join-ss:0;--join-se:0;--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :last-child:not(:first-child){& .join-item{--join-ss:0;--join-se:0;--join-es:var(--radius-field);--join-ee:var(--radius-field)}}&>.join-item:only-child{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :only-child{& .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}& .join-item{&:where(:not(:first-child)){margin-block-start:calc(var(--border,1px)*-1);margin-inline-start:0}}}.md\:join-horizontal{flex-direction:row;&>.join-item:first-child{--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}& :first-child:not(:last-child){& .join-item{--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}}&>.join-item:last-child{--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}& :last-child:not(:first-child){& .join-item{--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}}&>.join-item:only-child{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :only-child{& .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}& .join-item{&:where(:not(:first-child)){margin-block-start:0;margin-inline-start:calc(var(--border,1px)*-1)}}}}@media (width>=1024px){.lg\:join{--join-ss:0;--join-se:0;--join-es:0;--join-ee:0;align-items:stretch;display:inline-flex;& :where(.join-item){border-start-start-radius:var(--join-ss,0);border-start-end-radius:var(--join-se,0);border-end-end-radius:var(--join-ee,0);border-end-start-radius:var(--join-es,0);& *{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}&>.join-item:where(:first-child){--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}& :first-child:not(:last-child){& :where(.join-item){--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}}&>.join-item:where(:last-child){--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}& :last-child:not(:first-child){& :where(.join-item){--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}}&>.join-item:where(:only-child){--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :only-child{& :where(.join-item){--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}}.lg\:join-item{&:where(:not(:first-child,:disabled,[disabled],.btn-disabled)){margin-block-start:0;margin-inline-start:calc(var(--border,1px)*-1)}&:where(:is(:disabled,[disabled],.btn-disabled)){border-width:var(--border,1px)0 var(--border,1px)var(--border,1px)}}.lg\:join-vertical{flex-direction:column;&>.join-item:first-child{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:0;--join-ee:0}& :first-child:not(:last-child){& .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:0;--join-ee:0}}&>.join-item:last-child{--join-ss:0;--join-se:0;--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :last-child:not(:first-child){& .join-item{--join-ss:0;--join-se:0;--join-es:var(--radius-field);--join-ee:var(--radius-field)}}&>.join-item:only-child{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :only-child{& .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}& .join-item{&:where(:not(:first-child)){margin-block-start:calc(var(--border,1px)*-1);margin-inline-start:0}}}.lg\:join-horizontal{flex-direction:row;&>.join-item:first-child{--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}& :first-child:not(:last-child){& .join-item{--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}}&>.join-item:last-child{--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}& :last-child:not(:first-child){& .join-item{--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}}&>.join-item:only-child{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :only-child{& .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}& .join-item{&:where(:not(:first-child)){margin-block-start:0;margin-inline-start:calc(var(--border,1px)*-1)}}}}@media (width>=1280px){.xl\:join{--join-ss:0;--join-se:0;--join-es:0;--join-ee:0;align-items:stretch;display:inline-flex;& :where(.join-item){border-start-start-radius:var(--join-ss,0);border-start-end-radius:var(--join-se,0);border-end-end-radius:var(--join-ee,0);border-end-start-radius:var(--join-es,0);& *{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}&>.join-item:where(:first-child){--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}& :first-child:not(:last-child){& :where(.join-item){--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}}&>.join-item:where(:last-child){--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}& :last-child:not(:first-child){& :where(.join-item){--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}}&>.join-item:where(:only-child){--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :only-child{& :where(.join-item){--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}}.xl\:join-item{&:where(:not(:first-child,:disabled,[disabled],.btn-disabled)){margin-block-start:0;margin-inline-start:calc(var(--border,1px)*-1)}&:where(:is(:disabled,[disabled],.btn-disabled)){border-width:var(--border,1px)0 var(--border,1px)var(--border,1px)}}.xl\:join-vertical{flex-direction:column;&>.join-item:first-child{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:0;--join-ee:0}& :first-child:not(:last-child){& .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:0;--join-ee:0}}&>.join-item:last-child{--join-ss:0;--join-se:0;--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :last-child:not(:first-child){& .join-item{--join-ss:0;--join-se:0;--join-es:var(--radius-field);--join-ee:var(--radius-field)}}&>.join-item:only-child{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :only-child{& .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}& .join-item{&:where(:not(:first-child)){margin-block-start:calc(var(--border,1px)*-1);margin-inline-start:0}}}.xl\:join-horizontal{flex-direction:row;&>.join-item:first-child{--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}& :first-child:not(:last-child){& .join-item{--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}}&>.join-item:last-child{--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}& :last-child:not(:first-child){& .join-item{--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}}&>.join-item:only-child{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :only-child{& .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}& .join-item{&:where(:not(:first-child)){margin-block-start:0;margin-inline-start:calc(var(--border,1px)*-1)}}}}@media (width>=1536px){.\32 xl\:join{--join-ss:0;--join-se:0;--join-es:0;--join-ee:0;align-items:stretch;display:inline-flex;& :where(.join-item){border-start-start-radius:var(--join-ss,0);border-start-end-radius:var(--join-se,0);border-end-end-radius:var(--join-ee,0);border-end-start-radius:var(--join-es,0);& *{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}&>.join-item:where(:first-child){--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}& :first-child:not(:last-child){& :where(.join-item){--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}}&>.join-item:where(:last-child){--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}& :last-child:not(:first-child){& :where(.join-item){--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}}&>.join-item:where(:only-child){--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :only-child{& :where(.join-item){--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}}.\32 xl\:join-item{&:where(:not(:first-child,:disabled,[disabled],.btn-disabled)){margin-block-start:0;margin-inline-start:calc(var(--border,1px)*-1)}&:where(:is(:disabled,[disabled],.btn-disabled)){border-width:var(--border,1px)0 var(--border,1px)var(--border,1px)}}.\32 xl\:join-vertical{flex-direction:column;&>.join-item:first-child{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:0;--join-ee:0}& :first-child:not(:last-child){& .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:0;--join-ee:0}}&>.join-item:last-child{--join-ss:0;--join-se:0;--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :last-child:not(:first-child){& .join-item{--join-ss:0;--join-se:0;--join-es:var(--radius-field);--join-ee:var(--radius-field)}}&>.join-item:only-child{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :only-child{& .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}& .join-item{&:where(:not(:first-child)){margin-block-start:calc(var(--border,1px)*-1);margin-inline-start:0}}}.\32 xl\:join-horizontal{flex-direction:row;&>.join-item:first-child{--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}& :first-child:not(:last-child){& .join-item{--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}}&>.join-item:last-child{--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}& :last-child:not(:first-child){& .join-item{--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}}&>.join-item:only-child{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}& :only-child{& .join-item{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}& .join-item{&:where(:not(:first-child)){margin-block-start:0;margin-inline-start:calc(var(--border,1px)*-1)}}}}:root .prose{--tw-prose-body:color-mix(in oklab,var(--color-base-content)80%,#0000);--tw-prose-headings:var(--color-base-content);--tw-prose-lead:var(--color-base-content);--tw-prose-links:var(--color-base-content);--tw-prose-bold:var(--color-base-content);--tw-prose-counters:var(--color-base-content);--tw-prose-bullets:color-mix(in oklab,var(--color-base-content)50%,#0000);--tw-prose-hr:color-mix(in oklab,var(--color-base-content)20%,#0000);--tw-prose-quotes:var(--color-base-content);--tw-prose-quote-borders:color-mix(in oklab,var(--color-base-content)20%,#0000);--tw-prose-captions:color-mix(in oklab,var(--color-base-content)50%,#0000);--tw-prose-code:var(--color-base-content);--tw-prose-pre-code:var(--color-neutral-content);--tw-prose-pre-bg:var(--color-neutral);--tw-prose-th-borders:color-mix(in oklab,var(--color-base-content)50%,#0000);--tw-prose-td-borders:color-mix(in oklab,var(--color-base-content)20%,#0000);--tw-prose-kbd:color-mix(in oklab,var(--color-base-content)80%,#0000);& :where(code):not(pre>code){background-color:var(--color-base-200);border-radius:var(--radius-selector);border:var(--border)solid var(--color-base-300);font-weight:inherit;padding-inline:.5em;&:before,&:after{display:none}}}.rounded-box{border-radius:var(--radius-box)}.rounded-field{border-radius:var(--radius-field)}.rounded-selector{border-radius:var(--radius-selector)}.rounded-t-box{border-top-left-radius:var(--radius-box);border-top-right-radius:var(--radius-box)}.rounded-b-box{border-bottom-left-radius:var(--radius-box);border-bottom-right-radius:var(--radius-box)}.rounded-l-box{border-top-left-radius:var(--radius-box);border-bottom-left-radius:var(--radius-box)}.rounded-r-box{border-top-right-radius:var(--radius-box);border-bottom-right-radius:var(--radius-box)}.rounded-tl-box{border-top-left-radius:var(--radius-box)}.rounded-tr-box{border-top-right-radius:var(--radius-box)}.rounded-br-box{border-bottom-right-radius:var(--radius-box)}.rounded-bl-box{border-bottom-left-radius:var(--radius-box)}.rounded-t-field{border-top-left-radius:var(--radius-field);border-top-right-radius:var(--radius-field)}.rounded-b-field{border-bottom-left-radius:var(--radius-field);border-bottom-right-radius:var(--radius-field)}.rounded-l-field{border-top-left-radius:var(--radius-field);border-bottom-left-radius:var(--radius-field)}.rounded-r-field{border-top-right-radius:var(--radius-field);border-bottom-right-radius:var(--radius-field)}.rounded-tl-field{border-top-left-radius:var(--radius-field)}.rounded-tr-field{border-top-right-radius:var(--radius-field)}.rounded-br-field{border-bottom-right-radius:var(--radius-field)}.rounded-bl-field{border-bottom-left-radius:var(--radius-field)}.rounded-t-selector{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector)}.rounded-b-selector{border-bottom-left-radius:var(--radius-selector);border-bottom-right-radius:var(--radius-selector)}.rounded-l-selector{border-top-left-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}.rounded-r-selector{border-top-right-radius:var(--radius-selector);border-bottom-right-radius:var(--radius-selector)}.rounded-tl-selector{border-top-left-radius:var(--radius-selector)}.rounded-tr-selector{border-top-right-radius:var(--radius-selector)}.rounded-br-selector{border-bottom-right-radius:var(--radius-selector)}.rounded-bl-selector{border-bottom-left-radius:var(--radius-selector)}@media (width>=640px){.sm\:rounded-box{border-radius:var(--radius-box)}.sm\:rounded-field{border-radius:var(--radius-field)}.sm\:rounded-selector{border-radius:var(--radius-selector)}.sm\:rounded-t-box{border-top-left-radius:var(--radius-box);border-top-right-radius:var(--radius-box)}.sm\:rounded-b-box{border-bottom-left-radius:var(--radius-box);border-bottom-right-radius:var(--radius-box)}.sm\:rounded-l-box{border-top-left-radius:var(--radius-box);border-bottom-left-radius:var(--radius-box)}.sm\:rounded-r-box{border-top-right-radius:var(--radius-box);border-bottom-right-radius:var(--radius-box)}.sm\:rounded-tl-box{border-top-left-radius:var(--radius-box)}.sm\:rounded-tr-box{border-top-right-radius:var(--radius-box)}.sm\:rounded-br-box{border-bottom-right-radius:var(--radius-box)}.sm\:rounded-bl-box{border-bottom-left-radius:var(--radius-box)}.sm\:rounded-t-field{border-top-left-radius:var(--radius-field);border-top-right-radius:var(--radius-field)}.sm\:rounded-b-field{border-bottom-left-radius:var(--radius-field);border-bottom-right-radius:var(--radius-field)}.sm\:rounded-l-field{border-top-left-radius:var(--radius-field);border-bottom-left-radius:var(--radius-field)}.sm\:rounded-r-field{border-top-right-radius:var(--radius-field);border-bottom-right-radius:var(--radius-field)}.sm\:rounded-tl-field{border-top-left-radius:var(--radius-field)}.sm\:rounded-tr-field{border-top-right-radius:var(--radius-field)}.sm\:rounded-br-field{border-bottom-right-radius:var(--radius-field)}.sm\:rounded-bl-field{border-bottom-left-radius:var(--radius-field)}.sm\:rounded-t-selector{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector)}.sm\:rounded-b-selector{border-bottom-left-radius:var(--radius-selector);border-bottom-right-radius:var(--radius-selector)}.sm\:rounded-l-selector{border-top-left-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}.sm\:rounded-r-selector{border-top-right-radius:var(--radius-selector);border-bottom-right-radius:var(--radius-selector)}.sm\:rounded-tl-selector{border-top-left-radius:var(--radius-selector)}.sm\:rounded-tr-selector{border-top-right-radius:var(--radius-selector)}.sm\:rounded-br-selector{border-bottom-right-radius:var(--radius-selector)}.sm\:rounded-bl-selector{border-bottom-left-radius:var(--radius-selector)}}@media (width>=768px){.md\:rounded-box{border-radius:var(--radius-box)}.md\:rounded-field{border-radius:var(--radius-field)}.md\:rounded-selector{border-radius:var(--radius-selector)}.md\:rounded-t-box{border-top-left-radius:var(--radius-box);border-top-right-radius:var(--radius-box)}.md\:rounded-b-box{border-bottom-left-radius:var(--radius-box);border-bottom-right-radius:var(--radius-box)}.md\:rounded-l-box{border-top-left-radius:var(--radius-box);border-bottom-left-radius:var(--radius-box)}.md\:rounded-r-box{border-top-right-radius:var(--radius-box);border-bottom-right-radius:var(--radius-box)}.md\:rounded-tl-box{border-top-left-radius:var(--radius-box)}.md\:rounded-tr-box{border-top-right-radius:var(--radius-box)}.md\:rounded-br-box{border-bottom-right-radius:var(--radius-box)}.md\:rounded-bl-box{border-bottom-left-radius:var(--radius-box)}.md\:rounded-t-field{border-top-left-radius:var(--radius-field);border-top-right-radius:var(--radius-field)}.md\:rounded-b-field{border-bottom-left-radius:var(--radius-field);border-bottom-right-radius:var(--radius-field)}.md\:rounded-l-field{border-top-left-radius:var(--radius-field);border-bottom-left-radius:var(--radius-field)}.md\:rounded-r-field{border-top-right-radius:var(--radius-field);border-bottom-right-radius:var(--radius-field)}.md\:rounded-tl-field{border-top-left-radius:var(--radius-field)}.md\:rounded-tr-field{border-top-right-radius:var(--radius-field)}.md\:rounded-br-field{border-bottom-right-radius:var(--radius-field)}.md\:rounded-bl-field{border-bottom-left-radius:var(--radius-field)}.md\:rounded-t-selector{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector)}.md\:rounded-b-selector{border-bottom-left-radius:var(--radius-selector);border-bottom-right-radius:var(--radius-selector)}.md\:rounded-l-selector{border-top-left-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}.md\:rounded-r-selector{border-top-right-radius:var(--radius-selector);border-bottom-right-radius:var(--radius-selector)}.md\:rounded-tl-selector{border-top-left-radius:var(--radius-selector)}.md\:rounded-tr-selector{border-top-right-radius:var(--radius-selector)}.md\:rounded-br-selector{border-bottom-right-radius:var(--radius-selector)}.md\:rounded-bl-selector{border-bottom-left-radius:var(--radius-selector)}}@media (width>=1024px){.lg\:rounded-box{border-radius:var(--radius-box)}.lg\:rounded-field{border-radius:var(--radius-field)}.lg\:rounded-selector{border-radius:var(--radius-selector)}.lg\:rounded-t-box{border-top-left-radius:var(--radius-box);border-top-right-radius:var(--radius-box)}.lg\:rounded-b-box{border-bottom-left-radius:var(--radius-box);border-bottom-right-radius:var(--radius-box)}.lg\:rounded-l-box{border-top-left-radius:var(--radius-box);border-bottom-left-radius:var(--radius-box)}.lg\:rounded-r-box{border-top-right-radius:var(--radius-box);border-bottom-right-radius:var(--radius-box)}.lg\:rounded-tl-box{border-top-left-radius:var(--radius-box)}.lg\:rounded-tr-box{border-top-right-radius:var(--radius-box)}.lg\:rounded-br-box{border-bottom-right-radius:var(--radius-box)}.lg\:rounded-bl-box{border-bottom-left-radius:var(--radius-box)}.lg\:rounded-t-field{border-top-left-radius:var(--radius-field);border-top-right-radius:var(--radius-field)}.lg\:rounded-b-field{border-bottom-left-radius:var(--radius-field);border-bottom-right-radius:var(--radius-field)}.lg\:rounded-l-field{border-top-left-radius:var(--radius-field);border-bottom-left-radius:var(--radius-field)}.lg\:rounded-r-field{border-top-right-radius:var(--radius-field);border-bottom-right-radius:var(--radius-field)}.lg\:rounded-tl-field{border-top-left-radius:var(--radius-field)}.lg\:rounded-tr-field{border-top-right-radius:var(--radius-field)}.lg\:rounded-br-field{border-bottom-right-radius:var(--radius-field)}.lg\:rounded-bl-field{border-bottom-left-radius:var(--radius-field)}.lg\:rounded-t-selector{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector)}.lg\:rounded-b-selector{border-bottom-left-radius:var(--radius-selector);border-bottom-right-radius:var(--radius-selector)}.lg\:rounded-l-selector{border-top-left-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}.lg\:rounded-r-selector{border-top-right-radius:var(--radius-selector);border-bottom-right-radius:var(--radius-selector)}.lg\:rounded-tl-selector{border-top-left-radius:var(--radius-selector)}.lg\:rounded-tr-selector{border-top-right-radius:var(--radius-selector)}.lg\:rounded-br-selector{border-bottom-right-radius:var(--radius-selector)}.lg\:rounded-bl-selector{border-bottom-left-radius:var(--radius-selector)}}@media (width>=1280px){.xl\:rounded-box{border-radius:var(--radius-box)}.xl\:rounded-field{border-radius:var(--radius-field)}.xl\:rounded-selector{border-radius:var(--radius-selector)}.xl\:rounded-t-box{border-top-left-radius:var(--radius-box);border-top-right-radius:var(--radius-box)}.xl\:rounded-b-box{border-bottom-left-radius:var(--radius-box);border-bottom-right-radius:var(--radius-box)}.xl\:rounded-l-box{border-top-left-radius:var(--radius-box);border-bottom-left-radius:var(--radius-box)}.xl\:rounded-r-box{border-top-right-radius:var(--radius-box);border-bottom-right-radius:var(--radius-box)}.xl\:rounded-tl-box{border-top-left-radius:var(--radius-box)}.xl\:rounded-tr-box{border-top-right-radius:var(--radius-box)}.xl\:rounded-br-box{border-bottom-right-radius:var(--radius-box)}.xl\:rounded-bl-box{border-bottom-left-radius:var(--radius-box)}.xl\:rounded-t-field{border-top-left-radius:var(--radius-field);border-top-right-radius:var(--radius-field)}.xl\:rounded-b-field{border-bottom-left-radius:var(--radius-field);border-bottom-right-radius:var(--radius-field)}.xl\:rounded-l-field{border-top-left-radius:var(--radius-field);border-bottom-left-radius:var(--radius-field)}.xl\:rounded-r-field{border-top-right-radius:var(--radius-field);border-bottom-right-radius:var(--radius-field)}.xl\:rounded-tl-field{border-top-left-radius:var(--radius-field)}.xl\:rounded-tr-field{border-top-right-radius:var(--radius-field)}.xl\:rounded-br-field{border-bottom-right-radius:var(--radius-field)}.xl\:rounded-bl-field{border-bottom-left-radius:var(--radius-field)}.xl\:rounded-t-selector{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector)}.xl\:rounded-b-selector{border-bottom-left-radius:var(--radius-selector);border-bottom-right-radius:var(--radius-selector)}.xl\:rounded-l-selector{border-top-left-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}.xl\:rounded-r-selector{border-top-right-radius:var(--radius-selector);border-bottom-right-radius:var(--radius-selector)}.xl\:rounded-tl-selector{border-top-left-radius:var(--radius-selector)}.xl\:rounded-tr-selector{border-top-right-radius:var(--radius-selector)}.xl\:rounded-br-selector{border-bottom-right-radius:var(--radius-selector)}.xl\:rounded-bl-selector{border-bottom-left-radius:var(--radius-selector)}}@media (width>=1536px){.\32 xl\:rounded-box{border-radius:var(--radius-box)}.\32 xl\:rounded-field{border-radius:var(--radius-field)}.\32 xl\:rounded-selector{border-radius:var(--radius-selector)}.\32 xl\:rounded-t-box{border-top-left-radius:var(--radius-box);border-top-right-radius:var(--radius-box)}.\32 xl\:rounded-b-box{border-bottom-left-radius:var(--radius-box);border-bottom-right-radius:var(--radius-box)}.\32 xl\:rounded-l-box{border-top-left-radius:var(--radius-box);border-bottom-left-radius:var(--radius-box)}.\32 xl\:rounded-r-box{border-top-right-radius:var(--radius-box);border-bottom-right-radius:var(--radius-box)}.\32 xl\:rounded-tl-box{border-top-left-radius:var(--radius-box)}.\32 xl\:rounded-tr-box{border-top-right-radius:var(--radius-box)}.\32 xl\:rounded-br-box{border-bottom-right-radius:var(--radius-box)}.\32 xl\:rounded-bl-box{border-bottom-left-radius:var(--radius-box)}.\32 xl\:rounded-t-field{border-top-left-radius:var(--radius-field);border-top-right-radius:var(--radius-field)}.\32 xl\:rounded-b-field{border-bottom-left-radius:var(--radius-field);border-bottom-right-radius:var(--radius-field)}.\32 xl\:rounded-l-field{border-top-left-radius:var(--radius-field);border-bottom-left-radius:var(--radius-field)}.\32 xl\:rounded-r-field{border-top-right-radius:var(--radius-field);border-bottom-right-radius:var(--radius-field)}.\32 xl\:rounded-tl-field{border-top-left-radius:var(--radius-field)}.\32 xl\:rounded-tr-field{border-top-right-radius:var(--radius-field)}.\32 xl\:rounded-br-field{border-bottom-right-radius:var(--radius-field)}.\32 xl\:rounded-bl-field{border-bottom-left-radius:var(--radius-field)}.\32 xl\:rounded-t-selector{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector)}.\32 xl\:rounded-b-selector{border-bottom-left-radius:var(--radius-selector);border-bottom-right-radius:var(--radius-selector)}.\32 xl\:rounded-l-selector{border-top-left-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}.\32 xl\:rounded-r-selector{border-top-right-radius:var(--radius-selector);border-bottom-right-radius:var(--radius-selector)}.\32 xl\:rounded-tl-selector{border-top-left-radius:var(--radius-selector)}.\32 xl\:rounded-tr-selector{border-top-right-radius:var(--radius-selector)}.\32 xl\:rounded-br-selector{border-bottom-right-radius:var(--radius-selector)}.\32 xl\:rounded-bl-selector{border-bottom-left-radius:var(--radius-selector)}}@media (width>=40rem){.sm\:bg-base-100{background-color:var(--color-base-100)}.sm\:text-base-100{color:var(--color-base-100)}.sm\:border-base-100{border-color:var(--color-base-100)}.sm\:bg-base-200{background-color:var(--color-base-200)}.sm\:text-base-200{color:var(--color-base-200)}.sm\:border-base-200{border-color:var(--color-base-200)}.sm\:bg-base-300{background-color:var(--color-base-300)}.sm\:text-base-300{color:var(--color-base-300)}.sm\:border-base-300{border-color:var(--color-base-300)}.sm\:bg-base-content{background-color:var(--color-base-content)}.sm\:text-base-content{color:var(--color-base-content)}.sm\:border-base-content{border-color:var(--color-base-content)}.sm\:bg-primary{background-color:var(--color-primary)}.sm\:text-primary{color:var(--color-primary)}.sm\:border-primary{border-color:var(--color-primary)}.sm\:bg-primary-content{background-color:var(--color-primary-content)}.sm\:text-primary-content{color:var(--color-primary-content)}.sm\:border-primary-content{border-color:var(--color-primary-content)}.sm\:bg-secondary{background-color:var(--color-secondary)}.sm\:text-secondary{color:var(--color-secondary)}.sm\:border-secondary{border-color:var(--color-secondary)}.sm\:bg-secondary-content{background-color:var(--color-secondary-content)}.sm\:text-secondary-content{color:var(--color-secondary-content)}.sm\:border-secondary-content{border-color:var(--color-secondary-content)}.sm\:bg-accent{background-color:var(--color-accent)}.sm\:text-accent{color:var(--color-accent)}.sm\:border-accent{border-color:var(--color-accent)}.sm\:bg-accent-content{background-color:var(--color-accent-content)}.sm\:text-accent-content{color:var(--color-accent-content)}.sm\:border-accent-content{border-color:var(--color-accent-content)}.sm\:bg-neutral{background-color:var(--color-neutral)}.sm\:text-neutral{color:var(--color-neutral)}.sm\:border-neutral{border-color:var(--color-neutral)}.sm\:bg-neutral-content{background-color:var(--color-neutral-content)}.sm\:text-neutral-content{color:var(--color-neutral-content)}.sm\:border-neutral-content{border-color:var(--color-neutral-content)}.sm\:bg-info{background-color:var(--color-info)}.sm\:text-info{color:var(--color-info)}.sm\:border-info{border-color:var(--color-info)}.sm\:bg-info-content{background-color:var(--color-info-content)}.sm\:text-info-content{color:var(--color-info-content)}.sm\:border-info-content{border-color:var(--color-info-content)}.sm\:bg-success{background-color:var(--color-success)}.sm\:text-success{color:var(--color-success)}.sm\:border-success{border-color:var(--color-success)}.sm\:bg-success-content{background-color:var(--color-success-content)}.sm\:text-success-content{color:var(--color-success-content)}.sm\:border-success-content{border-color:var(--color-success-content)}.sm\:bg-warning{background-color:var(--color-warning)}.sm\:text-warning{color:var(--color-warning)}.sm\:border-warning{border-color:var(--color-warning)}.sm\:bg-warning-content{background-color:var(--color-warning-content)}.sm\:text-warning-content{color:var(--color-warning-content)}.sm\:border-warning-content{border-color:var(--color-warning-content)}.sm\:bg-error{background-color:var(--color-error)}.sm\:text-error{color:var(--color-error)}.sm\:border-error{border-color:var(--color-error)}.sm\:bg-error-content{background-color:var(--color-error-content)}.sm\:text-error-content{color:var(--color-error-content)}.sm\:border-error-content{border-color:var(--color-error-content)}}@media (width>=48rem){.md\:bg-base-100{background-color:var(--color-base-100)}.md\:text-base-100{color:var(--color-base-100)}.md\:border-base-100{border-color:var(--color-base-100)}.md\:bg-base-200{background-color:var(--color-base-200)}.md\:text-base-200{color:var(--color-base-200)}.md\:border-base-200{border-color:var(--color-base-200)}.md\:bg-base-300{background-color:var(--color-base-300)}.md\:text-base-300{color:var(--color-base-300)}.md\:border-base-300{border-color:var(--color-base-300)}.md\:bg-base-content{background-color:var(--color-base-content)}.md\:text-base-content{color:var(--color-base-content)}.md\:border-base-content{border-color:var(--color-base-content)}.md\:bg-primary{background-color:var(--color-primary)}.md\:text-primary{color:var(--color-primary)}.md\:border-primary{border-color:var(--color-primary)}.md\:bg-primary-content{background-color:var(--color-primary-content)}.md\:text-primary-content{color:var(--color-primary-content)}.md\:border-primary-content{border-color:var(--color-primary-content)}.md\:bg-secondary{background-color:var(--color-secondary)}.md\:text-secondary{color:var(--color-secondary)}.md\:border-secondary{border-color:var(--color-secondary)}.md\:bg-secondary-content{background-color:var(--color-secondary-content)}.md\:text-secondary-content{color:var(--color-secondary-content)}.md\:border-secondary-content{border-color:var(--color-secondary-content)}.md\:bg-accent{background-color:var(--color-accent)}.md\:text-accent{color:var(--color-accent)}.md\:border-accent{border-color:var(--color-accent)}.md\:bg-accent-content{background-color:var(--color-accent-content)}.md\:text-accent-content{color:var(--color-accent-content)}.md\:border-accent-content{border-color:var(--color-accent-content)}.md\:bg-neutral{background-color:var(--color-neutral)}.md\:text-neutral{color:var(--color-neutral)}.md\:border-neutral{border-color:var(--color-neutral)}.md\:bg-neutral-content{background-color:var(--color-neutral-content)}.md\:text-neutral-content{color:var(--color-neutral-content)}.md\:border-neutral-content{border-color:var(--color-neutral-content)}.md\:bg-info{background-color:var(--color-info)}.md\:text-info{color:var(--color-info)}.md\:border-info{border-color:var(--color-info)}.md\:bg-info-content{background-color:var(--color-info-content)}.md\:text-info-content{color:var(--color-info-content)}.md\:border-info-content{border-color:var(--color-info-content)}.md\:bg-success{background-color:var(--color-success)}.md\:text-success{color:var(--color-success)}.md\:border-success{border-color:var(--color-success)}.md\:bg-success-content{background-color:var(--color-success-content)}.md\:text-success-content{color:var(--color-success-content)}.md\:border-success-content{border-color:var(--color-success-content)}.md\:bg-warning{background-color:var(--color-warning)}.md\:text-warning{color:var(--color-warning)}.md\:border-warning{border-color:var(--color-warning)}.md\:bg-warning-content{background-color:var(--color-warning-content)}.md\:text-warning-content{color:var(--color-warning-content)}.md\:border-warning-content{border-color:var(--color-warning-content)}.md\:bg-error{background-color:var(--color-error)}.md\:text-error{color:var(--color-error)}.md\:border-error{border-color:var(--color-error)}.md\:bg-error-content{background-color:var(--color-error-content)}.md\:text-error-content{color:var(--color-error-content)}.md\:border-error-content{border-color:var(--color-error-content)}}@media (width>=64rem){.lg\:bg-base-100{background-color:var(--color-base-100)}.lg\:text-base-100{color:var(--color-base-100)}.lg\:border-base-100{border-color:var(--color-base-100)}.lg\:bg-base-200{background-color:var(--color-base-200)}.lg\:text-base-200{color:var(--color-base-200)}.lg\:border-base-200{border-color:var(--color-base-200)}.lg\:bg-base-300{background-color:var(--color-base-300)}.lg\:text-base-300{color:var(--color-base-300)}.lg\:border-base-300{border-color:var(--color-base-300)}.lg\:bg-base-content{background-color:var(--color-base-content)}.lg\:text-base-content{color:var(--color-base-content)}.lg\:border-base-content{border-color:var(--color-base-content)}.lg\:bg-primary{background-color:var(--color-primary)}.lg\:text-primary{color:var(--color-primary)}.lg\:border-primary{border-color:var(--color-primary)}.lg\:bg-primary-content{background-color:var(--color-primary-content)}.lg\:text-primary-content{color:var(--color-primary-content)}.lg\:border-primary-content{border-color:var(--color-primary-content)}.lg\:bg-secondary{background-color:var(--color-secondary)}.lg\:text-secondary{color:var(--color-secondary)}.lg\:border-secondary{border-color:var(--color-secondary)}.lg\:bg-secondary-content{background-color:var(--color-secondary-content)}.lg\:text-secondary-content{color:var(--color-secondary-content)}.lg\:border-secondary-content{border-color:var(--color-secondary-content)}.lg\:bg-accent{background-color:var(--color-accent)}.lg\:text-accent{color:var(--color-accent)}.lg\:border-accent{border-color:var(--color-accent)}.lg\:bg-accent-content{background-color:var(--color-accent-content)}.lg\:text-accent-content{color:var(--color-accent-content)}.lg\:border-accent-content{border-color:var(--color-accent-content)}.lg\:bg-neutral{background-color:var(--color-neutral)}.lg\:text-neutral{color:var(--color-neutral)}.lg\:border-neutral{border-color:var(--color-neutral)}.lg\:bg-neutral-content{background-color:var(--color-neutral-content)}.lg\:text-neutral-content{color:var(--color-neutral-content)}.lg\:border-neutral-content{border-color:var(--color-neutral-content)}.lg\:bg-info{background-color:var(--color-info)}.lg\:text-info{color:var(--color-info)}.lg\:border-info{border-color:var(--color-info)}.lg\:bg-info-content{background-color:var(--color-info-content)}.lg\:text-info-content{color:var(--color-info-content)}.lg\:border-info-content{border-color:var(--color-info-content)}.lg\:bg-success{background-color:var(--color-success)}.lg\:text-success{color:var(--color-success)}.lg\:border-success{border-color:var(--color-success)}.lg\:bg-success-content{background-color:var(--color-success-content)}.lg\:text-success-content{color:var(--color-success-content)}.lg\:border-success-content{border-color:var(--color-success-content)}.lg\:bg-warning{background-color:var(--color-warning)}.lg\:text-warning{color:var(--color-warning)}.lg\:border-warning{border-color:var(--color-warning)}.lg\:bg-warning-content{background-color:var(--color-warning-content)}.lg\:text-warning-content{color:var(--color-warning-content)}.lg\:border-warning-content{border-color:var(--color-warning-content)}.lg\:bg-error{background-color:var(--color-error)}.lg\:text-error{color:var(--color-error)}.lg\:border-error{border-color:var(--color-error)}.lg\:bg-error-content{background-color:var(--color-error-content)}.lg\:text-error-content{color:var(--color-error-content)}.lg\:border-error-content{border-color:var(--color-error-content)}}@media (width>=80rem){.xl\:bg-base-100{background-color:var(--color-base-100)}.xl\:text-base-100{color:var(--color-base-100)}.xl\:border-base-100{border-color:var(--color-base-100)}.xl\:bg-base-200{background-color:var(--color-base-200)}.xl\:text-base-200{color:var(--color-base-200)}.xl\:border-base-200{border-color:var(--color-base-200)}.xl\:bg-base-300{background-color:var(--color-base-300)}.xl\:text-base-300{color:var(--color-base-300)}.xl\:border-base-300{border-color:var(--color-base-300)}.xl\:bg-base-content{background-color:var(--color-base-content)}.xl\:text-base-content{color:var(--color-base-content)}.xl\:border-base-content{border-color:var(--color-base-content)}.xl\:bg-primary{background-color:var(--color-primary)}.xl\:text-primary{color:var(--color-primary)}.xl\:border-primary{border-color:var(--color-primary)}.xl\:bg-primary-content{background-color:var(--color-primary-content)}.xl\:text-primary-content{color:var(--color-primary-content)}.xl\:border-primary-content{border-color:var(--color-primary-content)}.xl\:bg-secondary{background-color:var(--color-secondary)}.xl\:text-secondary{color:var(--color-secondary)}.xl\:border-secondary{border-color:var(--color-secondary)}.xl\:bg-secondary-content{background-color:var(--color-secondary-content)}.xl\:text-secondary-content{color:var(--color-secondary-content)}.xl\:border-secondary-content{border-color:var(--color-secondary-content)}.xl\:bg-accent{background-color:var(--color-accent)}.xl\:text-accent{color:var(--color-accent)}.xl\:border-accent{border-color:var(--color-accent)}.xl\:bg-accent-content{background-color:var(--color-accent-content)}.xl\:text-accent-content{color:var(--color-accent-content)}.xl\:border-accent-content{border-color:var(--color-accent-content)}.xl\:bg-neutral{background-color:var(--color-neutral)}.xl\:text-neutral{color:var(--color-neutral)}.xl\:border-neutral{border-color:var(--color-neutral)}.xl\:bg-neutral-content{background-color:var(--color-neutral-content)}.xl\:text-neutral-content{color:var(--color-neutral-content)}.xl\:border-neutral-content{border-color:var(--color-neutral-content)}.xl\:bg-info{background-color:var(--color-info)}.xl\:text-info{color:var(--color-info)}.xl\:border-info{border-color:var(--color-info)}.xl\:bg-info-content{background-color:var(--color-info-content)}.xl\:text-info-content{color:var(--color-info-content)}.xl\:border-info-content{border-color:var(--color-info-content)}.xl\:bg-success{background-color:var(--color-success)}.xl\:text-success{color:var(--color-success)}.xl\:border-success{border-color:var(--color-success)}.xl\:bg-success-content{background-color:var(--color-success-content)}.xl\:text-success-content{color:var(--color-success-content)}.xl\:border-success-content{border-color:var(--color-success-content)}.xl\:bg-warning{background-color:var(--color-warning)}.xl\:text-warning{color:var(--color-warning)}.xl\:border-warning{border-color:var(--color-warning)}.xl\:bg-warning-content{background-color:var(--color-warning-content)}.xl\:text-warning-content{color:var(--color-warning-content)}.xl\:border-warning-content{border-color:var(--color-warning-content)}.xl\:bg-error{background-color:var(--color-error)}.xl\:text-error{color:var(--color-error)}.xl\:border-error{border-color:var(--color-error)}.xl\:bg-error-content{background-color:var(--color-error-content)}.xl\:text-error-content{color:var(--color-error-content)}.xl\:border-error-content{border-color:var(--color-error-content)}}@media (width>=96rem){.\32 xl\:bg-base-100{background-color:var(--color-base-100)}.\32 xl\:text-base-100{color:var(--color-base-100)}.\32 xl\:border-base-100{border-color:var(--color-base-100)}.\32 xl\:bg-base-200{background-color:var(--color-base-200)}.\32 xl\:text-base-200{color:var(--color-base-200)}.\32 xl\:border-base-200{border-color:var(--color-base-200)}.\32 xl\:bg-base-300{background-color:var(--color-base-300)}.\32 xl\:text-base-300{color:var(--color-base-300)}.\32 xl\:border-base-300{border-color:var(--color-base-300)}.\32 xl\:bg-base-content{background-color:var(--color-base-content)}.\32 xl\:text-base-content{color:var(--color-base-content)}.\32 xl\:border-base-content{border-color:var(--color-base-content)}.\32 xl\:bg-primary{background-color:var(--color-primary)}.\32 xl\:text-primary{color:var(--color-primary)}.\32 xl\:border-primary{border-color:var(--color-primary)}.\32 xl\:bg-primary-content{background-color:var(--color-primary-content)}.\32 xl\:text-primary-content{color:var(--color-primary-content)}.\32 xl\:border-primary-content{border-color:var(--color-primary-content)}.\32 xl\:bg-secondary{background-color:var(--color-secondary)}.\32 xl\:text-secondary{color:var(--color-secondary)}.\32 xl\:border-secondary{border-color:var(--color-secondary)}.\32 xl\:bg-secondary-content{background-color:var(--color-secondary-content)}.\32 xl\:text-secondary-content{color:var(--color-secondary-content)}.\32 xl\:border-secondary-content{border-color:var(--color-secondary-content)}.\32 xl\:bg-accent{background-color:var(--color-accent)}.\32 xl\:text-accent{color:var(--color-accent)}.\32 xl\:border-accent{border-color:var(--color-accent)}.\32 xl\:bg-accent-content{background-color:var(--color-accent-content)}.\32 xl\:text-accent-content{color:var(--color-accent-content)}.\32 xl\:border-accent-content{border-color:var(--color-accent-content)}.\32 xl\:bg-neutral{background-color:var(--color-neutral)}.\32 xl\:text-neutral{color:var(--color-neutral)}.\32 xl\:border-neutral{border-color:var(--color-neutral)}.\32 xl\:bg-neutral-content{background-color:var(--color-neutral-content)}.\32 xl\:text-neutral-content{color:var(--color-neutral-content)}.\32 xl\:border-neutral-content{border-color:var(--color-neutral-content)}.\32 xl\:bg-info{background-color:var(--color-info)}.\32 xl\:text-info{color:var(--color-info)}.\32 xl\:border-info{border-color:var(--color-info)}.\32 xl\:bg-info-content{background-color:var(--color-info-content)}.\32 xl\:text-info-content{color:var(--color-info-content)}.\32 xl\:border-info-content{border-color:var(--color-info-content)}.\32 xl\:bg-success{background-color:var(--color-success)}.\32 xl\:text-success{color:var(--color-success)}.\32 xl\:border-success{border-color:var(--color-success)}.\32 xl\:bg-success-content{background-color:var(--color-success-content)}.\32 xl\:text-success-content{color:var(--color-success-content)}.\32 xl\:border-success-content{border-color:var(--color-success-content)}.\32 xl\:bg-warning{background-color:var(--color-warning)}.\32 xl\:text-warning{color:var(--color-warning)}.\32 xl\:border-warning{border-color:var(--color-warning)}.\32 xl\:bg-warning-content{background-color:var(--color-warning-content)}.\32 xl\:text-warning-content{color:var(--color-warning-content)}.\32 xl\:border-warning-content{border-color:var(--color-warning-content)}.\32 xl\:bg-error{background-color:var(--color-error)}.\32 xl\:text-error{color:var(--color-error)}.\32 xl\:border-error{border-color:var(--color-error)}.\32 xl\:bg-error-content{background-color:var(--color-error-content)}.\32 xl\:text-error-content{color:var(--color-error-content)}.\32 xl\:border-error-content{border-color:var(--color-error-content)}}.hover\:bg-base-100:hover{&:hover{@media (hover:hover){&{background-color:var(--color-base-100)}}}}.hover\:text-base-100:hover{&:hover{@media (hover:hover){&{color:var(--color-base-100)}}}}.hover\:border-base-100:hover{&:hover{@media (hover:hover){&{border-color:var(--color-base-100)}}}}.hover\:bg-base-200:hover{&:hover{@media (hover:hover){&{background-color:var(--color-base-200)}}}}.hover\:text-base-200:hover{&:hover{@media (hover:hover){&{color:var(--color-base-200)}}}}.hover\:border-base-200:hover{&:hover{@media (hover:hover){&{border-color:var(--color-base-200)}}}}.hover\:bg-base-300:hover{&:hover{@media (hover:hover){&{background-color:var(--color-base-300)}}}}.hover\:text-base-300:hover{&:hover{@media (hover:hover){&{color:var(--color-base-300)}}}}.hover\:border-base-300:hover{&:hover{@media (hover:hover){&{border-color:var(--color-base-300)}}}}.hover\:bg-base-content:hover{&:hover{@media (hover:hover){&{background-color:var(--color-base-content)}}}}.hover\:text-base-content:hover{&:hover{@media (hover:hover){&{color:var(--color-base-content)}}}}.hover\:border-base-content:hover{&:hover{@media (hover:hover){&{border-color:var(--color-base-content)}}}}.hover\:bg-primary:hover{&:hover{@media (hover:hover){&{background-color:var(--color-primary)}}}}.hover\:text-primary:hover{&:hover{@media (hover:hover){&{color:var(--color-primary)}}}}.hover\:border-primary:hover{&:hover{@media (hover:hover){&{border-color:var(--color-primary)}}}}.hover\:bg-primary-content:hover{&:hover{@media (hover:hover){&{background-color:var(--color-primary-content)}}}}.hover\:text-primary-content:hover{&:hover{@media (hover:hover){&{color:var(--color-primary-content)}}}}.hover\:border-primary-content:hover{&:hover{@media (hover:hover){&{border-color:var(--color-primary-content)}}}}.hover\:bg-secondary:hover{&:hover{@media (hover:hover){&{background-color:var(--color-secondary)}}}}.hover\:text-secondary:hover{&:hover{@media (hover:hover){&{color:var(--color-secondary)}}}}.hover\:border-secondary:hover{&:hover{@media (hover:hover){&{border-color:var(--color-secondary)}}}}.hover\:bg-secondary-content:hover{&:hover{@media (hover:hover){&{background-color:var(--color-secondary-content)}}}}.hover\:text-secondary-content:hover{&:hover{@media (hover:hover){&{color:var(--color-secondary-content)}}}}.hover\:border-secondary-content:hover{&:hover{@media (hover:hover){&{border-color:var(--color-secondary-content)}}}}.hover\:bg-accent:hover{&:hover{@media (hover:hover){&{background-color:var(--color-accent)}}}}.hover\:text-accent:hover{&:hover{@media (hover:hover){&{color:var(--color-accent)}}}}.hover\:border-accent:hover{&:hover{@media (hover:hover){&{border-color:var(--color-accent)}}}}.hover\:bg-accent-content:hover{&:hover{@media (hover:hover){&{background-color:var(--color-accent-content)}}}}.hover\:text-accent-content:hover{&:hover{@media (hover:hover){&{color:var(--color-accent-content)}}}}.hover\:border-accent-content:hover{&:hover{@media (hover:hover){&{border-color:var(--color-accent-content)}}}}.hover\:bg-neutral:hover{&:hover{@media (hover:hover){&{background-color:var(--color-neutral)}}}}.hover\:text-neutral:hover{&:hover{@media (hover:hover){&{color:var(--color-neutral)}}}}.hover\:border-neutral:hover{&:hover{@media (hover:hover){&{border-color:var(--color-neutral)}}}}.hover\:bg-neutral-content:hover{&:hover{@media (hover:hover){&{background-color:var(--color-neutral-content)}}}}.hover\:text-neutral-content:hover{&:hover{@media (hover:hover){&{color:var(--color-neutral-content)}}}}.hover\:border-neutral-content:hover{&:hover{@media (hover:hover){&{border-color:var(--color-neutral-content)}}}}.hover\:bg-info:hover{&:hover{@media (hover:hover){&{background-color:var(--color-info)}}}}.hover\:text-info:hover{&:hover{@media (hover:hover){&{color:var(--color-info)}}}}.hover\:border-info:hover{&:hover{@media (hover:hover){&{border-color:var(--color-info)}}}}.hover\:bg-info-content:hover{&:hover{@media (hover:hover){&{background-color:var(--color-info-content)}}}}.hover\:text-info-content:hover{&:hover{@media (hover:hover){&{color:var(--color-info-content)}}}}.hover\:border-info-content:hover{&:hover{@media (hover:hover){&{border-color:var(--color-info-content)}}}}.hover\:bg-success:hover{&:hover{@media (hover:hover){&{background-color:var(--color-success)}}}}.hover\:text-success:hover{&:hover{@media (hover:hover){&{color:var(--color-success)}}}}.hover\:border-success:hover{&:hover{@media (hover:hover){&{border-color:var(--color-success)}}}}.hover\:bg-success-content:hover{&:hover{@media (hover:hover){&{background-color:var(--color-success-content)}}}}.hover\:text-success-content:hover{&:hover{@media (hover:hover){&{color:var(--color-success-content)}}}}.hover\:border-success-content:hover{&:hover{@media (hover:hover){&{border-color:var(--color-success-content)}}}}.hover\:bg-warning:hover{&:hover{@media (hover:hover){&{background-color:var(--color-warning)}}}}.hover\:text-warning:hover{&:hover{@media (hover:hover){&{color:var(--color-warning)}}}}.hover\:border-warning:hover{&:hover{@media (hover:hover){&{border-color:var(--color-warning)}}}}.hover\:bg-warning-content:hover{&:hover{@media (hover:hover){&{background-color:var(--color-warning-content)}}}}.hover\:text-warning-content:hover{&:hover{@media (hover:hover){&{color:var(--color-warning-content)}}}}.hover\:border-warning-content:hover{&:hover{@media (hover:hover){&{border-color:var(--color-warning-content)}}}}.hover\:bg-error:hover{&:hover{@media (hover:hover){&{background-color:var(--color-error)}}}}.hover\:text-error:hover{&:hover{@media (hover:hover){&{color:var(--color-error)}}}}.hover\:border-error:hover{&:hover{@media (hover:hover){&{border-color:var(--color-error)}}}}.hover\:bg-error-content:hover{&:hover{@media (hover:hover){&{background-color:var(--color-error-content)}}}}.hover\:text-error-content:hover{&:hover{@media (hover:hover){&{color:var(--color-error-content)}}}}.hover\:border-error-content:hover{&:hover{@media (hover:hover){&{border-color:var(--color-error-content)}}}}.bg-base-100{background-color:var(--color-base-100)}.bg-base-100\/10{background-color:color-mix(in oklab,var(--color-base-100)10%,#0000)}.bg-base-100\/20{background-color:color-mix(in oklab,var(--color-base-100)20%,#0000)}.bg-base-100\/30{background-color:color-mix(in oklab,var(--color-base-100)30%,#0000)}.bg-base-100\/40{background-color:color-mix(in oklab,var(--color-base-100)40%,#0000)}.bg-base-100\/50{background-color:color-mix(in oklab,var(--color-base-100)50%,#0000)}.bg-base-100\/60{background-color:color-mix(in oklab,var(--color-base-100)60%,#0000)}.bg-base-100\/70{background-color:color-mix(in oklab,var(--color-base-100)70%,#0000)}.bg-base-100\/80{background-color:color-mix(in oklab,var(--color-base-100)80%,#0000)}.bg-base-100\/90{background-color:color-mix(in oklab,var(--color-base-100)90%,#0000)}.text-base-100{color:var(--color-base-100)}.text-base-100\/10{color:color-mix(in oklab,var(--color-base-100)10%,#0000)}.text-base-100\/20{color:color-mix(in oklab,var(--color-base-100)20%,#0000)}.text-base-100\/30{color:color-mix(in oklab,var(--color-base-100)30%,#0000)}.text-base-100\/40{color:color-mix(in oklab,var(--color-base-100)40%,#0000)}.text-base-100\/50{color:color-mix(in oklab,var(--color-base-100)50%,#0000)}.text-base-100\/60{color:color-mix(in oklab,var(--color-base-100)60%,#0000)}.text-base-100\/70{color:color-mix(in oklab,var(--color-base-100)70%,#0000)}.text-base-100\/80{color:color-mix(in oklab,var(--color-base-100)80%,#0000)}.text-base-100\/90{color:color-mix(in oklab,var(--color-base-100)90%,#0000)}.border-base-100{border-color:var(--color-base-100)}.border-base-100\/10{border-color:color-mix(in oklab,var(--color-base-100)10%,#0000)}.border-base-100\/20{border-color:color-mix(in oklab,var(--color-base-100)20%,#0000)}.border-base-100\/30{border-color:color-mix(in oklab,var(--color-base-100)30%,#0000)}.border-base-100\/40{border-color:color-mix(in oklab,var(--color-base-100)40%,#0000)}.border-base-100\/50{border-color:color-mix(in oklab,var(--color-base-100)50%,#0000)}.border-base-100\/60{border-color:color-mix(in oklab,var(--color-base-100)60%,#0000)}.border-base-100\/70{border-color:color-mix(in oklab,var(--color-base-100)70%,#0000)}.border-base-100\/80{border-color:color-mix(in oklab,var(--color-base-100)80%,#0000)}.border-base-100\/90{border-color:color-mix(in oklab,var(--color-base-100)90%,#0000)}.bg-base-200{background-color:var(--color-base-200)}.bg-base-200\/10{background-color:color-mix(in oklab,var(--color-base-200)10%,#0000)}.bg-base-200\/20{background-color:color-mix(in oklab,var(--color-base-200)20%,#0000)}.bg-base-200\/30{background-color:color-mix(in oklab,var(--color-base-200)30%,#0000)}.bg-base-200\/40{background-color:color-mix(in oklab,var(--color-base-200)40%,#0000)}.bg-base-200\/50{background-color:color-mix(in oklab,var(--color-base-200)50%,#0000)}.bg-base-200\/60{background-color:color-mix(in oklab,var(--color-base-200)60%,#0000)}.bg-base-200\/70{background-color:color-mix(in oklab,var(--color-base-200)70%,#0000)}.bg-base-200\/80{background-color:color-mix(in oklab,var(--color-base-200)80%,#0000)}.bg-base-200\/90{background-color:color-mix(in oklab,var(--color-base-200)90%,#0000)}.text-base-200{color:var(--color-base-200)}.text-base-200\/10{color:color-mix(in oklab,var(--color-base-200)10%,#0000)}.text-base-200\/20{color:color-mix(in oklab,var(--color-base-200)20%,#0000)}.text-base-200\/30{color:color-mix(in oklab,var(--color-base-200)30%,#0000)}.text-base-200\/40{color:color-mix(in oklab,var(--color-base-200)40%,#0000)}.text-base-200\/50{color:color-mix(in oklab,var(--color-base-200)50%,#0000)}.text-base-200\/60{color:color-mix(in oklab,var(--color-base-200)60%,#0000)}.text-base-200\/70{color:color-mix(in oklab,var(--color-base-200)70%,#0000)}.text-base-200\/80{color:color-mix(in oklab,var(--color-base-200)80%,#0000)}.text-base-200\/90{color:color-mix(in oklab,var(--color-base-200)90%,#0000)}.border-base-200{border-color:var(--color-base-200)}.border-base-200\/10{border-color:color-mix(in oklab,var(--color-base-200)10%,#0000)}.border-base-200\/20{border-color:color-mix(in oklab,var(--color-base-200)20%,#0000)}.border-base-200\/30{border-color:color-mix(in oklab,var(--color-base-200)30%,#0000)}.border-base-200\/40{border-color:color-mix(in oklab,var(--color-base-200)40%,#0000)}.border-base-200\/50{border-color:color-mix(in oklab,var(--color-base-200)50%,#0000)}.border-base-200\/60{border-color:color-mix(in oklab,var(--color-base-200)60%,#0000)}.border-base-200\/70{border-color:color-mix(in oklab,var(--color-base-200)70%,#0000)}.border-base-200\/80{border-color:color-mix(in oklab,var(--color-base-200)80%,#0000)}.border-base-200\/90{border-color:color-mix(in oklab,var(--color-base-200)90%,#0000)}.bg-base-300{background-color:var(--color-base-300)}.bg-base-300\/10{background-color:color-mix(in oklab,var(--color-base-300)10%,#0000)}.bg-base-300\/20{background-color:color-mix(in oklab,var(--color-base-300)20%,#0000)}.bg-base-300\/30{background-color:color-mix(in oklab,var(--color-base-300)30%,#0000)}.bg-base-300\/40{background-color:color-mix(in oklab,var(--color-base-300)40%,#0000)}.bg-base-300\/50{background-color:color-mix(in oklab,var(--color-base-300)50%,#0000)}.bg-base-300\/60{background-color:color-mix(in oklab,var(--color-base-300)60%,#0000)}.bg-base-300\/70{background-color:color-mix(in oklab,var(--color-base-300)70%,#0000)}.bg-base-300\/80{background-color:color-mix(in oklab,var(--color-base-300)80%,#0000)}.bg-base-300\/90{background-color:color-mix(in oklab,var(--color-base-300)90%,#0000)}.text-base-300{color:var(--color-base-300)}.text-base-300\/10{color:color-mix(in oklab,var(--color-base-300)10%,#0000)}.text-base-300\/20{color:color-mix(in oklab,var(--color-base-300)20%,#0000)}.text-base-300\/30{color:color-mix(in oklab,var(--color-base-300)30%,#0000)}.text-base-300\/40{color:color-mix(in oklab,var(--color-base-300)40%,#0000)}.text-base-300\/50{color:color-mix(in oklab,var(--color-base-300)50%,#0000)}.text-base-300\/60{color:color-mix(in oklab,var(--color-base-300)60%,#0000)}.text-base-300\/70{color:color-mix(in oklab,var(--color-base-300)70%,#0000)}.text-base-300\/80{color:color-mix(in oklab,var(--color-base-300)80%,#0000)}.text-base-300\/90{color:color-mix(in oklab,var(--color-base-300)90%,#0000)}.border-base-300{border-color:var(--color-base-300)}.border-base-300\/10{border-color:color-mix(in oklab,var(--color-base-300)10%,#0000)}.border-base-300\/20{border-color:color-mix(in oklab,var(--color-base-300)20%,#0000)}.border-base-300\/30{border-color:color-mix(in oklab,var(--color-base-300)30%,#0000)}.border-base-300\/40{border-color:color-mix(in oklab,var(--color-base-300)40%,#0000)}.border-base-300\/50{border-color:color-mix(in oklab,var(--color-base-300)50%,#0000)}.border-base-300\/60{border-color:color-mix(in oklab,var(--color-base-300)60%,#0000)}.border-base-300\/70{border-color:color-mix(in oklab,var(--color-base-300)70%,#0000)}.border-base-300\/80{border-color:color-mix(in oklab,var(--color-base-300)80%,#0000)}.border-base-300\/90{border-color:color-mix(in oklab,var(--color-base-300)90%,#0000)}.bg-base-content{background-color:var(--color-base-content)}.bg-base-content\/10{background-color:color-mix(in oklab,var(--color-base-content)10%,#0000)}.bg-base-content\/20{background-color:color-mix(in oklab,var(--color-base-content)20%,#0000)}.bg-base-content\/30{background-color:color-mix(in oklab,var(--color-base-content)30%,#0000)}.bg-base-content\/40{background-color:color-mix(in oklab,var(--color-base-content)40%,#0000)}.bg-base-content\/50{background-color:color-mix(in oklab,var(--color-base-content)50%,#0000)}.bg-base-content\/60{background-color:color-mix(in oklab,var(--color-base-content)60%,#0000)}.bg-base-content\/70{background-color:color-mix(in oklab,var(--color-base-content)70%,#0000)}.bg-base-content\/80{background-color:color-mix(in oklab,var(--color-base-content)80%,#0000)}.bg-base-content\/90{background-color:color-mix(in oklab,var(--color-base-content)90%,#0000)}.text-base-content{color:var(--color-base-content)}.text-base-content\/10{color:color-mix(in oklab,var(--color-base-content)10%,#0000)}.text-base-content\/20{color:color-mix(in oklab,var(--color-base-content)20%,#0000)}.text-base-content\/30{color:color-mix(in oklab,var(--color-base-content)30%,#0000)}.text-base-content\/40{color:color-mix(in oklab,var(--color-base-content)40%,#0000)}.text-base-content\/50{color:color-mix(in oklab,var(--color-base-content)50%,#0000)}.text-base-content\/60{color:color-mix(in oklab,var(--color-base-content)60%,#0000)}.text-base-content\/70{color:color-mix(in oklab,var(--color-base-content)70%,#0000)}.text-base-content\/80{color:color-mix(in oklab,var(--color-base-content)80%,#0000)}.text-base-content\/90{color:color-mix(in oklab,var(--color-base-content)90%,#0000)}.border-base-content{border-color:var(--color-base-content)}.border-base-content\/10{border-color:color-mix(in oklab,var(--color-base-content)10%,#0000)}.border-base-content\/20{border-color:color-mix(in oklab,var(--color-base-content)20%,#0000)}.border-base-content\/30{border-color:color-mix(in oklab,var(--color-base-content)30%,#0000)}.border-base-content\/40{border-color:color-mix(in oklab,var(--color-base-content)40%,#0000)}.border-base-content\/50{border-color:color-mix(in oklab,var(--color-base-content)50%,#0000)}.border-base-content\/60{border-color:color-mix(in oklab,var(--color-base-content)60%,#0000)}.border-base-content\/70{border-color:color-mix(in oklab,var(--color-base-content)70%,#0000)}.border-base-content\/80{border-color:color-mix(in oklab,var(--color-base-content)80%,#0000)}.border-base-content\/90{border-color:color-mix(in oklab,var(--color-base-content)90%,#0000)}.bg-primary{background-color:var(--color-primary)}.bg-primary\/10{background-color:color-mix(in oklab,var(--color-primary)10%,#0000)}.bg-primary\/20{background-color:color-mix(in oklab,var(--color-primary)20%,#0000)}.bg-primary\/30{background-color:color-mix(in oklab,var(--color-primary)30%,#0000)}.bg-primary\/40{background-color:color-mix(in oklab,var(--color-primary)40%,#0000)}.bg-primary\/50{background-color:color-mix(in oklab,var(--color-primary)50%,#0000)}.bg-primary\/60{background-color:color-mix(in oklab,var(--color-primary)60%,#0000)}.bg-primary\/70{background-color:color-mix(in oklab,var(--color-primary)70%,#0000)}.bg-primary\/80{background-color:color-mix(in oklab,var(--color-primary)80%,#0000)}.bg-primary\/90{background-color:color-mix(in oklab,var(--color-primary)90%,#0000)}.text-primary{color:var(--color-primary)}.text-primary\/10{color:color-mix(in oklab,var(--color-primary)10%,#0000)}.text-primary\/20{color:color-mix(in oklab,var(--color-primary)20%,#0000)}.text-primary\/30{color:color-mix(in oklab,var(--color-primary)30%,#0000)}.text-primary\/40{color:color-mix(in oklab,var(--color-primary)40%,#0000)}.text-primary\/50{color:color-mix(in oklab,var(--color-primary)50%,#0000)}.text-primary\/60{color:color-mix(in oklab,var(--color-primary)60%,#0000)}.text-primary\/70{color:color-mix(in oklab,var(--color-primary)70%,#0000)}.text-primary\/80{color:color-mix(in oklab,var(--color-primary)80%,#0000)}.text-primary\/90{color:color-mix(in oklab,var(--color-primary)90%,#0000)}.border-primary{border-color:var(--color-primary)}.border-primary\/10{border-color:color-mix(in oklab,var(--color-primary)10%,#0000)}.border-primary\/20{border-color:color-mix(in oklab,var(--color-primary)20%,#0000)}.border-primary\/30{border-color:color-mix(in oklab,var(--color-primary)30%,#0000)}.border-primary\/40{border-color:color-mix(in oklab,var(--color-primary)40%,#0000)}.border-primary\/50{border-color:color-mix(in oklab,var(--color-primary)50%,#0000)}.border-primary\/60{border-color:color-mix(in oklab,var(--color-primary)60%,#0000)}.border-primary\/70{border-color:color-mix(in oklab,var(--color-primary)70%,#0000)}.border-primary\/80{border-color:color-mix(in oklab,var(--color-primary)80%,#0000)}.border-primary\/90{border-color:color-mix(in oklab,var(--color-primary)90%,#0000)}.bg-primary-content{background-color:var(--color-primary-content)}.bg-primary-content\/10{background-color:color-mix(in oklab,var(--color-primary-content)10%,#0000)}.bg-primary-content\/20{background-color:color-mix(in oklab,var(--color-primary-content)20%,#0000)}.bg-primary-content\/30{background-color:color-mix(in oklab,var(--color-primary-content)30%,#0000)}.bg-primary-content\/40{background-color:color-mix(in oklab,var(--color-primary-content)40%,#0000)}.bg-primary-content\/50{background-color:color-mix(in oklab,var(--color-primary-content)50%,#0000)}.bg-primary-content\/60{background-color:color-mix(in oklab,var(--color-primary-content)60%,#0000)}.bg-primary-content\/70{background-color:color-mix(in oklab,var(--color-primary-content)70%,#0000)}.bg-primary-content\/80{background-color:color-mix(in oklab,var(--color-primary-content)80%,#0000)}.bg-primary-content\/90{background-color:color-mix(in oklab,var(--color-primary-content)90%,#0000)}.text-primary-content{color:var(--color-primary-content)}.text-primary-content\/10{color:color-mix(in oklab,var(--color-primary-content)10%,#0000)}.text-primary-content\/20{color:color-mix(in oklab,var(--color-primary-content)20%,#0000)}.text-primary-content\/30{color:color-mix(in oklab,var(--color-primary-content)30%,#0000)}.text-primary-content\/40{color:color-mix(in oklab,var(--color-primary-content)40%,#0000)}.text-primary-content\/50{color:color-mix(in oklab,var(--color-primary-content)50%,#0000)}.text-primary-content\/60{color:color-mix(in oklab,var(--color-primary-content)60%,#0000)}.text-primary-content\/70{color:color-mix(in oklab,var(--color-primary-content)70%,#0000)}.text-primary-content\/80{color:color-mix(in oklab,var(--color-primary-content)80%,#0000)}.text-primary-content\/90{color:color-mix(in oklab,var(--color-primary-content)90%,#0000)}.border-primary-content{border-color:var(--color-primary-content)}.border-primary-content\/10{border-color:color-mix(in oklab,var(--color-primary-content)10%,#0000)}.border-primary-content\/20{border-color:color-mix(in oklab,var(--color-primary-content)20%,#0000)}.border-primary-content\/30{border-color:color-mix(in oklab,var(--color-primary-content)30%,#0000)}.border-primary-content\/40{border-color:color-mix(in oklab,var(--color-primary-content)40%,#0000)}.border-primary-content\/50{border-color:color-mix(in oklab,var(--color-primary-content)50%,#0000)}.border-primary-content\/60{border-color:color-mix(in oklab,var(--color-primary-content)60%,#0000)}.border-primary-content\/70{border-color:color-mix(in oklab,var(--color-primary-content)70%,#0000)}.border-primary-content\/80{border-color:color-mix(in oklab,var(--color-primary-content)80%,#0000)}.border-primary-content\/90{border-color:color-mix(in oklab,var(--color-primary-content)90%,#0000)}.bg-secondary{background-color:var(--color-secondary)}.bg-secondary\/10{background-color:color-mix(in oklab,var(--color-secondary)10%,#0000)}.bg-secondary\/20{background-color:color-mix(in oklab,var(--color-secondary)20%,#0000)}.bg-secondary\/30{background-color:color-mix(in oklab,var(--color-secondary)30%,#0000)}.bg-secondary\/40{background-color:color-mix(in oklab,var(--color-secondary)40%,#0000)}.bg-secondary\/50{background-color:color-mix(in oklab,var(--color-secondary)50%,#0000)}.bg-secondary\/60{background-color:color-mix(in oklab,var(--color-secondary)60%,#0000)}.bg-secondary\/70{background-color:color-mix(in oklab,var(--color-secondary)70%,#0000)}.bg-secondary\/80{background-color:color-mix(in oklab,var(--color-secondary)80%,#0000)}.bg-secondary\/90{background-color:color-mix(in oklab,var(--color-secondary)90%,#0000)}.text-secondary{color:var(--color-secondary)}.text-secondary\/10{color:color-mix(in oklab,var(--color-secondary)10%,#0000)}.text-secondary\/20{color:color-mix(in oklab,var(--color-secondary)20%,#0000)}.text-secondary\/30{color:color-mix(in oklab,var(--color-secondary)30%,#0000)}.text-secondary\/40{color:color-mix(in oklab,var(--color-secondary)40%,#0000)}.text-secondary\/50{color:color-mix(in oklab,var(--color-secondary)50%,#0000)}.text-secondary\/60{color:color-mix(in oklab,var(--color-secondary)60%,#0000)}.text-secondary\/70{color:color-mix(in oklab,var(--color-secondary)70%,#0000)}.text-secondary\/80{color:color-mix(in oklab,var(--color-secondary)80%,#0000)}.text-secondary\/90{color:color-mix(in oklab,var(--color-secondary)90%,#0000)}.border-secondary{border-color:var(--color-secondary)}.border-secondary\/10{border-color:color-mix(in oklab,var(--color-secondary)10%,#0000)}.border-secondary\/20{border-color:color-mix(in oklab,var(--color-secondary)20%,#0000)}.border-secondary\/30{border-color:color-mix(in oklab,var(--color-secondary)30%,#0000)}.border-secondary\/40{border-color:color-mix(in oklab,var(--color-secondary)40%,#0000)}.border-secondary\/50{border-color:color-mix(in oklab,var(--color-secondary)50%,#0000)}.border-secondary\/60{border-color:color-mix(in oklab,var(--color-secondary)60%,#0000)}.border-secondary\/70{border-color:color-mix(in oklab,var(--color-secondary)70%,#0000)}.border-secondary\/80{border-color:color-mix(in oklab,var(--color-secondary)80%,#0000)}.border-secondary\/90{border-color:color-mix(in oklab,var(--color-secondary)90%,#0000)}.bg-secondary-content{background-color:var(--color-secondary-content)}.bg-secondary-content\/10{background-color:color-mix(in oklab,var(--color-secondary-content)10%,#0000)}.bg-secondary-content\/20{background-color:color-mix(in oklab,var(--color-secondary-content)20%,#0000)}.bg-secondary-content\/30{background-color:color-mix(in oklab,var(--color-secondary-content)30%,#0000)}.bg-secondary-content\/40{background-color:color-mix(in oklab,var(--color-secondary-content)40%,#0000)}.bg-secondary-content\/50{background-color:color-mix(in oklab,var(--color-secondary-content)50%,#0000)}.bg-secondary-content\/60{background-color:color-mix(in oklab,var(--color-secondary-content)60%,#0000)}.bg-secondary-content\/70{background-color:color-mix(in oklab,var(--color-secondary-content)70%,#0000)}.bg-secondary-content\/80{background-color:color-mix(in oklab,var(--color-secondary-content)80%,#0000)}.bg-secondary-content\/90{background-color:color-mix(in oklab,var(--color-secondary-content)90%,#0000)}.text-secondary-content{color:var(--color-secondary-content)}.text-secondary-content\/10{color:color-mix(in oklab,var(--color-secondary-content)10%,#0000)}.text-secondary-content\/20{color:color-mix(in oklab,var(--color-secondary-content)20%,#0000)}.text-secondary-content\/30{color:color-mix(in oklab,var(--color-secondary-content)30%,#0000)}.text-secondary-content\/40{color:color-mix(in oklab,var(--color-secondary-content)40%,#0000)}.text-secondary-content\/50{color:color-mix(in oklab,var(--color-secondary-content)50%,#0000)}.text-secondary-content\/60{color:color-mix(in oklab,var(--color-secondary-content)60%,#0000)}.text-secondary-content\/70{color:color-mix(in oklab,var(--color-secondary-content)70%,#0000)}.text-secondary-content\/80{color:color-mix(in oklab,var(--color-secondary-content)80%,#0000)}.text-secondary-content\/90{color:color-mix(in oklab,var(--color-secondary-content)90%,#0000)}.border-secondary-content{border-color:var(--color-secondary-content)}.border-secondary-content\/10{border-color:color-mix(in oklab,var(--color-secondary-content)10%,#0000)}.border-secondary-content\/20{border-color:color-mix(in oklab,var(--color-secondary-content)20%,#0000)}.border-secondary-content\/30{border-color:color-mix(in oklab,var(--color-secondary-content)30%,#0000)}.border-secondary-content\/40{border-color:color-mix(in oklab,var(--color-secondary-content)40%,#0000)}.border-secondary-content\/50{border-color:color-mix(in oklab,var(--color-secondary-content)50%,#0000)}.border-secondary-content\/60{border-color:color-mix(in oklab,var(--color-secondary-content)60%,#0000)}.border-secondary-content\/70{border-color:color-mix(in oklab,var(--color-secondary-content)70%,#0000)}.border-secondary-content\/80{border-color:color-mix(in oklab,var(--color-secondary-content)80%,#0000)}.border-secondary-content\/90{border-color:color-mix(in oklab,var(--color-secondary-content)90%,#0000)}.bg-accent{background-color:var(--color-accent)}.bg-accent\/10{background-color:color-mix(in oklab,var(--color-accent)10%,#0000)}.bg-accent\/20{background-color:color-mix(in oklab,var(--color-accent)20%,#0000)}.bg-accent\/30{background-color:color-mix(in oklab,var(--color-accent)30%,#0000)}.bg-accent\/40{background-color:color-mix(in oklab,var(--color-accent)40%,#0000)}.bg-accent\/50{background-color:color-mix(in oklab,var(--color-accent)50%,#0000)}.bg-accent\/60{background-color:color-mix(in oklab,var(--color-accent)60%,#0000)}.bg-accent\/70{background-color:color-mix(in oklab,var(--color-accent)70%,#0000)}.bg-accent\/80{background-color:color-mix(in oklab,var(--color-accent)80%,#0000)}.bg-accent\/90{background-color:color-mix(in oklab,var(--color-accent)90%,#0000)}.text-accent{color:var(--color-accent)}.text-accent\/10{color:color-mix(in oklab,var(--color-accent)10%,#0000)}.text-accent\/20{color:color-mix(in oklab,var(--color-accent)20%,#0000)}.text-accent\/30{color:color-mix(in oklab,var(--color-accent)30%,#0000)}.text-accent\/40{color:color-mix(in oklab,var(--color-accent)40%,#0000)}.text-accent\/50{color:color-mix(in oklab,var(--color-accent)50%,#0000)}.text-accent\/60{color:color-mix(in oklab,var(--color-accent)60%,#0000)}.text-accent\/70{color:color-mix(in oklab,var(--color-accent)70%,#0000)}.text-accent\/80{color:color-mix(in oklab,var(--color-accent)80%,#0000)}.text-accent\/90{color:color-mix(in oklab,var(--color-accent)90%,#0000)}.border-accent{border-color:var(--color-accent)}.border-accent\/10{border-color:color-mix(in oklab,var(--color-accent)10%,#0000)}.border-accent\/20{border-color:color-mix(in oklab,var(--color-accent)20%,#0000)}.border-accent\/30{border-color:color-mix(in oklab,var(--color-accent)30%,#0000)}.border-accent\/40{border-color:color-mix(in oklab,var(--color-accent)40%,#0000)}.border-accent\/50{border-color:color-mix(in oklab,var(--color-accent)50%,#0000)}.border-accent\/60{border-color:color-mix(in oklab,var(--color-accent)60%,#0000)}.border-accent\/70{border-color:color-mix(in oklab,var(--color-accent)70%,#0000)}.border-accent\/80{border-color:color-mix(in oklab,var(--color-accent)80%,#0000)}.border-accent\/90{border-color:color-mix(in oklab,var(--color-accent)90%,#0000)}.bg-accent-content{background-color:var(--color-accent-content)}.bg-accent-content\/10{background-color:color-mix(in oklab,var(--color-accent-content)10%,#0000)}.bg-accent-content\/20{background-color:color-mix(in oklab,var(--color-accent-content)20%,#0000)}.bg-accent-content\/30{background-color:color-mix(in oklab,var(--color-accent-content)30%,#0000)}.bg-accent-content\/40{background-color:color-mix(in oklab,var(--color-accent-content)40%,#0000)}.bg-accent-content\/50{background-color:color-mix(in oklab,var(--color-accent-content)50%,#0000)}.bg-accent-content\/60{background-color:color-mix(in oklab,var(--color-accent-content)60%,#0000)}.bg-accent-content\/70{background-color:color-mix(in oklab,var(--color-accent-content)70%,#0000)}.bg-accent-content\/80{background-color:color-mix(in oklab,var(--color-accent-content)80%,#0000)}.bg-accent-content\/90{background-color:color-mix(in oklab,var(--color-accent-content)90%,#0000)}.text-accent-content{color:var(--color-accent-content)}.text-accent-content\/10{color:color-mix(in oklab,var(--color-accent-content)10%,#0000)}.text-accent-content\/20{color:color-mix(in oklab,var(--color-accent-content)20%,#0000)}.text-accent-content\/30{color:color-mix(in oklab,var(--color-accent-content)30%,#0000)}.text-accent-content\/40{color:color-mix(in oklab,var(--color-accent-content)40%,#0000)}.text-accent-content\/50{color:color-mix(in oklab,var(--color-accent-content)50%,#0000)}.text-accent-content\/60{color:color-mix(in oklab,var(--color-accent-content)60%,#0000)}.text-accent-content\/70{color:color-mix(in oklab,var(--color-accent-content)70%,#0000)}.text-accent-content\/80{color:color-mix(in oklab,var(--color-accent-content)80%,#0000)}.text-accent-content\/90{color:color-mix(in oklab,var(--color-accent-content)90%,#0000)}.border-accent-content{border-color:var(--color-accent-content)}.border-accent-content\/10{border-color:color-mix(in oklab,var(--color-accent-content)10%,#0000)}.border-accent-content\/20{border-color:color-mix(in oklab,var(--color-accent-content)20%,#0000)}.border-accent-content\/30{border-color:color-mix(in oklab,var(--color-accent-content)30%,#0000)}.border-accent-content\/40{border-color:color-mix(in oklab,var(--color-accent-content)40%,#0000)}.border-accent-content\/50{border-color:color-mix(in oklab,var(--color-accent-content)50%,#0000)}.border-accent-content\/60{border-color:color-mix(in oklab,var(--color-accent-content)60%,#0000)}.border-accent-content\/70{border-color:color-mix(in oklab,var(--color-accent-content)70%,#0000)}.border-accent-content\/80{border-color:color-mix(in oklab,var(--color-accent-content)80%,#0000)}.border-accent-content\/90{border-color:color-mix(in oklab,var(--color-accent-content)90%,#0000)}.bg-neutral{background-color:var(--color-neutral)}.bg-neutral\/10{background-color:color-mix(in oklab,var(--color-neutral)10%,#0000)}.bg-neutral\/20{background-color:color-mix(in oklab,var(--color-neutral)20%,#0000)}.bg-neutral\/30{background-color:color-mix(in oklab,var(--color-neutral)30%,#0000)}.bg-neutral\/40{background-color:color-mix(in oklab,var(--color-neutral)40%,#0000)}.bg-neutral\/50{background-color:color-mix(in oklab,var(--color-neutral)50%,#0000)}.bg-neutral\/60{background-color:color-mix(in oklab,var(--color-neutral)60%,#0000)}.bg-neutral\/70{background-color:color-mix(in oklab,var(--color-neutral)70%,#0000)}.bg-neutral\/80{background-color:color-mix(in oklab,var(--color-neutral)80%,#0000)}.bg-neutral\/90{background-color:color-mix(in oklab,var(--color-neutral)90%,#0000)}.text-neutral{color:var(--color-neutral)}.text-neutral\/10{color:color-mix(in oklab,var(--color-neutral)10%,#0000)}.text-neutral\/20{color:color-mix(in oklab,var(--color-neutral)20%,#0000)}.text-neutral\/30{color:color-mix(in oklab,var(--color-neutral)30%,#0000)}.text-neutral\/40{color:color-mix(in oklab,var(--color-neutral)40%,#0000)}.text-neutral\/50{color:color-mix(in oklab,var(--color-neutral)50%,#0000)}.text-neutral\/60{color:color-mix(in oklab,var(--color-neutral)60%,#0000)}.text-neutral\/70{color:color-mix(in oklab,var(--color-neutral)70%,#0000)}.text-neutral\/80{color:color-mix(in oklab,var(--color-neutral)80%,#0000)}.text-neutral\/90{color:color-mix(in oklab,var(--color-neutral)90%,#0000)}.border-neutral{border-color:var(--color-neutral)}.border-neutral\/10{border-color:color-mix(in oklab,var(--color-neutral)10%,#0000)}.border-neutral\/20{border-color:color-mix(in oklab,var(--color-neutral)20%,#0000)}.border-neutral\/30{border-color:color-mix(in oklab,var(--color-neutral)30%,#0000)}.border-neutral\/40{border-color:color-mix(in oklab,var(--color-neutral)40%,#0000)}.border-neutral\/50{border-color:color-mix(in oklab,var(--color-neutral)50%,#0000)}.border-neutral\/60{border-color:color-mix(in oklab,var(--color-neutral)60%,#0000)}.border-neutral\/70{border-color:color-mix(in oklab,var(--color-neutral)70%,#0000)}.border-neutral\/80{border-color:color-mix(in oklab,var(--color-neutral)80%,#0000)}.border-neutral\/90{border-color:color-mix(in oklab,var(--color-neutral)90%,#0000)}.bg-neutral-content{background-color:var(--color-neutral-content)}.bg-neutral-content\/10{background-color:color-mix(in oklab,var(--color-neutral-content)10%,#0000)}.bg-neutral-content\/20{background-color:color-mix(in oklab,var(--color-neutral-content)20%,#0000)}.bg-neutral-content\/30{background-color:color-mix(in oklab,var(--color-neutral-content)30%,#0000)}.bg-neutral-content\/40{background-color:color-mix(in oklab,var(--color-neutral-content)40%,#0000)}.bg-neutral-content\/50{background-color:color-mix(in oklab,var(--color-neutral-content)50%,#0000)}.bg-neutral-content\/60{background-color:color-mix(in oklab,var(--color-neutral-content)60%,#0000)}.bg-neutral-content\/70{background-color:color-mix(in oklab,var(--color-neutral-content)70%,#0000)}.bg-neutral-content\/80{background-color:color-mix(in oklab,var(--color-neutral-content)80%,#0000)}.bg-neutral-content\/90{background-color:color-mix(in oklab,var(--color-neutral-content)90%,#0000)}.text-neutral-content{color:var(--color-neutral-content)}.text-neutral-content\/10{color:color-mix(in oklab,var(--color-neutral-content)10%,#0000)}.text-neutral-content\/20{color:color-mix(in oklab,var(--color-neutral-content)20%,#0000)}.text-neutral-content\/30{color:color-mix(in oklab,var(--color-neutral-content)30%,#0000)}.text-neutral-content\/40{color:color-mix(in oklab,var(--color-neutral-content)40%,#0000)}.text-neutral-content\/50{color:color-mix(in oklab,var(--color-neutral-content)50%,#0000)}.text-neutral-content\/60{color:color-mix(in oklab,var(--color-neutral-content)60%,#0000)}.text-neutral-content\/70{color:color-mix(in oklab,var(--color-neutral-content)70%,#0000)}.text-neutral-content\/80{color:color-mix(in oklab,var(--color-neutral-content)80%,#0000)}.text-neutral-content\/90{color:color-mix(in oklab,var(--color-neutral-content)90%,#0000)}.border-neutral-content{border-color:var(--color-neutral-content)}.border-neutral-content\/10{border-color:color-mix(in oklab,var(--color-neutral-content)10%,#0000)}.border-neutral-content\/20{border-color:color-mix(in oklab,var(--color-neutral-content)20%,#0000)}.border-neutral-content\/30{border-color:color-mix(in oklab,var(--color-neutral-content)30%,#0000)}.border-neutral-content\/40{border-color:color-mix(in oklab,var(--color-neutral-content)40%,#0000)}.border-neutral-content\/50{border-color:color-mix(in oklab,var(--color-neutral-content)50%,#0000)}.border-neutral-content\/60{border-color:color-mix(in oklab,var(--color-neutral-content)60%,#0000)}.border-neutral-content\/70{border-color:color-mix(in oklab,var(--color-neutral-content)70%,#0000)}.border-neutral-content\/80{border-color:color-mix(in oklab,var(--color-neutral-content)80%,#0000)}.border-neutral-content\/90{border-color:color-mix(in oklab,var(--color-neutral-content)90%,#0000)}.bg-info{background-color:var(--color-info)}.bg-info\/10{background-color:color-mix(in oklab,var(--color-info)10%,#0000)}.bg-info\/20{background-color:color-mix(in oklab,var(--color-info)20%,#0000)}.bg-info\/30{background-color:color-mix(in oklab,var(--color-info)30%,#0000)}.bg-info\/40{background-color:color-mix(in oklab,var(--color-info)40%,#0000)}.bg-info\/50{background-color:color-mix(in oklab,var(--color-info)50%,#0000)}.bg-info\/60{background-color:color-mix(in oklab,var(--color-info)60%,#0000)}.bg-info\/70{background-color:color-mix(in oklab,var(--color-info)70%,#0000)}.bg-info\/80{background-color:color-mix(in oklab,var(--color-info)80%,#0000)}.bg-info\/90{background-color:color-mix(in oklab,var(--color-info)90%,#0000)}.text-info{color:var(--color-info)}.text-info\/10{color:color-mix(in oklab,var(--color-info)10%,#0000)}.text-info\/20{color:color-mix(in oklab,var(--color-info)20%,#0000)}.text-info\/30{color:color-mix(in oklab,var(--color-info)30%,#0000)}.text-info\/40{color:color-mix(in oklab,var(--color-info)40%,#0000)}.text-info\/50{color:color-mix(in oklab,var(--color-info)50%,#0000)}.text-info\/60{color:color-mix(in oklab,var(--color-info)60%,#0000)}.text-info\/70{color:color-mix(in oklab,var(--color-info)70%,#0000)}.text-info\/80{color:color-mix(in oklab,var(--color-info)80%,#0000)}.text-info\/90{color:color-mix(in oklab,var(--color-info)90%,#0000)}.border-info{border-color:var(--color-info)}.border-info\/10{border-color:color-mix(in oklab,var(--color-info)10%,#0000)}.border-info\/20{border-color:color-mix(in oklab,var(--color-info)20%,#0000)}.border-info\/30{border-color:color-mix(in oklab,var(--color-info)30%,#0000)}.border-info\/40{border-color:color-mix(in oklab,var(--color-info)40%,#0000)}.border-info\/50{border-color:color-mix(in oklab,var(--color-info)50%,#0000)}.border-info\/60{border-color:color-mix(in oklab,var(--color-info)60%,#0000)}.border-info\/70{border-color:color-mix(in oklab,var(--color-info)70%,#0000)}.border-info\/80{border-color:color-mix(in oklab,var(--color-info)80%,#0000)}.border-info\/90{border-color:color-mix(in oklab,var(--color-info)90%,#0000)}.bg-info-content{background-color:var(--color-info-content)}.bg-info-content\/10{background-color:color-mix(in oklab,var(--color-info-content)10%,#0000)}.bg-info-content\/20{background-color:color-mix(in oklab,var(--color-info-content)20%,#0000)}.bg-info-content\/30{background-color:color-mix(in oklab,var(--color-info-content)30%,#0000)}.bg-info-content\/40{background-color:color-mix(in oklab,var(--color-info-content)40%,#0000)}.bg-info-content\/50{background-color:color-mix(in oklab,var(--color-info-content)50%,#0000)}.bg-info-content\/60{background-color:color-mix(in oklab,var(--color-info-content)60%,#0000)}.bg-info-content\/70{background-color:color-mix(in oklab,var(--color-info-content)70%,#0000)}.bg-info-content\/80{background-color:color-mix(in oklab,var(--color-info-content)80%,#0000)}.bg-info-content\/90{background-color:color-mix(in oklab,var(--color-info-content)90%,#0000)}.text-info-content{color:var(--color-info-content)}.text-info-content\/10{color:color-mix(in oklab,var(--color-info-content)10%,#0000)}.text-info-content\/20{color:color-mix(in oklab,var(--color-info-content)20%,#0000)}.text-info-content\/30{color:color-mix(in oklab,var(--color-info-content)30%,#0000)}.text-info-content\/40{color:color-mix(in oklab,var(--color-info-content)40%,#0000)}.text-info-content\/50{color:color-mix(in oklab,var(--color-info-content)50%,#0000)}.text-info-content\/60{color:color-mix(in oklab,var(--color-info-content)60%,#0000)}.text-info-content\/70{color:color-mix(in oklab,var(--color-info-content)70%,#0000)}.text-info-content\/80{color:color-mix(in oklab,var(--color-info-content)80%,#0000)}.text-info-content\/90{color:color-mix(in oklab,var(--color-info-content)90%,#0000)}.border-info-content{border-color:var(--color-info-content)}.border-info-content\/10{border-color:color-mix(in oklab,var(--color-info-content)10%,#0000)}.border-info-content\/20{border-color:color-mix(in oklab,var(--color-info-content)20%,#0000)}.border-info-content\/30{border-color:color-mix(in oklab,var(--color-info-content)30%,#0000)}.border-info-content\/40{border-color:color-mix(in oklab,var(--color-info-content)40%,#0000)}.border-info-content\/50{border-color:color-mix(in oklab,var(--color-info-content)50%,#0000)}.border-info-content\/60{border-color:color-mix(in oklab,var(--color-info-content)60%,#0000)}.border-info-content\/70{border-color:color-mix(in oklab,var(--color-info-content)70%,#0000)}.border-info-content\/80{border-color:color-mix(in oklab,var(--color-info-content)80%,#0000)}.border-info-content\/90{border-color:color-mix(in oklab,var(--color-info-content)90%,#0000)}.bg-success{background-color:var(--color-success)}.bg-success\/10{background-color:color-mix(in oklab,var(--color-success)10%,#0000)}.bg-success\/20{background-color:color-mix(in oklab,var(--color-success)20%,#0000)}.bg-success\/30{background-color:color-mix(in oklab,var(--color-success)30%,#0000)}.bg-success\/40{background-color:color-mix(in oklab,var(--color-success)40%,#0000)}.bg-success\/50{background-color:color-mix(in oklab,var(--color-success)50%,#0000)}.bg-success\/60{background-color:color-mix(in oklab,var(--color-success)60%,#0000)}.bg-success\/70{background-color:color-mix(in oklab,var(--color-success)70%,#0000)}.bg-success\/80{background-color:color-mix(in oklab,var(--color-success)80%,#0000)}.bg-success\/90{background-color:color-mix(in oklab,var(--color-success)90%,#0000)}.text-success{color:var(--color-success)}.text-success\/10{color:color-mix(in oklab,var(--color-success)10%,#0000)}.text-success\/20{color:color-mix(in oklab,var(--color-success)20%,#0000)}.text-success\/30{color:color-mix(in oklab,var(--color-success)30%,#0000)}.text-success\/40{color:color-mix(in oklab,var(--color-success)40%,#0000)}.text-success\/50{color:color-mix(in oklab,var(--color-success)50%,#0000)}.text-success\/60{color:color-mix(in oklab,var(--color-success)60%,#0000)}.text-success\/70{color:color-mix(in oklab,var(--color-success)70%,#0000)}.text-success\/80{color:color-mix(in oklab,var(--color-success)80%,#0000)}.text-success\/90{color:color-mix(in oklab,var(--color-success)90%,#0000)}.border-success{border-color:var(--color-success)}.border-success\/10{border-color:color-mix(in oklab,var(--color-success)10%,#0000)}.border-success\/20{border-color:color-mix(in oklab,var(--color-success)20%,#0000)}.border-success\/30{border-color:color-mix(in oklab,var(--color-success)30%,#0000)}.border-success\/40{border-color:color-mix(in oklab,var(--color-success)40%,#0000)}.border-success\/50{border-color:color-mix(in oklab,var(--color-success)50%,#0000)}.border-success\/60{border-color:color-mix(in oklab,var(--color-success)60%,#0000)}.border-success\/70{border-color:color-mix(in oklab,var(--color-success)70%,#0000)}.border-success\/80{border-color:color-mix(in oklab,var(--color-success)80%,#0000)}.border-success\/90{border-color:color-mix(in oklab,var(--color-success)90%,#0000)}.bg-success-content{background-color:var(--color-success-content)}.bg-success-content\/10{background-color:color-mix(in oklab,var(--color-success-content)10%,#0000)}.bg-success-content\/20{background-color:color-mix(in oklab,var(--color-success-content)20%,#0000)}.bg-success-content\/30{background-color:color-mix(in oklab,var(--color-success-content)30%,#0000)}.bg-success-content\/40{background-color:color-mix(in oklab,var(--color-success-content)40%,#0000)}.bg-success-content\/50{background-color:color-mix(in oklab,var(--color-success-content)50%,#0000)}.bg-success-content\/60{background-color:color-mix(in oklab,var(--color-success-content)60%,#0000)}.bg-success-content\/70{background-color:color-mix(in oklab,var(--color-success-content)70%,#0000)}.bg-success-content\/80{background-color:color-mix(in oklab,var(--color-success-content)80%,#0000)}.bg-success-content\/90{background-color:color-mix(in oklab,var(--color-success-content)90%,#0000)}.text-success-content{color:var(--color-success-content)}.text-success-content\/10{color:color-mix(in oklab,var(--color-success-content)10%,#0000)}.text-success-content\/20{color:color-mix(in oklab,var(--color-success-content)20%,#0000)}.text-success-content\/30{color:color-mix(in oklab,var(--color-success-content)30%,#0000)}.text-success-content\/40{color:color-mix(in oklab,var(--color-success-content)40%,#0000)}.text-success-content\/50{color:color-mix(in oklab,var(--color-success-content)50%,#0000)}.text-success-content\/60{color:color-mix(in oklab,var(--color-success-content)60%,#0000)}.text-success-content\/70{color:color-mix(in oklab,var(--color-success-content)70%,#0000)}.text-success-content\/80{color:color-mix(in oklab,var(--color-success-content)80%,#0000)}.text-success-content\/90{color:color-mix(in oklab,var(--color-success-content)90%,#0000)}.border-success-content{border-color:var(--color-success-content)}.border-success-content\/10{border-color:color-mix(in oklab,var(--color-success-content)10%,#0000)}.border-success-content\/20{border-color:color-mix(in oklab,var(--color-success-content)20%,#0000)}.border-success-content\/30{border-color:color-mix(in oklab,var(--color-success-content)30%,#0000)}.border-success-content\/40{border-color:color-mix(in oklab,var(--color-success-content)40%,#0000)}.border-success-content\/50{border-color:color-mix(in oklab,var(--color-success-content)50%,#0000)}.border-success-content\/60{border-color:color-mix(in oklab,var(--color-success-content)60%,#0000)}.border-success-content\/70{border-color:color-mix(in oklab,var(--color-success-content)70%,#0000)}.border-success-content\/80{border-color:color-mix(in oklab,var(--color-success-content)80%,#0000)}.border-success-content\/90{border-color:color-mix(in oklab,var(--color-success-content)90%,#0000)}.bg-warning{background-color:var(--color-warning)}.bg-warning\/10{background-color:color-mix(in oklab,var(--color-warning)10%,#0000)}.bg-warning\/20{background-color:color-mix(in oklab,var(--color-warning)20%,#0000)}.bg-warning\/30{background-color:color-mix(in oklab,var(--color-warning)30%,#0000)}.bg-warning\/40{background-color:color-mix(in oklab,var(--color-warning)40%,#0000)}.bg-warning\/50{background-color:color-mix(in oklab,var(--color-warning)50%,#0000)}.bg-warning\/60{background-color:color-mix(in oklab,var(--color-warning)60%,#0000)}.bg-warning\/70{background-color:color-mix(in oklab,var(--color-warning)70%,#0000)}.bg-warning\/80{background-color:color-mix(in oklab,var(--color-warning)80%,#0000)}.bg-warning\/90{background-color:color-mix(in oklab,var(--color-warning)90%,#0000)}.text-warning{color:var(--color-warning)}.text-warning\/10{color:color-mix(in oklab,var(--color-warning)10%,#0000)}.text-warning\/20{color:color-mix(in oklab,var(--color-warning)20%,#0000)}.text-warning\/30{color:color-mix(in oklab,var(--color-warning)30%,#0000)}.text-warning\/40{color:color-mix(in oklab,var(--color-warning)40%,#0000)}.text-warning\/50{color:color-mix(in oklab,var(--color-warning)50%,#0000)}.text-warning\/60{color:color-mix(in oklab,var(--color-warning)60%,#0000)}.text-warning\/70{color:color-mix(in oklab,var(--color-warning)70%,#0000)}.text-warning\/80{color:color-mix(in oklab,var(--color-warning)80%,#0000)}.text-warning\/90{color:color-mix(in oklab,var(--color-warning)90%,#0000)}.border-warning{border-color:var(--color-warning)}.border-warning\/10{border-color:color-mix(in oklab,var(--color-warning)10%,#0000)}.border-warning\/20{border-color:color-mix(in oklab,var(--color-warning)20%,#0000)}.border-warning\/30{border-color:color-mix(in oklab,var(--color-warning)30%,#0000)}.border-warning\/40{border-color:color-mix(in oklab,var(--color-warning)40%,#0000)}.border-warning\/50{border-color:color-mix(in oklab,var(--color-warning)50%,#0000)}.border-warning\/60{border-color:color-mix(in oklab,var(--color-warning)60%,#0000)}.border-warning\/70{border-color:color-mix(in oklab,var(--color-warning)70%,#0000)}.border-warning\/80{border-color:color-mix(in oklab,var(--color-warning)80%,#0000)}.border-warning\/90{border-color:color-mix(in oklab,var(--color-warning)90%,#0000)}.bg-warning-content{background-color:var(--color-warning-content)}.bg-warning-content\/10{background-color:color-mix(in oklab,var(--color-warning-content)10%,#0000)}.bg-warning-content\/20{background-color:color-mix(in oklab,var(--color-warning-content)20%,#0000)}.bg-warning-content\/30{background-color:color-mix(in oklab,var(--color-warning-content)30%,#0000)}.bg-warning-content\/40{background-color:color-mix(in oklab,var(--color-warning-content)40%,#0000)}.bg-warning-content\/50{background-color:color-mix(in oklab,var(--color-warning-content)50%,#0000)}.bg-warning-content\/60{background-color:color-mix(in oklab,var(--color-warning-content)60%,#0000)}.bg-warning-content\/70{background-color:color-mix(in oklab,var(--color-warning-content)70%,#0000)}.bg-warning-content\/80{background-color:color-mix(in oklab,var(--color-warning-content)80%,#0000)}.bg-warning-content\/90{background-color:color-mix(in oklab,var(--color-warning-content)90%,#0000)}.text-warning-content{color:var(--color-warning-content)}.text-warning-content\/10{color:color-mix(in oklab,var(--color-warning-content)10%,#0000)}.text-warning-content\/20{color:color-mix(in oklab,var(--color-warning-content)20%,#0000)}.text-warning-content\/30{color:color-mix(in oklab,var(--color-warning-content)30%,#0000)}.text-warning-content\/40{color:color-mix(in oklab,var(--color-warning-content)40%,#0000)}.text-warning-content\/50{color:color-mix(in oklab,var(--color-warning-content)50%,#0000)}.text-warning-content\/60{color:color-mix(in oklab,var(--color-warning-content)60%,#0000)}.text-warning-content\/70{color:color-mix(in oklab,var(--color-warning-content)70%,#0000)}.text-warning-content\/80{color:color-mix(in oklab,var(--color-warning-content)80%,#0000)}.text-warning-content\/90{color:color-mix(in oklab,var(--color-warning-content)90%,#0000)}.border-warning-content{border-color:var(--color-warning-content)}.border-warning-content\/10{border-color:color-mix(in oklab,var(--color-warning-content)10%,#0000)}.border-warning-content\/20{border-color:color-mix(in oklab,var(--color-warning-content)20%,#0000)}.border-warning-content\/30{border-color:color-mix(in oklab,var(--color-warning-content)30%,#0000)}.border-warning-content\/40{border-color:color-mix(in oklab,var(--color-warning-content)40%,#0000)}.border-warning-content\/50{border-color:color-mix(in oklab,var(--color-warning-content)50%,#0000)}.border-warning-content\/60{border-color:color-mix(in oklab,var(--color-warning-content)60%,#0000)}.border-warning-content\/70{border-color:color-mix(in oklab,var(--color-warning-content)70%,#0000)}.border-warning-content\/80{border-color:color-mix(in oklab,var(--color-warning-content)80%,#0000)}.border-warning-content\/90{border-color:color-mix(in oklab,var(--color-warning-content)90%,#0000)}.bg-error{background-color:var(--color-error)}.bg-error\/10{background-color:color-mix(in oklab,var(--color-error)10%,#0000)}.bg-error\/20{background-color:color-mix(in oklab,var(--color-error)20%,#0000)}.bg-error\/30{background-color:color-mix(in oklab,var(--color-error)30%,#0000)}.bg-error\/40{background-color:color-mix(in oklab,var(--color-error)40%,#0000)}.bg-error\/50{background-color:color-mix(in oklab,var(--color-error)50%,#0000)}.bg-error\/60{background-color:color-mix(in oklab,var(--color-error)60%,#0000)}.bg-error\/70{background-color:color-mix(in oklab,var(--color-error)70%,#0000)}.bg-error\/80{background-color:color-mix(in oklab,var(--color-error)80%,#0000)}.bg-error\/90{background-color:color-mix(in oklab,var(--color-error)90%,#0000)}.text-error{color:var(--color-error)}.text-error\/10{color:color-mix(in oklab,var(--color-error)10%,#0000)}.text-error\/20{color:color-mix(in oklab,var(--color-error)20%,#0000)}.text-error\/30{color:color-mix(in oklab,var(--color-error)30%,#0000)}.text-error\/40{color:color-mix(in oklab,var(--color-error)40%,#0000)}.text-error\/50{color:color-mix(in oklab,var(--color-error)50%,#0000)}.text-error\/60{color:color-mix(in oklab,var(--color-error)60%,#0000)}.text-error\/70{color:color-mix(in oklab,var(--color-error)70%,#0000)}.text-error\/80{color:color-mix(in oklab,var(--color-error)80%,#0000)}.text-error\/90{color:color-mix(in oklab,var(--color-error)90%,#0000)}.border-error{border-color:var(--color-error)}.border-error\/10{border-color:color-mix(in oklab,var(--color-error)10%,#0000)}.border-error\/20{border-color:color-mix(in oklab,var(--color-error)20%,#0000)}.border-error\/30{border-color:color-mix(in oklab,var(--color-error)30%,#0000)}.border-error\/40{border-color:color-mix(in oklab,var(--color-error)40%,#0000)}.border-error\/50{border-color:color-mix(in oklab,var(--color-error)50%,#0000)}.border-error\/60{border-color:color-mix(in oklab,var(--color-error)60%,#0000)}.border-error\/70{border-color:color-mix(in oklab,var(--color-error)70%,#0000)}.border-error\/80{border-color:color-mix(in oklab,var(--color-error)80%,#0000)}.border-error\/90{border-color:color-mix(in oklab,var(--color-error)90%,#0000)}.bg-error-content{background-color:var(--color-error-content)}.bg-error-content\/10{background-color:color-mix(in oklab,var(--color-error-content)10%,#0000)}.bg-error-content\/20{background-color:color-mix(in oklab,var(--color-error-content)20%,#0000)}.bg-error-content\/30{background-color:color-mix(in oklab,var(--color-error-content)30%,#0000)}.bg-error-content\/40{background-color:color-mix(in oklab,var(--color-error-content)40%,#0000)}.bg-error-content\/50{background-color:color-mix(in oklab,var(--color-error-content)50%,#0000)}.bg-error-content\/60{background-color:color-mix(in oklab,var(--color-error-content)60%,#0000)}.bg-error-content\/70{background-color:color-mix(in oklab,var(--color-error-content)70%,#0000)}.bg-error-content\/80{background-color:color-mix(in oklab,var(--color-error-content)80%,#0000)}.bg-error-content\/90{background-color:color-mix(in oklab,var(--color-error-content)90%,#0000)}.text-error-content{color:var(--color-error-content)}.text-error-content\/10{color:color-mix(in oklab,var(--color-error-content)10%,#0000)}.text-error-content\/20{color:color-mix(in oklab,var(--color-error-content)20%,#0000)}.text-error-content\/30{color:color-mix(in oklab,var(--color-error-content)30%,#0000)}.text-error-content\/40{color:color-mix(in oklab,var(--color-error-content)40%,#0000)}.text-error-content\/50{color:color-mix(in oklab,var(--color-error-content)50%,#0000)}.text-error-content\/60{color:color-mix(in oklab,var(--color-error-content)60%,#0000)}.text-error-content\/70{color:color-mix(in oklab,var(--color-error-content)70%,#0000)}.text-error-content\/80{color:color-mix(in oklab,var(--color-error-content)80%,#0000)}.text-error-content\/90{color:color-mix(in oklab,var(--color-error-content)90%,#0000)}.border-error-content{border-color:var(--color-error-content)}.border-error-content\/10{border-color:color-mix(in oklab,var(--color-error-content)10%,#0000)}.border-error-content\/20{border-color:color-mix(in oklab,var(--color-error-content)20%,#0000)}.border-error-content\/30{border-color:color-mix(in oklab,var(--color-error-content)30%,#0000)}.border-error-content\/40{border-color:color-mix(in oklab,var(--color-error-content)40%,#0000)}.border-error-content\/50{border-color:color-mix(in oklab,var(--color-error-content)50%,#0000)}.border-error-content\/60{border-color:color-mix(in oklab,var(--color-error-content)60%,#0000)}.border-error-content\/70{border-color:color-mix(in oklab,var(--color-error-content)70%,#0000)}.border-error-content\/80{border-color:color-mix(in oklab,var(--color-error-content)80%,#0000)}.border-error-content\/90{border-color:color-mix(in oklab,var(--color-error-content)90%,#0000)}} \ No newline at end of file diff --git a/static/css/main.css b/static/css/main.css new file mode 100644 index 0000000..cb0d30e --- /dev/null +++ b/static/css/main.css @@ -0,0 +1,46 @@ +* { + min-width: 0; +} + +html { + max-width: 100%; + overflow-x: hidden; +} + +.stagger { + animation-delay: calc(var(--index) * 50ms); +} + +.tooltip { + --tt-bg: transparent; + --color-neutral-content: #333; +} + +body { + background-color: white !important; +} + +svg { + width: 0; + height: 0; +} + +.breadcrumbs ul li:before { + content: "/" ; + border: none ; + opacity: .4; + background-color: #0000; + width: auto; + height: auto; + margin-left: .5rem; + margin-right: .75rem; + display: block; + rotate: 0deg; +} + +.breadcrumbs ul li:nth-child(1):before { + content: ""; + width: 0; + height: 0; + margin: 0; +} \ No newline at end of file diff --git a/static/css/themes.css b/static/css/themes.css new file mode 100644 index 0000000..bcae800 --- /dev/null +++ b/static/css/themes.css @@ -0,0 +1 @@ +/*! 🌼 daisyUI 5.0.45 - MIT License */ :root,:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(95% 0 0);--color-base-content:oklch(21% .006 285.885);--color-primary:oklch(45% .24 277.023);--color-primary-content:oklch(93% .034 272.788);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=dark]:checked),[data-theme=dark]{color-scheme:dark;--color-base-100:oklch(25.33% .016 252.42);--color-base-200:oklch(23.26% .014 253.1);--color-base-300:oklch(21.15% .012 254.09);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=cupcake]:checked),[data-theme=cupcake]{color-scheme:light;--color-base-100:oklch(97.788% .004 56.375);--color-base-200:oklch(93.982% .007 61.449);--color-base-300:oklch(91.586% .006 53.44);--color-base-content:oklch(23.574% .066 313.189);--color-primary:oklch(85% .138 181.071);--color-primary-content:oklch(43% .078 188.216);--color-secondary:oklch(89% .061 343.231);--color-secondary-content:oklch(45% .187 3.815);--color-accent:oklch(90% .076 70.697);--color-accent-content:oklch(47% .157 37.304);--color-neutral:oklch(27% .006 286.033);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(68% .169 237.323);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(69% .17 162.48);--color-success-content:oklch(26% .051 172.552);--color-warning:oklch(79% .184 86.047);--color-warning-content:oklch(28% .066 53.813);--color-error:oklch(64% .246 16.439);--color-error-content:oklch(27% .105 12.094);--radius-selector:1rem;--radius-field:2rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:2px;--depth:1;--noise:0}:root:has(input.theme-controller[value=bumblebee]:checked),[data-theme=bumblebee]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(97% 0 0);--color-base-300:oklch(92% 0 0);--color-base-content:oklch(20% 0 0);--color-primary:oklch(85% .199 91.936);--color-primary-content:oklch(42% .095 57.708);--color-secondary:oklch(75% .183 55.934);--color-secondary-content:oklch(40% .123 38.172);--color-accent:oklch(0% 0 0);--color-accent-content:oklch(100% 0 0);--color-neutral:oklch(37% .01 67.558);--color-neutral-content:oklch(92% .003 48.717);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(39% .09 240.876);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(70% .191 22.216);--color-error-content:oklch(39% .141 25.723);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=emerald]:checked),[data-theme=emerald]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(93% 0 0);--color-base-300:oklch(86% 0 0);--color-base-content:oklch(35.519% .032 262.988);--color-primary:oklch(76.662% .135 153.45);--color-primary-content:oklch(33.387% .04 162.24);--color-secondary:oklch(61.302% .202 261.294);--color-secondary-content:oklch(100% 0 0);--color-accent:oklch(72.772% .149 33.2);--color-accent-content:oklch(0% 0 0);--color-neutral:oklch(35.519% .032 262.988);--color-neutral-content:oklch(98.462% .001 247.838);--color-info:oklch(72.06% .191 231.6);--color-info-content:oklch(0% 0 0);--color-success:oklch(64.8% .15 160);--color-success-content:oklch(0% 0 0);--color-warning:oklch(84.71% .199 83.87);--color-warning-content:oklch(0% 0 0);--color-error:oklch(71.76% .221 22.18);--color-error-content:oklch(0% 0 0);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=corporate]:checked),[data-theme=corporate]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(93% 0 0);--color-base-300:oklch(86% 0 0);--color-base-content:oklch(22.389% .031 278.072);--color-primary:oklch(58% .158 241.966);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(55% .046 257.417);--color-secondary-content:oklch(100% 0 0);--color-accent:oklch(60% .118 184.704);--color-accent-content:oklch(100% 0 0);--color-neutral:oklch(0% 0 0);--color-neutral-content:oklch(100% 0 0);--color-info:oklch(60% .126 221.723);--color-info-content:oklch(100% 0 0);--color-success:oklch(62% .194 149.214);--color-success-content:oklch(100% 0 0);--color-warning:oklch(85% .199 91.936);--color-warning-content:oklch(0% 0 0);--color-error:oklch(70% .191 22.216);--color-error-content:oklch(0% 0 0);--radius-selector:.25rem;--radius-field:.25rem;--radius-box:.25rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=synthwave]:checked),[data-theme=synthwave]{color-scheme:dark;--color-base-100:oklch(15% .09 281.288);--color-base-200:oklch(20% .09 281.288);--color-base-300:oklch(25% .09 281.288);--color-base-content:oklch(78% .115 274.713);--color-primary:oklch(71% .202 349.761);--color-primary-content:oklch(28% .109 3.907);--color-secondary:oklch(82% .111 230.318);--color-secondary-content:oklch(29% .066 243.157);--color-accent:oklch(75% .183 55.934);--color-accent-content:oklch(26% .079 36.259);--color-neutral:oklch(45% .24 277.023);--color-neutral-content:oklch(87% .065 274.039);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(77% .152 181.912);--color-success-content:oklch(27% .046 192.524);--color-warning:oklch(90% .182 98.111);--color-warning-content:oklch(42% .095 57.708);--color-error:oklch(73.7% .121 32.639);--color-error-content:oklch(23.501% .096 290.329);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=retro]:checked),[data-theme=retro]{color-scheme:light;--color-base-100:oklch(91.637% .034 90.515);--color-base-200:oklch(88.272% .049 91.774);--color-base-300:oklch(84.133% .065 90.856);--color-base-content:oklch(41% .112 45.904);--color-primary:oklch(80% .114 19.571);--color-primary-content:oklch(39% .141 25.723);--color-secondary:oklch(92% .084 155.995);--color-secondary-content:oklch(44% .119 151.328);--color-accent:oklch(68% .162 75.834);--color-accent-content:oklch(41% .112 45.904);--color-neutral:oklch(44% .011 73.639);--color-neutral-content:oklch(86% .005 56.366);--color-info:oklch(58% .158 241.966);--color-info-content:oklch(96% .059 95.617);--color-success:oklch(51% .096 186.391);--color-success-content:oklch(96% .059 95.617);--color-warning:oklch(64% .222 41.116);--color-warning-content:oklch(96% .059 95.617);--color-error:oklch(70% .191 22.216);--color-error-content:oklch(40% .123 38.172);--radius-selector:.25rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=cyberpunk]:checked),[data-theme=cyberpunk]{color-scheme:light;--color-base-100:oklch(94.51% .179 104.32);--color-base-200:oklch(91.51% .179 104.32);--color-base-300:oklch(85.51% .179 104.32);--color-base-content:oklch(0% 0 0);--color-primary:oklch(74.22% .209 6.35);--color-primary-content:oklch(14.844% .041 6.35);--color-secondary:oklch(83.33% .184 204.72);--color-secondary-content:oklch(16.666% .036 204.72);--color-accent:oklch(71.86% .217 310.43);--color-accent-content:oklch(14.372% .043 310.43);--color-neutral:oklch(23.04% .065 269.31);--color-neutral-content:oklch(94.51% .179 104.32);--color-info:oklch(72.06% .191 231.6);--color-info-content:oklch(0% 0 0);--color-success:oklch(64.8% .15 160);--color-success-content:oklch(0% 0 0);--color-warning:oklch(84.71% .199 83.87);--color-warning-content:oklch(0% 0 0);--color-error:oklch(71.76% .221 22.18);--color-error-content:oklch(0% 0 0);--radius-selector:0rem;--radius-field:0rem;--radius-box:0rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=valentine]:checked),[data-theme=valentine]{color-scheme:light;--color-base-100:oklch(97% .014 343.198);--color-base-200:oklch(94% .028 342.258);--color-base-300:oklch(89% .061 343.231);--color-base-content:oklch(52% .223 3.958);--color-primary:oklch(65% .241 354.308);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(62% .265 303.9);--color-secondary-content:oklch(97% .014 308.299);--color-accent:oklch(82% .111 230.318);--color-accent-content:oklch(39% .09 240.876);--color-neutral:oklch(40% .153 2.432);--color-neutral-content:oklch(89% .061 343.231);--color-info:oklch(86% .127 207.078);--color-info-content:oklch(44% .11 240.79);--color-success:oklch(84% .143 164.978);--color-success-content:oklch(43% .095 166.913);--color-warning:oklch(75% .183 55.934);--color-warning-content:oklch(26% .079 36.259);--color-error:oklch(63% .237 25.331);--color-error-content:oklch(97% .013 17.38);--radius-selector:1rem;--radius-field:2rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=halloween]:checked),[data-theme=halloween]{color-scheme:dark;--color-base-100:oklch(21% .006 56.043);--color-base-200:oklch(14% .004 49.25);--color-base-300:oklch(0% 0 0);--color-base-content:oklch(84.955% 0 0);--color-primary:oklch(77.48% .204 60.62);--color-primary-content:oklch(19.693% .004 196.779);--color-secondary:oklch(45.98% .248 305.03);--color-secondary-content:oklch(89.196% .049 305.03);--color-accent:oklch(64.8% .223 136.073);--color-accent-content:oklch(0% 0 0);--color-neutral:oklch(24.371% .046 65.681);--color-neutral-content:oklch(84.874% .009 65.681);--color-info:oklch(54.615% .215 262.88);--color-info-content:oklch(90.923% .043 262.88);--color-success:oklch(62.705% .169 149.213);--color-success-content:oklch(12.541% .033 149.213);--color-warning:oklch(66.584% .157 58.318);--color-warning-content:oklch(13.316% .031 58.318);--color-error:oklch(65.72% .199 27.33);--color-error-content:oklch(13.144% .039 27.33);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=garden]:checked),[data-theme=garden]{color-scheme:light;--color-base-100:oklch(92.951% .002 17.197);--color-base-200:oklch(86.445% .002 17.197);--color-base-300:oklch(79.938% .001 17.197);--color-base-content:oklch(16.961% .001 17.32);--color-primary:oklch(62.45% .278 3.836);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(48.495% .11 355.095);--color-secondary-content:oklch(89.699% .022 355.095);--color-accent:oklch(56.273% .054 154.39);--color-accent-content:oklch(100% 0 0);--color-neutral:oklch(24.155% .049 89.07);--color-neutral-content:oklch(92.951% .002 17.197);--color-info:oklch(72.06% .191 231.6);--color-info-content:oklch(0% 0 0);--color-success:oklch(64.8% .15 160);--color-success-content:oklch(0% 0 0);--color-warning:oklch(84.71% .199 83.87);--color-warning-content:oklch(0% 0 0);--color-error:oklch(71.76% .221 22.18);--color-error-content:oklch(0% 0 0);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=forest]:checked),[data-theme=forest]{color-scheme:dark;--color-base-100:oklch(20.84% .008 17.911);--color-base-200:oklch(18.522% .007 17.911);--color-base-300:oklch(16.203% .007 17.911);--color-base-content:oklch(83.768% .001 17.911);--color-primary:oklch(68.628% .185 148.958);--color-primary-content:oklch(0% 0 0);--color-secondary:oklch(69.776% .135 168.327);--color-secondary-content:oklch(13.955% .027 168.327);--color-accent:oklch(70.628% .119 185.713);--color-accent-content:oklch(14.125% .023 185.713);--color-neutral:oklch(30.698% .039 171.364);--color-neutral-content:oklch(86.139% .007 171.364);--color-info:oklch(72.06% .191 231.6);--color-info-content:oklch(0% 0 0);--color-success:oklch(64.8% .15 160);--color-success-content:oklch(0% 0 0);--color-warning:oklch(84.71% .199 83.87);--color-warning-content:oklch(0% 0 0);--color-error:oklch(71.76% .221 22.18);--color-error-content:oklch(0% 0 0);--radius-selector:1rem;--radius-field:2rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=aqua]:checked),[data-theme=aqua]{color-scheme:dark;--color-base-100:oklch(37% .146 265.522);--color-base-200:oklch(28% .091 267.935);--color-base-300:oklch(22% .091 267.935);--color-base-content:oklch(90% .058 230.902);--color-primary:oklch(85.661% .144 198.645);--color-primary-content:oklch(40.124% .068 197.603);--color-secondary:oklch(60.682% .108 309.782);--color-secondary-content:oklch(96% .016 293.756);--color-accent:oklch(93.426% .102 94.555);--color-accent-content:oklch(18.685% .02 94.555);--color-neutral:oklch(27% .146 265.522);--color-neutral-content:oklch(80% .146 265.522);--color-info:oklch(54.615% .215 262.88);--color-info-content:oklch(90.923% .043 262.88);--color-success:oklch(62.705% .169 149.213);--color-success-content:oklch(12.541% .033 149.213);--color-warning:oklch(66.584% .157 58.318);--color-warning-content:oklch(27% .077 45.635);--color-error:oklch(73.95% .19 27.33);--color-error-content:oklch(14.79% .038 27.33);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=lofi]:checked),[data-theme=lofi]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(97% 0 0);--color-base-300:oklch(94% 0 0);--color-base-content:oklch(0% 0 0);--color-primary:oklch(15.906% 0 0);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(21.455% .001 17.278);--color-secondary-content:oklch(100% 0 0);--color-accent:oklch(26.861% 0 0);--color-accent-content:oklch(100% 0 0);--color-neutral:oklch(0% 0 0);--color-neutral-content:oklch(100% 0 0);--color-info:oklch(79.54% .103 205.9);--color-info-content:oklch(15.908% .02 205.9);--color-success:oklch(90.13% .153 164.14);--color-success-content:oklch(18.026% .03 164.14);--color-warning:oklch(88.37% .135 79.94);--color-warning-content:oklch(17.674% .027 79.94);--color-error:oklch(78.66% .15 28.47);--color-error-content:oklch(15.732% .03 28.47);--radius-selector:2rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=pastel]:checked),[data-theme=pastel]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98.462% .001 247.838);--color-base-300:oklch(92.462% .001 247.838);--color-base-content:oklch(20% 0 0);--color-primary:oklch(90% .063 306.703);--color-primary-content:oklch(49% .265 301.924);--color-secondary:oklch(89% .058 10.001);--color-secondary-content:oklch(51% .222 16.935);--color-accent:oklch(90% .093 164.15);--color-accent-content:oklch(50% .118 165.612);--color-neutral:oklch(55% .046 257.417);--color-neutral-content:oklch(92% .013 255.508);--color-info:oklch(86% .127 207.078);--color-info-content:oklch(52% .105 223.128);--color-success:oklch(87% .15 154.449);--color-success-content:oklch(52% .154 150.069);--color-warning:oklch(83% .128 66.29);--color-warning-content:oklch(55% .195 38.402);--color-error:oklch(80% .114 19.571);--color-error-content:oklch(50% .213 27.518);--radius-selector:1rem;--radius-field:2rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:2px;--depth:0;--noise:0}:root:has(input.theme-controller[value=fantasy]:checked),[data-theme=fantasy]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(93% 0 0);--color-base-300:oklch(86% 0 0);--color-base-content:oklch(27.807% .029 256.847);--color-primary:oklch(37.45% .189 325.02);--color-primary-content:oklch(87.49% .037 325.02);--color-secondary:oklch(53.92% .162 241.36);--color-secondary-content:oklch(90.784% .032 241.36);--color-accent:oklch(75.98% .204 56.72);--color-accent-content:oklch(15.196% .04 56.72);--color-neutral:oklch(27.807% .029 256.847);--color-neutral-content:oklch(85.561% .005 256.847);--color-info:oklch(72.06% .191 231.6);--color-info-content:oklch(0% 0 0);--color-success:oklch(64.8% .15 160);--color-success-content:oklch(0% 0 0);--color-warning:oklch(84.71% .199 83.87);--color-warning-content:oklch(0% 0 0);--color-error:oklch(71.76% .221 22.18);--color-error-content:oklch(0% 0 0);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=wireframe]:checked),[data-theme=wireframe]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(97% 0 0);--color-base-300:oklch(94% 0 0);--color-base-content:oklch(20% 0 0);--color-primary:oklch(87% 0 0);--color-primary-content:oklch(26% 0 0);--color-secondary:oklch(87% 0 0);--color-secondary-content:oklch(26% 0 0);--color-accent:oklch(87% 0 0);--color-accent-content:oklch(26% 0 0);--color-neutral:oklch(87% 0 0);--color-neutral-content:oklch(26% 0 0);--color-info:oklch(44% .11 240.79);--color-info-content:oklch(90% .058 230.902);--color-success:oklch(43% .095 166.913);--color-success-content:oklch(90% .093 164.15);--color-warning:oklch(47% .137 46.201);--color-warning-content:oklch(92% .12 95.746);--color-error:oklch(44% .177 26.899);--color-error-content:oklch(88% .062 18.334);--radius-selector:0rem;--radius-field:.25rem;--radius-box:.25rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=black]:checked),[data-theme=black]{color-scheme:dark;--color-base-100:oklch(0% 0 0);--color-base-200:oklch(19% 0 0);--color-base-300:oklch(22% 0 0);--color-base-content:oklch(87.609% 0 0);--color-primary:oklch(35% 0 0);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(35% 0 0);--color-secondary-content:oklch(100% 0 0);--color-accent:oklch(35% 0 0);--color-accent-content:oklch(100% 0 0);--color-neutral:oklch(35% 0 0);--color-neutral-content:oklch(100% 0 0);--color-info:oklch(45.201% .313 264.052);--color-info-content:oklch(89.04% .062 264.052);--color-success:oklch(51.975% .176 142.495);--color-success-content:oklch(90.395% .035 142.495);--color-warning:oklch(96.798% .211 109.769);--color-warning-content:oklch(19.359% .042 109.769);--color-error:oklch(62.795% .257 29.233);--color-error-content:oklch(12.559% .051 29.233);--radius-selector:0rem;--radius-field:0rem;--radius-box:0rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=luxury]:checked),[data-theme=luxury]{color-scheme:dark;--color-base-100:oklch(14.076% .004 285.822);--color-base-200:oklch(20.219% .004 308.229);--color-base-300:oklch(23.219% .004 308.229);--color-base-content:oklch(75.687% .123 76.89);--color-primary:oklch(100% 0 0);--color-primary-content:oklch(20% 0 0);--color-secondary:oklch(27.581% .064 261.069);--color-secondary-content:oklch(85.516% .012 261.069);--color-accent:oklch(36.674% .051 338.825);--color-accent-content:oklch(87.334% .01 338.825);--color-neutral:oklch(24.27% .057 59.825);--color-neutral-content:oklch(93.203% .089 90.861);--color-info:oklch(79.061% .121 237.133);--color-info-content:oklch(15.812% .024 237.133);--color-success:oklch(78.119% .192 132.154);--color-success-content:oklch(15.623% .038 132.154);--color-warning:oklch(86.127% .136 102.891);--color-warning-content:oklch(17.225% .027 102.891);--color-error:oklch(71.753% .176 22.568);--color-error-content:oklch(14.35% .035 22.568);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=dracula]:checked),[data-theme=dracula]{color-scheme:dark;--color-base-100:oklch(28.822% .022 277.508);--color-base-200:oklch(26.805% .02 277.508);--color-base-300:oklch(24.787% .019 277.508);--color-base-content:oklch(97.747% .007 106.545);--color-primary:oklch(75.461% .183 346.812);--color-primary-content:oklch(15.092% .036 346.812);--color-secondary:oklch(74.202% .148 301.883);--color-secondary-content:oklch(14.84% .029 301.883);--color-accent:oklch(83.392% .124 66.558);--color-accent-content:oklch(16.678% .024 66.558);--color-neutral:oklch(39.445% .032 275.524);--color-neutral-content:oklch(87.889% .006 275.524);--color-info:oklch(88.263% .093 212.846);--color-info-content:oklch(17.652% .018 212.846);--color-success:oklch(87.099% .219 148.024);--color-success-content:oklch(17.419% .043 148.024);--color-warning:oklch(95.533% .134 112.757);--color-warning-content:oklch(19.106% .026 112.757);--color-error:oklch(68.22% .206 24.43);--color-error-content:oklch(13.644% .041 24.43);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=cmyk]:checked),[data-theme=cmyk]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(95% 0 0);--color-base-300:oklch(90% 0 0);--color-base-content:oklch(20% 0 0);--color-primary:oklch(71.772% .133 239.443);--color-primary-content:oklch(14.354% .026 239.443);--color-secondary:oklch(64.476% .202 359.339);--color-secondary-content:oklch(12.895% .04 359.339);--color-accent:oklch(94.228% .189 105.306);--color-accent-content:oklch(18.845% .037 105.306);--color-neutral:oklch(21.778% 0 0);--color-neutral-content:oklch(84.355% 0 0);--color-info:oklch(68.475% .094 217.284);--color-info-content:oklch(13.695% .018 217.284);--color-success:oklch(46.949% .162 321.406);--color-success-content:oklch(89.389% .032 321.406);--color-warning:oklch(71.236% .159 52.023);--color-warning-content:oklch(14.247% .031 52.023);--color-error:oklch(62.013% .208 28.717);--color-error-content:oklch(12.402% .041 28.717);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=autumn]:checked),[data-theme=autumn]{color-scheme:light;--color-base-100:oklch(95.814% 0 0);--color-base-200:oklch(89.107% 0 0);--color-base-300:oklch(82.4% 0 0);--color-base-content:oklch(19.162% 0 0);--color-primary:oklch(40.723% .161 17.53);--color-primary-content:oklch(88.144% .032 17.53);--color-secondary:oklch(61.676% .169 23.865);--color-secondary-content:oklch(12.335% .033 23.865);--color-accent:oklch(73.425% .094 60.729);--color-accent-content:oklch(14.685% .018 60.729);--color-neutral:oklch(54.367% .037 51.902);--color-neutral-content:oklch(90.873% .007 51.902);--color-info:oklch(69.224% .097 207.284);--color-info-content:oklch(13.844% .019 207.284);--color-success:oklch(60.995% .08 174.616);--color-success-content:oklch(12.199% .016 174.616);--color-warning:oklch(70.081% .164 56.844);--color-warning-content:oklch(14.016% .032 56.844);--color-error:oklch(53.07% .241 24.16);--color-error-content:oklch(90.614% .048 24.16);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=business]:checked),[data-theme=business]{color-scheme:dark;--color-base-100:oklch(24.353% 0 0);--color-base-200:oklch(22.648% 0 0);--color-base-300:oklch(20.944% 0 0);--color-base-content:oklch(84.87% 0 0);--color-primary:oklch(41.703% .099 251.473);--color-primary-content:oklch(88.34% .019 251.473);--color-secondary:oklch(64.092% .027 229.389);--color-secondary-content:oklch(12.818% .005 229.389);--color-accent:oklch(67.271% .167 35.791);--color-accent-content:oklch(13.454% .033 35.791);--color-neutral:oklch(27.441% .013 253.041);--color-neutral-content:oklch(85.488% .002 253.041);--color-info:oklch(62.616% .143 240.033);--color-info-content:oklch(12.523% .028 240.033);--color-success:oklch(70.226% .094 156.596);--color-success-content:oklch(14.045% .018 156.596);--color-warning:oklch(77.482% .115 81.519);--color-warning-content:oklch(15.496% .023 81.519);--color-error:oklch(51.61% .146 29.674);--color-error-content:oklch(90.322% .029 29.674);--radius-selector:0rem;--radius-field:.25rem;--radius-box:.25rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=acid]:checked),[data-theme=acid]{color-scheme:light;--color-base-100:oklch(98% 0 0);--color-base-200:oklch(95% 0 0);--color-base-300:oklch(91% 0 0);--color-base-content:oklch(0% 0 0);--color-primary:oklch(71.9% .357 330.759);--color-primary-content:oklch(14.38% .071 330.759);--color-secondary:oklch(73.37% .224 48.25);--color-secondary-content:oklch(14.674% .044 48.25);--color-accent:oklch(92.78% .264 122.962);--color-accent-content:oklch(18.556% .052 122.962);--color-neutral:oklch(21.31% .128 278.68);--color-neutral-content:oklch(84.262% .025 278.68);--color-info:oklch(60.72% .227 252.05);--color-info-content:oklch(12.144% .045 252.05);--color-success:oklch(85.72% .266 158.53);--color-success-content:oklch(17.144% .053 158.53);--color-warning:oklch(91.01% .212 100.5);--color-warning-content:oklch(18.202% .042 100.5);--color-error:oklch(64.84% .293 29.349);--color-error-content:oklch(12.968% .058 29.349);--radius-selector:1rem;--radius-field:1rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=lemonade]:checked),[data-theme=lemonade]{color-scheme:light;--color-base-100:oklch(98.71% .02 123.72);--color-base-200:oklch(91.8% .018 123.72);--color-base-300:oklch(84.89% .017 123.72);--color-base-content:oklch(19.742% .004 123.72);--color-primary:oklch(58.92% .199 134.6);--color-primary-content:oklch(11.784% .039 134.6);--color-secondary:oklch(77.75% .196 111.09);--color-secondary-content:oklch(15.55% .039 111.09);--color-accent:oklch(85.39% .201 100.73);--color-accent-content:oklch(17.078% .04 100.73);--color-neutral:oklch(30.98% .075 108.6);--color-neutral-content:oklch(86.196% .015 108.6);--color-info:oklch(86.19% .047 224.14);--color-info-content:oklch(17.238% .009 224.14);--color-success:oklch(86.19% .047 157.85);--color-success-content:oklch(17.238% .009 157.85);--color-warning:oklch(86.19% .047 102.15);--color-warning-content:oklch(17.238% .009 102.15);--color-error:oklch(86.19% .047 25.85);--color-error-content:oklch(17.238% .009 25.85);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=night]:checked),[data-theme=night]{color-scheme:dark;--color-base-100:oklch(20.768% .039 265.754);--color-base-200:oklch(19.314% .037 265.754);--color-base-300:oklch(17.86% .034 265.754);--color-base-content:oklch(84.153% .007 265.754);--color-primary:oklch(75.351% .138 232.661);--color-primary-content:oklch(15.07% .027 232.661);--color-secondary:oklch(68.011% .158 276.934);--color-secondary-content:oklch(13.602% .031 276.934);--color-accent:oklch(72.36% .176 350.048);--color-accent-content:oklch(14.472% .035 350.048);--color-neutral:oklch(27.949% .036 260.03);--color-neutral-content:oklch(85.589% .007 260.03);--color-info:oklch(68.455% .148 237.251);--color-info-content:oklch(0% 0 0);--color-success:oklch(78.452% .132 181.911);--color-success-content:oklch(15.69% .026 181.911);--color-warning:oklch(83.242% .139 82.95);--color-warning-content:oklch(16.648% .027 82.95);--color-error:oklch(71.785% .17 13.118);--color-error-content:oklch(14.357% .034 13.118);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=coffee]:checked),[data-theme=coffee]{color-scheme:dark;--color-base-100:oklch(24% .023 329.708);--color-base-200:oklch(21% .021 329.708);--color-base-300:oklch(16% .019 329.708);--color-base-content:oklch(72.354% .092 79.129);--color-primary:oklch(71.996% .123 62.756);--color-primary-content:oklch(14.399% .024 62.756);--color-secondary:oklch(34.465% .029 199.194);--color-secondary-content:oklch(86.893% .005 199.194);--color-accent:oklch(42.621% .074 224.389);--color-accent-content:oklch(88.524% .014 224.389);--color-neutral:oklch(16.51% .015 326.261);--color-neutral-content:oklch(83.302% .003 326.261);--color-info:oklch(79.49% .063 184.558);--color-info-content:oklch(15.898% .012 184.558);--color-success:oklch(74.722% .072 131.116);--color-success-content:oklch(14.944% .014 131.116);--color-warning:oklch(88.15% .14 87.722);--color-warning-content:oklch(17.63% .028 87.722);--color-error:oklch(77.318% .128 31.871);--color-error-content:oklch(15.463% .025 31.871);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=winter]:checked),[data-theme=winter]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(97.466% .011 259.822);--color-base-300:oklch(93.268% .016 262.751);--color-base-content:oklch(41.886% .053 255.824);--color-primary:oklch(56.86% .255 257.57);--color-primary-content:oklch(91.372% .051 257.57);--color-secondary:oklch(42.551% .161 282.339);--color-secondary-content:oklch(88.51% .032 282.339);--color-accent:oklch(59.939% .191 335.171);--color-accent-content:oklch(11.988% .038 335.171);--color-neutral:oklch(19.616% .063 257.651);--color-neutral-content:oklch(83.923% .012 257.651);--color-info:oklch(88.127% .085 214.515);--color-info-content:oklch(17.625% .017 214.515);--color-success:oklch(80.494% .077 197.823);--color-success-content:oklch(16.098% .015 197.823);--color-warning:oklch(89.172% .045 71.47);--color-warning-content:oklch(17.834% .009 71.47);--color-error:oklch(73.092% .11 20.076);--color-error-content:oklch(14.618% .022 20.076);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=dim]:checked),[data-theme=dim]{color-scheme:dark;--color-base-100:oklch(30.857% .023 264.149);--color-base-200:oklch(28.036% .019 264.182);--color-base-300:oklch(26.346% .018 262.177);--color-base-content:oklch(82.901% .031 222.959);--color-primary:oklch(86.133% .141 139.549);--color-primary-content:oklch(17.226% .028 139.549);--color-secondary:oklch(73.375% .165 35.353);--color-secondary-content:oklch(14.675% .033 35.353);--color-accent:oklch(74.229% .133 311.379);--color-accent-content:oklch(14.845% .026 311.379);--color-neutral:oklch(24.731% .02 264.094);--color-neutral-content:oklch(82.901% .031 222.959);--color-info:oklch(86.078% .142 206.182);--color-info-content:oklch(17.215% .028 206.182);--color-success:oklch(86.171% .142 166.534);--color-success-content:oklch(17.234% .028 166.534);--color-warning:oklch(86.163% .142 94.818);--color-warning-content:oklch(17.232% .028 94.818);--color-error:oklch(82.418% .099 33.756);--color-error-content:oklch(16.483% .019 33.756);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=nord]:checked),[data-theme=nord]{color-scheme:light;--color-base-100:oklch(95.127% .007 260.731);--color-base-200:oklch(93.299% .01 261.788);--color-base-300:oklch(89.925% .016 262.749);--color-base-content:oklch(32.437% .022 264.182);--color-primary:oklch(59.435% .077 254.027);--color-primary-content:oklch(11.887% .015 254.027);--color-secondary:oklch(69.651% .059 248.687);--color-secondary-content:oklch(13.93% .011 248.687);--color-accent:oklch(77.464% .062 217.469);--color-accent-content:oklch(15.492% .012 217.469);--color-neutral:oklch(45.229% .035 264.131);--color-neutral-content:oklch(89.925% .016 262.749);--color-info:oklch(69.207% .062 332.664);--color-info-content:oklch(13.841% .012 332.664);--color-success:oklch(76.827% .074 131.063);--color-success-content:oklch(15.365% .014 131.063);--color-warning:oklch(85.486% .089 84.093);--color-warning-content:oklch(17.097% .017 84.093);--color-error:oklch(60.61% .12 15.341);--color-error-content:oklch(12.122% .024 15.341);--radius-selector:1rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=sunset]:checked),[data-theme=sunset]{color-scheme:dark;--color-base-100:oklch(22% .019 237.69);--color-base-200:oklch(20% .019 237.69);--color-base-300:oklch(18% .019 237.69);--color-base-content:oklch(77.383% .043 245.096);--color-primary:oklch(74.703% .158 39.947);--color-primary-content:oklch(14.94% .031 39.947);--color-secondary:oklch(72.537% .177 2.72);--color-secondary-content:oklch(14.507% .035 2.72);--color-accent:oklch(71.294% .166 299.844);--color-accent-content:oklch(14.258% .033 299.844);--color-neutral:oklch(26% .019 237.69);--color-neutral-content:oklch(70% .019 237.69);--color-info:oklch(85.559% .085 206.015);--color-info-content:oklch(17.111% .017 206.015);--color-success:oklch(85.56% .085 144.778);--color-success-content:oklch(17.112% .017 144.778);--color-warning:oklch(85.569% .084 74.427);--color-warning-content:oklch(17.113% .016 74.427);--color-error:oklch(85.511% .078 16.886);--color-error-content:oklch(17.102% .015 16.886);--radius-selector:1rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=caramellatte]:checked),[data-theme=caramellatte]{color-scheme:light;--color-base-100:oklch(98% .016 73.684);--color-base-200:oklch(95% .038 75.164);--color-base-300:oklch(90% .076 70.697);--color-base-content:oklch(40% .123 38.172);--color-primary:oklch(0% 0 0);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(22.45% .075 37.85);--color-secondary-content:oklch(90% .076 70.697);--color-accent:oklch(46.44% .111 37.85);--color-accent-content:oklch(90% .076 70.697);--color-neutral:oklch(55% .195 38.402);--color-neutral-content:oklch(98% .016 73.684);--color-info:oklch(42% .199 265.638);--color-info-content:oklch(90% .076 70.697);--color-success:oklch(43% .095 166.913);--color-success-content:oklch(90% .076 70.697);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(70% .191 22.216);--color-error-content:oklch(39% .141 25.723);--radius-selector:2rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:2px;--depth:1;--noise:1}:root:has(input.theme-controller[value=abyss]:checked),[data-theme=abyss]{color-scheme:dark;--color-base-100:oklch(20% .08 209);--color-base-200:oklch(15% .08 209);--color-base-300:oklch(10% .08 209);--color-base-content:oklch(90% .076 70.697);--color-primary:oklch(92% .2653 125);--color-primary-content:oklch(50% .2653 125);--color-secondary:oklch(83.27% .0764 298.3);--color-secondary-content:oklch(43.27% .0764 298.3);--color-accent:oklch(43% 0 0);--color-accent-content:oklch(98% 0 0);--color-neutral:oklch(30% .08 209);--color-neutral-content:oklch(90% .076 70.697);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(79% .209 151.711);--color-success-content:oklch(26% .065 152.934);--color-warning:oklch(84.8% .1962 84.62);--color-warning-content:oklch(44.8% .1962 84.62);--color-error:oklch(65% .1985 24.22);--color-error-content:oklch(27% .1985 24.22);--radius-selector:2rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=silk]:checked),[data-theme=silk]{color-scheme:light;--color-base-100:oklch(97% .0035 67.78);--color-base-200:oklch(95% .0081 61.42);--color-base-300:oklch(90% .0081 61.42);--color-base-content:oklch(40% .0081 61.42);--color-primary:oklch(23.27% .0249 284.3);--color-primary-content:oklch(94.22% .2505 117.44);--color-secondary:oklch(23.27% .0249 284.3);--color-secondary-content:oklch(73.92% .2135 50.94);--color-accent:oklch(23.27% .0249 284.3);--color-accent-content:oklch(88.92% .2061 189.9);--color-neutral:oklch(20% 0 0);--color-neutral-content:oklch(80% .0081 61.42);--color-info:oklch(80.39% .1148 241.68);--color-info-content:oklch(30.39% .1148 241.68);--color-success:oklch(83.92% .0901 136.87);--color-success-content:oklch(23.92% .0901 136.87);--color-warning:oklch(83.92% .1085 80);--color-warning-content:oklch(43.92% .1085 80);--color-error:oklch(75.1% .1814 22.37);--color-error-content:oklch(35.1% .1814 22.37);--radius-selector:2rem;--radius-field:.5rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:2px;--depth:1;--noise:0} \ No newline at end of file diff --git a/static/embed.go b/static/embed.go new file mode 100644 index 0000000..668c473 --- /dev/null +++ b/static/embed.go @@ -0,0 +1,8 @@ +package static + +import "embed" + +var ( + //go:embed * + FS embed.FS +) diff --git a/static/img/airlabs.svg b/static/img/airlabs.svg new file mode 100644 index 0000000..dad85db --- /dev/null +++ b/static/img/airlabs.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/js/htmx-ext-preload.min.js b/static/js/htmx-ext-preload.min.js new file mode 100644 index 0000000..6481a25 --- /dev/null +++ b/static/js/htmx-ext-preload.min.js @@ -0,0 +1,8 @@ +/** + * Minified by jsDelivr using Terser v5.37.0. + * Original file: /npm/htmx-ext-preload@2.1.0/preload.js + * + * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files + */ +!function(){function e(n){if(void 0!==n.preloadState)return;if(!function(e){const t=["href","hx-get","data-hx-get"],n=e=>t.some((t=>e.hasAttribute(t)))||"get"===e.method,o=e.form instanceof HTMLFormElement&&n(e.form)&&u(e);if(!n(e)&&!o)return!1;if(e instanceof HTMLInputElement&&e.closest("label"))return!1;return!0}(n))return;if(n instanceof HTMLFormElement){const t=n;if(!(t.hasAttribute("method")&&"get"===t.method||t.hasAttribute("hx-get")||t.hasAttribute("hx-data-get")))return;for(let n=0;n{if(n.selected)return;i.set(u,n.value);const r=o(e.form,i);l(t,e.form,r)}));const s=e.getAttribute("type")||e.control.getAttribute("type"),d=e.value||e.control?.value;if("radio"===s)i.set(u,d);else if("checkbox"===s){const e=i.getAll(u);e.includes(d)?i[u]=e.filter((e=>e!==d)):i.append(u,d)}const f=o(e.form,i);l(t,e.form,f)}else;}function o(e,t){const n=e.elements,o=new FormData;for(let e=0;e=0)){return r}else{return null}}if(o&&(o==="*"||o.split(" ").indexOf(n)>=0)){return"unset"}}return r}function ne(t,n){let r=null;q(t,function(e){return!!(r=o(t,ce(e),n))});if(r!=="unset"){return r}}function h(e,t){return e instanceof Element&&e.matches(t)}function A(e){const t=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i;const n=t.exec(e);if(n){return n[1].toLowerCase()}else{return""}}function L(e){const t=new DOMParser;return t.parseFromString(e,"text/html")}function N(e,t){while(t.childNodes.length>0){e.append(t.childNodes[0])}}function r(e){const t=te().createElement("script");ie(e.attributes,function(e){t.setAttribute(e.name,e.value)});t.textContent=e.textContent;t.async=false;if(Q.config.inlineScriptNonce){t.nonce=Q.config.inlineScriptNonce}return t}function i(e){return e.matches("script")&&(e.type==="text/javascript"||e.type==="module"||e.type==="")}function I(e){Array.from(e.querySelectorAll("script")).forEach(e=>{if(i(e)){const t=r(e);const n=e.parentNode;try{n.insertBefore(t,e)}catch(e){R(e)}finally{e.remove()}}})}function P(e){const t=e.replace(/]*)?>[\s\S]*?<\/head>/i,"");const n=A(t);let r;if(n==="html"){r=new DocumentFragment;const i=L(e);N(r,i.body);r.title=i.title}else if(n==="body"){r=new DocumentFragment;const i=L(t);N(r,i.body);r.title=i.title}else{const i=L('");r=i.querySelector("template").content;r.title=i.title;var o=r.querySelector("title");if(o&&o.parentNode===r){o.remove();r.title=o.innerText}}if(r){if(Q.config.allowScriptTags){I(r)}else{r.querySelectorAll("script").forEach(e=>e.remove())}}return r}function re(e){if(e){e()}}function t(e,t){return Object.prototype.toString.call(e)==="[object "+t+"]"}function D(e){return typeof e==="function"}function k(e){return t(e,"Object")}function oe(e){const t="htmx-internal-data";let n=e[t];if(!n){n=e[t]={}}return n}function M(t){const n=[];if(t){for(let e=0;e=0}function se(e){return e.getRootNode({composed:true})===document}function X(e){return e.trim().split(/\s+/)}function le(e,t){for(const n in t){if(t.hasOwnProperty(n)){e[n]=t[n]}}return e}function v(e){try{return JSON.parse(e)}catch(e){R(e);return null}}function B(){const e="htmx:sessionStorageTest";try{sessionStorage.setItem(e,e);sessionStorage.removeItem(e);return true}catch(e){return false}}function U(e){const t=new URL(e,"http://x");if(t){e=t.pathname+t.search}if(e!="/"){e=e.replace(/\/+$/,"")}return e}function e(e){return On(te().body,function(){return eval(e)})}function j(t){const e=Q.on("htmx:load",function(e){t(e.detail.elt)});return e}function V(){Q.logger=function(e,t,n){if(console){console.log(t,e,n)}}}function _(){Q.logger=null}function f(e,t){if(typeof e!=="string"){return e.querySelector(t)}else{return f(te(),e)}}function x(e,t){if(typeof e!=="string"){return e.querySelectorAll(t)}else{return x(te(),e)}}function b(){return window}function z(e,t){e=w(e);if(t){b().setTimeout(function(){z(e);e=null},t)}else{u(e).removeChild(e)}}function ce(e){return e instanceof Element?e:null}function $(e){return e instanceof HTMLElement?e:null}function J(e){return typeof e==="string"?e:null}function p(e){return e instanceof Element||e instanceof Document||e instanceof DocumentFragment?e:null}function K(e,t,n){e=ce(w(e));if(!e){return}if(n){b().setTimeout(function(){K(e,t);e=null},n)}else{e.classList&&e.classList.add(t)}}function G(e,t,n){let r=ce(w(e));if(!r){return}if(n){b().setTimeout(function(){G(r,t);r=null},n)}else{if(r.classList){r.classList.remove(t);if(r.classList.length===0){r.removeAttribute("class")}}}}function W(e,t){e=w(e);e.classList.toggle(t)}function Z(e,t){e=w(e);ie(e.parentElement.children,function(e){G(e,t)});K(ce(e),t)}function g(e,t){e=ce(w(e));if(e){return e.closest(t)}return null}function l(e,t){return e.substring(0,t.length)===t}function Y(e,t){return e.substring(e.length-t.length)===t}function pe(e){const t=e.trim();if(l(t,"<")&&Y(t,"/>")){return t.substring(1,t.length-2)}else{return t}}function m(t,r,n){if(r.indexOf("global ")===0){return m(t,r.slice(7),true)}t=w(t);const o=[];{let t=0;let n=0;for(let e=0;e"){t--}}if(n0){const r=pe(o.shift());let e;if(r.indexOf("closest ")===0){e=g(ce(t),pe(r.slice(8)))}else if(r.indexOf("find ")===0){e=f(p(t),pe(r.slice(5)))}else if(r==="next"||r==="nextElementSibling"){e=ce(t).nextElementSibling}else if(r.indexOf("next ")===0){e=ge(t,pe(r.slice(5)),!!n)}else if(r==="previous"||r==="previousElementSibling"){e=ce(t).previousElementSibling}else if(r.indexOf("previous ")===0){e=me(t,pe(r.slice(9)),!!n)}else if(r==="document"){e=document}else if(r==="window"){e=window}else if(r==="body"){e=document.body}else if(r==="root"){e=y(t,!!n)}else if(r==="host"){e=t.getRootNode().host}else{s.push(r)}if(e){i.push(e)}}if(s.length>0){const e=s.join(",");const c=p(y(t,!!n));i.push(...M(c.querySelectorAll(e)))}return i}var ge=function(t,e,n){const r=p(y(t,n)).querySelectorAll(e);for(let e=0;e=0;e--){const o=r[e];if(o.compareDocumentPosition(t)===Node.DOCUMENT_POSITION_FOLLOWING){return o}}};function ue(e,t){if(typeof e!=="string"){return m(e,t)[0]}else{return m(te().body,e)[0]}}function w(e,t){if(typeof e==="string"){return f(p(t)||document,e)}else{return e}}function ye(e,t,n,r){if(D(t)){return{target:te().body,event:J(e),listener:t,options:n}}else{return{target:w(e),event:J(t),listener:n,options:r}}}function xe(t,n,r,o){Gn(function(){const e=ye(t,n,r,o);e.target.addEventListener(e.event,e.listener,e.options)});const e=D(n);return e?n:r}function be(t,n,r){Gn(function(){const e=ye(t,n,r);e.target.removeEventListener(e.event,e.listener)});return D(n)?n:r}const ve=te().createElement("output");function we(t,n){const e=ne(t,n);if(e){if(e==="this"){return[Se(t,n)]}else{const r=m(t,e);const o=/(^|,)(\s*)inherit(\s*)($|,)/.test(e);if(o){const i=ce(q(t,function(e){return e!==t&&s(ce(e),n)}));if(i){r.push(...we(i,n))}}if(r.length===0){R('The selector "'+e+'" on '+n+" returned no matches!");return[ve]}else{return r}}}}function Se(e,t){return ce(q(e,function(e){return a(ce(e),t)!=null}))}function Ee(e){const t=ne(e,"hx-target");if(t){if(t==="this"){return Se(e,"hx-target")}else{return ue(e,t)}}else{const n=oe(e);if(n.boosted){return te().body}else{return e}}}function Ce(e){return Q.config.attributesToSettle.includes(e)}function Oe(t,n){ie(t.attributes,function(e){if(!n.hasAttribute(e.name)&&Ce(e.name)){t.removeAttribute(e.name)}});ie(n.attributes,function(e){if(Ce(e.name)){t.setAttribute(e.name,e.value)}})}function Re(t,e){const n=Jn(e);for(let e=0;e0){s=e.substring(0,e.indexOf(":"));n=e.substring(e.indexOf(":")+1)}else{s=e}o.removeAttribute("hx-swap-oob");o.removeAttribute("data-hx-swap-oob");const r=m(t,n,false);if(r.length){ie(r,function(e){let t;const n=o.cloneNode(true);t=te().createDocumentFragment();t.appendChild(n);if(!Re(s,e)){t=p(n)}const r={shouldSwap:true,target:e,fragment:t};if(!ae(e,"htmx:oobBeforeSwap",r))return;e=r.target;if(r.shouldSwap){qe(t);_e(s,e,e,t,i);Te()}ie(i.elts,function(e){ae(e,"htmx:oobAfterSwap",r)})});o.parentNode.removeChild(o)}else{o.parentNode.removeChild(o);fe(te().body,"htmx:oobErrorNoTarget",{content:o})}return e}function Te(){const e=f("#--htmx-preserve-pantry--");if(e){for(const t of[...e.children]){const n=f("#"+t.id);n.parentNode.moveBefore(t,n);n.remove()}e.remove()}}function qe(e){ie(x(e,"[hx-preserve], [data-hx-preserve]"),function(e){const t=a(e,"id");const n=te().getElementById(t);if(n!=null){if(e.moveBefore){let e=f("#--htmx-preserve-pantry--");if(e==null){te().body.insertAdjacentHTML("afterend","
    ");e=f("#--htmx-preserve-pantry--")}e.moveBefore(n,null)}else{e.parentNode.replaceChild(n,e)}}})}function Ae(l,e,c){ie(e.querySelectorAll("[id]"),function(t){const n=ee(t,"id");if(n&&n.length>0){const r=n.replace("'","\\'");const o=t.tagName.replace(":","\\:");const e=p(l);const i=e&&e.querySelector(o+"[id='"+r+"']");if(i&&i!==e){const s=t.cloneNode();Oe(t,i);c.tasks.push(function(){Oe(t,s)})}}})}function Le(e){return function(){G(e,Q.config.addedClass);Ft(ce(e));Ne(p(e));ae(e,"htmx:load")}}function Ne(e){const t="[autofocus]";const n=$(h(e,t)?e:e.querySelector(t));if(n!=null){n.focus()}}function c(e,t,n,r){Ae(e,n,r);while(n.childNodes.length>0){const o=n.firstChild;K(ce(o),Q.config.addedClass);e.insertBefore(o,t);if(o.nodeType!==Node.TEXT_NODE&&o.nodeType!==Node.COMMENT_NODE){r.tasks.push(Le(o))}}}function Ie(e,t){let n=0;while(n0}function $e(h,d,p,g){if(!g){g={}}let m=null;let n=null;let e=function(){re(g.beforeSwapCallback);h=w(h);const r=g.contextElement?y(g.contextElement,false):te();const e=document.activeElement;let t={};t={elt:e,start:e?e.selectionStart:null,end:e?e.selectionEnd:null};const o=Sn(h);if(p.swapStyle==="textContent"){h.textContent=d}else{let n=P(d);o.title=g.title||n.title;if(g.historyRequest){n=n.querySelector("[hx-history-elt],[data-hx-history-elt]")||n}if(g.selectOOB){const i=g.selectOOB.split(",");for(let t=0;t0){b().setTimeout(n,p.settleDelay)}else{n()}};let t=Q.config.globalViewTransitions;if(p.hasOwnProperty("transition")){t=p.transition}const r=g.contextElement||te();if(t&&ae(r,"htmx:beforeTransition",g.eventInfo)&&typeof Promise!=="undefined"&&document.startViewTransition){const o=new Promise(function(e,t){m=e;n=t});const i=e;e=function(){document.startViewTransition(function(){i();return o})}}try{if(p?.swapDelay&&p.swapDelay>0){b().setTimeout(e,p.swapDelay)}else{e()}}catch(e){fe(r,"htmx:swapError",g.eventInfo);re(n);throw e}}function Je(e,t,n){const r=e.getResponseHeader(t);if(r.indexOf("{")===0){const o=v(r);for(const i in o){if(o.hasOwnProperty(i)){let e=o[i];if(k(e)){n=e.target!==undefined?e.target:n}else{e={value:e}}ae(n,i,e)}}}else{const s=r.split(",");for(let e=0;e0){const s=o[0];if(s==="]"){e--;if(e===0){if(n===null){t=t+"true"}o.shift();t+=")})";try{const l=On(r,function(){return Function(t)()},function(){return true});l.source=t;return l}catch(e){fe(te().body,"htmx:syntax:error",{error:e,source:t});return null}}}else if(s==="["){e++}if(tt(s,n,i)){t+="(("+i+"."+s+") ? ("+i+"."+s+") : (window."+s+"))"}else{t=t+s}n=o.shift()}}}function O(e,t){let n="";while(e.length>0&&!t.test(e[0])){n+=e.shift()}return n}function rt(e){let t;if(e.length>0&&Ye.test(e[0])){e.shift();t=O(e,Qe).trim();e.shift()}else{t=O(e,E)}return t}const ot="input, textarea, select";function it(e,t,n){const r=[];const o=et(t);do{O(o,C);const l=o.length;const c=O(o,/[,\[\s]/);if(c!==""){if(c==="every"){const u={trigger:"every"};O(o,C);u.pollInterval=d(O(o,/[,\[\s]/));O(o,C);var i=nt(e,o,"event");if(i){u.eventFilter=i}r.push(u)}else{const f={trigger:c};var i=nt(e,o,"event");if(i){f.eventFilter=i}O(o,C);while(o.length>0&&o[0]!==","){const a=o.shift();if(a==="changed"){f.changed=true}else if(a==="once"){f.once=true}else if(a==="consume"){f.consume=true}else if(a==="delay"&&o[0]===":"){o.shift();f.delay=d(O(o,E))}else if(a==="from"&&o[0]===":"){o.shift();if(Ye.test(o[0])){var s=rt(o)}else{var s=O(o,E);if(s==="closest"||s==="find"||s==="next"||s==="previous"){o.shift();const h=rt(o);if(h.length>0){s+=" "+h}}}f.from=s}else if(a==="target"&&o[0]===":"){o.shift();f.target=rt(o)}else if(a==="throttle"&&o[0]===":"){o.shift();f.throttle=d(O(o,E))}else if(a==="queue"&&o[0]===":"){o.shift();f.queue=O(o,E)}else if(a==="root"&&o[0]===":"){o.shift();f[a]=rt(o)}else if(a==="threshold"&&o[0]===":"){o.shift();f[a]=O(o,E)}else{fe(e,"htmx:syntax:error",{token:o.shift()})}O(o,C)}r.push(f)}}if(o.length===l){fe(e,"htmx:syntax:error",{token:o.shift()})}O(o,C)}while(o[0]===","&&o.shift());if(n){n[t]=r}return r}function st(e){const t=a(e,"hx-trigger");let n=[];if(t){const r=Q.config.triggerSpecsCache;n=r&&r[t]||it(e,t,r)}if(n.length>0){return n}else if(h(e,"form")){return[{trigger:"submit"}]}else if(h(e,'input[type="button"], input[type="submit"]')){return[{trigger:"click"}]}else if(h(e,ot)){return[{trigger:"change"}]}else{return[{trigger:"click"}]}}function lt(e){oe(e).cancelled=true}function ct(e,t,n){const r=oe(e);r.timeout=b().setTimeout(function(){if(se(e)&&r.cancelled!==true){if(!pt(n,e,Bt("hx:poll:trigger",{triggerSpec:n,target:e}))){t(e)}ct(e,t,n)}},n.pollInterval)}function ut(e){return location.hostname===e.hostname&&ee(e,"href")&&ee(e,"href").indexOf("#")!==0}function ft(e){return g(e,Q.config.disableSelector)}function at(t,n,e){if(t instanceof HTMLAnchorElement&&ut(t)&&(t.target===""||t.target==="_self")||t.tagName==="FORM"&&String(ee(t,"method")).toLowerCase()!=="dialog"){n.boosted=true;let r,o;if(t.tagName==="A"){r="get";o=ee(t,"href")}else{const i=ee(t,"method");r=i?i.toLowerCase():"get";o=ee(t,"action");if(o==null||o===""){o=location.href}if(r==="get"&&o.includes("?")){o=o.replace(/\?[^#]+/,"")}}e.forEach(function(e){gt(t,function(e,t){const n=ce(e);if(ft(n)){S(n);return}he(r,o,n,t)},n,e,true)})}}function ht(e,t){if(e.type==="submit"||e.type==="click"){t=ce(e.target)||t;if(t.tagName==="FORM"){return true}if(t.form&&t.type==="submit"){return true}t=t.closest("a");if(t&&t.href&&(t.getAttribute("href")==="#"||t.getAttribute("href").indexOf("#")!==0)){return true}}return false}function dt(e,t){return oe(e).boosted&&e instanceof HTMLAnchorElement&&t.type==="click"&&(t.ctrlKey||t.metaKey)}function pt(e,t,n){const r=e.eventFilter;if(r){try{return r.call(t,n)!==true}catch(e){const o=r.source;fe(te().body,"htmx:eventFilter:error",{error:e,source:o});return true}}return false}function gt(l,c,e,u,f){const a=oe(l);let t;if(u.from){t=m(l,u.from)}else{t=[l]}if(u.changed){if(!("lastValue"in a)){a.lastValue=new WeakMap}t.forEach(function(e){if(!a.lastValue.has(u)){a.lastValue.set(u,new WeakMap)}a.lastValue.get(u).set(e,e.value)})}ie(t,function(i){const s=function(e){if(!se(l)){i.removeEventListener(u.trigger,s);return}if(dt(l,e)){return}if(f||ht(e,l)){e.preventDefault()}if(pt(u,l,e)){return}const t=oe(e);t.triggerSpec=u;if(t.handledFor==null){t.handledFor=[]}if(t.handledFor.indexOf(l)<0){t.handledFor.push(l);if(u.consume){e.stopPropagation()}if(u.target&&e.target){if(!h(ce(e.target),u.target)){return}}if(u.once){if(a.triggeredOnce){return}else{a.triggeredOnce=true}}if(u.changed){const n=e.target;const r=n.value;const o=a.lastValue.get(u);if(o.has(n)&&o.get(n)===r){return}o.set(n,r)}if(a.delayed){clearTimeout(a.delayed)}if(a.throttle){return}if(u.throttle>0){if(!a.throttle){ae(l,"htmx:trigger");c(l,e);a.throttle=b().setTimeout(function(){a.throttle=null},u.throttle)}}else if(u.delay>0){a.delayed=b().setTimeout(function(){ae(l,"htmx:trigger");c(l,e)},u.delay)}else{ae(l,"htmx:trigger");c(l,e)}}};if(e.listenerInfos==null){e.listenerInfos=[]}e.listenerInfos.push({trigger:u.trigger,listener:s,on:i});i.addEventListener(u.trigger,s)})}let mt=false;let yt=null;function xt(){if(!yt){yt=function(){mt=true};window.addEventListener("scroll",yt);window.addEventListener("resize",yt);setInterval(function(){if(mt){mt=false;ie(te().querySelectorAll("[hx-trigger*='revealed'],[data-hx-trigger*='revealed']"),function(e){bt(e)})}},200)}}function bt(e){if(!s(e,"data-hx-revealed")&&F(e)){e.setAttribute("data-hx-revealed","true");const t=oe(e);if(t.initHash){ae(e,"revealed")}else{e.addEventListener("htmx:afterProcessNode",function(){ae(e,"revealed")},{once:true})}}}function vt(e,t,n,r){const o=function(){if(!n.loaded){n.loaded=true;ae(e,"htmx:trigger");t(e)}};if(r>0){b().setTimeout(o,r)}else{o()}}function wt(t,n,e){let i=false;ie(de,function(r){if(s(t,"hx-"+r)){const o=a(t,"hx-"+r);i=true;n.path=o;n.verb=r;e.forEach(function(e){St(t,e,n,function(e,t){const n=ce(e);if(ft(n)){S(n);return}he(r,o,n,t)})})}});return i}function St(r,e,t,n){if(e.trigger==="revealed"){xt();gt(r,n,t,e);bt(ce(r))}else if(e.trigger==="intersect"){const o={};if(e.root){o.root=ue(r,e.root)}if(e.threshold){o.threshold=parseFloat(e.threshold)}const i=new IntersectionObserver(function(t){for(let e=0;e0){t.polling=true;ct(ce(r),n,e)}else{gt(r,n,t,e)}}function Et(e){const t=ce(e);if(!t){return false}const n=t.attributes;for(let e=0;e", "+e).join(""));return o}else{return[]}}function Tt(e){const t=At(e.target);const n=Nt(e);if(n){n.lastButtonClicked=t}}function qt(e){const t=Nt(e);if(t){t.lastButtonClicked=null}}function At(e){return g(ce(e),"button, input[type='submit']")}function Lt(e){return e.form||g(e,"form")}function Nt(e){const t=At(e.target);if(!t){return}const n=Lt(t);return oe(n)}function It(e){e.addEventListener("click",Tt);e.addEventListener("focusin",Tt);e.addEventListener("focusout",qt)}function Pt(t,e,n){const r=oe(t);if(!Array.isArray(r.onHandlers)){r.onHandlers=[]}let o;const i=function(e){On(t,function(){if(ft(t)){return}if(!o){o=new Function("event",n)}o.call(t,e)})};t.addEventListener(e,i);r.onHandlers.push({event:e,listener:i})}function Dt(t){De(t);for(let e=0;eQ.config.historyCacheSize){i.shift()}while(i.length>0){try{sessionStorage.setItem("htmx-history-cache",JSON.stringify(i));break}catch(e){fe(te().body,"htmx:historyCacheError",{cause:e,cache:i});i.shift()}}}function Jt(t){if(!B()){return null}t=U(t);const n=v(sessionStorage.getItem("htmx-history-cache"))||[];for(let e=0;e=200&&this.status<400){r.response=this.response;ae(te().body,"htmx:historyCacheMissLoad",r);$e(r.historyElt,r.response,n,{contextElement:r.historyElt,historyRequest:true});_t(r.path);ae(te().body,"htmx:historyRestore",{path:e,cacheMiss:true,serverResponse:r.response})}else{fe(te().body,"htmx:historyCacheMissLoadError",r)}};if(ae(te().body,"htmx:historyCacheMiss",r)){t.send()}}function en(e){Gt();e=e||location.pathname+location.search;const t=Jt(e);if(t){const n={swapStyle:"innerHTML",swapDelay:0,settleDelay:0,scroll:t.scroll};const r={path:e,item:t,historyElt:zt(),swapSpec:n};if(ae(te().body,"htmx:historyCacheHit",r)){$e(r.historyElt,t.content,n,{contextElement:r.historyElt,title:t.title});_t(r.path);ae(te().body,"htmx:historyRestore",r)}}else{if(Q.config.refreshOnHistoryMiss){Q.location.reload(true)}else{Qt(e)}}}function tn(e){let t=we(e,"hx-indicator");if(t==null){t=[e]}ie(t,function(e){const t=oe(e);t.requestCount=(t.requestCount||0)+1;e.classList.add.call(e.classList,Q.config.requestClass)});return t}function nn(e){let t=we(e,"hx-disabled-elt");if(t==null){t=[]}ie(t,function(e){const t=oe(e);t.requestCount=(t.requestCount||0)+1;e.setAttribute("disabled","");e.setAttribute("data-disabled-by-htmx","")});return t}function rn(e,t){ie(e.concat(t),function(e){const t=oe(e);t.requestCount=(t.requestCount||1)-1});ie(e,function(e){const t=oe(e);if(t.requestCount===0){e.classList.remove.call(e.classList,Q.config.requestClass)}});ie(t,function(e){const t=oe(e);if(t.requestCount===0){e.removeAttribute("disabled");e.removeAttribute("data-disabled-by-htmx")}})}function on(t,n){for(let e=0;en.indexOf(e)<0)}else{e=e.filter(e=>e!==n)}r.delete(t);ie(e,e=>r.append(t,e))}}function un(e){if(e instanceof HTMLSelectElement&&e.multiple){return M(e.querySelectorAll("option:checked")).map(function(e){return e.value})}if(e instanceof HTMLInputElement&&e.files){return M(e.files)}return e.value}function fn(t,n,r,e,o){if(e==null||on(t,e)){return}else{t.push(e)}if(sn(e)){const i=ee(e,"name");ln(i,un(e),n);if(o){an(e,r)}}if(e instanceof HTMLFormElement){ie(e.elements,function(e){if(t.indexOf(e)>=0){cn(e.name,un(e),n)}else{t.push(e)}if(o){an(e,r)}});new FormData(e).forEach(function(e,t){if(e instanceof File&&e.name===""){return}ln(t,e,n)})}}function an(e,t){const n=e;if(n.willValidate){ae(n,"htmx:validation:validate");if(!n.checkValidity()){t.push({elt:n,message:n.validationMessage,validity:n.validity});ae(n,"htmx:validation:failed",{message:n.validationMessage,validity:n.validity})}}}function hn(n,e){for(const t of e.keys()){n.delete(t)}e.forEach(function(e,t){n.append(t,e)});return n}function dn(e,t){const n=[];const r=new FormData;const o=new FormData;const i=[];const s=oe(e);if(s.lastButtonClicked&&!se(s.lastButtonClicked)){s.lastButtonClicked=null}let l=e instanceof HTMLFormElement&&e.noValidate!==true||a(e,"hx-validate")==="true";if(s.lastButtonClicked){l=l&&s.lastButtonClicked.formNoValidate!==true}if(t!=="get"){fn(n,o,i,Lt(e),l)}fn(n,r,i,e,l);if(s.lastButtonClicked||e.tagName==="BUTTON"||e.tagName==="INPUT"&&ee(e,"type")==="submit"){const u=s.lastButtonClicked||e;const f=ee(u,"name");ln(f,u.value,o)}const c=we(e,"hx-include");ie(c,function(e){fn(n,r,i,ce(e),l);if(!h(e,"form")){ie(p(e).querySelectorAll(ot),function(e){fn(n,r,i,e,l)})}});hn(r,o);return{errors:i,formData:r,values:kn(r)}}function pn(e,t,n){if(e!==""){e+="&"}if(String(n)==="[object Object]"){n=JSON.stringify(n)}const r=encodeURIComponent(n);e+=encodeURIComponent(t)+"="+r;return e}function gn(e){e=Pn(e);let n="";e.forEach(function(e,t){n=pn(n,t,e)});return n}function mn(e,t,n){const r={"HX-Request":"true","HX-Trigger":ee(e,"id"),"HX-Trigger-Name":ee(e,"name"),"HX-Target":a(t,"id"),"HX-Current-URL":location.href};Cn(e,"hx-headers",false,r);if(n!==undefined){r["HX-Prompt"]=n}if(oe(e).boosted){r["HX-Boosted"]="true"}return r}function yn(n,e){const t=ne(e,"hx-params");if(t){if(t==="none"){return new FormData}else if(t==="*"){return n}else if(t.indexOf("not ")===0){ie(t.slice(4).split(","),function(e){e=e.trim();n.delete(e)});return n}else{const r=new FormData;ie(t.split(","),function(t){t=t.trim();if(n.has(t)){n.getAll(t).forEach(function(e){r.append(t,e)})}});return r}}else{return n}}function xn(e){return!!ee(e,"href")&&ee(e,"href").indexOf("#")>=0}function bn(e,t){const n=t||ne(e,"hx-swap");const r={swapStyle:oe(e).boosted?"innerHTML":Q.config.defaultSwapStyle,swapDelay:Q.config.defaultSwapDelay,settleDelay:Q.config.defaultSettleDelay};if(Q.config.scrollIntoViewOnBoost&&oe(e).boosted&&!xn(e)){r.show="top"}if(n){const s=X(n);if(s.length>0){for(let e=0;e0?o.join(":"):null;r.scroll=u;r.scrollTarget=i}else if(l.indexOf("show:")===0){const f=l.slice(5);var o=f.split(":");const a=o.pop();var i=o.length>0?o.join(":"):null;r.show=a;r.showTarget=i}else if(l.indexOf("focus-scroll:")===0){const h=l.slice("focus-scroll:".length);r.focusScroll=h=="true"}else if(e==0){r.swapStyle=l}else{R("Unknown modifier in hx-swap: "+l)}}}}return r}function vn(e){return ne(e,"hx-encoding")==="multipart/form-data"||h(e,"form")&&ee(e,"enctype")==="multipart/form-data"}function wn(t,n,r){let o=null;jt(n,function(e){if(o==null){o=e.encodeParameters(t,r,n)}});if(o!=null){return o}else{if(vn(n)){return hn(new FormData,Pn(r))}else{return gn(r)}}}function Sn(e){return{tasks:[],elts:[e]}}function En(e,t){const n=e[0];const r=e[e.length-1];if(t.scroll){var o=null;if(t.scrollTarget){o=ce(ue(n,t.scrollTarget))}if(t.scroll==="top"&&(n||o)){o=o||n;o.scrollTop=0}if(t.scroll==="bottom"&&(r||o)){o=o||r;o.scrollTop=o.scrollHeight}if(typeof t.scroll==="number"){b().setTimeout(function(){window.scrollTo(0,t.scroll)},0)}}if(t.show){var o=null;if(t.showTarget){let e=t.showTarget;if(t.showTarget==="window"){e="body"}o=ce(ue(n,e))}if(t.show==="top"&&(n||o)){o=o||n;o.scrollIntoView({block:"start",behavior:Q.config.scrollBehavior})}if(t.show==="bottom"&&(r||o)){o=o||r;o.scrollIntoView({block:"end",behavior:Q.config.scrollBehavior})}}}function Cn(r,e,o,i,s){if(i==null){i={}}if(r==null){return i}const l=a(r,e);if(l){let e=l.trim();let t=o;if(e==="unset"){return null}if(e.indexOf("javascript:")===0){e=e.slice(11);t=true}else if(e.indexOf("js:")===0){e=e.slice(3);t=true}if(e.indexOf("{")!==0){e="{"+e+"}"}let n;if(t){n=On(r,function(){if(s){return Function("event","return ("+e+")").call(r,s)}else{return Function("return ("+e+")").call(r)}},{})}else{n=v(e)}for(const c in n){if(n.hasOwnProperty(c)){if(i[c]==null){i[c]=n[c]}}}}return Cn(ce(u(r)),e,o,i,s)}function On(e,t,n){if(Q.config.allowEval){return t()}else{fe(e,"htmx:evalDisallowedError");return n}}function Rn(e,t,n){return Cn(e,"hx-vars",true,n,t)}function Hn(e,t,n){return Cn(e,"hx-vals",false,n,t)}function Tn(e,t){return le(Rn(e,t),Hn(e,t))}function qn(t,n,r){if(r!==null){try{t.setRequestHeader(n,r)}catch(e){t.setRequestHeader(n,encodeURIComponent(r));t.setRequestHeader(n+"-URI-AutoEncoded","true")}}}function An(t){if(t.responseURL){try{const e=new URL(t.responseURL);return e.pathname+e.search}catch(e){fe(te().body,"htmx:badResponseUrl",{url:t.responseURL})}}}function H(e,t){return t.test(e.getAllResponseHeaders())}function Ln(t,n,r){t=t.toLowerCase();if(r){if(r instanceof Element||typeof r==="string"){return he(t,n,null,null,{targetOverride:w(r)||ve,returnPromise:true})}else{let e=w(r.target);if(r.target&&!e||r.source&&!e&&!w(r.source)){e=ve}return he(t,n,w(r.source),r.event,{handler:r.handler,headers:r.headers,values:r.values,targetOverride:e,swapOverride:r.swap,select:r.select,returnPromise:true})}}else{return he(t,n,null,null,{returnPromise:true})}}function Nn(e){const t=[];while(e){t.push(e);e=e.parentElement}return t}function In(e,t,n){const r=new URL(t,location.protocol!=="about:"?location.href:window.origin);const o=location.protocol!=="about:"?location.origin:window.origin;const i=o===r.origin;if(Q.config.selfRequestsOnly){if(!i){return false}}return ae(e,"htmx:validateUrl",le({url:r,sameHost:i},n))}function Pn(e){if(e instanceof FormData)return e;const t=new FormData;for(const n in e){if(e.hasOwnProperty(n)){if(e[n]&&typeof e[n].forEach==="function"){e[n].forEach(function(e){t.append(n,e)})}else if(typeof e[n]==="object"&&!(e[n]instanceof Blob)){t.append(n,JSON.stringify(e[n]))}else{t.append(n,e[n])}}}return t}function Dn(r,o,e){return new Proxy(e,{get:function(t,e){if(typeof e==="number")return t[e];if(e==="length")return t.length;if(e==="push"){return function(e){t.push(e);r.append(o,e)}}if(typeof t[e]==="function"){return function(){t[e].apply(t,arguments);r.delete(o);t.forEach(function(e){r.append(o,e)})}}if(t[e]&&t[e].length===1){return t[e][0]}else{return t[e]}},set:function(e,t,n){e[t]=n;r.delete(o);e.forEach(function(e){r.append(o,e)});return true}})}function kn(o){return new Proxy(o,{get:function(e,t){if(typeof t==="symbol"){const r=Reflect.get(e,t);if(typeof r==="function"){return function(){return r.apply(o,arguments)}}else{return r}}if(t==="toJSON"){return()=>Object.fromEntries(o)}if(t in e){if(typeof e[t]==="function"){return function(){return o[t].apply(o,arguments)}}}const n=o.getAll(t);if(n.length===0){return undefined}else if(n.length===1){return n[0]}else{return Dn(e,t,n)}},set:function(t,n,e){if(typeof n!=="string"){return false}t.delete(n);if(e&&typeof e.forEach==="function"){e.forEach(function(e){t.append(n,e)})}else if(typeof e==="object"&&!(e instanceof Blob)){t.append(n,JSON.stringify(e))}else{t.append(n,e)}return true},deleteProperty:function(e,t){if(typeof t==="string"){e.delete(t)}return true},ownKeys:function(e){return Reflect.ownKeys(Object.fromEntries(e))},getOwnPropertyDescriptor:function(e,t){return Reflect.getOwnPropertyDescriptor(Object.fromEntries(e),t)}})}function he(t,n,r,o,i,k){let s=null;let l=null;i=i!=null?i:{};if(i.returnPromise&&typeof Promise!=="undefined"){var e=new Promise(function(e,t){s=e;l=t})}if(r==null){r=te().body}const M=i.handler||jn;const F=i.select||null;if(!se(r)){re(s);return e}const c=i.targetOverride||ce(Ee(r));if(c==null||c==ve){fe(r,"htmx:targetError",{target:ne(r,"hx-target")});re(l);return e}let u=oe(r);const f=u.lastButtonClicked;if(f){const A=ee(f,"formaction");if(A!=null){n=A}const L=ee(f,"formmethod");if(L!=null){if(de.includes(L.toLowerCase())){t=L}else{re(s);return e}}}const a=ne(r,"hx-confirm");if(k===undefined){const K=function(e){return he(t,n,r,o,i,!!e)};const G={target:c,elt:r,path:n,verb:t,triggeringEvent:o,etc:i,issueRequest:K,question:a};if(ae(r,"htmx:confirm",G)===false){re(s);return e}}let h=r;let d=ne(r,"hx-sync");let p=null;let X=false;if(d){const N=d.split(":");const I=N[0].trim();if(I==="this"){h=Se(r,"hx-sync")}else{h=ce(ue(r,I))}d=(N[1]||"drop").trim();u=oe(h);if(d==="drop"&&u.xhr&&u.abortable!==true){re(s);return e}else if(d==="abort"){if(u.xhr){re(s);return e}else{X=true}}else if(d==="replace"){ae(h,"htmx:abort")}else if(d.indexOf("queue")===0){const W=d.split(" ");p=(W[1]||"last").trim()}}if(u.xhr){if(u.abortable){ae(h,"htmx:abort")}else{if(p==null){if(o){const P=oe(o);if(P&&P.triggerSpec&&P.triggerSpec.queue){p=P.triggerSpec.queue}}if(p==null){p="last"}}if(u.queuedRequests==null){u.queuedRequests=[]}if(p==="first"&&u.queuedRequests.length===0){u.queuedRequests.push(function(){he(t,n,r,o,i)})}else if(p==="all"){u.queuedRequests.push(function(){he(t,n,r,o,i)})}else if(p==="last"){u.queuedRequests=[];u.queuedRequests.push(function(){he(t,n,r,o,i)})}re(s);return e}}const g=new XMLHttpRequest;u.xhr=g;u.abortable=X;const m=function(){u.xhr=null;u.abortable=false;if(u.queuedRequests!=null&&u.queuedRequests.length>0){const e=u.queuedRequests.shift();e()}};const B=ne(r,"hx-prompt");if(B){var y=prompt(B);if(y===null||!ae(r,"htmx:prompt",{prompt:y,target:c})){re(s);m();return e}}if(a&&!k){if(!confirm(a)){re(s);m();return e}}let x=mn(r,c,y);if(t!=="get"&&!vn(r)){x["Content-Type"]="application/x-www-form-urlencoded"}if(i.headers){x=le(x,i.headers)}const U=dn(r,t);let b=U.errors;const j=U.formData;if(i.values){hn(j,Pn(i.values))}const V=Pn(Tn(r,o));const v=hn(j,V);let w=yn(v,r);if(Q.config.getCacheBusterParam&&t==="get"){w.set("org.htmx.cache-buster",ee(c,"id")||"true")}if(n==null||n===""){n=location.href}const S=Cn(r,"hx-request");const _=oe(r).boosted;let E=Q.config.methodsThatUseUrlParams.indexOf(t)>=0;const C={boosted:_,useUrlParams:E,formData:w,parameters:kn(w),unfilteredFormData:v,unfilteredParameters:kn(v),headers:x,elt:r,target:c,verb:t,errors:b,withCredentials:i.credentials||S.credentials||Q.config.withCredentials,timeout:i.timeout||S.timeout||Q.config.timeout,path:n,triggeringEvent:o};if(!ae(r,"htmx:configRequest",C)){re(s);m();return e}n=C.path;t=C.verb;x=C.headers;w=Pn(C.parameters);b=C.errors;E=C.useUrlParams;if(b&&b.length>0){ae(r,"htmx:validation:halted",C);re(s);m();return e}const z=n.split("#");const $=z[0];const O=z[1];let R=n;if(E){R=$;const Z=!w.keys().next().done;if(Z){if(R.indexOf("?")<0){R+="?"}else{R+="&"}R+=gn(w);if(O){R+="#"+O}}}if(!In(r,R,C)){fe(r,"htmx:invalidPath",C);re(l);m();return e}g.open(t.toUpperCase(),R,true);g.overrideMimeType("text/html");g.withCredentials=C.withCredentials;g.timeout=C.timeout;if(S.noHeaders){}else{for(const D in x){if(x.hasOwnProperty(D)){const Y=x[D];qn(g,D,Y)}}}const H={xhr:g,target:c,requestConfig:C,etc:i,boosted:_,select:F,pathInfo:{requestPath:n,finalRequestPath:R,responsePath:null,anchor:O}};g.onload=function(){try{const t=Nn(r);H.pathInfo.responsePath=An(g);M(r,H);if(H.keepIndicators!==true){rn(T,q)}ae(r,"htmx:afterRequest",H);ae(r,"htmx:afterOnLoad",H);if(!se(r)){let e=null;while(t.length>0&&e==null){const n=t.shift();if(se(n)){e=n}}if(e){ae(e,"htmx:afterRequest",H);ae(e,"htmx:afterOnLoad",H)}}re(s)}catch(e){fe(r,"htmx:onLoadError",le({error:e},H));throw e}finally{m()}};g.onerror=function(){rn(T,q);fe(r,"htmx:afterRequest",H);fe(r,"htmx:sendError",H);re(l);m()};g.onabort=function(){rn(T,q);fe(r,"htmx:afterRequest",H);fe(r,"htmx:sendAbort",H);re(l);m()};g.ontimeout=function(){rn(T,q);fe(r,"htmx:afterRequest",H);fe(r,"htmx:timeout",H);re(l);m()};if(!ae(r,"htmx:beforeRequest",H)){re(s);m();return e}var T=tn(r);var q=nn(r);ie(["loadstart","loadend","progress","abort"],function(t){ie([g,g.upload],function(e){e.addEventListener(t,function(e){ae(r,"htmx:xhr:"+t,{lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total})})})});ae(r,"htmx:beforeSend",H);const J=E?null:wn(g,r,w);g.send(J);return e}function Mn(e,t){const n=t.xhr;let r=null;let o=null;if(H(n,/HX-Push:/i)){r=n.getResponseHeader("HX-Push");o="push"}else if(H(n,/HX-Push-Url:/i)){r=n.getResponseHeader("HX-Push-Url");o="push"}else if(H(n,/HX-Replace-Url:/i)){r=n.getResponseHeader("HX-Replace-Url");o="replace"}if(r){if(r==="false"){return{}}else{return{type:o,path:r}}}const i=t.pathInfo.finalRequestPath;const s=t.pathInfo.responsePath;const l=ne(e,"hx-push-url");const c=ne(e,"hx-replace-url");const u=oe(e).boosted;let f=null;let a=null;if(l){f="push";a=l}else if(c){f="replace";a=c}else if(u){f="push";a=s||i}if(a){if(a==="false"){return{}}if(a==="true"){a=s||i}if(t.pathInfo.anchor&&a.indexOf("#")===-1){a=a+"#"+t.pathInfo.anchor}return{type:f,path:a}}else{return{}}}function Fn(e,t){var n=new RegExp(e.code);return n.test(t.toString(10))}function Xn(e){for(var t=0;t ."+Q.config.indicatorClass+"{opacity:0} ."+Q.config.requestClass+" ."+Q.config.indicatorClass+"{opacity:1; transition: opacity 200ms ease-in;} ."+Q.config.requestClass+"."+Q.config.indicatorClass+"{opacity:1; transition: opacity 200ms ease-in;} ")}}function Zn(){const e=te().querySelector('meta[name="htmx-config"]');if(e){return v(e.content)}else{return null}}function Yn(){const e=Zn();if(e){Q.config=le(Q.config,e)}}Gn(function(){Yn();Wn();let e=te().body;Ft(e);const t=te().querySelectorAll("[hx-trigger='restored'],[data-hx-trigger='restored']");e.addEventListener("htmx:abort",function(e){const t=e.target;const n=oe(t);if(n&&n.xhr){n.xhr.abort()}});const n=window.onpopstate?window.onpopstate.bind(window):null;window.onpopstate=function(e){if(e.state&&e.state.htmx){en();ie(t,function(e){ae(e,"htmx:restored",{document:te(),triggerEvent:ae})})}else{if(n){n(e)}}};b().setTimeout(function(){ae(e,"htmx:load",{});e=null},0)});return Q}(); \ No newline at end of file diff --git a/static/js/main.js b/static/js/main.js new file mode 100644 index 0000000..21e5c74 --- /dev/null +++ b/static/js/main.js @@ -0,0 +1,6 @@ +document.body.addEventListener('htmx:beforeSwap', function (evt) { + if (evt.detail.xhr.status === 400) { + evt.detail.shouldSwap = true; + evt.detail.isError = false; + } +}); \ No newline at end of file diff --git a/static/js/tailwind.min.js b/static/js/tailwind.min.js new file mode 100644 index 0000000..77608b0 --- /dev/null +++ b/static/js/tailwind.min.js @@ -0,0 +1,8 @@ +/** + * Minified by jsDelivr using Terser v5.39.0. + * Original file: /npm/@tailwindcss/browser@4.1.11/dist/index.global.js + * + * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files + */ +"use strict";(()=>{var e=10;function t(t,i){let a=i?.from?{file:i.from,code:t}:null;"\ufeff"===t[0]&&(t=" "+t.slice(1));let l,s=[],c=[],u=[],d=null,f=null,p="",h="",m=0;for(let i=0;i0&&t[n]===e[e.length-1]&&(e=e.slice(0,-1))}}let u=n(p,c);if(!u)throw new Error("Invalid custom property, expected a value");a&&(u.src=[a,r,i],u.dst=[a,r,i]),d?d.nodes.push(u):s.push(u),p=""}else if(59===g&&64===p.charCodeAt(0))f=r(p),a&&(f.src=[a,m,i],f.dst=[a,m,i]),d?d.nodes.push(f):s.push(f),p="",f=null;else if(59===g&&")"!==h[h.length-1]){let e=n(p);if(!e)throw 0===p.length?new Error("Unexpected semicolon"):new Error(`Invalid declaration: \`${p.trim()}\``);a&&(e.src=[a,m,i],e.dst=[a,m,i]),d?d.nodes.push(e):s.push(e),p=""}else if(123===g&&")"!==h[h.length-1])h+="}",f=y(p.trim()),a&&(f.src=[a,m,i],f.dst=[a,m,i]),d&&d.nodes.push(f),u.push(d),d=f,p="",f=null;else if(125===g&&")"!==h[h.length-1]){if(""===h)throw new Error("Missing opening {");if(h=h.slice(0,-1),p.length>0)if(64===p.charCodeAt(0))f=r(p),a&&(f.src=[a,m,i],f.dst=[a,m,i]),d?d.nodes.push(f):s.push(f),p="",f=null;else{let e=p.indexOf(":");if(d){let t=n(p,e);if(!t)throw new Error(`Invalid declaration: \`${p.trim()}\``);a&&(t.src=[a,m,i],t.dst=[a,m,i]),d.nodes.push(t)}}let e=u.pop()??null;null===e&&d&&s.push(d),d=e,p="",f=null}else if(40===g)h+=")",p+="(";else if(41===g){if(")"!==h[h.length-1])throw new Error("Missing opening (");h=h.slice(0,-1),p+=")"}else{if(0===p.length&&(32===g||g===e||9===g))continue;""===p&&(m=i),p+=String.fromCharCode(g)}}}if(64===p.charCodeAt(0)){let e=r(p);a&&(e.src=[a,m,t.length],e.dst=[a,m,t.length]),s.push(e)}if(h.length>0&&d){if("rule"===d.kind)throw new Error(`Missing closing } at ${d.selector}`);if("at-rule"===d.kind)throw new Error(`Missing closing } at ${d.name} ${d.params}`)}return c.length>0?c.concat(s):s}function r(e,t=[]){let r=e,n="";for(let t=5;t=1&&t<=31||127===t||0===o&&t>=48&&t<=57||1===o&&t>=48&&t<=57&&45===a?"\\"+t.toString(16)+" ":t>=128||45===t||95===t||t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122?r.charAt(o):"\\"+r.charAt(o):"�";return i}function a(e){return e.replace(/\\([\dA-Fa-f]{1,6}[\t\n\f\r ]?|[\S\s])/g,(e=>e.length>2?String.fromCodePoint(Number.parseInt(e.slice(1).trim(),16)):e[1]))}var l=new Map([["--font",["--font-weight","--font-size"]],["--inset",["--inset-shadow","--inset-ring"]],["--text",["--text-color","--text-decoration-color","--text-decoration-thickness","--text-indent","--text-shadow","--text-underline-offset"]]]);function s(e,t){return(l.get(t)??[]).some((t=>e===t||e.startsWith(`${t}-`)))}var c=class{constructor(e=new Map,t=new Set([])){this.values=e,this.keyframes=t}prefix=null;get size(){return this.values.size}add(e,t,r=0,n){if(e.endsWith("-*")){if("initial"!==t)throw new Error(`Invalid theme value \`${t}\` for namespace \`${e}\``);"--*"===e?this.values.clear():this.clearNamespace(e.slice(0,-2),0)}if(4&r){let t=this.values.get(e);if(t&&!(4&t.options))return}"initial"===t?this.values.delete(e):this.values.set(e,{value:t,options:r,src:n})}keysInNamespaces(e){let t=[];for(let r of e){let e=`${r}-`;for(let n of this.values.keys())n.startsWith(e)&&-1===n.indexOf("--",2)&&(s(n,r)||t.push(n.slice(e.length)))}return t}get(e){for(let t of e){let e=this.values.get(t);if(e)return e.value}return null}hasDefault(e){return!(4&~this.getOptions(e))}getOptions(e){return e=a(this.#e(e)),this.values.get(e)?.options??0}entries(){return this.prefix?Array.from(this.values,(e=>(e[0]=this.prefixKey(e[0]),e))):this.values.entries()}prefixKey(e){return this.prefix?`--${this.prefix}-${e.slice(2)}`:e}#e(e){return this.prefix?`--${e.slice(3+this.prefix.length)}`:e}clearNamespace(e,t){let r=l.get(e)??[];e:for(let n of this.values.keys())if(n.startsWith(e)){if(0!==t&&(this.getOptions(n)&t)!==t)continue;for(let e of r)if(n.startsWith(e))continue e;this.values.delete(n)}}#t(e,t){for(let r of t){let t=null!==e?`${r}-${e}`:r;if(!this.values.has(t)){if(null===e||!e.includes("."))continue;if(t=`${r}-${e.replaceAll(".","_")}`,!this.values.has(t))continue}if(!s(t,r))return t}return null}#r(e){let t=this.values.get(e);if(!t)return null;let r=null;return 2&t.options&&(r=t.value),`var(${i(this.prefixKey(e))}${r?`, ${r}`:""})`}markUsedVariable(e){let t=a(this.#e(e)),r=this.values.get(t);if(!r)return!1;let n=16&r.options;return r.options|=16,!n}resolve(e,t,r=0){let n=this.#t(e,t);if(!n)return null;let o=this.values.get(n);return 1&(r|o.options)?o.value:this.#r(n)}resolveValue(e,t){let r=this.#t(e,t);return r?this.values.get(r).value:null}resolveWith(e,t,r=[]){let n=this.#t(e,t);if(!n)return null;let o={};for(let e of r){let t=`${n}${e}`,r=this.values.get(t);r&&(1&r.options?o[e]=r.value:o[e]=this.#r(t))}let i=this.values.get(n);return 1&i.options?[i.value,o]:[this.#r(n),o]}namespace(e){let t=new Map,r=`${e}-`;for(let[n,o]of this.values)n===e?t.set(null,o.value):n.startsWith(`${r}-`)?t.set(n.slice(e.length),o.value):n.startsWith(r)&&t.set(n.slice(r.length),o.value);return t}addKeyframes(e){this.keyframes.add(e)}getKeyframes(){return Array.from(this.keyframes)}},u=class extends Map{constructor(e){super(),this.factory=e}get(e){let t=super.get(e);return void 0===t&&(t=this.factory(e,this),this.set(e,t)),t}};function d(e){return{kind:"word",value:e}}function f(e,t){return{kind:"function",value:e,nodes:t}}function p(e){return{kind:"separator",value:e}}function h(e,t,r=null){for(let n=0;n0){let e=d(i);o?o.nodes.push(e):r.push(e),i=""}let n=a,l=a+1;for(;l0){let t=d(i);e?.nodes.push(t),i=""}o=n.length>0?n[n.length-1]:null;break}default:i+=String.fromCharCode(l)}}return i.length>0&&r.push(d(i)),r}function v(e){let t=[];return h(g(e),(e=>{if("function"===e.kind&&"var"===e.value)return h(e.nodes,(e=>{"word"!==e.kind||"-"!==e.value[0]||"-"!==e.value[1]||t.push(e.value)})),1})),t}var w=64;function k(e,t=[]){return{kind:"rule",selector:e,nodes:t}}function b(e,t="",r=[]){return{kind:"at-rule",name:e,params:t,nodes:r}}function y(e,t=[]){return e.charCodeAt(0)===w?r(e,t):k(e,t)}function x(e,t,r=!1){return{kind:"declaration",property:e,value:t,important:r}}function $(e){return{kind:"comment",value:e}}function A(e,t){return{kind:"context",context:e,nodes:t}}function z(e){return{kind:"at-root",nodes:e}}function C(e,t,r=[],n={}){for(let o=0;onew Set)),a=new u((()=>new Set)),l=new Set,s=new Set,c=[],d=[],f=new u((()=>new Set));function p(e,u,h={},m=0){if("declaration"===e.kind){if("--tw-sort"===e.property||void 0===e.value||null===e.value)return;if(h.theme&&"-"===e.property[0]&&"-"===e.property[1]){if("initial"===e.value)return void(e.value=void 0);h.keyframes||i.get(u).add(e)}if(e.value.includes("var("))if(h.theme&&"-"===e.property[0]&&"-"===e.property[1])for(let t of v(e.value))f.get(t).add(e.property);else t.trackUsedVariables(e.value);if("animation"===e.property)for(let t of V(e.value))s.add(t);2&r&&e.value.includes("color-mix(")&&a.get(u).add(e),u.push(e)}else if("rule"===e.kind)if("&"===e.selector)for(let t of e.nodes){let e=[];p(t,e,h,m+1),e.length>0&&u.push(...e)}else{let t={...e,nodes:[]};for(let r of e.nodes)p(r,t.nodes,h,m+1);t.nodes.length>0&&u.push(t)}else if("at-rule"===e.kind&&"@property"===e.name&&0===m){if(o.has(e.params))return;if(1&r){let t=e.params,r=null,n=!1;for(let t of e.nodes)"declaration"===t.kind&&("initial-value"===t.property?r=t.value:"inherits"===t.property&&(n="true"===t.value));let o=x(t,r??"initial");o.src=e.src,n?c.push(o):d.push(o)}o.add(e.params);let t={...e,nodes:[]};for(let r of e.nodes)p(r,t.nodes,h,m+1);u.push(t)}else if("at-rule"===e.kind){"@keyframes"===e.name&&(h={...h,keyframes:!0});let t={...e,nodes:[]};for(let r of e.nodes)p(r,t.nodes,h,m+1);"@keyframes"===e.name&&h.theme&&l.add(t),(t.nodes.length>0||"@layer"===t.name||"@charset"===t.name||"@custom-media"===t.name||"@namespace"===t.name||"@import"===t.name)&&u.push(t)}else if("at-root"===e.kind)for(let t of e.nodes){let e=[];p(t,e,h,0);for(let t of e)n.push(t)}else if("context"===e.kind){if(e.context.reference)return;for(let t of e.nodes)p(t,u,{...h,...e.context},m)}else"comment"===e.kind&&u.push(e)}let w=[];for(let t of e)p(t,w,{},0);e:for(let[e,r]of i)for(let n of r){if(E(n.property,t.theme,f)){if(n.property.startsWith(t.theme.prefixKey("--animate-")))for(let e of V(n.value))s.add(e);continue}let r=e.indexOf(n);if(e.splice(r,1),0===e.length){let t=K(w,(t=>"rule"===t.kind&&t.nodes===e));if(!t||0===t.length)continue e;for(t.unshift({kind:"at-root",nodes:w});;){let e=t.pop();if(!e)break;let r=t[t.length-1];if(!r||"at-root"!==r.kind&&"at-rule"!==r.kind)break;let n=r.nodes.indexOf(e);if(-1===n)break;r.nodes.splice(n,1)}continue e}}for(let e of l)if(!s.has(e.params)){let t=n.indexOf(e);n.splice(t,1)}if(w=w.concat(n),2&r)for(let[e,r]of a)for(let n of r){let r=e.indexOf(n);if(-1===r||null==n.value)continue;let o=g(n.value),i=!1;if(h(o,((e,{replaceWith:r})=>{if("function"!==e.kind||"color-mix"!==e.value)return;let n=!1,o=!1;if(h(e.nodes,((e,{replaceWith:r})=>{if("word"==e.kind&&"currentcolor"===e.value.toLowerCase())return o=!0,void(i=!0);let a=e,l=null,s=new Set;do{if("function"!==a.kind||"var"!==a.value)return;let e=a.nodes[0];if(!e||"word"!==e.kind)return;let r=e.value;if(s.has(r))return void(n=!0);if(s.add(r),i=!0,l=t.theme.resolveValue(null,[e.value]),!l)return void(n=!0);if("currentcolor"===l.toLowerCase())return void(o=!0);a=l.startsWith("var(")?g(l)[0]:null}while(a);r({kind:"word",value:l})})),n||o){let t=e.nodes.findIndex((e=>"separator"===e.kind&&e.value.trim().includes(",")));if(-1===t)return;let n=e.nodes.length>t?e.nodes[t+1]:null;if(!n)return;r(n)}else if(i){let t=e.nodes[2];"word"===t.kind&&("oklab"===t.value||"oklch"===t.value||"lab"===t.value||"lch"===t.value)&&(t.value="srgb")}})),!i)continue;let a={...n,value:m(o)},l=y("@supports (color: color-mix(in lab, red, red))",[n]);l.src=n.src,e.splice(r,1,a,l)}if(1&r){let e=[];if(c.length>0){let t=y(":root, :host",c);t.src=c[0].src,e.push(t)}if(d.length>0){let t=y("*, ::before, ::after, ::backdrop",d);t.src=d[0].src,e.push(t)}if(e.length>0){let t=w.findIndex((e=>!("comment"===e.kind||"at-rule"===e.kind&&("@charset"===e.name||"@import"===e.name)))),r=b("@layer","properties",[]);r.src=e[0].src,w.splice(t<0?w.length:t,0,r);let n=y("@layer properties",[b("@supports","((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b))))",e)]);n.src=e[0].src,n.nodes[0].src=e[0].src,w.push(n)}}return w}function S(e,t){let r=0,n={file:null,code:""};function o(e,i=0){let a="",l=" ".repeat(i);if("declaration"===e.kind){if(a+=`${l}${e.property}: ${e.value}${e.important?" !important":""};\n`,t){r+=l.length;let t=r;r+=e.property.length,r+=2,r+=e.value?.length??0,e.important&&(r+=11);let o=r;r+=2,e.dst=[n,t,o]}}else if("rule"===e.kind){if(a+=`${l}${e.selector} {\n`,t){r+=l.length;let t=r;r+=e.selector.length,r+=1;let o=r;e.dst=[n,t,o],r+=2}for(let t of e.nodes)a+=o(t,i+1);a+=`${l}}\n`,t&&(r+=l.length,r+=2)}else if("at-rule"===e.kind){if(0===e.nodes.length){let o=`${l}${e.name} ${e.params};\n`;if(t){r+=l.length;let t=r;r+=e.name.length,r+=1,r+=e.params.length;let o=r;r+=2,e.dst=[n,t,o]}return o}if(a+=`${l}${e.name}${e.params?` ${e.params} `:" "}{\n`,t){r+=l.length;let t=r;r+=e.name.length,e.params&&(r+=1,r+=e.params.length),r+=1;let o=r;e.dst=[n,t,o],r+=2}for(let t of e.nodes)a+=o(t,i+1);a+=`${l}}\n`,t&&(r+=l.length,r+=2)}else if("comment"===e.kind){if(a+=`${l}/*${e.value}*/\n`,t){r+=l.length;let t=r;r+=2+e.value.length+2;let o=r;e.dst=[n,t,o],r+=1}}else if("context"===e.kind||"at-root"===e.kind)return"";return a}let i="";for(let t of e)i+=o(t,0);return n.code=i,i}function K(e,t){let r=[];return C(e,((e,{path:n})=>{if(t(e))return r=[...n],2})),r}function E(e,t,r,n=new Set){if(n.has(e)||(n.add(e),24&t.getOptions(e)))return!0;{let o=r.get(e)??[];for(let e of o)if(E(e,t,r,n))return!0}return!1}function V(e){return e.split(/[\s,]+/)}var N=["calc","min","max","clamp","mod","rem","sin","cos","tan","asin","acos","atan","atan2","pow","sqrt","hypot","log","exp","round"];function O(e){return-1!==e.indexOf("(")&&N.some((t=>e.includes(`${t}(`)))}function F(e){if(-1===e.indexOf("("))return W(e);let t=g(e);return U(t),e=function(e){if(!N.some((t=>e.includes(t))))return e;let t="",r=[],n=null,o=null;for(let i=0;i=48&&a<=57||null!==n&&(37===a||a>=97&&a<=122||a>=65&&a<=90)?n=i:(o=n,n=null),40!==a)if(41===a)t+=e[i],r.shift();else{if(44===a&&r[0]){t+=", ";continue}if(32===a&&r[0]&&32===t.charCodeAt(t.length-1))continue;if(43!==a&&42!==a&&47!==a&&45!==a||!r[0])t+=e[i];else{let r=t.trimEnd(),n=r.charCodeAt(r.length-1),a=r.charCodeAt(r.length-2),l=e.charCodeAt(i+1);if((101===n||69===n)&&a>=48&&a<=57){t+=e[i];continue}if(43===n||42===n||47===n||45===n){t+=e[i];continue}if(40===n||44===n){t+=e[i];continue}32===e.charCodeAt(i-1)?t+=`${e[i]} `:t+=n>=48&&n<=57||l>=48&&l<=57||41===n||40===l||43===l||42===l||47===l||45===l||null!==o&&o===i-1?` ${e[i]} `:e[i]}}else{t+=e[i];let n=i;for(let t=i-1;t>=0;t--){let r=e.charCodeAt(t);if(r>=48&&r<=57)n=t;else{if(!(r>=97&&r<=122))break;n=t}}let o=e.slice(n,i);if(N.includes(o)){r.unshift(!0);continue}if(r[0]&&""===o){r.unshift(!0);continue}r.unshift(!1)}}return t}(e=m(t)),e}function W(e,t=!1){let r="";for(let n=0;n0&&o===_[t-1]&&t--;break;case 59:if(0===t)return!1}}return!0}var B=new Uint8Array(256);function L(e,t){let r=0,n=[],o=0,i=e.length,a=t.charCodeAt(0);for(let t=0;t0&&l===B[r-1]&&r--}else n.push(e.slice(o,t)),o=t+1}return n.push(e.slice(o)),n}function I(e){if("["===e[0]&&"]"===e[e.length-1]){let t=F(e.slice(1,-1));return M(t)&&0!==t.length&&0!==t.trim().length?{kind:"arbitrary",value:t}:null}return"("===e[0]&&")"===e[e.length-1]?"-"===(e=e.slice(1,-1))[0]&&"-"===e[1]&&M(e)?{kind:"arbitrary",value:F(e=`var(${e})`)}:null:{kind:"named",value:e}}function*R(e,t){t(e)&&(yield[e,null]);let r=e.lastIndexOf("-");for(;r>0;){let n=e.slice(0,r);if(t(n)){let t=[n,e.slice(r+1)];if(""===t[1])break;yield t}r=e.lastIndexOf("-",r-1)}"@"===e[0]&&t("@")&&(yield["@",e.slice(1)])}function P(e){if(null===e)return"";let t=X(e.value),r=t?e.value.slice(4,-1):e.value,[n,o]=t?["(",")"]:["[","]"];return"arbitrary"===e.kind?`/${n}${Z(r)}${o}`:"named"===e.kind?`/${e.value}`:""}function q(e){if("static"===e.kind)return e.root;if("arbitrary"===e.kind)return`[${Z(function(e){return Y.get(e)}(e.selector))}]`;let t="";if("functional"===e.kind){t+=e.root;let r="@"!==e.root;if(e.value)if("arbitrary"===e.value.kind){let n=X(e.value.value),o=n?e.value.value.slice(4,-1):e.value.value,[i,a]=n?["(",")"]:["[","]"];t+=`${r?"-":""}${i}${Z(o)}${a}`}else"named"===e.value.kind&&(t+=`${r?"-":""}${e.value.value}`)}return"compound"===e.kind&&(t+=e.root,t+="-",t+=q(e.variant)),("functional"===e.kind||"compound"===e.kind)&&(t+=P(e.modifier)),t}var H=new u((e=>{let t=g(e),r=new Set;return h(t,((e,{parent:n})=>{let o=null===n?t:n.nodes??[];if("word"!==e.kind||"+"!==e.value&&"-"!==e.value&&"*"!==e.value&&"/"!==e.value)"separator"===e.kind&&"/"===e.value.trim()?e.value="/":"separator"===e.kind&&e.value.length>0&&""===e.value.trim()?(o[0]===e||o[o.length-1]===e)&&r.add(e):"separator"===e.kind&&","===e.value.trim()&&(e.value=",");else{let t=o.indexOf(e)??-1;if(-1===t)return;let n=o[t-1];if("separator"!==n?.kind||" "!==n.value)return;let i=o[t+1];if("separator"!==i?.kind||" "!==i.value)return;r.add(n),r.add(i)}})),r.size>0&&h(t,((e,{replaceWith:t})=>{r.has(e)&&(r.delete(e),t([]))})),G(t),m(t)}));function Z(e){return H.get(e)}var Y=new u((e=>{let t=g(e);return 3===t.length&&"word"===t[0].kind&&"&"===t[0].value&&"separator"===t[1].kind&&":"===t[1].value&&"function"===t[2].kind&&"is"===t[2].value?m(t[2].nodes):e}));function G(e){for(let t of e)switch(t.kind){case"function":if("url"===t.value||t.value.endsWith("_url")){t.value=ee(t.value);break}if("var"===t.value||t.value.endsWith("_var")||"theme"===t.value||t.value.endsWith("_theme")){t.value=ee(t.value);for(let e=0;e{let t=g(e);return 1===t.length&&"function"===t[0].kind&&"var"===t[0].value}));function X(e){return J.get(e)}function Q(e){throw new Error(`Unexpected value: ${e}`)}function ee(e){return e.replaceAll("_",String.raw`\_`).replaceAll(" ","_")}function te(e,t,r){if(e===t)return 0;let n=e.indexOf("("),o=t.indexOf("("),i=-1===n?e.replace(/[\d.]+/g,""):e.slice(0,n),a=-1===o?t.replace(/[\d.]+/g,""):t.slice(0,o),l=(i===a?0:i0},"bg-size":function(e){let t=0;for(let r of L(e,",")){if("cover"===r||"contain"===r){t+=1;continue}let e=L(r," ");if(1!==e.length&&2!==e.length)return!1;e.every((e=>"auto"===e||ve(e)||he(e)))&&(t+=1)}return t>0},"line-width":function(e){return L(e," ").every((e=>ve(e)||fe(e)||"thin"===e||"medium"===e||"thick"===e))},image:function(e){let t=0;for(let r of L(e,","))if(!r.startsWith("var(")){if(le(r)){t+=1;continue}if(ce.test(r)){t+=1;continue}if(se.test(r)){t+=1;continue}return!1}return t>0},"family-name":function(e){let t=0;for(let r of L(e,",")){let e=r.charCodeAt(0);if(e>=48&&e<=57)return!1;r.startsWith("var(")||(t+=1)}return t>0},"generic-name":function(e){return"serif"===e||"sans-serif"===e||"monospace"===e||"cursive"===e||"fantasy"===e||"system-ui"===e||"ui-serif"===e||"ui-sans-serif"===e||"ui-monospace"===e||"ui-rounded"===e||"math"===e||"emoji"===e||"fangsong"===e},"absolute-size":function(e){return"xx-small"===e||"x-small"===e||"small"===e||"medium"===e||"large"===e||"x-large"===e||"xx-large"===e||"xxx-large"===e},"relative-size":function(e){return"larger"===e||"smaller"===e},angle:function(e){return we.test(e)},vector:function(e){return ke.test(e)}};function ie(e,t){if(e.startsWith("var("))return null;for(let r of t)if(oe[r]?.(e))return r;return null}var ae=/^url\(.*\)$/;function le(e){return ae.test(e)}var se=/^(?:element|image|cross-fade|image-set)\(/,ce=/^(repeating-)?(conic|linear|radial)-gradient\(/;var ue=/[+-]?\d*\.?\d+(?:[eE][+-]?\d+)?/,de=new RegExp(`^${ue.source}$`);function fe(e){return de.test(e)||O(e)}var pe=new RegExp(`^${ue.source}%$`);function he(e){return pe.test(e)||O(e)}var me=new RegExp(`^${ue.source}s*/s*${ue.source}$`);var ge=new RegExp(`^${ue.source}(${["cm","mm","Q","in","pc","pt","px","em","ex","ch","rem","lh","rlh","vw","vh","vmin","vmax","vb","vi","svw","svh","lvw","lvh","dvw","dvh","cqw","cqh","cqi","cqb","cqmin","cqmax"].join("|")})$`);function ve(e){return ge.test(e)||O(e)}var we=new RegExp(`^${ue.source}(${["deg","rad","grad","turn"].join("|")})$`);var ke=new RegExp(`^${ue.source} +${ue.source} +${ue.source}$`);function be(e){let t=Number(e);return Number.isInteger(t)&&t>=0&&String(t)===String(e)}function ye(e){let t=Number(e);return Number.isInteger(t)&&t>0&&String(t)===String(e)}function xe(e){return Ae(e,.25)}function $e(e){return Ae(e,.25)}function Ae(e,t){let r=Number(e);return r>=0&&r%t==0&&String(r)===String(e)}var ze=new Set(["inset","inherit","initial","revert","unset"]),Ce=/^-?(\d+|\.\d+)(.*?)$/g;function je(e,t){return L(e,",").map((e=>{let r=L(e=e.trim()," ").filter((e=>""!==e.trim())),n=null,o=null,i=null;for(let e of r)ze.has(e)||(Ce.test(e)?(null===o?o=e:null===i&&(i=e),Ce.lastIndex=0):null===n&&(n=e));if(null===o||null===i)return e;let a=t(n??"currentcolor");return null!==n?e.replace(n,a):`${e} ${a}`})).join(", ")}var Te=/^-?[a-z][a-zA-Z0-9/%._-]*$/,Se=/^-?[a-z][a-zA-Z0-9/%._-]*-\*$/,Ke=["0","0.5","1","1.5","2","2.5","3","3.5","4","5","6","7","8","9","10","11","12","14","16","20","24","28","32","36","40","44","48","52","56","60","64","72","80","96"],Ee=class{utilities=new u((()=>[]));completions=new Map;static(e,t){this.utilities.get(e).push({kind:"static",compileFn:t})}functional(e,t,r){this.utilities.get(e).push({kind:"functional",compileFn:t,options:r})}has(e,t){return this.utilities.has(e)&&this.utilities.get(e).some((e=>e.kind===t))}get(e){return this.utilities.has(e)?this.utilities.get(e):[]}getCompletions(e){return this.completions.get(e)?.()??[]}suggest(e,t){this.completions.set(e,t)}keys(e){let t=[];for(let[r,n]of this.utilities.entries())for(let o of n)if(o.kind===e){t.push(r);break}return t}};function Ve(e,t,r){return b("@property",e,[x("syntax",r?`"${r}"`:'"*"'),x("inherits","false"),...t?[x("initial-value",t)]:[]])}function Ne(e,t){if(null===t)return e;let r=Number(t);return Number.isNaN(r)||(t=100*r+"%"),"100%"===t?e:`color-mix(in oklab, ${e} ${t}, transparent)`}function Oe(e,t){let r=Number(t);return Number.isNaN(r)||(t=100*r+"%"),`oklab(from ${e} l a b / ${t})`}function Fe(e,t,r){if(!t)return e;if("arbitrary"===t.kind)return Ne(e,t.value);let n=r.resolve(t.value,["--opacity"]);return n?Ne(e,n):$e(t.value)?Ne(e,`${t.value}%`):null}function We(e,t,r){let n=null;switch(e.value.value){case"inherit":n="inherit";break;case"transparent":n="transparent";break;case"current":n="currentcolor";break;default:n=t.resolve(e.value.value,r)}return n?Fe(n,e.modifier,t):null}var Ue=/(\d+)_(\d+)/g;var De=["number","integer","ratio","percentage"];function _e(e,t,r){for(let n of t.nodes){if("named"===e.kind&&"word"===n.kind&&("'"===n.value[0]||'"'===n.value[0])&&n.value[n.value.length-1]===n.value[0]&&n.value.slice(1,-1)===e.value)return{nodes:g(e.value)};if("named"===e.kind&&"word"===n.kind&&"-"===n.value[0]&&"-"===n.value[1]){let t=n.value;if(t.endsWith("-*")){t=t.slice(0,-2);let n=r.theme.resolve(e.value,[t]);if(n)return{nodes:g(n)}}else{let n=t.split("-*");if(n.length<=1)continue;let o=[n.shift()],i=r.theme.resolveWith(e.value,o,n);if(i){let[,e={}]=i;{let t=e[n.pop()];if(t)return{nodes:g(t)}}}}}else{if("named"===e.kind&&"word"===n.kind){if(!De.includes(n.value))continue;let t="ratio"===n.value&&"fraction"in e?e.fraction:e.value;if(!t)continue;let r=ie(t,[n.value]);if(null===r)continue;if("ratio"===r){let[e,r]=L(t,"/");if(!be(e)||!be(r))continue}else{if("number"===r&&!xe(t))continue;if("percentage"===r&&!be(t.slice(0,-1)))continue}return{nodes:g(t),ratio:"ratio"===r}}if("arbitrary"===e.kind&&"word"===n.kind&&"["===n.value[0]&&"]"===n.value[n.value.length-1]){let t=n.value.slice(1,-1);if("*"===t)return{nodes:g(e.value)};if("dataType"in e&&e.dataType&&e.dataType!==t)continue;if("dataType"in e&&e.dataType)return{nodes:g(e.value)};if(null!==ie(e.value,[t]))return{nodes:g(e.value)}}}}}function Me(e,t,r,n,o=""){let i=!1,a=je(t,(e=>null==r?n(e):e.startsWith("current")?n(Ne(e,r)):((e.startsWith("var(")||r.startsWith("var("))&&(i=!0),n(Oe(e,r)))));function l(e){return o?L(e,",").map((e=>o+e)).join(","):e}return i?[x(e,l(je(t,n))),y("@supports (color: lab(from red l a b))",[x(e,l(a))])]:[x(e,l(a))]}function Be(e,t,r,n,o=""){let i=!1,a=L(t,",").map((e=>je(e,(e=>null==r?n(e):e.startsWith("current")?n(Ne(e,r)):((e.startsWith("var(")||r.startsWith("var("))&&(i=!0),n(Oe(e,r))))))).map((e=>`drop-shadow(${e})`)).join(" ");return i?[x(e,o+L(t,",").map((e=>`drop-shadow(${je(e,n)})`)).join(" ")),y("@supports (color: lab(from red l a b))",[x(e,o+a)])]:[x(e,o+a)]}var Le={"--alpha":function(e,t,r,...n){let[o,i]=L(r,"/").map((e=>e.trim()));if(!o||!i)throw new Error(`The --alpha(…) function requires a color and an alpha value, e.g.: \`--alpha(${o||"var(--my-color)"} / ${i||"50%"})\``);if(n.length>0)throw new Error(`The --alpha(…) function only accepts one argument, e.g.: \`--alpha(${o||"var(--my-color)"} / ${i||"50%"})\``);return Ne(o,i)},"--spacing":function(e,t,r,...n){if(!r)throw new Error("The --spacing(…) function requires an argument, but received none.");if(n.length>0)throw new Error(`The --spacing(…) function only accepts a single argument, but received ${n.length+1}.`);let o=e.theme.resolve(null,["--spacing"]);if(!o)throw new Error("The --spacing(…) function requires that the `--spacing` theme variable exists, but it was not found.");return`calc(${o} * ${r})`},"--theme":function(e,t,r,...n){if(!r.startsWith("--"))throw new Error("The --theme(…) function can only be used with CSS variables from your theme.");let o=!1;r.endsWith(" inline")&&(o=!0,r=r.slice(0,-7)),"at-rule"===t.kind&&(o=!0);let i=e.resolveThemeValue(r,o);if(!i){if(n.length>0)return n.join(", ");throw new Error(`Could not resolve value for theme function: \`theme(${r})\`. Consider checking if the variable name is correct or provide a fallback value to silence this error.`)}if(0===n.length)return i;let a=n.join(", ");if("initial"===a)return i;if("initial"===i)return a;if(i.startsWith("var(")||i.startsWith("theme(")||i.startsWith("--theme(")){let e=g(i);return function(e,t){h(e,(e=>{if("function"===e.kind&&("var"===e.value||"theme"===e.value||"--theme"===e.value))if(1===e.nodes.length)e.nodes.push({kind:"word",value:`, ${t}`});else{let r=e.nodes[e.nodes.length-1];"word"===r.kind&&"initial"===r.value&&(r.value=t)}}))}(e,a),m(e)}return i},theme:function(e,t,r,...n){r=function(e){if("'"!==e[0]&&'"'!==e[0])return e;let t="",r=e[0];for(let n=1;n0)return n.join(", ");if(!o)throw new Error(`Could not resolve value for theme function: \`theme(${r})\`. Consider checking if the path is correct or provide a fallback value to silence this error.`);return o}};var Ie=new RegExp(Object.keys(Le).map((e=>`${e}\\(`)).join("|"));function Re(e,t){let r=0;return C(e,(e=>{if("declaration"===e.kind&&e.value&&Ie.test(e.value))return r|=8,void(e.value=Pe(e.value,e,t));"at-rule"===e.kind&&("@media"===e.name||"@custom-media"===e.name||"@container"===e.name||"@supports"===e.name)&&Ie.test(e.params)&&(r|=8,e.params=Pe(e.params,e,t))})),r}function Pe(e,t,r){let n=g(e);return h(n,((e,{replaceWith:n})=>{if("function"===e.kind&&e.value in Le){let o=L(m(e.nodes).trim(),",").map((e=>e.trim()));return n(g(Le[e.value](r,t,...o)))}})),m(n)}function qe(e,t){let r=e.length,n=t.length,o=r=48&&n<=57&&o>=48&&o<=57){let i=r,a=r+1,l=r,s=r+1;for(n=e.charCodeAt(a);n>=48&&n<=57;)n=e.charCodeAt(++a);for(o=t.charCodeAt(s);o>=48&&o<=57;)o=t.charCodeAt(++s);let c=e.slice(i,a),u=t.slice(l,s),d=Number(c)-Number(u);if(d)return d;if(cu)return 1}else if(n!==o)return n-o}return e.length-t.length}var He=/^\d+\/\d+$/;function Ze(e){let t=new u((e=>({name:e,utility:e,fraction:!1,modifiers:[]})));for(let r of e.utilities.keys("static")){let e=t.get(r);e.fraction=!1,e.modifiers=[]}for(let r of e.utilities.keys("functional")){let n=e.utilities.getCompletions(r);for(let e of n)for(let n of e.values){let o=null!==n&&He.test(n),i=null===n?r:`${r}-${n}`,a=t.get(i);if(a.utility=r,a.fraction||=o,a.modifiers.push(...e.modifiers),e.supportsNegative){let n=t.get(`-${i}`);n.utility=`-${r}`,n.fraction||=o,n.modifiers.push(...e.modifiers)}}}if(0===t.size)return[];let r=Array.from(t.values());return r.sort(((e,t)=>qe(e.name,t.name))),function(e){let t=[],r=null,n=new Map,o=new u((()=>[]));for(let i of e){let{utility:e,fraction:a}=i;r||(r={utility:e,items:[]},n.set(e,r)),e!==r.utility&&(t.push(r),r={utility:e,items:[]},n.set(e,r)),a?o.get(e).push(i):r.items.push(i)}r&&t[t.length-1]!==r&&t.push(r);for(let[e,t]of o){let r=n.get(e);r&&r.items.push(...t)}let i=[];for(let e of t)for(let t of e.items)i.push([t.name,{modifiers:t.modifiers}]);return i}(r)}var Ye=/^@?[a-zA-Z0-9_-]*$/,Ge=class{compareFns=new Map;variants=new Map;completions=new Map;groupOrder=null;lastOrder=0;static(e,t,{compounds:r,order:n}={}){this.set(e,{kind:"static",applyFn:t,compoundsWith:0,compounds:r??2,order:n})}fromAst(e,t){let r=[];C(t,(e=>{"rule"===e.kind?r.push(e.selector):"at-rule"===e.kind&&"@slot"!==e.name&&r.push(`${e.name} ${e.params}`)})),this.static(e,(e=>{let r=structuredClone(t);Qe(r,e.nodes),e.nodes=r}),{compounds:Je(r)})}functional(e,t,{compounds:r,order:n}={}){this.set(e,{kind:"functional",applyFn:t,compoundsWith:0,compounds:r??2,order:n})}compound(e,t,r,{compounds:n,order:o}={}){this.set(e,{kind:"compound",applyFn:r,compoundsWith:t,compounds:n??2,order:o})}group(e,t){this.groupOrder=this.nextOrder(),t&&this.compareFns.set(this.groupOrder,t),e(),this.groupOrder=null}has(e){return this.variants.has(e)}get(e){return this.variants.get(e)}kind(e){return this.variants.get(e)?.kind}compoundsWith(e,t){let r=this.variants.get(e),n="string"==typeof t?this.variants.get(t):"arbitrary"===t.kind?{compounds:Je([t.selector])}:this.variants.get(t.root);return!!(r&&n&&"compound"===r.kind&&0!==n.compounds&&0!==r.compoundsWith&&r.compoundsWith&n.compounds)}suggest(e,t){this.completions.set(e,t)}getCompletions(e){return this.completions.get(e)?.()??[]}compare(e,t){if(e===t)return 0;if(null===e)return-1;if(null===t)return 1;if("arbitrary"===e.kind&&"arbitrary"===t.kind)return e.selector1){let e=n[n.length-1];if(" "===n[n.length-2]&&("i"===e||"I"===e||"s"===e||"S"===e))return`${t}="${n.slice(0,-2)}" ${e}`}return`${t}="${n}"`}return e}function Qe(e,t){C(e,((e,{replaceWith:r})=>{if("at-rule"===e.kind&&"@slot"===e.name)r(t);else if("at-rule"===e.kind&&("@keyframes"===e.name||"@property"===e.name))return Object.assign(e,z([b(e.name,e.params,e.nodes)])),1}))}function et(e){let t=function(e){let t=new Ee;function r(r,n){function*o(t){for(let r of e.keysInNamespaces(t))yield r.replace(Ue,((e,t,r)=>`${t}.${r}`))}let i=["1/2","1/3","2/3","1/4","2/4","3/4","1/5","2/5","3/5","4/5","1/6","2/6","3/6","4/6","5/6","1/12","2/12","3/12","4/12","5/12","6/12","7/12","8/12","9/12","10/12","11/12"];t.suggest(r,(()=>{let e=[];for(let t of n()){if("string"==typeof t){e.push({values:[t],modifiers:[]});continue}let r=[...t.values??[],...o(t.valueThemeKeys??[])],n=[...t.modifiers??[],...o(t.modifierThemeKeys??[])];t.supportsFractions&&r.push(...i),t.hasDefaultValue&&r.unshift(null),e.push({supportsNegative:t.supportsNegative,values:r,modifiers:n})}return e}))}function n(e,r){t.static(e,(()=>r.map((e=>"function"==typeof e?e():x(e[0],e[1])))))}function o(n,o){function i({negative:t}){return r=>{let n=null,i=null;if(r.value)if("arbitrary"===r.value.kind){if(r.modifier)return;n=r.value.value,i=r.value.dataType}else{if(n=e.resolve(r.value.fraction??r.value.value,o.themeKeys??[]),null===n&&o.supportsFractions&&r.value.fraction){let[e,t]=L(r.value.fraction,"/");if(!be(e)||!be(t))return;n=`calc(${r.value.fraction} * 100%)`}if(null===n&&t&&o.handleNegativeBareValue){if(n=o.handleNegativeBareValue(r.value),!n?.includes("/")&&r.modifier)return;if(null!==n)return o.handle(n,null)}if(null===n&&o.handleBareValue&&(n=o.handleBareValue(r.value),!n?.includes("/")&&r.modifier))return}else{if(r.modifier)return;n=void 0!==o.defaultValue?o.defaultValue:e.resolve(null,o.themeKeys??[])}if(null!==n)return o.handle(t?`calc(${n} * -1)`:n,i)}}o.supportsNegative&&t.functional(`-${n}`,i({negative:!0})),t.functional(n,i({negative:!1})),r(n,(()=>[{supportsNegative:o.supportsNegative,valueThemeKeys:o.themeKeys??[],hasDefaultValue:void 0!==o.defaultValue&&null!==o.defaultValue,supportsFractions:o.supportsFractions}]))}function i(n,o){t.functional(n,(t=>{if(!t.value)return;let r=null;return"arbitrary"===t.value.kind?(r=t.value.value,r=Fe(r,t.modifier,e)):r=We(t,e,o.themeKeys),null!==r?o.handle(r):void 0})),r(n,(()=>[{values:["current","inherit","transparent"],valueThemeKeys:o.themeKeys,modifiers:Array.from({length:21},((e,t)=>""+5*t))}]))}function a(n,i,a,{supportsNegative:l=!1,supportsFractions:s=!1}={}){l&&t.static(`-${n}-px`,(()=>a("-1px"))),t.static(`${n}-px`,(()=>a("1px"))),o(n,{themeKeys:i,supportsFractions:s,supportsNegative:l,defaultValue:null,handleBareValue:({value:t})=>{let r=e.resolve(null,["--spacing"]);return r&&xe(t)?`calc(${r} * ${t})`:null},handleNegativeBareValue:({value:t})=>{let r=e.resolve(null,["--spacing"]);return r&&xe(t)?`calc(${r} * -${t})`:null},handle:a}),r(n,(()=>[{values:e.get(["--spacing"])?Ke:[],supportsNegative:l,supportsFractions:s,valueThemeKeys:i}]))}n("sr-only",[["position","absolute"],["width","1px"],["height","1px"],["padding","0"],["margin","-1px"],["overflow","hidden"],["clip","rect(0, 0, 0, 0)"],["white-space","nowrap"],["border-width","0"]]),n("not-sr-only",[["position","static"],["width","auto"],["height","auto"],["padding","0"],["margin","0"],["overflow","visible"],["clip","auto"],["white-space","normal"]]),n("pointer-events-none",[["pointer-events","none"]]),n("pointer-events-auto",[["pointer-events","auto"]]),n("visible",[["visibility","visible"]]),n("invisible",[["visibility","hidden"]]),n("collapse",[["visibility","collapse"]]),n("static",[["position","static"]]),n("fixed",[["position","fixed"]]),n("absolute",[["position","absolute"]]),n("relative",[["position","relative"]]),n("sticky",[["position","sticky"]]);for(let[e,t]of[["inset","inset"],["inset-x","inset-inline"],["inset-y","inset-block"],["start","inset-inline-start"],["end","inset-inline-end"],["top","top"],["right","right"],["bottom","bottom"],["left","left"]])n(`${e}-auto`,[[t,"auto"]]),n(`${e}-full`,[[t,"100%"]]),n(`-${e}-full`,[[t,"-100%"]]),a(e,["--inset","--spacing"],(e=>[x(t,e)]),{supportsNegative:!0,supportsFractions:!0});n("isolate",[["isolation","isolate"]]),n("isolation-auto",[["isolation","auto"]]),n("z-auto",[["z-index","auto"]]),o("z",{supportsNegative:!0,handleBareValue:({value:e})=>be(e)?e:null,themeKeys:["--z-index"],handle:e=>[x("z-index",e)]}),r("z",(()=>[{supportsNegative:!0,values:["0","10","20","30","40","50"],valueThemeKeys:["--z-index"]}])),n("order-first",[["order","-9999"]]),n("order-last",[["order","9999"]]),o("order",{supportsNegative:!0,handleBareValue:({value:e})=>be(e)?e:null,themeKeys:["--order"],handle:e=>[x("order",e)]}),r("order",(()=>[{supportsNegative:!0,values:Array.from({length:12},((e,t)=>`${t+1}`)),valueThemeKeys:["--order"]}])),n("col-auto",[["grid-column","auto"]]),o("col",{supportsNegative:!0,handleBareValue:({value:e})=>be(e)?e:null,themeKeys:["--grid-column"],handle:e=>[x("grid-column",e)]}),n("col-span-full",[["grid-column","1 / -1"]]),o("col-span",{handleBareValue:({value:e})=>be(e)?e:null,handle:e=>[x("grid-column",`span ${e} / span ${e}`)]}),n("col-start-auto",[["grid-column-start","auto"]]),o("col-start",{supportsNegative:!0,handleBareValue:({value:e})=>be(e)?e:null,themeKeys:["--grid-column-start"],handle:e=>[x("grid-column-start",e)]}),n("col-end-auto",[["grid-column-end","auto"]]),o("col-end",{supportsNegative:!0,handleBareValue:({value:e})=>be(e)?e:null,themeKeys:["--grid-column-end"],handle:e=>[x("grid-column-end",e)]}),r("col-span",(()=>[{values:Array.from({length:12},((e,t)=>`${t+1}`)),valueThemeKeys:[]}])),r("col-start",(()=>[{supportsNegative:!0,values:Array.from({length:13},((e,t)=>`${t+1}`)),valueThemeKeys:["--grid-column-start"]}])),r("col-end",(()=>[{supportsNegative:!0,values:Array.from({length:13},((e,t)=>`${t+1}`)),valueThemeKeys:["--grid-column-end"]}])),n("row-auto",[["grid-row","auto"]]),o("row",{supportsNegative:!0,handleBareValue:({value:e})=>be(e)?e:null,themeKeys:["--grid-row"],handle:e=>[x("grid-row",e)]}),n("row-span-full",[["grid-row","1 / -1"]]),o("row-span",{themeKeys:[],handleBareValue:({value:e})=>be(e)?e:null,handle:e=>[x("grid-row",`span ${e} / span ${e}`)]}),n("row-start-auto",[["grid-row-start","auto"]]),o("row-start",{supportsNegative:!0,handleBareValue:({value:e})=>be(e)?e:null,themeKeys:["--grid-row-start"],handle:e=>[x("grid-row-start",e)]}),n("row-end-auto",[["grid-row-end","auto"]]),o("row-end",{supportsNegative:!0,handleBareValue:({value:e})=>be(e)?e:null,themeKeys:["--grid-row-end"],handle:e=>[x("grid-row-end",e)]}),r("row-span",(()=>[{values:Array.from({length:12},((e,t)=>`${t+1}`)),valueThemeKeys:[]}])),r("row-start",(()=>[{supportsNegative:!0,values:Array.from({length:13},((e,t)=>`${t+1}`)),valueThemeKeys:["--grid-row-start"]}])),r("row-end",(()=>[{supportsNegative:!0,values:Array.from({length:13},((e,t)=>`${t+1}`)),valueThemeKeys:["--grid-row-end"]}])),n("float-start",[["float","inline-start"]]),n("float-end",[["float","inline-end"]]),n("float-right",[["float","right"]]),n("float-left",[["float","left"]]),n("float-none",[["float","none"]]),n("clear-start",[["clear","inline-start"]]),n("clear-end",[["clear","inline-end"]]),n("clear-right",[["clear","right"]]),n("clear-left",[["clear","left"]]),n("clear-both",[["clear","both"]]),n("clear-none",[["clear","none"]]);for(let[e,t]of[["m","margin"],["mx","margin-inline"],["my","margin-block"],["ms","margin-inline-start"],["me","margin-inline-end"],["mt","margin-top"],["mr","margin-right"],["mb","margin-bottom"],["ml","margin-left"]])n(`${e}-auto`,[[t,"auto"]]),a(e,["--margin","--spacing"],(e=>[x(t,e)]),{supportsNegative:!0});n("box-border",[["box-sizing","border-box"]]),n("box-content",[["box-sizing","content-box"]]),n("line-clamp-none",[["overflow","visible"],["display","block"],["-webkit-box-orient","horizontal"],["-webkit-line-clamp","unset"]]),o("line-clamp",{themeKeys:["--line-clamp"],handleBareValue:({value:e})=>be(e)?e:null,handle:e=>[x("overflow","hidden"),x("display","-webkit-box"),x("-webkit-box-orient","vertical"),x("-webkit-line-clamp",e)]}),r("line-clamp",(()=>[{values:["1","2","3","4","5","6"],valueThemeKeys:["--line-clamp"]}])),n("block",[["display","block"]]),n("inline-block",[["display","inline-block"]]),n("inline",[["display","inline"]]),n("hidden",[["display","none"]]),n("inline-flex",[["display","inline-flex"]]),n("table",[["display","table"]]),n("inline-table",[["display","inline-table"]]),n("table-caption",[["display","table-caption"]]),n("table-cell",[["display","table-cell"]]),n("table-column",[["display","table-column"]]),n("table-column-group",[["display","table-column-group"]]),n("table-footer-group",[["display","table-footer-group"]]),n("table-header-group",[["display","table-header-group"]]),n("table-row-group",[["display","table-row-group"]]),n("table-row",[["display","table-row"]]),n("flow-root",[["display","flow-root"]]),n("flex",[["display","flex"]]),n("grid",[["display","grid"]]),n("inline-grid",[["display","inline-grid"]]),n("contents",[["display","contents"]]),n("list-item",[["display","list-item"]]),n("field-sizing-content",[["field-sizing","content"]]),n("field-sizing-fixed",[["field-sizing","fixed"]]),n("aspect-auto",[["aspect-ratio","auto"]]),n("aspect-square",[["aspect-ratio","1 / 1"]]),o("aspect",{themeKeys:["--aspect"],handleBareValue:({fraction:e})=>{if(null===e)return null;let[t,r]=L(e,"/");return be(t)&&be(r)?e:null},handle:e=>[x("aspect-ratio",e)]});for(let[e,t]of[["full","100%"],["svw","100svw"],["lvw","100lvw"],["dvw","100dvw"],["svh","100svh"],["lvh","100lvh"],["dvh","100dvh"],["min","min-content"],["max","max-content"],["fit","fit-content"]])n(`size-${e}`,[["--tw-sort","size"],["width",t],["height",t]]),n(`w-${e}`,[["width",t]]),n(`h-${e}`,[["height",t]]),n(`min-w-${e}`,[["min-width",t]]),n(`min-h-${e}`,[["min-height",t]]),n(`max-w-${e}`,[["max-width",t]]),n(`max-h-${e}`,[["max-height",t]]);n("size-auto",[["--tw-sort","size"],["width","auto"],["height","auto"]]),n("w-auto",[["width","auto"]]),n("h-auto",[["height","auto"]]),n("min-w-auto",[["min-width","auto"]]),n("min-h-auto",[["min-height","auto"]]),n("h-lh",[["height","1lh"]]),n("min-h-lh",[["min-height","1lh"]]),n("max-h-lh",[["max-height","1lh"]]),n("w-screen",[["width","100vw"]]),n("min-w-screen",[["min-width","100vw"]]),n("max-w-screen",[["max-width","100vw"]]),n("h-screen",[["height","100vh"]]),n("min-h-screen",[["min-height","100vh"]]),n("max-h-screen",[["max-height","100vh"]]),n("max-w-none",[["max-width","none"]]),n("max-h-none",[["max-height","none"]]),a("size",["--size","--spacing"],(e=>[x("--tw-sort","size"),x("width",e),x("height",e)]),{supportsFractions:!0});for(let[e,t,r]of[["w",["--width","--spacing","--container"],"width"],["min-w",["--min-width","--spacing","--container"],"min-width"],["max-w",["--max-width","--spacing","--container"],"max-width"],["h",["--height","--spacing"],"height"],["min-h",["--min-height","--height","--spacing"],"min-height"],["max-h",["--max-height","--height","--spacing"],"max-height"]])a(e,t,(e=>[x(r,e)]),{supportsFractions:!0});t.static("container",(()=>{let t=[...e.namespace("--breakpoint").values()];t.sort(((e,t)=>te(e,t,"asc")));let r=[x("--tw-sort","--tw-container-component"),x("width","100%")];for(let e of t)r.push(b("@media",`(width >= ${e})`,[x("max-width",e)]));return r})),n("flex-auto",[["flex","auto"]]),n("flex-initial",[["flex","0 auto"]]),n("flex-none",[["flex","none"]]),t.functional("flex",(e=>{if(e.value){if("arbitrary"===e.value.kind)return e.modifier?void 0:[x("flex",e.value.value)];if(e.value.fraction){let[t,r]=L(e.value.fraction,"/");return be(t)&&be(r)?[x("flex",`calc(${e.value.fraction} * 100%)`)]:void 0}if(be(e.value.value))return e.modifier?void 0:[x("flex",e.value.value)]}})),r("flex",(()=>[{supportsFractions:!0}])),o("shrink",{defaultValue:"1",handleBareValue:({value:e})=>be(e)?e:null,handle:e=>[x("flex-shrink",e)]}),o("grow",{defaultValue:"1",handleBareValue:({value:e})=>be(e)?e:null,handle:e=>[x("flex-grow",e)]}),r("shrink",(()=>[{values:["0"],valueThemeKeys:[],hasDefaultValue:!0}])),r("grow",(()=>[{values:["0"],valueThemeKeys:[],hasDefaultValue:!0}])),n("basis-auto",[["flex-basis","auto"]]),n("basis-full",[["flex-basis","100%"]]),a("basis",["--flex-basis","--spacing","--container"],(e=>[x("flex-basis",e)]),{supportsFractions:!0}),n("table-auto",[["table-layout","auto"]]),n("table-fixed",[["table-layout","fixed"]]),n("caption-top",[["caption-side","top"]]),n("caption-bottom",[["caption-side","bottom"]]),n("border-collapse",[["border-collapse","collapse"]]),n("border-separate",[["border-collapse","separate"]]);let l=()=>z([Ve("--tw-border-spacing-x","0",""),Ve("--tw-border-spacing-y","0","")]);a("border-spacing",["--border-spacing","--spacing"],(e=>[l(),x("--tw-border-spacing-x",e),x("--tw-border-spacing-y",e),x("border-spacing","var(--tw-border-spacing-x) var(--tw-border-spacing-y)")])),a("border-spacing-x",["--border-spacing","--spacing"],(e=>[l(),x("--tw-border-spacing-x",e),x("border-spacing","var(--tw-border-spacing-x) var(--tw-border-spacing-y)")])),a("border-spacing-y",["--border-spacing","--spacing"],(e=>[l(),x("--tw-border-spacing-y",e),x("border-spacing","var(--tw-border-spacing-x) var(--tw-border-spacing-y)")])),n("origin-center",[["transform-origin","center"]]),n("origin-top",[["transform-origin","top"]]),n("origin-top-right",[["transform-origin","top right"]]),n("origin-right",[["transform-origin","right"]]),n("origin-bottom-right",[["transform-origin","bottom right"]]),n("origin-bottom",[["transform-origin","bottom"]]),n("origin-bottom-left",[["transform-origin","bottom left"]]),n("origin-left",[["transform-origin","left"]]),n("origin-top-left",[["transform-origin","top left"]]),o("origin",{themeKeys:["--transform-origin"],handle:e=>[x("transform-origin",e)]}),n("perspective-origin-center",[["perspective-origin","center"]]),n("perspective-origin-top",[["perspective-origin","top"]]),n("perspective-origin-top-right",[["perspective-origin","top right"]]),n("perspective-origin-right",[["perspective-origin","right"]]),n("perspective-origin-bottom-right",[["perspective-origin","bottom right"]]),n("perspective-origin-bottom",[["perspective-origin","bottom"]]),n("perspective-origin-bottom-left",[["perspective-origin","bottom left"]]),n("perspective-origin-left",[["perspective-origin","left"]]),n("perspective-origin-top-left",[["perspective-origin","top left"]]),o("perspective-origin",{themeKeys:["--perspective-origin"],handle:e=>[x("perspective-origin",e)]}),n("perspective-none",[["perspective","none"]]),o("perspective",{themeKeys:["--perspective"],handle:e=>[x("perspective",e)]});let s=()=>z([Ve("--tw-translate-x","0"),Ve("--tw-translate-y","0"),Ve("--tw-translate-z","0")]);n("translate-none",[["translate","none"]]),n("-translate-full",[s,["--tw-translate-x","-100%"],["--tw-translate-y","-100%"],["translate","var(--tw-translate-x) var(--tw-translate-y)"]]),n("translate-full",[s,["--tw-translate-x","100%"],["--tw-translate-y","100%"],["translate","var(--tw-translate-x) var(--tw-translate-y)"]]),a("translate",["--translate","--spacing"],(e=>[s(),x("--tw-translate-x",e),x("--tw-translate-y",e),x("translate","var(--tw-translate-x) var(--tw-translate-y)")]),{supportsNegative:!0,supportsFractions:!0});for(let e of["x","y"])n(`-translate-${e}-full`,[s,[`--tw-translate-${e}`,"-100%"],["translate","var(--tw-translate-x) var(--tw-translate-y)"]]),n(`translate-${e}-full`,[s,[`--tw-translate-${e}`,"100%"],["translate","var(--tw-translate-x) var(--tw-translate-y)"]]),a(`translate-${e}`,["--translate","--spacing"],(t=>[s(),x(`--tw-translate-${e}`,t),x("translate","var(--tw-translate-x) var(--tw-translate-y)")]),{supportsNegative:!0,supportsFractions:!0});a("translate-z",["--translate","--spacing"],(e=>[s(),x("--tw-translate-z",e),x("translate","var(--tw-translate-x) var(--tw-translate-y) var(--tw-translate-z)")]),{supportsNegative:!0}),n("translate-3d",[s,["translate","var(--tw-translate-x) var(--tw-translate-y) var(--tw-translate-z)"]]);let c=()=>z([Ve("--tw-scale-x","1"),Ve("--tw-scale-y","1"),Ve("--tw-scale-z","1")]);function u({negative:t}){return r=>{if(!r.value||r.modifier)return;let n;return"arbitrary"===r.value.kind?(n=r.value.value,n=t?`calc(${n} * -1)`:n,[x("scale",n)]):(n=e.resolve(r.value.value,["--scale"]),!n&&be(r.value.value)&&(n=`${r.value.value}%`),n?(n=t?`calc(${n} * -1)`:n,[c(),x("--tw-scale-x",n),x("--tw-scale-y",n),x("--tw-scale-z",n),x("scale","var(--tw-scale-x) var(--tw-scale-y)")]):void 0)}}n("scale-none",[["scale","none"]]),t.functional("-scale",u({negative:!0})),t.functional("scale",u({negative:!1})),r("scale",(()=>[{supportsNegative:!0,values:["0","50","75","90","95","100","105","110","125","150","200"],valueThemeKeys:["--scale"]}]));for(let e of["x","y","z"])o(`scale-${e}`,{supportsNegative:!0,themeKeys:["--scale"],handleBareValue:({value:e})=>be(e)?`${e}%`:null,handle:t=>[c(),x(`--tw-scale-${e}`,t),x("scale","var(--tw-scale-x) var(--tw-scale-y)"+("z"===e?" var(--tw-scale-z)":""))]}),r(`scale-${e}`,(()=>[{supportsNegative:!0,values:["0","50","75","90","95","100","105","110","125","150","200"],valueThemeKeys:["--scale"]}]));function d({negative:t}){return r=>{if(!r.value||r.modifier)return;let n;if("arbitrary"===r.value.kind){n=r.value.value;let e=r.value.dataType??ie(n,["angle","vector"]);if("vector"===e)return[x("rotate",`${n} var(--tw-rotate)`)];if("angle"!==e)return[x("rotate",t?`calc(${n} * -1)`:n)]}else if(n=e.resolve(r.value.value,["--rotate"]),!n&&be(r.value.value)&&(n=`${r.value.value}deg`),!n)return;return[x("rotate",t?`calc(${n} * -1)`:n)]}}n("scale-3d",[c,["scale","var(--tw-scale-x) var(--tw-scale-y) var(--tw-scale-z)"]]),n("rotate-none",[["rotate","none"]]),t.functional("-rotate",d({negative:!0})),t.functional("rotate",d({negative:!1})),r("rotate",(()=>[{supportsNegative:!0,values:["0","1","2","3","6","12","45","90","180"],valueThemeKeys:["--rotate"]}]));{let e=["var(--tw-rotate-x,)","var(--tw-rotate-y,)","var(--tw-rotate-z,)","var(--tw-skew-x,)","var(--tw-skew-y,)"].join(" "),i=()=>z([Ve("--tw-rotate-x"),Ve("--tw-rotate-y"),Ve("--tw-rotate-z"),Ve("--tw-skew-x"),Ve("--tw-skew-y")]);for(let t of["x","y","z"])o(`rotate-${t}`,{supportsNegative:!0,themeKeys:["--rotate"],handleBareValue:({value:e})=>be(e)?`${e}deg`:null,handle:r=>[i(),x(`--tw-rotate-${t}`,`rotate${t.toUpperCase()}(${r})`),x("transform",e)]}),r(`rotate-${t}`,(()=>[{supportsNegative:!0,values:["0","1","2","3","6","12","45","90","180"],valueThemeKeys:["--rotate"]}]));o("skew",{supportsNegative:!0,themeKeys:["--skew"],handleBareValue:({value:e})=>be(e)?`${e}deg`:null,handle:t=>[i(),x("--tw-skew-x",`skewX(${t})`),x("--tw-skew-y",`skewY(${t})`),x("transform",e)]}),o("skew-x",{supportsNegative:!0,themeKeys:["--skew"],handleBareValue:({value:e})=>be(e)?`${e}deg`:null,handle:t=>[i(),x("--tw-skew-x",`skewX(${t})`),x("transform",e)]}),o("skew-y",{supportsNegative:!0,themeKeys:["--skew"],handleBareValue:({value:e})=>be(e)?`${e}deg`:null,handle:t=>[i(),x("--tw-skew-y",`skewY(${t})`),x("transform",e)]}),r("skew",(()=>[{supportsNegative:!0,values:["0","1","2","3","6","12"],valueThemeKeys:["--skew"]}])),r("skew-x",(()=>[{supportsNegative:!0,values:["0","1","2","3","6","12"],valueThemeKeys:["--skew"]}])),r("skew-y",(()=>[{supportsNegative:!0,values:["0","1","2","3","6","12"],valueThemeKeys:["--skew"]}])),t.functional("transform",(t=>{if(t.modifier)return;let r=null;return t.value?"arbitrary"===t.value.kind&&(r=t.value.value):r=e,null!==r?[i(),x("transform",r)]:void 0})),r("transform",(()=>[{hasDefaultValue:!0}])),n("transform-cpu",[["transform",e]]),n("transform-gpu",[["transform",`translateZ(0) ${e}`]]),n("transform-none",[["transform","none"]])}n("transform-flat",[["transform-style","flat"]]),n("transform-3d",[["transform-style","preserve-3d"]]),n("transform-content",[["transform-box","content-box"]]),n("transform-border",[["transform-box","border-box"]]),n("transform-fill",[["transform-box","fill-box"]]),n("transform-stroke",[["transform-box","stroke-box"]]),n("transform-view",[["transform-box","view-box"]]),n("backface-visible",[["backface-visibility","visible"]]),n("backface-hidden",[["backface-visibility","hidden"]]);for(let e of["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out"])n(`cursor-${e}`,[["cursor",e]]);o("cursor",{themeKeys:["--cursor"],handle:e=>[x("cursor",e)]});for(let e of["auto","none","manipulation"])n(`touch-${e}`,[["touch-action",e]]);let f=()=>z([Ve("--tw-pan-x"),Ve("--tw-pan-y"),Ve("--tw-pinch-zoom")]);for(let e of["x","left","right"])n(`touch-pan-${e}`,[f,["--tw-pan-x",`pan-${e}`],["touch-action","var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)"]]);for(let e of["y","up","down"])n(`touch-pan-${e}`,[f,["--tw-pan-y",`pan-${e}`],["touch-action","var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)"]]);n("touch-pinch-zoom",[f,["--tw-pinch-zoom","pinch-zoom"],["touch-action","var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)"]]);for(let e of["none","text","all","auto"])n(`select-${e}`,[["-webkit-user-select",e],["user-select",e]]);n("resize-none",[["resize","none"]]),n("resize-x",[["resize","horizontal"]]),n("resize-y",[["resize","vertical"]]),n("resize",[["resize","both"]]),n("snap-none",[["scroll-snap-type","none"]]);let p=()=>z([Ve("--tw-scroll-snap-strictness","proximity","*")]);for(let e of["x","y","both"])n(`snap-${e}`,[p,["scroll-snap-type",`${e} var(--tw-scroll-snap-strictness)`]]);n("snap-mandatory",[p,["--tw-scroll-snap-strictness","mandatory"]]),n("snap-proximity",[p,["--tw-scroll-snap-strictness","proximity"]]),n("snap-align-none",[["scroll-snap-align","none"]]),n("snap-start",[["scroll-snap-align","start"]]),n("snap-end",[["scroll-snap-align","end"]]),n("snap-center",[["scroll-snap-align","center"]]),n("snap-normal",[["scroll-snap-stop","normal"]]),n("snap-always",[["scroll-snap-stop","always"]]);for(let[e,t]of[["scroll-m","scroll-margin"],["scroll-mx","scroll-margin-inline"],["scroll-my","scroll-margin-block"],["scroll-ms","scroll-margin-inline-start"],["scroll-me","scroll-margin-inline-end"],["scroll-mt","scroll-margin-top"],["scroll-mr","scroll-margin-right"],["scroll-mb","scroll-margin-bottom"],["scroll-ml","scroll-margin-left"]])a(e,["--scroll-margin","--spacing"],(e=>[x(t,e)]),{supportsNegative:!0});for(let[e,t]of[["scroll-p","scroll-padding"],["scroll-px","scroll-padding-inline"],["scroll-py","scroll-padding-block"],["scroll-ps","scroll-padding-inline-start"],["scroll-pe","scroll-padding-inline-end"],["scroll-pt","scroll-padding-top"],["scroll-pr","scroll-padding-right"],["scroll-pb","scroll-padding-bottom"],["scroll-pl","scroll-padding-left"]])a(e,["--scroll-padding","--spacing"],(e=>[x(t,e)]));n("list-inside",[["list-style-position","inside"]]),n("list-outside",[["list-style-position","outside"]]),n("list-none",[["list-style-type","none"]]),n("list-disc",[["list-style-type","disc"]]),n("list-decimal",[["list-style-type","decimal"]]),o("list",{themeKeys:["--list-style-type"],handle:e=>[x("list-style-type",e)]}),n("list-image-none",[["list-style-image","none"]]),o("list-image",{themeKeys:["--list-style-image"],handle:e=>[x("list-style-image",e)]}),n("appearance-none",[["appearance","none"]]),n("appearance-auto",[["appearance","auto"]]),n("scheme-normal",[["color-scheme","normal"]]),n("scheme-dark",[["color-scheme","dark"]]),n("scheme-light",[["color-scheme","light"]]),n("scheme-light-dark",[["color-scheme","light dark"]]),n("scheme-only-dark",[["color-scheme","only dark"]]),n("scheme-only-light",[["color-scheme","only light"]]),n("columns-auto",[["columns","auto"]]),o("columns",{themeKeys:["--columns","--container"],handleBareValue:({value:e})=>be(e)?e:null,handle:e=>[x("columns",e)]}),r("columns",(()=>[{values:Array.from({length:12},((e,t)=>`${t+1}`)),valueThemeKeys:["--columns","--container"]}]));for(let e of["auto","avoid","all","avoid-page","page","left","right","column"])n(`break-before-${e}`,[["break-before",e]]);for(let e of["auto","avoid","avoid-page","avoid-column"])n(`break-inside-${e}`,[["break-inside",e]]);for(let e of["auto","avoid","all","avoid-page","page","left","right","column"])n(`break-after-${e}`,[["break-after",e]]);n("grid-flow-row",[["grid-auto-flow","row"]]),n("grid-flow-col",[["grid-auto-flow","column"]]),n("grid-flow-dense",[["grid-auto-flow","dense"]]),n("grid-flow-row-dense",[["grid-auto-flow","row dense"]]),n("grid-flow-col-dense",[["grid-auto-flow","column dense"]]),n("auto-cols-auto",[["grid-auto-columns","auto"]]),n("auto-cols-min",[["grid-auto-columns","min-content"]]),n("auto-cols-max",[["grid-auto-columns","max-content"]]),n("auto-cols-fr",[["grid-auto-columns","minmax(0, 1fr)"]]),o("auto-cols",{themeKeys:["--grid-auto-columns"],handle:e=>[x("grid-auto-columns",e)]}),n("auto-rows-auto",[["grid-auto-rows","auto"]]),n("auto-rows-min",[["grid-auto-rows","min-content"]]),n("auto-rows-max",[["grid-auto-rows","max-content"]]),n("auto-rows-fr",[["grid-auto-rows","minmax(0, 1fr)"]]),o("auto-rows",{themeKeys:["--grid-auto-rows"],handle:e=>[x("grid-auto-rows",e)]}),n("grid-cols-none",[["grid-template-columns","none"]]),n("grid-cols-subgrid",[["grid-template-columns","subgrid"]]),o("grid-cols",{themeKeys:["--grid-template-columns"],handleBareValue:({value:e})=>ye(e)?`repeat(${e}, minmax(0, 1fr))`:null,handle:e=>[x("grid-template-columns",e)]}),n("grid-rows-none",[["grid-template-rows","none"]]),n("grid-rows-subgrid",[["grid-template-rows","subgrid"]]),o("grid-rows",{themeKeys:["--grid-template-rows"],handleBareValue:({value:e})=>ye(e)?`repeat(${e}, minmax(0, 1fr))`:null,handle:e=>[x("grid-template-rows",e)]}),r("grid-cols",(()=>[{values:Array.from({length:12},((e,t)=>`${t+1}`)),valueThemeKeys:["--grid-template-columns"]}])),r("grid-rows",(()=>[{values:Array.from({length:12},((e,t)=>`${t+1}`)),valueThemeKeys:["--grid-template-rows"]}])),n("flex-row",[["flex-direction","row"]]),n("flex-row-reverse",[["flex-direction","row-reverse"]]),n("flex-col",[["flex-direction","column"]]),n("flex-col-reverse",[["flex-direction","column-reverse"]]),n("flex-wrap",[["flex-wrap","wrap"]]),n("flex-nowrap",[["flex-wrap","nowrap"]]),n("flex-wrap-reverse",[["flex-wrap","wrap-reverse"]]),n("place-content-center",[["place-content","center"]]),n("place-content-start",[["place-content","start"]]),n("place-content-end",[["place-content","end"]]),n("place-content-center-safe",[["place-content","safe center"]]),n("place-content-end-safe",[["place-content","safe end"]]),n("place-content-between",[["place-content","space-between"]]),n("place-content-around",[["place-content","space-around"]]),n("place-content-evenly",[["place-content","space-evenly"]]),n("place-content-baseline",[["place-content","baseline"]]),n("place-content-stretch",[["place-content","stretch"]]),n("place-items-center",[["place-items","center"]]),n("place-items-start",[["place-items","start"]]),n("place-items-end",[["place-items","end"]]),n("place-items-center-safe",[["place-items","safe center"]]),n("place-items-end-safe",[["place-items","safe end"]]),n("place-items-baseline",[["place-items","baseline"]]),n("place-items-stretch",[["place-items","stretch"]]),n("content-normal",[["align-content","normal"]]),n("content-center",[["align-content","center"]]),n("content-start",[["align-content","flex-start"]]),n("content-end",[["align-content","flex-end"]]),n("content-center-safe",[["align-content","safe center"]]),n("content-end-safe",[["align-content","safe flex-end"]]),n("content-between",[["align-content","space-between"]]),n("content-around",[["align-content","space-around"]]),n("content-evenly",[["align-content","space-evenly"]]),n("content-baseline",[["align-content","baseline"]]),n("content-stretch",[["align-content","stretch"]]),n("items-center",[["align-items","center"]]),n("items-start",[["align-items","flex-start"]]),n("items-end",[["align-items","flex-end"]]),n("items-center-safe",[["align-items","safe center"]]),n("items-end-safe",[["align-items","safe flex-end"]]),n("items-baseline",[["align-items","baseline"]]),n("items-baseline-last",[["align-items","last baseline"]]),n("items-stretch",[["align-items","stretch"]]),n("justify-normal",[["justify-content","normal"]]),n("justify-center",[["justify-content","center"]]),n("justify-start",[["justify-content","flex-start"]]),n("justify-end",[["justify-content","flex-end"]]),n("justify-center-safe",[["justify-content","safe center"]]),n("justify-end-safe",[["justify-content","safe flex-end"]]),n("justify-between",[["justify-content","space-between"]]),n("justify-around",[["justify-content","space-around"]]),n("justify-evenly",[["justify-content","space-evenly"]]),n("justify-baseline",[["justify-content","baseline"]]),n("justify-stretch",[["justify-content","stretch"]]),n("justify-items-normal",[["justify-items","normal"]]),n("justify-items-center",[["justify-items","center"]]),n("justify-items-start",[["justify-items","start"]]),n("justify-items-end",[["justify-items","end"]]),n("justify-items-center-safe",[["justify-items","safe center"]]),n("justify-items-end-safe",[["justify-items","safe end"]]),n("justify-items-stretch",[["justify-items","stretch"]]),a("gap",["--gap","--spacing"],(e=>[x("gap",e)])),a("gap-x",["--gap","--spacing"],(e=>[x("column-gap",e)])),a("gap-y",["--gap","--spacing"],(e=>[x("row-gap",e)])),a("space-x",["--space","--spacing"],(e=>[z([Ve("--tw-space-x-reverse","0")]),k(":where(& > :not(:last-child))",[x("--tw-sort","row-gap"),x("--tw-space-x-reverse","0"),x("margin-inline-start",`calc(${e} * var(--tw-space-x-reverse))`),x("margin-inline-end",`calc(${e} * calc(1 - var(--tw-space-x-reverse)))`)])]),{supportsNegative:!0}),a("space-y",["--space","--spacing"],(e=>[z([Ve("--tw-space-y-reverse","0")]),k(":where(& > :not(:last-child))",[x("--tw-sort","column-gap"),x("--tw-space-y-reverse","0"),x("margin-block-start",`calc(${e} * var(--tw-space-y-reverse))`),x("margin-block-end",`calc(${e} * calc(1 - var(--tw-space-y-reverse)))`)])]),{supportsNegative:!0}),n("space-x-reverse",[()=>z([Ve("--tw-space-x-reverse","0")]),()=>k(":where(& > :not(:last-child))",[x("--tw-sort","row-gap"),x("--tw-space-x-reverse","1")])]),n("space-y-reverse",[()=>z([Ve("--tw-space-y-reverse","0")]),()=>k(":where(& > :not(:last-child))",[x("--tw-sort","column-gap"),x("--tw-space-y-reverse","1")])]),n("accent-auto",[["accent-color","auto"]]),i("accent",{themeKeys:["--accent-color","--color"],handle:e=>[x("accent-color",e)]}),i("caret",{themeKeys:["--caret-color","--color"],handle:e=>[x("caret-color",e)]}),i("divide",{themeKeys:["--divide-color","--color"],handle:e=>[k(":where(& > :not(:last-child))",[x("--tw-sort","divide-color"),x("border-color",e)])]}),n("place-self-auto",[["place-self","auto"]]),n("place-self-start",[["place-self","start"]]),n("place-self-end",[["place-self","end"]]),n("place-self-center",[["place-self","center"]]),n("place-self-end-safe",[["place-self","safe end"]]),n("place-self-center-safe",[["place-self","safe center"]]),n("place-self-stretch",[["place-self","stretch"]]),n("self-auto",[["align-self","auto"]]),n("self-start",[["align-self","flex-start"]]),n("self-end",[["align-self","flex-end"]]),n("self-center",[["align-self","center"]]),n("self-end-safe",[["align-self","safe flex-end"]]),n("self-center-safe",[["align-self","safe center"]]),n("self-stretch",[["align-self","stretch"]]),n("self-baseline",[["align-self","baseline"]]),n("self-baseline-last",[["align-self","last baseline"]]),n("justify-self-auto",[["justify-self","auto"]]),n("justify-self-start",[["justify-self","flex-start"]]),n("justify-self-end",[["justify-self","flex-end"]]),n("justify-self-center",[["justify-self","center"]]),n("justify-self-end-safe",[["justify-self","safe flex-end"]]),n("justify-self-center-safe",[["justify-self","safe center"]]),n("justify-self-stretch",[["justify-self","stretch"]]);for(let e of["auto","hidden","clip","visible","scroll"])n(`overflow-${e}`,[["overflow",e]]),n(`overflow-x-${e}`,[["overflow-x",e]]),n(`overflow-y-${e}`,[["overflow-y",e]]);for(let e of["auto","contain","none"])n(`overscroll-${e}`,[["overscroll-behavior",e]]),n(`overscroll-x-${e}`,[["overscroll-behavior-x",e]]),n(`overscroll-y-${e}`,[["overscroll-behavior-y",e]]);n("scroll-auto",[["scroll-behavior","auto"]]),n("scroll-smooth",[["scroll-behavior","smooth"]]),n("truncate",[["overflow","hidden"],["text-overflow","ellipsis"],["white-space","nowrap"]]),n("text-ellipsis",[["text-overflow","ellipsis"]]),n("text-clip",[["text-overflow","clip"]]),n("hyphens-none",[["-webkit-hyphens","none"],["hyphens","none"]]),n("hyphens-manual",[["-webkit-hyphens","manual"],["hyphens","manual"]]),n("hyphens-auto",[["-webkit-hyphens","auto"],["hyphens","auto"]]),n("whitespace-normal",[["white-space","normal"]]),n("whitespace-nowrap",[["white-space","nowrap"]]),n("whitespace-pre",[["white-space","pre"]]),n("whitespace-pre-line",[["white-space","pre-line"]]),n("whitespace-pre-wrap",[["white-space","pre-wrap"]]),n("whitespace-break-spaces",[["white-space","break-spaces"]]),n("text-wrap",[["text-wrap","wrap"]]),n("text-nowrap",[["text-wrap","nowrap"]]),n("text-balance",[["text-wrap","balance"]]),n("text-pretty",[["text-wrap","pretty"]]),n("break-normal",[["overflow-wrap","normal"],["word-break","normal"]]),n("break-words",[["overflow-wrap","break-word"]]),n("break-all",[["word-break","break-all"]]),n("break-keep",[["word-break","keep-all"]]),n("wrap-anywhere",[["overflow-wrap","anywhere"]]),n("wrap-break-word",[["overflow-wrap","break-word"]]),n("wrap-normal",[["overflow-wrap","normal"]]);for(let[e,t]of[["rounded",["border-radius"]],["rounded-s",["border-start-start-radius","border-end-start-radius"]],["rounded-e",["border-start-end-radius","border-end-end-radius"]],["rounded-t",["border-top-left-radius","border-top-right-radius"]],["rounded-r",["border-top-right-radius","border-bottom-right-radius"]],["rounded-b",["border-bottom-right-radius","border-bottom-left-radius"]],["rounded-l",["border-top-left-radius","border-bottom-left-radius"]],["rounded-ss",["border-start-start-radius"]],["rounded-se",["border-start-end-radius"]],["rounded-ee",["border-end-end-radius"]],["rounded-es",["border-end-start-radius"]],["rounded-tl",["border-top-left-radius"]],["rounded-tr",["border-top-right-radius"]],["rounded-br",["border-bottom-right-radius"]],["rounded-bl",["border-bottom-left-radius"]]])n(`${e}-none`,t.map((e=>[e,"0"]))),n(`${e}-full`,t.map((e=>[e,"calc(infinity * 1px)"]))),o(e,{themeKeys:["--radius"],handle:e=>t.map((t=>x(t,e)))});n("border-solid",[["--tw-border-style","solid"],["border-style","solid"]]),n("border-dashed",[["--tw-border-style","dashed"],["border-style","dashed"]]),n("border-dotted",[["--tw-border-style","dotted"],["border-style","dotted"]]),n("border-double",[["--tw-border-style","double"],["border-style","double"]]),n("border-hidden",[["--tw-border-style","hidden"],["border-style","hidden"]]),n("border-none",[["--tw-border-style","none"],["border-style","none"]]);{let i=function(n,o){t.functional(n,(t=>{if(!t.value){if(t.modifier)return;let r=e.get(["--default-border-width"])??"1px",n=o.width(r);return n?[a(),...n]:void 0}if("arbitrary"===t.value.kind){let r=t.value.value;switch(t.value.dataType??ie(r,["color","line-width","length"])){case"line-width":case"length":{if(t.modifier)return;let e=o.width(r);return e?[a(),...e]:void 0}default:return r=Fe(r,t.modifier,e),null===r?void 0:o.color(r)}}{let r=We(t,e,["--border-color","--color"]);if(r)return o.color(r)}{if(t.modifier)return;let r=e.resolve(t.value.value,["--border-width"]);if(r){let e=o.width(r);return e?[a(),...e]:void 0}if(be(t.value.value)){let e=o.width(`${t.value.value}px`);return e?[a(),...e]:void 0}}})),r(n,(()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--border-color","--color"],modifiers:Array.from({length:21},((e,t)=>""+5*t)),hasDefaultValue:!0},{values:["0","2","4","8"],valueThemeKeys:["--border-width"]}]))},a=()=>z([Ve("--tw-border-style","solid")]);i("border",{width:e=>[x("border-style","var(--tw-border-style)"),x("border-width",e)],color:e=>[x("border-color",e)]}),i("border-x",{width:e=>[x("border-inline-style","var(--tw-border-style)"),x("border-inline-width",e)],color:e=>[x("border-inline-color",e)]}),i("border-y",{width:e=>[x("border-block-style","var(--tw-border-style)"),x("border-block-width",e)],color:e=>[x("border-block-color",e)]}),i("border-s",{width:e=>[x("border-inline-start-style","var(--tw-border-style)"),x("border-inline-start-width",e)],color:e=>[x("border-inline-start-color",e)]}),i("border-e",{width:e=>[x("border-inline-end-style","var(--tw-border-style)"),x("border-inline-end-width",e)],color:e=>[x("border-inline-end-color",e)]}),i("border-t",{width:e=>[x("border-top-style","var(--tw-border-style)"),x("border-top-width",e)],color:e=>[x("border-top-color",e)]}),i("border-r",{width:e=>[x("border-right-style","var(--tw-border-style)"),x("border-right-width",e)],color:e=>[x("border-right-color",e)]}),i("border-b",{width:e=>[x("border-bottom-style","var(--tw-border-style)"),x("border-bottom-width",e)],color:e=>[x("border-bottom-color",e)]}),i("border-l",{width:e=>[x("border-left-style","var(--tw-border-style)"),x("border-left-width",e)],color:e=>[x("border-left-color",e)]}),o("divide-x",{defaultValue:e.get(["--default-border-width"])??"1px",themeKeys:["--divide-width","--border-width"],handleBareValue:({value:e})=>be(e)?`${e}px`:null,handle:e=>[z([Ve("--tw-divide-x-reverse","0")]),k(":where(& > :not(:last-child))",[x("--tw-sort","divide-x-width"),a(),x("--tw-divide-x-reverse","0"),x("border-inline-style","var(--tw-border-style)"),x("border-inline-start-width",`calc(${e} * var(--tw-divide-x-reverse))`),x("border-inline-end-width",`calc(${e} * calc(1 - var(--tw-divide-x-reverse)))`)])]}),o("divide-y",{defaultValue:e.get(["--default-border-width"])??"1px",themeKeys:["--divide-width","--border-width"],handleBareValue:({value:e})=>be(e)?`${e}px`:null,handle:e=>[z([Ve("--tw-divide-y-reverse","0")]),k(":where(& > :not(:last-child))",[x("--tw-sort","divide-y-width"),a(),x("--tw-divide-y-reverse","0"),x("border-bottom-style","var(--tw-border-style)"),x("border-top-style","var(--tw-border-style)"),x("border-top-width",`calc(${e} * var(--tw-divide-y-reverse))`),x("border-bottom-width",`calc(${e} * calc(1 - var(--tw-divide-y-reverse)))`)])]}),r("divide-x",(()=>[{values:["0","2","4","8"],valueThemeKeys:["--divide-width","--border-width"],hasDefaultValue:!0}])),r("divide-y",(()=>[{values:["0","2","4","8"],valueThemeKeys:["--divide-width","--border-width"],hasDefaultValue:!0}])),n("divide-x-reverse",[()=>z([Ve("--tw-divide-x-reverse","0")]),()=>k(":where(& > :not(:last-child))",[x("--tw-divide-x-reverse","1")])]),n("divide-y-reverse",[()=>z([Ve("--tw-divide-y-reverse","0")]),()=>k(":where(& > :not(:last-child))",[x("--tw-divide-y-reverse","1")])]);for(let e of["solid","dashed","dotted","double","none"])n(`divide-${e}`,[()=>k(":where(& > :not(:last-child))",[x("--tw-sort","divide-style"),x("--tw-border-style",e),x("border-style",e)])])}n("bg-auto",[["background-size","auto"]]),n("bg-cover",[["background-size","cover"]]),n("bg-contain",[["background-size","contain"]]),o("bg-size",{handle(e){if(e)return[x("background-size",e)]}}),n("bg-fixed",[["background-attachment","fixed"]]),n("bg-local",[["background-attachment","local"]]),n("bg-scroll",[["background-attachment","scroll"]]),n("bg-top",[["background-position","top"]]),n("bg-top-left",[["background-position","left top"]]),n("bg-top-right",[["background-position","right top"]]),n("bg-bottom",[["background-position","bottom"]]),n("bg-bottom-left",[["background-position","left bottom"]]),n("bg-bottom-right",[["background-position","right bottom"]]),n("bg-left",[["background-position","left"]]),n("bg-right",[["background-position","right"]]),n("bg-center",[["background-position","center"]]),o("bg-position",{handle(e){if(e)return[x("background-position",e)]}}),n("bg-repeat",[["background-repeat","repeat"]]),n("bg-no-repeat",[["background-repeat","no-repeat"]]),n("bg-repeat-x",[["background-repeat","repeat-x"]]),n("bg-repeat-y",[["background-repeat","repeat-y"]]),n("bg-repeat-round",[["background-repeat","round"]]),n("bg-repeat-space",[["background-repeat","space"]]),n("bg-none",[["background-image","none"]]);{let e=function(e){let t="in oklab";if("named"===e?.kind)switch(e.value){case"longer":case"shorter":case"increasing":case"decreasing":t=`in oklch ${e.value} hue`;break;default:t=`in ${e.value}`}else"arbitrary"===e?.kind&&(t=e.value);return t},n=function({negative:t}){return r=>{if(!r.value)return;if("arbitrary"===r.value.kind){if(r.modifier)return;let e=r.value.value;return"angle"===(r.value.dataType??ie(e,["angle"]))?(e=t?`calc(${e} * -1)`:`${e}`,[x("--tw-gradient-position",e),x("background-image",`linear-gradient(var(--tw-gradient-stops,${e}))`)]):t?void 0:[x("--tw-gradient-position",e),x("background-image",`linear-gradient(var(--tw-gradient-stops,${e}))`)]}let n=r.value.value;if(!t&&a.has(n))n=a.get(n);else{if(!be(n))return;n=t?`calc(${n}deg * -1)`:`${n}deg`}let o=e(r.modifier);return[x("--tw-gradient-position",`${n}`),y("@supports (background-image: linear-gradient(in lab, red, red))",[x("--tw-gradient-position",`${n} ${o}`)]),x("background-image","linear-gradient(var(--tw-gradient-stops))")]}},o=function({negative:t}){return r=>{if("arbitrary"===r.value?.kind){if(r.modifier)return;let e=r.value.value;return[x("--tw-gradient-position",e),x("background-image",`conic-gradient(var(--tw-gradient-stops,${e}))`)]}let n=e(r.modifier);if(!r.value)return[x("--tw-gradient-position",n),x("background-image","conic-gradient(var(--tw-gradient-stops))")];let o=r.value.value;return be(o)?(o=t?`calc(${o}deg * -1)`:`${o}deg`,[x("--tw-gradient-position",`from ${o} ${n}`),x("background-image","conic-gradient(var(--tw-gradient-stops))")]):void 0}},i=["oklab","oklch","srgb","hsl","longer","shorter","increasing","decreasing"],a=new Map([["to-t","to top"],["to-tr","to top right"],["to-r","to right"],["to-br","to bottom right"],["to-b","to bottom"],["to-bl","to bottom left"],["to-l","to left"],["to-tl","to top left"]]);t.functional("-bg-linear",n({negative:!0})),t.functional("bg-linear",n({negative:!1})),r("bg-linear",(()=>[{values:[...a.keys()],modifiers:i},{values:["0","30","60","90","120","150","180","210","240","270","300","330"],supportsNegative:!0,modifiers:i}])),t.functional("-bg-conic",o({negative:!0})),t.functional("bg-conic",o({negative:!1})),r("bg-conic",(()=>[{hasDefaultValue:!0,modifiers:i},{values:["0","30","60","90","120","150","180","210","240","270","300","330"],supportsNegative:!0,modifiers:i}])),t.functional("bg-radial",(t=>{if(!t.value)return[x("--tw-gradient-position",e(t.modifier)),x("background-image","radial-gradient(var(--tw-gradient-stops))")];if("arbitrary"===t.value.kind){if(t.modifier)return;let e=t.value.value;return[x("--tw-gradient-position",e),x("background-image",`radial-gradient(var(--tw-gradient-stops,${e}))`)]}})),r("bg-radial",(()=>[{hasDefaultValue:!0,modifiers:i}]))}t.functional("bg",(t=>{if(t.value){if("arbitrary"===t.value.kind){let r=t.value.value;switch(t.value.dataType??ie(r,["image","color","percentage","position","bg-size","length","url"])){case"percentage":case"position":return t.modifier?void 0:[x("background-position",r)];case"bg-size":case"length":case"size":return t.modifier?void 0:[x("background-size",r)];case"image":case"url":return t.modifier?void 0:[x("background-image",r)];default:return r=Fe(r,t.modifier,e),null===r?void 0:[x("background-color",r)]}}{let r=We(t,e,["--background-color","--color"]);if(r)return[x("background-color",r)]}{if(t.modifier)return;let r=e.resolve(t.value.value,["--background-image"]);if(r)return[x("background-image",r)]}}})),r("bg",(()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--background-color","--color"],modifiers:Array.from({length:21},((e,t)=>""+5*t))},{values:[],valueThemeKeys:["--background-image"]}]));let h=()=>z([Ve("--tw-gradient-position"),Ve("--tw-gradient-from","#0000",""),Ve("--tw-gradient-via","#0000",""),Ve("--tw-gradient-to","#0000",""),Ve("--tw-gradient-stops"),Ve("--tw-gradient-via-stops"),Ve("--tw-gradient-from-position","0%",""),Ve("--tw-gradient-via-position","50%",""),Ve("--tw-gradient-to-position","100%","")]);function m(n,o){t.functional(n,(t=>{if(t.value){if("arbitrary"===t.value.kind){let r=t.value.value;switch(t.value.dataType??ie(r,["color","length","percentage"])){case"length":case"percentage":return t.modifier?void 0:o.position(r);default:return r=Fe(r,t.modifier,e),null===r?void 0:o.color(r)}}{let r=We(t,e,["--background-color","--color"]);if(r)return o.color(r)}{if(t.modifier)return;let r=e.resolve(t.value.value,["--gradient-color-stop-positions"]);if(r)return o.position(r);if("%"===t.value.value[t.value.value.length-1]&&be(t.value.value.slice(0,-1)))return o.position(t.value.value)}}})),r(n,(()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--background-color","--color"],modifiers:Array.from({length:21},((e,t)=>""+5*t))},{values:Array.from({length:21},((e,t)=>5*t+"%")),valueThemeKeys:["--gradient-color-stop-positions"]}]))}m("from",{color:e=>[h(),x("--tw-sort","--tw-gradient-from"),x("--tw-gradient-from",e),x("--tw-gradient-stops","var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))")],position:e=>[h(),x("--tw-gradient-from-position",e)]}),n("via-none",[["--tw-gradient-via-stops","initial"]]),m("via",{color:e=>[h(),x("--tw-sort","--tw-gradient-via"),x("--tw-gradient-via",e),x("--tw-gradient-via-stops","var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position)"),x("--tw-gradient-stops","var(--tw-gradient-via-stops)")],position:e=>[h(),x("--tw-gradient-via-position",e)]}),m("to",{color:e=>[h(),x("--tw-sort","--tw-gradient-to"),x("--tw-gradient-to",e),x("--tw-gradient-stops","var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))")],position:e=>[h(),x("--tw-gradient-to-position",e)]}),n("mask-none",[["mask-image","none"]]),t.functional("mask",(e=>{if(!e.value||e.modifier||"arbitrary"!==e.value.kind)return;let t=e.value.value;switch(e.value.dataType??ie(t,["image","percentage","position","bg-size","length","url"])){case"percentage":case"position":return e.modifier?void 0:[x("mask-position",t)];case"bg-size":case"length":case"size":return[x("mask-size",t)];default:return[x("mask-image",t)]}})),n("mask-add",[["mask-composite","add"]]),n("mask-subtract",[["mask-composite","subtract"]]),n("mask-intersect",[["mask-composite","intersect"]]),n("mask-exclude",[["mask-composite","exclude"]]),n("mask-alpha",[["mask-mode","alpha"]]),n("mask-luminance",[["mask-mode","luminance"]]),n("mask-match",[["mask-mode","match-source"]]),n("mask-type-alpha",[["mask-type","alpha"]]),n("mask-type-luminance",[["mask-type","luminance"]]),n("mask-auto",[["mask-size","auto"]]),n("mask-cover",[["mask-size","cover"]]),n("mask-contain",[["mask-size","contain"]]),o("mask-size",{handle(e){if(e)return[x("mask-size",e)]}}),n("mask-top",[["mask-position","top"]]),n("mask-top-left",[["mask-position","left top"]]),n("mask-top-right",[["mask-position","right top"]]),n("mask-bottom",[["mask-position","bottom"]]),n("mask-bottom-left",[["mask-position","left bottom"]]),n("mask-bottom-right",[["mask-position","right bottom"]]),n("mask-left",[["mask-position","left"]]),n("mask-right",[["mask-position","right"]]),n("mask-center",[["mask-position","center"]]),o("mask-position",{handle(e){if(e)return[x("mask-position",e)]}}),n("mask-repeat",[["mask-repeat","repeat"]]),n("mask-no-repeat",[["mask-repeat","no-repeat"]]),n("mask-repeat-x",[["mask-repeat","repeat-x"]]),n("mask-repeat-y",[["mask-repeat","repeat-y"]]),n("mask-repeat-round",[["mask-repeat","round"]]),n("mask-repeat-space",[["mask-repeat","space"]]),n("mask-clip-border",[["mask-clip","border-box"]]),n("mask-clip-padding",[["mask-clip","padding-box"]]),n("mask-clip-content",[["mask-clip","content-box"]]),n("mask-clip-fill",[["mask-clip","fill-box"]]),n("mask-clip-stroke",[["mask-clip","stroke-box"]]),n("mask-clip-view",[["mask-clip","view-box"]]),n("mask-no-clip",[["mask-clip","no-clip"]]),n("mask-origin-border",[["mask-origin","border-box"]]),n("mask-origin-padding",[["mask-origin","padding-box"]]),n("mask-origin-content",[["mask-origin","content-box"]]),n("mask-origin-fill",[["mask-origin","fill-box"]]),n("mask-origin-stroke",[["mask-origin","stroke-box"]]),n("mask-origin-view",[["mask-origin","view-box"]]);let g=()=>z([Ve("--tw-mask-linear","linear-gradient(#fff, #fff)"),Ve("--tw-mask-radial","linear-gradient(#fff, #fff)"),Ve("--tw-mask-conic","linear-gradient(#fff, #fff)")]);function v(n,o){t.functional(n,(t=>{if(t.value){if("arbitrary"===t.value.kind){let r=t.value.value;switch(t.value.dataType??ie(r,["length","percentage","color"])){case"color":return r=Fe(r,t.modifier,e),null===r?void 0:o.color(r);case"percentage":return t.modifier||!be(r.slice(0,-1))?void 0:o.position(r);default:return t.modifier?void 0:o.position(r)}}{let r=We(t,e,["--background-color","--color"]);if(r)return o.color(r)}{if(t.modifier)return;let r=ie(t.value.value,["number","percentage"]);if(!r)return;switch(r){case"number":{let r=e.resolve(null,["--spacing"]);return r&&xe(t.value.value)?o.position(`calc(${r} * ${t.value.value})`):void 0}case"percentage":return be(t.value.value.slice(0,-1))?o.position(t.value.value):void 0;default:return}}}})),r(n,(()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--background-color","--color"],modifiers:Array.from({length:21},((e,t)=>""+5*t))},{values:Array.from({length:21},((e,t)=>5*t+"%")),valueThemeKeys:["--gradient-color-stop-positions"]}])),r(n,(()=>[{values:Array.from({length:21},((e,t)=>5*t+"%"))},{values:e.get(["--spacing"])?Ke:[]},{values:["current","inherit","transparent"],valueThemeKeys:["--background-color","--color"],modifiers:Array.from({length:21},((e,t)=>""+5*t))}]))}let w=()=>z([Ve("--tw-mask-left","linear-gradient(#fff, #fff)"),Ve("--tw-mask-right","linear-gradient(#fff, #fff)"),Ve("--tw-mask-bottom","linear-gradient(#fff, #fff)"),Ve("--tw-mask-top","linear-gradient(#fff, #fff)")]);function $(e,t,r){v(e,{color(e){let n=[g(),w(),x("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),x("mask-composite","intersect"),x("--tw-mask-linear","var(--tw-mask-left), var(--tw-mask-right), var(--tw-mask-bottom), var(--tw-mask-top)")];for(let o of["top","right","bottom","left"])r[o]&&(n.push(x(`--tw-mask-${o}`,`linear-gradient(to ${o}, var(--tw-mask-${o}-from-color) var(--tw-mask-${o}-from-position), var(--tw-mask-${o}-to-color) var(--tw-mask-${o}-to-position))`)),n.push(z([Ve(`--tw-mask-${o}-from-position`,"0%"),Ve(`--tw-mask-${o}-to-position`,"100%"),Ve(`--tw-mask-${o}-from-color`,"black"),Ve(`--tw-mask-${o}-to-color`,"transparent")])),n.push(x(`--tw-mask-${o}-${t}-color`,e)));return n},position(e){let n=[g(),w(),x("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),x("mask-composite","intersect"),x("--tw-mask-linear","var(--tw-mask-left), var(--tw-mask-right), var(--tw-mask-bottom), var(--tw-mask-top)")];for(let o of["top","right","bottom","left"])r[o]&&(n.push(x(`--tw-mask-${o}`,`linear-gradient(to ${o}, var(--tw-mask-${o}-from-color) var(--tw-mask-${o}-from-position), var(--tw-mask-${o}-to-color) var(--tw-mask-${o}-to-position))`)),n.push(z([Ve(`--tw-mask-${o}-from-position`,"0%"),Ve(`--tw-mask-${o}-to-position`,"100%"),Ve(`--tw-mask-${o}-from-color`,"black"),Ve(`--tw-mask-${o}-to-color`,"transparent")])),n.push(x(`--tw-mask-${o}-${t}-position`,e)));return n}})}$("mask-x-from","from",{top:!1,right:!0,bottom:!1,left:!0}),$("mask-x-to","to",{top:!1,right:!0,bottom:!1,left:!0}),$("mask-y-from","from",{top:!0,right:!1,bottom:!0,left:!1}),$("mask-y-to","to",{top:!0,right:!1,bottom:!0,left:!1}),$("mask-t-from","from",{top:!0,right:!1,bottom:!1,left:!1}),$("mask-t-to","to",{top:!0,right:!1,bottom:!1,left:!1}),$("mask-r-from","from",{top:!1,right:!0,bottom:!1,left:!1}),$("mask-r-to","to",{top:!1,right:!0,bottom:!1,left:!1}),$("mask-b-from","from",{top:!1,right:!1,bottom:!0,left:!1}),$("mask-b-to","to",{top:!1,right:!1,bottom:!0,left:!1}),$("mask-l-from","from",{top:!1,right:!1,bottom:!1,left:!0}),$("mask-l-to","to",{top:!1,right:!1,bottom:!1,left:!0});let A=()=>z([Ve("--tw-mask-linear-position","0deg"),Ve("--tw-mask-linear-from-position","0%"),Ve("--tw-mask-linear-to-position","100%"),Ve("--tw-mask-linear-from-color","black"),Ve("--tw-mask-linear-to-color","transparent")]);o("mask-linear",{defaultValue:null,supportsNegative:!0,supportsFractions:!1,handleBareValue:e=>be(e.value)?`calc(1deg * ${e.value})`:null,handleNegativeBareValue:e=>be(e.value)?`calc(1deg * -${e.value})`:null,handle:e=>[g(),A(),x("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),x("mask-composite","intersect"),x("--tw-mask-linear","linear-gradient(var(--tw-mask-linear-stops, var(--tw-mask-linear-position)))"),x("--tw-mask-linear-position",e)]}),r("mask-linear",(()=>[{supportsNegative:!0,values:["0","1","2","3","6","12","45","90","180"]}])),v("mask-linear-from",{color:e=>[g(),A(),x("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),x("mask-composite","intersect"),x("--tw-mask-linear-stops","var(--tw-mask-linear-position), var(--tw-mask-linear-from-color) var(--tw-mask-linear-from-position), var(--tw-mask-linear-to-color) var(--tw-mask-linear-to-position)"),x("--tw-mask-linear","linear-gradient(var(--tw-mask-linear-stops))"),x("--tw-mask-linear-from-color",e)],position:e=>[g(),A(),x("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),x("mask-composite","intersect"),x("--tw-mask-linear-stops","var(--tw-mask-linear-position), var(--tw-mask-linear-from-color) var(--tw-mask-linear-from-position), var(--tw-mask-linear-to-color) var(--tw-mask-linear-to-position)"),x("--tw-mask-linear","linear-gradient(var(--tw-mask-linear-stops))"),x("--tw-mask-linear-from-position",e)]}),v("mask-linear-to",{color:e=>[g(),A(),x("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),x("mask-composite","intersect"),x("--tw-mask-linear-stops","var(--tw-mask-linear-position), var(--tw-mask-linear-from-color) var(--tw-mask-linear-from-position), var(--tw-mask-linear-to-color) var(--tw-mask-linear-to-position)"),x("--tw-mask-linear","linear-gradient(var(--tw-mask-linear-stops))"),x("--tw-mask-linear-to-color",e)],position:e=>[g(),A(),x("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),x("mask-composite","intersect"),x("--tw-mask-linear-stops","var(--tw-mask-linear-position), var(--tw-mask-linear-from-color) var(--tw-mask-linear-from-position), var(--tw-mask-linear-to-color) var(--tw-mask-linear-to-position)"),x("--tw-mask-linear","linear-gradient(var(--tw-mask-linear-stops))"),x("--tw-mask-linear-to-position",e)]});let C=()=>z([Ve("--tw-mask-radial-from-position","0%"),Ve("--tw-mask-radial-to-position","100%"),Ve("--tw-mask-radial-from-color","black"),Ve("--tw-mask-radial-to-color","transparent"),Ve("--tw-mask-radial-shape","ellipse"),Ve("--tw-mask-radial-size","farthest-corner"),Ve("--tw-mask-radial-position","center")]);n("mask-circle",[["--tw-mask-radial-shape","circle"]]),n("mask-ellipse",[["--tw-mask-radial-shape","ellipse"]]),n("mask-radial-closest-side",[["--tw-mask-radial-size","closest-side"]]),n("mask-radial-farthest-side",[["--tw-mask-radial-size","farthest-side"]]),n("mask-radial-closest-corner",[["--tw-mask-radial-size","closest-corner"]]),n("mask-radial-farthest-corner",[["--tw-mask-radial-size","farthest-corner"]]),n("mask-radial-at-top",[["--tw-mask-radial-position","top"]]),n("mask-radial-at-top-left",[["--tw-mask-radial-position","top left"]]),n("mask-radial-at-top-right",[["--tw-mask-radial-position","top right"]]),n("mask-radial-at-bottom",[["--tw-mask-radial-position","bottom"]]),n("mask-radial-at-bottom-left",[["--tw-mask-radial-position","bottom left"]]),n("mask-radial-at-bottom-right",[["--tw-mask-radial-position","bottom right"]]),n("mask-radial-at-left",[["--tw-mask-radial-position","left"]]),n("mask-radial-at-right",[["--tw-mask-radial-position","right"]]),n("mask-radial-at-center",[["--tw-mask-radial-position","center"]]),o("mask-radial-at",{defaultValue:null,supportsNegative:!1,supportsFractions:!1,handle:e=>[x("--tw-mask-radial-position",e)]}),o("mask-radial",{defaultValue:null,supportsNegative:!1,supportsFractions:!1,handle:e=>[g(),C(),x("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),x("mask-composite","intersect"),x("--tw-mask-radial","radial-gradient(var(--tw-mask-radial-stops, var(--tw-mask-radial-size)))"),x("--tw-mask-radial-size",e)]}),v("mask-radial-from",{color:e=>[g(),C(),x("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),x("mask-composite","intersect"),x("--tw-mask-radial-stops","var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), var(--tw-mask-radial-from-color) var(--tw-mask-radial-from-position), var(--tw-mask-radial-to-color) var(--tw-mask-radial-to-position)"),x("--tw-mask-radial","radial-gradient(var(--tw-mask-radial-stops))"),x("--tw-mask-radial-from-color",e)],position:e=>[g(),C(),x("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),x("mask-composite","intersect"),x("--tw-mask-radial-stops","var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), var(--tw-mask-radial-from-color) var(--tw-mask-radial-from-position), var(--tw-mask-radial-to-color) var(--tw-mask-radial-to-position)"),x("--tw-mask-radial","radial-gradient(var(--tw-mask-radial-stops))"),x("--tw-mask-radial-from-position",e)]}),v("mask-radial-to",{color:e=>[g(),C(),x("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),x("mask-composite","intersect"),x("--tw-mask-radial-stops","var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), var(--tw-mask-radial-from-color) var(--tw-mask-radial-from-position), var(--tw-mask-radial-to-color) var(--tw-mask-radial-to-position)"),x("--tw-mask-radial","radial-gradient(var(--tw-mask-radial-stops))"),x("--tw-mask-radial-to-color",e)],position:e=>[g(),C(),x("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),x("mask-composite","intersect"),x("--tw-mask-radial-stops","var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), var(--tw-mask-radial-from-color) var(--tw-mask-radial-from-position), var(--tw-mask-radial-to-color) var(--tw-mask-radial-to-position)"),x("--tw-mask-radial","radial-gradient(var(--tw-mask-radial-stops))"),x("--tw-mask-radial-to-position",e)]});let j=()=>z([Ve("--tw-mask-conic-position","0deg"),Ve("--tw-mask-conic-from-position","0%"),Ve("--tw-mask-conic-to-position","100%"),Ve("--tw-mask-conic-from-color","black"),Ve("--tw-mask-conic-to-color","transparent")]);o("mask-conic",{defaultValue:null,supportsNegative:!0,supportsFractions:!1,handleBareValue:e=>be(e.value)?`calc(1deg * ${e.value})`:null,handleNegativeBareValue:e=>be(e.value)?`calc(1deg * -${e.value})`:null,handle:e=>[g(),j(),x("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),x("mask-composite","intersect"),x("--tw-mask-conic","conic-gradient(var(--tw-mask-conic-stops, var(--tw-mask-conic-position)))"),x("--tw-mask-conic-position",e)]}),r("mask-conic",(()=>[{supportsNegative:!0,values:["0","1","2","3","6","12","45","90","180"]}])),v("mask-conic-from",{color:e=>[g(),j(),x("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),x("mask-composite","intersect"),x("--tw-mask-conic-stops","from var(--tw-mask-conic-position), var(--tw-mask-conic-from-color) var(--tw-mask-conic-from-position), var(--tw-mask-conic-to-color) var(--tw-mask-conic-to-position)"),x("--tw-mask-conic","conic-gradient(var(--tw-mask-conic-stops))"),x("--tw-mask-conic-from-color",e)],position:e=>[g(),j(),x("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),x("mask-composite","intersect"),x("--tw-mask-conic-stops","from var(--tw-mask-conic-position), var(--tw-mask-conic-from-color) var(--tw-mask-conic-from-position), var(--tw-mask-conic-to-color) var(--tw-mask-conic-to-position)"),x("--tw-mask-conic","conic-gradient(var(--tw-mask-conic-stops))"),x("--tw-mask-conic-from-position",e)]}),v("mask-conic-to",{color:e=>[g(),j(),x("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),x("mask-composite","intersect"),x("--tw-mask-conic-stops","from var(--tw-mask-conic-position), var(--tw-mask-conic-from-color) var(--tw-mask-conic-from-position), var(--tw-mask-conic-to-color) var(--tw-mask-conic-to-position)"),x("--tw-mask-conic","conic-gradient(var(--tw-mask-conic-stops))"),x("--tw-mask-conic-to-color",e)],position:e=>[g(),j(),x("mask-image","var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic)"),x("mask-composite","intersect"),x("--tw-mask-conic-stops","from var(--tw-mask-conic-position), var(--tw-mask-conic-from-color) var(--tw-mask-conic-from-position), var(--tw-mask-conic-to-color) var(--tw-mask-conic-to-position)"),x("--tw-mask-conic","conic-gradient(var(--tw-mask-conic-stops))"),x("--tw-mask-conic-to-position",e)]}),n("box-decoration-slice",[["-webkit-box-decoration-break","slice"],["box-decoration-break","slice"]]),n("box-decoration-clone",[["-webkit-box-decoration-break","clone"],["box-decoration-break","clone"]]),n("bg-clip-text",[["background-clip","text"]]),n("bg-clip-border",[["background-clip","border-box"]]),n("bg-clip-padding",[["background-clip","padding-box"]]),n("bg-clip-content",[["background-clip","content-box"]]),n("bg-origin-border",[["background-origin","border-box"]]),n("bg-origin-padding",[["background-origin","padding-box"]]),n("bg-origin-content",[["background-origin","content-box"]]);for(let e of["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"])n(`bg-blend-${e}`,[["background-blend-mode",e]]),n(`mix-blend-${e}`,[["mix-blend-mode",e]]);n("mix-blend-plus-darker",[["mix-blend-mode","plus-darker"]]),n("mix-blend-plus-lighter",[["mix-blend-mode","plus-lighter"]]),n("fill-none",[["fill","none"]]),t.functional("fill",(t=>{if(!t.value)return;if("arbitrary"===t.value.kind){let r=Fe(t.value.value,t.modifier,e);return null===r?void 0:[x("fill",r)]}let r=We(t,e,["--fill","--color"]);return r?[x("fill",r)]:void 0})),r("fill",(()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--fill","--color"],modifiers:Array.from({length:21},((e,t)=>""+5*t))}])),n("stroke-none",[["stroke","none"]]),t.functional("stroke",(t=>{if(t.value){if("arbitrary"===t.value.kind){let r=t.value.value;switch(t.value.dataType??ie(r,["color","number","length","percentage"])){case"number":case"length":case"percentage":return t.modifier?void 0:[x("stroke-width",r)];default:return r=Fe(t.value.value,t.modifier,e),null===r?void 0:[x("stroke",r)]}}{let r=We(t,e,["--stroke","--color"]);if(r)return[x("stroke",r)]}{let r=e.resolve(t.value.value,["--stroke-width"]);if(r)return[x("stroke-width",r)];if(be(t.value.value))return[x("stroke-width",t.value.value)]}}})),r("stroke",(()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--stroke","--color"],modifiers:Array.from({length:21},((e,t)=>""+5*t))},{values:["0","1","2","3"],valueThemeKeys:["--stroke-width"]}])),n("object-contain",[["object-fit","contain"]]),n("object-cover",[["object-fit","cover"]]),n("object-fill",[["object-fit","fill"]]),n("object-none",[["object-fit","none"]]),n("object-scale-down",[["object-fit","scale-down"]]),n("object-top",[["object-position","top"]]),n("object-top-left",[["object-position","left top"]]),n("object-top-right",[["object-position","right top"]]),n("object-bottom",[["object-position","bottom"]]),n("object-bottom-left",[["object-position","left bottom"]]),n("object-bottom-right",[["object-position","right bottom"]]),n("object-left",[["object-position","left"]]),n("object-right",[["object-position","right"]]),n("object-center",[["object-position","center"]]),o("object",{themeKeys:["--object-position"],handle:e=>[x("object-position",e)]});for(let[e,t]of[["p","padding"],["px","padding-inline"],["py","padding-block"],["ps","padding-inline-start"],["pe","padding-inline-end"],["pt","padding-top"],["pr","padding-right"],["pb","padding-bottom"],["pl","padding-left"]])a(e,["--padding","--spacing"],(e=>[x(t,e)]));n("text-left",[["text-align","left"]]),n("text-center",[["text-align","center"]]),n("text-right",[["text-align","right"]]),n("text-justify",[["text-align","justify"]]),n("text-start",[["text-align","start"]]),n("text-end",[["text-align","end"]]),a("indent",["--text-indent","--spacing"],(e=>[x("text-indent",e)]),{supportsNegative:!0}),n("align-baseline",[["vertical-align","baseline"]]),n("align-top",[["vertical-align","top"]]),n("align-middle",[["vertical-align","middle"]]),n("align-bottom",[["vertical-align","bottom"]]),n("align-text-top",[["vertical-align","text-top"]]),n("align-text-bottom",[["vertical-align","text-bottom"]]),n("align-sub",[["vertical-align","sub"]]),n("align-super",[["vertical-align","super"]]),o("align",{themeKeys:[],handle:e=>[x("vertical-align",e)]}),t.functional("font",(t=>{if(t.value&&!t.modifier){if("arbitrary"===t.value.kind){let e=t.value.value;switch(t.value.dataType??ie(e,["number","generic-name","family-name"])){case"generic-name":case"family-name":return[x("font-family",e)];default:return[z([Ve("--tw-font-weight")]),x("--tw-font-weight",e),x("font-weight",e)]}}{let r=e.resolveWith(t.value.value,["--font"],["--font-feature-settings","--font-variation-settings"]);if(r){let[e,t={}]=r;return[x("font-family",e),x("font-feature-settings",t["--font-feature-settings"]),x("font-variation-settings",t["--font-variation-settings"])]}}{let r=e.resolve(t.value.value,["--font-weight"]);if(r)return[z([Ve("--tw-font-weight")]),x("--tw-font-weight",r),x("font-weight",r)]}}})),r("font",(()=>[{values:[],valueThemeKeys:["--font"]},{values:[],valueThemeKeys:["--font-weight"]}])),n("uppercase",[["text-transform","uppercase"]]),n("lowercase",[["text-transform","lowercase"]]),n("capitalize",[["text-transform","capitalize"]]),n("normal-case",[["text-transform","none"]]),n("italic",[["font-style","italic"]]),n("not-italic",[["font-style","normal"]]),n("underline",[["text-decoration-line","underline"]]),n("overline",[["text-decoration-line","overline"]]),n("line-through",[["text-decoration-line","line-through"]]),n("no-underline",[["text-decoration-line","none"]]),n("font-stretch-normal",[["font-stretch","normal"]]),n("font-stretch-ultra-condensed",[["font-stretch","ultra-condensed"]]),n("font-stretch-extra-condensed",[["font-stretch","extra-condensed"]]),n("font-stretch-condensed",[["font-stretch","condensed"]]),n("font-stretch-semi-condensed",[["font-stretch","semi-condensed"]]),n("font-stretch-semi-expanded",[["font-stretch","semi-expanded"]]),n("font-stretch-expanded",[["font-stretch","expanded"]]),n("font-stretch-extra-expanded",[["font-stretch","extra-expanded"]]),n("font-stretch-ultra-expanded",[["font-stretch","ultra-expanded"]]),o("font-stretch",{handleBareValue:({value:e})=>{if(!e.endsWith("%"))return null;let t=Number(e.slice(0,-1));return!be(t)||Number.isNaN(t)||t<50||t>200?null:e},handle:e=>[x("font-stretch",e)]}),r("font-stretch",(()=>[{values:["50%","75%","90%","95%","100%","105%","110%","125%","150%","200%"]}])),i("placeholder",{themeKeys:["--background-color","--color"],handle:e=>[k("&::placeholder",[x("--tw-sort","placeholder-color"),x("color",e)])]}),n("decoration-solid",[["text-decoration-style","solid"]]),n("decoration-double",[["text-decoration-style","double"]]),n("decoration-dotted",[["text-decoration-style","dotted"]]),n("decoration-dashed",[["text-decoration-style","dashed"]]),n("decoration-wavy",[["text-decoration-style","wavy"]]),n("decoration-auto",[["text-decoration-thickness","auto"]]),n("decoration-from-font",[["text-decoration-thickness","from-font"]]),t.functional("decoration",(t=>{if(t.value){if("arbitrary"===t.value.kind){let r=t.value.value;switch(t.value.dataType??ie(r,["color","length","percentage"])){case"length":case"percentage":return t.modifier?void 0:[x("text-decoration-thickness",r)];default:return r=Fe(r,t.modifier,e),null===r?void 0:[x("text-decoration-color",r)]}}{let r=e.resolve(t.value.value,["--text-decoration-thickness"]);if(r)return t.modifier?void 0:[x("text-decoration-thickness",r)];if(be(t.value.value))return t.modifier?void 0:[x("text-decoration-thickness",`${t.value.value}px`)]}{let r=We(t,e,["--text-decoration-color","--color"]);if(r)return[x("text-decoration-color",r)]}}})),r("decoration",(()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--text-decoration-color","--color"],modifiers:Array.from({length:21},((e,t)=>""+5*t))},{values:["0","1","2"],valueThemeKeys:["--text-decoration-thickness"]}])),n("animate-none",[["animation","none"]]),o("animate",{themeKeys:["--animate"],handle:e=>[x("animation",e)]});{let i=["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,)"].join(" "),a=["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,)"].join(" "),l=()=>z([Ve("--tw-blur"),Ve("--tw-brightness"),Ve("--tw-contrast"),Ve("--tw-grayscale"),Ve("--tw-hue-rotate"),Ve("--tw-invert"),Ve("--tw-opacity"),Ve("--tw-saturate"),Ve("--tw-sepia"),Ve("--tw-drop-shadow"),Ve("--tw-drop-shadow-color"),Ve("--tw-drop-shadow-alpha","100%",""),Ve("--tw-drop-shadow-size")]),s=()=>z([Ve("--tw-backdrop-blur"),Ve("--tw-backdrop-brightness"),Ve("--tw-backdrop-contrast"),Ve("--tw-backdrop-grayscale"),Ve("--tw-backdrop-hue-rotate"),Ve("--tw-backdrop-invert"),Ve("--tw-backdrop-opacity"),Ve("--tw-backdrop-saturate"),Ve("--tw-backdrop-sepia")]);t.functional("filter",(e=>{if(!e.modifier){if(null===e.value)return[l(),x("filter",i)];if("arbitrary"===e.value.kind)return[x("filter",e.value.value)];if("none"===e.value.value)return[x("filter","none")]}})),t.functional("backdrop-filter",(e=>{if(!e.modifier){if(null===e.value)return[s(),x("-webkit-backdrop-filter",a),x("backdrop-filter",a)];if("arbitrary"===e.value.kind)return[x("-webkit-backdrop-filter",e.value.value),x("backdrop-filter",e.value.value)];if("none"===e.value.value)return[x("-webkit-backdrop-filter","none"),x("backdrop-filter","none")]}})),o("blur",{themeKeys:["--blur"],handle:e=>[l(),x("--tw-blur",`blur(${e})`),x("filter",i)]}),n("blur-none",[l,["--tw-blur"," "],["filter",i]]),o("backdrop-blur",{themeKeys:["--backdrop-blur","--blur"],handle:e=>[s(),x("--tw-backdrop-blur",`blur(${e})`),x("-webkit-backdrop-filter",a),x("backdrop-filter",a)]}),n("backdrop-blur-none",[s,["--tw-backdrop-blur"," "],["-webkit-backdrop-filter",a],["backdrop-filter",a]]),o("brightness",{themeKeys:["--brightness"],handleBareValue:({value:e})=>be(e)?`${e}%`:null,handle:e=>[l(),x("--tw-brightness",`brightness(${e})`),x("filter",i)]}),o("backdrop-brightness",{themeKeys:["--backdrop-brightness","--brightness"],handleBareValue:({value:e})=>be(e)?`${e}%`:null,handle:e=>[s(),x("--tw-backdrop-brightness",`brightness(${e})`),x("-webkit-backdrop-filter",a),x("backdrop-filter",a)]}),r("brightness",(()=>[{values:["0","50","75","90","95","100","105","110","125","150","200"],valueThemeKeys:["--brightness"]}])),r("backdrop-brightness",(()=>[{values:["0","50","75","90","95","100","105","110","125","150","200"],valueThemeKeys:["--backdrop-brightness","--brightness"]}])),o("contrast",{themeKeys:["--contrast"],handleBareValue:({value:e})=>be(e)?`${e}%`:null,handle:e=>[l(),x("--tw-contrast",`contrast(${e})`),x("filter",i)]}),o("backdrop-contrast",{themeKeys:["--backdrop-contrast","--contrast"],handleBareValue:({value:e})=>be(e)?`${e}%`:null,handle:e=>[s(),x("--tw-backdrop-contrast",`contrast(${e})`),x("-webkit-backdrop-filter",a),x("backdrop-filter",a)]}),r("contrast",(()=>[{values:["0","50","75","100","125","150","200"],valueThemeKeys:["--contrast"]}])),r("backdrop-contrast",(()=>[{values:["0","50","75","100","125","150","200"],valueThemeKeys:["--backdrop-contrast","--contrast"]}])),o("grayscale",{themeKeys:["--grayscale"],handleBareValue:({value:e})=>be(e)?`${e}%`:null,defaultValue:"100%",handle:e=>[l(),x("--tw-grayscale",`grayscale(${e})`),x("filter",i)]}),o("backdrop-grayscale",{themeKeys:["--backdrop-grayscale","--grayscale"],handleBareValue:({value:e})=>be(e)?`${e}%`:null,defaultValue:"100%",handle:e=>[s(),x("--tw-backdrop-grayscale",`grayscale(${e})`),x("-webkit-backdrop-filter",a),x("backdrop-filter",a)]}),r("grayscale",(()=>[{values:["0","25","50","75","100"],valueThemeKeys:["--grayscale"],hasDefaultValue:!0}])),r("backdrop-grayscale",(()=>[{values:["0","25","50","75","100"],valueThemeKeys:["--backdrop-grayscale","--grayscale"],hasDefaultValue:!0}])),o("hue-rotate",{supportsNegative:!0,themeKeys:["--hue-rotate"],handleBareValue:({value:e})=>be(e)?`${e}deg`:null,handle:e=>[l(),x("--tw-hue-rotate",`hue-rotate(${e})`),x("filter",i)]}),o("backdrop-hue-rotate",{supportsNegative:!0,themeKeys:["--backdrop-hue-rotate","--hue-rotate"],handleBareValue:({value:e})=>be(e)?`${e}deg`:null,handle:e=>[s(),x("--tw-backdrop-hue-rotate",`hue-rotate(${e})`),x("-webkit-backdrop-filter",a),x("backdrop-filter",a)]}),r("hue-rotate",(()=>[{values:["0","15","30","60","90","180"],valueThemeKeys:["--hue-rotate"]}])),r("backdrop-hue-rotate",(()=>[{values:["0","15","30","60","90","180"],valueThemeKeys:["--backdrop-hue-rotate","--hue-rotate"]}])),o("invert",{themeKeys:["--invert"],handleBareValue:({value:e})=>be(e)?`${e}%`:null,defaultValue:"100%",handle:e=>[l(),x("--tw-invert",`invert(${e})`),x("filter",i)]}),o("backdrop-invert",{themeKeys:["--backdrop-invert","--invert"],handleBareValue:({value:e})=>be(e)?`${e}%`:null,defaultValue:"100%",handle:e=>[s(),x("--tw-backdrop-invert",`invert(${e})`),x("-webkit-backdrop-filter",a),x("backdrop-filter",a)]}),r("invert",(()=>[{values:["0","25","50","75","100"],valueThemeKeys:["--invert"],hasDefaultValue:!0}])),r("backdrop-invert",(()=>[{values:["0","25","50","75","100"],valueThemeKeys:["--backdrop-invert","--invert"],hasDefaultValue:!0}])),o("saturate",{themeKeys:["--saturate"],handleBareValue:({value:e})=>be(e)?`${e}%`:null,handle:e=>[l(),x("--tw-saturate",`saturate(${e})`),x("filter",i)]}),o("backdrop-saturate",{themeKeys:["--backdrop-saturate","--saturate"],handleBareValue:({value:e})=>be(e)?`${e}%`:null,handle:e=>[s(),x("--tw-backdrop-saturate",`saturate(${e})`),x("-webkit-backdrop-filter",a),x("backdrop-filter",a)]}),r("saturate",(()=>[{values:["0","50","100","150","200"],valueThemeKeys:["--saturate"]}])),r("backdrop-saturate",(()=>[{values:["0","50","100","150","200"],valueThemeKeys:["--backdrop-saturate","--saturate"]}])),o("sepia",{themeKeys:["--sepia"],handleBareValue:({value:e})=>be(e)?`${e}%`:null,defaultValue:"100%",handle:e=>[l(),x("--tw-sepia",`sepia(${e})`),x("filter",i)]}),o("backdrop-sepia",{themeKeys:["--backdrop-sepia","--sepia"],handleBareValue:({value:e})=>be(e)?`${e}%`:null,defaultValue:"100%",handle:e=>[s(),x("--tw-backdrop-sepia",`sepia(${e})`),x("-webkit-backdrop-filter",a),x("backdrop-filter",a)]}),r("sepia",(()=>[{values:["0","50","100"],valueThemeKeys:["--sepia"],hasDefaultValue:!0}])),r("backdrop-sepia",(()=>[{values:["0","50","100"],valueThemeKeys:["--backdrop-sepia","--sepia"],hasDefaultValue:!0}])),n("drop-shadow-none",[l,["--tw-drop-shadow"," "],["filter",i]]),t.functional("drop-shadow",(t=>{let r;if(t.modifier&&("arbitrary"===t.modifier.kind?r=t.modifier.value:be(t.modifier.value)&&(r=`${t.modifier.value}%`)),!t.value){let t=e.get(["--drop-shadow"]),n=e.resolve(null,["--drop-shadow"]);return null===t||null===n?void 0:[l(),x("--tw-drop-shadow-alpha",r),...Be("--tw-drop-shadow-size",t,r,(e=>`var(--tw-drop-shadow-color, ${e})`)),x("--tw-drop-shadow",L(n,",").map((e=>`drop-shadow(${e})`)).join(" ")),x("filter",i)]}if("arbitrary"===t.value.kind){let n=t.value.value;return"color"===(t.value.dataType??ie(n,["color"]))?(n=Fe(n,t.modifier,e),null===n?void 0:[l(),x("--tw-drop-shadow-color",Ne(n,"var(--tw-drop-shadow-alpha)")),x("--tw-drop-shadow","var(--tw-drop-shadow-size)")]):t.modifier&&!r?void 0:[l(),x("--tw-drop-shadow-alpha",r),...Be("--tw-drop-shadow-size",n,r,(e=>`var(--tw-drop-shadow-color, ${e})`)),x("--tw-drop-shadow","var(--tw-drop-shadow-size)"),x("filter",i)]}{let n=e.get([`--drop-shadow-${t.value.value}`]),o=e.resolve(t.value.value,["--drop-shadow"]);if(n&&o)return t.modifier&&!r?void 0:r?[l(),x("--tw-drop-shadow-alpha",r),...Be("--tw-drop-shadow-size",n,r,(e=>`var(--tw-drop-shadow-color, ${e})`)),x("--tw-drop-shadow","var(--tw-drop-shadow-size)"),x("filter",i)]:[l(),x("--tw-drop-shadow-alpha",r),...Be("--tw-drop-shadow-size",n,r,(e=>`var(--tw-drop-shadow-color, ${e})`)),x("--tw-drop-shadow",L(o,",").map((e=>`drop-shadow(${e})`)).join(" ")),x("filter",i)]}{let r=We(t,e,["--drop-shadow-color","--color"]);if(r)return"inherit"===r?[l(),x("--tw-drop-shadow-color","inherit"),x("--tw-drop-shadow","var(--tw-drop-shadow-size)")]:[l(),x("--tw-drop-shadow-color",Ne(r,"var(--tw-drop-shadow-alpha)")),x("--tw-drop-shadow","var(--tw-drop-shadow-size)")]}})),r("drop-shadow",(()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--drop-shadow-color","--color"],modifiers:Array.from({length:21},((e,t)=>""+5*t))},{valueThemeKeys:["--drop-shadow"]}])),o("backdrop-opacity",{themeKeys:["--backdrop-opacity","--opacity"],handleBareValue:({value:e})=>$e(e)?`${e}%`:null,handle:e=>[s(),x("--tw-backdrop-opacity",`opacity(${e})`),x("-webkit-backdrop-filter",a),x("backdrop-filter",a)]}),r("backdrop-opacity",(()=>[{values:Array.from({length:21},((e,t)=>""+5*t)),valueThemeKeys:["--backdrop-opacity","--opacity"]}]))}{let i=`var(--tw-ease, ${e.resolve(null,["--default-transition-timing-function"])??"ease"})`,a=`var(--tw-duration, ${e.resolve(null,["--default-transition-duration"])??"0s"})`;n("transition-none",[["transition-property","none"]]),n("transition-all",[["transition-property","all"],["transition-timing-function",i],["transition-duration",a]]),n("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",i],["transition-duration",a]]),n("transition-opacity",[["transition-property","opacity"],["transition-timing-function",i],["transition-duration",a]]),n("transition-shadow",[["transition-property","box-shadow"],["transition-timing-function",i],["transition-duration",a]]),n("transition-transform",[["transition-property","transform, translate, scale, rotate"],["transition-timing-function",i],["transition-duration",a]]),o("transition",{defaultValue:"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, visibility, content-visibility, overlay, pointer-events",themeKeys:["--transition-property"],handle:e=>[x("transition-property",e),x("transition-timing-function",i),x("transition-duration",a)]}),n("transition-discrete",[["transition-behavior","allow-discrete"]]),n("transition-normal",[["transition-behavior","normal"]]),o("delay",{handleBareValue:({value:e})=>be(e)?`${e}ms`:null,themeKeys:["--transition-delay"],handle:e=>[x("transition-delay",e)]});{let r=()=>z([Ve("--tw-duration")]);n("duration-initial",[r,["--tw-duration","initial"]]),t.functional("duration",(t=>{if(t.modifier||!t.value)return;let n=null;return"arbitrary"===t.value.kind?n=t.value.value:(n=e.resolve(t.value.fraction??t.value.value,["--transition-duration"]),null===n&&be(t.value.value)&&(n=`${t.value.value}ms`)),null!==n?[r(),x("--tw-duration",n),x("transition-duration",n)]:void 0}))}r("delay",(()=>[{values:["75","100","150","200","300","500","700","1000"],valueThemeKeys:["--transition-delay"]}])),r("duration",(()=>[{values:["75","100","150","200","300","500","700","1000"],valueThemeKeys:["--transition-duration"]}]))}{let e=()=>z([Ve("--tw-ease")]);n("ease-initial",[e,["--tw-ease","initial"]]),n("ease-linear",[e,["--tw-ease","linear"],["transition-timing-function","linear"]]),o("ease",{themeKeys:["--ease"],handle:t=>[e(),x("--tw-ease",t),x("transition-timing-function",t)]})}n("will-change-auto",[["will-change","auto"]]),n("will-change-scroll",[["will-change","scroll-position"]]),n("will-change-contents",[["will-change","contents"]]),n("will-change-transform",[["will-change","transform"]]),o("will-change",{themeKeys:[],handle:e=>[x("will-change",e)]}),n("content-none",[["--tw-content","none"],["content","none"]]),o("content",{themeKeys:[],handle:e=>[z([Ve("--tw-content",'""')]),x("--tw-content",e),x("content","var(--tw-content)")]});{let e="var(--tw-contain-size,) var(--tw-contain-layout,) var(--tw-contain-paint,) var(--tw-contain-style,)",t=()=>z([Ve("--tw-contain-size"),Ve("--tw-contain-layout"),Ve("--tw-contain-paint"),Ve("--tw-contain-style")]);n("contain-none",[["contain","none"]]),n("contain-content",[["contain","content"]]),n("contain-strict",[["contain","strict"]]),n("contain-size",[t,["--tw-contain-size","size"],["contain",e]]),n("contain-inline-size",[t,["--tw-contain-size","inline-size"],["contain",e]]),n("contain-layout",[t,["--tw-contain-layout","layout"],["contain",e]]),n("contain-paint",[t,["--tw-contain-paint","paint"],["contain",e]]),n("contain-style",[t,["--tw-contain-style","style"],["contain",e]]),o("contain",{themeKeys:[],handle:e=>[x("contain",e)]})}n("forced-color-adjust-none",[["forced-color-adjust","none"]]),n("forced-color-adjust-auto",[["forced-color-adjust","auto"]]),n("leading-none",[()=>z([Ve("--tw-leading")]),["--tw-leading","1"],["line-height","1"]]),a("leading",["--leading","--spacing"],(e=>[z([Ve("--tw-leading")]),x("--tw-leading",e),x("line-height",e)])),o("tracking",{supportsNegative:!0,themeKeys:["--tracking"],handle:e=>[z([Ve("--tw-tracking")]),x("--tw-tracking",e),x("letter-spacing",e)]}),n("antialiased",[["-webkit-font-smoothing","antialiased"],["-moz-osx-font-smoothing","grayscale"]]),n("subpixel-antialiased",[["-webkit-font-smoothing","auto"],["-moz-osx-font-smoothing","auto"]]);{let e="var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)",t=()=>z([Ve("--tw-ordinal"),Ve("--tw-slashed-zero"),Ve("--tw-numeric-figure"),Ve("--tw-numeric-spacing"),Ve("--tw-numeric-fraction")]);n("normal-nums",[["font-variant-numeric","normal"]]),n("ordinal",[t,["--tw-ordinal","ordinal"],["font-variant-numeric",e]]),n("slashed-zero",[t,["--tw-slashed-zero","slashed-zero"],["font-variant-numeric",e]]),n("lining-nums",[t,["--tw-numeric-figure","lining-nums"],["font-variant-numeric",e]]),n("oldstyle-nums",[t,["--tw-numeric-figure","oldstyle-nums"],["font-variant-numeric",e]]),n("proportional-nums",[t,["--tw-numeric-spacing","proportional-nums"],["font-variant-numeric",e]]),n("tabular-nums",[t,["--tw-numeric-spacing","tabular-nums"],["font-variant-numeric",e]]),n("diagonal-fractions",[t,["--tw-numeric-fraction","diagonal-fractions"],["font-variant-numeric",e]]),n("stacked-fractions",[t,["--tw-numeric-fraction","stacked-fractions"],["font-variant-numeric",e]])}{let i=()=>z([Ve("--tw-outline-style","solid")]);t.static("outline-hidden",(()=>[x("--tw-outline-style","none"),x("outline-style","none"),b("@media","(forced-colors: active)",[x("outline","2px solid transparent"),x("outline-offset","2px")])])),n("outline-none",[["--tw-outline-style","none"],["outline-style","none"]]),n("outline-solid",[["--tw-outline-style","solid"],["outline-style","solid"]]),n("outline-dashed",[["--tw-outline-style","dashed"],["outline-style","dashed"]]),n("outline-dotted",[["--tw-outline-style","dotted"],["outline-style","dotted"]]),n("outline-double",[["--tw-outline-style","double"],["outline-style","double"]]),t.functional("outline",(t=>{if(null===t.value){if(t.modifier)return;let r=e.get(["--default-outline-width"])??"1px";return[i(),x("outline-style","var(--tw-outline-style)"),x("outline-width",r)]}if("arbitrary"===t.value.kind){let r=t.value.value;switch(t.value.dataType??ie(r,["color","length","number","percentage"])){case"length":case"number":case"percentage":return t.modifier?void 0:[i(),x("outline-style","var(--tw-outline-style)"),x("outline-width",r)];default:return r=Fe(r,t.modifier,e),null===r?void 0:[x("outline-color",r)]}}{let r=We(t,e,["--outline-color","--color"]);if(r)return[x("outline-color",r)]}{if(t.modifier)return;let r=e.resolve(t.value.value,["--outline-width"]);if(r)return[i(),x("outline-style","var(--tw-outline-style)"),x("outline-width",r)];if(be(t.value.value))return[i(),x("outline-style","var(--tw-outline-style)"),x("outline-width",`${t.value.value}px`)]}})),r("outline",(()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--outline-color","--color"],modifiers:Array.from({length:21},((e,t)=>""+5*t)),hasDefaultValue:!0},{values:["0","1","2","4","8"],valueThemeKeys:["--outline-width"]}])),o("outline-offset",{supportsNegative:!0,themeKeys:["--outline-offset"],handleBareValue:({value:e})=>be(e)?`${e}px`:null,handle:e=>[x("outline-offset",e)]}),r("outline-offset",(()=>[{supportsNegative:!0,values:["0","1","2","4","8"],valueThemeKeys:["--outline-offset"]}]))}o("opacity",{themeKeys:["--opacity"],handleBareValue:({value:e})=>$e(e)?`${e}%`:null,handle:e=>[x("opacity",e)]}),r("opacity",(()=>[{values:Array.from({length:21},((e,t)=>""+5*t)),valueThemeKeys:["--opacity"]}])),n("underline-offset-auto",[["text-underline-offset","auto"]]),o("underline-offset",{supportsNegative:!0,themeKeys:["--text-underline-offset"],handleBareValue:({value:e})=>be(e)?`${e}px`:null,handle:e=>[x("text-underline-offset",e)]}),r("underline-offset",(()=>[{supportsNegative:!0,values:["0","1","2","4","8"],valueThemeKeys:["--text-underline-offset"]}])),t.functional("text",(t=>{if(t.value){if("arbitrary"===t.value.kind){let r=t.value.value;switch(t.value.dataType??ie(r,["color","length","percentage","absolute-size","relative-size"])){case"size":case"length":case"percentage":case"absolute-size":case"relative-size":if(t.modifier){let n="arbitrary"===t.modifier.kind?t.modifier.value:e.resolve(t.modifier.value,["--leading"]);if(!n&&xe(t.modifier.value)){let r=e.resolve(null,["--spacing"]);if(!r)return null;n=`calc(${r} * ${t.modifier.value})`}return!n&&"none"===t.modifier.value&&(n="1"),n?[x("font-size",r),x("line-height",n)]:null}return[x("font-size",r)];default:return r=Fe(r,t.modifier,e),null===r?void 0:[x("color",r)]}}{let r=We(t,e,["--text-color","--color"]);if(r)return[x("color",r)]}{let r=e.resolveWith(t.value.value,["--text"],["--line-height","--letter-spacing","--font-weight"]);if(r){let[n,o={}]=Array.isArray(r)?r:[r];if(t.modifier){let r="arbitrary"===t.modifier.kind?t.modifier.value:e.resolve(t.modifier.value,["--leading"]);if(!r&&xe(t.modifier.value)){let n=e.resolve(null,["--spacing"]);if(!n)return null;r=`calc(${n} * ${t.modifier.value})`}if(!r&&"none"===t.modifier.value&&(r="1"),!r)return null;let o=[x("font-size",n)];return r&&o.push(x("line-height",r)),o}return"string"==typeof o?[x("font-size",n),x("line-height",o)]:[x("font-size",n),x("line-height",o["--line-height"]?`var(--tw-leading, ${o["--line-height"]})`:void 0),x("letter-spacing",o["--letter-spacing"]?`var(--tw-tracking, ${o["--letter-spacing"]})`:void 0),x("font-weight",o["--font-weight"]?`var(--tw-font-weight, ${o["--font-weight"]})`:void 0)]}}}})),r("text",(()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--text-color","--color"],modifiers:Array.from({length:21},((e,t)=>""+5*t))},{values:[],valueThemeKeys:["--text"],modifiers:[],modifierThemeKeys:["--leading"]}]));let T=()=>z([Ve("--tw-text-shadow-color"),Ve("--tw-text-shadow-alpha","100%","")]);n("text-shadow-initial",[T,["--tw-text-shadow-color","initial"]]),t.functional("text-shadow",(t=>{let r;if(t.modifier&&("arbitrary"===t.modifier.kind?r=t.modifier.value:be(t.modifier.value)&&(r=`${t.modifier.value}%`)),!t.value){let t=e.get(["--text-shadow"]);return null===t?void 0:[T(),x("--tw-text-shadow-alpha",r),...Me("text-shadow",t,r,(e=>`var(--tw-text-shadow-color, ${e})`))]}if("arbitrary"===t.value.kind){let n=t.value.value;return"color"===(t.value.dataType??ie(n,["color"]))?(n=Fe(n,t.modifier,e),null===n?void 0:[T(),x("--tw-text-shadow-color",Ne(n,"var(--tw-text-shadow-alpha)"))]):[T(),x("--tw-text-shadow-alpha",r),...Me("text-shadow",n,r,(e=>`var(--tw-text-shadow-color, ${e})`))]}switch(t.value.value){case"none":return t.modifier?void 0:[T(),x("text-shadow","none")];case"inherit":return t.modifier?void 0:[T(),x("--tw-text-shadow-color","inherit")]}{let n=e.get([`--text-shadow-${t.value.value}`]);if(n)return[T(),x("--tw-text-shadow-alpha",r),...Me("text-shadow",n,r,(e=>`var(--tw-text-shadow-color, ${e})`))]}{let r=We(t,e,["--text-shadow-color","--color"]);if(r)return[T(),x("--tw-text-shadow-color",Ne(r,"var(--tw-text-shadow-alpha)"))]}})),r("text-shadow",(()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--text-shadow-color","--color"],modifiers:Array.from({length:21},((e,t)=>""+5*t))},{values:["none"]},{valueThemeKeys:["--text-shadow"],modifiers:Array.from({length:21},((e,t)=>""+5*t)),hasDefaultValue:null!==e.get(["--text-shadow"])}]));{let o=function(e){return`var(--tw-ring-inset,) 0 0 0 calc(${e} + var(--tw-ring-offset-width)) var(--tw-ring-color, ${c})`},i=function(e){return`inset 0 0 0 ${e} var(--tw-inset-ring-color, currentcolor)`},a=["var(--tw-inset-shadow)","var(--tw-inset-ring-shadow)","var(--tw-ring-offset-shadow)","var(--tw-ring-shadow)","var(--tw-shadow)"].join(", "),l="0 0 #0000",s=()=>z([Ve("--tw-shadow",l),Ve("--tw-shadow-color"),Ve("--tw-shadow-alpha","100%",""),Ve("--tw-inset-shadow",l),Ve("--tw-inset-shadow-color"),Ve("--tw-inset-shadow-alpha","100%",""),Ve("--tw-ring-color"),Ve("--tw-ring-shadow",l),Ve("--tw-inset-ring-color"),Ve("--tw-inset-ring-shadow",l),Ve("--tw-ring-inset"),Ve("--tw-ring-offset-width","0px",""),Ve("--tw-ring-offset-color","#fff"),Ve("--tw-ring-offset-shadow",l)]);n("shadow-initial",[s,["--tw-shadow-color","initial"]]),t.functional("shadow",(t=>{let r;if(t.modifier&&("arbitrary"===t.modifier.kind?r=t.modifier.value:be(t.modifier.value)&&(r=`${t.modifier.value}%`)),!t.value){let t=e.get(["--shadow"]);return null===t?void 0:[s(),x("--tw-shadow-alpha",r),...Me("--tw-shadow",t,r,(e=>`var(--tw-shadow-color, ${e})`)),x("box-shadow",a)]}if("arbitrary"===t.value.kind){let n=t.value.value;return"color"===(t.value.dataType??ie(n,["color"]))?(n=Fe(n,t.modifier,e),null===n?void 0:[s(),x("--tw-shadow-color",Ne(n,"var(--tw-shadow-alpha)"))]):[s(),x("--tw-shadow-alpha",r),...Me("--tw-shadow",n,r,(e=>`var(--tw-shadow-color, ${e})`)),x("box-shadow",a)]}switch(t.value.value){case"none":return t.modifier?void 0:[s(),x("--tw-shadow",l),x("box-shadow",a)];case"inherit":return t.modifier?void 0:[s(),x("--tw-shadow-color","inherit")]}{let n=e.get([`--shadow-${t.value.value}`]);if(n)return[s(),x("--tw-shadow-alpha",r),...Me("--tw-shadow",n,r,(e=>`var(--tw-shadow-color, ${e})`)),x("box-shadow",a)]}{let r=We(t,e,["--box-shadow-color","--color"]);if(r)return[s(),x("--tw-shadow-color",Ne(r,"var(--tw-shadow-alpha)"))]}})),r("shadow",(()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--box-shadow-color","--color"],modifiers:Array.from({length:21},((e,t)=>""+5*t))},{values:["none"]},{valueThemeKeys:["--shadow"],modifiers:Array.from({length:21},((e,t)=>""+5*t)),hasDefaultValue:null!==e.get(["--shadow"])}])),n("inset-shadow-initial",[s,["--tw-inset-shadow-color","initial"]]),t.functional("inset-shadow",(t=>{let r;if(t.modifier&&("arbitrary"===t.modifier.kind?r=t.modifier.value:be(t.modifier.value)&&(r=`${t.modifier.value}%`)),!t.value){let t=e.get(["--inset-shadow"]);return null===t?void 0:[s(),x("--tw-inset-shadow-alpha",r),...Me("--tw-inset-shadow",t,r,(e=>`var(--tw-inset-shadow-color, ${e})`)),x("box-shadow",a)]}if("arbitrary"===t.value.kind){let n=t.value.value;return"color"===(t.value.dataType??ie(n,["color"]))?(n=Fe(n,t.modifier,e),null===n?void 0:[s(),x("--tw-inset-shadow-color",Ne(n,"var(--tw-inset-shadow-alpha)"))]):[s(),x("--tw-inset-shadow-alpha",r),...Me("--tw-inset-shadow",n,r,(e=>`var(--tw-inset-shadow-color, ${e})`),"inset "),x("box-shadow",a)]}switch(t.value.value){case"none":return t.modifier?void 0:[s(),x("--tw-inset-shadow",l),x("box-shadow",a)];case"inherit":return t.modifier?void 0:[s(),x("--tw-inset-shadow-color","inherit")]}{let n=e.get([`--inset-shadow-${t.value.value}`]);if(n)return[s(),x("--tw-inset-shadow-alpha",r),...Me("--tw-inset-shadow",n,r,(e=>`var(--tw-inset-shadow-color, ${e})`)),x("box-shadow",a)]}{let r=We(t,e,["--box-shadow-color","--color"]);if(r)return[s(),x("--tw-inset-shadow-color",Ne(r,"var(--tw-inset-shadow-alpha)"))]}})),r("inset-shadow",(()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--box-shadow-color","--color"],modifiers:Array.from({length:21},((e,t)=>""+5*t))},{values:["none"]},{valueThemeKeys:["--inset-shadow"],modifiers:Array.from({length:21},((e,t)=>""+5*t)),hasDefaultValue:null!==e.get(["--inset-shadow"])}])),n("ring-inset",[s,["--tw-ring-inset","inset"]]);let c=e.get(["--default-ring-color"])??"currentcolor";t.functional("ring",(t=>{if(!t.value){if(t.modifier)return;let r=e.get(["--default-ring-width"])??"1px";return[s(),x("--tw-ring-shadow",o(r)),x("box-shadow",a)]}if("arbitrary"===t.value.kind){let r=t.value.value;return"length"===(t.value.dataType??ie(r,["color","length"]))?t.modifier?void 0:[s(),x("--tw-ring-shadow",o(r)),x("box-shadow",a)]:(r=Fe(r,t.modifier,e),null===r?void 0:[x("--tw-ring-color",r)])}{let r=We(t,e,["--ring-color","--color"]);if(r)return[x("--tw-ring-color",r)]}{if(t.modifier)return;let r=e.resolve(t.value.value,["--ring-width"]);if(null===r&&be(t.value.value)&&(r=`${t.value.value}px`),r)return[s(),x("--tw-ring-shadow",o(r)),x("box-shadow",a)]}})),r("ring",(()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--ring-color","--color"],modifiers:Array.from({length:21},((e,t)=>""+5*t))},{values:["0","1","2","4","8"],valueThemeKeys:["--ring-width"],hasDefaultValue:!0}])),t.functional("inset-ring",(t=>{if(!t.value)return t.modifier?void 0:[s(),x("--tw-inset-ring-shadow",i("1px")),x("box-shadow",a)];if("arbitrary"===t.value.kind){let r=t.value.value;return"length"===(t.value.dataType??ie(r,["color","length"]))?t.modifier?void 0:[s(),x("--tw-inset-ring-shadow",i(r)),x("box-shadow",a)]:(r=Fe(r,t.modifier,e),null===r?void 0:[x("--tw-inset-ring-color",r)])}{let r=We(t,e,["--ring-color","--color"]);if(r)return[x("--tw-inset-ring-color",r)]}{if(t.modifier)return;let r=e.resolve(t.value.value,["--ring-width"]);if(null===r&&be(t.value.value)&&(r=`${t.value.value}px`),r)return[s(),x("--tw-inset-ring-shadow",i(r)),x("box-shadow",a)]}})),r("inset-ring",(()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--ring-color","--color"],modifiers:Array.from({length:21},((e,t)=>""+5*t))},{values:["0","1","2","4","8"],valueThemeKeys:["--ring-width"],hasDefaultValue:!0}]));let u="var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)";t.functional("ring-offset",(t=>{if(t.value){if("arbitrary"===t.value.kind){let r=t.value.value;return"length"===(t.value.dataType??ie(r,["color","length"]))?t.modifier?void 0:[x("--tw-ring-offset-width",r),x("--tw-ring-offset-shadow",u)]:(r=Fe(r,t.modifier,e),null===r?void 0:[x("--tw-ring-offset-color",r)])}{let r=e.resolve(t.value.value,["--ring-offset-width"]);if(r)return t.modifier?void 0:[x("--tw-ring-offset-width",r),x("--tw-ring-offset-shadow",u)];if(be(t.value.value))return t.modifier?void 0:[x("--tw-ring-offset-width",`${t.value.value}px`),x("--tw-ring-offset-shadow",u)]}{let r=We(t,e,["--ring-offset-color","--color"]);if(r)return[x("--tw-ring-offset-color",r)]}}}))}return r("ring-offset",(()=>[{values:["current","inherit","transparent"],valueThemeKeys:["--ring-offset-color","--color"],modifiers:Array.from({length:21},((e,t)=>""+5*t))},{values:["0","1","2","4","8"],valueThemeKeys:["--ring-offset-width"]}])),t.functional("@container",(e=>{let t=null;if(null===e.value?t="inline-size":"arbitrary"===e.value.kind?t=e.value.value:"named"===e.value.kind&&"normal"===e.value.value&&(t="normal"),null!==t)return e.modifier?[x("container-type",t),x("container-name",e.modifier.value)]:[x("container-type",t)]})),r("@container",(()=>[{values:["normal"],valueThemeKeys:[],hasDefaultValue:!0}])),t}(e),r=function(e){let t=new Ge;function r(e,r,{compounds:n}={}){n=n??Je(r),t.static(e,(e=>{e.nodes=r.map((t=>y(t,e.nodes)))}),{compounds:n})}function n(e,t){return t.map((t=>{let r=L(t=t.trim()," ");return"not"===r[0]?r.slice(1).join(" "):"@container"===e?"("===r[0][0]?`not ${t}`:"not"===r[1]?`${r[0]} ${r.slice(2).join(" ")}`:`${r[0]} not ${r.slice(1).join(" ")}`:`not ${t}`}))}r("*",[":is(& > *)"],{compounds:0}),r("**",[":is(& *)"],{compounds:0});let o=["@media","@supports","@container"];function i(e){for(let t of o){if(t!==e.name)continue;let r=L(e.params,",");return r.length>1?null:(r=n(e.name,r),b(e.name,r.join(", ")))}return null}function a(e){return e.includes("::")?null:`&:not(${L(e,",").map((e=>e.replaceAll("&","*"))).join(", ")})`}t.compound("not",3,((e,t)=>{if("arbitrary"===t.variant.kind&&t.variant.relative||t.modifier)return null;let r=!1;return C([e],((t,{path:n})=>{if("rule"!==t.kind&&"at-rule"!==t.kind)return 0;if(t.nodes.length>0)return 0;let o=[],l=[];for(let e of n)"at-rule"===e.kind?o.push(e):"rule"===e.kind&&l.push(e);if(o.length>1)return 2;if(l.length>1)return 2;let s=[];for(let e of l){let t=a(e.selector);if(!t)return r=!1,2;s.push(k(t,[]))}for(let e of o){let t=i(e);if(!t)return r=!1,2;s.push(t)}return Object.assign(e,k("&",s)),r=!0,1})),"rule"===e.kind&&"&"===e.selector&&1===e.nodes.length&&Object.assign(e,e.nodes[0]),r?void 0:null})),t.suggest("not",(()=>Array.from(t.keys()).filter((e=>t.compoundsWith("not",e))))),t.compound("group",2,((t,r)=>{if("arbitrary"===r.variant.kind&&r.variant.relative)return null;let n=r.modifier?`:where(.${e.prefix?`${e.prefix}\\:`:""}group\\/${r.modifier.value})`:`:where(.${e.prefix?`${e.prefix}\\:`:""}group)`,o=!1;return C([t],((e,{path:t})=>{if("rule"!==e.kind)return 0;for(let e of t.slice(0,-1))if("rule"===e.kind)return o=!1,2;let r=e.selector.replaceAll("&",n);L(r,",").length>1&&(r=`:is(${r})`),e.selector=`&:is(${r} *)`,o=!0})),o?void 0:null})),t.suggest("group",(()=>Array.from(t.keys()).filter((e=>t.compoundsWith("group",e))))),t.compound("peer",2,((t,r)=>{if("arbitrary"===r.variant.kind&&r.variant.relative)return null;let n=r.modifier?`:where(.${e.prefix?`${e.prefix}\\:`:""}peer\\/${r.modifier.value})`:`:where(.${e.prefix?`${e.prefix}\\:`:""}peer)`,o=!1;return C([t],((e,{path:t})=>{if("rule"!==e.kind)return 0;for(let e of t.slice(0,-1))if("rule"===e.kind)return o=!1,2;let r=e.selector.replaceAll("&",n);L(r,",").length>1&&(r=`:is(${r})`),e.selector=`&:is(${r} ~ *)`,o=!0})),o?void 0:null})),t.suggest("peer",(()=>Array.from(t.keys()).filter((e=>t.compoundsWith("peer",e))))),r("first-letter",["&::first-letter"]),r("first-line",["&::first-line"]),r("marker",["& *::marker","&::marker","& *::-webkit-details-marker","&::-webkit-details-marker"]),r("selection",["& *::selection","&::selection"]),r("file",["&::file-selector-button"]),r("placeholder",["&::placeholder"]),r("backdrop",["&::backdrop"]),r("details-content",["&::details-content"]);{let e=function(){return z([b("@property","--tw-content",[x("syntax",'"*"'),x("initial-value",'""'),x("inherits","false")])])};t.static("before",(t=>{t.nodes=[k("&::before",[e(),x("content","var(--tw-content)"),...t.nodes])]}),{compounds:0}),t.static("after",(t=>{t.nodes=[k("&::after",[e(),x("content","var(--tw-content)"),...t.nodes])]}),{compounds:0})}r("first",["&:first-child"]),r("last",["&:last-child"]),r("only",["&:only-child"]),r("odd",["&:nth-child(odd)"]),r("even",["&:nth-child(even)"]),r("first-of-type",["&:first-of-type"]),r("last-of-type",["&:last-of-type"]),r("only-of-type",["&:only-of-type"]),r("visited",["&:visited"]),r("target",["&:target"]),r("open",["&:is([open], :popover-open, :open)"]),r("default",["&:default"]),r("checked",["&:checked"]),r("indeterminate",["&:indeterminate"]),r("placeholder-shown",["&:placeholder-shown"]),r("autofill",["&:autofill"]),r("optional",["&:optional"]),r("required",["&:required"]),r("valid",["&:valid"]),r("invalid",["&:invalid"]),r("user-valid",["&:user-valid"]),r("user-invalid",["&:user-invalid"]),r("in-range",["&:in-range"]),r("out-of-range",["&:out-of-range"]),r("read-only",["&:read-only"]),r("empty",["&:empty"]),r("focus-within",["&:focus-within"]),t.static("hover",(e=>{e.nodes=[k("&:hover",[b("@media","(hover: hover)",e.nodes)])]})),r("focus",["&:focus"]),r("focus-visible",["&:focus-visible"]),r("active",["&:active"]),r("enabled",["&:enabled"]),r("disabled",["&:disabled"]),r("inert",["&:is([inert], [inert] *)"]),t.compound("in",2,((e,t)=>{if(t.modifier)return null;let r=!1;return C([e],((e,{path:t})=>{if("rule"!==e.kind)return 0;for(let e of t.slice(0,-1))if("rule"===e.kind)return r=!1,2;e.selector=`:where(${e.selector.replaceAll("&","*")}) &`,r=!0})),r?void 0:null})),t.suggest("in",(()=>Array.from(t.keys()).filter((e=>t.compoundsWith("in",e))))),t.compound("has",2,((e,t)=>{if(t.modifier)return null;let r=!1;return C([e],((e,{path:t})=>{if("rule"!==e.kind)return 0;for(let e of t.slice(0,-1))if("rule"===e.kind)return r=!1,2;e.selector=`&:has(${e.selector.replaceAll("&","*")})`,r=!0})),r?void 0:null})),t.suggest("has",(()=>Array.from(t.keys()).filter((e=>t.compoundsWith("has",e))))),t.functional("aria",((e,t)=>{if(!t.value||t.modifier)return null;"arbitrary"===t.value.kind?e.nodes=[k(`&[aria-${Xe(t.value.value)}]`,e.nodes)]:e.nodes=[k(`&[aria-${t.value.value}="true"]`,e.nodes)]})),t.suggest("aria",(()=>["busy","checked","disabled","expanded","hidden","pressed","readonly","required","selected"])),t.functional("data",((e,t)=>{if(!t.value||t.modifier)return null;e.nodes=[k(`&[data-${Xe(t.value.value)}]`,e.nodes)]})),t.functional("nth",((e,t)=>{if(!t.value||t.modifier||"named"===t.value.kind&&!be(t.value.value))return null;e.nodes=[k(`&:nth-child(${t.value.value})`,e.nodes)]})),t.functional("nth-last",((e,t)=>{if(!t.value||t.modifier||"named"===t.value.kind&&!be(t.value.value))return null;e.nodes=[k(`&:nth-last-child(${t.value.value})`,e.nodes)]})),t.functional("nth-of-type",((e,t)=>{if(!t.value||t.modifier||"named"===t.value.kind&&!be(t.value.value))return null;e.nodes=[k(`&:nth-of-type(${t.value.value})`,e.nodes)]})),t.functional("nth-last-of-type",((e,t)=>{if(!t.value||t.modifier||"named"===t.value.kind&&!be(t.value.value))return null;e.nodes=[k(`&:nth-last-of-type(${t.value.value})`,e.nodes)]})),t.functional("supports",((e,t)=>{if(!t.value||t.modifier)return null;let r=t.value.value;if(null===r)return null;if(/^[\w-]*\s*\(/.test(r)){let t=r.replace(/\b(and|or|not)\b/g," $1 ");e.nodes=[b("@supports",t,e.nodes)]}else r.includes(":")||(r=`${r}: var(--tw)`),("("!==r[0]||")"!==r[r.length-1])&&(r=`(${r})`),e.nodes=[b("@supports",r,e.nodes)]}),{compounds:1}),r("motion-safe",["@media (prefers-reduced-motion: no-preference)"]),r("motion-reduce",["@media (prefers-reduced-motion: reduce)"]),r("contrast-more",["@media (prefers-contrast: more)"]),r("contrast-less",["@media (prefers-contrast: less)"]);{let r=function(e,t,r,n){if(e===t)return 0;let o=n.get(e);if(null===o)return"asc"===r?-1:1;let i=n.get(t);return null===i?"asc"===r?1:-1:te(o,i,r)};{let n=e.namespace("--breakpoint"),o=new u((t=>{switch(t.kind){case"static":return e.resolveValue(t.root,["--breakpoint"])??null;case"functional":{if(!t.value||t.modifier)return null;let r=null;return"arbitrary"===t.value.kind?r=t.value.value:"named"===t.value.kind&&(r=e.resolveValue(t.value.value,["--breakpoint"])),!r||r.includes("var(")?null:r}case"arbitrary":case"compound":return null}}));t.group((()=>{t.functional("max",((e,t)=>{if(t.modifier)return null;let r=o.get(t);if(null===r)return null;e.nodes=[b("@media",`(width < ${r})`,e.nodes)]}),{compounds:1})}),((e,t)=>r(e,t,"desc",o))),t.suggest("max",(()=>Array.from(n.keys()).filter((e=>null!==e)))),t.group((()=>{for(let[r,n]of e.namespace("--breakpoint"))null!==r&&t.static(r,(e=>{e.nodes=[b("@media",`(width >= ${n})`,e.nodes)]}),{compounds:1});t.functional("min",((e,t)=>{if(t.modifier)return null;let r=o.get(t);if(null===r)return null;e.nodes=[b("@media",`(width >= ${r})`,e.nodes)]}),{compounds:1})}),((e,t)=>r(e,t,"asc",o))),t.suggest("min",(()=>Array.from(n.keys()).filter((e=>null!==e))))}{let n=e.namespace("--container"),o=new u((t=>{switch(t.kind){case"functional":{if(null===t.value)return null;let r=null;return"arbitrary"===t.value.kind?r=t.value.value:"named"===t.value.kind&&(r=e.resolveValue(t.value.value,["--container"])),!r||r.includes("var(")?null:r}case"static":case"arbitrary":case"compound":return null}}));t.group((()=>{t.functional("@max",((e,t)=>{let r=o.get(t);if(null===r)return null;e.nodes=[b("@container",t.modifier?`${t.modifier.value} (width < ${r})`:`(width < ${r})`,e.nodes)]}),{compounds:1})}),((e,t)=>r(e,t,"desc",o))),t.suggest("@max",(()=>Array.from(n.keys()).filter((e=>null!==e)))),t.group((()=>{t.functional("@",((e,t)=>{let r=o.get(t);if(null===r)return null;e.nodes=[b("@container",t.modifier?`${t.modifier.value} (width >= ${r})`:`(width >= ${r})`,e.nodes)]}),{compounds:1}),t.functional("@min",((e,t)=>{let r=o.get(t);if(null===r)return null;e.nodes=[b("@container",t.modifier?`${t.modifier.value} (width >= ${r})`:`(width >= ${r})`,e.nodes)]}),{compounds:1})}),((e,t)=>r(e,t,"asc",o))),t.suggest("@min",(()=>Array.from(n.keys()).filter((e=>null!==e)))),t.suggest("@",(()=>Array.from(n.keys()).filter((e=>null!==e))))}}return r("portrait",["@media (orientation: portrait)"]),r("landscape",["@media (orientation: landscape)"]),r("ltr",['&:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *)']),r("rtl",['&:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *)']),r("dark",["@media (prefers-color-scheme: dark)"]),r("starting",["@starting-style"]),r("print",["@media print"]),r("forced-colors",["@media (forced-colors: active)"]),r("inverted-colors",["@media (inverted-colors: inverted)"]),r("pointer-none",["@media (pointer: none)"]),r("pointer-coarse",["@media (pointer: coarse)"]),r("pointer-fine",["@media (pointer: fine)"]),r("any-pointer-none",["@media (any-pointer: none)"]),r("any-pointer-coarse",["@media (any-pointer: coarse)"]),r("any-pointer-fine",["@media (any-pointer: fine)"]),r("noscript",["@media (scripting: none)"]),t}(e),n=new u((e=>function(e,t){if("["===e[0]&&"]"===e[e.length-1]){if("@"===e[1]&&e.includes("&"))return null;let t=F(e.slice(1,-1));if(!M(t)||0===t.length||0===t.trim().length)return null;let r=">"===t[0]||"+"===t[0]||"~"===t[0];return!r&&"@"!==t[0]&&!t.includes("&")&&(t=`&:is(${t})`),{kind:"arbitrary",selector:t,relative:r}}{let[r,n=null,o]=L(e,"/");if(o)return null;let i=R(r,(e=>t.variants.has(e)));for(let[e,r]of i)switch(t.variants.kind(e)){case"static":return null!==r||null!==n?null:{kind:"static",root:e};case"functional":{let t=null===n?null:I(n);if(null!==n&&null===t)return null;if(null===r)return{kind:"functional",root:e,modifier:t,value:null};if("]"===r[r.length-1]){if("["!==r[0])continue;let n=F(r.slice(1,-1));return M(n)&&0!==n.length&&0!==n.trim().length?{kind:"functional",root:e,modifier:t,value:{kind:"arbitrary",value:n}}:null}if(")"===r[r.length-1]){if("("!==r[0])continue;let n=F(r.slice(1,-1));return M(n)&&0!==n.length&&0!==n.trim().length&&"-"===n[0]&&"-"===n[1]?{kind:"functional",root:e,modifier:t,value:{kind:"arbitrary",value:`var(${n})`}}:null}return{kind:"functional",root:e,modifier:t,value:{kind:"named",value:r}}}case"compound":{if(null===r)return null;let o=t.parseVariant(r);if(null===o||!t.variants.compoundsWith(e,o))return null;let i=null===n?null:I(n);return null!==n&&null===i?null:{kind:"compound",root:e,modifier:i,variant:o}}}}return null}(e,s))),o=new u((e=>Array.from(function*(e,t){let r=L(e,":");if(t.theme.prefix){if(1===r.length||r[0]!==t.theme.prefix)return null;r.shift()}let n=r.pop(),o=[];for(let e=r.length-1;e>=0;--e){let n=t.parseVariant(r[e]);if(null===n)return;o.push(n)}let i=!1;"!"===n[n.length-1]?(i=!0,n=n.slice(0,-1)):"!"===n[0]&&(i=!0,n=n.slice(1)),t.utilities.has(n,"static")&&!n.includes("[")&&(yield{kind:"static",root:n,variants:o,important:i,raw:e});let[a,l=null,s]=L(n,"/");if(s)return;let c,u=null===l?null:I(l);if(null===l||null!==u)if("["!==a[0]){if("]"===a[a.length-1]){let e=a.indexOf("-[");if(-1===e)return;let r=a.slice(0,e);if(!t.utilities.has(r,"functional"))return;c=[[r,a.slice(e+1)]]}else if(")"===a[a.length-1]){let e=a.indexOf("-(");if(-1===e)return;let r=a.slice(0,e);if(!t.utilities.has(r,"functional"))return;let n=a.slice(e+2,-1),o=L(n,":"),i=null;if(2===o.length&&(i=o[0],n=o[1]),"-"!==n[0]||"-"!==n[1]||!M(n))return;c=[[r,null===i?`[var(${n})]`:`[${i}:var(${n})]`]]}else c=R(a,(e=>t.utilities.has(e,"functional")));for(let[t,r]of c){let n={kind:"functional",root:t,modifier:u,value:null,variants:o,important:i,raw:e};if(null!==r){{let e=r.indexOf("[");if(-1!==e){if("]"!==r[r.length-1])return;let t=F(r.slice(e+1,-1));if(!M(t))continue;let o="";for(let e=0;e=97&&r<=122))break}if(0===t.length||0===t.trim().length)continue;n.value={kind:"arbitrary",dataType:o||null,value:t}}else{let e=null===l||"arbitrary"===n.modifier?.kind?null:`${r}/${l}`;n.value={kind:"named",value:r,fraction:e}}}yield n}else yield n}}else{if("]"!==a[a.length-1])return;let t=a.charCodeAt(1);if(45!==t&&!(t>=97&&t<=122))return;a=a.slice(1,-1);let r=a.indexOf(":");if(-1===r||0===r||r===a.length-1)return;let n=a.slice(0,r),l=F(a.slice(r+1));if(!M(l))return;yield{kind:"arbitrary",property:n,value:l,modifier:u,variants:o,important:i,raw:e}}}(e,s)))),a=new u((e=>{let t=function(e,t){let r=function(e,t){if("arbitrary"===e.kind){let r=e.value;return e.modifier&&(r=Fe(r,e.modifier,t.theme)),null===r?[]:[[x(e.property,r)]]}let r=t.utilities.get(e.root)??[],n=[],o=r.filter((e=>!ot(e)));for(let t of o){if(t.kind!==e.kind)continue;let r=t.compileFn(e);if(void 0!==r){if(null===r)return n;n.push(r)}}if(n.length>0)return n;let i=r.filter((e=>ot(e)));for(let t of i){if(t.kind!==e.kind)continue;let r=t.compileFn(e);if(void 0!==r){if(null===r)return n;n.push(r)}}return n}(e,t);if(0===r.length)return[];let n=[],o=`.${i(e.raw)}`;for(let i of r){let r=at(i);(e.important||t.important)&&it(i);let a={kind:"rule",selector:o,nodes:i};for(let r of e.variants)if(null===nt(a,r,t.variants))return[];n.push({node:a,propertySort:r})}return n}(e,s);try{Re(t.map((({node:e})=>e)),s)}catch{return[]}return t})),l=new u((t=>{for(let r of v(t))e.markUsedVariable(r)})),s={theme:e,utilities:t,variants:r,invalidCandidates:new Set,important:!1,candidatesToCss(e){let t=[];for(let r of e){let e=!1,{astNodes:n}=rt([r],this,{onInvalidCandidate(){e=!0}});n=T(n,s,0),0===n.length||e?t.push(null):t.push(S(n))}return t},getClassOrder(e){return function(e,t){let{astNodes:r,nodeSorting:n}=rt(Array.from(t),e),o=new Map(t.map((e=>[e,null]))),i=0n;for(let e of r){let t=n.get(e)?.candidate;t&&o.set(t,o.get(t)??i++)}return t.map((e=>[e,o.get(e)??null]))}(this,e)},getClassList(){return Ze(this)},getVariants(){return function(e){let t=[];for(let[r,n]of e.variants.entries()){let o=function({value:t,modifier:n}={}){let o=r;t&&(o+=i?`-${t}`:t),n&&(o+=`/${n}`);let a=e.parseVariant(o);if(!a)return[];let l=k(".__placeholder__",[]);if(null===nt(l,a,e.variants))return[];let s=[];return j(l.nodes,((e,{path:t})=>{if("rule"!==e.kind&&"at-rule"!==e.kind||e.nodes.length>0)return;t.sort(((e,t)=>{let r="at-rule"===e.kind,n="at-rule"===t.kind;return r&&!n?-1:!r&&n?1:0}));let r=t.flatMap((e=>"rule"===e.kind?"&"===e.selector?[]:[e.selector]:"at-rule"===e.kind?[`${e.name} ${e.params}`]:[])),n="";for(let e=r.length-1;e>=0;e--)n=""===n?r[e]:`${r[e]} { ${n} }`;s.push(n)})),s};if("arbitrary"===n.kind)continue;let i="@"!==r,a=e.variants.getCompletions(r);switch(n.kind){case"static":t.push({name:r,values:a,isArbitrary:!1,hasDash:i,selectors:o});break;case"functional":case"compound":t.push({name:r,values:a,isArbitrary:!0,hasDash:i,selectors:o})}}return t}(this)},parseCandidate:e=>o.get(e),parseVariant:e=>n.get(e),compileAstNodes:e=>a.get(e),printCandidate:e=>function(e,t){let r=[];for(let e of t.variants)r.unshift(q(e));e.theme.prefix&&r.unshift(e.theme.prefix);let n="";if("static"===t.kind&&(n+=t.root),"functional"===t.kind&&(n+=t.root,t.value))if("arbitrary"===t.value.kind){if(null!==t.value){let e=X(t.value.value),r=e?t.value.value.slice(4,-1):t.value.value,[o,i]=e?["(",")"]:["[","]"];t.value.dataType?n+=`-${o}${t.value.dataType}:${Z(r)}${i}`:n+=`-${o}${Z(r)}${i}`}}else"named"===t.value.kind&&(n+=`-${t.value.value}`);return"arbitrary"===t.kind&&(n+=`[${t.property}:${Z(t.value)}]`),("arbitrary"===t.kind||"functional"===t.kind)&&(n+=P(t.modifier)),t.important&&(n+="!"),r.push(n),r.join(":")}(s,e),printVariant:e=>q(e),getVariantOrder(){let e=Array.from(n.values());e.sort(((e,t)=>this.variants.compare(e,t)));let t,r=new Map,o=0;for(let n of e)null!==n&&(void 0!==t&&0!==this.variants.compare(t,n)&&o++,r.set(n,o),t=n);return r},resolveThemeValue(t,r=!0){let n=t.lastIndexOf("/"),o=null;-1!==n&&(o=t.slice(n+1).trim(),t=t.slice(0,n).trim());let i=e.resolve(null,[t],r?1:0)??void 0;return o&&i?Ne(i,o):i},trackUsedVariables(e){l.get(e)}};return s}var tt=["container-type","pointer-events","visibility","position","inset","inset-inline","inset-block","inset-inline-start","inset-inline-end","top","right","bottom","left","isolation","z-index","order","grid-column","grid-column-start","grid-column-end","grid-row","grid-row-start","grid-row-end","float","clear","--tw-container-component","margin","margin-inline","margin-block","margin-inline-start","margin-inline-end","margin-top","margin-right","margin-bottom","margin-left","box-sizing","display","field-sizing","aspect-ratio","height","max-height","min-height","width","max-width","min-width","flex","flex-shrink","flex-grow","flex-basis","table-layout","caption-side","border-collapse","border-spacing","transform-origin","translate","--tw-translate-x","--tw-translate-y","--tw-translate-z","scale","--tw-scale-x","--tw-scale-y","--tw-scale-z","rotate","--tw-rotate-x","--tw-rotate-y","--tw-rotate-z","--tw-skew-x","--tw-skew-y","transform","animation","cursor","touch-action","--tw-pan-x","--tw-pan-y","--tw-pinch-zoom","resize","scroll-snap-type","--tw-scroll-snap-strictness","scroll-snap-align","scroll-snap-stop","scroll-margin","scroll-margin-inline","scroll-margin-block","scroll-margin-inline-start","scroll-margin-inline-end","scroll-margin-top","scroll-margin-right","scroll-margin-bottom","scroll-margin-left","scroll-padding","scroll-padding-inline","scroll-padding-block","scroll-padding-inline-start","scroll-padding-inline-end","scroll-padding-top","scroll-padding-right","scroll-padding-bottom","scroll-padding-left","list-style-position","list-style-type","list-style-image","appearance","columns","break-before","break-inside","break-after","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-template-columns","grid-template-rows","flex-direction","flex-wrap","place-content","place-items","align-content","align-items","justify-content","justify-items","gap","column-gap","row-gap","--tw-space-x-reverse","--tw-space-y-reverse","divide-x-width","divide-y-width","--tw-divide-y-reverse","divide-style","divide-color","place-self","align-self","justify-self","overflow","overflow-x","overflow-y","overscroll-behavior","overscroll-behavior-x","overscroll-behavior-y","scroll-behavior","border-radius","border-start-radius","border-end-radius","border-top-radius","border-right-radius","border-bottom-radius","border-left-radius","border-start-start-radius","border-start-end-radius","border-end-end-radius","border-end-start-radius","border-top-left-radius","border-top-right-radius","border-bottom-right-radius","border-bottom-left-radius","border-width","border-inline-width","border-block-width","border-inline-start-width","border-inline-end-width","border-top-width","border-right-width","border-bottom-width","border-left-width","border-style","border-inline-style","border-block-style","border-inline-start-style","border-inline-end-style","border-top-style","border-right-style","border-bottom-style","border-left-style","border-color","border-inline-color","border-block-color","border-inline-start-color","border-inline-end-color","border-top-color","border-right-color","border-bottom-color","border-left-color","background-color","background-image","--tw-gradient-position","--tw-gradient-stops","--tw-gradient-via-stops","--tw-gradient-from","--tw-gradient-from-position","--tw-gradient-via","--tw-gradient-via-position","--tw-gradient-to","--tw-gradient-to-position","mask-image","--tw-mask-top","--tw-mask-top-from-color","--tw-mask-top-from-position","--tw-mask-top-to-color","--tw-mask-top-to-position","--tw-mask-right","--tw-mask-right-from-color","--tw-mask-right-from-position","--tw-mask-right-to-color","--tw-mask-right-to-position","--tw-mask-bottom","--tw-mask-bottom-from-color","--tw-mask-bottom-from-position","--tw-mask-bottom-to-color","--tw-mask-bottom-to-position","--tw-mask-left","--tw-mask-left-from-color","--tw-mask-left-from-position","--tw-mask-left-to-color","--tw-mask-left-to-position","--tw-mask-linear","--tw-mask-linear-position","--tw-mask-linear-from-color","--tw-mask-linear-from-position","--tw-mask-linear-to-color","--tw-mask-linear-to-position","--tw-mask-radial","--tw-mask-radial-shape","--tw-mask-radial-size","--tw-mask-radial-position","--tw-mask-radial-from-color","--tw-mask-radial-from-position","--tw-mask-radial-to-color","--tw-mask-radial-to-position","--tw-mask-conic","--tw-mask-conic-position","--tw-mask-conic-from-color","--tw-mask-conic-from-position","--tw-mask-conic-to-color","--tw-mask-conic-to-position","box-decoration-break","background-size","background-attachment","background-clip","background-position","background-repeat","background-origin","mask-composite","mask-mode","mask-type","mask-size","mask-clip","mask-position","mask-repeat","mask-origin","fill","stroke","stroke-width","object-fit","object-position","padding","padding-inline","padding-block","padding-inline-start","padding-inline-end","padding-top","padding-right","padding-bottom","padding-left","text-align","text-indent","vertical-align","font-family","font-size","line-height","font-weight","letter-spacing","text-wrap","overflow-wrap","word-break","text-overflow","hyphens","white-space","color","text-transform","font-style","font-stretch","font-variant-numeric","text-decoration-line","text-decoration-color","text-decoration-style","text-decoration-thickness","text-underline-offset","-webkit-font-smoothing","placeholder-color","caret-color","accent-color","color-scheme","opacity","background-blend-mode","mix-blend-mode","box-shadow","--tw-shadow","--tw-shadow-color","--tw-ring-shadow","--tw-ring-color","--tw-inset-shadow","--tw-inset-shadow-color","--tw-inset-ring-shadow","--tw-inset-ring-color","--tw-ring-offset-width","--tw-ring-offset-color","outline","outline-width","outline-offset","outline-color","--tw-blur","--tw-brightness","--tw-contrast","--tw-drop-shadow","--tw-grayscale","--tw-hue-rotate","--tw-invert","--tw-saturate","--tw-sepia","filter","--tw-backdrop-blur","--tw-backdrop-brightness","--tw-backdrop-contrast","--tw-backdrop-grayscale","--tw-backdrop-hue-rotate","--tw-backdrop-invert","--tw-backdrop-opacity","--tw-backdrop-saturate","--tw-backdrop-sepia","backdrop-filter","transition-property","transition-behavior","transition-delay","transition-duration","transition-timing-function","will-change","contain","content","forced-color-adjust"];function rt(e,t,{onInvalidCandidate:r}={}){let n=new Map,o=[],i=new Map;for(let n of e){if(t.invalidCandidates.has(n)){r?.(n);continue}let e=t.parseCandidate(n);0!==e.length?i.set(n,e):r?.(n)}let a=t.getVariantOrder();for(let[e,l]of i){let i=!1;for(let r of l){let l=t.compileAstNodes(r);if(0!==l.length){i=!0;for(let{node:t,propertySort:i}of l){let l=0n;for(let e of r.variants)l|=1n<{let r=n.get(e),o=n.get(t);if(r.variants-o.variants!==0n)return Number(r.variants-o.variants);let i=0;for(;i1)return null;for(let e of i.nodes)if("rule"!==e.kind&&"at-rule"!==e.kind||null===o(e,t))return null;return C(i.nodes,(t=>{if(("rule"===t.kind||"at-rule"===t.kind)&&t.nodes.length<=0)return t.nodes=e.nodes,1})),void(e.nodes=i.nodes)}return null===o(e,t)?null:void 0}function ot(e){let t=e.options?.types??[];return t.length>1&&t.includes("any")}function it(e){for(let t of e)"at-root"!==t.kind&&("declaration"===t.kind?t.important=!0:("rule"===t.kind||"at-rule"===t.kind)&&it(t.nodes))}function at(e){let t=new Set,r=0,n=e.slice(),o=!1;for(;n.length>0;){let e=n.shift();if("declaration"===e.kind){if(void 0===e.value||(r++,o))continue;if("--tw-sort"===e.property){let r=tt.indexOf(e.value??"");if(-1!==r){t.add(r),o=!0;continue}}let n=tt.indexOf(e.property);-1!==n&&t.add(n)}else if("rule"===e.kind||"at-rule"===e.kind)for(let t of e.nodes)n.push(t)}return{order:Array.from(t).sort(((e,t)=>e-t)),count:r}}function lt(e,t){let r=0,n=y("&",e),o=new Set,i=new u((()=>new Set)),a=new u((()=>new Set));C([n],((e,{parent:n,path:l})=>{if("at-rule"===e.kind){if("@keyframes"===e.name)return C(e.nodes,(e=>{if("at-rule"===e.kind&&"@apply"===e.name)throw new Error("You cannot use `@apply` inside `@keyframes`.")})),1;if("@utility"===e.name){let r=e.params.replace(/-\*$/,"");return a.get(r).add(e),void C(e.nodes,(r=>{if("at-rule"===r.kind&&"@apply"===r.name){o.add(e);for(let n of st(r,t))i.get(e).add(n)}}))}if("@apply"===e.name){if(null===n)return;r|=1,o.add(n);for(let r of st(e,t))for(let t of l)t!==e&&o.has(t)&&i.get(t).add(r)}}}));let l=new Set,s=[],c=new Set;function d(e,r=[]){if(!l.has(e)){if(c.has(e)){let n=r[(r.indexOf(e)+1)%r.length];throw"at-rule"===e.kind&&"@utility"===e.name&&"at-rule"===n.kind&&"@utility"===n.name&&C(e.nodes,(e=>{if("at-rule"!==e.kind||"@apply"!==e.name)return;let r=e.params.split(/\s+/g);for(let e of r)for(let r of t.parseCandidate(e))switch(r.kind){case"arbitrary":break;case"static":case"functional":if(n.params.replace(/-\*$/,"")===r.root)throw new Error(`You cannot \`@apply\` the \`${e}\` utility here because it creates a circular dependency.`)}})),new Error(`Circular dependency detected:\n\n${S([e])}\nRelies on:\n\n${S([n])}`)}c.add(e);for(let t of i.get(e))for(let n of a.get(t))r.push(e),d(n,r),r.pop();l.add(e),c.delete(e),s.push(e)}}for(let e of o)d(e);for(let e of s)"nodes"in e&&C(e.nodes,((e,{replaceWith:r})=>{if("at-rule"!==e.kind||"@apply"!==e.name)return;let n=e.params.split(/(\s+)/g),o={},i=0;for(let[e,t]of n.entries())e%2==0&&(o[t]=i),i+=t.length;{let n=rt(Object.keys(o),t,{onInvalidCandidate:e=>{if(t.theme.prefix&&!e.startsWith(t.theme.prefix))throw new Error(`Cannot apply unprefixed utility class \`${e}\`. Did you mean \`${t.theme.prefix}:${e}\`?`);if(t.invalidCandidates.has(e))throw new Error(`Cannot apply utility class \`${e}\` because it has been explicitly disabled: https://tailwindcss.com/docs/detecting-classes-in-source-files#explicitly-excluding-classes`);let r=L(e,":");if(r.length>1){let n=r.pop();if(t.candidatesToCss([n])[0]){let n=t.candidatesToCss(r.map((e=>`${e}:[--tw-variant-check:1]`))),o=r.filter(((e,t)=>null===n[t]));if(o.length>0){if(1===o.length)throw new Error(`Cannot apply utility class \`${e}\` because the ${o.map((e=>`\`${e}\``))} variant does not exist.`);{let t=new Intl.ListFormat("en",{style:"long",type:"conjunction"});throw new Error(`Cannot apply utility class \`${e}\` because the ${t.format(o.map((e=>`\`${e}\``)))} variants do not exist.`)}}}}throw 0===t.theme.size?new Error(`Cannot apply unknown utility class \`${e}\`. Are you using CSS modules or similar and missing \`@reference\`? https://tailwindcss.com/docs/functions-and-directives#reference-directive`):new Error(`Cannot apply unknown utility class \`${e}\``)}}),i=e.src,a=n.astNodes.map((e=>{let t=n.nodeSorting.get(e)?.candidate,r=t?o[t]:void 0;if(e=structuredClone(e),!i||!t||void 0===r)return C([e],(e=>{e.src=i})),e;let a=[i[0],i[1],i[2]];return a[1]+=7+r,a[2]=a[1]+t.length,C([e],(e=>{e.src=a})),e})),l=[];for(let e of a)if("rule"===e.kind)for(let t of e.nodes)l.push(t);else l.push(e);r(l)}}));return r}function*st(e,t){for(let r of e.params.split(/\s+/g))for(let e of t.parseCandidate(r))switch(e.kind){case"arbitrary":break;case"static":case"functional":yield e.root}}async function ct(e,r,n,o=0,i=!1){let a=0,l=[];return C(e,((e,{replaceWith:s})=>{if("at-rule"===e.kind&&("@import"===e.name||"@reference"===e.name)){let c=function(e){let t,r=null,n=null,o=null;for(let i=0;i{if(o>100)throw new Error(`Exceeded maximum recursion depth while resolving \`${u}\` in \`${r}\`)`);let a=await n(u,r),l=t(a.content,{from:i?a.path:void 0});await ct(l,a.base,n,o+1,i),h.nodes=function(e,t,r,n,o){let i=t;if(null!==r){let t=b("@layer",r,i);t.src=e.src,i=[t]}if(null!==n){let t=b("@media",n,i);t.src=e.src,i=[t]}if(null!==o){let t=b("@supports","("===o[0]?o:`(${o})`,i);t.src=e.src,i=[t]}return i}(e,[A({base:a.base},l)],d,f,p)})()),s(h),1}})),l.length>0&&await Promise.all(l),a}function ut(e,t=null){return Array.isArray(e)&&2===e.length&&"object"==typeof e[1]&&null!==typeof e[1]?t?e[1][t]??null:e[0]:Array.isArray(e)&&null===t?e.join(", "):"string"==typeof e&&null===t?e:null}function dt(e,{theme:t},r){for(let t of r){let r=pt([t]);r&&e.theme.clearNamespace(`--${r}`,4)}for(let[r,n]of function(e){let t=[];return ht(e,[],((e,r)=>{if(function(e){return"number"==typeof e||"string"==typeof e}(e))return t.push([r,e]),1;if(function(e){if(!Array.isArray(e)||2!==e.length||"string"!=typeof e[0]&&"number"!=typeof e[0]||void 0===e[1]||null===e[1]||"object"!=typeof e[1])return!1;for(let t of Reflect.ownKeys(e[1]))if("string"!=typeof t||"string"!=typeof e[1][t]&&"number"!=typeof e[1][t])return!1;return!0}(e)){t.push([r,e[0]]);for(let n of Reflect.ownKeys(e[1]))t.push([[...r,`-${n}`],e[1][n]]);return 1}return Array.isArray(e)&&e.every((e=>"string"==typeof e))?("fontSize"===r[0]?(t.push([r,e[0]]),e.length>=2&&t.push([[...r,"-line-height"],e[1]])):t.push([r,e.join(", ")]),1):void 0})),t}(t)){if("string"!=typeof n&&"number"!=typeof n)continue;if("string"==typeof n&&(n=n.replace(//g,"1")),"opacity"===r[0]&&("number"==typeof n||"string"==typeof n)){let e="string"==typeof n?parseFloat(n):n;e>=0&&e<=1&&(n=100*e+"%")}let t=pt(r);t&&e.theme.add(`--${t}`,""+n,7)}if(Object.hasOwn(t,"fontFamily")){let r=5;{let n=ut(t.fontFamily.sans);n&&e.theme.hasDefault("--font-sans")&&(e.theme.add("--default-font-family",n,r),e.theme.add("--default-font-feature-settings",ut(t.fontFamily.sans,"fontFeatureSettings")??"normal",r),e.theme.add("--default-font-variation-settings",ut(t.fontFamily.sans,"fontVariationSettings")??"normal",r))}{let n=ut(t.fontFamily.mono);n&&e.theme.hasDefault("--font-mono")&&(e.theme.add("--default-mono-font-family",n,r),e.theme.add("--default-mono-font-feature-settings",ut(t.fontFamily.mono,"fontFeatureSettings")??"normal",r),e.theme.add("--default-mono-font-variation-settings",ut(t.fontFamily.mono,"fontVariationSettings")??"normal",r))}}return t}var ft=/^[a-zA-Z0-9-_%/\.]+$/;function pt(e){if("container"===e[0])return null;"animation"===(e=structuredClone(e))[0]&&(e[0]="animate"),"aspectRatio"===e[0]&&(e[0]="aspect"),"borderRadius"===e[0]&&(e[0]="radius"),"boxShadow"===e[0]&&(e[0]="shadow"),"colors"===e[0]&&(e[0]="color"),"containers"===e[0]&&(e[0]="container"),"fontFamily"===e[0]&&(e[0]="font"),"fontSize"===e[0]&&(e[0]="text"),"letterSpacing"===e[0]&&(e[0]="tracking"),"lineHeight"===e[0]&&(e[0]="leading"),"maxWidth"===e[0]&&(e[0]="container"),"screens"===e[0]&&(e[0]="breakpoint"),"transitionTimingFunction"===e[0]&&(e[0]="ease");for(let t of e)if(!ft.test(t))return null;return e.map(((e,t,r)=>"1"===e&&t!==r.length-1?"":e)).map((e=>e.replaceAll(".","_").replace(/([a-z])([A-Z])/g,((e,t,r)=>`${t}-${r.toLowerCase()}`)))).filter(((t,r)=>"DEFAULT"!==t||r!==e.length-1)).join("-")}function ht(e,t=[],r){for(let n of Reflect.ownKeys(e)){let o=e[n];if(null==o)continue;let i=[...t,n],a=r(o,i)??0;if(1!==a){if(2===a)return 2;if((Array.isArray(o)||"object"==typeof o)&&2===ht(o,i,r))return 2}}}function mt(e){let t=[];for(let r of L(e,".")){if(!r.includes("[")){t.push(r);continue}let e=0;for(;;){let n=r.indexOf("[",e),o=r.indexOf("]",n);if(-1===n||-1===o)break;n>e&&t.push(r.slice(e,n)),t.push(r.slice(n+1,o)),e=o+1}e<=r.length-1&&t.push(r.slice(e))}return t}function gt(e){if("[object Object]"!==Object.prototype.toString.call(e))return!1;let t=Object.getPrototypeOf(e);return null===t||null===Object.getPrototypeOf(t)}function vt(e,t,r,n=[]){for(let o of t)if(null!=o)for(let t of Reflect.ownKeys(o)){n.push(t);let i=r(e[t],o[t],n);void 0!==i?e[t]=i:gt(e[t])&>(o[t])?e[t]=vt({},[e[t],o[t]],r,n):e[t]=o[t],n.pop()}return e}function wt(e,t,r){return function(n,o){let i=n.lastIndexOf("/"),l=null;-1!==i&&(l=n.slice(i+1).trim(),n=n.slice(0,i).trim());let s=(()=>{let o=mt(n),[i,l]=function(e,t){if(1===t.length&&t[0].startsWith("--"))return[e.get([t[0]]),e.getOptions(t[0])];let r=pt(t),n=new Map,o=new u((()=>new Map)),i=e.namespace(`--${r}`);if(0===i.size)return[null,0];let a=new Map;for(let[t,l]of i){if(!t||!t.includes("--")){n.set(t,l),a.set(t,e.getOptions(t?`--${r}-${t}`:`--${r}`));continue}let i=t.indexOf("--"),s=t.slice(0,i),c=t.slice(i+2);c=c.replace(/-([a-z])/g,((e,t)=>t.toUpperCase())),o.get(""===s?null:s).set(c,[l,e.getOptions(`--${r}${t}`)])}let l=e.getOptions(`--${r}`);for(let[e,t]of o){let r=n.get(e);if("string"!=typeof r)continue;let o={},i={};for(let[e,[r,n]]of t)o[e]=r,i[e]=n;n.set(e,[r,o]),a.set(e,[l,i])}let s={},c={};for(let[e,t]of n)bt(s,[e??"DEFAULT"],t);for(let[e,t]of a)bt(c,[e??"DEFAULT"],t);return"DEFAULT"===t[t.length-1]?[s?.DEFAULT??null,c.DEFAULT??0]:"DEFAULT"in s&&1===Object.keys(s).length?[s.DEFAULT,c.DEFAULT??0]:(s.__CSS_VALUES__=c,[s,c])}(e.theme,o),s=r(kt(t()??{},o)??null);if("string"==typeof s&&(s=s.replace("","1")),"object"!=typeof i)return"object"!=typeof l&&4&l?s??i:i;if(null!==s&&"object"==typeof s&&!Array.isArray(s)){let e=vt({},[s],((e,t)=>t));if(null===i&&Object.hasOwn(s,"__CSS_VALUES__")){let t={};for(let r in s.__CSS_VALUES__)t[r]=s[r],delete e[r];i=t}for(let t in i)"__CSS_VALUES__"!==t&&(4&s?.__CSS_VALUES__?.[t]&&void 0!==kt(e,t.split("-"))||(e[a(t)]=i[t]));return e}if(Array.isArray(i)&&Array.isArray(l)&&Array.isArray(s)){let e=i[0],t=i[1];4&l[0]&&(e=s[0]??e);for(let e of Object.keys(t))4&l[1][e]&&(t[e]=s[1][e]??t[e]);return[e,t]}return i??s})();return l&&"string"==typeof s&&(s=Ne(s,l)),s??o}}function kt(e,t){for(let r=0;r0){let e=$t(i);o?o.nodes.push(e):r.push(e),i=""}let n=a,l=a+1;for(;l0){let t=$t(i);e.nodes.push(t),i=""}o=n.length>0?n[n.length-1]:null;break}case 46:case 58:case 35:if(i.length>0){let e=$t(i);o?o.nodes.push(e):r.push(e)}i=String.fromCharCode(l);break;case 91:{if(i.length>0){let e=$t(i);o?o.nodes.push(e):r.push(e)}i="";let n=a,l=0;for(let r=a+1;r0&&r.push($t(i)),r}var St=/^[a-z@][a-zA-Z0-9/%._-]*$/;function Kt({designSystem:e,ast:t,resolvedConfig:r,featuresRef:n,referenceMode:o}){let i={addBase(r){if(o)return;let i=Et(r);n.current|=Re(i,e),t.push(b("@layer","base",i))},addVariant(t,r){if(!Ye.test(t))throw new Error(`\`addVariant('${t}')\` defines an invalid variant name. Variants should only contain alphanumeric, dashes or underscore characters.`);if("string"==typeof r){if(r.includes(":merge("))return}else if(Array.isArray(r)){if(r.some((e=>e.includes(":merge("))))return}else if("object"==typeof r){let e=function(t,r){return Object.entries(t).some((([t,n])=>t.includes(r)||"object"==typeof n&&e(n,r)))};if(e(r,":merge("))return}"string"==typeof r||Array.isArray(r)?e.variants.static(t,(e=>{e.nodes=Vt(r,e.nodes)}),{compounds:Je("string"==typeof r?[r]:r)}):"object"==typeof r&&e.variants.fromAst(t,Et(r))},matchVariant(t,r,n){function o(e,t,n){return Vt(r(e,{modifier:t?.value??null}),n)}try{let e=r("a",{modifier:null});if("string"==typeof e&&e.includes(":merge("))return;if(Array.isArray(e)&&e.some((e=>e.includes(":merge("))))return}catch{}let i=Object.keys(n?.values??{});e.variants.group((()=>{e.variants.functional(t,((e,t)=>{if(!t.value)return n?.values&&"DEFAULT"in n.values?void(e.nodes=o(n.values.DEFAULT,t.modifier,e.nodes)):null;if("arbitrary"===t.value.kind)e.nodes=o(t.value.value,t.modifier,e.nodes);else if("named"===t.value.kind&&n?.values){let r=n.values[t.value.value];if("string"!=typeof r)return;e.nodes=o(r,t.modifier,e.nodes)}}))}),((e,t)=>{if("functional"!==e.kind||"functional"!==t.kind)return 0;let r=e.value?e.value.value:"DEFAULT",o=t.value?t.value.value:"DEFAULT",a=n?.values?.[r]??r,l=n?.values?.[o]??o;if(n&&"function"==typeof n.sort)return n.sort({value:a,modifier:e.modifier?.value??null},{value:l,modifier:t.modifier?.value??null});let s=i.indexOf(r),c=i.indexOf(o);return s=-1===s?i.length:s,c=-1===c?i.length:c,s!==c?s-c:aObject.entries(e)));i=i.flatMap((([e,t])=>L(e,",").map((e=>[e.trim(),t]))));let a=new u((()=>[]));for(let[e,r]of i){if(e.startsWith("@keyframes ")){o||t.push(y(e,Et(r)));continue}let n=Tt(e),i=!1;if(Ct(n,(e=>{if("selector"===e.kind&&"."===e.value[0]&&St.test(e.value.slice(1))){let t=e.value;e.value="&";let o=jt(n),l=t.slice(1),s="&"===o?Et(r):[y(o,Et(r))];return a.get(l).push(...s),i=!0,void(e.value=t)}if("function"===e.kind&&":not"===e.value)return 1})),!i)throw new Error(`\`addUtilities({ '${e}' : … })\` defines an invalid utility selector. Utilities must be a single class name and start with a lowercase letter, eg. \`.scrollbar-none\`.`)}for(let[t,r]of a)e.theme.prefix&&C(r,(t=>{if("rule"===t.kind){let r=Tt(t.selector);Ct(r,(t=>{"selector"===t.kind&&"."===t.value[0]&&(t.value=`.${e.theme.prefix}\\:${t.value.slice(1)}`)})),t.selector=jt(r)}})),e.utilities.static(t,(o=>{let i=structuredClone(r);return Nt(i,t,o.raw),n.current|=lt(i,e),i}))},matchUtilities(t,r){let o=r?.type?Array.isArray(r?.type)?r.type:[r.type]:["any"];for(let[i,a]of Object.entries(t)){let t=function({negative:t}){return l=>{if("arbitrary"===l.value?.kind&&o.length>0&&!o.includes("any")&&(l.value.dataType&&!o.includes(l.value.dataType)||!l.value.dataType&&!ie(l.value.value,o)))return;let s,c=o.includes("color"),u=null,d=!1;{let e=r?.values??{};c&&(e=Object.assign({inherit:"inherit",transparent:"transparent",current:"currentcolor"},e)),l.value?"arbitrary"===l.value.kind?u=l.value.value:l.value.fraction&&e[l.value.fraction]?(u=e[l.value.fraction],d=!0):e[l.value.value]?u=e[l.value.value]:e.__BARE_VALUE__&&(u=e.__BARE_VALUE__(l.value)??null,d=(null!==l.value.fraction&&u?.includes("/"))??!1):u=e.DEFAULT??null}if(null===u)return;{let e=r?.modifiers??null;s=l.modifier?"any"===e||"arbitrary"===l.modifier.kind?l.modifier.value:e?.[l.modifier.value]?e[l.modifier.value]:c&&!Number.isNaN(Number(l.modifier.value))?`${l.modifier.value}%`:null:null}if(l.modifier&&null===s&&!d)return"arbitrary"===l.value?.kind?null:void 0;c&&null!==s&&(u=Ne(u,s)),t&&(u=`calc(${u} * -1)`);let f=Et(a(u,{modifier:s}));return Nt(f,i,l.raw),n.current|=lt(f,e),f}};if(!St.test(i))throw new Error(`\`matchUtilities({ '${i}' : … })\` defines an invalid utility name. Utilities should be alphanumeric and start with a lowercase letter, eg. \`scrollbar\`.`);r?.supportsNegativeValues&&e.utilities.functional(`-${i}`,t({negative:!0}),{types:o}),e.utilities.functional(i,t({negative:!1}),{types:o}),e.utilities.suggest(i,(()=>{let e=r?.values??{},t=new Set(Object.keys(e));t.delete("__BARE_VALUE__"),t.has("DEFAULT")&&(t.delete("DEFAULT"),t.add(null));let n=r?.modifiers??{},o="any"===n?[]:Object.keys(n);return[{supportsNegative:r?.supportsNegativeValues??!1,values:Array.from(t),modifiers:o}]}))}},addComponents(e,t){this.addUtilities(e,t)},matchComponents(e,t){this.matchUtilities(e,t)},theme:wt(e,(()=>r.theme??{}),(e=>e)),prefix:e=>e,config(e,t){let n=r;if(!e)return n;let o=mt(e);for(let e=0;eObject.entries(e)));for(let[e,n]of r)if("object"!=typeof n){if(!e.startsWith("--")){if("@slot"===n){t.push(y(e,[b("@slot")]));continue}e=e.replace(/([A-Z])/g,"-$1").toLowerCase()}t.push(x(e,String(n)))}else if(Array.isArray(n))for(let r of n)"string"==typeof r?t.push(x(e,r)):t.push(y(e,Et(r)));else null!==n&&t.push(y(e,Et(n)));return t}function Vt(e,r){return("string"==typeof e?[e]:e).flatMap((e=>{if(e.trim().endsWith("}")){let n=t(e.replace("}","{@slot}}"));return Qe(n,r),n}return y(e,r)}))}function Nt(e,t,r){C(e,(e=>{if("rule"===e.kind){let n=Tt(e.selector);Ct(n,(e=>{"selector"===e.kind&&e.value===`.${t}`&&(e.value=`.${i(r)}`)})),e.selector=jt(n)}}))}function Ot(e,t,r){for(let r of function(e){let t=[];if("keyframes"in e.theme)for(let[r,n]of Object.entries(e.theme.keyframes))t.push(b("@keyframes",r,Et(n)));return t}(t))e.theme.addKeyframes(r)}var Ft={inherit:"inherit",current:"currentcolor",transparent:"transparent",black:"#000",white:"#fff",slate:{50:"oklch(98.4% 0.003 247.858)",100:"oklch(96.8% 0.007 247.896)",200:"oklch(92.9% 0.013 255.508)",300:"oklch(86.9% 0.022 252.894)",400:"oklch(70.4% 0.04 256.788)",500:"oklch(55.4% 0.046 257.417)",600:"oklch(44.6% 0.043 257.281)",700:"oklch(37.2% 0.044 257.287)",800:"oklch(27.9% 0.041 260.031)",900:"oklch(20.8% 0.042 265.755)",950:"oklch(12.9% 0.042 264.695)"},gray:{50:"oklch(98.5% 0.002 247.839)",100:"oklch(96.7% 0.003 264.542)",200:"oklch(92.8% 0.006 264.531)",300:"oklch(87.2% 0.01 258.338)",400:"oklch(70.7% 0.022 261.325)",500:"oklch(55.1% 0.027 264.364)",600:"oklch(44.6% 0.03 256.802)",700:"oklch(37.3% 0.034 259.733)",800:"oklch(27.8% 0.033 256.848)",900:"oklch(21% 0.034 264.665)",950:"oklch(13% 0.028 261.692)"},zinc:{50:"oklch(98.5% 0 0)",100:"oklch(96.7% 0.001 286.375)",200:"oklch(92% 0.004 286.32)",300:"oklch(87.1% 0.006 286.286)",400:"oklch(70.5% 0.015 286.067)",500:"oklch(55.2% 0.016 285.938)",600:"oklch(44.2% 0.017 285.786)",700:"oklch(37% 0.013 285.805)",800:"oklch(27.4% 0.006 286.033)",900:"oklch(21% 0.006 285.885)",950:"oklch(14.1% 0.005 285.823)"},neutral:{50:"oklch(98.5% 0 0)",100:"oklch(97% 0 0)",200:"oklch(92.2% 0 0)",300:"oklch(87% 0 0)",400:"oklch(70.8% 0 0)",500:"oklch(55.6% 0 0)",600:"oklch(43.9% 0 0)",700:"oklch(37.1% 0 0)",800:"oklch(26.9% 0 0)",900:"oklch(20.5% 0 0)",950:"oklch(14.5% 0 0)"},stone:{50:"oklch(98.5% 0.001 106.423)",100:"oklch(97% 0.001 106.424)",200:"oklch(92.3% 0.003 48.717)",300:"oklch(86.9% 0.005 56.366)",400:"oklch(70.9% 0.01 56.259)",500:"oklch(55.3% 0.013 58.071)",600:"oklch(44.4% 0.011 73.639)",700:"oklch(37.4% 0.01 67.558)",800:"oklch(26.8% 0.007 34.298)",900:"oklch(21.6% 0.006 56.043)",950:"oklch(14.7% 0.004 49.25)"},red:{50:"oklch(97.1% 0.013 17.38)",100:"oklch(93.6% 0.032 17.717)",200:"oklch(88.5% 0.062 18.334)",300:"oklch(80.8% 0.114 19.571)",400:"oklch(70.4% 0.191 22.216)",500:"oklch(63.7% 0.237 25.331)",600:"oklch(57.7% 0.245 27.325)",700:"oklch(50.5% 0.213 27.518)",800:"oklch(44.4% 0.177 26.899)",900:"oklch(39.6% 0.141 25.723)",950:"oklch(25.8% 0.092 26.042)"},orange:{50:"oklch(98% 0.016 73.684)",100:"oklch(95.4% 0.038 75.164)",200:"oklch(90.1% 0.076 70.697)",300:"oklch(83.7% 0.128 66.29)",400:"oklch(75% 0.183 55.934)",500:"oklch(70.5% 0.213 47.604)",600:"oklch(64.6% 0.222 41.116)",700:"oklch(55.3% 0.195 38.402)",800:"oklch(47% 0.157 37.304)",900:"oklch(40.8% 0.123 38.172)",950:"oklch(26.6% 0.079 36.259)"},amber:{50:"oklch(98.7% 0.022 95.277)",100:"oklch(96.2% 0.059 95.617)",200:"oklch(92.4% 0.12 95.746)",300:"oklch(87.9% 0.169 91.605)",400:"oklch(82.8% 0.189 84.429)",500:"oklch(76.9% 0.188 70.08)",600:"oklch(66.6% 0.179 58.318)",700:"oklch(55.5% 0.163 48.998)",800:"oklch(47.3% 0.137 46.201)",900:"oklch(41.4% 0.112 45.904)",950:"oklch(27.9% 0.077 45.635)"},yellow:{50:"oklch(98.7% 0.026 102.212)",100:"oklch(97.3% 0.071 103.193)",200:"oklch(94.5% 0.129 101.54)",300:"oklch(90.5% 0.182 98.111)",400:"oklch(85.2% 0.199 91.936)",500:"oklch(79.5% 0.184 86.047)",600:"oklch(68.1% 0.162 75.834)",700:"oklch(55.4% 0.135 66.442)",800:"oklch(47.6% 0.114 61.907)",900:"oklch(42.1% 0.095 57.708)",950:"oklch(28.6% 0.066 53.813)"},lime:{50:"oklch(98.6% 0.031 120.757)",100:"oklch(96.7% 0.067 122.328)",200:"oklch(93.8% 0.127 124.321)",300:"oklch(89.7% 0.196 126.665)",400:"oklch(84.1% 0.238 128.85)",500:"oklch(76.8% 0.233 130.85)",600:"oklch(64.8% 0.2 131.684)",700:"oklch(53.2% 0.157 131.589)",800:"oklch(45.3% 0.124 130.933)",900:"oklch(40.5% 0.101 131.063)",950:"oklch(27.4% 0.072 132.109)"},green:{50:"oklch(98.2% 0.018 155.826)",100:"oklch(96.2% 0.044 156.743)",200:"oklch(92.5% 0.084 155.995)",300:"oklch(87.1% 0.15 154.449)",400:"oklch(79.2% 0.209 151.711)",500:"oklch(72.3% 0.219 149.579)",600:"oklch(62.7% 0.194 149.214)",700:"oklch(52.7% 0.154 150.069)",800:"oklch(44.8% 0.119 151.328)",900:"oklch(39.3% 0.095 152.535)",950:"oklch(26.6% 0.065 152.934)"},emerald:{50:"oklch(97.9% 0.021 166.113)",100:"oklch(95% 0.052 163.051)",200:"oklch(90.5% 0.093 164.15)",300:"oklch(84.5% 0.143 164.978)",400:"oklch(76.5% 0.177 163.223)",500:"oklch(69.6% 0.17 162.48)",600:"oklch(59.6% 0.145 163.225)",700:"oklch(50.8% 0.118 165.612)",800:"oklch(43.2% 0.095 166.913)",900:"oklch(37.8% 0.077 168.94)",950:"oklch(26.2% 0.051 172.552)"},teal:{50:"oklch(98.4% 0.014 180.72)",100:"oklch(95.3% 0.051 180.801)",200:"oklch(91% 0.096 180.426)",300:"oklch(85.5% 0.138 181.071)",400:"oklch(77.7% 0.152 181.912)",500:"oklch(70.4% 0.14 182.503)",600:"oklch(60% 0.118 184.704)",700:"oklch(51.1% 0.096 186.391)",800:"oklch(43.7% 0.078 188.216)",900:"oklch(38.6% 0.063 188.416)",950:"oklch(27.7% 0.046 192.524)"},cyan:{50:"oklch(98.4% 0.019 200.873)",100:"oklch(95.6% 0.045 203.388)",200:"oklch(91.7% 0.08 205.041)",300:"oklch(86.5% 0.127 207.078)",400:"oklch(78.9% 0.154 211.53)",500:"oklch(71.5% 0.143 215.221)",600:"oklch(60.9% 0.126 221.723)",700:"oklch(52% 0.105 223.128)",800:"oklch(45% 0.085 224.283)",900:"oklch(39.8% 0.07 227.392)",950:"oklch(30.2% 0.056 229.695)"},sky:{50:"oklch(97.7% 0.013 236.62)",100:"oklch(95.1% 0.026 236.824)",200:"oklch(90.1% 0.058 230.902)",300:"oklch(82.8% 0.111 230.318)",400:"oklch(74.6% 0.16 232.661)",500:"oklch(68.5% 0.169 237.323)",600:"oklch(58.8% 0.158 241.966)",700:"oklch(50% 0.134 242.749)",800:"oklch(44.3% 0.11 240.79)",900:"oklch(39.1% 0.09 240.876)",950:"oklch(29.3% 0.066 243.157)"},blue:{50:"oklch(97% 0.014 254.604)",100:"oklch(93.2% 0.032 255.585)",200:"oklch(88.2% 0.059 254.128)",300:"oklch(80.9% 0.105 251.813)",400:"oklch(70.7% 0.165 254.624)",500:"oklch(62.3% 0.214 259.815)",600:"oklch(54.6% 0.245 262.881)",700:"oklch(48.8% 0.243 264.376)",800:"oklch(42.4% 0.199 265.638)",900:"oklch(37.9% 0.146 265.522)",950:"oklch(28.2% 0.091 267.935)"},indigo:{50:"oklch(96.2% 0.018 272.314)",100:"oklch(93% 0.034 272.788)",200:"oklch(87% 0.065 274.039)",300:"oklch(78.5% 0.115 274.713)",400:"oklch(67.3% 0.182 276.935)",500:"oklch(58.5% 0.233 277.117)",600:"oklch(51.1% 0.262 276.966)",700:"oklch(45.7% 0.24 277.023)",800:"oklch(39.8% 0.195 277.366)",900:"oklch(35.9% 0.144 278.697)",950:"oklch(25.7% 0.09 281.288)"},violet:{50:"oklch(96.9% 0.016 293.756)",100:"oklch(94.3% 0.029 294.588)",200:"oklch(89.4% 0.057 293.283)",300:"oklch(81.1% 0.111 293.571)",400:"oklch(70.2% 0.183 293.541)",500:"oklch(60.6% 0.25 292.717)",600:"oklch(54.1% 0.281 293.009)",700:"oklch(49.1% 0.27 292.581)",800:"oklch(43.2% 0.232 292.759)",900:"oklch(38% 0.189 293.745)",950:"oklch(28.3% 0.141 291.089)"},purple:{50:"oklch(97.7% 0.014 308.299)",100:"oklch(94.6% 0.033 307.174)",200:"oklch(90.2% 0.063 306.703)",300:"oklch(82.7% 0.119 306.383)",400:"oklch(71.4% 0.203 305.504)",500:"oklch(62.7% 0.265 303.9)",600:"oklch(55.8% 0.288 302.321)",700:"oklch(49.6% 0.265 301.924)",800:"oklch(43.8% 0.218 303.724)",900:"oklch(38.1% 0.176 304.987)",950:"oklch(29.1% 0.149 302.717)"},fuchsia:{50:"oklch(97.7% 0.017 320.058)",100:"oklch(95.2% 0.037 318.852)",200:"oklch(90.3% 0.076 319.62)",300:"oklch(83.3% 0.145 321.434)",400:"oklch(74% 0.238 322.16)",500:"oklch(66.7% 0.295 322.15)",600:"oklch(59.1% 0.293 322.896)",700:"oklch(51.8% 0.253 323.949)",800:"oklch(45.2% 0.211 324.591)",900:"oklch(40.1% 0.17 325.612)",950:"oklch(29.3% 0.136 325.661)"},pink:{50:"oklch(97.1% 0.014 343.198)",100:"oklch(94.8% 0.028 342.258)",200:"oklch(89.9% 0.061 343.231)",300:"oklch(82.3% 0.12 346.018)",400:"oklch(71.8% 0.202 349.761)",500:"oklch(65.6% 0.241 354.308)",600:"oklch(59.2% 0.249 0.584)",700:"oklch(52.5% 0.223 3.958)",800:"oklch(45.9% 0.187 3.815)",900:"oklch(40.8% 0.153 2.432)",950:"oklch(28.4% 0.109 3.907)"},rose:{50:"oklch(96.9% 0.015 12.422)",100:"oklch(94.1% 0.03 12.58)",200:"oklch(89.2% 0.058 10.001)",300:"oklch(81% 0.117 11.638)",400:"oklch(71.2% 0.194 13.428)",500:"oklch(64.5% 0.246 16.439)",600:"oklch(58.6% 0.253 17.585)",700:"oklch(51.4% 0.222 16.935)",800:"oklch(45.5% 0.188 13.697)",900:"oklch(41% 0.159 10.272)",950:"oklch(27.1% 0.105 12.094)"}};function Wt(e){return{__BARE_VALUE__:e}}var Ut=Wt((e=>{if(be(e.value))return e.value})),Dt=Wt((e=>{if(be(e.value))return`${e.value}%`})),_t=Wt((e=>{if(be(e.value))return`${e.value}px`})),Mt=Wt((e=>{if(be(e.value))return`${e.value}ms`})),Bt=Wt((e=>{if(be(e.value))return`${e.value}deg`})),Lt=Wt((e=>{if(null===e.fraction)return;let[t,r]=L(e.fraction,"/");return be(t)&&be(r)?e.fraction:void 0})),It=Wt((e=>{if(be(Number(e.value)))return`repeat(${e.value}, minmax(0, 1fr))`})),Rt={accentColor:({theme:e})=>e("colors"),animation:{none:"none",spin:"spin 1s linear infinite",ping:"ping 1s cubic-bezier(0, 0, 0.2, 1) infinite",pulse:"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",bounce:"bounce 1s infinite"},aria:{busy:'busy="true"',checked:'checked="true"',disabled:'disabled="true"',expanded:'expanded="true"',hidden:'hidden="true"',pressed:'pressed="true"',readonly:'readonly="true"',required:'required="true"',selected:'selected="true"'},aspectRatio:{auto:"auto",square:"1 / 1",video:"16 / 9",...Lt},backdropBlur:({theme:e})=>e("blur"),backdropBrightness:({theme:e})=>({...e("brightness"),...Dt}),backdropContrast:({theme:e})=>({...e("contrast"),...Dt}),backdropGrayscale:({theme:e})=>({...e("grayscale"),...Dt}),backdropHueRotate:({theme:e})=>({...e("hueRotate"),...Bt}),backdropInvert:({theme:e})=>({...e("invert"),...Dt}),backdropOpacity:({theme:e})=>({...e("opacity"),...Dt}),backdropSaturate:({theme:e})=>({...e("saturate"),...Dt}),backdropSepia:({theme:e})=>({...e("sepia"),...Dt}),backgroundColor:({theme:e})=>e("colors"),backgroundImage:{none:"none","gradient-to-t":"linear-gradient(to top, var(--tw-gradient-stops))","gradient-to-tr":"linear-gradient(to top right, var(--tw-gradient-stops))","gradient-to-r":"linear-gradient(to right, var(--tw-gradient-stops))","gradient-to-br":"linear-gradient(to bottom right, var(--tw-gradient-stops))","gradient-to-b":"linear-gradient(to bottom, var(--tw-gradient-stops))","gradient-to-bl":"linear-gradient(to bottom left, var(--tw-gradient-stops))","gradient-to-l":"linear-gradient(to left, var(--tw-gradient-stops))","gradient-to-tl":"linear-gradient(to top left, var(--tw-gradient-stops))"},backgroundOpacity:({theme:e})=>e("opacity"),backgroundPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},backgroundSize:{auto:"auto",cover:"cover",contain:"contain"},blur:{0:"0",none:"",sm:"4px",DEFAULT:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},borderColor:({theme:e})=>({DEFAULT:"currentcolor",...e("colors")}),borderOpacity:({theme:e})=>e("opacity"),borderRadius:{none:"0px",sm:"0.125rem",DEFAULT:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},borderSpacing:({theme:e})=>e("spacing"),borderWidth:{DEFAULT:"1px",0:"0px",2:"2px",4:"4px",8:"8px",..._t},boxShadow:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",DEFAULT:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",none:"none"},boxShadowColor:({theme:e})=>e("colors"),brightness:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",200:"2",...Dt},caretColor:({theme:e})=>e("colors"),colors:()=>({...Ft}),columns:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12","3xs":"16rem","2xs":"18rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",...Ut},container:{},content:{none:"none"},contrast:{0:"0",50:".5",75:".75",100:"1",125:"1.25",150:"1.5",200:"2",...Dt},cursor:{auto:"auto",default:"default",pointer:"pointer",wait:"wait",text:"text",move:"move",help:"help","not-allowed":"not-allowed",none:"none","context-menu":"context-menu",progress:"progress",cell:"cell",crosshair:"crosshair","vertical-text":"vertical-text",alias:"alias",copy:"copy","no-drop":"no-drop",grab:"grab",grabbing:"grabbing","all-scroll":"all-scroll","col-resize":"col-resize","row-resize":"row-resize","n-resize":"n-resize","e-resize":"e-resize","s-resize":"s-resize","w-resize":"w-resize","ne-resize":"ne-resize","nw-resize":"nw-resize","se-resize":"se-resize","sw-resize":"sw-resize","ew-resize":"ew-resize","ns-resize":"ns-resize","nesw-resize":"nesw-resize","nwse-resize":"nwse-resize","zoom-in":"zoom-in","zoom-out":"zoom-out"},divideColor:({theme:e})=>e("borderColor"),divideOpacity:({theme:e})=>e("borderOpacity"),divideWidth:({theme:e})=>({...e("borderWidth"),..._t}),dropShadow:{sm:"0 1px 1px rgb(0 0 0 / 0.05)",DEFAULT:["0 1px 2px rgb(0 0 0 / 0.1)","0 1px 1px rgb(0 0 0 / 0.06)"],md:["0 4px 3px rgb(0 0 0 / 0.07)","0 2px 2px rgb(0 0 0 / 0.06)"],lg:["0 10px 8px rgb(0 0 0 / 0.04)","0 4px 3px rgb(0 0 0 / 0.1)"],xl:["0 20px 13px rgb(0 0 0 / 0.03)","0 8px 5px rgb(0 0 0 / 0.08)"],"2xl":"0 25px 25px rgb(0 0 0 / 0.15)",none:"0 0 #0000"},fill:({theme:e})=>e("colors"),flex:{1:"1 1 0%",auto:"1 1 auto",initial:"0 1 auto",none:"none"},flexBasis:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",...e("spacing")}),flexGrow:{0:"0",DEFAULT:"1",...Ut},flexShrink:{0:"0",DEFAULT:"1",...Ut},fontFamily:{sans:["ui-sans-serif","system-ui","sans-serif",'"Apple Color Emoji"','"Segoe UI Emoji"','"Segoe UI Symbol"','"Noto Color Emoji"'],serif:["ui-serif","Georgia","Cambria",'"Times New Roman"',"Times","serif"],mono:["ui-monospace","SFMono-Regular","Menlo","Monaco","Consolas",'"Liberation Mono"','"Courier New"',"monospace"]},fontSize:{xs:["0.75rem",{lineHeight:"1rem"}],sm:["0.875rem",{lineHeight:"1.25rem"}],base:["1rem",{lineHeight:"1.5rem"}],lg:["1.125rem",{lineHeight:"1.75rem"}],xl:["1.25rem",{lineHeight:"1.75rem"}],"2xl":["1.5rem",{lineHeight:"2rem"}],"3xl":["1.875rem",{lineHeight:"2.25rem"}],"4xl":["2.25rem",{lineHeight:"2.5rem"}],"5xl":["3rem",{lineHeight:"1"}],"6xl":["3.75rem",{lineHeight:"1"}],"7xl":["4.5rem",{lineHeight:"1"}],"8xl":["6rem",{lineHeight:"1"}],"9xl":["8rem",{lineHeight:"1"}]},fontWeight:{thin:"100",extralight:"200",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},gap:({theme:e})=>e("spacing"),gradientColorStops:({theme:e})=>e("colors"),gradientColorStopPositions:{"0%":"0%","5%":"5%","10%":"10%","15%":"15%","20%":"20%","25%":"25%","30%":"30%","35%":"35%","40%":"40%","45%":"45%","50%":"50%","55%":"55%","60%":"60%","65%":"65%","70%":"70%","75%":"75%","80%":"80%","85%":"85%","90%":"90%","95%":"95%","100%":"100%",...Dt},grayscale:{0:"0",DEFAULT:"100%",...Dt},gridAutoColumns:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridAutoRows:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridColumn:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridColumnEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...Ut},gridColumnStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...Ut},gridRow:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridRowEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...Ut},gridRowStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13",...Ut},gridTemplateColumns:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))",...It},gridTemplateRows:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))",...It},height:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),hueRotate:{0:"0deg",15:"15deg",30:"30deg",60:"60deg",90:"90deg",180:"180deg",...Bt},inset:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%",...e("spacing")}),invert:{0:"0",DEFAULT:"100%",...Dt},keyframes:{spin:{to:{transform:"rotate(360deg)"}},ping:{"75%, 100%":{transform:"scale(2)",opacity:"0"}},pulse:{"50%":{opacity:".5"}},bounce:{"0%, 100%":{transform:"translateY(-25%)",animationTimingFunction:"cubic-bezier(0.8,0,1,1)"},"50%":{transform:"none",animationTimingFunction:"cubic-bezier(0,0,0.2,1)"}}},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeight:{none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},listStyleType:{none:"none",disc:"disc",decimal:"decimal"},listStyleImage:{none:"none"},margin:({theme:e})=>({auto:"auto",...e("spacing")}),lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",...Ut},maxHeight:({theme:e})=>({none:"none",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),maxWidth:({theme:e})=>({none:"none",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",prose:"65ch",...e("spacing")}),minHeight:({theme:e})=>({full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),minWidth:({theme:e})=>({full:"100%",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),objectPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},opacity:{0:"0",5:"0.05",10:"0.1",15:"0.15",20:"0.2",25:"0.25",30:"0.3",35:"0.35",40:"0.4",45:"0.45",50:"0.5",55:"0.55",60:"0.6",65:"0.65",70:"0.7",75:"0.75",80:"0.8",85:"0.85",90:"0.9",95:"0.95",100:"1",...Dt},order:{first:"-9999",last:"9999",none:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",...Ut},outlineColor:({theme:e})=>e("colors"),outlineOffset:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",..._t},outlineWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",..._t},padding:({theme:e})=>e("spacing"),placeholderColor:({theme:e})=>e("colors"),placeholderOpacity:({theme:e})=>e("opacity"),ringColor:({theme:e})=>({DEFAULT:"currentcolor",...e("colors")}),ringOffsetColor:({theme:e})=>e("colors"),ringOffsetWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",..._t},ringOpacity:({theme:e})=>({DEFAULT:"0.5",...e("opacity")}),ringWidth:{DEFAULT:"3px",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",..._t},rotate:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",45:"45deg",90:"90deg",180:"180deg",...Bt},saturate:{0:"0",50:".5",100:"1",150:"1.5",200:"2",...Dt},scale:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",...Dt},screens:{sm:"40rem",md:"48rem",lg:"64rem",xl:"80rem","2xl":"96rem"},scrollMargin:({theme:e})=>e("spacing"),scrollPadding:({theme:e})=>e("spacing"),sepia:{0:"0",DEFAULT:"100%",...Dt},skew:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",...Bt},space:({theme:e})=>e("spacing"),spacing:{px:"1px",0:"0px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},stroke:({theme:e})=>({none:"none",...e("colors")}),strokeWidth:{0:"0",1:"1",2:"2",...Ut},supports:{},data:{},textColor:({theme:e})=>e("colors"),textDecorationColor:({theme:e})=>e("colors"),textDecorationThickness:{auto:"auto","from-font":"from-font",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",..._t},textIndent:({theme:e})=>e("spacing"),textOpacity:({theme:e})=>e("opacity"),textUnderlineOffset:{auto:"auto",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px",..._t},transformOrigin:{center:"center",top:"top","top-right":"top right",right:"right","bottom-right":"bottom right",bottom:"bottom","bottom-left":"bottom left",left:"left","top-left":"top left"},transitionDelay:{0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms",...Mt},transitionDuration:{DEFAULT:"150ms",0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms",...Mt},transitionProperty:{none:"none",all:"all",DEFAULT:"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter",colors:"color, background-color, border-color, outline-color, text-decoration-color, fill, stroke",opacity:"opacity",shadow:"box-shadow",transform:"transform"},transitionTimingFunction:{DEFAULT:"cubic-bezier(0.4, 0, 0.2, 1)",linear:"linear",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)","in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},translate:({theme:e})=>({"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%",...e("spacing")}),size:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),width:({theme:e})=>({auto:"auto","1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",screen:"100vw",svw:"100svw",lvw:"100lvw",dvw:"100dvw",min:"min-content",max:"max-content",fit:"fit-content",...e("spacing")}),willChange:{auto:"auto",scroll:"scroll-position",contents:"contents",transform:"transform"},zIndex:{auto:"auto",0:"0",10:"10",20:"20",30:"30",40:"40",50:"50",...Ut}};function Pt(e){return{theme:{...Rt,colors:({theme:e})=>e("color",{}),extend:{fontSize:({theme:e})=>({...e("text",{})}),boxShadow:({theme:e})=>({...e("shadow",{})}),animation:({theme:e})=>({...e("animate",{})}),aspectRatio:({theme:e})=>({...e("aspect",{})}),borderRadius:({theme:e})=>({...e("radius",{})}),screens:({theme:e})=>({...e("breakpoint",{})}),letterSpacing:({theme:e})=>({...e("tracking",{})}),lineHeight:({theme:e})=>({...e("leading",{})}),transitionDuration:{DEFAULT:e.get(["--default-transition-duration"])??null},transitionTimingFunction:{DEFAULT:e.get(["--default-transition-timing-function"])??null},maxWidth:({theme:e})=>({...e("container",{})})}}}}var qt={blocklist:[],future:{},prefix:"",important:!1,darkMode:null,theme:{},plugins:[],content:{files:[]}};function Ht(e,t){let r={design:e,configs:[],plugins:[],content:{files:[]},theme:{},extend:{},result:structuredClone(qt)};for(let e of t)Yt(r,e);for(let e of r.configs)"darkMode"in e&&void 0!==e.darkMode&&(r.result.darkMode=e.darkMode??null),"prefix"in e&&void 0!==e.prefix&&(r.result.prefix=e.prefix??""),"blocklist"in e&&void 0!==e.blocklist&&(r.result.blocklist=e.blocklist??[]),"important"in e&&void 0!==e.important&&(r.result.important=e.important??!1);let n=function(e){let t=new Set,r=wt(e.design,(()=>e.theme),o),n=Object.assign(r,{theme:r,colors:Ft});function o(e){return"function"==typeof e?e(n)??null:e??null}for(let r of e.configs){let n=r.theme??{},o=n.extend??{};for(let e in n)"extend"!==e&&t.add(e);Object.assign(e.theme,n);for(let t in o)e.extend[t]??=[],e.extend[t].push(o[t])}delete e.theme.extend;for(let t in e.extend){let r=[e.theme[t],...e.extend[t]];e.theme[t]=()=>vt({},r.map(o),Zt)}for(let t in e.theme)e.theme[t]=o(e.theme[t]);if(e.theme.screens&&"object"==typeof e.theme.screens)for(let t of Object.keys(e.theme.screens)){let r=e.theme.screens[t];r&&"object"==typeof r&&("raw"in r||"max"in r||"min"in r&&(e.theme.screens[t]=r.min))}return t}(r);return{resolvedConfig:{...r.result,content:r.content,theme:r.theme,plugins:r.plugins},replacedThemeKeys:n}}function Zt(e,t){return Array.isArray(e)&>(e[0])?e.concat(t):Array.isArray(t)&>(t[0])&>(e)?[e,...t]:Array.isArray(t)?t:void 0}function Yt(e,{config:t,base:r,path:n,reference:o}){let i=[];for(let e of t.plugins??[])"__isOptionsFunction"in e?i.push({...e(),reference:o}):"handler"in e?i.push({...e,reference:o}):i.push({handler:e,reference:o});if(Array.isArray(t.presets)&&0===t.presets.length)throw new Error("Error in the config file/plugin/preset. An empty preset (`preset: []`) is not currently supported.");for(let i of t.presets??[])Yt(e,{path:n,base:r,config:i,reference:o});for(let t of i)e.plugins.push(t),t.config&&Yt(e,{path:n,base:r,config:t.config,reference:!!t.reference});let a=t.content??[],l=Array.isArray(a)?a:a.files;for(let t of l)e.content.files.push("object"==typeof t?t:{base:r,pattern:t});e.configs.push(t)}function Gt(e,t){let r=e.theme.container||{};if("object"!=typeof r||null===r)return;let n=function({center:e,padding:t,screens:r},n){let o=[],i=null;if(e&&o.push(x("margin-inline","auto")),("string"==typeof t||"object"==typeof t&&null!==t&&"DEFAULT"in t)&&o.push(x("padding-inline","string"==typeof t?t:t.DEFAULT)),"object"==typeof r&&null!==r){i=new Map;let e=Array.from(n.theme.namespace("--breakpoint").entries());if(e.sort(((e,t)=>te(e[1],t[1],"asc"))),e.length>0){let[t]=e[0];o.push(b("@media",`(width >= --theme(--breakpoint-${t}))`,[x("max-width","none")]))}for(let[e,t]of Object.entries(r)){if("object"==typeof t){if(!("min"in t))continue;t=t.min}i.set(e,b("@media",`(width >= ${t})`,[x("max-width",t)]))}}if("object"==typeof t&&null!==t){let e=Object.entries(t).filter((([e])=>"DEFAULT"!==e)).map((([e,t])=>[e,n.theme.resolveValue(e,["--breakpoint"]),t])).filter(Boolean);e.sort(((e,t)=>te(e[1],t[1],"asc")));for(let[t,,r]of e)if(i&&i.has(t))i.get(t).nodes.push(x("padding-inline",r));else{if(i)continue;o.push(b("@media",`(width >= theme(--breakpoint-${t}))`,[x("padding-inline",r)]))}}if(i)for(let[,e]of i)o.push(e);return o}(r,t);0!==n.length&&t.utilities.static("container",(()=>structuredClone(n)))}function Jt({addVariant:e,config:t}){let r=t("darkMode",null),[n,o=".dark"]=Array.isArray(r)?r:[r];if("variant"===n){let e;if(Array.isArray(o)||"function"==typeof o?e=o:"string"==typeof o&&(e=[o]),Array.isArray(e))for(let t of e)".dark"===t?(n=!1,console.warn('When using `variant` for `darkMode`, you must provide a selector.\nExample: `darkMode: ["variant", ".your-selector &"]`')):t.includes("&")||(n=!1,console.warn('When using `variant` for `darkMode`, your selector must contain `&`.\nExample `darkMode: ["variant", ".your-selector &"]`'));o=e}null===n||("selector"===n?e("dark",`&:where(${o}, ${o} *)`):"media"===n?e("dark","@media (prefers-color-scheme: dark)"):"variant"===n?e("dark",o):"class"===n&&e("dark",`&:is(${o} *)`))}function Xt(e){return(Array.isArray(e)?e:[e]).map((e=>"string"==typeof e?{min:e}:e&&"object"==typeof e?e:null)).map((e=>{if(null===e)return null;if("raw"in e)return e.raw;let t="";return void 0!==e.max&&(t+=`${e.max} >= `),t+="width",void 0!==e.min&&(t+=` >= ${e.min}`),`(${t})`})).filter(Boolean).join(", ")}var Qt=/^[a-z]+$/;async function er({designSystem:e,base:t,ast:r,loadModule:n,sources:o}){let i=0,a=[],l=[];C(r,((e,{parent:t,replaceWith:r,context:n})=>{if("at-rule"===e.kind){if("@plugin"===e.name){if(null!==t)throw new Error("`@plugin` cannot be nested.");let o=e.params.slice(1,-1);if(0===o.length)throw new Error("`@plugin` must have a path.");let l={};for(let t of e.nodes??[]){if("declaration"!==t.kind)throw new Error(`Unexpected \`@plugin\` option:\n\n${S([t])}\n\n\`@plugin\` options must be a flat list of declarations.`);if(void 0===t.value)continue;let e=L(t.value,",").map((e=>{if("null"===(e=e.trim()))return null;if("true"===e)return!0;if("false"===e)return!1;if(!Number.isNaN(Number(e)))return Number(e);if('"'===e[0]&&'"'===e[e.length-1]||"'"===e[0]&&"'"===e[e.length-1])return e.slice(1,-1);if("{"===e[0]&&"}"===e[e.length-1])throw new Error(`Unexpected \`@plugin\` option: Value of declaration \`${S([t]).trim()}\` is not supported.\n\nUsing an object as a plugin option is currently only supported in JavaScript configuration files.`);return e}));l[t.property]=1===e.length?e[0]:e}return a.push([{id:o,base:n.base,reference:!!n.reference},Object.keys(l).length>0?l:null]),r([]),void(i|=4)}if("@config"===e.name){if(e.nodes.length>0)throw new Error("`@config` cannot have a body.");if(null!==t)throw new Error("`@config` cannot be nested.");return l.push({id:e.params.slice(1,-1),base:n.base,reference:!!n.reference}),r([]),void(i|=4)}}})),function(e){for(let[t,r]of[["t","top"],["tr","top right"],["r","right"],["br","bottom right"],["b","bottom"],["bl","bottom left"],["l","left"],["tl","top left"]])e.utilities.static(`bg-gradient-to-${t}`,(()=>[x("--tw-gradient-position",`to ${r} in oklab`),x("background-image","linear-gradient(var(--tw-gradient-stops))")]));e.utilities.static("bg-left-top",(()=>[x("background-position","left top")])),e.utilities.static("bg-right-top",(()=>[x("background-position","right top")])),e.utilities.static("bg-left-bottom",(()=>[x("background-position","left bottom")])),e.utilities.static("bg-right-bottom",(()=>[x("background-position","right bottom")])),e.utilities.static("object-left-top",(()=>[x("object-position","left top")])),e.utilities.static("object-right-top",(()=>[x("object-position","right top")])),e.utilities.static("object-left-bottom",(()=>[x("object-position","left bottom")])),e.utilities.static("object-right-bottom",(()=>[x("object-position","right bottom")])),e.utilities.functional("max-w-screen",(t=>{if(!t.value||"arbitrary"===t.value.kind)return;let r=e.theme.resolve(t.value.value,["--breakpoint"]);return r?[x("max-width",r)]:void 0})),e.utilities.static("overflow-ellipsis",(()=>[x("text-overflow","ellipsis")])),e.utilities.static("decoration-slice",(()=>[x("-webkit-box-decoration-break","slice"),x("box-decoration-break","slice")])),e.utilities.static("decoration-clone",(()=>[x("-webkit-box-decoration-break","clone"),x("box-decoration-break","clone")])),e.utilities.functional("flex-shrink",(e=>{if(!e.modifier){if(!e.value)return[x("flex-shrink","1")];if("arbitrary"===e.value.kind)return[x("flex-shrink",e.value.value)];if(be(e.value.value))return[x("flex-shrink",e.value.value)]}})),e.utilities.functional("flex-grow",(e=>{if(!e.modifier){if(!e.value)return[x("flex-grow","1")];if("arbitrary"===e.value.kind)return[x("flex-grow",e.value.value)];if(be(e.value.value))return[x("flex-grow",e.value.value)]}})),e.utilities.static("order-none",(()=>[x("order","0")]))}(e);let s=e.resolveThemeValue;if(e.resolveThemeValue=function(n,a){return n.startsWith("--")?s(n,a):(i|=tr({designSystem:e,base:t,ast:r,sources:o,configs:[],pluginDetails:[]}),e.resolveThemeValue(n,a))},!a.length&&!l.length)return 0;let[c,u]=await Promise.all([Promise.all(l.map((async({id:e,base:t,reference:r})=>{let o=await n(e,t,"config");return{path:e,base:o.base,config:o.module,reference:r}}))),Promise.all(a.map((async([{id:e,base:t,reference:r},o])=>{let i=await n(e,t,"plugin");return{path:e,base:i.base,plugin:i.module,options:o,reference:r}})))]);return i|=tr({designSystem:e,base:t,ast:r,sources:o,configs:c,pluginDetails:u}),i}function tr({designSystem:e,base:t,ast:r,sources:n,configs:o,pluginDetails:i}){let a=0,l=[...i.map((e=>{if(!e.options)return{config:{plugins:[e.plugin]},base:e.base,reference:e.reference};if("__isOptionsFunction"in e.plugin)return{config:{plugins:[e.plugin(e.options)]},base:e.base,reference:e.reference};throw new Error(`The plugin "${e.path}" does not accept options`)})),...o],{resolvedConfig:s}=Ht(e,[{config:Pt(e.theme),base:t,reference:!0},...l,{config:{plugins:[Jt]},base:t,reference:!0}]),{resolvedConfig:c,replacedThemeKeys:u}=Ht(e,l),d=e.resolveThemeValue;e.resolveThemeValue=function(e,t){if("-"===e[0]&&"-"===e[1])return d(e,t);let r=h.theme(e,void 0);return Array.isArray(r)&&2===r.length?r[0]:Array.isArray(r)?r.join(", "):"string"==typeof r?r:void 0};let f,p={designSystem:e,ast:r,resolvedConfig:s,featuresRef:{set current(e){a|=e}}},h=Kt({...p,referenceMode:!1});for(let{handler:e,reference:t}of s.plugins)t?(f||=Kt({...p,referenceMode:!0}),e(f)):e(h);if(dt(e,c,u),Ot(e,c),function(e,t){let r=e.theme.aria||{},n=e.theme.supports||{},o=e.theme.data||{};if(Object.keys(r).length>0){let e=t.variants.get("aria"),n=e?.applyFn,o=e?.compounds;t.variants.functional("aria",((e,t)=>{let o=t.value;return o&&"named"===o.kind&&o.value in r?n?.(e,{...t,value:{kind:"arbitrary",value:r[o.value]}}):n?.(e,t)}),{compounds:o})}if(Object.keys(n).length>0){let e=t.variants.get("supports"),r=e?.applyFn,o=e?.compounds;t.variants.functional("supports",((e,t)=>{let o=t.value;return o&&"named"===o.kind&&o.value in n?r?.(e,{...t,value:{kind:"arbitrary",value:n[o.value]}}):r?.(e,t)}),{compounds:o})}if(Object.keys(o).length>0){let e=t.variants.get("data"),r=e?.applyFn,n=e?.compounds;t.variants.functional("data",((e,t)=>{let n=t.value;return n&&"named"===n.kind&&n.value in o?r?.(e,{...t,value:{kind:"arbitrary",value:o[n.value]}}):r?.(e,t)}),{compounds:n})}}(c,e),function(e,t){let r=e.theme.screens||{},n=t.variants.get("min")?.order??0,o=[];for(let[e,i]of Object.entries(r)){let r=function(r){t.variants.static(e,(e=>{e.nodes=[b("@media",c,e.nodes)]}),{order:r})},a=t.variants.get(e),l=t.theme.resolveValue(e,["--breakpoint"]);if(a&&l&&!t.theme.hasDefault(`--breakpoint-${e}`))continue;let s=!0;"string"==typeof i&&(s=!1);let c=Xt(i);s?o.push(r):r(n)}if(0!==o.length){for(let[,e]of t.variants.variants)e.order>n&&(e.order+=o.length);t.variants.compareFns=new Map(Array.from(t.variants.compareFns).map((([e,t])=>(e>n&&(e+=o.length),[e,t]))));for(let[e,t]of o.entries())t(n+e+1)}}(c,e),Gt(c,e),!e.theme.prefix&&s.prefix){if(s.prefix.endsWith("-")&&(s.prefix=s.prefix.slice(0,-1),console.warn(`The prefix "${s.prefix}" is invalid. Prefixes must be lowercase ASCII letters (a-z) only and is written as a variant before all utilities. We have fixed up the prefix for you. Remove the trailing \`-\` to silence this warning.`)),!Qt.test(s.prefix))throw new Error(`The prefix "${s.prefix}" is invalid. Prefixes must be lowercase ASCII letters (a-z) only.`);e.theme.prefix=s.prefix}if(!e.important&&!0===s.important&&(e.important=!0),"string"==typeof s.important){let e=s.important;C(r,((t,{replaceWith:r,parent:n})=>{if("at-rule"===t.kind&&"@tailwind"===t.name&&"utilities"===t.params)return"rule"===n?.kind&&n.selector===e||r(k(e,[t])),2}))}for(let t of s.blocklist)e.invalidCandidates.add(t);for(let e of s.content.files){if("raw"in e)throw new Error(`Error in the config file/plugin/preset. The \`content\` key contains a \`raw\` entry:\n\n${JSON.stringify(e,null,2)}\n\nThis feature is not currently supported.`);let t=!1;"!"==e.pattern[0]&&(t=!0,e.pattern=e.pattern.slice(1)),n.push({...e,negated:t})}return a}function rr({ast:e}){let t=new u((e=>function(e){let t=[0];for(let r=0;r0;){let o=n>>1,i=r+o;t[i]<=e?(r=i+1,n=n-o-1):n=o}return r-=1,{line:r+1,column:e-t[r]}},findOffset:function({line:e,column:r}){e-=1,e=Math.min(Math.max(e,0),t.length-1);let n=t[e],o=t[e+1]??n;return Math.min(Math.max(n+r,0),o)}}}(e.code))),r=new u((e=>({url:e.file,content:e.code,ignore:!1}))),n={file:null,sources:[],mappings:[]};C(e,(e=>{if(!e.src||!e.dst)return;let o=r.get(e.src[0]);if(!o.content)return;let i=t.get(e.src[0]),a=t.get(e.dst[0]),l=o.content.slice(e.src[1],e.src[2]),s=0;for(let t of l.split("\n")){if(""!==t.trim()){let t=i.find(e.src[1]+s),r=a.find(e.dst[1]);n.mappings.push({name:null,originalPosition:{source:o,...t},generatedPosition:r})}s+=t.length,s+=1}let c=i.find(e.src[2]),u=a.find(e.dst[2]);n.mappings.push({name:null,originalPosition:{source:o,...c},generatedPosition:u})}));for(let e of t.keys())n.sources.push(r.get(e));return n.mappings.sort(((e,t)=>e.generatedPosition.line-t.generatedPosition.line||e.generatedPosition.column-t.generatedPosition.column||(e.originalPosition?.line??0)-(t.originalPosition?.line??0)||(e.originalPosition?.column??0)-(t.originalPosition?.column??0))),n}var nr=/^(-?\d+)\.\.(-?\d+)(?:\.\.(-?\d+))?$/;function or(e){let t=e.indexOf("{");if(-1===t)return[e];let r=[],n=e.slice(0,t),o=e.slice(t),i=0,a=o.lastIndexOf("}");for(let e=0;e0&&(i=-i);for(let r=e;o?r<=t:r>=t;r+=i)a.push(r.toString())}return a}(s):L(s,","),l=l.flatMap((e=>or(e)));let u=or(c);for(let e of u)for(let t of l)r.push(n+t+e);return r}var ir=/^[a-z]+$/;function ar(){throw new Error("No `loadModule` function provided to `compile`")}function lr(){throw new Error("No `loadStylesheet` function provided to `compile`")}async function sr(e,{base:t="",from:r,loadModule:n=ar,loadStylesheet:o=lr}={}){let l=0;e=[A({base:t},e)],l|=await ct(e,t,o,0,void 0!==r);let s=null,u=new c,d=[],f=[],p=null,v=null,w=[],$=[],j=[],T=[],K=null;C(e,((e,{parent:t,replaceWith:r,context:n})=>{if("at-rule"===e.kind){if("@tailwind"===e.name&&("utilities"===e.params||e.params.startsWith("utilities"))){if(null!==v)return void r([]);if(n.reference)return void r([]);let t=L(e.params," ");for(let e of t)if(e.startsWith("source(")){let t=e.slice(7,-1);if("none"===t){K=t;continue}if('"'===t[0]&&'"'!==t[t.length-1]||"'"===t[0]&&"'"!==t[t.length-1]||"'"!==t[0]&&'"'!==t[0])throw new Error("`source(…)` paths must be quoted.");K={base:n.sourceBase??n.base,pattern:t.slice(1,-1)}}v=e,l|=16}if("@utility"===e.name){if(null!==t)throw new Error("`@utility` cannot be nested.");if(0===e.nodes.length)throw new Error(`\`@utility ${e.params}\` is empty. Utilities should include at least one property.`);let r=function(e){let t=e.params;return Se.test(t)?r=>{let n={"--value":{usedSpacingInteger:!1,usedSpacingNumber:!1,themeKeys:new Set,literals:new Set},"--modifier":{usedSpacingInteger:!1,usedSpacingNumber:!1,themeKeys:new Set,literals:new Set}};C(e.nodes,(e=>{if("declaration"!==e.kind||!e.value||!e.value.includes("--value(")&&!e.value.includes("--modifier("))return;let t=g(e.value);h(t,(e=>{if("function"!==e.kind)return;if(!("--spacing"!==e.value||n["--modifier"].usedSpacingNumber&&n["--value"].usedSpacingNumber))return h(e.nodes,(e=>{if("function"!==e.kind||"--value"!==e.value&&"--modifier"!==e.value)return;let t=e.value;for(let r of e.nodes)if("word"===r.kind)if("integer"===r.value)n[t].usedSpacingInteger||=!0;else if("number"===r.value&&(n[t].usedSpacingNumber||=!0,n["--modifier"].usedSpacingNumber&&n["--value"].usedSpacingNumber))return 2})),0;if("--value"!==e.value&&"--modifier"!==e.value)return;let t=L(m(e.nodes),",");for(let[e,r]of t.entries())r=r.replace(/\\\*/g,"*"),r=r.replace(/--(.*?)\s--(.*?)/g,"--$1-*--$2"),r=r.replace(/\s+/g,""),r=r.replace(/(-\*){2,}/g,"-*"),"-"===r[0]&&"-"===r[1]&&!r.includes("-*")&&(r+="-*"),t[e]=r;e.nodes=g(t.join(","));for(let t of e.nodes)if("word"!==t.kind||'"'!==t.value[0]&&"'"!==t.value[0]||t.value[0]!==t.value[t.value.length-1]){if("word"===t.kind&&"-"===t.value[0]&&"-"===t.value[1]){let r=t.value.replace(/-\*.*$/g,"");n[e.value].themeKeys.add(r)}else if("word"===t.kind&&("["!==t.value[0]||"]"!==t.value[t.value.length-1])&&!De.includes(t.value)){console.warn(`Unsupported bare value data type: "${t.value}".\nOnly valid data types are: ${De.map((e=>`"${e}"`)).join(", ")}.\n`);let r=t.value,n=structuredClone(e),o="¶";h(n.nodes,((e,{replaceWith:t})=>{"word"===e.kind&&e.value===r&&t({kind:"word",value:o})}));let i="^".repeat(m([t]).length),a=m([n]).indexOf(o),l=["```css",m([e])," ".repeat(a)+i,"```"].join("\n");console.warn(l)}}else{let r=t.value.slice(1,-1);n[e.value].literals.add(r)}})),e.value=m(t)})),r.utilities.functional(t.slice(0,-2),(t=>{let n=structuredClone(e),o=t.value,i=t.modifier;if(null===o)return;let a=!1,l=!1,s=!1,c=!1,u=new Map,d=!1;if(C([n],((e,{parent:t,replaceWith:n})=>{if("rule"!==t?.kind&&"at-rule"!==t?.kind||"declaration"!==e.kind||!e.value)return;let f=g(e.value);0===(h(f,((f,{replaceWith:p})=>{if("function"===f.kind){if("--value"===f.value){a=!0;let i=_e(o,f,r);return i?(l=!0,i.ratio?d=!0:u.set(e,t),p(i.nodes),1):(a||=!1,n([]),2)}if("--modifier"===f.value){if(null===i)return n([]),2;s=!0;let e=_e(i,f,r);return e?(c=!0,p(e.nodes),1):(s||=!1,n([]),2)}}}))??0)&&(e.value=m(f))})),a&&!l||s&&!c||d&&c||i&&!d&&!c)return null;if(d)for(let[e,t]of u){let r=t.nodes.indexOf(e);-1!==r&&t.nodes.splice(r,1)}return n.nodes})),r.utilities.suggest(t.slice(0,-2),(()=>{let e=[],t=[];for(let[o,{literals:i,usedSpacingNumber:a,usedSpacingInteger:l,themeKeys:s}]of[[e,n["--value"]],[t,n["--modifier"]]]){for(let e of i)o.push(e);if(a)o.push(...Ke);else if(l)for(let e of Ke)be(e)&&o.push(e);for(let e of r.theme.keysInNamespaces(s))o.push(e.replace(Ue,((e,t,r)=>`${t}.${r}`)))}return[{values:e,modifiers:t}]}))}:Te.test(t)?r=>{r.utilities.static(t,(()=>structuredClone(e.nodes)))}:null}(e);if(null===r)throw new Error(`\`@utility ${e.params}\` defines an invalid utility name. Utilities should be alphanumeric and start with a lowercase letter.`);f.push(r)}if("@source"===e.name){if(e.nodes.length>0)throw new Error("`@source` cannot have a body.");if(null!==t)throw new Error("`@source` cannot be nested.");let o=!1,i=!1,a=e.params;if("n"===a[0]&&a.startsWith("not ")&&(o=!0,a=a.slice(4)),"i"===a[0]&&a.startsWith("inline(")&&(i=!0,a=a.slice(7,-1)),'"'===a[0]&&'"'!==a[a.length-1]||"'"===a[0]&&"'"!==a[a.length-1]||"'"!==a[0]&&'"'!==a[0])throw new Error("`@source` paths must be quoted.");let l=a.slice(1,-1);if(i){let e=o?T:j,t=L(l," ");for(let r of t)for(let t of or(r))e.push(t)}else $.push({base:n.base,pattern:l,negated:o});return void r([])}if("@variant"===e.name&&(null===t?0===e.nodes.length?e.name="@custom-variant":(C(e.nodes,(t=>{if("at-rule"===t.kind&&"@slot"===t.name)return e.name="@custom-variant",2})),"@variant"===e.name&&w.push(e)):w.push(e)),"@custom-variant"===e.name){if(null!==t)throw new Error("`@custom-variant` cannot be nested.");r([]);let[n,o]=L(e.params," ");if(!Ye.test(n))throw new Error(`\`@custom-variant ${n}\` defines an invalid variant name. Variants should only contain alphanumeric, dashes or underscore characters.`);if(e.nodes.length>0&&o)throw new Error(`\`@custom-variant ${n}\` cannot have both a selector and a body.`);if(0===e.nodes.length){if(!o)throw new Error(`\`@custom-variant ${n}\` has no selector or body.`);let e=L(o.slice(1,-1),",");if(0===e.length||e.some((e=>""===e.trim())))throw new Error(`\`@custom-variant ${n} (${e.join(",")})\` selector is invalid.`);let t=[],r=[];for(let n of e)n=n.trim(),"@"===n[0]?t.push(n):r.push(n);return void d.push((e=>{e.variants.static(n,(e=>{let n=[];r.length>0&&n.push(k(r.join(", "),e.nodes));for(let r of t)n.push(y(r,e.nodes));e.nodes=n}),{compounds:Je([...r,...t])})}))}return void d.push((t=>{t.variants.fromAst(n,e.nodes)}))}if("@media"===e.name){let t=L(e.params," "),o=[];for(let r of t)if(r.startsWith("source(")){let t=r.slice(7,-1);C(e.nodes,((e,{replaceWith:r})=>{if("at-rule"===e.kind&&"@tailwind"===e.name&&"utilities"===e.params)return e.params+=` source(${t})`,r([A({sourceBase:n.base},[e])]),2}))}else if(r.startsWith("theme(")){let t=r.slice(6,-1),n=t.includes("reference");C(e.nodes,(e=>{if("at-rule"!==e.kind){if(n)throw new Error('Files imported with `@import "…" theme(reference)` must only contain `@theme` blocks.\nUse `@reference "…";` instead.');return 0}if("@theme"===e.name)return e.params+=" "+t,1}))}else if(r.startsWith("prefix(")){let t=r.slice(7,-1);C(e.nodes,(e=>{if("at-rule"===e.kind&&"@theme"===e.name)return e.params+=` prefix(${t})`,1}))}else"important"===r?s=!0:"reference"===r?e.nodes=[A({reference:!0},e.nodes)]:o.push(r);o.length>0?e.params=o.join(" "):t.length>0&&r(e.nodes)}if("@theme"===e.name){let[t,o]=function(e){let t=0,r=null;for(let n of L(e," "))"reference"===n?t|=2:"inline"===n?t|=1:"default"===n?t|=4:"static"===n?t|=8:n.startsWith("prefix(")&&n.endsWith(")")&&(r=n.slice(7,-1));return[t,r]}(e.params);if(n.reference&&(t|=2),o){if(!ir.test(o))throw new Error(`The prefix "${o}" is invalid. Prefixes must be lowercase ASCII letters (a-z) only.`);u.prefix=o}return C(e.nodes,(r=>{if("at-rule"===r.kind&&"@keyframes"===r.name)return u.addKeyframes(r),1;if("comment"===r.kind)return;if("declaration"===r.kind&&r.property.startsWith("--"))return void u.add(a(r.property),r.value??"",t,r.src);let n=S([b(e.name,e.params,[r])]).split("\n").map(((e,t,r)=>`${0===t||t>=r.length-2?" ":">"} ${e}`)).join("\n");throw new Error(`\`@theme\` blocks must only contain custom properties or \`@keyframes\`.\n\n${n}`)})),p?r([]):(p=k(":root, :host",[]),p.src=e.src,r([p])),1}}}));let E=et(u);if(s&&(E.important=s),T.length>0)for(let e of T)E.invalidCandidates.add(e);l|=await er({designSystem:E,base:t,ast:e,loadModule:n,sources:$});for(let e of d)e(E);for(let e of f)e(E);if(p){let t=[];for(let[e,r]of E.theme.entries()){if(2&r.options)continue;let n=x(i(e),r.value);n.src=r.src,t.push(n)}let r=E.theme.getKeyframes();for(let t of r)e.push(A({theme:!0},[z([t])]));p.nodes=[A({theme:!0},t)]}if(w.length>0){for(let e of w){let t=k("&",e.nodes),r=e.params,n=E.parseVariant(r);if(null===n)throw new Error(`Cannot use \`@variant\` with unknown variant: ${r}`);if(null===nt(t,n,E.variants))throw new Error(`Cannot use \`@variant\` with variant: ${r}`);Object.assign(e,t)}l|=32}if(l|=Re(e,E),l|=lt(e,E),v){let e=v;e.kind="context",e.context={}}return C(e,((e,{replaceWith:t})=>{if("at-rule"===e.kind)return"@utility"===e.name&&t([]),1})),{designSystem:E,ast:e,sources:$,root:K,utilitiesNode:v,features:l,inlineCandidates:j}}async function cr(e,r={}){let n=t(e,{from:r.from}),o=await async function(e,t={}){let{designSystem:r,ast:n,sources:o,root:i,utilitiesNode:a,features:l,inlineCandidates:s}=await sr(e,t);function c(e){r.invalidCandidates.add(e)}n.unshift($("! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com "));let u=new Set,d=null,f=0,p=!1;for(let e of s)r.invalidCandidates.has(e)||(u.add(e),p=!0);return{sources:o,root:i,features:l,build(o){if(0===l)return e;if(!a)return d??=T(n,r,t.polyfills),d;let i=p,s=!1;p=!1;let h=u.size;for(let e of o)if(!r.invalidCandidates.has(e))if("-"===e[0]&&"-"===e[1]){let t=r.theme.markUsedVariable(e);i||=t,s||=t}else u.add(e),i||=u.size!==h;if(!i)return d??=T(n,r,t.polyfills),d;let m=rt(u,r,{onInvalidCandidate:c}).astNodes;return t.from&&C(m,(e=>{e.src??=a.src})),s||f!==m.length?(f=m.length,a.nodes=m,d=T(n,r,t.polyfills),d):(d??=T(n,r,t.polyfills),d)}}}(n,r),i=n,a=e;return{...o,build(e){let t=o.build(e);return t===i||(a=S(t,!!r.from),i=t),a},buildSourceMap:()=>rr({ast:i})}}var ur={index:"@layer theme, base, components, utilities;\n\n@import './theme.css' layer(theme);\n@import './preflight.css' layer(base);\n@import './utilities.css' layer(utilities);\n",preflight:"/*\n 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n 2. Remove default margins and padding\n 3. Reset all borders.\n*/\n\n*,\n::after,\n::before,\n::backdrop,\n::file-selector-button {\n box-sizing: border-box; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 2 */\n border: 0 solid; /* 3 */\n}\n\n/*\n 1. Use a consistent sensible line-height in all browsers.\n 2. Prevent adjustments of font size after orientation changes in iOS.\n 3. Use a more readable tab size.\n 4. Use the user's configured `sans` font-family by default.\n 5. Use the user's configured `sans` font-feature-settings by default.\n 6. Use the user's configured `sans` font-variation-settings by default.\n 7. Disable tap highlights on iOS.\n*/\n\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n tab-size: 4; /* 3 */\n font-family: --theme(\n --default-font-family,\n ui-sans-serif,\n system-ui,\n sans-serif,\n 'Apple Color Emoji',\n 'Segoe UI Emoji',\n 'Segoe UI Symbol',\n 'Noto Color Emoji'\n ); /* 4 */\n font-feature-settings: --theme(--default-font-feature-settings, normal); /* 5 */\n font-variation-settings: --theme(--default-font-variation-settings, normal); /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n 1. Add the correct height in Firefox.\n 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n 3. Reset the default border style to a 1px solid border.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\n Add the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\n Remove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\n Reset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n}\n\n/*\n Add the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n 1. Use the user's configured `mono` font-family by default.\n 2. Use the user's configured `mono` font-feature-settings by default.\n 3. Use the user's configured `mono` font-variation-settings by default.\n 4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: --theme(\n --default-mono-font-family,\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n 'Liberation Mono',\n 'Courier New',\n monospace\n ); /* 1 */\n font-feature-settings: --theme(--default-mono-font-feature-settings, normal); /* 2 */\n font-variation-settings: --theme(--default-mono-font-variation-settings, normal); /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\n Add the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\n Prevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n 3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n Use the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\n Add the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\n Add the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\n Make lists unstyled by default.\n*/\n\nol,\nul,\nmenu {\n list-style: none;\n}\n\n/*\n 1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n 2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\n Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/*\n 1. Inherit font styles in all browsers.\n 2. Remove border radius in all browsers.\n 3. Remove background color in all browsers.\n 4. Ensure consistent opacity for disabled states in all browsers.\n*/\n\nbutton,\ninput,\nselect,\noptgroup,\ntextarea,\n::file-selector-button {\n font: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n border-radius: 0; /* 2 */\n background-color: transparent; /* 3 */\n opacity: 1; /* 4 */\n}\n\n/*\n Restore default font weight.\n*/\n\n:where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n}\n\n/*\n Restore indentation.\n*/\n\n:where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n}\n\n/*\n Restore space after button.\n*/\n\n::file-selector-button {\n margin-inline-end: 4px;\n}\n\n/*\n Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n*/\n\n::placeholder {\n opacity: 1;\n}\n\n/*\n Set the default placeholder color to a semi-transparent version of the current text color in browsers that do not\n crash when using `color-mix(…)` with `currentcolor`. (https://github.com/tailwindlabs/tailwindcss/issues/17194)\n*/\n\n@supports (not (-webkit-appearance: -apple-pay-button)) /* Not Safari */ or\n (contain-intrinsic-size: 1px) /* Safari 17+ */ {\n ::placeholder {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n}\n\n/*\n Prevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n Remove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n 1. Ensure date/time inputs have the same height when empty in iOS Safari.\n 2. Ensure text alignment can be changed on date/time inputs in iOS Safari.\n*/\n\n::-webkit-date-and-time-value {\n min-height: 1lh; /* 1 */\n text-align: inherit; /* 2 */\n}\n\n/*\n Prevent height from changing on date/time inputs in macOS Safari when the input is set to `display: block`.\n*/\n\n::-webkit-datetime-edit {\n display: inline-flex;\n}\n\n/*\n Remove excess padding from pseudo-elements in date/time inputs to ensure consistent height across browsers.\n*/\n\n::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n}\n\n::-webkit-datetime-edit,\n::-webkit-datetime-edit-year-field,\n::-webkit-datetime-edit-month-field,\n::-webkit-datetime-edit-day-field,\n::-webkit-datetime-edit-hour-field,\n::-webkit-datetime-edit-minute-field,\n::-webkit-datetime-edit-second-field,\n::-webkit-datetime-edit-millisecond-field,\n::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n}\n\n/*\n Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\n Correct the inability to style the border radius in iOS Safari.\n*/\n\nbutton,\ninput:where([type='button'], [type='reset'], [type='submit']),\n::file-selector-button {\n appearance: button;\n}\n\n/*\n Correct the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n Make elements with the HTML hidden attribute stay hidden by default.\n*/\n\n[hidden]:where(:not([hidden='until-found'])) {\n display: none !important;\n}\n",theme:"@theme default {\n --font-sans:\n ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\n 'Noto Color Emoji';\n --font-serif: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;\n --font-mono:\n ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',\n monospace;\n\n --color-red-50: oklch(97.1% 0.013 17.38);\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-200: oklch(88.5% 0.062 18.334);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-400: oklch(70.4% 0.191 22.216);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-600: oklch(57.7% 0.245 27.325);\n --color-red-700: oklch(50.5% 0.213 27.518);\n --color-red-800: oklch(44.4% 0.177 26.899);\n --color-red-900: oklch(39.6% 0.141 25.723);\n --color-red-950: oklch(25.8% 0.092 26.042);\n\n --color-orange-50: oklch(98% 0.016 73.684);\n --color-orange-100: oklch(95.4% 0.038 75.164);\n --color-orange-200: oklch(90.1% 0.076 70.697);\n --color-orange-300: oklch(83.7% 0.128 66.29);\n --color-orange-400: oklch(75% 0.183 55.934);\n --color-orange-500: oklch(70.5% 0.213 47.604);\n --color-orange-600: oklch(64.6% 0.222 41.116);\n --color-orange-700: oklch(55.3% 0.195 38.402);\n --color-orange-800: oklch(47% 0.157 37.304);\n --color-orange-900: oklch(40.8% 0.123 38.172);\n --color-orange-950: oklch(26.6% 0.079 36.259);\n\n --color-amber-50: oklch(98.7% 0.022 95.277);\n --color-amber-100: oklch(96.2% 0.059 95.617);\n --color-amber-200: oklch(92.4% 0.12 95.746);\n --color-amber-300: oklch(87.9% 0.169 91.605);\n --color-amber-400: oklch(82.8% 0.189 84.429);\n --color-amber-500: oklch(76.9% 0.188 70.08);\n --color-amber-600: oklch(66.6% 0.179 58.318);\n --color-amber-700: oklch(55.5% 0.163 48.998);\n --color-amber-800: oklch(47.3% 0.137 46.201);\n --color-amber-900: oklch(41.4% 0.112 45.904);\n --color-amber-950: oklch(27.9% 0.077 45.635);\n\n --color-yellow-50: oklch(98.7% 0.026 102.212);\n --color-yellow-100: oklch(97.3% 0.071 103.193);\n --color-yellow-200: oklch(94.5% 0.129 101.54);\n --color-yellow-300: oklch(90.5% 0.182 98.111);\n --color-yellow-400: oklch(85.2% 0.199 91.936);\n --color-yellow-500: oklch(79.5% 0.184 86.047);\n --color-yellow-600: oklch(68.1% 0.162 75.834);\n --color-yellow-700: oklch(55.4% 0.135 66.442);\n --color-yellow-800: oklch(47.6% 0.114 61.907);\n --color-yellow-900: oklch(42.1% 0.095 57.708);\n --color-yellow-950: oklch(28.6% 0.066 53.813);\n\n --color-lime-50: oklch(98.6% 0.031 120.757);\n --color-lime-100: oklch(96.7% 0.067 122.328);\n --color-lime-200: oklch(93.8% 0.127 124.321);\n --color-lime-300: oklch(89.7% 0.196 126.665);\n --color-lime-400: oklch(84.1% 0.238 128.85);\n --color-lime-500: oklch(76.8% 0.233 130.85);\n --color-lime-600: oklch(64.8% 0.2 131.684);\n --color-lime-700: oklch(53.2% 0.157 131.589);\n --color-lime-800: oklch(45.3% 0.124 130.933);\n --color-lime-900: oklch(40.5% 0.101 131.063);\n --color-lime-950: oklch(27.4% 0.072 132.109);\n\n --color-green-50: oklch(98.2% 0.018 155.826);\n --color-green-100: oklch(96.2% 0.044 156.743);\n --color-green-200: oklch(92.5% 0.084 155.995);\n --color-green-300: oklch(87.1% 0.15 154.449);\n --color-green-400: oklch(79.2% 0.209 151.711);\n --color-green-500: oklch(72.3% 0.219 149.579);\n --color-green-600: oklch(62.7% 0.194 149.214);\n --color-green-700: oklch(52.7% 0.154 150.069);\n --color-green-800: oklch(44.8% 0.119 151.328);\n --color-green-900: oklch(39.3% 0.095 152.535);\n --color-green-950: oklch(26.6% 0.065 152.934);\n\n --color-emerald-50: oklch(97.9% 0.021 166.113);\n --color-emerald-100: oklch(95% 0.052 163.051);\n --color-emerald-200: oklch(90.5% 0.093 164.15);\n --color-emerald-300: oklch(84.5% 0.143 164.978);\n --color-emerald-400: oklch(76.5% 0.177 163.223);\n --color-emerald-500: oklch(69.6% 0.17 162.48);\n --color-emerald-600: oklch(59.6% 0.145 163.225);\n --color-emerald-700: oklch(50.8% 0.118 165.612);\n --color-emerald-800: oklch(43.2% 0.095 166.913);\n --color-emerald-900: oklch(37.8% 0.077 168.94);\n --color-emerald-950: oklch(26.2% 0.051 172.552);\n\n --color-teal-50: oklch(98.4% 0.014 180.72);\n --color-teal-100: oklch(95.3% 0.051 180.801);\n --color-teal-200: oklch(91% 0.096 180.426);\n --color-teal-300: oklch(85.5% 0.138 181.071);\n --color-teal-400: oklch(77.7% 0.152 181.912);\n --color-teal-500: oklch(70.4% 0.14 182.503);\n --color-teal-600: oklch(60% 0.118 184.704);\n --color-teal-700: oklch(51.1% 0.096 186.391);\n --color-teal-800: oklch(43.7% 0.078 188.216);\n --color-teal-900: oklch(38.6% 0.063 188.416);\n --color-teal-950: oklch(27.7% 0.046 192.524);\n\n --color-cyan-50: oklch(98.4% 0.019 200.873);\n --color-cyan-100: oklch(95.6% 0.045 203.388);\n --color-cyan-200: oklch(91.7% 0.08 205.041);\n --color-cyan-300: oklch(86.5% 0.127 207.078);\n --color-cyan-400: oklch(78.9% 0.154 211.53);\n --color-cyan-500: oklch(71.5% 0.143 215.221);\n --color-cyan-600: oklch(60.9% 0.126 221.723);\n --color-cyan-700: oklch(52% 0.105 223.128);\n --color-cyan-800: oklch(45% 0.085 224.283);\n --color-cyan-900: oklch(39.8% 0.07 227.392);\n --color-cyan-950: oklch(30.2% 0.056 229.695);\n\n --color-sky-50: oklch(97.7% 0.013 236.62);\n --color-sky-100: oklch(95.1% 0.026 236.824);\n --color-sky-200: oklch(90.1% 0.058 230.902);\n --color-sky-300: oklch(82.8% 0.111 230.318);\n --color-sky-400: oklch(74.6% 0.16 232.661);\n --color-sky-500: oklch(68.5% 0.169 237.323);\n --color-sky-600: oklch(58.8% 0.158 241.966);\n --color-sky-700: oklch(50% 0.134 242.749);\n --color-sky-800: oklch(44.3% 0.11 240.79);\n --color-sky-900: oklch(39.1% 0.09 240.876);\n --color-sky-950: oklch(29.3% 0.066 243.157);\n\n --color-blue-50: oklch(97% 0.014 254.604);\n --color-blue-100: oklch(93.2% 0.032 255.585);\n --color-blue-200: oklch(88.2% 0.059 254.128);\n --color-blue-300: oklch(80.9% 0.105 251.813);\n --color-blue-400: oklch(70.7% 0.165 254.624);\n --color-blue-500: oklch(62.3% 0.214 259.815);\n --color-blue-600: oklch(54.6% 0.245 262.881);\n --color-blue-700: oklch(48.8% 0.243 264.376);\n --color-blue-800: oklch(42.4% 0.199 265.638);\n --color-blue-900: oklch(37.9% 0.146 265.522);\n --color-blue-950: oklch(28.2% 0.091 267.935);\n\n --color-indigo-50: oklch(96.2% 0.018 272.314);\n --color-indigo-100: oklch(93% 0.034 272.788);\n --color-indigo-200: oklch(87% 0.065 274.039);\n --color-indigo-300: oklch(78.5% 0.115 274.713);\n --color-indigo-400: oklch(67.3% 0.182 276.935);\n --color-indigo-500: oklch(58.5% 0.233 277.117);\n --color-indigo-600: oklch(51.1% 0.262 276.966);\n --color-indigo-700: oklch(45.7% 0.24 277.023);\n --color-indigo-800: oklch(39.8% 0.195 277.366);\n --color-indigo-900: oklch(35.9% 0.144 278.697);\n --color-indigo-950: oklch(25.7% 0.09 281.288);\n\n --color-violet-50: oklch(96.9% 0.016 293.756);\n --color-violet-100: oklch(94.3% 0.029 294.588);\n --color-violet-200: oklch(89.4% 0.057 293.283);\n --color-violet-300: oklch(81.1% 0.111 293.571);\n --color-violet-400: oklch(70.2% 0.183 293.541);\n --color-violet-500: oklch(60.6% 0.25 292.717);\n --color-violet-600: oklch(54.1% 0.281 293.009);\n --color-violet-700: oklch(49.1% 0.27 292.581);\n --color-violet-800: oklch(43.2% 0.232 292.759);\n --color-violet-900: oklch(38% 0.189 293.745);\n --color-violet-950: oklch(28.3% 0.141 291.089);\n\n --color-purple-50: oklch(97.7% 0.014 308.299);\n --color-purple-100: oklch(94.6% 0.033 307.174);\n --color-purple-200: oklch(90.2% 0.063 306.703);\n --color-purple-300: oklch(82.7% 0.119 306.383);\n --color-purple-400: oklch(71.4% 0.203 305.504);\n --color-purple-500: oklch(62.7% 0.265 303.9);\n --color-purple-600: oklch(55.8% 0.288 302.321);\n --color-purple-700: oklch(49.6% 0.265 301.924);\n --color-purple-800: oklch(43.8% 0.218 303.724);\n --color-purple-900: oklch(38.1% 0.176 304.987);\n --color-purple-950: oklch(29.1% 0.149 302.717);\n\n --color-fuchsia-50: oklch(97.7% 0.017 320.058);\n --color-fuchsia-100: oklch(95.2% 0.037 318.852);\n --color-fuchsia-200: oklch(90.3% 0.076 319.62);\n --color-fuchsia-300: oklch(83.3% 0.145 321.434);\n --color-fuchsia-400: oklch(74% 0.238 322.16);\n --color-fuchsia-500: oklch(66.7% 0.295 322.15);\n --color-fuchsia-600: oklch(59.1% 0.293 322.896);\n --color-fuchsia-700: oklch(51.8% 0.253 323.949);\n --color-fuchsia-800: oklch(45.2% 0.211 324.591);\n --color-fuchsia-900: oklch(40.1% 0.17 325.612);\n --color-fuchsia-950: oklch(29.3% 0.136 325.661);\n\n --color-pink-50: oklch(97.1% 0.014 343.198);\n --color-pink-100: oklch(94.8% 0.028 342.258);\n --color-pink-200: oklch(89.9% 0.061 343.231);\n --color-pink-300: oklch(82.3% 0.12 346.018);\n --color-pink-400: oklch(71.8% 0.202 349.761);\n --color-pink-500: oklch(65.6% 0.241 354.308);\n --color-pink-600: oklch(59.2% 0.249 0.584);\n --color-pink-700: oklch(52.5% 0.223 3.958);\n --color-pink-800: oklch(45.9% 0.187 3.815);\n --color-pink-900: oklch(40.8% 0.153 2.432);\n --color-pink-950: oklch(28.4% 0.109 3.907);\n\n --color-rose-50: oklch(96.9% 0.015 12.422);\n --color-rose-100: oklch(94.1% 0.03 12.58);\n --color-rose-200: oklch(89.2% 0.058 10.001);\n --color-rose-300: oklch(81% 0.117 11.638);\n --color-rose-400: oklch(71.2% 0.194 13.428);\n --color-rose-500: oklch(64.5% 0.246 16.439);\n --color-rose-600: oklch(58.6% 0.253 17.585);\n --color-rose-700: oklch(51.4% 0.222 16.935);\n --color-rose-800: oklch(45.5% 0.188 13.697);\n --color-rose-900: oklch(41% 0.159 10.272);\n --color-rose-950: oklch(27.1% 0.105 12.094);\n\n --color-slate-50: oklch(98.4% 0.003 247.858);\n --color-slate-100: oklch(96.8% 0.007 247.896);\n --color-slate-200: oklch(92.9% 0.013 255.508);\n --color-slate-300: oklch(86.9% 0.022 252.894);\n --color-slate-400: oklch(70.4% 0.04 256.788);\n --color-slate-500: oklch(55.4% 0.046 257.417);\n --color-slate-600: oklch(44.6% 0.043 257.281);\n --color-slate-700: oklch(37.2% 0.044 257.287);\n --color-slate-800: oklch(27.9% 0.041 260.031);\n --color-slate-900: oklch(20.8% 0.042 265.755);\n --color-slate-950: oklch(12.9% 0.042 264.695);\n\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-gray-100: oklch(96.7% 0.003 264.542);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-300: oklch(87.2% 0.01 258.338);\n --color-gray-400: oklch(70.7% 0.022 261.325);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-gray-600: oklch(44.6% 0.03 256.802);\n --color-gray-700: oklch(37.3% 0.034 259.733);\n --color-gray-800: oklch(27.8% 0.033 256.848);\n --color-gray-900: oklch(21% 0.034 264.665);\n --color-gray-950: oklch(13% 0.028 261.692);\n\n --color-zinc-50: oklch(98.5% 0 0);\n --color-zinc-100: oklch(96.7% 0.001 286.375);\n --color-zinc-200: oklch(92% 0.004 286.32);\n --color-zinc-300: oklch(87.1% 0.006 286.286);\n --color-zinc-400: oklch(70.5% 0.015 286.067);\n --color-zinc-500: oklch(55.2% 0.016 285.938);\n --color-zinc-600: oklch(44.2% 0.017 285.786);\n --color-zinc-700: oklch(37% 0.013 285.805);\n --color-zinc-800: oklch(27.4% 0.006 286.033);\n --color-zinc-900: oklch(21% 0.006 285.885);\n --color-zinc-950: oklch(14.1% 0.005 285.823);\n\n --color-neutral-50: oklch(98.5% 0 0);\n --color-neutral-100: oklch(97% 0 0);\n --color-neutral-200: oklch(92.2% 0 0);\n --color-neutral-300: oklch(87% 0 0);\n --color-neutral-400: oklch(70.8% 0 0);\n --color-neutral-500: oklch(55.6% 0 0);\n --color-neutral-600: oklch(43.9% 0 0);\n --color-neutral-700: oklch(37.1% 0 0);\n --color-neutral-800: oklch(26.9% 0 0);\n --color-neutral-900: oklch(20.5% 0 0);\n --color-neutral-950: oklch(14.5% 0 0);\n\n --color-stone-50: oklch(98.5% 0.001 106.423);\n --color-stone-100: oklch(97% 0.001 106.424);\n --color-stone-200: oklch(92.3% 0.003 48.717);\n --color-stone-300: oklch(86.9% 0.005 56.366);\n --color-stone-400: oklch(70.9% 0.01 56.259);\n --color-stone-500: oklch(55.3% 0.013 58.071);\n --color-stone-600: oklch(44.4% 0.011 73.639);\n --color-stone-700: oklch(37.4% 0.01 67.558);\n --color-stone-800: oklch(26.8% 0.007 34.298);\n --color-stone-900: oklch(21.6% 0.006 56.043);\n --color-stone-950: oklch(14.7% 0.004 49.25);\n\n --color-black: #000;\n --color-white: #fff;\n\n --spacing: 0.25rem;\n\n --breakpoint-sm: 40rem;\n --breakpoint-md: 48rem;\n --breakpoint-lg: 64rem;\n --breakpoint-xl: 80rem;\n --breakpoint-2xl: 96rem;\n\n --container-3xs: 16rem;\n --container-2xs: 18rem;\n --container-xs: 20rem;\n --container-sm: 24rem;\n --container-md: 28rem;\n --container-lg: 32rem;\n --container-xl: 36rem;\n --container-2xl: 42rem;\n --container-3xl: 48rem;\n --container-4xl: 56rem;\n --container-5xl: 64rem;\n --container-6xl: 72rem;\n --container-7xl: 80rem;\n\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-3xl: 1.875rem;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --text-4xl: 2.25rem;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --text-5xl: 3rem;\n --text-5xl--line-height: 1;\n --text-6xl: 3.75rem;\n --text-6xl--line-height: 1;\n --text-7xl: 4.5rem;\n --text-7xl--line-height: 1;\n --text-8xl: 6rem;\n --text-8xl--line-height: 1;\n --text-9xl: 8rem;\n --text-9xl--line-height: 1;\n\n --font-weight-thin: 100;\n --font-weight-extralight: 200;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-extrabold: 800;\n --font-weight-black: 900;\n\n --tracking-tighter: -0.05em;\n --tracking-tight: -0.025em;\n --tracking-normal: 0em;\n --tracking-wide: 0.025em;\n --tracking-wider: 0.05em;\n --tracking-widest: 0.1em;\n\n --leading-tight: 1.25;\n --leading-snug: 1.375;\n --leading-normal: 1.5;\n --leading-relaxed: 1.625;\n --leading-loose: 2;\n\n --radius-xs: 0.125rem;\n --radius-sm: 0.25rem;\n --radius-md: 0.375rem;\n --radius-lg: 0.5rem;\n --radius-xl: 0.75rem;\n --radius-2xl: 1rem;\n --radius-3xl: 1.5rem;\n --radius-4xl: 2rem;\n\n --shadow-2xs: 0 1px rgb(0 0 0 / 0.05);\n --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n\n --inset-shadow-2xs: inset 0 1px rgb(0 0 0 / 0.05);\n --inset-shadow-xs: inset 0 1px 1px rgb(0 0 0 / 0.05);\n --inset-shadow-sm: inset 0 2px 4px rgb(0 0 0 / 0.05);\n\n --drop-shadow-xs: 0 1px 1px rgb(0 0 0 / 0.05);\n --drop-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.15);\n --drop-shadow-md: 0 3px 3px rgb(0 0 0 / 0.12);\n --drop-shadow-lg: 0 4px 4px rgb(0 0 0 / 0.15);\n --drop-shadow-xl: 0 9px 7px rgb(0 0 0 / 0.1);\n --drop-shadow-2xl: 0 25px 25px rgb(0 0 0 / 0.15);\n\n --text-shadow-2xs: 0px 1px 0px rgb(0 0 0 / 0.15);\n --text-shadow-xs: 0px 1px 1px rgb(0 0 0 / 0.2);\n --text-shadow-sm:\n 0px 1px 0px rgb(0 0 0 / 0.075), 0px 1px 1px rgb(0 0 0 / 0.075), 0px 2px 2px rgb(0 0 0 / 0.075);\n --text-shadow-md:\n 0px 1px 1px rgb(0 0 0 / 0.1), 0px 1px 2px rgb(0 0 0 / 0.1), 0px 2px 4px rgb(0 0 0 / 0.1);\n --text-shadow-lg:\n 0px 1px 2px rgb(0 0 0 / 0.1), 0px 3px 2px rgb(0 0 0 / 0.1), 0px 4px 8px rgb(0 0 0 / 0.1);\n\n --ease-in: cubic-bezier(0.4, 0, 1, 1);\n --ease-out: cubic-bezier(0, 0, 0.2, 1);\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n\n --animate-spin: spin 1s linear infinite;\n --animate-ping: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --animate-bounce: bounce 1s infinite;\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes ping {\n 75%,\n 100% {\n transform: scale(2);\n opacity: 0;\n }\n }\n\n @keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n }\n\n @keyframes bounce {\n 0%,\n 100% {\n transform: translateY(-25%);\n animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\n }\n\n 50% {\n transform: none;\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n }\n\n --blur-xs: 4px;\n --blur-sm: 8px;\n --blur-md: 12px;\n --blur-lg: 16px;\n --blur-xl: 24px;\n --blur-2xl: 40px;\n --blur-3xl: 64px;\n\n --perspective-dramatic: 100px;\n --perspective-near: 300px;\n --perspective-normal: 500px;\n --perspective-midrange: 800px;\n --perspective-distant: 1200px;\n\n --aspect-video: 16 / 9;\n\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: --theme(--font-sans, initial);\n --default-font-feature-settings: --theme(--font-sans--font-feature-settings, initial);\n --default-font-variation-settings: --theme(--font-sans--font-variation-settings, initial);\n --default-mono-font-family: --theme(--font-mono, initial);\n --default-mono-font-feature-settings: --theme(--font-mono--font-feature-settings, initial);\n --default-mono-font-variation-settings: --theme(--font-mono--font-variation-settings, initial);\n}\n\n/* Deprecated */\n@theme default inline reference {\n --blur: 8px;\n --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);\n --drop-shadow: 0 1px 2px rgb(0 0 0 / 0.1), 0 1px 1px rgb(0 0 0 / 0.06);\n --radius: 0.25rem;\n --max-width-prose: 65ch;\n}\n",utilities:"@tailwind utilities;\n"};console.warn("The browser build of Tailwind CSS should not be used in production. To use Tailwind CSS in production, use the Tailwind CLI, Vite plugin, or PostCSS plugin: https://tailwindcss.com/docs/installation");var dr,fr="text/tailwindcss",pr=new Set,hr="",mr=document.createElement("style"),gr=Promise.resolve(),vr=1,wr=new class{start(e){performance.mark(`${e} (start)`)}end(e,t){performance.mark(`${e} (end)`),performance.measure(e,{start:`${e} (start)`,end:`${e} (end)`,detail:t})}hit(e,t){performance.mark(e,{detail:t})}error(e){throw performance.mark("(error)",{detail:{error:`${e}`}}),e}};async function kr(e,t){try{let r=function(){if("tailwindcss"===e)return{path:"virtual:tailwindcss/index.css",base:t,content:ur.index};if("tailwindcss/preflight"===e||"tailwindcss/preflight.css"===e||"./preflight.css"===e)return{path:"virtual:tailwindcss/preflight.css",base:t,content:ur.preflight};if("tailwindcss/theme"===e||"tailwindcss/theme.css"===e||"./theme.css"===e)return{path:"virtual:tailwindcss/theme.css",base:t,content:ur.theme};if("tailwindcss/utilities"===e||"tailwindcss/utilities.css"===e||"./utilities.css"===e)return{path:"virtual:tailwindcss/utilities.css",base:t,content:ur.utilities};throw new Error(`The browser build does not support @import for "${e}"`)}();return wr.hit("Loaded stylesheet",{id:e,base:t,size:r.content.length}),r}catch(r){throw wr.hit("Failed to load stylesheet",{id:e,base:t,error:r.message??r}),r}}async function br(){throw new Error("The browser build does not support plugins or config files.")}function yr(e){gr=gr.then((async function(){if(!dr&&"full"!==e)return;let t=vr++;wr.start(`Build #${t} (${e})`),"full"===e&&await async function(){wr.start("Create compiler"),wr.start("Reading Stylesheets");let e=document.querySelectorAll(`style[type="${fr}"]`),t="";for(let r of e)$r(r),t+=r.textContent+"\n";if(t.includes("@import")||(t=`@import "tailwindcss";${t}`),wr.end("Reading Stylesheets",{size:t.length,changed:hr!==t}),hr!==t){hr=t,wr.start("Compile CSS");try{dr=await cr(t,{base:"/",loadStylesheet:kr,loadModule:br})}finally{wr.end("Compile CSS"),wr.end("Create compiler")}pr.clear()}}(),wr.start("Build"),await async function(e){if(!dr)return;let t=new Set;wr.start("Collect classes");for(let e of document.querySelectorAll("[class]"))for(let r of e.classList)pr.has(r)||(pr.add(r),t.add(r));wr.end("Collect classes",{count:t.size}),(0!==t.size||"incremental"!==e)&&(wr.start("Build utilities"),mr.textContent=dr.build(Array.from(t)),wr.end("Build utilities"))}(e),wr.end("Build"),wr.end(`Build #${t} (${e})`)})).catch((e=>wr.error(e)))}var xr=new MutationObserver((()=>yr("full")));function $r(e){xr.observe(e,{attributes:!0,attributeFilter:["type"],characterData:!0,subtree:!0,childList:!0})}new MutationObserver((e=>{let t=0,r=0;for(let n of e){for(let e of n.addedNodes)e.nodeType===Node.ELEMENT_NODE&&"STYLE"===e.tagName&&e.getAttribute("type")===fr&&($r(e),t++);for(let e of n.addedNodes)1===e.nodeType&&e!==mr&&r++;"attributes"===n.type&&r++}return t>0?yr("full"):r>0?yr("incremental"):void 0})).observe(document.documentElement,{attributes:!0,attributeFilter:["class"],childList:!0,subtree:!0}),yr("full"),document.head.append(mr)})(); +//# sourceMappingURL=/sm/b2abd7ab24c88c705f042d29a9e3fee4973bb98c8f5ea4ba06ddec6f9e3df3b0.map \ No newline at end of file diff --git a/store/check_store.go b/store/check_store.go new file mode 100644 index 0000000..681db93 --- /dev/null +++ b/store/check_store.go @@ -0,0 +1,140 @@ +package store + +import ( + "context" + "fmt" + "time" + "uptimemonitor" + + "github.com/google/uuid" +) + +func (s *Store) CreateCheck(ctx context.Context, check uptimemonitor.Check) (uptimemonitor.Check, error) { + stmt := `INSERT INTO checks(uuid, monitor_id, status_code, response_time_ms, created_at) VALUES(?, ?, ?, ?, ?)` + uuid := uuid.NewString() + if check.CreatedAt.IsZero() { + check.CreatedAt = time.Now() + } + + tx, err := s.db.BeginTx(ctx, nil) + if err != nil { + return check, err + } + + defer tx.Rollback() + + res, err := tx.ExecContext(ctx, stmt, uuid, check.MonitorID, check.StatusCode, check.ResponseTimeMs, check.CreatedAt) + if err != nil { + return check, err + } + + id, _ := res.LastInsertId() + check.ID = id + + stmt = ` + SELECT uptime, avg_response_time_ms, n, incidents_count + FROM monitors + WHERE id = ? + ` + var n int64 + var uptime float32 + var avgResponseTimeMs int64 + var incidentsCount int64 + err = tx.QueryRowContext(ctx, stmt, check.MonitorID).Scan(&uptime, &avgResponseTimeMs, &n, &incidentsCount) + if err != nil { + return check, err + } + + if check.StatusCode >= 300 { + incidentsCount++ + } + + stmt = ` + UPDATE monitors + SET uptime = ?, avg_response_time_ms = ?, n = ?, incidents_count = ? + WHERE id = ? + ` + newIncidentCount := incidentsCount + newN := n + 1 + newUptime := fmt.Sprintf("%.1f", float32(float32(newN-newIncidentCount)/float32(newN)*float32(100))) + newAvgResponseTimeMs := (avgResponseTimeMs*n + check.ResponseTimeMs) / newN + + _, err = tx.ExecContext(ctx, stmt, newUptime, newAvgResponseTimeMs, newN, newIncidentCount, check.MonitorID) + if err != nil { + return check, err + } + + tx.Commit() + + return check, nil +} + +func (s *Store) ListChecks(ctx context.Context, monitorID int64, limit int) ([]uptimemonitor.Check, error) { + stmt := ` + SELECT checks.id, checks.uuid, checks.monitor_id, checks.created_at, + checks.status_code, checks.response_time_ms, + monitors.id, monitors.uuid, monitors.url, monitors.created_at + FROM checks + LEFT JOIN monitors ON monitors.id = checks.monitor_id + WHERE monitor_id = ? + ORDER BY checks.id DESC + LIMIT ? + ` + + rows, err := s.db.QueryContext(ctx, stmt, monitorID, limit) + if err != nil { + return []uptimemonitor.Check{}, err + } + + defer rows.Close() + + var checks []uptimemonitor.Check + + for rows.Next() { + var c uptimemonitor.Check + + if err := rows.Scan( + &c.ID, &c.Uuid, &c.MonitorID, &c.CreatedAt, + &c.StatusCode, &c.ResponseTimeMs, + &c.Monitor.ID, &c.Monitor.Uuid, &c.Monitor.Url, &c.Monitor.CreatedAt, + ); err != nil { + return []uptimemonitor.Check{}, err + } + + checks = append(checks, c) + } + + if err = rows.Err(); err != nil { + return []uptimemonitor.Check{}, err + } + + return checks, nil +} + +func (s *Store) GetCheckByID(ctx context.Context, id int64) (uptimemonitor.Check, error) { + stmt := ` + SELECT + checks.id, checks.uuid, checks.monitor_id, checks.status_code, checks.response_time_ms, checks.created_at, + monitors.id, monitors.url, monitors.uuid, monitors.http_method, monitors.http_headers, monitors.http_body, monitors.created_at + FROM checks + LEFT JOIN monitors ON monitors.id = checks.monitor_id + WHERE checks.id = ? + ` + + var ch uptimemonitor.Check + err := s.db.QueryRowContext(ctx, stmt, id).Scan( + &ch.ID, &ch.Uuid, &ch.MonitorID, &ch.StatusCode, &ch.ResponseTimeMs, &ch.CreatedAt, + &ch.Monitor.ID, &ch.Monitor.Url, &ch.Monitor.Uuid, &ch.Monitor.HttpMethod, &ch.Monitor.HttpHeaders, &ch.Monitor.HttpBody, &ch.Monitor.CreatedAt, + ) + + return ch, err +} + +func (s *Store) DeleteOldChecks(ctx context.Context) error { + stmt := `DELETE FROM checks WHERE created_at < ?` + + _, err := s.db.ExecContext(ctx, stmt, time.Now().Add(-time.Hour)) + + return err + +} diff --git a/store/embed.go b/store/embed.go new file mode 100644 index 0000000..c3260ab --- /dev/null +++ b/store/embed.go @@ -0,0 +1,8 @@ +package store + +import "embed" + +var ( + //go:embed migrations/*.sql + FS embed.FS +) diff --git a/store/incident_store.go b/store/incident_store.go new file mode 100644 index 0000000..84ee113 --- /dev/null +++ b/store/incident_store.go @@ -0,0 +1,301 @@ +package store + +import ( + "context" + "time" + "uptimemonitor" + + "github.com/google/uuid" +) + +func (s *Store) CreateIncident(ctx context.Context, incident uptimemonitor.Incident) (uptimemonitor.Incident, error) { + stmt := `INSERT INTO incidents (uuid, monitor_id, status_text, status_code, response_time_ms, body, headers, req_method, req_url, req_headers, req_body, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING id` + + if incident.CreatedAt.IsZero() { + incident.CreatedAt = time.Now() + } + + incident.Uuid = uuid.NewString() + incident.StatusText = uptimemonitor.IncidentStatusOpen + + res, err := s.db.ExecContext(ctx, stmt, incident.Uuid, incident.MonitorID, incident.StatusText, incident.StatusCode, incident.ResponseTimeMs, incident.Body, incident.Headers, + incident.ReqMethod, incident.ReqUrl, incident.ReqHeaders, incident.ReqBody, incident.CreatedAt) + if err != nil { + return uptimemonitor.Incident{}, err + } + + id, err := res.LastInsertId() + incident.ID = id + + return incident, err +} + +func (s *Store) UpdateIncidentBodyAndHeaders(ctx context.Context, incident uptimemonitor.Incident, body, headers, reqMethod, reqUrl, reqHeaders, reqBody string) error { + stmt := ` + UPDATE incidents + SET body = ?, headers = ?, req_method = ?, req_url = ?, req_headers = ?, req_body = ? + WHERE id = ? + ` + + _, err := s.db.ExecContext(ctx, stmt, body, headers, reqMethod, reqUrl, reqHeaders, reqBody, incident.ID) + + return err +} + +func (s *Store) LastIncidentByStatusCode(ctx context.Context, monitorID int64, status string, statusCode int) (uptimemonitor.Incident, error) { + stmt := ` + SELECT id, uuid, monitor_id, status_text, status_code, response_time_ms, body, headers, created_at + FROM incidents + WHERE monitor_id = ? AND status_text = ? AND status_code = ? + ORDER BY id DESC + LIMIT 1 + ` + + row := s.db.QueryRowContext(ctx, stmt, monitorID, status, statusCode) + + var incident uptimemonitor.Incident + if err := row.Scan( + &incident.ID, &incident.Uuid, &incident.MonitorID, + &incident.StatusText, &incident.StatusCode, &incident.ResponseTimeMs, + &incident.Body, &incident.Headers, &incident.CreatedAt, + ); err != nil { + return uptimemonitor.Incident{}, err + } + + return incident, nil +} + +func (s *Store) LastOpenIncident(ctx context.Context, monitorID int64) (uptimemonitor.Incident, error) { + stmt := ` + SELECT id, uuid, monitor_id, status_text, status_code, response_time_ms, body, headers, created_at + FROM incidents + WHERE monitor_id = ? AND status_text = ? + ORDER BY id DESC + LIMIT 1 + ` + + row := s.db.QueryRowContext(ctx, stmt, monitorID, uptimemonitor.IncidentStatusOpen) + + var incident uptimemonitor.Incident + if err := row.Scan( + &incident.ID, &incident.Uuid, &incident.MonitorID, + &incident.StatusText, &incident.StatusCode, &incident.ResponseTimeMs, + &incident.Body, &incident.Headers, &incident.CreatedAt, + ); err != nil { + return uptimemonitor.Incident{}, err + } + + return incident, nil +} + +func (s *Store) ListOpenIncidents(ctx context.Context) ([]uptimemonitor.Incident, error) { + stmt := ` + SELECT incidents.id, incidents.uuid, incidents.monitor_id, + incidents.status_text, incidents.status_code, incidents.response_time_ms, + incidents.body, incidents.headers, incidents.created_at, + monitors.id, monitors.url, monitors.uuid, monitors.created_at + FROM incidents + JOIN monitors ON incidents.monitor_id = monitors.id + WHERE incidents.status_text = ? + ORDER BY incidents.id DESC + ` + + rows, err := s.db.QueryContext(ctx, stmt, uptimemonitor.IncidentStatusOpen) + if err != nil { + return nil, err + } + defer rows.Close() + + var incidents []uptimemonitor.Incident + for rows.Next() { + var incident uptimemonitor.Incident + if err := rows.Scan( + &incident.ID, &incident.Uuid, &incident.MonitorID, + &incident.StatusText, &incident.StatusCode, &incident.ResponseTimeMs, + &incident.Body, &incident.Headers, &incident.CreatedAt, + &incident.Monitor.ID, &incident.Monitor.Url, &incident.Monitor.Uuid, &incident.Monitor.CreatedAt, + ); err != nil { + return nil, err + } + incidents = append(incidents, incident) + } + + return incidents, nil +} + +func (s *Store) ListMonitorIncidents(ctx context.Context, id int64) ([]uptimemonitor.Incident, error) { + stmt := ` + SELECT incidents.id, incidents.uuid, incidents.monitor_id, + incidents.status_text, incidents.status_code, incidents.response_time_ms, + incidents.body, incidents.headers, incidents.created_at, incidents.resolved_at, + monitors.id, monitors.url, monitors.uuid, monitors.created_at + FROM incidents + JOIN monitors ON incidents.monitor_id = monitors.id + WHERE incidents.monitor_id = ? + ORDER BY incidents.id DESC + LIMIT 10 + ` + + rows, err := s.db.QueryContext(ctx, stmt, id) + if err != nil { + return nil, err + } + defer rows.Close() + + var incidents []uptimemonitor.Incident + for rows.Next() { + var incident uptimemonitor.Incident + if err := rows.Scan( + &incident.ID, &incident.Uuid, &incident.MonitorID, + &incident.StatusText, &incident.StatusCode, &incident.ResponseTimeMs, + &incident.Body, &incident.Headers, &incident.CreatedAt, &incident.ResolvedAt, + &incident.Monitor.ID, &incident.Monitor.Url, &incident.Monitor.Uuid, &incident.Monitor.CreatedAt, + ); err != nil { + return nil, err + } + incidents = append(incidents, incident) + } + + return incidents, nil +} +func (s *Store) CountMonitorIncidents(ctx context.Context, id int64) int64 { + stmt := ` + SELECT COUNT(*) + FROM incidents + WHERE monitor_id = ? + ` + + var count int64 + s.db.QueryRowContext(ctx, stmt, id).Scan(&count) + + return count +} + +func (s *Store) ListMonitorOpenIncidents(ctx context.Context, id int64) ([]uptimemonitor.Incident, error) { + stmt := ` + SELECT incidents.id, incidents.uuid, incidents.monitor_id, + incidents.status_text, incidents.status_code, incidents.response_time_ms, + incidents.body, incidents.headers, incidents.created_at, + monitors.id, monitors.url, monitors.uuid, monitors.created_at + FROM incidents + JOIN monitors ON incidents.monitor_id = monitors.id + WHERE incidents.monitor_id = ? AND incidents.status_text = ? + ORDER BY incidents.id DESC + ` + + rows, err := s.db.QueryContext(ctx, stmt, id, uptimemonitor.IncidentStatusOpen) + if err != nil { + return nil, err + } + defer rows.Close() + + var incidents []uptimemonitor.Incident + for rows.Next() { + var incident uptimemonitor.Incident + if err := rows.Scan( + &incident.ID, &incident.Uuid, &incident.MonitorID, + &incident.StatusText, &incident.StatusCode, &incident.ResponseTimeMs, + &incident.Body, &incident.Headers, &incident.CreatedAt, + &incident.Monitor.ID, &incident.Monitor.Url, &incident.Monitor.Uuid, &incident.Monitor.CreatedAt, + ); err != nil { + return nil, err + } + incidents = append(incidents, incident) + } + + return incidents, nil +} + +func (s *Store) ResolveIncident(ctx context.Context, incident uptimemonitor.Incident) error { + stmt := ` + UPDATE incidents SET status_text = ?, resolved_at = ? WHERE id = ? + ` + + _, err := s.db.ExecContext(ctx, stmt, uptimemonitor.IncidentStatusResolved, time.Now(), incident.ID) + + return err +} + +func (s *Store) ResolveMonitorIncidents(ctx context.Context, monitor uptimemonitor.Monitor) error { + stmt := ` + UPDATE incidents SET status_text = ?, resolved_at = ? WHERE monitor_id = ? + ` + + _, err := s.db.ExecContext(ctx, stmt, uptimemonitor.IncidentStatusResolved, time.Now(), monitor.ID) + + return err +} + +func (s *Store) DeleteOldIncidents(ctx context.Context) error { + stmt := `DELETE FROM incidents WHERE created_at < ?` + + _, err := s.db.ExecContext(ctx, stmt, time.Now().Add(-time.Hour*24*7)) + + return err +} + +func (s *Store) DeleteIncident(ctx context.Context, id int64) error { + stmt := `DELETE FROM incidents WHERE id = ?` + + _, err := s.db.ExecContext(ctx, stmt, id) + + return err +} + +func (s *Store) GetIncidentByUuid(ctx context.Context, uuid string) (uptimemonitor.Incident, error) { + stmt := ` + SELECT + incidents.id, incidents.uuid, incidents.monitor_id, + incidents.status_text, incidents.status_code, incidents.response_time_ms, + incidents.body, incidents.headers, incidents.created_at, incidents.resolved_at, + incidents.req_method, incidents.req_url, incidents.req_headers, incidents.req_body, + monitors.id, monitors.url, monitors.uuid, monitors.created_at + FROM incidents + LEFT JOIN monitors ON monitors.id = incidents.monitor_id + WHERE incidents.uuid = ? + ` + + row := s.db.QueryRowContext(ctx, stmt, uuid) + + var incident uptimemonitor.Incident + if err := row.Scan( + &incident.ID, &incident.Uuid, &incident.MonitorID, + &incident.StatusText, &incident.StatusCode, &incident.ResponseTimeMs, + &incident.Body, &incident.Headers, &incident.CreatedAt, &incident.ResolvedAt, + &incident.ReqMethod, &incident.ReqUrl, &incident.ReqHeaders, &incident.ReqBody, + &incident.Monitor.ID, &incident.Monitor.Url, &incident.Monitor.Uuid, &incident.Monitor.CreatedAt, + ); err != nil { + return incident, err + } + + return incident, nil +} + +func (s *Store) GetIncidentByID(ctx context.Context, id int64) (uptimemonitor.Incident, error) { + stmt := ` + SELECT + incidents.id, incidents.uuid, incidents.monitor_id, + incidents.status_text, incidents.status_code, incidents.response_time_ms, + incidents.body, incidents.headers, incidents.created_at, incidents.resolved_at, + incidents.req_method, incidents.req_url, incidents.req_headers, incidents.req_body, + monitors.id, monitors.url, monitors.uuid, monitors.created_at + FROM incidents + LEFT JOIN monitors ON monitors.id = incidents.monitor_id + WHERE incidents.id = ? + ` + + row := s.db.QueryRowContext(ctx, stmt, id) + + var incident uptimemonitor.Incident + if err := row.Scan( + &incident.ID, &incident.Uuid, &incident.MonitorID, + &incident.StatusText, &incident.StatusCode, &incident.ResponseTimeMs, + &incident.Body, &incident.Headers, &incident.CreatedAt, &incident.ResolvedAt, + &incident.ReqMethod, &incident.ReqUrl, &incident.ReqHeaders, &incident.ReqBody, + &incident.Monitor.ID, &incident.Monitor.Url, &incident.Monitor.Uuid, &incident.Monitor.CreatedAt, + ); err != nil { + return incident, err + } + + return incident, nil +} diff --git a/store/migrations/00001_init.sql b/store/migrations/00001_init.sql new file mode 100644 index 0000000..05077a7 --- /dev/null +++ b/store/migrations/00001_init.sql @@ -0,0 +1,68 @@ +-- +goose Up +-- +goose StatementBegin +CREATE TABLE users ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + email TEXT NOT NULL UNIQUE, + password_hash TEXT NOT NULL, + created_at DATETIME NOT NULL +); + +CREATE TABLE sessions ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + uuid TEXT NOT NULL UNIQUE, + user_id INTEGER, + created_at DATETIME NOT NULL, + expires_at DATETIME NOT NULL, + + FOREIGN KEY(user_id) REFERENCES users(id) +); + +CREATE TABLE monitors ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + uuid TEXT NOT NULL UNIQUE, + `url` TEXT NOT NULL, + http_method TEXT NOT NULL, + http_headers TEXT NOT NULL, + http_body TEXT NOT NULL, + webhook_url TEXT NOT NULL, + webhook_method TEXT NOT NULL, + webhook_headers TEXT NOT NULL, + webhook_body TEXT NOT NULL, + uptime FLOAT DEFAULT 0, + avg_response_time_ms INTEGER DEFAULT 0, + incidents_count INTEGER DEFAULT 0, + n INTEGER DEFAULT 0, + created_at DATETIME NOT NULL +); + +CREATE TABLE checks( + id INTEGER PRIMARY KEY AUTOINCREMENT, + uuid TEXT NOT NULL UNIQUE, + monitor_id INTEGER, + created_at DATETIME NOT NULL, + status_code INTEGER NOT NULL, + response_time_ms INTEGER NOT NULL, + + FOREIGN KEY(monitor_id) REFERENCES monitors(id) ON DELETE CASCADE +); + +CREATE TABLE incidents( + id INTEGER PRIMARY KEY AUTOINCREMENT, + uuid TEXT NOT NULL UNIQUE, + monitor_id INTEGER, + status_text TEXT NOT NULL, + status_code INTEGER NOT NULL, + response_time_ms INTEGER NOT NULL, + body TEXT, + headers TEXT, + req_method TEXT, + req_url TEXT, + req_headers TEXT, + req_body TEXT, + created_at DATETIME NOT NULL, + resolved_at DATETIME, + + FOREIGN KEY(monitor_id) REFERENCES monitors(id) ON DELETE CASCADE +); +-- +goose StatementEnd \ No newline at end of file diff --git a/store/monitor_store.go b/store/monitor_store.go new file mode 100644 index 0000000..9d3bf62 --- /dev/null +++ b/store/monitor_store.go @@ -0,0 +1,158 @@ +package store + +import ( + "context" + "time" + "uptimemonitor" + + "github.com/google/uuid" +) + +func (s *Store) CountMonitors(ctx context.Context) int { + stmt := `SELECT COUNT(*) FROM monitors` + + var count int + s.db.QueryRowContext(ctx, stmt).Scan(&count) + + return count +} + +func (s *Store) CreateMonitor(ctx context.Context, monitor uptimemonitor.Monitor) (uptimemonitor.Monitor, error) { + stmt := ` + INSERT INTO + monitors( + url, uuid, + http_method, http_headers, http_body, + webhook_url, webhook_method, webhook_headers, webhook_body, + created_at + ) + VALUES(?,?,?,?,?,?,?,?,?,?) + ` + monitor.CreatedAt = time.Now() + + uuid := uuid.NewString() + res, err := s.db.ExecContext( + ctx, stmt, + monitor.Url, uuid, monitor.HttpMethod, monitor.HttpHeaders, monitor.HttpBody, + monitor.WebhookUrl, monitor.WebhookMethod, monitor.WebhookHeaders, monitor.WebhookBody, + monitor.CreatedAt, + ) + if err != nil { + return monitor, err + } + + id, _ := res.LastInsertId() + + monitor.ID = id + monitor.Uuid = uuid + return monitor, nil +} + +func (s *Store) ListMonitors(ctx context.Context) ([]uptimemonitor.Monitor, error) { + stmt := ` + SELECT + id, url, uuid, created_at, + http_method, http_body, http_headers, + webhook_method, webhook_url, webhook_headers, webhook_body + FROM monitors + ORDER BY created_at DESC + ` + + rows, err := s.db.QueryContext(ctx, stmt) + if err != nil { + return []uptimemonitor.Monitor{}, err + } + defer rows.Close() + + var monitors []uptimemonitor.Monitor + + for rows.Next() { + var m uptimemonitor.Monitor + if err := rows.Scan( + &m.ID, &m.Url, &m.Uuid, &m.CreatedAt, &m.HttpMethod, &m.HttpBody, &m.HttpHeaders, + &m.WebhookMethod, &m.WebhookUrl, &m.WebhookHeaders, &m.WebhookBody, + ); err != nil { + return monitors, err + } + + monitors = append(monitors, m) + } + + if err = rows.Err(); err != nil { + return monitors, err + } + + return monitors, nil +} + +func (s *Store) GetMonitorByID(ctx context.Context, id int) (uptimemonitor.Monitor, error) { + stmt := ` + SELECT + id, url, uuid, http_method, http_headers, http_body, + webhook_url, webhook_method, webhook_headers, webhook_body, + uptime, avg_response_time_ms, n, incidents_count, + created_at + FROM monitors + WHERE id = ? + LIMIT 1 + ` + var m uptimemonitor.Monitor + err := s.db.QueryRowContext(ctx, stmt, id). + Scan( + &m.ID, &m.Url, &m.Uuid, &m.HttpMethod, &m.HttpHeaders, &m.HttpBody, + &m.WebhookUrl, &m.WebhookMethod, &m.WebhookHeaders, &m.WebhookBody, + &m.Uptime, &m.AvgResponseTimeMs, &m.N, &m.IncidentsCount, + &m.CreatedAt, + ) + + return m, err +} + +func (s *Store) GetMonitorByUuid(ctx context.Context, uuid string) (uptimemonitor.Monitor, error) { + stmt := ` + SELECT + id, url, uuid, http_method, http_headers, http_body, + webhook_url, webhook_method, webhook_headers, webhook_body, + uptime, avg_response_time_ms, n, incidents_count, + created_at + FROM monitors + WHERE uuid = ? + LIMIT 1 + ` + var m uptimemonitor.Monitor + err := s.db.QueryRowContext(ctx, stmt, uuid). + Scan( + &m.ID, &m.Url, &m.Uuid, &m.HttpMethod, &m.HttpHeaders, &m.HttpBody, + &m.WebhookUrl, &m.WebhookMethod, &m.WebhookHeaders, &m.WebhookBody, + &m.Uptime, &m.AvgResponseTimeMs, &m.N, &m.IncidentsCount, + &m.CreatedAt, + ) + return m, err +} + +func (s *Store) UpdateMonitor(ctx context.Context, monitor uptimemonitor.Monitor) error { + stmt := ` + UPDATE monitors SET + url = ?, http_method = ?, http_headers = ?, http_body = ?, + webhook_url = ?, webhook_method = ?, webhook_headers = ?, webhook_body = ? + WHERE id = ? + ` + + _, err := s.db.ExecContext( + ctx, stmt, monitor.Url, monitor.HttpMethod, monitor.HttpHeaders, monitor.HttpBody, + monitor.WebhookUrl, monitor.WebhookMethod, monitor.WebhookHeaders, monitor.WebhookBody, + monitor.ID, + ) + if err != nil { + return err + } + + return nil +} + +func (s *Store) DeleteMonitor(ctx context.Context, id int64) error { + stmt := `DELETE FROM monitors WHERE id = ?` + + _, err := s.db.ExecContext(ctx, stmt, id) + return err +} diff --git a/store/session_store.go b/store/session_store.go new file mode 100644 index 0000000..ba8aa0b --- /dev/null +++ b/store/session_store.go @@ -0,0 +1,54 @@ +package store + +import ( + "context" + "time" + "uptimemonitor" + + "github.com/google/uuid" +) + +func (s *Store) CreateSession(ctx context.Context, session uptimemonitor.Session) (uptimemonitor.Session, error) { + stmt := `INSERT INTO sessions (uuid, user_id, created_at, expires_at) VALUES(?, ?, ?, ?)` + uuid := uuid.NewString() + session.CreatedAt = time.Now() + + res, err := s.db.ExecContext(ctx, stmt, uuid, session.UserID, session.CreatedAt, session.ExpiresAt) + if err != nil { + return session, err + } + + id, _ := res.LastInsertId() + + session.ID = id + session.Uuid = uuid + return session, nil +} + +func (s *Store) GetSessionByUuid(ctx context.Context, uuid string) (uptimemonitor.Session, error) { + stmt := ` + SELECT sessions.id, sessions.user_id, sessions.created_at, sessions.expires_at, + users.id, users.name, users.email, users.created_at + FROM sessions + LEFT JOIN users ON users.id = sessions.user_id + WHERE uuid = ? + LIMIT 1 + ` + var session uptimemonitor.Session + + err := s.db.QueryRowContext(ctx, stmt, uuid).Scan( + &session.ID, &session.UserID, &session.CreatedAt, &session.ExpiresAt, + &session.User.ID, &session.User.Name, &session.User.Email, &session.User.CreatedAt, + ) + + return session, err +} + +func (s *Store) RemoveSessionByID(ctx context.Context, id int64) error { + stmt := ` + DELETE FROM sessions WHERE id = ? + ` + + _, err := s.db.ExecContext(ctx, stmt, id) + return err +} diff --git a/store/store.go b/store/store.go new file mode 100644 index 0000000..9344939 --- /dev/null +++ b/store/store.go @@ -0,0 +1,51 @@ +package store + +import ( + "database/sql" + "fmt" + + "github.com/pressly/goose/v3" + _ "modernc.org/sqlite" +) + +type Store struct { + db *sql.DB +} + +func New(dsn string) *Store { + db, err := sql.Open("sqlite", dsn) + if err != nil { + panic(err) + } + + if err := db.Ping(); err != nil { + panic(err) + } + + _, err = db.Exec("PRAGMA journal_mode=WAL;") + if err != nil { + panic(fmt.Sprintf("Failed to enable WAL mode: %v", err)) + } + + db.Exec("PRAGMA foreign_keys = ON;") + + db.SetMaxOpenConns(1) + db.SetMaxIdleConns(1) + db.SetConnMaxLifetime(0) + + goose.SetBaseFS(FS) + if err := goose.SetDialect("sqlite"); err != nil { + panic(err) + } + if err := goose.Up(db, "migrations"); err != nil { + panic(err) + } + + return &Store{ + db: db, + } +} + +func (s *Store) DB() *sql.DB { + return s.db +} diff --git a/store/user_store.go b/store/user_store.go new file mode 100644 index 0000000..573a22e --- /dev/null +++ b/store/user_store.go @@ -0,0 +1,48 @@ +package store + +import ( + "context" + "time" + "uptimemonitor" +) + +func (s *Store) CountUsers(ctx context.Context) (int, error) { + stmt := `SELECT COUNT(*) FROM users` + + var count int + if err := s.db.QueryRowContext(ctx, stmt).Scan(&count); err != nil { + return 0, err + } + return count, nil +} + +func (s *Store) CreateUser(ctx context.Context, user uptimemonitor.User) (uptimemonitor.User, error) { + stmt := `INSERT INTO users (name, email, password_hash, created_at) VALUES (?, ?, ?, ?) RETURNING id` + user.CreatedAt = time.Now() + + res, err := s.db.ExecContext(ctx, stmt, user.Name, user.Email, user.PasswordHash, user.CreatedAt) + if err != nil { + return uptimemonitor.User{}, err + } + + id, _ := res.LastInsertId() + + user.ID = id + + return user, nil +} + +func (s *Store) GetUserByEmail(ctx context.Context, email string) (uptimemonitor.User, error) { + stmt := `SELECT id, name, email, password_hash, created_at FROM users WHERE email = ? LIMIT 1` + + row := s.db.QueryRowContext(ctx, stmt, email) + + var user uptimemonitor.User + if err := row.Scan( + &user.ID, &user.Name, &user.Email, &user.PasswordHash, &user.CreatedAt, + ); err != nil { + return user, err + } + + return user, nil +} diff --git a/test/check_test.go b/test/check_test.go new file mode 100644 index 0000000..7ba1efd --- /dev/null +++ b/test/check_test.go @@ -0,0 +1,201 @@ +package test + +import ( + "net/http" + "testing" + "time" + "uptimemonitor" + "uptimemonitor/service" +) + +func TestCheck_ListChecks(t *testing.T) { + t.Run("setup is required to load checks", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Get("/monitors/1/checks"). + AssertRedirect(http.StatusSeeOther, "/setup") + }) + + t.Run("guests cannot load checks", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.CreateTestUser("test@example.com", "password") + + tc.Get("/monitors/1/checks"). + AssertRedirect(http.StatusSeeOther, "/login") + }) + + t.Run("monitor has to exist", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.LogIn(). + Get("/monitors/1/checks"). + AssertStatusCode(http.StatusNotFound) + }) + + t.Run("latest checks are returned", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + monitor, _ := tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: "https://example.com", + }) + + tc.Store.CreateCheck(t.Context(), uptimemonitor.Check{ + MonitorID: monitor.ID, + Monitor: monitor, + }) + + tc.LogIn(). + Get("/monitors/1/checks"). + AssertStatusCode(http.StatusOK). + AssertElementVisible(`div[id="monitors-1-checks-1"]`) + }) +} + +func TestCheck_PeriodicChecks(t *testing.T) { + t.Run("it does not create checks if no monitors are defined", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + service := service.New(tc.Store) + ch := service.StartCheck() + + service.RunCheck(t.Context(), ch) + tc.AssertDatabaseCount("checks", 0) + + service.RunCheck(t.Context(), ch) + tc.AssertDatabaseCount("checks", 0) + }) + + t.Run("it creates checks every minute", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: "https://example.com", + }) + + service := service.CheckService{ + Store: tc.Store, + } + ch := service.StartCheck() + + service.RunCheck(t.Context(), ch) + service.RunCheck(t.Context(), ch) + + time.Sleep(3 * time.Second) + // tc.AssertDatabaseCount("checks", 2) // todo: fix + }) + + t.Run("checks can use different http methods", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{Url: tc.Server.URL + "/test/post", HttpMethod: http.MethodPost}) + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{Url: tc.Server.URL + "/test/patch", HttpMethod: http.MethodPatch}) + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{Url: tc.Server.URL + "/test/put", HttpMethod: http.MethodPut}) + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{Url: tc.Server.URL + "/test/delete", HttpMethod: http.MethodDelete}) + + service := service.CheckService{Store: tc.Store} + ch := service.StartCheck() + service.RunCheck(t.Context(), ch) + time.Sleep(1 * time.Second) + + tc.AssertDatabaseCount("checks", 4) + tc.AssertDatabaseCount("incidents", 0) + + first, err := tc.Store.GetCheckByID(t.Context(), 1) + tc.AssertNoError(err) + + second, err := tc.Store.GetCheckByID(t.Context(), 2) + tc.AssertNoError(err) + + third, err := tc.Store.GetCheckByID(t.Context(), 3) + tc.AssertNoError(err) + + fifth, err := tc.Store.GetCheckByID(t.Context(), 4) + tc.AssertNoError(err) + + tc.AssertEqual(http.StatusOK, first.StatusCode) + tc.AssertEqual(http.StatusOK, second.StatusCode) + tc.AssertEqual(http.StatusOK, third.StatusCode) + tc.AssertEqual(http.StatusOK, fifth.StatusCode) + }) + + t.Run("checks can send custom body", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{Url: tc.Server.URL + "/test/body", HttpMethod: http.MethodPost, HttpBody: `{"test":123}`}) + + service := service.CheckService{Store: tc.Store} + ch := service.StartCheck() + service.RunCheck(t.Context(), ch) + time.Sleep(1 * time.Second) + + check, _ := tc.Store.GetCheckByID(t.Context(), 1) + tc.AssertEqual(http.StatusOK, check.StatusCode) + }) + + t.Run("checks can send custom headers", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{Url: tc.Server.URL + "/test/headers", HttpMethod: http.MethodPost, HttpHeaders: `{"test":"abc"}`}) + + service := service.CheckService{Store: tc.Store} + ch := service.StartCheck() + service.RunCheck(t.Context(), ch) + time.Sleep(1 * time.Second) + + check, _ := tc.Store.GetCheckByID(t.Context(), 1) + tc.AssertEqual(http.StatusOK, check.StatusCode) + }) +} + +func TestCheck_Cleanup(t *testing.T) { + t.Run("old cleanups are removed", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{Url: tc.Server.URL + "/test/200", HttpMethod: http.MethodGet}) + + tc.Store.CreateCheck(t.Context(), uptimemonitor.Check{ + MonitorID: 1, + CreatedAt: time.Now().Add(-time.Hour).Add(-15 * time.Minute), + }) + + tc.Store.CreateCheck(t.Context(), uptimemonitor.Check{ + MonitorID: 1, + }) + + tc.Store.CreateIncident(t.Context(), uptimemonitor.Incident{ + MonitorID: 1, + CreatedAt: time.Now().Add(-time.Hour * 24 * 8), + }) + + tc.Store.CreateIncident(t.Context(), uptimemonitor.Incident{ + MonitorID: 1, + }) + + tc.AssertDatabaseCount("checks", 2) + tc.AssertDatabaseCount("incidents", 2) + + service := service.CheckService{Store: tc.Store} + ch := service.StartCheck() + service.RunCheck(t.Context(), ch) + time.Sleep(1 * time.Second) + + tc.AssertDatabaseCount("checks", 2) // one new, old one deleted + tc.AssertDatabaseCount("incidents", 1) + + service.RunCheck(t.Context(), ch) + time.Sleep(1 * time.Second) + + tc.AssertDatabaseCount("checks", 3) + }) +} diff --git a/test/home_test.go b/test/home_test.go new file mode 100644 index 0000000..a1a4b17 --- /dev/null +++ b/test/home_test.go @@ -0,0 +1,62 @@ +package test + +import ( + "net/http" + "testing" + "uptimemonitor" +) + +func TestHome(t *testing.T) { + t.Run("setup is required to access home page", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Get("/").AssertRedirect(http.StatusSeeOther, "/setup") + }) + + t.Run("guests cannot access home page", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.CreateTestUser("test@example.com", "password") + + tc.Get("/").AssertRedirect(http.StatusSeeOther, "/login") + }) + + t.Run("monitors are displayed on home page", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: "https://example.com", + }) + + tc.LogIn(). + Get("/"). + AssertStatusCode(http.StatusOK). + AssertElementVisible(`[hx-get="/monitors"]`) + }) + + t.Run("incidents are displayed on home page", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: "https://example.com", + }) + + tc.LogIn(). + Get("/"). + AssertStatusCode(http.StatusOK). + AssertElementVisible(`[hx-get="/incidents"]`) + }) + + t.Run("if there are no monitors, user is redirected to the new page", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.LogIn(). + Get("/"). + AssertRedirect(http.StatusSeeOther, "/new") + }) +} diff --git a/test/incident_test.go b/test/incident_test.go new file mode 100644 index 0000000..ea50817 --- /dev/null +++ b/test/incident_test.go @@ -0,0 +1,357 @@ +package test + +import ( + "fmt" + "net/http" + "testing" + "time" + "uptimemonitor" + "uptimemonitor/service" +) + +func TestIncident(t *testing.T) { + t.Run("no incident is created when check succeeds", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + service := service.New(tc.Store) + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: tc.Server.URL + "/test/200", + }) + + ch := service.StartCheck() + service.RunCheck(t.Context(), ch) + + time.Sleep(time.Second) + + tc.AssertDatabaseCount("incidents", 0) + tc.AssertDatabaseCount("checks", 1) + }) + + t.Run("incident is created when check fails", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + service := service.New(tc.Store) + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: tc.Server.URL + "/test/404", + }) + + ch := service.StartCheck() + service.RunCheck(t.Context(), ch) + + time.Sleep(time.Second) + + tc.AssertDatabaseCount("incidents", 1) + tc.AssertDatabaseCount("checks", 1) + }) + + t.Run("new incident is not created for the same monitor if it already exists", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + service := service.New(tc.Store) + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: tc.Server.URL + "/test/500", + }) + + ch := service.StartCheck() + service.RunCheck(t.Context(), ch) + + time.Sleep(time.Second) + + tc.AssertDatabaseCount("incidents", 1) + tc.AssertDatabaseCount("checks", 1) + + ch = service.StartCheck() + service.RunCheck(t.Context(), ch) + + time.Sleep(time.Second) + + tc.AssertDatabaseCount("incidents", 1) + }) + + t.Run("incident is created when check fails with different status code", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + service := service.New(tc.Store) + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: tc.Server.URL + "/test/500", + }) + + tc.Store.CreateIncident(t.Context(), uptimemonitor.Incident{ + MonitorID: 1, + StatusCode: 404, + ResponseTimeMs: 100, + Body: "not found", + Headers: "Content-Type: text/plain", + }) + + ch := service.StartCheck() + service.RunCheck(t.Context(), ch) + + time.Sleep(time.Second) + + tc.AssertDatabaseCount("incidents", 2) + }) + + t.Run("invalid domains create incidents", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + service := service.New(tc.Store) + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: "http://invalid-url", + }) + + ch := service.StartCheck() + service.RunCheck(t.Context(), ch) + + time.Sleep(time.Second) + tc.AssertDatabaseCount("incidents", 1) + }) + + t.Run("incidents get resolved", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + service := service.New(tc.Store) + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: tc.Server.URL + "/test/even", + }) + + ch := service.StartCheck() + service.RunCheck(t.Context(), ch) + + time.Sleep(time.Second) + tc.AssertDatabaseCount("incidents", 1) + + service.RunCheck(t.Context(), ch) + time.Sleep(time.Second) + tc.AssertDatabaseCount("incidents", 1) + + incident, _ := tc.Store.LastOpenIncident(t.Context(), 1) + if incident.ID != 0 { + t.Fatalf("expected not to found any incidents,found: %v", incident) + } + }) +} + +func TestIncident_ListIncidents(t *testing.T) { + t.Run("setup is required", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Get("/incidents").AssertRedirect(http.StatusSeeOther, "/setup") + }) + + t.Run("guests cannot list incidents", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.CreateTestUser("test@example.com", "password") + + tc.Get("/incidents").AssertRedirect(http.StatusSeeOther, "/login") + }) + + t.Run("users can list incidents", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: "http://example.com", + }) + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: "http://example.com", + }) + + tc.Store.CreateIncident(t.Context(), uptimemonitor.Incident{ + MonitorID: 1, + StatusCode: 404, + ResponseTimeMs: 100, + }) + + tc.Store.CreateIncident(t.Context(), uptimemonitor.Incident{ + MonitorID: 2, + StatusCode: 500, + ResponseTimeMs: 100, + }) + + tc.LogIn().Get("/incidents"). + AssertStatusCode(http.StatusOK). + AssertElementVisible(`[id="incidents-1"]`). + AssertElementVisible(`[id="incidents-2"]`) + }) +} + +func TestIncident_ListMonitorIncidents(t *testing.T) { + t.Run("setup is required", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Get("/monitors/1/incidents").AssertRedirect(http.StatusSeeOther, "/setup") + }) + + t.Run("guests cannot list incidents", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.CreateTestUser("test@example.com", "password") + + tc.Get("/monitors/1/incidents").AssertRedirect(http.StatusSeeOther, "/login") + }) + + t.Run("users can list incidents", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: "http://example.com", + }) + + tc.Store.CreateIncident(t.Context(), uptimemonitor.Incident{ + MonitorID: 1, + StatusCode: 404, + ResponseTimeMs: 100, + }) + + tc.LogIn().Get("/monitors/1/incidents"). + AssertStatusCode(http.StatusOK). + AssertElementVisible(`[id="incidents-1"]`) + }) +} + +func TestIncident_RemoveIncidents(t *testing.T) { + t.Run("setup is required", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Delete("/incidents/1").AssertStatusCode(http.StatusForbidden) + }) + + t.Run("guests cannot remove incidents", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.CreateTestUser("test@example.com", "password") + tc.Delete("/incidents/1").AssertRedirect(http.StatusSeeOther, "/login") + }) + + t.Run("remove incident form is visible", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + m, _ := tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: "http://example.com", + }) + + i, _ := tc.Store.CreateIncident(t.Context(), uptimemonitor.Incident{ + MonitorID: 1, + StatusCode: 404, + ResponseTimeMs: 100, + }) + + tc.LogIn(). + Get(fmt.Sprintf("/m/%s/i/%s", m.Uuid, i.Uuid)). + AssertStatusCode(http.StatusOK). + AssertElementVisible(`form[hx-delete="/incidents/1"]`) + }) + + t.Run("users can remove incidents", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + m, _ := tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: "http://example.com", + }) + + tc.Store.CreateIncident(t.Context(), uptimemonitor.Incident{ + MonitorID: 1, + StatusCode: 404, + ResponseTimeMs: 100, + }) + + tc.LogIn(). + Delete("/incidents/1"). + AssertStatusCode(http.StatusOK). + AssertHeader("HX-Redirect", fmt.Sprintf("/m/%s", m.Uuid)) + + tc.AssertDatabaseCount("incidents", 0) + }) +} + +func TestIncident_IncidentPage(t *testing.T) { + t.Run("setup is required", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Get("/m/uuid/i/uuid").AssertRedirect(http.StatusSeeOther, "/setup") + }) + + t.Run("guests cannot view incidents", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.CreateTestUser("test@example.com", "password") + + tc.Get("/m/uuid/i/uuid").AssertRedirect(http.StatusSeeOther, "/login") + + }) + + t.Run("incident has to exist", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + m, _ := tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: "http://example.com", + }) + + tc.LogIn().Get(fmt.Sprintf("/m/%s/i/uuid", m.Uuid)). + AssertStatusCode(http.StatusNotFound) + }) + + t.Run("monitor has to exist", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: "http://example.com", + }) + + i, _ := tc.Store.CreateIncident(t.Context(), uptimemonitor.Incident{ + MonitorID: 1, + StatusCode: 404, + ResponseTimeMs: 100, + }) + + tc.LogIn().Get(fmt.Sprintf("/m/uuid/i/%s", i.Uuid)). + AssertStatusCode(http.StatusNotFound) + }) + + t.Run("incident is visible", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + m, _ := tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: "http://example.com", + }) + + i, _ := tc.Store.CreateIncident(t.Context(), uptimemonitor.Incident{ + MonitorID: 1, + StatusCode: 404, + ResponseTimeMs: 100, + }) + + tc.LogIn(). + Get(fmt.Sprintf("/m/%s/i/%s", m.Uuid, i.Uuid)). + AssertStatusCode(http.StatusOK). + AssertSeeText("404 Not Found") + }) + +} diff --git a/test/login_test.go b/test/login_test.go new file mode 100644 index 0000000..9d230fd --- /dev/null +++ b/test/login_test.go @@ -0,0 +1,115 @@ +package test + +import ( + "net/http" + "net/url" + "testing" +) + +func TestLogin(t *testing.T) { + t.Run("setup is required before user can log in", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Get("/login").AssertRedirect(http.StatusSeeOther, "/setup") + tc.Post("/login", nil).AssertStatusCode(http.StatusForbidden) + }) + + t.Run("shows a login form", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.CreateTestUser("test@example.com", "password") + tc.Get("/login"). + AssertStatusCode(http.StatusOK). + AssertElementVisible(`form[hx-post="/login"]`) + }) + + t.Run("validates form", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.CreateTestUser("test@example.com", "password") + + tc.Post("/login", nil). + AssertStatusCode(http.StatusBadRequest). + AssertSeeText("The email is required"). + AssertSeeText("The password is required") + + tc.Post("/login", url.Values{ + "email": []string{"invalid"}, + }). + AssertStatusCode(http.StatusBadRequest). + AssertSeeText("The email format is invalid") + }) + + t.Run("user has to exist", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.CreateTestUser("test@example.com", "password") + + tc.Post("/login", url.Values{ + "email": []string{"other@example.com"}, + "password": []string{"password"}, + }). + AssertStatusCode(http.StatusBadRequest). + AssertSeeText("The credentials do not match our records") + }) + + t.Run("password has to be valid", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.CreateTestUser("test@example.com", "password") + + tc.Post("/login", url.Values{ + "email": []string{"test@example.com"}, + "password": []string{"invalid"}, + }). + AssertStatusCode(http.StatusBadRequest). + AssertSeeText("The credentials do not match our records") + }) + + t.Run("user can log in", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.CreateTestUser("test@example.com", "password") + + tc.Get("/").AssertRedirect(http.StatusSeeOther, "/login") + + ar := tc.Post("/login", url.Values{ + "email": []string{"test@example.com"}, + "password": []string{"password"}, + }). + AssertStatusCode(http.StatusOK). + AssertCookieSet("session"). + AssertHeader("HX-Redirect", "/") + + tc.AssertDatabaseCount("sessions", 1) + + cookies := ar.Response.Cookies() + var cookie *http.Cookie + + for _, c := range cookies { + if c.Name == "session" { + cookie = c + } + } + + tc.WithCookie(cookie). + Get("/new"). + AssertNoRedirect(). + AssertStatusCode(http.StatusOK) + }) + + t.Run("logged in users are redirected to a new page", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.LogIn(). + Get("/login"). + AssertRedirect(http.StatusSeeOther, "/new") + }) +} diff --git a/test/logout_test.go b/test/logout_test.go new file mode 100644 index 0000000..5d6eb14 --- /dev/null +++ b/test/logout_test.go @@ -0,0 +1,22 @@ +package test + +import ( + "net/http" + "testing" +) + +func TestLogout(t *testing.T) { + t.Run("user can log out", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.LogIn(). + Get("/logout"). + AssertStatusCode(http.StatusOK). + AssertRedirect(http.StatusSeeOther, "/login") + + tc.AssertDatabaseCount("sessions", 0) + + tc.Get("/").AssertRedirect(http.StatusSeeOther, "/login") + }) +} diff --git a/test/middleware_test.go b/test/middleware_test.go new file mode 100644 index 0000000..7336e51 --- /dev/null +++ b/test/middleware_test.go @@ -0,0 +1,27 @@ +package test + +import ( + "net/http" + "testing" +) + +func TestMiddleware(t *testing.T) { + t.Run("panic recoverer", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Get("/test/panic").AssertStatusCode(http.StatusInternalServerError) + }) + + t.Run("cache test", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.LogIn(). + Get("/"). + AssertStatusCode(http.StatusOK). + AssertHeader("Cache-Control", "no-cache, no-store, must-revalidate"). + AssertHeader("Pragma", "no-cache"). + AssertHeader("Expires", "0") + }) +} diff --git a/test/monitor_test.go b/test/monitor_test.go new file mode 100644 index 0000000..20082d1 --- /dev/null +++ b/test/monitor_test.go @@ -0,0 +1,285 @@ +package test + +import ( + "fmt" + "net/http" + "net/url" + "testing" + "time" + "uptimemonitor" + "uptimemonitor/service" +) + +func TestMonitor_ListMonitors(t *testing.T) { + t.Run("setup is required", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Get("/monitors"). + AssertRedirect(http.StatusSeeOther, "/setup") + }) + + t.Run("logged user is required", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.CreateTestUser("test@example.com", "password") + + tc.Get("/monitors"). + AssertRedirect(http.StatusSeeOther, "/login") + }) + + t.Run("monitors table is visible on home page", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{Url: "https://example.com"}) + + tc.LogIn(). + Get("/"). + AssertStatusCode(http.StatusOK). + AssertElementVisible(`div[hx-get="/monitors"]`) + }) + + t.Run("empty monitors list", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.LogIn(). + Get("/monitors"). + AssertNoRedirect(). + AssertStatusCode(http.StatusOK) + }) + + t.Run("list monitors", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{Url: "https://example.com"}) + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{Url: "https://example.com/123"}) + + tc.LogIn(). + Get("/monitors"). + AssertSeeText("example.com"). + AssertSeeText("example.com/123") + }) +} + +func TestMonitor_CreateMonitor(t *testing.T) { + t.Run("setup is required", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Post("/monitors", url.Values{}). + AssertStatusCode(http.StatusForbidden) + }) + + t.Run("user has to be logged in", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.CreateTestUser("test@example.com", "password") + + tc.Post("/monitors", url.Values{}). + AssertRedirect(http.StatusSeeOther, "/login") + }) + + t.Run("monitor form is visible", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.LogIn(). + Get("/new"). + AssertNoRedirect(). + AssertStatusCode(http.StatusOK). + AssertElementVisible(`form[hx-post="/monitors"]`). + AssertElementVisible(`select[name="http_method"]`). + AssertElementVisible(`input[name="url"]`) + }) + + t.Run("url is required", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.LogIn(). + Post("/monitors", url.Values{}). + AssertNoRedirect(). + AssertStatusCode(http.StatusBadRequest). + AssertSeeText("The url is required") + }) + + t.Run("the url has to be a valid url", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.LogIn(). + Post("/monitors", url.Values{ + "url": []string{"invalid"}, + }). + AssertStatusCode(http.StatusBadRequest). + AssertSeeText("The url is invalid") + }) + + t.Run("the url can be created", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + res := tc.LogIn(). + Post("/monitors", url.Values{ + "http_method": []string{"GET"}, + "has_custom_headers": []string{"on"}, + "http_headers": []string{`{"test":"abc"}`}, + "has_custom_body": []string{"on"}, + "http_body": []string{`{"test":"123"}`}, + "url": []string{"https://example.com"}, + }). + AssertStatusCode(http.StatusOK) + + m, _ := tc.Store.GetMonitorByID(t.Context(), 1) + + res.AssertHeader("HX-Redirect", fmt.Sprintf("/m/%s", m.Uuid)) + tc.AssertDatabaseCount("monitors", 1) + tc.Get("/monitors").AssertSeeText("example.com") + + tc.AssertEqual(m.Url, "https://example.com") + tc.AssertEqual(m.HttpMethod, "GET") + tc.AssertEqual(m.HttpHeaders, `{"test":"abc"}`) + tc.AssertEqual(m.HttpBody, `{"test":"123"}`) + }) + + t.Run("custom headers are validated when present", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.LogIn(). + Post("/monitors", url.Values{ + "http_method": []string{"GET"}, + "url": []string{"https://example.com"}, + }). + AssertStatusCode(http.StatusOK) + + tc.Post("/monitors", url.Values{ + "http_method": []string{"GET"}, + "url": []string{"https://example.com"}, + "has_custom_headers": []string{"on"}, + "http_headers": []string{`INVALID JSON`}, + }). + AssertStatusCode(http.StatusBadRequest). + AssertSeeText("The http headers should be a valid JSON") + }) +} + +func TestMonitor_MonitorPage(t *testing.T) { + t.Run("setup is required", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Get("/m/123").AssertRedirect(http.StatusSeeOther, "/setup") + }) + + t.Run("guests cannot view monitors", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.CreateTestUser("test@example.com", "password") + + tc.Get("/m/123").AssertRedirect(http.StatusSeeOther, "/login") + }) + + t.Run("monitor has to exist", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.LogIn().Get("/m/123").AssertStatusCode(http.StatusNotFound) + }) + + t.Run("monitor can be viewed", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + m, _ := tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: "http://example.com", + }) + + tc.LogIn().Get(fmt.Sprintf("/m/%s", m.Uuid)).AssertStatusCode(http.StatusOK) + }) +} + +func TestMonitor_RemoveMonitor(t *testing.T) { + t.Run("guests cannot remove monitors", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Get("/m/uuid/delete").AssertRedirect(http.StatusSeeOther, "/setup") + tc.Delete("/monitors/1").AssertStatusCode(http.StatusForbidden) + }) + + t.Run("monitor has to exist", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.LogIn() + + tc.Get("/m/uuid/delete").AssertStatusCode(http.StatusNotFound) + tc.Delete("/monitors/1").AssertStatusCode(http.StatusNotFound) + }) + + t.Run("delete monitor form is present", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + m, _ := tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + HttpMethod: http.MethodGet, + Url: "http://example.com", + }) + + tc.LogIn(). + Get(fmt.Sprintf("/m/%s/delete", m.Uuid)). + AssertStatusCode(http.StatusOK). + AssertElementVisible(fmt.Sprintf(`form[hx-delete="/monitors/%d"]`, m.ID)) + }) + + t.Run("monitor can be removed", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + HttpMethod: http.MethodGet, + Url: "http://example.com", + }) + + tc.LogIn(). + Delete("/monitors/1"). + AssertStatusCode(http.StatusOK). + AssertHeader("HX-Redirect", "/") + + tc.AssertDatabaseCount("monitors", 0) + }) + + t.Run("whe monitor is removed, checks and incidents are also removed", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + HttpMethod: http.MethodGet, + Url: tc.Server.URL + "/test/500", + }) + + service := service.New(tc.Store) + ch := service.StartCheck() + service.RunCheck(t.Context(), ch) + + time.Sleep(time.Second) + + tc.AssertDatabaseCount("checks", 1) + tc.AssertDatabaseCount("incidents", 1) + + tc.LogIn(). + Delete("/monitors/1"). + AssertStatusCode(http.StatusOK). + AssertHeader("HX-Redirect", "/") + + tc.AssertDatabaseCount("checks", 0) + tc.AssertDatabaseCount("incidents", 0) + }) +} diff --git a/test/setup_test.go b/test/setup_test.go new file mode 100644 index 0000000..1c35263 --- /dev/null +++ b/test/setup_test.go @@ -0,0 +1,82 @@ +package test + +import ( + "net/http" + "net/url" + "testing" + "uptimemonitor" +) + +func TestSetup(t *testing.T) { + t.Run("redirects to setup when no users are found", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Get("/"). + AssertRedirect(http.StatusSeeOther, "/setup") + }) + + t.Run("redirects to login page when users are found", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Store.CreateUser(t.Context(), uptimemonitor.User{ + Name: "Test User", + Email: "test@example.com", + }) + + tc.Get("/setup"). + AssertRedirect(http.StatusSeeOther, "/login") + }) + + t.Run("shows a setup form when no users are found", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Get("/setup"). + AssertStatusCode(http.StatusOK). + AssertElementVisible(`form[hx-post="/setup"]`). + AssertElementVisible(`input[name="name"]`). + AssertElementVisible(`input[name="email"]`). + AssertElementVisible(`input[name="password"]`). + AssertElementVisible(`button[type="submit"]`) + }) + + t.Run("validates a form", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Post("/setup", url.Values{}). + AssertStatusCode(http.StatusBadRequest). + AssertElementVisible(`form[hx-swap="outerHTML"]`). + AssertSeeText("The name is required"). + AssertSeeText("The email is required"). + AssertSeeText("The password is required") + + res := tc.Post("/setup", url.Values{ + "email": []string{"invalid"}, + }) + + res.AssertStatusCode(http.StatusBadRequest). + AssertElementVisible(`form[hx-swap="outerHTML"]`). + AssertSeeText("The email format is invalid") + }) + + t.Run("setup", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.AssertDatabaseCount("users", 0) + + res := tc.Post("/setup", url.Values{ + "name": []string{"Test"}, + "email": []string{"test@example.com"}, + "password": []string{"password"}, + }) + + res.AssertHeader("HX-Redirect", "/") + tc.AssertDatabaseCount("users", 1) + + tc.Get("/setup").AssertRedirect(http.StatusSeeOther, "/new") + }) +} diff --git a/test/sponsor_test.go b/test/sponsor_test.go new file mode 100644 index 0000000..712fc60 --- /dev/null +++ b/test/sponsor_test.go @@ -0,0 +1,26 @@ +package test + +import ( + "net/http" + "testing" +) + +func TestSponsor(t *testing.T) { + t.Run("sponsors are lazy loaded", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Get("/sponsors"). + AssertStatusCode(http.StatusOK). + AssertElementVisible(`div[hx-get="/sponsors"]`) + }) + + t.Run("sponsors are loaded via api", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.WithHeader("HX-Request", "true"). + Get("/sponsors"). + AssertSeeText("AIR Labs") + }) +} diff --git a/test/test_case.go b/test/test_case.go new file mode 100644 index 0000000..19ca5f5 --- /dev/null +++ b/test/test_case.go @@ -0,0 +1,349 @@ +package test + +import ( + "fmt" + "io" + "net/http" + "net/http/httptest" + "net/url" + "reflect" + "strings" + "testing" + "time" + "uptimemonitor" + "uptimemonitor/handler" + "uptimemonitor/pkg/testutil" + "uptimemonitor/router" + "uptimemonitor/service" + "uptimemonitor/store" + + "golang.org/x/crypto/bcrypt" +) + +var TestWebhookCalledCount int64 +var TestWebhookBody string +var ExpectedWebhookBody string +var ExpectedWebhookHeaderKey string +var ExpectedWebhookHeaderValue string + +type TestCase struct { + T *testing.T + Server *httptest.Server + Client *http.Client + Store *store.Store + User *uptimemonitor.User + Headers map[string]string + Cookies []*http.Cookie +} + +func NewTestCase(t *testing.T) *TestCase { + store := store.New(":memory:") + service := service.New(store) + handler := handler.New(store, service, false) + router := router.New(handler, registerRoutes) + server := httptest.NewServer(router) + + TestWebhookBody = "" + TestWebhookCalledCount = 0 + ExpectedWebhookBody = "" + ExpectedWebhookHeaderKey = "" + ExpectedWebhookHeaderValue = "" + + return &TestCase{ + T: t, + Server: server, + Client: server.Client(), + Store: store, + Headers: map[string]string{}, + Cookies: []*http.Cookie{}, + } +} + +func registerRoutes(router *http.ServeMux) { + router.HandleFunc("GET /test/200", func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + }) + + router.HandleFunc("GET /test/404", func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusNotFound) + }) + + router.HandleFunc("GET /test/500", func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusInternalServerError) + }) + + router.HandleFunc("GET /test/timeout", func(w http.ResponseWriter, r *http.Request) { + time.Sleep(30 * time.Second) + w.WriteHeader(http.StatusOK) + }) + + router.HandleFunc("GET /test/panic", func(w http.ResponseWriter, r *http.Request) { + panic("test") + }) + + i := 0 + router.HandleFunc("GET /test/even", func(w http.ResponseWriter, r *http.Request) { + defer func() { + i++ + }() + + if i%2 == 0 { + w.WriteHeader(http.StatusInternalServerError) + return + } + w.WriteHeader(http.StatusOK) + }) + + router.HandleFunc("POST /test/post", func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + }) + router.HandleFunc("PATCH /test/patch", func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + }) + router.HandleFunc("PUT /test/put", func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + }) + router.HandleFunc("DELETE /test/delete", func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + }) + + router.HandleFunc("POST /test/body", func(w http.ResponseWriter, r *http.Request) { + body, err := io.ReadAll(r.Body) + if err != nil { + http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) + return + } + defer r.Body.Close() + + if string(body) != `{"test":123}` { + http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) + return + } + + w.WriteHeader(http.StatusOK) + }) + + router.HandleFunc("POST /test/headers", func(w http.ResponseWriter, r *http.Request) { + if r.Header.Get("test") != "abc" { + http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) + return + } + + w.WriteHeader(http.StatusOK) + }) + + router.HandleFunc("POST /test/webhook", func(w http.ResponseWriter, r *http.Request) { + body, err := io.ReadAll(r.Body) + if err != nil { + http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) + return + } + defer r.Body.Close() + + if ExpectedWebhookBody != "" && string(body) != ExpectedWebhookBody { + http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) + return + } + + if ExpectedWebhookHeaderKey != "" && r.Header.Get(ExpectedWebhookHeaderKey) != ExpectedWebhookHeaderValue { + http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) + return + } + + TestWebhookCalledCount++ + TestWebhookBody = string(body) + + w.WriteHeader(http.StatusOK) + }) +} + +func (tc *TestCase) Close() { + tc.Server.Close() +} + +func (tc *TestCase) WithHeader(key, value string) *TestCase { + tc.Headers[key] = value + + return tc +} + +func (tc *TestCase) WithCookie(c *http.Cookie) *TestCase { + tc.Cookies = append(tc.Cookies, c) + + return tc +} + +func (tc *TestCase) Get(url string) *testutil.AssertableResponse { + req, err := http.NewRequest(http.MethodGet, tc.Server.URL+url, nil) + if err != nil { + tc.T.Fatalf("unexpected error: %v", err) + } + + if len(tc.Cookies) > 0 { + for _, c := range tc.Cookies { + req.AddCookie(c) + } + } + + if len(tc.Headers) > 0 { + for k, v := range tc.Headers { + req.Header.Set(k, v) + } + } + + res, err := tc.Client.Do(req) + if err != nil { + tc.T.Fatalf("failed to get %s: %v", url, err) + } + + return testutil.NewAssertableResponse(tc.T, res) +} + +func (tc *TestCase) Post(url string, data url.Values) *testutil.AssertableResponse { + req, err := http.NewRequest(http.MethodPost, tc.Server.URL+url, strings.NewReader(data.Encode())) + if err != nil { + tc.T.Fatalf("unexpected error: %v", err) + } + req.Header.Set("Content-Type", "application/x-www-form-urlencoded") + + if len(tc.Cookies) > 0 { + for _, c := range tc.Cookies { + req.AddCookie(c) + } + } + + res, err := tc.Client.Do(req) + if err != nil { + tc.T.Fatalf("failed to post %s: %v", url, err) + } + + for _, c := range res.Cookies() { + if c.Name == "session" { + tc.Cookies = append(tc.Cookies, c) + } + } + + return testutil.NewAssertableResponse(tc.T, res) +} + +func (tc *TestCase) Patch(url string, data url.Values) *testutil.AssertableResponse { + req, err := http.NewRequest(http.MethodPatch, tc.Server.URL+url, strings.NewReader(data.Encode())) + if err != nil { + tc.T.Fatalf("unexpected error: %v", err) + } + req.Header.Set("Content-Type", "application/x-www-form-urlencoded") + + if len(tc.Cookies) > 0 { + for _, c := range tc.Cookies { + req.AddCookie(c) + } + } + + res, err := tc.Client.Do(req) + if err != nil { + tc.T.Fatalf("failed to post %s: %v", url, err) + } + + return testutil.NewAssertableResponse(tc.T, res) +} + +func (tc *TestCase) Delete(url string) *testutil.AssertableResponse { + req, err := http.NewRequest(http.MethodDelete, tc.Server.URL+url, nil) + if err != nil { + tc.T.Fatalf("unexpected error: %v", err) + } + + if len(tc.Cookies) > 0 { + for _, c := range tc.Cookies { + req.AddCookie(c) + } + } + + res, err := tc.Client.Do(req) + if err != nil { + tc.T.Fatalf("failed to delete %s: %v", url, err) + } + + return testutil.NewAssertableResponse(tc.T, res) +} + +func (tc *TestCase) AssertDatabaseCount(table string, expected int) *TestCase { + tc.T.Helper() + + stmt := fmt.Sprintf(`SELECT COUNT(*) FROM %s`, table) + var count int + + err := tc.Store.DB().QueryRow(stmt).Scan(&count) + if err != nil { + tc.T.Fatalf("failed to count rows from table '%s', error: %v", table, err) + } + + if count != expected { + tc.T.Fatalf("expected to find %d number of rows in a table '%s, but found %d", expected, table, count) + } + + return tc +} + +func (tc *TestCase) CreateTestUser(email, password string) *TestCase { + hash, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost) + if err != nil { + tc.T.Fatalf("unexpected bcrypt error: %v", err) + } + + user, err := tc.Store.CreateUser(tc.T.Context(), uptimemonitor.User{ + Name: "Test User", + Email: email, + PasswordHash: string(hash), + }) + if err != nil { + tc.T.Fatalf("unable to create test user: %v", err) + } + + tc.User = &user + + return tc +} + +func (tc *TestCase) LogIn() *TestCase { + tc.CreateTestUser("test@example.com", "password") + + session, err := tc.Store.CreateSession(tc.T.Context(), uptimemonitor.Session{ + User: *tc.User, + UserID: tc.User.ID, + ExpiresAt: time.Now().Add(time.Hour), + }) + if err != nil { + tc.T.Fatalf("unexpected error: %v", err) + } + + c := &http.Cookie{ + Name: "session", + Value: session.Uuid, + HttpOnly: true, + SameSite: http.SameSiteLaxMode, + Secure: false, + Expires: session.ExpiresAt, + } + + return tc.WithCookie(c) +} + +func (tc *TestCase) AssertEqual(a, b any) *TestCase { + tc.T.Helper() + + if !reflect.DeepEqual(a, b) { + tc.T.Fatalf(`expected "%v" to be equal to "%v"`, a, b) + } + return tc +} + +func (tc *TestCase) AssertNoError(err error) *TestCase { + tc.T.Helper() + + if err != nil { + tc.T.Fatalf("unexpected error: %v", err) + } + + return tc +} diff --git a/test/uptime_test.go b/test/uptime_test.go new file mode 100644 index 0000000..1f52f04 --- /dev/null +++ b/test/uptime_test.go @@ -0,0 +1,110 @@ +package test + +import ( + "testing" + "uptimemonitor" +) + +func TestUptime(t *testing.T) { + t.Run("uptime is empty when there are no checks", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + m, _ := tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: "http://example.com", + }) + + tc.AssertEqual(m.Uptime, float32(0)) + tc.AssertEqual(m.AvgResponseTimeMs, int64(0)) + }) + + t.Run("uptime is computed when check is created", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: "http://example.com", + }) + + tc.Store.CreateCheck(t.Context(), uptimemonitor.Check{ + MonitorID: 1, + StatusCode: 200, + ResponseTimeMs: 100, + }) + + m, _ := tc.Store.GetMonitorByID(t.Context(), 1) + + tc.AssertEqual(m.N, int64(1)) + tc.AssertEqual(m.Uptime, float32(100)) + tc.AssertEqual(m.AvgResponseTimeMs, int64(100)) + }) + + t.Run("it works with multiple checks", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: "http://example.com", + }) + + tc.Store.CreateCheck(t.Context(), uptimemonitor.Check{ + MonitorID: 1, + StatusCode: 200, + ResponseTimeMs: 100, + }) + + tc.Store.CreateCheck(t.Context(), uptimemonitor.Check{ + MonitorID: 1, + StatusCode: 200, + ResponseTimeMs: 200, + }) + + m, _ := tc.Store.GetMonitorByID(t.Context(), 1) + + tc.AssertEqual(m.N, int64(2)) + tc.AssertEqual(m.Uptime, float32(100)) + tc.AssertEqual(m.AvgResponseTimeMs, int64(150)) + }) + + t.Run("uptime is updated", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: "http://example.com", + }) + + tc.Store.CreateCheck(t.Context(), uptimemonitor.Check{ + MonitorID: 1, + StatusCode: 404, + ResponseTimeMs: 100, + }) + + m, _ := tc.Store.GetMonitorByID(t.Context(), 1) + + tc.AssertEqual(m.N, int64(1)) + tc.AssertEqual(m.Uptime, float32(0)) + + tc.Store.CreateCheck(t.Context(), uptimemonitor.Check{ + MonitorID: 1, + StatusCode: 200, + ResponseTimeMs: 100, + }) + + m, _ = tc.Store.GetMonitorByID(t.Context(), 1) + + tc.AssertEqual(m.N, int64(2)) + tc.AssertEqual(m.Uptime, float32(50)) + + tc.Store.CreateCheck(t.Context(), uptimemonitor.Check{ + MonitorID: 1, + StatusCode: 500, + ResponseTimeMs: 100, + }) + + m, _ = tc.Store.GetMonitorByID(t.Context(), 1) + + tc.AssertEqual(m.N, int64(3)) + tc.AssertEqual(m.Uptime, float32(33.3)) + }) +} diff --git a/test/webhook_test.go b/test/webhook_test.go new file mode 100644 index 0000000..7d2ecfc --- /dev/null +++ b/test/webhook_test.go @@ -0,0 +1,162 @@ +package test + +import ( + "fmt" + "net/http" + "net/url" + "testing" + "time" + "uptimemonitor" + "uptimemonitor/form" + "uptimemonitor/service" +) + +func TestWebhook_SaveWebhook(t *testing.T) { + t.Run("webhook is validated", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + f := form.MonitorForm{ + Url: "https://valid.url", + HttpMethod: http.MethodGet, + + HasWebhook: true, + WebhookUrl: "invalid", + WebhookHeaders: "invalid json", + WebhookBody: "data", + } + + tc.AssertEqual(false, f.Validate()) + }) + + t.Run("webhook info can be saved when creating a monitor", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.LogIn(). + Post("/monitors", url.Values{ + "http_method": []string{"GET"}, + "url": []string{"https://example.com"}, + "has_webhook": []string{"on"}, + "webhook_url": []string{tc.Server.URL + "/test/webhook"}, + "webhook_method": []string{"POST"}, + "webhook_headers": []string{`{"test":"abc"}`}, + "webhook_body": []string{`{"test":"123"}`}, + }).AssertStatusCode(http.StatusOK) + + m, _ := tc.Store.GetMonitorByID(t.Context(), 1) + + tc.AssertEqual(m.WebhookUrl, tc.Server.URL+"/test/webhook") + tc.AssertEqual(m.WebhookMethod, "POST") + tc.AssertEqual(m.WebhookHeaders, `{"test":"abc"}`) + tc.AssertEqual(m.WebhookBody, `{"test":"123"}`) + }) + + t.Run("webhook data can be updated", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + _, err := tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + HttpMethod: http.MethodGet, + Url: "https://google.com", + }) + + tc.AssertNoError(err) + + tc.LogIn(). + Patch("/monitors/1", url.Values{ + "http_method": []string{"GET"}, + "url": []string{"https://example.com"}, + "has_webhook": []string{"on"}, + "webhook_url": []string{tc.Server.URL + "/test/webhook"}, + "webhook_method": []string{"POST"}, + "webhook_headers": []string{`{"test":"abc"}`}, + "webhook_body": []string{`{"test":"123"}`}, + }).AssertStatusCode(http.StatusOK) + + m, err := tc.Store.GetMonitorByID(t.Context(), 1) + tc.AssertNoError(err) + + tc.AssertEqual(m.WebhookUrl, tc.Server.URL+"/test/webhook") + tc.AssertEqual(m.WebhookMethod, "POST") + tc.AssertEqual(m.WebhookHeaders, `{"test":"abc"}`) + tc.AssertEqual(m.WebhookBody, `{"test":"123"}`) + }) + + t.Run("webhook fields are present in the forms", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + tc.LogIn().Get("/new"). + AssertElementVisible(`input[name="has_webhook"]`). + AssertElementVisible(`select[name="webhook_method"]`). + AssertElementVisible(`textarea[name="webhook_body"]`). + AssertElementVisible(`textarea[name="webhook_headers"]`) + + m, _ := tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + HttpMethod: http.MethodGet, + Url: "https://google.com", + }) + + tc.Get(fmt.Sprintf("/m/%s/edit", m.Uuid)). + AssertElementVisible(`input[name="has_webhook"]`). + AssertElementVisible(`select[name="webhook_method"]`). + AssertElementVisible(`textarea[name="webhook_body"]`). + AssertElementVisible(`textarea[name="webhook_headers"]`) + }) + + t.Run("webhook is called on incident", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + ExpectedWebhookBody = `{"test":123}` + ExpectedWebhookHeaderKey = "test" + ExpectedWebhookHeaderValue = "abc" + + service := service.New(tc.Store) + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: tc.Server.URL + "/test/500", + WebhookMethod: http.MethodPost, + WebhookUrl: tc.Server.URL + "/test/webhook", + WebhookHeaders: `{"test":"abc"}`, + WebhookBody: `{"test":123}`, + }) + + ch := service.StartCheck() + service.RunCheck(t.Context(), ch) + + time.Sleep(time.Second * 3) + + tc.AssertDatabaseCount("incidents", 1) + tc.AssertDatabaseCount("checks", 1) + + tc.AssertEqual(int64(TestWebhookCalledCount), int64(1)) + }) + + t.Run("webhook can have parsed body", func(t *testing.T) { + tc := NewTestCase(t) + defer tc.Close() + + service := service.New(tc.Store) + url := tc.Server.URL + "/test/500" + + tc.Store.CreateMonitor(t.Context(), uptimemonitor.Monitor{ + Url: url, + WebhookMethod: http.MethodPost, + WebhookUrl: tc.Server.URL + "/test/webhook", + WebhookBody: `{{.Url}},{{ .StatusCode}}`, + }) + + ch := service.StartCheck() + service.RunCheck(t.Context(), ch) + + time.Sleep(time.Second * 3) + + tc.AssertDatabaseCount("incidents", 1) + tc.AssertDatabaseCount("checks", 1) + + tc.AssertEqual(int64(TestWebhookCalledCount), int64(1)) + tc.AssertEqual(TestWebhookBody, fmt.Sprintf("%s,%d", url, 500)) + }) +} diff --git a/user.go b/user.go new file mode 100644 index 0000000..49073b3 --- /dev/null +++ b/user.go @@ -0,0 +1,13 @@ +package uptimemonitor + +import ( + "time" +) + +type User struct { + ID int64 + Name string + Email string + PasswordHash string + CreatedAt time.Time +}