From a719135c1e5ef5fecf97ef775aea3037e132380d Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Wed, 8 Jul 2026 10:47:26 -0500 Subject: [PATCH] =?UTF-8?q?chore:=20update=20dependencies.=20phoenix=201.8?= =?UTF-8?q?.8=E2=86=921.8.9,=20swoosh=201.26.2=E2=86=921.26.3,=20oban=5Fpr?= =?UTF-8?q?o=201.7.6=E2=86=921.7.7,=20oban=5Fweb=202.12.5=E2=86=922.12.6,?= =?UTF-8?q?=20hackney=204.4.5=E2=86=924.5.2,=20plus=20transitive=20deps?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mix.lock | 24 ++-- vendor/oban_pro/.hex | Bin 263 -> 0 bytes vendor/oban_pro/hex_metadata.config | 80 ------------- vendor/oban_pro/lib/oban/pro/application.ex | 6 +- vendor/oban_pro/lib/oban/pro/engines/smart.ex | 75 ++++++------ vendor/oban_pro/lib/oban/pro/partition.ex | 54 +++------ .../lib/oban/pro/plugins/dynamic_lifeline.ex | 4 +- .../oban_pro/lib/oban/pro/stages/deadline.ex | 4 +- vendor/oban_pro/lib/oban/pro/stages/hooks.ex | 13 ++- vendor/oban_pro/lib/oban/pro/testing.ex | 6 +- vendor/oban_pro/lib/oban/pro/utils.ex | 31 +++++ vendor/oban_pro/lib/oban/pro/worker.ex | 24 ++-- vendor/oban_pro/lib/oban/pro/workflow.ex | 85 +++++++++----- vendor/oban_pro/mix.exs | 2 +- vendor/oban_web/.hex | Bin 265 -> 0 bytes vendor/oban_web/CHANGELOG.md | 85 ++++++++++++++ vendor/oban_web/hex_metadata.config | 109 ------------------ vendor/oban_web/lib/oban/web.ex | 4 +- .../oban_web/lib/oban/web/components/icons.ex | 2 +- .../oban/web/live/crons/detail_component.ex | 5 +- .../lib/oban/web/live/jobs/chart_component.ex | 3 +- .../oban/web/live/jobs/detail_component.ex | 5 +- .../lib/oban/web/live/jobs/new_component.ex | 11 +- .../oban/web/live/jobs/timeline_component.ex | 4 +- .../oban_web/lib/oban/web/pages/jobs_page.ex | 98 ++++++++-------- .../lib/oban/web/pages/queues_page.ex | 82 +++++++------ .../lib/oban/web/queries/cron_query.ex | 2 +- .../lib/oban/web/queries/job_query.ex | 9 +- vendor/oban_web/mix.exs | 2 +- vendor/oban_web/priv/static/app.css | 2 +- vendor/oban_web/priv/static/app.js | 2 +- 31 files changed, 402 insertions(+), 431 deletions(-) delete mode 100644 vendor/oban_pro/.hex delete mode 100644 vendor/oban_pro/hex_metadata.config delete mode 100644 vendor/oban_web/.hex delete mode 100644 vendor/oban_web/hex_metadata.config diff --git a/mix.lock b/mix.lock index 0593c2ea..aefc232c 100644 --- a/mix.lock +++ b/mix.lock @@ -11,11 +11,11 @@ "cloak": {:hex, :cloak, "1.1.4", "aba387b22ea4d80d92d38ab1890cc528b06e0e7ef2a4581d71c3fdad59e997e7", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "92b20527b9aba3d939fab0dd32ce592ff86361547cfdc87d74edce6f980eb3d7"}, "cloak_ecto": {:hex, :cloak_ecto, "1.3.0", "0de127c857d7452ba3c3367f53fb814b0410ff9c680a8d20fbe8b9a3c57a1118", [:mix], [{:cloak, "~> 1.1.1", [hex: :cloak, repo: "hexpm", optional: false]}, {:ecto, "~> 3.0", [hex: :ecto, repo: "hexpm", optional: false]}], "hexpm", "314beb0c123b8a800418ca1d51065b27ba3b15f085977e65c0f7b2adab2de1cc"}, "comeonin": {:hex, :comeonin, "5.5.1", "5113e5f3800799787de08a6e0db307133850e635d34e9fab23c70b6501669510", [:mix], [], "hexpm", "65aac8f19938145377cee73973f192c5645873dcf550a8a6b18187d17c13ccdb"}, - "cowboy": {:hex, :cowboy, "2.16.1", "fa04080b602ff25c40a7700f2dc0152dbc1ba26b42093ae0fa9bb7a337d5a242", [:make, :rebar3], [{:cowlib, ">= 2.16.0 and < 3.0.0", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, ">= 1.8.0 and < 3.0.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "b8ea4dd317a043e3177ec840cfa3bcb47cfb41035d3abb24d954dc7d51def399"}, + "cowboy": {:hex, :cowboy, "2.17.0", "059d6ae769214cedf55d115ce5bf38649ff6b32ec693067cf6b185d0ab1b53c3", [:make, :rebar3], [{:cowlib, ">= 2.18.0 and < 3.0.0", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, ">= 1.8.0 and < 3.0.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "84f0e4c9d5820342cd506472052b79336d0d9d3624e46303f6d0af9dc94e8d5f"}, "cowboy_telemetry": {:hex, :cowboy_telemetry, "0.4.0", "f239f68b588efa7707abce16a84d0d2acf3a0f50571f8bb7f56a15865aae820c", [:rebar3], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7d98bac1ee4565d31b62d59f8823dfd8356a169e7fcbb83831b8a5397404c9de"}, - "cowlib": {:hex, :cowlib, "2.17.1", "3e6053016d1ab245730f0af688755476dcedb1c25ed8fb5751f59a2bfdc0c9af", [:make, :rebar3], [], "hexpm", "ff08bd17e6dd931445b18af77315b9b5fe052407110964ad2588c686b57b5e3f"}, + "cowlib": {:hex, :cowlib, "2.18.0", "4a3ef8cb012c21c7cbb7c925f75405e26d7fcd393fd78c46187539dbc9a48310", [:make, :rebar3], [], "hexpm", "c4f89d33a61162d4cfdcb5a1af7e562d80a700b2573cc71020ce6521b152dc1a"}, "credo": {:hex, :credo, "1.7.19", "cc52129665fc7c15143d47838fda0f9cd6dac9ceced7bf4da6f85fcbfe64b12a", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "2d8bc95d5a7bb99dd2613621d4f08c6a3575c3fd4b62e6a2b48a100352a557b8"}, - "db_connection": {:hex, :db_connection, "2.10.1", "d5465f6bcc125c1b8981c1dbf23c193ca16f446ec0b25832dc174f74f18be510", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "18ed94c6e627b4bf452dbd4df61b69a35a1e768525140bc1917b7a685026a6a3"}, + "db_connection": {:hex, :db_connection, "2.10.2", "ae391e803a5adff104da913c2fc1c0c14a37f8b10001dcef568796e1fb7bf95c", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "510b14482330f1af6490a2fa0efd8d4f1435d1529b165647df22ac0f2df0fa93"}, "decimal": {:hex, :decimal, "3.1.1", "430d87b04011ce6cbd4fd205be758311a81f87d552d40904abd00f015935b1d0", [:mix], [], "hexpm", "c5f25f2ced74a0587d03e6023f595db8e924c9d3922c8c8ffd9edfc4498cf1f6"}, "dialyxir": {:hex, :dialyxir, "1.4.7", "dda948fcee52962e4b6c5b4b16b2d8fa7d50d8645bbae8b8685c3f9ecb7f5f4d", [:mix], [{:erlex, ">= 0.2.8", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "b34527202e6eb8cee198efec110996c25c5898f43a4094df157f8d28f27d9efe"}, "dns_cluster": {:hex, :dns_cluster, "0.2.0", "aa8eb46e3bd0326bd67b84790c561733b25c5ba2fe3c7e36f28e88f384ebcb33", [:mix], [], "hexpm", "ba6f1893411c69c01b9e8e8f772062535a4cf70f3f35bcc964a324078d8c8240"}, @@ -36,10 +36,10 @@ "geo": {:hex, :geo, "4.1.0", "64ba89a64cc400b5b16dd2f5bd644cb141776eb8c2ac5a983332c8d944936c12", [:mix], [{:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "19edb2b3398ca9f701b573b1fb11bc90951ebd64f18b06bd1bf35abe509a2934"}, "geo_postgis": {:hex, :geo_postgis, "3.7.1", "614f25b42334a615bd54bb09c22030b1aac7bac8f829bd823ab1faccf093a324", [:mix], [{:ecto, "~> 3.0", [hex: :ecto, repo: "hexpm", optional: true]}, {:geo, "~> 3.6 or ~> 4.0", [hex: :geo, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: true]}, {:poison, "~> 2.2 or ~> 3.0 or ~> 4.0 or ~> 5.0 or ~> 6.0", [hex: :poison, repo: "hexpm", optional: true]}, {:postgrex, ">= 0.0.0", [hex: :postgrex, repo: "hexpm", optional: false]}], "hexpm", "c20d823c600d35b7fe9ddd5be03052bb7136c57d6f1775dbd46871545e405280"}, "gettext": {:hex, :gettext, "1.0.2", "5457e1fd3f4abe47b0e13ff85086aabae760497a3497909b8473e0acee57673b", [:mix], [{:expo, "~> 0.5.1 or ~> 1.0", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "eab805501886802071ad290714515c8c4a17196ea76e5afc9d06ca85fb1bfeb3"}, - "h2": {:hex, :h2, "0.10.2", "ea0146b9c8b5f3b5de16045765f5684db38ef1e66f1c60444890948cb1003e47", [:rebar3], [], "hexpm", "497a899f338b42e6a0b292524e635b0ce6f9379fa39395c8e38d06351cd9b9cf"}, - "hackney": {:hex, :hackney, "4.4.5", "a908f620525bb886a16613532324762e5166287f8c00c9888a762edee11a30c0", [:rebar3], [{:certifi, "~> 2.17.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:h2, "~> 0.10.1", [hex: :h2, repo: "hexpm", optional: false]}, {:idna, "~> 7.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:mimerl, "~> 1.4", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.4.2", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:quic, "~> 1.6.5", [hex: :quic, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~> 1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:webtransport, "~> 0.4.1", [hex: :webtransport, repo: "hexpm", optional: false]}], "hexpm", "6d72bef4e135e94c522c271e11fbb6933efb0006ef235a3933807d0be73b71ec"}, + "h2": {:hex, :h2, "0.10.4", "31ef580056e19977b6542eea2718aa19a45841205cd82cd48535dd7683caea4c", [:rebar3], [], "hexpm", "8350920ac7c259fb759a2830d3ce0dd248c48422a031d1760bebdd2020fa30a9"}, + "hackney": {:hex, :hackney, "4.5.2", "d44b00b6e91ef8c480ec51ad42e9d8777a3a391ea78865cb16c5c0645399c6f5", [:rebar3], [{:certifi, "~> 2.17.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:h2, "~> 0.10.4", [hex: :h2, repo: "hexpm", optional: false]}, {:idna, "~> 7.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:mimerl, "~> 1.4", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.4.2", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:quic, "~> 1.7.0", [hex: :quic, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~> 1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:webtransport, "~> 0.4.3", [hex: :webtransport, repo: "hexpm", optional: false]}], "hexpm", "5db2e2d7de05cafcd681e21120ae4c8b5a378ebeb9b8d8835f26f456a9a80f7a"}, "heroicons": {:git, "https://github.com/tailwindlabs/heroicons.git", "0435d4ca364a608cc75e2f8683d374e55abbae26", [tag: "v2.2.0", sparse: "optimized", depth: 1]}, - "hpax": {:hex, :hpax, "1.0.3", "ed67ef51ad4df91e75cc6a1494f851850c0bd98ebc0be6e81b026e765ee535aa", [:mix], [], "hexpm", "8eab6e1cfa8d5918c2ce4ba43588e894af35dbd8e91e6e55c817bca5847df34a"}, + "hpax": {:hex, :hpax, "1.0.4", "777de5d433b0fbdc7c418159c8055910faa8047ffdb3d6b31098d2a46cd7685c", [:mix], [], "hexpm", "afc7cb142ebcc2d01ce7816190b98ce5dd49e799111b24249f3443d730f377ca"}, "httpoison": {:hex, :httpoison, "3.0.0", "8566a933bb9175236d1ec335978445b67cd1f5b5d3ead6ca4b80be469d41f5d9", [:mix], [{:hackney, "~> 4.0", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm", "9130197b7658901c493d6fcfb842fb9676300fa8a6c8ed058c8889cf1a77f3c2"}, "idna": {:hex, :idna, "7.1.0", "1067a13043538129602d2f2ce6899d8713125c7d19734aa557ce2e3ea55bd4f1", [:rebar3], [], "hexpm", "6ae959a025bf36df61a8cab8508d9654891b5426a84c44d82deaffd6ddf8c71f"}, "inet_cidr": {:hex, :inet_cidr, "1.0.9", "e0ef72a2942529da78c8e4147d53f2ef5f6f5293335c3637b0fdf83c012cc816", [:mix], [], "hexpm", "172da15ff7cf635b1feaf14f5818be28c811b37cc5fb7c5f7c01058c1c1066cc"}, @@ -51,7 +51,7 @@ "logger_file_backend": {:hex, :logger_file_backend, "0.0.14", "774bb661f1c3fed51b624d2859180c01e386eb1273dc22de4f4a155ef749a602", [:mix], [], "hexpm", "071354a18196468f3904ef09413af20971d55164267427f6257b52cfba03f9e6"}, "mime": {:hex, :mime, "2.0.7", "b8d739037be7cd402aee1ba0306edfdef982687ee7e9859bee6198c1e7e2f128", [:mix], [], "hexpm", "6171188e399ee16023ffc5b76ce445eb6d9672e2e241d2df6050f3c771e80ccd"}, "mimerl": {:hex, :mimerl, "1.5.0", "f35aca6f23242339b3666e0ac0702379e362b469d0aea167f6cc713547e777ed", [:rebar3], [], "hexpm", "db648ce065bae14ea84ca8b5dd123f42f49417cef693541110bf6f9e9be9ecc4"}, - "mint": {:hex, :mint, "1.9.0", "d6f534c2a3e98b2a8cc749b4796eb77e9e3af79a76f96e4c74035a827de0d318", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1 or ~> 0.2.0 or ~> 1.0", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "007154c7d8c43916aed3c93afd1f11aebbaa9c5ff4b7ba55ebe0d17ee0296042"}, + "mint": {:hex, :mint, "1.9.1", "3bc120b743ed2e99ad920910f2613e9faebabb2257731b0e2ea4d8ccd9eceede", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1 or ~> 0.2.0 or ~> 1.0", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "831101bd560b086316fab5f7adb21a4f3455717d8e4bc8368b052e09aa9163e0"}, "mix_audit": {:hex, :mix_audit, "2.1.5", "c0f77cee6b4ef9d97e37772359a187a166c7a1e0e08b50edf5bf6959dfe5a016", [:make, :mix], [{:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}, {:yaml_elixir, "~> 2.11", [hex: :yaml_elixir, repo: "hexpm", optional: false]}], "hexpm", "87f9298e21da32f697af535475860dc1d3617a010e0b418d2ec6142bc8b42d69"}, "mix_test_watch": {:hex, :mix_test_watch, "1.4.0", "d88bcc4fbe3198871266e9d2f00cd8ae350938efbb11d3fa1da091586345adbb", [:mix], [{:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}], "hexpm", "2b4693e17c8ead2ef56d4f48a0329891e8c2d0d73752c0f09272a2b17dc38d1b"}, "mox": {:hex, :mox, "1.2.0", "a2cd96b4b80a3883e3100a221e8adc1b98e4c3a332a8fc434c39526babafd5b3", [:mix], [{:nimble_ownership, "~> 1.0", [hex: :nimble_ownership, repo: "hexpm", optional: false]}], "hexpm", "c7b92b3cc69ee24a7eeeaf944cd7be22013c52fcb580c1f33f50845ec821089a"}, @@ -67,7 +67,7 @@ "octo_fetch": {:hex, :octo_fetch, "0.5.0", "f50701568b9fc752656367f82cc134d5fbefff37c5a0e8ddfcceb02ceee3f5fc", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~> 1.1", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}], "hexpm", "6226cc3c14ca948ee9f25fb0446322e5c288e215da9beba7899b6b5f4cd3ccb0"}, "parse_trans": {:hex, :parse_trans, "3.4.2", "c352ddc1a0d5e54f9b1654d45f9c432eef76f9cea371c55ddff769ef688fdb74", [:rebar3], [], "hexpm", "4c25347de3b7c35732d32e69ab43d1ceee0beae3f3b3ade1b59cbd3dd224d9ca"}, "peep": {:hex, :peep, "4.4.0", "4b6289e7258ecf2741041068932455eb8389673bca785623621ddb6935286845", [:mix], [{:nimble_options, "~> 1.1", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:plug, "~> 1.16", [hex: :plug, repo: "hexpm", optional: true]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "f289959a9e5fcf92f5a4becaf4dd0df95c58841368f6ad0574b8ea830a7c1453"}, - "phoenix": {:hex, :phoenix, "1.8.8", "ada3d761359274178180c0e992ef0c2b536bd7c3bd75ebba94acbf39ab4347fe", [:mix], [{:bandit, "~> 1.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.7", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "f0c843037bd2e7012fc1d1ec9574dfa6972b7e3d09e9b77fd23aa283af0aa994"}, + "phoenix": {:hex, :phoenix, "1.8.9", "a63ed0962ed5b903b146dab0ae8eb8387fe478f8171a5e26d56a165f35996fe1", [:mix], [{:bandit, "~> 1.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.7", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "3477e2dd5a4f61820341169031bdfe21275f659923bea9c5c0ea2aa1c3fcc046"}, "phoenix_ecto": {:hex, :phoenix_ecto, "4.7.0", "75c4b9dfb3efdc42aec2bd5f8bccd978aca0651dbcbc7a3f362ea5d9d43153c6", [:mix], [{:ecto, "~> 3.5", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.1", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "1d75011e4254cb4ddf823e81823a9629559a1be93b4321a6a5f11a5306fbf4cc"}, "phoenix_html": {:hex, :phoenix_html, "4.3.0", "d3577a5df4b6954cd7890c84d955c470b5310bb49647f0a114a6eeecc850f7ad", [:mix], [], "hexpm", "3eaa290a78bab0f075f791a46a981bbe769d94bc776869f4f3063a14f30497ad"}, "phoenix_live_dashboard": {:hex, :phoenix_live_dashboard, "0.8.7", "405880012cb4b706f26dd1c6349125bfc903fb9e44d1ea668adaf4e04d4884b7", [:mix], [{:ecto, "~> 3.6.2 or ~> 3.7", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_mysql_extras, "~> 0.5", [hex: :ecto_mysql_extras, repo: "hexpm", optional: true]}, {:ecto_psql_extras, "~> 0.7", [hex: :ecto_psql_extras, repo: "hexpm", optional: true]}, {:ecto_sqlite3_extras, "~> 1.1.7 or ~> 1.2.0", [hex: :ecto_sqlite3_extras, repo: "hexpm", optional: true]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 0.19 or ~> 1.0", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6 or ~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "3a8625cab39ec261d48a13b7468dc619c0ede099601b084e343968309bd4d7d7"}, @@ -82,7 +82,7 @@ "poolboy": {:hex, :poolboy, "1.5.2", "392b007a1693a64540cead79830443abf5762f5d30cf50bc95cb2c1aaafa006b", [:rebar3], [], "hexpm", "dad79704ce5440f3d5a3681c8590b9dc25d1a561e8f5a9c995281012860901e3"}, "postgrex": {:hex, :postgrex, "0.22.2", "4aec14df2a72722aee92492566edbeeb44e233ecb86b1915d03136297ef1385d", [:mix], [{:db_connection, "~> 2.9", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "8946382ddb06294f56026ac4278b3cc212bac8a2c82ed68b4087819ed1abc53b"}, "prom_ex": {:hex, :prom_ex, "1.12.0", "a82cbd5b49964e4d4295ab72a18e007aadd5f4a91630b7c49fad42cc7e49c880", [:mix], [{:absinthe, ">= 1.8.0", [hex: :absinthe, repo: "hexpm", optional: true]}, {:broadway, ">= 1.1.0", [hex: :broadway, repo: "hexpm", optional: true]}, {:ecto, ">= 3.14.0", [hex: :ecto, repo: "hexpm", optional: true]}, {:finch, "~> 0.18", [hex: :finch, repo: "hexpm", optional: false]}, {:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}, {:oban, ">= 2.10.0", [hex: :oban, repo: "hexpm", optional: true]}, {:octo_fetch, "~> 0.4", [hex: :octo_fetch, repo: "hexpm", optional: false]}, {:peep, "~> 3.0 or ~> 4.0", [hex: :peep, repo: "hexpm", optional: false]}, {:phoenix, ">= 1.7.0", [hex: :phoenix, repo: "hexpm", optional: true]}, {:phoenix_live_view, ">= 0.20.0", [hex: :phoenix_live_view, repo: "hexpm", optional: true]}, {:plug, ">= 1.16.0", [hex: :plug, repo: "hexpm", optional: true]}, {:plug_cowboy, ">= 2.6.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:telemetry, ">= 1.0.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}, {:telemetry_metrics_prometheus_core, "~> 1.2", [hex: :telemetry_metrics_prometheus_core, repo: "hexpm", optional: false]}, {:telemetry_poller, "~> 1.1", [hex: :telemetry_poller, repo: "hexpm", optional: false]}], "hexpm", "6357484941489ba2fee64bb1e9f2a1e86309545304f9e90144e3c10e553c958b"}, - "quic": {:hex, :quic, "1.6.5", "28b7d49c1732b2de3861701bb03ae7798537240552370ac49f0d139d2ea8f621", [:rebar3], [], "hexpm", "de1a88972c33201a50d1a17c8c4a14528bd1d8f25ef705897d680ae312d0aa78"}, + "quic": {:hex, :quic, "1.7.0", "ebcf105fb16ca4d954c3bbd2e5bcda7650074f3e3a9ca80135dbee2607e0c27e", [:rebar3], [], "hexpm", "d0d304e5fda48754a570b90b103153f780f9926c15f6eabfe1b343e4f61e32df"}, "ranch": {:hex, :ranch, "2.2.0", "25528f82bc8d7c6152c57666ca99ec716510fe0925cb188172f41ce93117b1b0", [:make, :rebar3], [], "hexpm", "fa0b99a1780c80218a4197a59ea8d3bdae32fbff7e88527d7d8a4787eff4f8e7"}, "redix": {:hex, :redix, "1.5.3", "4eaae29c75e3285c0ff9957046b7c209aa7f72a023a17f0a9ea51c2a50ab5b0f", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:nimble_options, "~> 0.5.0 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7b06fb5246373af41f5826b03334dfa3f636347d4d5d98b4d455b699d425ae7e"}, "req": {:hex, :req, "0.6.2", "b9b2024f35bcf60a92cc8cad2eaaf9d4e7aace463ff74be1afe5986830184413", [:mix], [{:brotli, "~> 0.3.1", [hex: :brotli, repo: "hexpm", optional: true]}, {:ezstd, "~> 1.0", [hex: :ezstd, repo: "hexpm", optional: true]}, {:finch, "~> 0.21", [hex: :finch, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mime, "~> 2.0.6 or ~> 2.1", [hex: :mime, repo: "hexpm", optional: false]}, {:nimble_csv, "~> 1.0", [hex: :nimble_csv, repo: "hexpm", optional: true]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "cc9cd30a2ddd04989929b887178e1610c940456d962c6c3a52df6146d2eef9bf"}, @@ -90,7 +90,7 @@ "stream_data": {:hex, :stream_data, "1.3.0", "bde37905530aff386dea1ddd86ecbf00e6642dc074ceffc10b7d4e41dfd6aac9", [:mix], [], "hexpm", "3cc552e286e817dca43c98044c706eec9318083a1480c52ae2688b08e2936e3c"}, "styler": {:hex, :styler, "1.11.0", "35010d970689a23c2bcc8e97bd8bf7d20e3561d60c49be84654df5c37d051a9c", [:mix], [], "hexpm", "70f36165d0cf238a32b7a456fdef6a9c72e77e657d7ac4a0ace33aeba3f2b8c0"}, "sweet_xml": {:hex, :sweet_xml, "0.7.5", "803a563113981aaac202a1dbd39771562d0ad31004ddbfc9b5090bdcd5605277", [:mix], [], "hexpm", "193b28a9b12891cae351d81a0cead165ffe67df1b73fe5866d10629f4faefb12"}, - "swoosh": {:hex, :swoosh, "1.26.2", "1e5f398c6ab313d028b9bf604165f051e279093090c50b6f93090cf6a599b0f7", [:mix], [{:bandit, ">= 1.0.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:cowboy, "~> 1.1 or ~> 2.4", [hex: :cowboy, repo: "hexpm", optional: true]}, {:ex_aws, "~> 2.1", [hex: :ex_aws, repo: "hexpm", optional: true]}, {:finch, "~> 0.6", [hex: :finch, repo: "hexpm", optional: true]}, {:gen_smtp, "~> 0.13 or ~> 1.0", [hex: :gen_smtp, repo: "hexpm", optional: true]}, {:hackney, ">= 1.9.0 and < 5.0.0", [hex: :hackney, repo: "hexpm", optional: true]}, {:idna, ">= 6.0.0 and < 8.0.0", [hex: :idna, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mail, "~> 0.2", [hex: :mail, repo: "hexpm", optional: true]}, {:mime, "~> 1.1 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mua, "~> 0.2.3", [hex: :mua, repo: "hexpm", optional: true]}, {:multipart, "~> 0.4", [hex: :multipart, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: true]}, {:plug_cowboy, ">= 1.0.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:req, "~> 0.5.10 or ~> 0.6 or ~> 1.0", [hex: :req, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "08c6a1636b82721d0f64259053a733526526d077011ff6a7776f80e21dc60757"}, + "swoosh": {:hex, :swoosh, "1.26.3", "9d8b60077305ce259298d9a1102e5be67cd3c41d1ea930c29e9288af195ca017", [:mix], [{:bandit, ">= 1.0.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:cowboy, "~> 1.1 or ~> 2.4", [hex: :cowboy, repo: "hexpm", optional: true]}, {:ex_aws, "~> 2.1", [hex: :ex_aws, repo: "hexpm", optional: true]}, {:finch, "~> 0.6", [hex: :finch, repo: "hexpm", optional: true]}, {:gen_smtp, "~> 0.13 or ~> 1.0", [hex: :gen_smtp, repo: "hexpm", optional: true]}, {:hackney, ">= 1.9.0 and < 5.0.0", [hex: :hackney, repo: "hexpm", optional: true]}, {:idna, ">= 6.0.0 and < 8.0.0", [hex: :idna, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mail, "~> 0.2", [hex: :mail, repo: "hexpm", optional: true]}, {:mime, "~> 1.1 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mua, "~> 0.2.3", [hex: :mua, repo: "hexpm", optional: true]}, {:multipart, "~> 0.4", [hex: :multipart, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: true]}, {:plug_cowboy, ">= 1.0.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:req, "~> 0.5.10 or ~> 0.6 or ~> 1.0", [hex: :req, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c7683d070fe8f8aa9d174e61b01f2d527be73cd8ac40037b7109184941eb569f"}, "table_rex": {:hex, :table_rex, "4.1.0", "fbaa8b1ce154c9772012bf445bfb86b587430fb96f3b12022d3f35ee4a68c918", [:mix], [], "hexpm", "95932701df195d43bc2d1c6531178fc8338aa8f38c80f098504d529c43bc2601"}, "tailwind": {:hex, :tailwind, "0.5.1", "35435b13158c90d37da11e1cfc808755fca1d7b6c5ab87b1b19c5de87e2f0a10", [:mix], [], "hexpm", "c4e26302a59fec72abc5610ecb6ad2116d9aa31f31aab2d4b8eb6e95d25a689c"}, "telemetry": {:hex, :telemetry, "1.4.2", "a0cb522801dffb1c49fe6e30561badffc7b6d0e180db1300df759faa22062855", [:rebar3], [], "hexpm", "928f6495066506077862c0d1646609eed891a4326bee3126ba54b60af61febb1"}, @@ -100,8 +100,8 @@ "thousand_island": {:hex, :thousand_island, "1.5.0", "f50a213cac97262b6d5ebb85745aa2c00fec1413191e6e66834788d45425cecb", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "708923d40523e43cf99041ab37a0d4b0ec426ac6438fa3716ab23d919eaeb412"}, "tzdata": {:hex, :tzdata, "1.1.4", "989e0855df5ee8c40eb929ad971bedd7a51e2c223f051fd95cc2d2cf56a60c19", [:mix], [{:hackney, "~> 1.17", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm", "ab48888699de8ff4a255522fd858abe81bac2e64690a375e6cb590112cf4a24e"}, "websock": {:hex, :websock, "0.5.3", "2f69a6ebe810328555b6fe5c831a851f485e303a7c8ce6c5f675abeb20ebdadc", [:mix], [], "hexpm", "6105453d7fac22c712ad66fab1d45abdf049868f253cf719b625151460b8b453"}, - "websock_adapter": {:hex, :websock_adapter, "0.5.9", "43dc3ba6d89ef5dec5b1d0a39698436a1e856d000d84bf31a3149862b01a287f", [:mix], [{:bandit, ">= 0.6.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.6", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "5534d5c9adad3c18a0f58a9371220d75a803bf0b9a3d87e6fe072faaeed76a08"}, - "webtransport": {:hex, :webtransport, "0.4.1", "60ef6cd99282b5964c8172d674519239e31e357d934bde028bec70da34636fe5", [:rebar3], [{:h2, "~> 0.10.1", [hex: :h2, repo: "hexpm", optional: false]}, {:quic, "~> 1.6.5", [hex: :quic, repo: "hexpm", optional: false]}], "hexpm", "006e4e52a8f03b69201d4637c85b424a4ddccc1909f32c5742fed8d495a75174"}, + "websock_adapter": {:hex, :websock_adapter, "0.6.0", "73db5ab8aaefd1a876a97ce3e6afc96562625de69ef17a4e04426e034849d0b8", [:mix], [{:bandit, ">= 0.6.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.6", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "50021a85bce8f203b086705d9e0c5415e2c7eb05d319111b0428fe71f9934617"}, + "webtransport": {:hex, :webtransport, "0.4.3", "df0c53da138cdc5f3390a31ef612caa3a041c23e18c1a0b6fbd4d72743277806", [:rebar3], [{:h2, "~> 0.10.4", [hex: :h2, repo: "hexpm", optional: false]}, {:quic, "~> 1.7.0", [hex: :quic, repo: "hexpm", optional: false]}], "hexpm", "3ae8c76696cdb56bee3caf1dd853a0a596339886468ca17c578a9bfd647dab9d"}, "yamerl": {:hex, :yamerl, "0.10.0", "4ff81fee2f1f6a46f1700c0d880b24d193ddb74bd14ef42cb0bcf46e81ef2f8e", [:rebar3], [], "hexpm", "346adb2963f1051dc837a2364e4acf6eb7d80097c0f53cbdc3046ec8ec4b4e6e"}, "yaml_elixir": {:hex, :yaml_elixir, "2.12.2", "9dd1330fb4cd9a36a7b0f502e5b12486eff632792ee4a5f0eba52a4d4ec32c9c", [:mix], [{:yamerl, "~> 0.10", [hex: :yamerl, repo: "hexpm", optional: false]}], "hexpm", "e7c1b10122f973e6558462d51c39026ba0e14afbc6745318e990ea82cfe9e159"}, } diff --git a/vendor/oban_pro/.hex b/vendor/oban_pro/.hex deleted file mode 100644 index 50340564179bc816000c54ba7968dba746900f1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 263 zcmZ9FOLD?65JU}j5>_0A(*Lu|O{mdm6q`g6Wgudoiz9Ed>+X8>`fuLPV;g6B!XAeE zFbwZ)Dv&Anc&Gu&`MTEj@k{G%sbyQ=_{pA3n^wBktxp@(4jBr3b?T>2yEf+Kd1=R` z6k5+X6Mo+wd80p*bSgP=LPUeggOq}!kDQ{4CUB7yDB?*cjZAqhEE?tlPfU1CjGK0> tkNbbAWL?UP05l27%V3Fhsh2*Ij}g1XCa)A&?a=iT<|%3w12O_9=>>;GOKt!F diff --git a/vendor/oban_pro/hex_metadata.config b/vendor/oban_pro/hex_metadata.config deleted file mode 100644 index fbbc83d9..00000000 --- a/vendor/oban_pro/hex_metadata.config +++ /dev/null @@ -1,80 +0,0 @@ -{<<"links">>,[]}. -{<<"name">>,<<"oban_pro">>}. -{<<"version">>,<<"1.7.6">>}. -{<<"description">>,<<"Oban Pro Component">>}. -{<<"elixir">>,<<"~> 1.15">>}. -{<<"files">>, - [<<"lib/oban">>,<<"lib/oban/pro">>,<<"lib/oban/pro/diagnostics.ex">>, - <<"lib/oban/pro/cron.ex">>,<<"lib/oban/pro/decorator.ex">>, - <<"lib/oban/pro/migrations">>,<<"lib/oban/pro/migrations/v1_4_0.ex">>, - <<"lib/oban/pro/migrations/v1_5_0.ex">>, - <<"lib/oban/pro/migrations/v1_6_0.ex">>, - <<"lib/oban/pro/migrations/v1_7_0.ex">>, - <<"lib/oban/pro/migrations/dynamic_partitioner.ex">>, - <<"lib/oban/pro/migrations/v1_0_0.ex">>,<<"lib/oban/pro/unique.ex">>, - <<"lib/oban/pro/batch.ex">>,<<"lib/oban/pro/chunk.ex">>, - <<"lib/oban/pro/producer.ex">>,<<"lib/oban/pro/worker.ex">>, - <<"lib/oban/pro/stages">>,<<"lib/oban/pro/stages/rate.ex">>, - <<"lib/oban/pro/stages/chain.ex">>,<<"lib/oban/pro/stages/encrypted.ex">>, - <<"lib/oban/pro/stages/recorded.ex">>,<<"lib/oban/pro/stages/hooks.ex">>, - <<"lib/oban/pro/stages/deadline.ex">>, - <<"lib/oban/pro/stages/executing.ex">>, - <<"lib/oban/pro/stages/structured.ex">>,<<"lib/oban/pro/plugins">>, - <<"lib/oban/pro/plugins/dynamic_prioritizer.ex">>, - <<"lib/oban/pro/plugins/dynamic_pruner.ex">>, - <<"lib/oban/pro/plugins/dynamic_scaler.ex">>, - <<"lib/oban/pro/plugins/dynamic_partitioner.ex">>, - <<"lib/oban/pro/plugins/dynamic_lifeline.ex">>, - <<"lib/oban/pro/plugins/dynamic_queues.ex">>, - <<"lib/oban/pro/plugins/dynamic_cron.ex">>,<<"lib/oban/pro/limiters">>, - <<"lib/oban/pro/limiters/local.ex">>,<<"lib/oban/pro/limiters/rate.ex">>, - <<"lib/oban/pro/limiters/rate">>, - <<"lib/oban/pro/limiters/rate/token_bucket.ex">>, - <<"lib/oban/pro/limiters/rate/algorithm.ex">>, - <<"lib/oban/pro/limiters/rate/fixed_window.ex">>, - <<"lib/oban/pro/limiters/rate/sliding_window.ex">>, - <<"lib/oban/pro/limiters/global.ex">>,<<"lib/oban/pro/queue.ex">>, - <<"lib/oban/pro/handler.ex">>,<<"lib/oban/pro/partition.ex">>, - <<"lib/oban/pro/cloud.ex">>,<<"lib/oban/pro/uuidv7.ex">>, - <<"lib/oban/pro/stage.ex">>,<<"lib/oban/pro/refresher.ex">>, - <<"lib/oban/pro/workflow.ex">>,<<"lib/oban/pro/testing.ex">>, - <<"lib/oban/pro/migration.ex">>,<<"lib/oban/pro/engines">>, - <<"lib/oban/pro/engines/smart.ex">>,<<"lib/oban/pro/workflow">>, - <<"lib/oban/pro/workflow/schema.ex">>, - <<"lib/oban/pro/workflow/cascade.ex">>,<<"lib/oban/pro/limiter.ex">>, - <<"lib/oban/pro/validation.ex">>,<<"lib/oban/pro/flusher.ex">>, - <<"lib/oban/pro/workers">>,<<"lib/oban/pro/workers/chain.ex">>, - <<"lib/oban/pro/workers/batch.ex">>,<<"lib/oban/pro/workers/chunk.ex">>, - <<"lib/oban/pro/workers/workflow.ex">>,<<"lib/oban/pro/application.ex">>, - <<"lib/oban/pro/utils.ex">>,<<"lib/oban/pro/relay.ex">>, - <<"lib/oban/pro/exceptions.ex">>,<<"lib/oban/pro/rate_limit.ex">>, - <<"lib/oban/pro.ex">>,<<"usage-rules">>,<<"usage-rules/workflows.md">>, - <<"usage-rules/chunks.md">>,<<"usage-rules/workers.md">>, - <<"usage-rules/testing.md">>,<<"usage-rules/batches.md">>, - <<"usage-rules/queues.md">>,<<"usage-rules/plugins.md">>, - <<"usage-rules/chains.md">>,<<".formatter.exs">>,<<"mix.exs">>, - <<"usage-rules.md">>]}. -{<<"app">>,<<"oban_pro">>}. -{<<"licenses">>,[<<"Commercial">>]}. -{<<"requirements">>, - [[{<<"name">>,<<"oban">>}, - {<<"app">>,<<"oban">>}, - {<<"optional">>,false}, - {<<"requirement">>,<<"~> 2.21">>}, - {<<"repository">>,<<"hexpm">>}], - [{<<"name">>,<<"ecto_sql">>}, - {<<"app">>,<<"ecto_sql">>}, - {<<"optional">>,false}, - {<<"requirement">>,<<"~> 3.12">>}, - {<<"repository">>,<<"hexpm">>}], - [{<<"name">>,<<"postgrex">>}, - {<<"app">>,<<"postgrex">>}, - {<<"optional">>,true}, - {<<"requirement">>,<<"~> 0.22">>}, - {<<"repository">>,<<"hexpm">>}], - [{<<"name">>,<<"decimal">>}, - {<<"app">>,<<"decimal">>}, - {<<"optional">>,true}, - {<<"requirement">>,<<"~> 3.0">>}, - {<<"repository">>,<<"hexpm">>}]]}. -{<<"build_tools">>,[<<"mix">>]}. diff --git a/vendor/oban_pro/lib/oban/pro/application.ex b/vendor/oban_pro/lib/oban/pro/application.ex index 86d96fa1..1b94c073 100644 --- a/vendor/oban_pro/lib/oban/pro/application.ex +++ b/vendor/oban_pro/lib/oban/pro/application.ex @@ -17,7 +17,11 @@ defmodule Oban.Pro.Application do def start(_type, _args) do for handler <- @handlers, do: handler.on_start() - children = [Oban.Pro.Diagnostics, Oban.Pro.Refresher] + children = [ + {Oban.Pro.Diagnostics, []}, + {Oban.Pro.Refresher, []}, + {Task.Supervisor, name: Oban.Pro.TaskSupervisor} + ] Supervisor.start_link(children, strategy: :one_for_one, name: __MODULE__) end diff --git a/vendor/oban_pro/lib/oban/pro/engines/smart.ex b/vendor/oban_pro/lib/oban/pro/engines/smart.ex index 646f02f9..54c3eaa9 100644 --- a/vendor/oban_pro/lib/oban/pro/engines/smart.ex +++ b/vendor/oban_pro/lib/oban/pro/engines/smart.ex @@ -517,6 +517,8 @@ defmodule Oban.Pro.Engines.Smart do @registry Oban.Registry + @lock_codes ~w(deadlock_detected lock_not_available)a + @virtual_opts ~w(ack_async queue refresh_interval xact_delay xact_retry xact_timeout updated_at)a @smart_opts Application.compile_env(:oban_pro, __MODULE__, []) @@ -793,9 +795,8 @@ defmodule Oban.Pro.Engines.Smart do {:ok, {producer, jobs}} {:error, _op, %{postgres: %{code: :unique_violation, detail: detail}}, changes} -> - clear_uniq_violation(changes.conf, detail, ~w(available executing retryable)) - - retry_unique_violation(:fetch_jobs, [conf, producer, running]) + clear_unique_violation(changes.conf, detail, ~w(available executing retryable)) + retry_unique_violation(conf, producer, running) {:error, _operation, :xact_lock, _changes} -> jittery_sleep() @@ -812,16 +813,35 @@ defmodule Oban.Pro.Engines.Smart do end catch :error, %Postgrex.Error{postgres: %{code: :unique_violation, detail: detail}} -> - clear_uniq_violation(conf, detail, Enum.map(Job.states(), &to_string/1)) + clear_unique_violation(conf, detail, Enum.map(Job.states(), &to_string/1)) + retry_unique_violation(conf, producer, running) - retry_unique_violation(:fetch_jobs, [conf, producer, running]) - - :error, %Postgrex.Error{postgres: %{code: :deadlock_detected}} -> + :error, %Postgrex.Error{postgres: %{code: code}} when code in @lock_codes -> jittery_sleep() fetch_jobs(conf, producer, running) end + defp retry_unique_violation(conf, producer, running) do + attempt = Process.get(:fetch_jobs, 0) + + if attempt >= @max_uniq_retries do + Process.delete(:fetch_jobs) + + Logger.error(fn -> + "[Oban.Pro.Engines.Smart] Unique violation retry limit (#{@max_uniq_retries}) exceeded " <> + "while fetching jobs. This may indicate a persistent unique constraint conflict that " <> + "can't be automatically resolved." + end) + + {:ok, {producer, []}} + else + Process.put(:fetch_jobs, attempt + 1) + + fetch_jobs(conf, producer, running) + end + end + @doc false def fetch_for_drain(conf, %{queue: queue, with_limit: limit} = opts) do subset_query = @@ -883,9 +903,14 @@ defmodule Oban.Pro.Engines.Smart do {:ok, staged} catch :error, %Postgrex.Error{postgres: %{code: :unique_violation, detail: detail}} -> - clear_uniq_violation(conf, detail, ["scheduled", "retryable"]) + # Staging runs inside the Stager's transaction, and this violation has already aborted + # it, so the conflict can't be repaired on this connection. Repair out-of-band and skip + # this round; the next staging pass promotes the freed jobs. + Utils.async_maybe_await(fn -> + clear_unique_violation(conf, detail, ["scheduled", "retryable"]) + end) - retry_unique_violation(:stage_jobs, [conf, queryable, opts]) + {:ok, []} :error, %Postgrex.Error{postgres: %{code: :deadlock_detected}} -> jittery_sleep() @@ -893,34 +918,6 @@ defmodule Oban.Pro.Engines.Smart do stage_jobs(conf, queryable, opts) end - defp retry_unique_violation(fun, args) do - attempt = Process.get(fun, 0) - - if attempt >= @max_uniq_retries do - Process.delete(fun) - - Logger.error(fn -> - "[Oban.Pro.Engines.Smart] Unique violation retry limit (#{@max_uniq_retries}) exceeded " <> - "in #{fun}. This may indicate a persistent unique constraint conflict that cannot " <> - "be automatically resolved." - end) - - uniq_violation_failure(fun, args) - else - Process.put(fun, attempt + 1) - - apply(__MODULE__, fun, args) - end - end - - defp uniq_violation_failure(:fetch_jobs, [_conf, producer, _running]) do - {:ok, {producer, []}} - end - - defp uniq_violation_failure(:stage_jobs, _args) do - {:ok, []} - end - @impl Engine def check_available(%Config{} = conf) do exists = @@ -1044,7 +1041,7 @@ defmodule Oban.Pro.Engines.Smart do # # We find conflicting jobs by matching the unique key in meta and filtering by the expected # states. Clearing their `uniq_bmp` disables the unique constraint, allowing the transition. - def clear_uniq_violation(%Config{} = conf, detail, states) do + def clear_unique_violation(%Config{} = conf, detail, states) do # Match both column-based `(uniq_key)=(value)` and expression-based `((meta->>'uniq_key'))=(value)` # formats. The exact spacing is critical. pattern = ~r/\((?:uniq_key|\(meta ->> 'uniq_key'::text\))\)=\((?.+)\)/ @@ -1192,7 +1189,7 @@ defmodule Oban.Pro.Engines.Smart do mode = case Repo.one(conf, query) do nil -> :none - indexdef -> if String.contains?(indexdef, "(uniq_key)"), do: :column, else: :expression + indexdef -> if indexdef =~ ~r/\(uniq_key(?:\s+ASC)?\)/, do: :column, else: :expression end {:ok, mode} diff --git a/vendor/oban_pro/lib/oban/pro/partition.ex b/vendor/oban_pro/lib/oban/pro/partition.ex index 1d552ee1..b5cc1659 100644 --- a/vendor/oban_pro/lib/oban/pro/partition.ex +++ b/vendor/oban_pro/lib/oban/pro/partition.ex @@ -10,6 +10,7 @@ defmodule Oban.Pro.Partition do alias Oban.Pro.{Producer, Queue, Utils} @keys_cache_ttl Application.compile_env(:oban_pro, [__MODULE__, :keys_cache_ttl], 3_000) + @conf_cache_ttl Application.compile_env(:oban_pro, [__MODULE__, :conf_cache_ttl], 60_000) @keys_limit_mlt Application.compile_env(:oban_pro, [__MODULE__, :keys_limit_multiplier], 3) @conf_tab Module.concat(__MODULE__, Conf) @@ -32,7 +33,15 @@ defmodule Oban.Pro.Partition do # Clear the cache with a timeout, as not all queues are guaranteed to be running on a given # node and the cache won't clear naturally. - :timer.apply_interval(@keys_cache_ttl, __MODULE__, :__clear_cache__, [@keys_cache_ttl]) + :timer.apply_interval(@conf_cache_ttl, __MODULE__, :__clear_cache__, [ + @conf_tab, + @conf_cache_ttl + ]) + + :timer.apply_interval(@keys_cache_ttl, __MODULE__, :__clear_cache__, [ + @keys_tab, + @keys_cache_ttl + ]) :telemetry.attach( "oban.pro.partition", @@ -47,12 +56,11 @@ defmodule Oban.Pro.Partition do :telemetry.detach("oban.pro.partition") end - def __clear_cache__(ttl) do + def __clear_cache__(tab, ttl) do now = System.monotonic_time(:millisecond) + spec = {{:_, :_, :"$3"}, [{:>=, {:-, now, :"$3"}, ttl}], [true]} - :ets.select_delete(@keys_tab, [ - {{:_, :_, :"$3"}, [{:>=, {:-, now, :"$3"}, ttl}], [true]} - ]) + :ets.select_delete(tab, [spec]) end def handle_event(_event, _measure, %{conf: conf, key: key, meta: meta}, nil) do @@ -104,7 +112,7 @@ defmodule Oban.Pro.Partition do @spec available_keys(Config.t(), String.t(), pos_integer()) :: [String.t()] def available_keys(conf, queue, limit) do - timed_cache(conf.name, queue, fn -> + Utils.ets_cache(@keys_tab, {conf.name, queue}, @keys_cache_ttl, fn -> query_limit = @keys_limit_mlt * limit subquery = @@ -126,21 +134,6 @@ defmodule Oban.Pro.Partition do end) end - defp timed_cache(name, queue, fun) do - cache_key = {name, queue} - now = System.monotonic_time(:millisecond) - - case :ets.lookup(@keys_tab, cache_key) do - [{^cache_key, keys, timestamp}] when now - timestamp < @keys_cache_ttl -> - keys - - _ -> - keys = fun.() - :ets.insert(@keys_tab, {cache_key, keys, now}) - keys - end - end - # Rescuing @doc false @@ -208,20 +201,11 @@ defmodule Oban.Pro.Partition do if Process.get(:oban_draining) do :missing else - case :ets.lookup(@conf_tab, {conf.name, queue}) do - [{_key, value}] -> - value - - [] -> - value = - with :missing <- reg_config(conf, queue), - :missing <- pro_config(conf, queue), - do: dyn_config(conf, queue) - - :ets.insert(@conf_tab, {{conf.name, queue}, value}) - - value - end + Utils.ets_cache(@conf_tab, {conf.name, queue}, @conf_cache_ttl, fn -> + with :missing <- reg_config(conf, queue), + :missing <- pro_config(conf, queue), + do: dyn_config(conf, queue) + end) end end diff --git a/vendor/oban_pro/lib/oban/pro/plugins/dynamic_lifeline.ex b/vendor/oban_pro/lib/oban/pro/plugins/dynamic_lifeline.ex index 54db2d0a..53ee6074 100644 --- a/vendor/oban_pro/lib/oban/pro/plugins/dynamic_lifeline.ex +++ b/vendor/oban_pro/lib/oban/pro/plugins/dynamic_lifeline.ex @@ -307,7 +307,7 @@ defmodule Oban.Pro.Plugins.DynamicLifeline do Repo.update_all(state.conf, query, [], timeout: state.timeout) catch :error, %Postgrex.Error{postgres: %{code: :unique_violation, detail: detail}} -> - Smart.clear_uniq_violation(state.conf, detail, ~w(available executing retryable)) + Smart.clear_unique_violation(state.conf, detail, ~w(available executing retryable)) {0, []} end @@ -324,7 +324,7 @@ defmodule Oban.Pro.Plugins.DynamicLifeline do Repo.update_all(state.conf, query, [], timeout: state.timeout) catch :error, %Postgrex.Error{postgres: %{code: :unique_violation, detail: detail}} -> - Smart.clear_uniq_violation(state.conf, detail, ~w(available executing retryable)) + Smart.clear_unique_violation(state.conf, detail, ~w(available executing retryable)) {0, []} end diff --git a/vendor/oban_pro/lib/oban/pro/stages/deadline.ex b/vendor/oban_pro/lib/oban/pro/stages/deadline.ex index 27275406..50306d41 100644 --- a/vendor/oban_pro/lib/oban/pro/stages/deadline.ex +++ b/vendor/oban_pro/lib/oban/pro/stages/deadline.ex @@ -60,7 +60,9 @@ defmodule Oban.Pro.Stages.Deadline do dat = DateTime.from_unix!(at) if :gt == DateTime.compare(now, dat) do - {:cancel, "deadline at #{inspect(dat)} exired"} + Hooks.execute_on_cancelled(:deadline, job) + + {:cancel, "deadline at #{inspect(dat)} expired"} else if conf.force, do: force_timeout(now, dat, job) diff --git a/vendor/oban_pro/lib/oban/pro/stages/hooks.ex b/vendor/oban_pro/lib/oban/pro/stages/hooks.ex index 8a4166cb..a3753407 100644 --- a/vendor/oban_pro/lib/oban/pro/stages/hooks.ex +++ b/vendor/oban_pro/lib/oban/pro/stages/hooks.ex @@ -14,6 +14,7 @@ defmodule Oban.Pro.Stages.Hooks do after_cancelled: 2, before_new: 2, before_process: 1, + after_process: 2, after_process: 3, on_cancelled: 2, on_discarded: 2 @@ -128,7 +129,7 @@ defmodule Oban.Pro.Stages.Hooks do all_hooks = Enum.uniq([worker | mod_hooks] ++ get_hooks()) for module <- all_hooks, hook_exported?(module, hook) do - apply(module, hook, args) + apply_hook(module, hook, args) end catch kind, value -> @@ -137,6 +138,16 @@ defmodule Oban.Pro.Stages.Hooks do end) end + defp apply_hook(module, :after_process, [state, job, result]) do + if function_exported?(module, :after_process, 3) do + module.after_process(state, job, result) + else + module.after_process(state, job) + end + end + + defp apply_hook(module, hook, args), do: apply(module, hook, args) + defp resolve_processing(job) do with nil <- Process.get(:oban_processing), {:ok, worker} <- Oban.Worker.from_string(job.worker), diff --git a/vendor/oban_pro/lib/oban/pro/testing.ex b/vendor/oban_pro/lib/oban/pro/testing.ex index 0e43004e..6b8865fd 100644 --- a/vendor/oban_pro/lib/oban/pro/testing.ex +++ b/vendor/oban_pro/lib/oban/pro/testing.ex @@ -71,7 +71,8 @@ defmodule Oban.Pro.Testing do discarded: non_neg_integer(), exhausted: non_neg_integer(), retryable: non_neg_integer(), - scheduled: non_neg_integer() + scheduled: non_neg_integer(), + suspended: non_neg_integer() } @type drain_result :: drain_summary() | [Job.t()] @@ -201,7 +202,8 @@ defmodule Oban.Pro.Testing do discarded: 0, exhausted: 0, retryable: 0, - scheduled: 0 + scheduled: 0, + suspended: 0 } @doc """ diff --git a/vendor/oban_pro/lib/oban/pro/utils.ex b/vendor/oban_pro/lib/oban/pro/utils.ex index f7323496..facd6165 100644 --- a/vendor/oban_pro/lib/oban/pro/utils.ex +++ b/vendor/oban_pro/lib/oban/pro/utils.ex @@ -28,6 +28,20 @@ defmodule Oban.Pro.Utils do |> Base.encode64(padding: false) end + # Caching + + def ets_cache(tab, key, ttl, fun) when is_function(fun, 0) do + now = System.monotonic_time(:millisecond) + + case :ets.lookup(tab, key) do + [{^key, value, timestamp}] when now - timestamp < ttl -> + value + + _ -> + tap(fun.(), &:ets.insert(tab, {key, &1, now})) + end + end + @spec persistent_cache(tuple(), (-> any())) :: any() def persistent_cache(key, fun) when is_function(fun, 0) do persistent_cache(key, :infinity, fun) @@ -45,6 +59,23 @@ defmodule Oban.Pro.Utils do end end + # Async Execution + + def async_maybe_await(fun) when is_function(fun, 0) do + # Await during testing to prevent leaking side-effects after a test concludes. + if Process.get(:oban_draining) do + Oban.Pro.TaskSupervisor + |> Task.Supervisor.async(fun) + |> Task.await() + else + Task.Supervisor.start_child(Oban.Pro.TaskSupervisor, fun) + + :ok + end + end + + # Feature Detection + @spec has_legacy_workflows?(Oban.Config.t()) :: boolean() def has_legacy_workflows?(conf) do persistent_cache({__MODULE__, :legacy_workflows, conf.name}, @legacy_ttl, fn -> diff --git a/vendor/oban_pro/lib/oban/pro/worker.ex b/vendor/oban_pro/lib/oban/pro/worker.ex index 9856339f..d1770fd8 100644 --- a/vendor/oban_pro/lib/oban/pro/worker.ex +++ b/vendor/oban_pro/lib/oban/pro/worker.ex @@ -203,10 +203,10 @@ defmodule Oban.Pro.Worker do The example above uses `recorded: true` to opt into recording with the defaults. That means an output `limit` of 64mb after compression and encoding—anything larger than the configured limit will return an error tuple. If you expect larger results (and you want them stored in the - database) you can override the limit. For example, to set the limit to 64mb instead: + database) you can override the limit. For example, to set the limit to 32mb instead: ```elixir - use Oban.Pro.Worker, recorded: [limit: 128_000_000] + use Oban.Pro.Worker, recorded: [limit: 32_000_000] ``` ### Retrieving Results @@ -1561,18 +1561,16 @@ defmodule Oban.Pro.Worker do end defp await_signal(oban_name, id, wait_until, wait_timeout) do - case Notifier.listen(oban_name, :pro_signal) do - :ok -> - try do - await_loop(id, wait_until, wait_timeout) - after - Notifier.unlisten(oban_name, :pro_signal) - end + if Process.get(:oban_draining) do + park_or_timeout(wait_until) + else + Notifier.listen(oban_name, :pro_signal) - {:error, _reason} -> - # Without a notifier, e.g. while draining, there's no way to receive a live signal, so - # park immediately and let a buffered signal resume the job on a later pass. - park_or_timeout(wait_until) + try do + await_loop(id, wait_until, wait_timeout) + after + Notifier.unlisten(oban_name, :pro_signal) + end end end diff --git a/vendor/oban_pro/lib/oban/pro/workflow.ex b/vendor/oban_pro/lib/oban/pro/workflow.ex index 67ed5f76..058a2762 100644 --- a/vendor/oban_pro/lib/oban/pro/workflow.ex +++ b/vendor/oban_pro/lib/oban/pro/workflow.ex @@ -1738,39 +1738,38 @@ defmodule Oban.Pro.Workflow do sub_changesets = Enum.map(sub_workflow.changesets, fn changeset -> meta_deps = get_in(changeset.changes, [:meta, :deps]) + context? = get_in(changeset.changes, [:meta, :context]) == true + nested? = get_in(changeset.changes, [:meta, :sup_workflow_id]) != nil - if deps != [] and meta_deps == [] do - old_ancestors = get_in(changeset.changes, [:meta, :ancestor_ids]) || [] - new_ancestors = Map.get(workflow.opts, :ancestor_ids, []) - all_ancestors = old_ancestors ++ [workflow.id] ++ new_ancestors + old_ancestors = get_in(changeset.changes, [:meta, :ancestor_ids]) || [] + new_ancestors = Map.get(workflow.opts, :ancestor_ids, []) + all_ancestors = old_ancestors ++ [workflow.id] ++ new_ancestors - opts - |> Map.new() - |> Map.put(:ancestor_ids, all_ancestors) - |> Map.put(:deps, deps) - |> Map.put(:sub_name, name) - |> Map.put(:sup_workflow_id, workflow.id) - |> Map.put(:workflow_id, sub_workflow.id) - |> put_hold(changeset) - else - new_ancestors = Map.get(workflow.opts, :ancestor_ids, []) + cond do + not context? and deps != [] and meta_deps == [] -> + opts + |> Map.new() + |> Map.put(:ancestor_ids, all_ancestors) + |> Map.put(:deps, deps) + |> Map.put(:sub_name, name) + |> Map.put(:sup_workflow_id, workflow.id) + |> Map.put(:workflow_id, sub_workflow.id) + |> put_hold(changeset) - meta = - if get_in(changeset.changes, [:meta, :sup_workflow_id]) do - old_ancestors = get_in(changeset.changes, [:meta, :ancestor_ids]) || [] - all_ancestors = old_ancestors ++ [workflow.id] ++ new_ancestors + nested? -> + meta = %{sup_workflow_id: workflow.id, ancestor_ids: all_ancestors} - %{sup_workflow_id: workflow.id, ancestor_ids: all_ancestors} - else - %{ - sub_name: name, - sup_workflow_id: workflow.id, - workflow_id: sub_workflow.id, - ancestor_ids: [workflow.id] ++ new_ancestors - } - end + Changeset.update_change(changeset, :meta, &Map.merge(&1, meta)) - Changeset.update_change(changeset, :meta, &Map.merge(&1, meta)) + true -> + meta = %{ + sub_name: name, + sup_workflow_id: workflow.id, + workflow_id: sub_workflow.id, + ancestor_ids: [workflow.id] ++ new_ancestors + } + + Changeset.update_change(changeset, :meta, &Map.merge(&1, meta)) end end) @@ -1980,6 +1979,8 @@ defmodule Oban.Pro.Workflow do _ -> graft_id end + sub_id = workflow.id + changesets = Enum.map(workflow.changesets, fn changeset -> if get_in(changeset.changes, [:meta, :sup_workflow_id]) do @@ -1991,9 +1992,31 @@ defmodule Oban.Pro.Workflow do workflow = %{workflow | id: root_id, changesets: changesets} - job - |> append(check_deps: false) - |> add_workflow(graft_name, workflow, opts) + grafted = + job + |> append(check_deps: false) + |> add_workflow(graft_name, workflow, opts) + + changesets = Enum.map(grafted.changesets, &reparent_grafted(&1, root_id, sub_id)) + + %{grafted | changesets: changesets} + end + + defp reparent_grafted(changeset, root_id, sub_id) do + case get_in(changeset.changes, [:meta, :workflow_id]) do + ^root_id -> + changeset + + _ -> + Changeset.update_change(changeset, :meta, fn meta -> + ancestors = + Enum.map(meta[:ancestor_ids] || [root_id], &if(&1 == sub_id, do: root_id, else: &1)) + + meta + |> Map.put(:sup_workflow_id, root_id) + |> Map.put(:ancestor_ids, ancestors) + end) + end end defp extract_graft! do diff --git a/vendor/oban_pro/mix.exs b/vendor/oban_pro/mix.exs index 626f45a6..c669ecbd 100644 --- a/vendor/oban_pro/mix.exs +++ b/vendor/oban_pro/mix.exs @@ -1,7 +1,7 @@ defmodule Oban.Pro.MixProject do use Mix.Project - @version "1.7.6" + @version "1.7.7" def project do [ diff --git a/vendor/oban_web/.hex b/vendor/oban_web/.hex deleted file mode 100644 index 68710e70c5bab4aded394646dc2d7c6d0d960ba1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 265 zcmZ9E!Eyp25JWewF`oPs3m9SGmOrrun8|JuSZmebJwG12=F-*m>UIB4n`vz0#1Gog za2tkU*S3`kmtOZvqkpENH8#BOh{RN;#jD=A4|0DCjMm v47S5^zx_W=9xw!jkVzszvJgGG;0QnmrOEeDY!i`Dh+=XSBmvCAOsL!+>?liC diff --git a/vendor/oban_web/CHANGELOG.md b/vendor/oban_web/CHANGELOG.md index b2890da9..ad49cfe6 100644 --- a/vendor/oban_web/CHANGELOG.md +++ b/vendor/oban_web/CHANGELOG.md @@ -95,6 +95,91 @@ options and burst mode configuration. ### Bug Fixes +- [Jobs] Restrict unauthorized job editing and updates with new permission + + The save-job event handler previously dispatched changes from any client + without checking access controls, allowing a read-only user to rewrite a + job's worker module and potentially trigger code execution on the next + attempt. Editing now requires `:update_jobs` permission, which is + enabled by default for `:all` and disabled for `:read_only`. + +- [Cron] Prevent malicious cron expressions from unrestricted memory allocation + + A maliciously crafted cron expression like "0 0 1--100000000 \* \*" could + trigger multi-gigabyte allocations when `describe/1` eagerly expanded + the range during formatting. Range, value, and step parsing now validate + against per-field bounds and require ranges to be non-decreasing, so + out-of-domain inputs are rejected before any expansion occurs. + +## v2.12.5 - 2026-07-06 + +### Enhancements + +- [Jobs] Build jobs through worker `new/2` when available + + The new job drawer always built changesets with `Job.new/2`, bypassing worker-level defaults, + validation, and Pro stages (recorded, chain, etc). Now we resolve the worker module and use its + `new/2` when it's loaded on the Web instance, falling back to `Job.new/2` when the module isn't + available. + +### Bug Fixes + +- [Dashboard] Resolve Elixir 1.20 compilation warnings + + Fix all of the warnings surfaced by the Elixir v1.20 type checker and upgrade any packages with + errors or secutity warnings. + +- [Job Details] Fix clearing tags when editing jobs + + Treat blank tag input as an empty list when editing jobs, while leaving it as `nil` during job + creation. + +- [Job Details] Add clipboard fallback for insecure contexts + + The navigator.clipboard API is only available in secure contexts (HTTPS or localhost), so + copying job args, meta, and stacktraces failed with "navigator.clipboard is undefined" when Oban + Web was served over plain HTTP. Fall back to execCommand so copy actions work in those + environments. + +- [Job Details] Fix new job form ignoring the scheduled at time + + `DateTime.from_iso8601/1` returns a three-element tuple, but we only matched on `{:ok, + datetime}`. That clause never matched, so parsing always returned `nil` and jobs created with a + scheduled time ran immediately instead. Match the full tuple so the selected time is applied. + +- [Job Details] Stack timeline labels on narrow screens + + State boxes in the job timeline placed the state label and timestamp in a row that was too + narrow until the xl breakpoint, causing the timestamp to wrap awkwardly and the content to + bleed. Now the label and timestamp are stacked below xl, switching to side-by-side where there's + room to fit them. + +- [Cron] Fix cron and tag history queries for CockroachDB + + The cron history and tag suggestion queries relied on the Postgres-only implicit `value` column + name. CRDB names it after the function instead, which caused an `undefined_column` error. + + Now the set-returning function is wrapped in a derived table with an explicit column alias for + all engines. + +## v2.12.5 - 2026-05-26 + +### Enhancements + +- [Jobs] Display awaitable signals in the job details page + + Add a section that decodes and displays signal payloads sent via + `Oban.Pro.Worker.signal/2`. While a job is parked waiting, the section + shows "Awaiting Signal" with the deadline. Once a signal arrives, it + switches to "Received Signal". + +- [Resolver] Add `format_signal/2` resolver callback + + This allows customizing the decoded output,mirroring what's available + with `format_recorded/2`. + +### Bug Fixes + - [Jobs] Restrict unauthorized job editing and updates with new permission The save-job event handler previously dispatched changes from any client diff --git a/vendor/oban_web/hex_metadata.config b/vendor/oban_web/hex_metadata.config deleted file mode 100644 index f330c33b..00000000 --- a/vendor/oban_web/hex_metadata.config +++ /dev/null @@ -1,109 +0,0 @@ -{<<"links">>, - [{<<"Website">>,<<"https://oban.pro">>}, - {<<"Changelog">>, - <<"https://github.com/oban-bg/oban_web/blob/main/CHANGELOG.md">>}, - {<<"GitHub">>,<<"https://github.com/oban-bg/oban_web">>}]}. -{<<"name">>,<<"oban_web">>}. -{<<"version">>,<<"2.12.5">>}. -{<<"description">>,<<"Dashboard for the Oban job orchestration framework">>}. -{<<"elixir">>,<<"~> 1.15">>}. -{<<"files">>, - [<<"lib">>,<<"lib/mix">>,<<"lib/mix/tasks">>, - <<"lib/mix/tasks/oban_web.install.ex">>,<<"lib/oban">>,<<"lib/oban/web">>, - <<"lib/oban/web/cron.ex">>,<<"lib/oban/web/dashboard_live.ex">>, - <<"lib/oban/web/page.ex">>,<<"lib/oban/web/telemetry.ex">>, - <<"lib/oban/web/cache.ex">>,<<"lib/oban/web/plugins">>, - <<"lib/oban/web/plugins/stats.ex">>,<<"lib/oban/web/queue.ex">>, - <<"lib/oban/web/metrics.ex">>,<<"lib/oban/web/queries">>, - <<"lib/oban/web/queries/query_helpers.ex">>, - <<"lib/oban/web/queries/workflow_query.ex">>, - <<"lib/oban/web/queries/cron_query.ex">>, - <<"lib/oban/web/queries/job_query.ex">>, - <<"lib/oban/web/queries/queue_query.ex">>,<<"lib/oban/web/router.ex">>, - <<"lib/oban/web/components">>,<<"lib/oban/web/components/sort.ex">>, - <<"lib/oban/web/components/icons.ex">>, - <<"lib/oban/web/components/sidebar_components.ex">>, - <<"lib/oban/web/components/core.ex">>, - <<"lib/oban/web/components/layouts.ex">>, - <<"lib/oban/web/components/layouts">>, - <<"lib/oban/web/components/layouts/live.html.heex">>, - <<"lib/oban/web/components/layouts/root.html.heex">>, - <<"lib/oban/web/components/form_components.ex">>, - <<"lib/oban/web/workflow.ex">>,<<"lib/oban/web/timezones.ex">>, - <<"lib/oban/web/live">>,<<"lib/oban/web/live/search_component.ex">>, - <<"lib/oban/web/live/workflows">>, - <<"lib/oban/web/live/workflows/table_component.ex">>, - <<"lib/oban/web/live/workflows/detail_component.ex">>, - <<"lib/oban/web/live/shortcuts_component.ex">>, - <<"lib/oban/web/live/theme_component.ex">>,<<"lib/oban/web/live/queues">>, - <<"lib/oban/web/live/queues/table_component.ex">>, - <<"lib/oban/web/live/queues/detail_component.ex">>, - <<"lib/oban/web/live/queues/detail_instance_component.ex">>, - <<"lib/oban/web/live/help_component.ex">>,<<"lib/oban/web/live/crons">>, - <<"lib/oban/web/live/crons/table_component.ex">>, - <<"lib/oban/web/live/crons/new_component.ex">>, - <<"lib/oban/web/live/crons/detail_component.ex">>, - <<"lib/oban/web/live/crons/helpers.ex">>,<<"lib/oban/web/live/jobs">>, - <<"lib/oban/web/live/jobs/table_component.ex">>, - <<"lib/oban/web/live/jobs/sidebar_component.ex">>, - <<"lib/oban/web/live/jobs/new_component.ex">>, - <<"lib/oban/web/live/jobs/detail_component.ex">>, - <<"lib/oban/web/live/jobs/history_chart_component.ex">>, - <<"lib/oban/web/live/jobs/timeline_component.ex">>, - <<"lib/oban/web/live/jobs/chart_component.ex">>, - <<"lib/oban/web/live/connectivity_component.ex">>, - <<"lib/oban/web/live/instances_component.ex">>, - <<"lib/oban/web/live/refresh_component.ex">>,<<"lib/oban/web/helpers.ex">>, - <<"lib/oban/web/colors.ex">>,<<"lib/oban/web/cron_expr.ex">>, - <<"lib/oban/web/application.ex">>,<<"lib/oban/web/utils.ex">>, - <<"lib/oban/web/timing.ex">>,<<"lib/oban/web/pages">>, - <<"lib/oban/web/pages/jobs_page.ex">>, - <<"lib/oban/web/pages/crons_page.ex">>, - <<"lib/oban/web/pages/queues_page.ex">>, - <<"lib/oban/web/pages/workflows_page.ex">>,<<"lib/oban/web/resolver.ex">>, - <<"lib/oban/web/authentication.ex">>,<<"lib/oban/web/helpers">>, - <<"lib/oban/web/helpers/queue_helper.ex">>,<<"lib/oban/web/assets.ex">>, - <<"lib/oban/web/search.ex">>,<<"lib/oban/web/exceptions.ex">>, - <<"lib/oban/web.ex">>,<<"priv/static">>,<<"priv/static/app.css">>, - <<"priv/static/fonts">>,<<"priv/static/fonts/Inter.woff2">>, - <<"priv/static/app.js">>,<<"priv/timezones.txt">>,<<".formatter.exs">>, - <<"mix.exs">>,<<"README.md">>,<<"CHANGELOG.md">>,<<"LICENSE.txt">>]}. -{<<"app">>,<<"oban_web">>}. -{<<"licenses">>,[<<"Apache-2.0">>]}. -{<<"requirements">>, - [[{<<"name">>,<<"jason">>}, - {<<"app">>,<<"jason">>}, - {<<"optional">>,false}, - {<<"requirement">>,<<"~> 1.2">>}, - {<<"repository">>,<<"hexpm">>}], - [{<<"name">>,<<"phoenix">>}, - {<<"app">>,<<"phoenix">>}, - {<<"optional">>,false}, - {<<"requirement">>,<<"~> 1.7">>}, - {<<"repository">>,<<"hexpm">>}], - [{<<"name">>,<<"phoenix_html">>}, - {<<"app">>,<<"phoenix_html">>}, - {<<"optional">>,false}, - {<<"requirement">>,<<"~> 3.3 or ~> 4.0">>}, - {<<"repository">>,<<"hexpm">>}], - [{<<"name">>,<<"phoenix_pubsub">>}, - {<<"app">>,<<"phoenix_pubsub">>}, - {<<"optional">>,false}, - {<<"requirement">>,<<"~> 2.1">>}, - {<<"repository">>,<<"hexpm">>}], - [{<<"name">>,<<"phoenix_live_view">>}, - {<<"app">>,<<"phoenix_live_view">>}, - {<<"optional">>,false}, - {<<"requirement">>,<<"~> 1.0">>}, - {<<"repository">>,<<"hexpm">>}], - [{<<"name">>,<<"oban">>}, - {<<"app">>,<<"oban">>}, - {<<"optional">>,false}, - {<<"requirement">>,<<"~> 2.21">>}, - {<<"repository">>,<<"hexpm">>}], - [{<<"name">>,<<"oban_met">>}, - {<<"app">>,<<"oban_met">>}, - {<<"optional">>,false}, - {<<"requirement">>,<<"~> 1.1">>}, - {<<"repository">>,<<"hexpm">>}]]}. -{<<"build_tools">>,[<<"mix">>]}. diff --git a/vendor/oban_web/lib/oban/web.ex b/vendor/oban_web/lib/oban/web.ex index 7708aca3..d0095778 100644 --- a/vendor/oban_web/lib/oban/web.ex +++ b/vendor/oban_web/lib/oban/web.ex @@ -7,6 +7,8 @@ defmodule Oban.Web do quote do @moduledoc false + use Phoenix.Component + import Phoenix.Controller, only: [get_csrf_token: 0, view_module: 1, view_template: 1] unquote(html_helpers()) @@ -35,8 +37,6 @@ defmodule Oban.Web do defp html_helpers do quote do - use Phoenix.Component - import Oban.Web.Helpers import Phoenix.HTML import Phoenix.LiveView.Helpers diff --git a/vendor/oban_web/lib/oban/web/components/icons.ex b/vendor/oban_web/lib/oban/web/components/icons.ex index 40e2ec87..7717de66 100644 --- a/vendor/oban_web/lib/oban/web/components/icons.ex +++ b/vendor/oban_web/lib/oban/web/components/icons.ex @@ -5,7 +5,7 @@ defmodule Oban.Web.Components.Icons do attr :name, :string, required: true attr :class, :any, default: nil - attr :rest, :global + attr :rest, :global, include: ~w(rel) def icon(assigns) do ~H""" diff --git a/vendor/oban_web/lib/oban/web/live/crons/detail_component.ex b/vendor/oban_web/lib/oban/web/live/crons/detail_component.ex index 10cbdfe2..0dc51965 100644 --- a/vendor/oban_web/lib/oban/web/live/crons/detail_component.ex +++ b/vendor/oban_web/lib/oban/web/live/crons/detail_component.ex @@ -423,7 +423,7 @@ defmodule Oban.Web.Crons.DetailComponent do priority: new_val?(parse_int(params["priority"]), get_opt(cron, "priority")), max_attempts: new_val?(parse_int(params["max_attempts"]), get_opt(cron, "max_attempts")), guaranteed: new_val?(params["guaranteed"] == "true", get_opt(cron, "guaranteed") == true), - tags: new_val?(parse_tags(params["tags"]), get_opt(cron, "tags")), + tags: new_val?(parse_form_tags(params), get_opt(cron, "tags")), args: new_val?(parse_json(params["args"]), get_opt(cron, "args")) ] end @@ -435,6 +435,9 @@ defmodule Oban.Web.Crons.DetailComponent do defp new_val?(val, nil, val), do: nil defp new_val?(val, _current, _default), do: val + defp parse_form_tags(%{"tags" => tags}), do: parse_tags(tags) || [] + defp parse_form_tags(_params), do: nil + defp get_opt(%{opts: opts}, key) do Map.get(opts, key) end diff --git a/vendor/oban_web/lib/oban/web/live/jobs/chart_component.ex b/vendor/oban_web/lib/oban/web/live/jobs/chart_component.ex index ed875cb7..71c5f03f 100644 --- a/vendor/oban_web/lib/oban/web/live/jobs/chart_component.ex +++ b/vendor/oban_web/lib/oban/web/live/jobs/chart_component.ex @@ -79,8 +79,7 @@ defmodule Oban.Web.Jobs.ChartComponent do class="w-3 h-3 ml-1 bg-violet-300 rounded-full" data-title={"Filtered by #{params_to_filters_list(@params)}"} phx-hook="Tippy" - > - + >
diff --git a/vendor/oban_web/lib/oban/web/live/jobs/detail_component.ex b/vendor/oban_web/lib/oban/web/live/jobs/detail_component.ex index 03a7695f..d1a3d8f5 100644 --- a/vendor/oban_web/lib/oban/web/live/jobs/detail_component.ex +++ b/vendor/oban_web/lib/oban/web/live/jobs/detail_component.ex @@ -1021,7 +1021,7 @@ defmodule Oban.Web.Jobs.DetailComponent do priority: new_val?(parse_int(params["priority"]), job.priority), max_attempts: new_val?(parse_int(params["max_attempts"]), job.max_attempts), scheduled_at: new_val?(parse_datetime(params["scheduled_at"]), job.scheduled_at), - tags: new_val?(parse_tags(params["tags"]), job.tags), + tags: new_val?(parse_edit_tags(params), job.tags), args: new_val?(parse_json(params["args"]), job.args) ] end @@ -1031,6 +1031,9 @@ defmodule Oban.Web.Jobs.DetailComponent do defp new_val?(val, val), do: nil defp new_val?(val, _current), do: val + defp parse_edit_tags(%{"tags" => tags}), do: parse_tags(tags) || [] + defp parse_edit_tags(_params), do: nil + defp parse_datetime(nil), do: nil defp parse_datetime(""), do: nil diff --git a/vendor/oban_web/lib/oban/web/live/jobs/new_component.ex b/vendor/oban_web/lib/oban/web/live/jobs/new_component.ex index 993d72b3..660ae93a 100644 --- a/vendor/oban_web/lib/oban/web/live/jobs/new_component.ex +++ b/vendor/oban_web/lib/oban/web/live/jobs/new_component.ex @@ -151,7 +151,7 @@ defmodule Oban.Web.Jobs.NewComponent do with {:ok, worker} <- parse_worker(params["worker"]), {:ok, args} <- parse_args(params["args"]), {:ok, opts} <- build_opts(params) do - changeset = Oban.Job.new(args, [{:worker, worker} | opts]) + changeset = build_changeset(worker, args, opts) case Oban.insert(conf.name, changeset) do {:ok, job} -> @@ -227,6 +227,13 @@ defmodule Oban.Web.Jobs.NewComponent do defp parse_worker(_), do: {:error, "Worker is required"} + defp build_changeset(worker, args, opts) do + case Oban.Worker.from_string(worker) do + {:ok, module} -> module.new(args, opts) + {:error, _reason} -> Oban.Job.new(args, [{:worker, worker} | opts]) + end + end + defp parse_args(args) when is_binary(args) do case parse_json(args) do nil -> {:error, "Args must be a valid JSON object"} @@ -273,7 +280,7 @@ defmodule Oban.Web.Jobs.NewComponent do defp parse_scheduled_at(str) when is_binary(str) do case DateTime.from_iso8601(str <> ":00Z") do - {:ok, datetime} -> datetime + {:ok, datetime, _offset} -> datetime _ -> nil end end diff --git a/vendor/oban_web/lib/oban/web/live/jobs/timeline_component.ex b/vendor/oban_web/lib/oban/web/live/jobs/timeline_component.ex index fcb12510..08fa690c 100644 --- a/vendor/oban_web/lib/oban/web/live/jobs/timeline_component.ex +++ b/vendor/oban_web/lib/oban/web/live/jobs/timeline_component.ex @@ -73,7 +73,7 @@ defmodule Oban.Web.Jobs.TimelineComponent do ~H"""
- + {@timestamp || "—"}
diff --git a/vendor/oban_web/lib/oban/web/pages/jobs_page.ex b/vendor/oban_web/lib/oban/web/pages/jobs_page.ex index 339d5a0d..72800049 100644 --- a/vendor/oban_web/lib/oban/web/pages/jobs_page.ex +++ b/vendor/oban_web/lib/oban/web/pages/jobs_page.ex @@ -335,7 +335,7 @@ defmodule Oban.Web.JobsPage do send(self(), :cancel_selected) end - {:noreply, assign(socket, expanded?: false)} + {:noreply, socket} end def handle_event("retry-jobs", _params, socket) do @@ -343,7 +343,7 @@ defmodule Oban.Web.JobsPage do send(self(), :retry_selected) end - {:noreply, assign(socket, expanded?: false)} + {:noreply, socket} end def handle_event("delete-jobs", _params, socket) do @@ -351,10 +351,10 @@ defmodule Oban.Web.JobsPage do send(self(), :delete_selected) end - {:noreply, assign(socket, expanded?: false)} + {:noreply, socket} end - # Queues + # System @impl Page def handle_info({ref, _val}, socket) when is_reference(ref) do @@ -365,14 +365,6 @@ defmodule Oban.Web.JobsPage do {:noreply, socket} end - def handle_info({:scale_queue, queue, limit}, socket) do - Telemetry.action(:scale_queue, socket, [queue: queue, limit: limit], fn -> - Oban.scale_queue(socket.assigns.conf.name, queue: queue, limit: limit) - end) - - {:noreply, socket} - end - def handle_info({:flash, mode, message}, socket) do {:noreply, put_flash_with_clear(socket, mode, message)} end @@ -410,14 +402,6 @@ defmodule Oban.Web.JobsPage do {:noreply, assign(socket, detailed: job)} end - def handle_info({:delete_job, job}, socket) do - Telemetry.action(:delete_jobs, socket, [job_ids: [job.id]], fn -> - JobQuery.delete_jobs(socket.assigns.conf, [job.id]) - end) - - {:noreply, push_patch(socket, to: oban_path(:jobs), replace: true)} - end - def handle_info({:retry_job, job}, socket) do Telemetry.action(:retry_jobs, socket, [job_ids: [job.id]], fn -> JobQuery.retry_jobs(socket.assigns.conf, [job.id]) @@ -428,6 +412,14 @@ defmodule Oban.Web.JobsPage do {:noreply, assign(socket, detailed: job)} end + def handle_info({:delete_job, job}, socket) do + Telemetry.action(:delete_jobs, socket, [job_ids: [job.id]], fn -> + JobQuery.delete_jobs(socket.assigns.conf, [job.id]) + end) + + {:noreply, push_patch(socket, to: oban_path(:jobs), replace: true)} + end + def handle_info({:update_job, job, changes}, socket) do conf = socket.assigns.conf @@ -445,38 +437,7 @@ defmodule Oban.Web.JobsPage do end end - # Selection - - def handle_info({:toggle_select, job_id}, socket) do - selected = socket.assigns.selected - - selected = - if MapSet.member?(selected, job_id) do - MapSet.delete(selected, job_id) - else - MapSet.put(selected, job_id) - end - - {:noreply, assign(socket, selected: selected)} - end - - def handle_info(:toggle_select_all, socket) do - selected = - if Enum.any?(socket.assigns.selected) do - MapSet.new() - else - # Always include the jobs we can see currently to compensate for slower refresh rates. - # Without this, visible jobs may not be selected and the interface looks broken. - local_set = MapSet.new(socket.assigns.jobs, & &1.id) - - socket.assigns.params - |> JobQuery.all_job_ids(socket.assigns.conf) - |> MapSet.new() - |> MapSet.union(local_set) - end - - {:noreply, assign(socket, selected: selected)} - end + # Bulk Actions def handle_info(:cancel_selected, socket) do job_ids = MapSet.to_list(socket.assigns.selected) @@ -523,6 +484,39 @@ defmodule Oban.Web.JobsPage do {:noreply, handle_refresh(socket)} end + # Selection + + def handle_info({:toggle_select, job_id}, socket) do + selected = socket.assigns.selected + + selected = + if MapSet.member?(selected, job_id) do + MapSet.delete(selected, job_id) + else + MapSet.put(selected, job_id) + end + + {:noreply, assign(socket, selected: selected)} + end + + def handle_info(:toggle_select_all, socket) do + selected = + if Enum.any?(socket.assigns.selected) do + MapSet.new() + else + # Always include the jobs we can see currently to compensate for slower refresh rates. + # Without this, visible jobs may not be selected and the interface looks broken. + local_set = MapSet.new(socket.assigns.jobs, & &1.id) + + socket.assigns.params + |> JobQuery.all_job_ids(socket.assigns.conf) + |> MapSet.new() + |> MapSet.union(local_set) + end + + {:noreply, assign(socket, selected: selected)} + end + # Param Helpers defp params_with_defaults(params, socket) do diff --git a/vendor/oban_web/lib/oban/web/pages/queues_page.ex b/vendor/oban_web/lib/oban/web/pages/queues_page.ex index 1761ef72..354b475c 100644 --- a/vendor/oban_web/lib/oban/web/pages/queues_page.ex +++ b/vendor/oban_web/lib/oban/web/pages/queues_page.ex @@ -325,6 +325,8 @@ defmodule Oban.Web.QueuesPage do {:noreply, socket} end + # Single Actions + @impl Page def handle_info({:pause_queue, queue}, socket) do Telemetry.action(:pause_queue, socket, [queue: queue], fn -> @@ -358,6 +360,18 @@ defmodule Oban.Web.QueuesPage do {:noreply, socket} end + def handle_info({:stop_queue, queue}, socket) do + enforce_access!(:stop_queues, socket.assigns.access) + + Telemetry.action(:stop_queue, socket, [queue: queue], fn -> + Oban.stop_queue(socket.assigns.conf.name, queue: queue) + end) + + {:noreply, put_flash_with_clear(socket, :info, "Queue #{queue} stopped")} + end + + # Bulk Actions + def handle_info(:pause_queues, socket) do enforce_access!(:pause_queues, socket.assigns.access) @@ -409,41 +423,7 @@ defmodule Oban.Web.QueuesPage do {:noreply, socket} end - def handle_info({:stop_queue, queue}, socket) do - enforce_access!(:stop_queues, socket.assigns.access) - - Telemetry.action(:stop_queue, socket, [queue: queue], fn -> - Oban.stop_queue(socket.assigns.conf.name, queue: queue) - end) - - {:noreply, put_flash_with_clear(socket, :info, "Queue #{queue} stopped")} - end - - def handle_info({:toggle_select, queue}, socket) do - selected = socket.assigns.selected - - selected = - if MapSet.member?(selected, queue) do - MapSet.delete(selected, queue) - else - MapSet.put(selected, queue) - end - - {:noreply, assign(socket, selected: selected)} - end - - def handle_info(:toggle_select_all, socket) do - selected = - if Enum.any?(socket.assigns.selected) do - MapSet.new() - else - socket.assigns.params - |> QueueQuery.all_queues(socket.assigns.conf) - |> MapSet.new(& &1.name) - end - - {:noreply, assign(socket, selected: selected)} - end + # Scaling def handle_info({:scale_queue, queue, name, node, limit}, socket) do meta = [queue: queue, name: name, node: node, limit: limit] @@ -474,6 +454,36 @@ defmodule Oban.Web.QueuesPage do {:noreply, put_flash_with_clear(socket, :info, scale_message(queue, opts))} end + # Selection + + def handle_info({:toggle_select, queue}, socket) do + selected = socket.assigns.selected + + selected = + if MapSet.member?(selected, queue) do + MapSet.delete(selected, queue) + else + MapSet.put(selected, queue) + end + + {:noreply, assign(socket, selected: selected)} + end + + def handle_info(:toggle_select_all, socket) do + selected = + if Enum.any?(socket.assigns.selected) do + MapSet.new() + else + socket.assigns.params + |> QueueQuery.all_queues(socket.assigns.conf) + |> MapSet.new(& &1.name) + end + + {:noreply, assign(socket, selected: selected)} + end + + # Filtering + def handle_info({:params, :limit, inc}, socket) when is_integer(inc) do params = socket.assigns.params @@ -483,6 +493,8 @@ defmodule Oban.Web.QueuesPage do {:noreply, push_patch(socket, to: oban_path(:queues, params), replace: true)} end + # Fallback + def handle_info(_, socket) do {:noreply, socket} end diff --git a/vendor/oban_web/lib/oban/web/queries/cron_query.ex b/vendor/oban_web/lib/oban/web/queries/cron_query.ex index 05a607c5..b27e11b1 100644 --- a/vendor/oban_web/lib/oban/web/queries/cron_query.ex +++ b/vendor/oban_web/lib/oban/web/queries/cron_query.ex @@ -296,7 +296,7 @@ defmodule Oban.Web.CronQuery do ranked = from t in subquery(inside), where: t.rn <= @history_limit query = - from f in fragment("json_array_elements_text(?)", ^names), + from f in fragment("(SELECT value FROM json_array_elements_text(?) AS t(value))", ^names), as: :list, left_lateral_join: j in subquery(ranked), on: true, diff --git a/vendor/oban_web/lib/oban/web/queries/job_query.ex b/vendor/oban_web/lib/oban/web/queries/job_query.ex index 447cdba6..d270a863 100644 --- a/vendor/oban_web/lib/oban/web/queries/job_query.ex +++ b/vendor/oban_web/lib/oban/web/queries/job_query.ex @@ -56,7 +56,12 @@ defmodule Oban.Web.JobQuery do defmacrop json_unnest(field) do quote do - fragment("json_array_elements_text(array_to_json(?))", unquote(field)) + fragment( + """ + (SELECT value FROM json_array_elements_text(array_to_json(?)) AS t(value)) + """, + unquote(field) + ) end end @@ -324,7 +329,7 @@ defmodule Oban.Web.JobQuery do join(query, :inner, [j], x in json_table(j.tags), on: true) true -> - join(query, :inner, [j], x in json_unnest(j.tags), on: true) + join(query, :inner_lateral, [j], x in json_unnest(j.tags), on: true) end query = diff --git a/vendor/oban_web/mix.exs b/vendor/oban_web/mix.exs index 6a7155ab..da486f89 100644 --- a/vendor/oban_web/mix.exs +++ b/vendor/oban_web/mix.exs @@ -2,7 +2,7 @@ defmodule Oban.Web.MixProject do use Mix.Project @source_url "https://github.com/oban-bg/oban_web" - @version "2.12.5" + @version "2.12.6" def project do [ diff --git a/vendor/oban_web/priv/static/app.css b/vendor/oban_web/priv/static/app.css index e32fff58..238e983e 100644 --- a/vendor/oban_web/priv/static/app.css +++ b/vendor/oban_web/priv/static/app.css @@ -1,2 +1,2 @@ /*! tailwindcss v4.1.0 | MIT License | https://tailwindcss.com */ -@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){@layer base{*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:rotateX(0);--tw-rotate-y:rotateY(0);--tw-rotate-z:rotateZ(0);--tw-skew-x:skewX(0);--tw-skew-y:skewY(0);--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@font-face{font-display:swap;font-family:Inter var;font-style:normal;font-weight:100 900;font-named-instance:"Regular";src:url(fonts/inter.woff2)format("woff2")}.tabular{font-variant-numeric:slashed-zero tabular-nums}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}select:-moz-focusring{color:#0000;text-shadow:0 0 #000}.tippy-box{background-color:var(--color-gray-800);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);color:var(--color-gray-200);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-outline-style:none;border-radius:.25rem;outline-style:none;transition-property:transform,visibility,opacity;position:relative}.tippy-box:where(.dark,.dark *){background-color:var(--color-gray-200);color:var(--color-gray-800)}.tippy-box[data-placement^=top]>.tippy-svg-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-svg-arrow:after,.tippy-box[data-placement^=top]>.tippy-svg-arrow>svg{top:16px;transform:rotate(180deg)}.tippy-box[data-placement^=bottom]>.tippy-svg-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-svg-arrow>svg{bottom:16px}.tippy-box[data-placement^=left]>.tippy-svg-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-svg-arrow:after,.tippy-box[data-placement^=left]>.tippy-svg-arrow>svg{top:calc(50% - 3px);left:11px;transform:rotate(90deg)}.tippy-box[data-placement^=right]>.tippy-svg-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-svg-arrow:after,.tippy-box[data-placement^=right]>.tippy-svg-arrow>svg{top:calc(50% - 3px);right:11px;transform:rotate(-90deg)}.tippy-svg-arrow{height:calc(var(--spacing)*4);width:calc(var(--spacing)*4);fill:currentColor;color:var(--color-gray-800);text-align:initial}.tippy-svg-arrow:where(.dark,.dark *){color:var(--color-gray-200)}.tippy-svg-arrow,.tippy-svg-arrow>svg{position:absolute}.tippy-content{z-index:10;padding-inline:calc(var(--spacing)*3);padding-block:calc(var(--spacing)*2);position:relative}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-100:oklch(93.6% .032 17.717);--color-red-300:oklch(80.8% .114 19.571);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-400:oklch(79.2% .209 151.711);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-600:oklch(59.6% .145 163.225);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-600:oklch(60.9% .126 221.723);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-900:oklch(39.1% .09 240.876);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-blue-950:oklch(28.2% .091 267.935);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-600:oklch(51.1% .262 276.966);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-violet-800:oklch(43.2% .232 292.759);--color-violet-900:oklch(38% .189 293.745);--color-violet-950:oklch(28.3% .141 291.089);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-gray-950:oklch(13% .028 261.692);--color-zinc-50:oklch(98.5% 0 0);--color-zinc-300:oklch(87.1% .006 286.286);--color-zinc-700:oklch(37% .013 285.805);--color-zinc-950:oklch(14.1% .005 285.823);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-3xs:16rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--radius-md:.375rem;--radius-lg:.5rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--spacing-84:21rem;--spacing-96:24rem}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:color-mix(in oklab,currentColor 50%,transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}[type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-color:oklch(55.1% .027 264.364);border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is([type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:oklch(54.6% .245 262.881);outline:2px solid #0000}input::placeholder,textarea::placeholder{color:oklch(55.1% .027 264.364);opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-date-and-time-value{text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}[multiple],[size]:where(select:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;print-color-adjust:unset;padding-right:.75rem}[type=checkbox],[type=radio]{appearance:none;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;color:oklch(54.6% .245 262.881);--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;border-color:oklch(55.1% .027 264.364);flex-shrink:0;width:1rem;height:1rem;padding:0;display:inline-block}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media (forced-colors:active){[type=checkbox]:checked{appearance:auto}}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media (forced-colors:active){[type=radio]:checked{appearance:auto}}[type=checkbox]:checked:hover,[type=checkbox]:checked:focus,[type=radio]:checked:hover,[type=radio]:checked:focus{background-color:currentColor;border-color:#0000}[type=checkbox]:indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}@media (forced-colors:active){[type=checkbox]:indeterminate{appearance:auto}}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{background-color:currentColor;border-color:#0000}[type=file]{background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}[type=file]:focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-0\.5{top:calc(var(--spacing)*.5)}.top-3{top:calc(var(--spacing)*3)}.top-4{top:calc(var(--spacing)*4)}.top-8{top:calc(var(--spacing)*8)}.top-full{top:100%}.right-0{right:calc(var(--spacing)*0)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-3{bottom:calc(var(--spacing)*3)}.left-0\.5{left:calc(var(--spacing)*.5)}.left-3{left:calc(var(--spacing)*3)}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-m-2{margin:calc(var(--spacing)*-2)}.-mx-2{margin-inline:calc(var(--spacing)*-2)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.-my-1{margin-block:calc(var(--spacing)*-1)}.my-0\.5{margin-block:calc(var(--spacing)*.5)}.my-1\.5{margin-block:calc(var(--spacing)*1.5)}.my-2{margin-block:calc(var(--spacing)*2)}.my-6{margin-block:calc(var(--spacing)*6)}.-mt-2{margin-top:calc(var(--spacing)*-2)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.-mr-2{margin-right:calc(var(--spacing)*-2)}.mr-0{margin-right:calc(var(--spacing)*0)}.mr-0\.5{margin-right:calc(var(--spacing)*.5)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-1\.5{margin-right:calc(var(--spacing)*1.5)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-1\.5{margin-left:calc(var(--spacing)*1.5)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-6{margin-left:calc(var(--spacing)*6)}.ml-12{margin-left:calc(var(--spacing)*12)}.ml-auto{margin-left:auto}.icon-arrow-left{--icon-arrow-left:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M10.5%2019.5L3%2012m0%200l7.5-7.5M3%2012h18%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-arrow-left);-webkit-mask:var(--icon-arrow-left);-webkit-mask:var(--icon-arrow-left);mask:var(--icon-arrow-left);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-arrow-path{--icon-arrow-path:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M16.023%209.348h4.992v-.001M2.985%2019.644v-4.992m0%200h4.992m-4.993%200l3.181%203.183a8.25%208.25%200%200013.803-3.7M4.031%209.865a8.25%208.25%200%200113.803-3.7l3.181%203.182m0-4.991v4.99%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-arrow-path);-webkit-mask:var(--icon-arrow-path);-webkit-mask:var(--icon-arrow-path);mask:var(--icon-arrow-path);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-arrow-path-rounded{--icon-arrow-path-rounded:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M19.5%2012c0-1.232-.046-2.453-.138-3.662a4.006%204.006%200%2000-3.7-3.7%2048.678%2048.678%200%2000-7.324%200%204.006%204.006%200%2000-3.7%203.7c-.017.22-.032.441-.046.662M19.5%2012l3-3m-3%203l-3-3m-12%203c0%201.232.046%202.453.138%203.662a4.006%204.006%200%20003.7%203.7%2048.656%2048.656%200%20007.324%200%204.006%204.006%200%20003.7-3.7c.017-.22.032-.441.046-.662M4.5%2012l3%203m-3-3l-3%203%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-arrow-path-rounded);-webkit-mask:var(--icon-arrow-path-rounded);-webkit-mask:var(--icon-arrow-path-rounded);mask:var(--icon-arrow-path-rounded);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-arrow-right{--icon-arrow-right:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M13.5%204.5%2021%2012m0%200-7.5%207.5M21%2012H3%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-arrow-right);-webkit-mask:var(--icon-arrow-right);-webkit-mask:var(--icon-arrow-right);mask:var(--icon-arrow-right);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-arrow-right-circle{--icon-arrow-right-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M12.75%2015l3-3m0%200l-3-3m3%203h-7.5M21%2012a9%209%200%2011-18%200%209%209%200%200118%200z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-arrow-right-circle);-webkit-mask:var(--icon-arrow-right-circle);-webkit-mask:var(--icon-arrow-right-circle);mask:var(--icon-arrow-right-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-arrow-top-right-on-square{--icon-arrow-top-right-on-square:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M13.5%206H5.25A2.25%202.25%200%20003%208.25v10.5A2.25%202.25%200%20005.25%2021h10.5A2.25%202.25%200%200018%2018.75V10.5m-10.5%206L21%203m0%200h-5.25M21%203v5.25%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-arrow-top-right-on-square);-webkit-mask:var(--icon-arrow-top-right-on-square);-webkit-mask:var(--icon-arrow-top-right-on-square);mask:var(--icon-arrow-top-right-on-square);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-arrow-trending-down{--icon-arrow-trending-down:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M2.25%206L9%2012.75l4.286-4.286a11.948%2011.948%200%20014.306%206.43l.776%202.898m0%200l3.182-5.511m-3.182%205.51l-5.511-3.181%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-arrow-trending-down);-webkit-mask:var(--icon-arrow-trending-down);-webkit-mask:var(--icon-arrow-trending-down);mask:var(--icon-arrow-trending-down);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-arrow-turn-down-right{--icon-arrow-turn-down-right:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20class%3D%22size-6%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22m16.49%2012%203.75%203.75m0%200-3.75%203.75m3.75-3.75H3.74V4.499%22%20%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-arrow-turn-down-right);-webkit-mask:var(--icon-arrow-turn-down-right);-webkit-mask:var(--icon-arrow-turn-down-right);mask:var(--icon-arrow-turn-down-right);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-bars-arrow-down{--icon-bars-arrow-down:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M3%204.5h14.25M3%209h9.75M3%2013.5h9.75m4.5-4.5v12m0%200l-3.75-3.75M17.25%2021L21%2017.25%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-bars-arrow-down);-webkit-mask:var(--icon-bars-arrow-down);-webkit-mask:var(--icon-bars-arrow-down);mask:var(--icon-bars-arrow-down);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-bars-arrow-up{--icon-bars-arrow-up:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M3%204.5h14.25M3%209h9.75M3%2013.5h5.25m5.25-.75L17.25%209m0%200L21%2012.75M17.25%209v12%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-bars-arrow-up);-webkit-mask:var(--icon-bars-arrow-up);-webkit-mask:var(--icon-bars-arrow-up);mask:var(--icon-bars-arrow-up);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-bolt-circle{--icon-bolt-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M13.317%206.066a.648.648%200%200%201%20.337.703l-.683%203.517h3.404c.245%200%20.467.147.568.375a.657.657%200%200%201-.096.688l-5.416%206.43a.613.613%200%200%201-.747.155.648.648%200%200%201-.338-.702l.683-3.518H7.625a.624.624%200%200%201-.568-.375.657.657%200%200%201%20.096-.688l5.416-6.43a.613.613%200%200%201%20.748-.155ZM21%2012a9%209%200%201%201-18%200%209%209%200%200%201%2018%200Z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-bolt-circle);-webkit-mask:var(--icon-bolt-circle);-webkit-mask:var(--icon-bolt-circle);mask:var(--icon-bolt-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-bolt-slash{--icon-bolt-slash:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M11.412%2015.655%209.75%2021.75l3.745-4.012M9.257%2013.5H3.75l2.659-2.849m2.048-2.194L14.25%202.25%2012%2010.5h8.25l-4.707%205.043M8.457%208.457%203%203m5.457%205.457%207.086%207.086m0%200L21%2021%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-bolt-slash);-webkit-mask:var(--icon-bolt-slash);-webkit-mask:var(--icon-bolt-slash);mask:var(--icon-bolt-slash);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-camera{--icon-camera:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M6.827%206.175A2.31%202.31%200%20015.186%207.23c-.38.054-.757.112-1.134.175C2.999%207.58%202.25%208.507%202.25%209.574V18a2.25%202.25%200%20002.25%202.25h15A2.25%202.25%200%200021.75%2018V9.574c0-1.067-.75-1.994-1.802-2.169a47.865%2047.865%200%2000-1.134-.175%202.31%202.31%200%2001-1.64-1.055l-.822-1.316a2.192%202.192%200%2000-1.736-1.039%2048.774%2048.774%200%2000-5.232%200%202.192%202.192%200%2000-1.736%201.039l-.821%201.316z%22%2F%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M16.5%2012.75a4.5%204.5%200%2011-9%200%204.5%204.5%200%20019%200zM18.75%2010.5h.008v.008h-.008V10.5z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-camera);-webkit-mask:var(--icon-camera);-webkit-mask:var(--icon-camera);mask:var(--icon-camera);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-chart-bar-square{--icon-chart-bar-square:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M7.5%2014.25v2.25m3-4.5v4.5m3-6.75v6.75m3-9v9M6%2020.25h12A2.25%202.25%200%200020.25%2018V6A2.25%202.25%200%200018%203.75H6A2.25%202.25%200%20003.75%206v12A2.25%202.25%200%20006%2020.25z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-chart-bar-square);-webkit-mask:var(--icon-chart-bar-square);-webkit-mask:var(--icon-chart-bar-square);mask:var(--icon-chart-bar-square);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-check{--icon-check:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M4.5%2012.75l6%206%209-13.5%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-check);-webkit-mask:var(--icon-check);-webkit-mask:var(--icon-check);mask:var(--icon-check);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-check-circle{--icon-check-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M9%2012.75L11.25%2015%2015%209.75M21%2012a9%209%200%2011-18%200%209%209%200%200118%200z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-check-circle);-webkit-mask:var(--icon-check-circle);-webkit-mask:var(--icon-check-circle);mask:var(--icon-check-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-chevron-left{--icon-chevron-left:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20class%3D%22size-6%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M15.75%2019.5%208.25%2012l7.5-7.5%22%20%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-chevron-left);-webkit-mask:var(--icon-chevron-left);-webkit-mask:var(--icon-chevron-left);mask:var(--icon-chevron-left);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-chevron-right{--icon-chevron-right:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M8.25%204.5l7.5%207.5-7.5%207.5%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-chevron-right);-webkit-mask:var(--icon-chevron-right);-webkit-mask:var(--icon-chevron-right);mask:var(--icon-chevron-right);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-clipboard{--icon-clipboard:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20class%3D%22size-6%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M15.666%203.888A2.25%202.25%200%200%200%2013.5%202.25h-3c-1.03%200-1.9.693-2.166%201.638m7.332%200c.055.194.084.4.084.612v0a.75.75%200%200%201-.75.75H9a.75.75%200%200%201-.75-.75v0c0-.212.03-.418.084-.612m7.332%200c.646.049%201.288.11%201.927.184%201.1.128%201.907%201.077%201.907%202.185V19.5a2.25%202.25%200%200%201-2.25%202.25H6.75A2.25%202.25%200%200%201%204.5%2019.5V6.257c0-1.108.806-2.057%201.907-2.185a48.208%2048.208%200%200%201%201.927-.184%22%20%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-clipboard);-webkit-mask:var(--icon-clipboard);-webkit-mask:var(--icon-clipboard);mask:var(--icon-clipboard);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-clock{--icon-clock:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M12%206v6h4.5m4.5%200a9%209%200%2011-18%200%209%209%200%200118%200z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-clock);-webkit-mask:var(--icon-clock);-webkit-mask:var(--icon-clock);mask:var(--icon-clock);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-command-line{--icon-command-line:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M6.75%207.5l3%202.25-3%202.25m4.5%200h3m-9%208.25h13.5A2.25%202.25%200%200021%2018V6a2.25%202.25%200%2000-2.25-2.25H5.25A2.25%202.25%200%20003%206v12a2.25%202.25%200%20002.25%202.25z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-command-line);-webkit-mask:var(--icon-command-line);-webkit-mask:var(--icon-command-line);mask:var(--icon-command-line);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-computer-desktop{--icon-computer-desktop:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M9%2017.25v1.007a3%203%200%2001-.879%202.122L7.5%2021h9l-.621-.621A3%203%200%200115%2018.257V17.25m6-12V15a2.25%202.25%200%2001-2.25%202.25H5.25A2.25%202.25%200%20013%2015V5.25m18%200A2.25%202.25%200%200018.75%203H5.25A2.25%202.25%200%20003%205.25m18%200V12a2.25%202.25%200%2001-2.25%202.25H5.25A2.25%202.25%200%20013%2012V5.25%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-computer-desktop);-webkit-mask:var(--icon-computer-desktop);-webkit-mask:var(--icon-computer-desktop);mask:var(--icon-computer-desktop);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-crossbones-circle-solid{--icon-crossbones-circle-solid:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22black%22%3E%20%20%3Cpath%20d%3D%22M12%202c5.523%200%2010%204.478%2010%2010%200%205.523-4.477%2010-10%2010-5.522%200-10-4.477-10-10C2%206.478%206.478%202%2012%202Zm0%201.363a8.637%208.637%200%201%200%200%2017.274%208.637%208.637%200%201%200%200-17.274Zm4.358%2011.077a.625.625%200%200%201-.344.814l-2.374.965%202.375.967a.625.625%200%200%201%20.37.733l-.027.08a.625.625%200%200%201-.815.344l-3.56-1.45-3.558%201.45a.625.625%200%200%201-.472-1.158l2.373-.966-2.373-.965a.625.625%200%200%201-.37-.733l.027-.081a.625.625%200%200%201%20.814-.344l3.559%201.449%203.56-1.449c.32-.13.684.024.815.344ZM12.023%205.61c2.16%200%203.913%201.546%203.864%203.455%200%201.257-.743%202.348-1.877%202.952l.149.699c.071.341-.146.672-.448.672h-3.424c-.298%200-.494-.33-.423-.672l.125-.697c-1.111-.605-1.878-1.697-1.878-2.976%200-1.886%201.753-3.433%203.913-3.433Zm1.435%201.945a.975.975%200%200%200-.973.972c0%20.535.437.972.973.972a.973.973%200%200%200%200-1.944Zm-2.917%200a.993.993%200%200%200-.972.972c0%20.535.41.972.973.972a.958.958%200%200%200%20.972-.972.974.974%200%200%200-.972-.972h-.001Z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-crossbones-circle-solid);-webkit-mask:var(--icon-crossbones-circle-solid);-webkit-mask:var(--icon-crossbones-circle-solid);mask:var(--icon-crossbones-circle-solid);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-ellipsis-horizontal-circle{--icon-ellipsis-horizontal-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M8.625%2012a.375.375%200%201%201-.75%200%20.375.375%200%200%201%20.75%200Zm0%200H8.25m4.125%200a.375.375%200%201%201-.75%200%20.375.375%200%200%201%20.75%200Zm0%200H12m4.125%200a.375.375%200%201%201-.75%200%20.375.375%200%200%201%20.75%200Zm0%200h-.375M21%2012a9%209%200%201%201-18%200%209%209%200%200%201%2018%200Z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-ellipsis-horizontal-circle);-webkit-mask:var(--icon-ellipsis-horizontal-circle);-webkit-mask:var(--icon-ellipsis-horizontal-circle);mask:var(--icon-ellipsis-horizontal-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-exclamation-circle{--icon-exclamation-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M12%209v3.75m9-.75a9%209%200%2011-18%200%209%209%200%200118%200zm-9%203.75h.008v.008H12v-.008z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-exclamation-circle);-webkit-mask:var(--icon-exclamation-circle);-webkit-mask:var(--icon-exclamation-circle);mask:var(--icon-exclamation-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-globe{--icon-globe:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M12%2021a9.004%209.004%200%20008.716-6.747M12%2021a9.004%209.004%200%2001-8.716-6.747M12%2021c2.485%200%204.5-4.03%204.5-9S14.485%203%2012%203m0%2018c-2.485%200-4.5-4.03-4.5-9S9.515%203%2012%203m0%200a8.997%208.997%200%20017.843%204.582M12%203a8.997%208.997%200%2000-7.843%204.582m15.686%200A11.953%2011.953%200%200112%2010.5c-2.998%200-5.74-1.1-7.843-2.918m15.686%200A8.959%208.959%200%200121%2012c0%20.778-.099%201.533-.284%202.253m0%200A17.919%2017.919%200%200112%2016.5c-3.162%200-6.133-.815-8.716-2.247m0%200A9.015%209.015%200%20013%2012c0-1.605.42-3.113%201.157-4.418%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-globe);-webkit-mask:var(--icon-globe);-webkit-mask:var(--icon-globe);mask:var(--icon-globe);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-indeterminate{--icon-indeterminate:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cline%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20x1%3D%225%22%20x2%3D%2219%22%20y1%3D%2212%22%20y2%3D%2212%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-indeterminate);-webkit-mask:var(--icon-indeterminate);-webkit-mask:var(--icon-indeterminate);mask:var(--icon-indeterminate);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-info-circle{--icon-info-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M11.25%2011.25l.041-.02a.75.75%200%20011.063.852l-.708%202.836a.75.75%200%20001.063.853l.041-.021M21%2012a9%209%200%2011-18%200%209%209%200%200118%200zm-9-3.75h.008v.008H12V8.25z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-info-circle);-webkit-mask:var(--icon-info-circle);-webkit-mask:var(--icon-info-circle);mask:var(--icon-info-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-life-buoy{--icon-life-buoy:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M16.712%204.33a9.027%209.027%200%200%201%201.652%201.306c.51.51.944%201.064%201.306%201.652M16.712%204.33l-3.448%204.138m3.448-4.138a9.014%209.014%200%200%200-9.424%200M19.67%207.288l-4.138%203.448m4.138-3.448a9.014%209.014%200%200%201%200%209.424m-4.138-5.976a3.736%203.736%200%200%200-.88-1.388%203.737%203.737%200%200%200-1.388-.88m2.268%202.268a3.765%203.765%200%200%201%200%202.528m-2.268-4.796a3.765%203.765%200%200%200-2.528%200m4.796%204.796c-.181.506-.475.982-.88%201.388a3.736%203.736%200%200%201-1.388.88m2.268-2.268%204.138%203.448m0%200a9.027%209.027%200%200%201-1.306%201.652c-.51.51-1.064.944-1.652%201.306m0%200-3.448-4.138m3.448%204.138a9.014%209.014%200%200%201-9.424%200m5.976-4.138a3.765%203.765%200%200%201-2.528%200m0%200a3.736%203.736%200%200%201-1.388-.88%203.737%203.737%200%200%201-.88-1.388m2.268%202.268L7.288%2019.67m0%200a9.024%209.024%200%200%201-1.652-1.306%209.027%209.027%200%200%201-1.306-1.652m0%200%204.138-3.448M4.33%2016.712a9.014%209.014%200%200%201%200-9.424m4.138%205.976a3.765%203.765%200%200%201%200-2.528m0%200c.181-.506.475-.982.88-1.388a3.736%203.736%200%200%201%201.388-.88m-2.268%202.268L4.33%207.288m6.406%201.18L7.288%204.33m0%200a9.024%209.024%200%200%200-1.652%201.306A9.025%209.025%200%200%200%204.33%207.288%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-life-buoy);-webkit-mask:var(--icon-life-buoy);-webkit-mask:var(--icon-life-buoy);mask:var(--icon-life-buoy);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-link{--icon-link:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20class%3D%22size-6%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M13.19%208.688a4.5%204.5%200%200%201%201.242%207.244l-4.5%204.5a4.5%204.5%200%200%201-6.364-6.364l1.757-1.757m13.35-.622%201.757-1.757a4.5%204.5%200%200%200-6.364-6.364l-4.5%204.5a4.5%204.5%200%200%200%201.242%207.244%22%20%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-link);-webkit-mask:var(--icon-link);-webkit-mask:var(--icon-link);mask:var(--icon-link);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-lock-closed{--icon-lock-closed:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M16.5%2010.5V6.75a4.5%204.5%200%2010-9%200v3.75m-.75%2011.25h10.5a2.25%202.25%200%20002.25-2.25v-6.75a2.25%202.25%200%2000-2.25-2.25H6.75a2.25%202.25%200%2000-2.25%202.25v6.75a2.25%202.25%200%20002.25%202.25z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-lock-closed);-webkit-mask:var(--icon-lock-closed);-webkit-mask:var(--icon-lock-closed);mask:var(--icon-lock-closed);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-magnifying-glass{--icon-magnifying-glass:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M21%2021l-5.197-5.197m0%200A7.5%207.5%200%20105.196%205.196a7.5%207.5%200%200010.607%2010.607z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-magnifying-glass);-webkit-mask:var(--icon-magnifying-glass);-webkit-mask:var(--icon-magnifying-glass);mask:var(--icon-magnifying-glass);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-map-pin{--icon-map-pin:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M15%2010.5a3%203%200%2011-6%200%203%203%200%20016%200z%22%2F%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M19.5%2010.5c0%207.142-7.5%2011.25-7.5%2011.25S4.5%2017.642%204.5%2010.5a7.5%207.5%200%201115%200z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-map-pin);-webkit-mask:var(--icon-map-pin);-webkit-mask:var(--icon-map-pin);mask:var(--icon-map-pin);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-minus-circle{--icon-minus-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M15%2012H9m12%200a9%209%200%2011-18%200%209%209%200%200118%200z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-minus-circle);-webkit-mask:var(--icon-minus-circle);-webkit-mask:var(--icon-minus-circle);mask:var(--icon-minus-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-moon{--icon-moon:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20d%3D%22M17.715%2015.15A6.5%206.5%200%200%201%209%206.035C6.106%206.922%204%209.645%204%2012.867c0%203.94%203.153%207.136%207.042%207.136%203.101%200%205.734-2.032%206.673-4.853Z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-moon);-webkit-mask:var(--icon-moon);-webkit-mask:var(--icon-moon);mask:var(--icon-moon);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-no-symbol{--icon-no-symbol:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M18.364%2018.364A9%209%200%20005.636%205.636m12.728%2012.728A9%209%200%20015.636%205.636m12.728%2012.728L5.636%205.636%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-no-symbol);-webkit-mask:var(--icon-no-symbol);-webkit-mask:var(--icon-no-symbol);mask:var(--icon-no-symbol);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-pause-circle{--icon-pause-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M14.25%209v6m-4.5%200V9M21%2012a9%209%200%201%201-18%200%209%209%200%200%201%2018%200Z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-pause-circle);-webkit-mask:var(--icon-pause-circle);-webkit-mask:var(--icon-pause-circle);mask:var(--icon-pause-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-pencil-square{--icon-pencil-square:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22m16.862%204.487%201.687-1.688a1.875%201.875%200%201%201%202.652%202.652L10.582%2016.07a4.5%204.5%200%200%201-1.897%201.13L6%2018l.8-2.685a4.5%204.5%200%200%201%201.13-1.897l8.932-8.931Zm0%200L19.5%207.125M18%2014v4.75A2.25%202.25%200%200%201%2015.75%2021H5.25A2.25%202.25%200%200%201%203%2018.75V8.25A2.25%202.25%200%200%201%205.25%206H10%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-pencil-square);-webkit-mask:var(--icon-pencil-square);-webkit-mask:var(--icon-pencil-square);mask:var(--icon-pencil-square);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-percent-square{--icon-percent-square:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20d%3D%22M6%204h12.5a2%202%200%200%201%202%202v12.5a2%202%200%200%201-2%202H6a2%202%200%200%201-2-2V6a2%202%200%200%201%202-2Zm2%2013%209-9m-6.313%202.125a.563.563%200%201%201-1.125%200%20.563.563%200%200%201%201.126%200Zm4.75%204.75a.562.562%200%201%201-1.124%200%20.562.562%200%200%201%201.124%200Z%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-percent-square);-webkit-mask:var(--icon-percent-square);-webkit-mask:var(--icon-percent-square);mask:var(--icon-percent-square);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-play-circle{--icon-play-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M21%2012a9%209%200%201%201-18%200%209%209%200%200%201%2018%200Z%22%2F%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M15.91%2011.672a.375.375%200%200%201%200%20.656l-5.603%203.113a.375.375%200%200%201-.557-.328V8.887c0-.286.307-.466.557-.327l5.603%203.112Z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-play-circle);-webkit-mask:var(--icon-play-circle);-webkit-mask:var(--icon-play-circle);mask:var(--icon-play-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-play-pause-circle{--icon-play-pause-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20d%3D%22M17%209v6m-2.455-6v6M7%2014.32V9.68c0-.494.509-.803.918-.558l3.877%202.32c.191.115.31.328.31.559%200%20.23-.119.443-.31.558l-3.877%202.32a.59.59%200%200%201-.613-.002.65.65%200%200%201-.305-.556h0ZM12%2021a9%209%200%201%200%200-18%209%209%200%200%200%200%2018Z%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-play-pause-circle);-webkit-mask:var(--icon-play-pause-circle);-webkit-mask:var(--icon-play-pause-circle);mask:var(--icon-play-pause-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-plus-circle{--icon-plus-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M12%209v6m3-3H9m12%200a9%209%200%2011-18%200%209%209%200%200118%200z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-plus-circle);-webkit-mask:var(--icon-plus-circle);-webkit-mask:var(--icon-plus-circle);mask:var(--icon-plus-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-power{--icon-power:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M5.636%205.636a9%209%200%201%200%2012.728%200M12%203v9%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-power);-webkit-mask:var(--icon-power);-webkit-mask:var(--icon-power);mask:var(--icon-power);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-question-mark-circle{--icon-question-mark-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20class%3D%22size-6%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M9.879%207.519c1.171-1.025%203.071-1.025%204.242%200%201.172%201.025%201.172%202.687%200%203.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45%201.827v.75M21%2012a9%209%200%201%201-18%200%209%209%200%200%201%2018%200Zm-9%205.25h.008v.008H12v-.008Z%22%20%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-question-mark-circle);-webkit-mask:var(--icon-question-mark-circle);-webkit-mask:var(--icon-question-mark-circle);mask:var(--icon-question-mark-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-queue-list{--icon-queue-list:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20class%3D%22size-6%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M3.75%2012h16.5m-16.5%203.75h16.5M3.75%2019.5h16.5M5.625%204.5h12.75a1.875%201.875%200%200%201%200%203.75H5.625a1.875%201.875%200%200%201%200-3.75Z%22%20%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-queue-list);-webkit-mask:var(--icon-queue-list);-webkit-mask:var(--icon-queue-list);mask:var(--icon-queue-list);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-rectangle-group{--icon-rectangle-group:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M2.25%207.125C2.25%206.504%202.754%206%203.375%206h6c.621%200%201.125.504%201.125%201.125v3.75c0%20.621-.504%201.125-1.125%201.125h-6a1.125%201.125%200%2001-1.125-1.125v-3.75zM14.25%208.625c0-.621.504-1.125%201.125-1.125h5.25c.621%200%201.125.504%201.125%201.125v8.25c0%20.621-.504%201.125-1.125%201.125h-5.25a1.125%201.125%200%2001-1.125-1.125v-8.25zM3.75%2016.125c0-.621.504-1.125%201.125-1.125h5.25c.621%200%201.125.504%201.125%201.125v2.25c0%20.621-.504%201.125-1.125%201.125h-5.25a1.125%201.125%200%2001-1.125-1.125v-2.25z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-rectangle-group);-webkit-mask:var(--icon-rectangle-group);-webkit-mask:var(--icon-rectangle-group);mask:var(--icon-rectangle-group);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-signal{--icon-signal:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20class%3D%22size-6%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M9.348%2014.652a3.75%203.75%200%200%201%200-5.304m5.304%200a3.75%203.75%200%200%201%200%205.304m-7.425%202.121a6.75%206.75%200%200%201%200-9.546m9.546%200a6.75%206.75%200%200%201%200%209.546M5.106%2018.894c-3.808-3.807-3.808-9.98%200-13.788m13.788%200c3.808%203.807%203.808%209.98%200%2013.788M12%2012h.008v.008H12V12Zm.375%200a.375.375%200%201%201-.75%200%20.375.375%200%200%201%20.75%200Z%22%20%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-signal);-webkit-mask:var(--icon-signal);-webkit-mask:var(--icon-signal);mask:var(--icon-signal);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-sparkles{--icon-sparkles:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M9.813%2015.904%209%2018.75l-.813-2.846a4.5%204.5%200%200%200-3.09-3.09L2.25%2012l2.846-.813a4.5%204.5%200%200%200%203.09-3.09L9%205.25l.813%202.846a4.5%204.5%200%200%200%203.09%203.09L15.75%2012l-2.846.813a4.5%204.5%200%200%200-3.09%203.09ZM18.259%208.715%2018%209.75l-.259-1.035a3.375%203.375%200%200%200-2.455-2.456L14.25%206l1.036-.259a3.375%203.375%200%200%200%202.455-2.456L18%202.25l.259%201.035a3.375%203.375%200%200%200%202.456%202.456L21.75%206l-1.035.259a3.375%203.375%200%200%200-2.456%202.456ZM16.894%2020.567%2016.5%2021.75l-.394-1.183a2.25%202.25%200%200%200-1.423-1.423L13.5%2018.75l1.183-.394a2.25%202.25%200%200%200%201.423-1.423l.394-1.183.394%201.183a2.25%202.25%200%200%200%201.423%201.423l1.183.394-1.183.394a2.25%202.25%200%200%200-1.423%201.423Z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-sparkles);-webkit-mask:var(--icon-sparkles);-webkit-mask:var(--icon-sparkles);mask:var(--icon-sparkles);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-square-2x2{--icon-square-2x2:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M3.75%206A2.25%202.25%200%20016%203.75h2.25A2.25%202.25%200%200110.5%206v2.25a2.25%202.25%200%2001-2.25%202.25H6a2.25%202.25%200%2001-2.25-2.25V6zM3.75%2015.75A2.25%202.25%200%20016%2013.5h2.25a2.25%202.25%200%20012.25%202.25V18a2.25%202.25%200%2001-2.25%202.25H6A2.25%202.25%200%20013.75%2018v-2.25zM13.5%206a2.25%202.25%200%20012.25-2.25H18A2.25%202.25%200%200120.25%206v2.25A2.25%202.25%200%200118%2010.5h-2.25a2.25%202.25%200%2001-2.25-2.25V6zM13.5%2015.75a2.25%202.25%200%20012.25-2.25H18a2.25%202.25%200%20012.25%202.25V18A2.25%202.25%200%200118%2020.25h-2.25A2.25%202.25%200%200113.5%2018v-2.25z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-square-2x2);-webkit-mask:var(--icon-square-2x2);-webkit-mask:var(--icon-square-2x2);mask:var(--icon-square-2x2);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-sun{--icon-sun:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M12%203v2.25m6.364.386l-1.591%201.591M21%2012h-2.25m-.386%206.364l-1.591-1.591M12%2018.75V21m-4.773-4.227l-1.591%201.591M5.25%2012H3m4.227-4.773L5.636%205.636M15.75%2012a3.75%203.75%200%2011-7.5%200%203.75%203.75%200%20017.5%200z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-sun);-webkit-mask:var(--icon-sun);-webkit-mask:var(--icon-sun);mask:var(--icon-sun);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-table-cells{--icon-table-cells:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M3.375%2019.5h17.25m-17.25%200a1.125%201.125%200%2001-1.125-1.125M3.375%2019.5h7.5c.621%200%201.125-.504%201.125-1.125m-9.75%200V5.625m0%2012.75v-1.5c0-.621.504-1.125%201.125-1.125m18.375%202.625V5.625m0%2012.75c0%20.621-.504%201.125-1.125%201.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0%203.75h-7.5A1.125%201.125%200%200112%2018.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621%200-1.125.504-1.125%201.125m19.5%200v1.5c0%20.621-.504%201.125-1.125%201.125M2.25%205.625v1.5c0%20.621.504%201.125%201.125%201.125m0%200h17.25m-17.25%200h7.5c.621%200%201.125.504%201.125%201.125M3.375%208.25c-.621%200-1.125.504-1.125%201.125v1.5c0%20.621.504%201.125%201.125%201.125m17.25-3.75h-7.5c-.621%200-1.125.504-1.125%201.125m8.625-1.125c.621%200%201.125.504%201.125%201.125v1.5c0%20.621-.504%201.125-1.125%201.125m-17.25%200h7.5m-7.5%200c-.621%200-1.125.504-1.125%201.125v1.5c0%20.621.504%201.125%201.125%201.125M12%2010.875v-1.5m0%201.5c0%20.621-.504%201.125-1.125%201.125M12%2010.875c0%20.621.504%201.125%201.125%201.125m-2.25%200c.621%200%201.125.504%201.125%201.125M13.125%2012h7.5m-7.5%200c-.621%200-1.125.504-1.125%201.125M20.625%2012c.621%200%201.125.504%201.125%201.125v1.5c0%20.621-.504%201.125-1.125%201.125m-17.25%200h7.5M12%2014.625v-1.5m0%201.5c0%20.621-.504%201.125-1.125%201.125M12%2014.625c0%20.621.504%201.125%201.125%201.125m-2.25%200c.621%200%201.125.504%201.125%201.125m0%201.5v-1.5m0%200c0-.621.504-1.125%201.125-1.125m0%200h7.5%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-table-cells);-webkit-mask:var(--icon-table-cells);-webkit-mask:var(--icon-table-cells);mask:var(--icon-table-cells);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-trash{--icon-trash:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M14.74%209l-.346%209m-4.788%200L9.26%209m9.968-3.21c.342.052.682.107%201.022.166m-1.022-.165L18.16%2019.673a2.25%202.25%200%2001-2.244%202.077H8.084a2.25%202.25%200%2001-2.244-2.077L4.772%205.79m14.456%200a48.108%2048.108%200%2000-3.478-.397m-12%20.562c.34-.059.68-.114%201.022-.165m0%200a48.11%2048.11%200%20013.478-.397m7.5%200v-.916c0-1.18-.91-2.164-2.09-2.201a51.964%2051.964%200%2000-3.32%200c-1.18.037-2.09%201.022-2.09%202.201v.916m7.5%200a48.667%2048.667%200%2000-7.5%200%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-trash);-webkit-mask:var(--icon-trash);-webkit-mask:var(--icon-trash);mask:var(--icon-trash);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-user-group{--icon-user-group:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20class%3D%22size-6%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M18%2018.72a9.094%209.094%200%200%200%203.741-.479%203%203%200%200%200-4.682-2.72m.94%203.198.001.031c0%20.225-.012.447-.037.666A11.944%2011.944%200%200%201%2012%2021c-2.17%200-4.207-.576-5.963-1.584A6.062%206.062%200%200%201%206%2018.719m12%200a5.971%205.971%200%200%200-.941-3.197m0%200A5.995%205.995%200%200%200%2012%2012.75a5.995%205.995%200%200%200-5.058%202.772m0%200a3%203%200%200%200-4.681%202.72%208.986%208.986%200%200%200%203.74.477m.94-3.197a5.971%205.971%200%200%200-.94%203.197M15%206.75a3%203%200%201%201-6%200%203%203%200%200%201%206%200Zm6%203a2.25%202.25%200%201%201-4.5%200%202.25%202.25%200%200%201%204.5%200Zm-13.5%200a2.25%202.25%200%201%201-4.5%200%202.25%202.25%200%200%201%204.5%200Z%22%20%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-user-group);-webkit-mask:var(--icon-user-group);-webkit-mask:var(--icon-user-group);mask:var(--icon-user-group);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-view-columns{--icon-view-columns:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20class%3D%22size-6%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M9%204.5v15m6-15v15m-10.875%200h15.75c.621%200%201.125-.504%201.125-1.125V5.625c0-.621-.504-1.125-1.125-1.125H4.125C3.504%204.5%203%205.004%203%205.625v12.75c0%20.621.504%201.125%201.125%201.125Z%22%20%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-view-columns);-webkit-mask:var(--icon-view-columns);-webkit-mask:var(--icon-view-columns);mask:var(--icon-view-columns);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-x-circle{--icon-x-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M9.75%209.75l4.5%204.5m0-4.5l-4.5%204.5M21%2012a9%209%200%2011-18%200%209%209%200%200118%200z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-x-circle);-webkit-mask:var(--icon-x-circle);-webkit-mask:var(--icon-x-circle);mask:var(--icon-x-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-x-mark{--icon-x-mark:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M6%2018L18%206M6%206l12%2012%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-x-mark);-webkit-mask:var(--icon-x-mark);-webkit-mask:var(--icon-x-mark);mask:var(--icon-x-mark);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-48{height:calc(var(--spacing)*48)}.h-64{height:calc(var(--spacing)*64)}.h-96{height:var(--spacing-96)}.h-full{height:100%}.max-h-64{max-height:calc(var(--spacing)*64)}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0{width:calc(var(--spacing)*0)}.w-1{width:calc(var(--spacing)*1)}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-1\/4{width:25%}.w-2{width:calc(var(--spacing)*2)}.w-3{width:calc(var(--spacing)*3)}.w-3xs{width:var(--container-3xs)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-11{width:calc(var(--spacing)*11)}.w-12{width:calc(var(--spacing)*12)}.w-14{width:calc(var(--spacing)*14)}.w-16{width:calc(var(--spacing)*16)}.w-18{width:calc(var(--spacing)*18)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-28{width:calc(var(--spacing)*28)}.w-32{width:calc(var(--spacing)*32)}.w-42{width:calc(var(--spacing)*42)}.w-44{width:calc(var(--spacing)*44)}.w-48{width:calc(var(--spacing)*48)}.w-56{width:calc(var(--spacing)*56)}.w-64{width:calc(var(--spacing)*64)}.w-80{width:calc(var(--spacing)*80)}.w-full{width:100%}.w-lg{width:var(--container-lg)}.w-screen{width:100vw}.max-w-0{max-width:calc(var(--spacing)*0)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.min-w-\[4rem\]{min-width:4rem}.min-w-\[10rem\]{min-width:10rem}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.table-fixed{table-layout:fixed}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-5{--tw-translate-x:calc(var(--spacing)*5);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-4{--tw-translate-y:calc(var(--spacing)*4);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-px{--tw-translate-y:1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing)*2)}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*1)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-1\.5>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*3)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-6>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*6)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-3{row-gap:calc(var(--spacing)*3)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-y-auto{overflow-y:auto}.overflow-y-scroll{overflow-y:scroll}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-s-md{border-start-start-radius:var(--radius-md);border-end-start-radius:var(--radius-md)}.rounded-e-md{border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md)}.rounded-l-md{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-none{--tw-border-style:none;border-style:none}.border-blue-400{border-color:var(--color-blue-400)}.border-blue-500{border-color:var(--color-blue-500)}.border-cyan-400{border-color:var(--color-cyan-400)}.border-emerald-400{border-color:var(--color-emerald-400)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400{border-color:var(--color-gray-400)}.border-gray-600{border-color:var(--color-gray-600)}.border-indigo-400{border-color:var(--color-indigo-400)}.border-rose-400{border-color:var(--color-rose-400)}.border-transparent{border-color:#0000}.border-violet-400{border-color:var(--color-violet-400)}.border-violet-500{border-color:var(--color-violet-500)}.border-yellow-200{border-color:var(--color-yellow-200)}.border-yellow-400{border-color:var(--color-yellow-400)}.border-yellow-700{border-color:var(--color-yellow-700)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-100\/30{background-color:#dbeafe4d}@supports (color:color-mix(in lab, red, red)){.bg-blue-100\/30{background-color:color-mix(in oklab,var(--color-blue-100)30%,transparent)}}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-400\/10{background-color:#54a2ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-400\/10{background-color:color-mix(in oklab,var(--color-blue-400)10%,transparent)}}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-900{background-color:var(--color-blue-900)}.bg-cyan-400{background-color:var(--color-cyan-400)}.bg-cyan-400\/10{background-color:#00d2ef1a}@supports (color:color-mix(in lab, red, red)){.bg-cyan-400\/10{background-color:color-mix(in oklab,var(--color-cyan-400)10%,transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-400\/10{background-color:#00d2941a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-400\/10{background-color:color-mix(in oklab,var(--color-emerald-400)10%,transparent)}}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-400\/10{background-color:#99a1af1a}@supports (color:color-mix(in lab, red, red)){.bg-gray-400\/10{background-color:color-mix(in oklab,var(--color-gray-400)10%,transparent)}}.bg-gray-800{background-color:var(--color-gray-800)}.bg-indigo-400{background-color:var(--color-indigo-400)}.bg-indigo-400\/10{background-color:#7d87ff1a}@supports (color:color-mix(in lab, red, red)){.bg-indigo-400\/10{background-color:color-mix(in oklab,var(--color-indigo-400)10%,transparent)}}.bg-red-100{background-color:var(--color-red-100)}.bg-rose-400{background-color:var(--color-rose-400)}.bg-rose-400\/10{background-color:#ff667f1a}@supports (color:color-mix(in lab, red, red)){.bg-rose-400\/10{background-color:color-mix(in oklab,var(--color-rose-400)10%,transparent)}}.bg-transparent{background-color:#0000}.bg-violet-50{background-color:var(--color-violet-50)}.bg-violet-100{background-color:var(--color-violet-100)}.bg-violet-300{background-color:var(--color-violet-300)}.bg-violet-400{background-color:var(--color-violet-400)}.bg-violet-400\/10{background-color:#a685ff1a}@supports (color:color-mix(in lab, red, red)){.bg-violet-400\/10{background-color:color-mix(in oklab,var(--color-violet-400)10%,transparent)}}.bg-violet-600{background-color:var(--color-violet-600)}.bg-white{background-color:var(--color-white)}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-400{background-color:var(--color-yellow-400)}.bg-yellow-400\/10{background-color:#fac8001a}@supports (color:color-mix(in lab, red, red)){.bg-yellow-400\/10{background-color:color-mix(in oklab,var(--color-yellow-400)10%,transparent)}}.bg-yellow-900\/80{background-color:#733e0acc}@supports (color:color-mix(in lab, red, red)){.bg-yellow-900\/80{background-color:color-mix(in oklab,var(--color-yellow-900)80%,transparent)}}.bg-zinc-50\/80{background-color:#fafafacc}@supports (color:color-mix(in lab, red, red)){.bg-zinc-50\/80{background-color:color-mix(in oklab,var(--color-zinc-50)80%,transparent)}}.\[mask-image\:linear-gradient\(to_right\,black_60\%\,transparent_100\%\)\]{-webkit-mask-image:linear-gradient(90deg,#000 60%,#0000 100%);mask-image:linear-gradient(90deg,#000 60%,#0000 100%)}.fill-violet-500{fill:var(--color-violet-500)}.stroke-gray-300{stroke:var(--color-gray-300)}.stroke-gray-400{stroke:var(--color-gray-400)}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-3\.5{padding-block:calc(var(--spacing)*3.5)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-6{padding-block:calc(var(--spacing)*6)}.py-12{padding-block:calc(var(--spacing)*12)}.py-16{padding-block:calc(var(--spacing)*16)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-6{padding-top:calc(var(--spacing)*6)}.pr-0\.5{padding-right:calc(var(--spacing)*.5)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-1\.5{padding-right:calc(var(--spacing)*1.5)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-2\.5{padding-right:calc(var(--spacing)*2.5)}.pr-3{padding-right:calc(var(--spacing)*3)}.pr-4{padding-right:calc(var(--spacing)*4)}.pr-6{padding-right:calc(var(--spacing)*6)}.pr-12{padding-right:calc(var(--spacing)*12)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pl-0\.5{padding-left:calc(var(--spacing)*.5)}.pl-1\.5{padding-left:calc(var(--spacing)*1.5)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-2\.5{padding-left:calc(var(--spacing)*2.5)}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-5{padding-left:calc(var(--spacing)*5)}.pl-10{padding-left:calc(var(--spacing)*10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-700{color:var(--color-amber-700)}.text-blue-400{color:var(--color-blue-400)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-cyan-400{color:var(--color-cyan-400)}.text-cyan-600{color:var(--color-cyan-600)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-600{color:var(--color-emerald-600)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-800\/70{color:#1e2939b3}@supports (color:color-mix(in lab, red, red)){.text-gray-800\/70{color:color-mix(in oklab,var(--color-gray-800)70%,transparent)}}.text-gray-900{color:var(--color-gray-900)}.text-gray-950{color:var(--color-gray-950)}.text-green-400{color:var(--color-green-400)}.text-indigo-600{color:var(--color-indigo-600)}.text-red-500{color:var(--color-red-500)}.text-red-700{color:var(--color-red-700)}.text-rose-400{color:var(--color-rose-400)}.text-rose-500{color:var(--color-rose-500)}.text-rose-600{color:var(--color-rose-600)}.text-sky-900{color:var(--color-sky-900)}.text-violet-400{color:var(--color-violet-400)}.text-violet-500{color:var(--color-violet-500)}.text-violet-600{color:var(--color-violet-600)}.text-violet-700{color:var(--color-violet-700)}.text-violet-950{color:var(--color-violet-950)}.text-white{color:var(--color-white)}.text-yellow-200{color:var(--color-yellow-200)}.text-yellow-400{color:var(--color-yellow-400)}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-600{color:var(--color-yellow-600)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-gray-400::placeholder{color:var(--color-gray-400)}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-blue-100{--tw-shadow-color:color-mix(in srgb,oklch(93.2% .032 255.585) var(--tw-shadow-alpha),transparent)}@supports (color:color-mix(in lab, red, red)){.shadow-blue-100{--tw-shadow-color:color-mix(in oklab,var(--color-blue-100)var(--tw-shadow-alpha),transparent)}}.ring-black\/5{--tw-ring-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.ring-black\/5{--tw-ring-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.ring-blue-500{--tw-ring-color:var(--color-blue-500)}.ring-gray-300{--tw-ring-color:var(--color-gray-300)}.ring-gray-400{--tw-ring-color:var(--color-gray-400)}.ring-violet-200{--tw-ring-color:var(--color-violet-200)}.ring-zinc-300{--tw-ring-color:var(--color-zinc-300)}.ring-zinc-700\/10{--tw-ring-color:#3f3f461a}@supports (color:color-mix(in lab, red, red)){.ring-zinc-700\/10{--tw-ring-color:color-mix(in oklab,var(--color-zinc-700)10%,transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.drop-shadow-md\/30{--tw-drop-shadow-alpha:30%;--tw-drop-shadow-size:drop-shadow(0 3px 3px var(--tw-drop-shadow-color,oklab(0% 0 0/.3)));--tw-drop-shadow:var(--tw-drop-shadow-size);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.saturate-40{--tw-saturate:saturate(40%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.group-hover\:ml-1\.5:is(:where(.group):hover *){margin-left:calc(var(--spacing)*1.5)}.group-hover\:w-20:is(:where(.group):hover *){width:calc(var(--spacing)*20)}.group-hover\:max-w-24:is(:where(.group):hover *){max-width:calc(var(--spacing)*24)}.group-hover\:bg-gray-400:is(:where(.group):hover *){background-color:var(--color-gray-400)}.group-hover\:bg-violet-500:is(:where(.group):hover *){background-color:var(--color-violet-500)}.group-hover\:\[mask-image\:none\]:is(:where(.group):hover *){-webkit-mask-image:none;mask-image:none}.group-hover\:pr-3:is(:where(.group):hover *){padding-right:calc(var(--spacing)*3)}.group-hover\:pr-4:is(:where(.group):hover *){padding-right:calc(var(--spacing)*4)}.group-hover\:text-blue-500:is(:where(.group):hover *){color:var(--color-blue-500)}.group-hover\:text-gray-600:is(:where(.group):hover *){color:var(--color-gray-600)}.group-hover\:text-red-500:is(:where(.group):hover *){color:var(--color-red-500)}.group-hover\:text-red-600:is(:where(.group):hover *){color:var(--color-red-600)}.group-hover\:text-violet-500:is(:where(.group):hover *){color:var(--color-violet-500)}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}.group-hover\:text-yellow-500:is(:where(.group):hover *){color:var(--color-yellow-500)}.group-hover\:underline:is(:where(.group):hover *){text-decoration-line:underline}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-has-\[\:disabled\]\:cursor-not-allowed:is(:where(.group):has(:disabled) *){cursor:not-allowed}.group-has-\[\:disabled\]\:opacity-50:is(:where(.group):has(:disabled) *){opacity:.5}.peer-checked\:block:is(:where(.peer):checked~*){display:block}.peer-checked\:border-blue-500:is(:where(.peer):checked~*){border-color:var(--color-blue-500)}.peer-checked\:bg-blue-500:is(:where(.peer):checked~*){background-color:var(--color-blue-500)}@media (hover:hover){.hover\:border-blue-600:hover{border-color:var(--color-blue-600)}.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:border-red-600:hover{border-color:var(--color-red-600)}.hover\:border-violet-400:hover{border-color:var(--color-violet-400)}.hover\:border-violet-500:hover{border-color:var(--color-violet-500)}.hover\:border-violet-600:hover{border-color:var(--color-violet-600)}.hover\:border-yellow-600:hover{border-color:var(--color-yellow-600)}.hover\:bg-black\/5:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-black\/5:hover{background-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.hover\:bg-blue-100:hover{background-color:var(--color-blue-100)}.hover\:bg-blue-500:hover{background-color:var(--color-blue-500)}.hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-violet-400:hover{background-color:var(--color-violet-400)}.hover\:bg-violet-500:hover{background-color:var(--color-violet-500)}.hover\:bg-violet-700:hover{background-color:var(--color-violet-700)}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:text-blue-500:hover{color:var(--color-blue-500)}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:text-gray-100:hover{color:var(--color-gray-100)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-800:hover{color:var(--color-gray-800)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-gray-950:hover{color:var(--color-gray-950)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:text-violet-500:hover{color:var(--color-violet-500)}.hover\:text-white:hover{color:var(--color-white)}.hover\:text-yellow-500:hover{color:var(--color-yellow-500)}.hover\:text-yellow-600:hover{color:var(--color-yellow-600)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-blue-400:focus{border-color:var(--color-blue-400)}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:border-violet-200:focus{border-color:var(--color-violet-200)}.focus\:border-violet-500:focus{border-color:var(--color-violet-500)}.focus\:text-gray-500:focus{color:var(--color-gray-500)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-blue-400:focus{--tw-ring-color:var(--color-blue-400)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-blue-500:focus-visible{border-color:var(--color-blue-500)}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-blue-500:focus-visible{--tw-ring-color:var(--color-blue-500)}.focus-visible\:ring-gray-500:focus-visible{--tw-ring-color:var(--color-gray-500)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:text-gray-400:disabled{color:var(--color-gray-400)}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:40rem){.sm\:inline{display:inline}.sm\:h-12{height:calc(var(--spacing)*12)}.sm\:translate-y-0{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.sm\:scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.sm\:scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2{gap:calc(var(--spacing)*2)}.sm\:gap-x-4{column-gap:calc(var(--spacing)*4)}.sm\:gap-y-5{row-gap:calc(var(--spacing)*5)}.sm\:p-4{padding:calc(var(--spacing)*4)}.sm\:p-6{padding:calc(var(--spacing)*6)}.sm\:px-3{padding-inline:calc(var(--spacing)*3)}}@media (min-width:48rem){.md\:mr-3{margin-right:calc(var(--spacing)*3)}.md\:mb-0{margin-bottom:calc(var(--spacing)*0)}.md\:block{display:block}.md\:flex{display:flex}.md\:w-84{width:var(--spacing-84)}.md\:flex-row{flex-direction:row}.md\:px-4{padding-inline:calc(var(--spacing)*4)}.md\:py-3{padding-block:calc(var(--spacing)*3)}}@media (min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:gap-x-8{column-gap:calc(var(--spacing)*8)}}:where(.dark\:divide-gray-700:where(.dark,.dark *)>:not(:last-child)){border-color:var(--color-gray-700)}:where(.dark\:divide-gray-800:where(.dark,.dark *)>:not(:last-child)){border-color:var(--color-gray-800)}:where(.dark\:divide-gray-900:where(.dark,.dark *)>:not(:last-child)){border-color:var(--color-gray-900)}.dark\:border-gray-600:where(.dark,.dark *){border-color:var(--color-gray-600)}.dark\:border-gray-700:where(.dark,.dark *){border-color:var(--color-gray-700)}.dark\:border-gray-800:where(.dark,.dark *){border-color:var(--color-gray-800)}.dark\:bg-amber-900\/50:where(.dark,.dark *){background-color:#7b330680}@supports (color:color-mix(in lab, red, red)){.dark\:bg-amber-900\/50:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-amber-900)50%,transparent)}}.dark\:bg-black:where(.dark,.dark *){background-color:var(--color-black)}.dark\:bg-blue-900\/30:where(.dark,.dark *){background-color:#1c398e4d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-blue-900\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-blue-900)30%,transparent)}}.dark\:bg-blue-950:where(.dark,.dark *){background-color:var(--color-blue-950)}.dark\:bg-gray-600:where(.dark,.dark *){background-color:var(--color-gray-600)}.dark\:bg-gray-700:where(.dark,.dark *){background-color:var(--color-gray-700)}.dark\:bg-gray-800:where(.dark,.dark *){background-color:var(--color-gray-800)}.dark\:bg-gray-900:where(.dark,.dark *){background-color:var(--color-gray-900)}.dark\:bg-gray-950:where(.dark,.dark *){background-color:var(--color-gray-950)}.dark\:bg-red-900\/50:where(.dark,.dark *){background-color:#82181a80}@supports (color:color-mix(in lab, red, red)){.dark\:bg-red-900\/50:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-red-900)50%,transparent)}}.dark\:bg-transparent:where(.dark,.dark *){background-color:#0000}.dark\:bg-violet-300:where(.dark,.dark *){background-color:var(--color-violet-300)}.dark\:bg-violet-700\/70:where(.dark,.dark *){background-color:#7008e7b3}@supports (color:color-mix(in lab, red, red)){.dark\:bg-violet-700\/70:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-violet-700)70%,transparent)}}.dark\:bg-violet-900\/30:where(.dark,.dark *){background-color:#4d179a4d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-violet-900\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-violet-900)30%,transparent)}}.dark\:bg-violet-900\/50:where(.dark,.dark *){background-color:#4d179a80}@supports (color:color-mix(in lab, red, red)){.dark\:bg-violet-900\/50:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-violet-900)50%,transparent)}}.dark\:bg-violet-950\/30:where(.dark,.dark *){background-color:#2f0d684d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-violet-950\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-violet-950)30%,transparent)}}.dark\:bg-yellow-900\/50:where(.dark,.dark *){background-color:#733e0a80}@supports (color:color-mix(in lab, red, red)){.dark\:bg-yellow-900\/50:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-yellow-900)50%,transparent)}}.dark\:bg-zinc-950\/80:where(.dark,.dark *){background-color:#09090bcc}@supports (color:color-mix(in lab, red, red)){.dark\:bg-zinc-950\/80:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-zinc-950)80%,transparent)}}.dark\:fill-gray-700:where(.dark,.dark *){fill:var(--color-gray-700)}.dark\:stroke-gray-500:where(.dark,.dark *){stroke:var(--color-gray-500)}.dark\:stroke-gray-600:where(.dark,.dark *){stroke:var(--color-gray-600)}.dark\:text-amber-300:where(.dark,.dark *){color:var(--color-amber-300)}.dark\:text-blue-400:where(.dark,.dark *){color:var(--color-blue-400)}.dark\:text-cyan-400:where(.dark,.dark *){color:var(--color-cyan-400)}.dark\:text-emerald-400:where(.dark,.dark *){color:var(--color-emerald-400)}.dark\:text-gray-100:where(.dark,.dark *){color:var(--color-gray-100)}.dark\:text-gray-200:where(.dark,.dark *){color:var(--color-gray-200)}.dark\:text-gray-300:where(.dark,.dark *){color:var(--color-gray-300)}.dark\:text-gray-400:where(.dark,.dark *){color:var(--color-gray-400)}.dark\:text-gray-500:where(.dark,.dark *){color:var(--color-gray-500)}.dark\:text-gray-600:where(.dark,.dark *){color:var(--color-gray-600)}.dark\:text-gray-900:where(.dark,.dark *){color:var(--color-gray-900)}.dark\:text-indigo-400:where(.dark,.dark *){color:var(--color-indigo-400)}.dark\:text-red-300:where(.dark,.dark *){color:var(--color-red-300)}.dark\:text-rose-400:where(.dark,.dark *){color:var(--color-rose-400)}.dark\:text-sky-300:where(.dark,.dark *){color:var(--color-sky-300)}.dark\:text-violet-50:where(.dark,.dark *){color:var(--color-violet-50)}.dark\:text-violet-200:where(.dark,.dark *){color:var(--color-violet-200)}.dark\:text-violet-300:where(.dark,.dark *){color:var(--color-violet-300)}.dark\:text-violet-400:where(.dark,.dark *){color:var(--color-violet-400)}.dark\:text-violet-950:where(.dark,.dark *){color:var(--color-violet-950)}.dark\:text-yellow-300:where(.dark,.dark *){color:var(--color-yellow-300)}.dark\:text-yellow-400:where(.dark,.dark *){color:var(--color-yellow-400)}.dark\:placeholder-gray-500:where(.dark,.dark *)::placeholder{color:var(--color-gray-500)}.dark\:shadow-blue-950:where(.dark,.dark *){--tw-shadow-color:color-mix(in srgb,oklch(28.2% .091 267.935) var(--tw-shadow-alpha),transparent)}@supports (color:color-mix(in lab, red, red)){.dark\:shadow-blue-950:where(.dark,.dark *){--tw-shadow-color:color-mix(in oklab,var(--color-blue-950)var(--tw-shadow-alpha),transparent)}}.dark\:ring-blue-700:where(.dark,.dark *){--tw-ring-color:var(--color-blue-700)}.dark\:ring-gray-700:where(.dark,.dark *){--tw-ring-color:var(--color-gray-700)}.dark\:ring-violet-800:where(.dark,.dark *){--tw-ring-color:var(--color-violet-800)}@media (hover:hover){.dark\:group-hover\:bg-gray-600:where(.dark,.dark *):is(:where(.group):hover *){background-color:var(--color-gray-600)}.dark\:group-hover\:text-gray-100:where(.dark,.dark *):is(:where(.group):hover *){color:var(--color-gray-100)}.dark\:hover\:bg-blue-500:where(.dark,.dark *):hover{background-color:var(--color-blue-500)}.dark\:hover\:bg-blue-900:where(.dark,.dark *):hover{background-color:var(--color-blue-900)}.dark\:hover\:bg-gray-700:where(.dark,.dark *):hover{background-color:var(--color-gray-700)}.dark\:hover\:bg-gray-700\/50:where(.dark,.dark *):hover{background-color:#36415380}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-gray-700\/50:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-gray-700)50%,transparent)}}.dark\:hover\:bg-gray-800:where(.dark,.dark *):hover{background-color:var(--color-gray-800)}.dark\:hover\:bg-gray-950:where(.dark,.dark *):hover{background-color:var(--color-gray-950)}.dark\:hover\:bg-gray-950\/30:where(.dark,.dark *):hover{background-color:#0307124d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-gray-950\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-gray-950)30%,transparent)}}.dark\:hover\:bg-violet-500:where(.dark,.dark *):hover{background-color:var(--color-violet-500)}.dark\:hover\:bg-white\/5:where(.dark,.dark *):hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-white\/5:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.dark\:hover\:bg-white\/20:where(.dark,.dark *):hover{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-white\/20:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.hover\:dark\:bg-gray-600\/30:hover:where(.dark,.dark *){background-color:#4a55654d}@supports (color:color-mix(in lab, red, red)){.hover\:dark\:bg-gray-600\/30:hover:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-gray-600)30%,transparent)}}.dark\:hover\:text-blue-300:where(.dark,.dark *):hover{color:var(--color-blue-300)}.dark\:hover\:text-gray-100:where(.dark,.dark *):hover{color:var(--color-gray-100)}.dark\:hover\:text-gray-200:where(.dark,.dark *):hover{color:var(--color-gray-200)}.dark\:hover\:text-gray-300:where(.dark,.dark *):hover{color:var(--color-gray-300)}.dark\:hover\:text-violet-300:where(.dark,.dark *):hover{color:var(--color-violet-300)}.dark\:hover\:text-violet-500:where(.dark,.dark *):hover{color:var(--color-violet-500)}.dark\:hover\:text-white:where(.dark,.dark *):hover{color:var(--color-white)}.dark\:hover\:text-yellow-500:where(.dark,.dark *):hover{color:var(--color-yellow-500)}}.dark\:focus\:ring-blue-500:where(.dark,.dark *):focus{--tw-ring-color:var(--color-blue-500)}.disabled\:dark\:text-gray-500:disabled:where(.dark,.dark *){color:var(--color-gray-500)}}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes pulse{50%{opacity:.5}} \ No newline at end of file +@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){@layer base{*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:rotateX(0);--tw-rotate-y:rotateY(0);--tw-rotate-z:rotateZ(0);--tw-skew-x:skewX(0);--tw-skew-y:skewY(0);--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@font-face{font-display:swap;font-family:Inter var;font-style:normal;font-weight:100 900;font-named-instance:"Regular";src:url(fonts/inter.woff2)format("woff2")}.tabular{font-variant-numeric:slashed-zero tabular-nums}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}select:-moz-focusring{color:#0000;text-shadow:0 0 #000}.tippy-box{background-color:var(--color-gray-800);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);color:var(--color-gray-200);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-outline-style:none;border-radius:.25rem;outline-style:none;transition-property:transform,visibility,opacity;position:relative}.tippy-box:where(.dark,.dark *){background-color:var(--color-gray-200);color:var(--color-gray-800)}.tippy-box[data-placement^=top]>.tippy-svg-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-svg-arrow:after,.tippy-box[data-placement^=top]>.tippy-svg-arrow>svg{top:16px;transform:rotate(180deg)}.tippy-box[data-placement^=bottom]>.tippy-svg-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-svg-arrow>svg{bottom:16px}.tippy-box[data-placement^=left]>.tippy-svg-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-svg-arrow:after,.tippy-box[data-placement^=left]>.tippy-svg-arrow>svg{top:calc(50% - 3px);left:11px;transform:rotate(90deg)}.tippy-box[data-placement^=right]>.tippy-svg-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-svg-arrow:after,.tippy-box[data-placement^=right]>.tippy-svg-arrow>svg{top:calc(50% - 3px);right:11px;transform:rotate(-90deg)}.tippy-svg-arrow{height:calc(var(--spacing)*4);width:calc(var(--spacing)*4);fill:currentColor;color:var(--color-gray-800);text-align:initial}.tippy-svg-arrow:where(.dark,.dark *){color:var(--color-gray-200)}.tippy-svg-arrow,.tippy-svg-arrow>svg{position:absolute}.tippy-content{z-index:10;padding-inline:calc(var(--spacing)*3);padding-block:calc(var(--spacing)*2);position:relative}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-100:oklch(93.6% .032 17.717);--color-red-300:oklch(80.8% .114 19.571);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-400:oklch(79.2% .209 151.711);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-600:oklch(59.6% .145 163.225);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-600:oklch(60.9% .126 221.723);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-900:oklch(39.1% .09 240.876);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-blue-950:oklch(28.2% .091 267.935);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-600:oklch(51.1% .262 276.966);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-violet-800:oklch(43.2% .232 292.759);--color-violet-900:oklch(38% .189 293.745);--color-violet-950:oklch(28.3% .141 291.089);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-gray-950:oklch(13% .028 261.692);--color-zinc-50:oklch(98.5% 0 0);--color-zinc-300:oklch(87.1% .006 286.286);--color-zinc-700:oklch(37% .013 285.805);--color-zinc-950:oklch(14.1% .005 285.823);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-3xs:16rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--radius-md:.375rem;--radius-lg:.5rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--spacing-84:21rem;--spacing-96:24rem}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:color-mix(in oklab,currentColor 50%,transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}[type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-color:oklch(55.1% .027 264.364);border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is([type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:oklch(54.6% .245 262.881);outline:2px solid #0000}input::placeholder,textarea::placeholder{color:oklch(55.1% .027 264.364);opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-date-and-time-value{text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}[multiple],[size]:where(select:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;print-color-adjust:unset;padding-right:.75rem}[type=checkbox],[type=radio]{appearance:none;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;color:oklch(54.6% .245 262.881);--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;border-color:oklch(55.1% .027 264.364);flex-shrink:0;width:1rem;height:1rem;padding:0;display:inline-block}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media (forced-colors:active){[type=checkbox]:checked{appearance:auto}}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media (forced-colors:active){[type=radio]:checked{appearance:auto}}[type=checkbox]:checked:hover,[type=checkbox]:checked:focus,[type=radio]:checked:hover,[type=radio]:checked:focus{background-color:currentColor;border-color:#0000}[type=checkbox]:indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}@media (forced-colors:active){[type=checkbox]:indeterminate{appearance:auto}}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{background-color:currentColor;border-color:#0000}[type=file]{background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}[type=file]:focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-0\.5{top:calc(var(--spacing)*.5)}.top-3{top:calc(var(--spacing)*3)}.top-4{top:calc(var(--spacing)*4)}.top-8{top:calc(var(--spacing)*8)}.top-full{top:100%}.right-0{right:calc(var(--spacing)*0)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-3{bottom:calc(var(--spacing)*3)}.left-0\.5{left:calc(var(--spacing)*.5)}.left-3{left:calc(var(--spacing)*3)}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-m-2{margin:calc(var(--spacing)*-2)}.-mx-2{margin-inline:calc(var(--spacing)*-2)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.-my-1{margin-block:calc(var(--spacing)*-1)}.my-0\.5{margin-block:calc(var(--spacing)*.5)}.my-1\.5{margin-block:calc(var(--spacing)*1.5)}.my-2{margin-block:calc(var(--spacing)*2)}.my-6{margin-block:calc(var(--spacing)*6)}.-mt-2{margin-top:calc(var(--spacing)*-2)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.-mr-2{margin-right:calc(var(--spacing)*-2)}.mr-0{margin-right:calc(var(--spacing)*0)}.mr-0\.5{margin-right:calc(var(--spacing)*.5)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-1\.5{margin-right:calc(var(--spacing)*1.5)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-1\.5{margin-left:calc(var(--spacing)*1.5)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-6{margin-left:calc(var(--spacing)*6)}.ml-12{margin-left:calc(var(--spacing)*12)}.ml-auto{margin-left:auto}.icon-arrow-left{--icon-arrow-left:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M10.5%2019.5L3%2012m0%200l7.5-7.5M3%2012h18%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-arrow-left);-webkit-mask:var(--icon-arrow-left);-webkit-mask:var(--icon-arrow-left);mask:var(--icon-arrow-left);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-arrow-path{--icon-arrow-path:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M16.023%209.348h4.992v-.001M2.985%2019.644v-4.992m0%200h4.992m-4.993%200l3.181%203.183a8.25%208.25%200%200013.803-3.7M4.031%209.865a8.25%208.25%200%200113.803-3.7l3.181%203.182m0-4.991v4.99%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-arrow-path);-webkit-mask:var(--icon-arrow-path);-webkit-mask:var(--icon-arrow-path);mask:var(--icon-arrow-path);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-arrow-path-rounded{--icon-arrow-path-rounded:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M19.5%2012c0-1.232-.046-2.453-.138-3.662a4.006%204.006%200%2000-3.7-3.7%2048.678%2048.678%200%2000-7.324%200%204.006%204.006%200%2000-3.7%203.7c-.017.22-.032.441-.046.662M19.5%2012l3-3m-3%203l-3-3m-12%203c0%201.232.046%202.453.138%203.662a4.006%204.006%200%20003.7%203.7%2048.656%2048.656%200%20007.324%200%204.006%204.006%200%20003.7-3.7c.017-.22.032-.441.046-.662M4.5%2012l3%203m-3-3l-3%203%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-arrow-path-rounded);-webkit-mask:var(--icon-arrow-path-rounded);-webkit-mask:var(--icon-arrow-path-rounded);mask:var(--icon-arrow-path-rounded);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-arrow-right{--icon-arrow-right:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M13.5%204.5%2021%2012m0%200-7.5%207.5M21%2012H3%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-arrow-right);-webkit-mask:var(--icon-arrow-right);-webkit-mask:var(--icon-arrow-right);mask:var(--icon-arrow-right);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-arrow-right-circle{--icon-arrow-right-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M12.75%2015l3-3m0%200l-3-3m3%203h-7.5M21%2012a9%209%200%2011-18%200%209%209%200%200118%200z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-arrow-right-circle);-webkit-mask:var(--icon-arrow-right-circle);-webkit-mask:var(--icon-arrow-right-circle);mask:var(--icon-arrow-right-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-arrow-top-right-on-square{--icon-arrow-top-right-on-square:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M13.5%206H5.25A2.25%202.25%200%20003%208.25v10.5A2.25%202.25%200%20005.25%2021h10.5A2.25%202.25%200%200018%2018.75V10.5m-10.5%206L21%203m0%200h-5.25M21%203v5.25%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-arrow-top-right-on-square);-webkit-mask:var(--icon-arrow-top-right-on-square);-webkit-mask:var(--icon-arrow-top-right-on-square);mask:var(--icon-arrow-top-right-on-square);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-arrow-trending-down{--icon-arrow-trending-down:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M2.25%206L9%2012.75l4.286-4.286a11.948%2011.948%200%20014.306%206.43l.776%202.898m0%200l3.182-5.511m-3.182%205.51l-5.511-3.181%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-arrow-trending-down);-webkit-mask:var(--icon-arrow-trending-down);-webkit-mask:var(--icon-arrow-trending-down);mask:var(--icon-arrow-trending-down);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-arrow-turn-down-right{--icon-arrow-turn-down-right:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20class%3D%22size-6%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22m16.49%2012%203.75%203.75m0%200-3.75%203.75m3.75-3.75H3.74V4.499%22%20%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-arrow-turn-down-right);-webkit-mask:var(--icon-arrow-turn-down-right);-webkit-mask:var(--icon-arrow-turn-down-right);mask:var(--icon-arrow-turn-down-right);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-bars-arrow-down{--icon-bars-arrow-down:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M3%204.5h14.25M3%209h9.75M3%2013.5h9.75m4.5-4.5v12m0%200l-3.75-3.75M17.25%2021L21%2017.25%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-bars-arrow-down);-webkit-mask:var(--icon-bars-arrow-down);-webkit-mask:var(--icon-bars-arrow-down);mask:var(--icon-bars-arrow-down);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-bars-arrow-up{--icon-bars-arrow-up:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M3%204.5h14.25M3%209h9.75M3%2013.5h5.25m5.25-.75L17.25%209m0%200L21%2012.75M17.25%209v12%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-bars-arrow-up);-webkit-mask:var(--icon-bars-arrow-up);-webkit-mask:var(--icon-bars-arrow-up);mask:var(--icon-bars-arrow-up);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-bolt-circle{--icon-bolt-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M13.317%206.066a.648.648%200%200%201%20.337.703l-.683%203.517h3.404c.245%200%20.467.147.568.375a.657.657%200%200%201-.096.688l-5.416%206.43a.613.613%200%200%201-.747.155.648.648%200%200%201-.338-.702l.683-3.518H7.625a.624.624%200%200%201-.568-.375.657.657%200%200%201%20.096-.688l5.416-6.43a.613.613%200%200%201%20.748-.155ZM21%2012a9%209%200%201%201-18%200%209%209%200%200%201%2018%200Z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-bolt-circle);-webkit-mask:var(--icon-bolt-circle);-webkit-mask:var(--icon-bolt-circle);mask:var(--icon-bolt-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-bolt-slash{--icon-bolt-slash:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M11.412%2015.655%209.75%2021.75l3.745-4.012M9.257%2013.5H3.75l2.659-2.849m2.048-2.194L14.25%202.25%2012%2010.5h8.25l-4.707%205.043M8.457%208.457%203%203m5.457%205.457%207.086%207.086m0%200L21%2021%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-bolt-slash);-webkit-mask:var(--icon-bolt-slash);-webkit-mask:var(--icon-bolt-slash);mask:var(--icon-bolt-slash);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-camera{--icon-camera:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M6.827%206.175A2.31%202.31%200%20015.186%207.23c-.38.054-.757.112-1.134.175C2.999%207.58%202.25%208.507%202.25%209.574V18a2.25%202.25%200%20002.25%202.25h15A2.25%202.25%200%200021.75%2018V9.574c0-1.067-.75-1.994-1.802-2.169a47.865%2047.865%200%2000-1.134-.175%202.31%202.31%200%2001-1.64-1.055l-.822-1.316a2.192%202.192%200%2000-1.736-1.039%2048.774%2048.774%200%2000-5.232%200%202.192%202.192%200%2000-1.736%201.039l-.821%201.316z%22%2F%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M16.5%2012.75a4.5%204.5%200%2011-9%200%204.5%204.5%200%20019%200zM18.75%2010.5h.008v.008h-.008V10.5z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-camera);-webkit-mask:var(--icon-camera);-webkit-mask:var(--icon-camera);mask:var(--icon-camera);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-chart-bar-square{--icon-chart-bar-square:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M7.5%2014.25v2.25m3-4.5v4.5m3-6.75v6.75m3-9v9M6%2020.25h12A2.25%202.25%200%200020.25%2018V6A2.25%202.25%200%200018%203.75H6A2.25%202.25%200%20003.75%206v12A2.25%202.25%200%20006%2020.25z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-chart-bar-square);-webkit-mask:var(--icon-chart-bar-square);-webkit-mask:var(--icon-chart-bar-square);mask:var(--icon-chart-bar-square);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-check{--icon-check:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M4.5%2012.75l6%206%209-13.5%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-check);-webkit-mask:var(--icon-check);-webkit-mask:var(--icon-check);mask:var(--icon-check);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-check-circle{--icon-check-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M9%2012.75L11.25%2015%2015%209.75M21%2012a9%209%200%2011-18%200%209%209%200%200118%200z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-check-circle);-webkit-mask:var(--icon-check-circle);-webkit-mask:var(--icon-check-circle);mask:var(--icon-check-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-chevron-left{--icon-chevron-left:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20class%3D%22size-6%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M15.75%2019.5%208.25%2012l7.5-7.5%22%20%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-chevron-left);-webkit-mask:var(--icon-chevron-left);-webkit-mask:var(--icon-chevron-left);mask:var(--icon-chevron-left);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-chevron-right{--icon-chevron-right:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M8.25%204.5l7.5%207.5-7.5%207.5%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-chevron-right);-webkit-mask:var(--icon-chevron-right);-webkit-mask:var(--icon-chevron-right);mask:var(--icon-chevron-right);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-clipboard{--icon-clipboard:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20class%3D%22size-6%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M15.666%203.888A2.25%202.25%200%200%200%2013.5%202.25h-3c-1.03%200-1.9.693-2.166%201.638m7.332%200c.055.194.084.4.084.612v0a.75.75%200%200%201-.75.75H9a.75.75%200%200%201-.75-.75v0c0-.212.03-.418.084-.612m7.332%200c.646.049%201.288.11%201.927.184%201.1.128%201.907%201.077%201.907%202.185V19.5a2.25%202.25%200%200%201-2.25%202.25H6.75A2.25%202.25%200%200%201%204.5%2019.5V6.257c0-1.108.806-2.057%201.907-2.185a48.208%2048.208%200%200%201%201.927-.184%22%20%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-clipboard);-webkit-mask:var(--icon-clipboard);-webkit-mask:var(--icon-clipboard);mask:var(--icon-clipboard);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-clock{--icon-clock:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M12%206v6h4.5m4.5%200a9%209%200%2011-18%200%209%209%200%200118%200z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-clock);-webkit-mask:var(--icon-clock);-webkit-mask:var(--icon-clock);mask:var(--icon-clock);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-command-line{--icon-command-line:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M6.75%207.5l3%202.25-3%202.25m4.5%200h3m-9%208.25h13.5A2.25%202.25%200%200021%2018V6a2.25%202.25%200%2000-2.25-2.25H5.25A2.25%202.25%200%20003%206v12a2.25%202.25%200%20002.25%202.25z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-command-line);-webkit-mask:var(--icon-command-line);-webkit-mask:var(--icon-command-line);mask:var(--icon-command-line);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-computer-desktop{--icon-computer-desktop:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M9%2017.25v1.007a3%203%200%2001-.879%202.122L7.5%2021h9l-.621-.621A3%203%200%200115%2018.257V17.25m6-12V15a2.25%202.25%200%2001-2.25%202.25H5.25A2.25%202.25%200%20013%2015V5.25m18%200A2.25%202.25%200%200018.75%203H5.25A2.25%202.25%200%20003%205.25m18%200V12a2.25%202.25%200%2001-2.25%202.25H5.25A2.25%202.25%200%20013%2012V5.25%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-computer-desktop);-webkit-mask:var(--icon-computer-desktop);-webkit-mask:var(--icon-computer-desktop);mask:var(--icon-computer-desktop);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-crossbones-circle-solid{--icon-crossbones-circle-solid:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22black%22%3E%20%20%3Cpath%20d%3D%22M12%202c5.523%200%2010%204.478%2010%2010%200%205.523-4.477%2010-10%2010-5.522%200-10-4.477-10-10C2%206.478%206.478%202%2012%202Zm0%201.363a8.637%208.637%200%201%200%200%2017.274%208.637%208.637%200%201%200%200-17.274Zm4.358%2011.077a.625.625%200%200%201-.344.814l-2.374.965%202.375.967a.625.625%200%200%201%20.37.733l-.027.08a.625.625%200%200%201-.815.344l-3.56-1.45-3.558%201.45a.625.625%200%200%201-.472-1.158l2.373-.966-2.373-.965a.625.625%200%200%201-.37-.733l.027-.081a.625.625%200%200%201%20.814-.344l3.559%201.449%203.56-1.449c.32-.13.684.024.815.344ZM12.023%205.61c2.16%200%203.913%201.546%203.864%203.455%200%201.257-.743%202.348-1.877%202.952l.149.699c.071.341-.146.672-.448.672h-3.424c-.298%200-.494-.33-.423-.672l.125-.697c-1.111-.605-1.878-1.697-1.878-2.976%200-1.886%201.753-3.433%203.913-3.433Zm1.435%201.945a.975.975%200%200%200-.973.972c0%20.535.437.972.973.972a.973.973%200%200%200%200-1.944Zm-2.917%200a.993.993%200%200%200-.972.972c0%20.535.41.972.973.972a.958.958%200%200%200%20.972-.972.974.974%200%200%200-.972-.972h-.001Z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-crossbones-circle-solid);-webkit-mask:var(--icon-crossbones-circle-solid);-webkit-mask:var(--icon-crossbones-circle-solid);mask:var(--icon-crossbones-circle-solid);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-ellipsis-horizontal-circle{--icon-ellipsis-horizontal-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M8.625%2012a.375.375%200%201%201-.75%200%20.375.375%200%200%201%20.75%200Zm0%200H8.25m4.125%200a.375.375%200%201%201-.75%200%20.375.375%200%200%201%20.75%200Zm0%200H12m4.125%200a.375.375%200%201%201-.75%200%20.375.375%200%200%201%20.75%200Zm0%200h-.375M21%2012a9%209%200%201%201-18%200%209%209%200%200%201%2018%200Z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-ellipsis-horizontal-circle);-webkit-mask:var(--icon-ellipsis-horizontal-circle);-webkit-mask:var(--icon-ellipsis-horizontal-circle);mask:var(--icon-ellipsis-horizontal-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-exclamation-circle{--icon-exclamation-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M12%209v3.75m9-.75a9%209%200%2011-18%200%209%209%200%200118%200zm-9%203.75h.008v.008H12v-.008z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-exclamation-circle);-webkit-mask:var(--icon-exclamation-circle);-webkit-mask:var(--icon-exclamation-circle);mask:var(--icon-exclamation-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-globe{--icon-globe:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M12%2021a9.004%209.004%200%20008.716-6.747M12%2021a9.004%209.004%200%2001-8.716-6.747M12%2021c2.485%200%204.5-4.03%204.5-9S14.485%203%2012%203m0%2018c-2.485%200-4.5-4.03-4.5-9S9.515%203%2012%203m0%200a8.997%208.997%200%20017.843%204.582M12%203a8.997%208.997%200%2000-7.843%204.582m15.686%200A11.953%2011.953%200%200112%2010.5c-2.998%200-5.74-1.1-7.843-2.918m15.686%200A8.959%208.959%200%200121%2012c0%20.778-.099%201.533-.284%202.253m0%200A17.919%2017.919%200%200112%2016.5c-3.162%200-6.133-.815-8.716-2.247m0%200A9.015%209.015%200%20013%2012c0-1.605.42-3.113%201.157-4.418%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-globe);-webkit-mask:var(--icon-globe);-webkit-mask:var(--icon-globe);mask:var(--icon-globe);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-indeterminate{--icon-indeterminate:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cline%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20x1%3D%225%22%20x2%3D%2219%22%20y1%3D%2212%22%20y2%3D%2212%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-indeterminate);-webkit-mask:var(--icon-indeterminate);-webkit-mask:var(--icon-indeterminate);mask:var(--icon-indeterminate);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-info-circle{--icon-info-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M11.25%2011.25l.041-.02a.75.75%200%20011.063.852l-.708%202.836a.75.75%200%20001.063.853l.041-.021M21%2012a9%209%200%2011-18%200%209%209%200%200118%200zm-9-3.75h.008v.008H12V8.25z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-info-circle);-webkit-mask:var(--icon-info-circle);-webkit-mask:var(--icon-info-circle);mask:var(--icon-info-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-life-buoy{--icon-life-buoy:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M16.712%204.33a9.027%209.027%200%200%201%201.652%201.306c.51.51.944%201.064%201.306%201.652M16.712%204.33l-3.448%204.138m3.448-4.138a9.014%209.014%200%200%200-9.424%200M19.67%207.288l-4.138%203.448m4.138-3.448a9.014%209.014%200%200%201%200%209.424m-4.138-5.976a3.736%203.736%200%200%200-.88-1.388%203.737%203.737%200%200%200-1.388-.88m2.268%202.268a3.765%203.765%200%200%201%200%202.528m-2.268-4.796a3.765%203.765%200%200%200-2.528%200m4.796%204.796c-.181.506-.475.982-.88%201.388a3.736%203.736%200%200%201-1.388.88m2.268-2.268%204.138%203.448m0%200a9.027%209.027%200%200%201-1.306%201.652c-.51.51-1.064.944-1.652%201.306m0%200-3.448-4.138m3.448%204.138a9.014%209.014%200%200%201-9.424%200m5.976-4.138a3.765%203.765%200%200%201-2.528%200m0%200a3.736%203.736%200%200%201-1.388-.88%203.737%203.737%200%200%201-.88-1.388m2.268%202.268L7.288%2019.67m0%200a9.024%209.024%200%200%201-1.652-1.306%209.027%209.027%200%200%201-1.306-1.652m0%200%204.138-3.448M4.33%2016.712a9.014%209.014%200%200%201%200-9.424m4.138%205.976a3.765%203.765%200%200%201%200-2.528m0%200c.181-.506.475-.982.88-1.388a3.736%203.736%200%200%201%201.388-.88m-2.268%202.268L4.33%207.288m6.406%201.18L7.288%204.33m0%200a9.024%209.024%200%200%200-1.652%201.306A9.025%209.025%200%200%200%204.33%207.288%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-life-buoy);-webkit-mask:var(--icon-life-buoy);-webkit-mask:var(--icon-life-buoy);mask:var(--icon-life-buoy);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-link{--icon-link:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20class%3D%22size-6%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M13.19%208.688a4.5%204.5%200%200%201%201.242%207.244l-4.5%204.5a4.5%204.5%200%200%201-6.364-6.364l1.757-1.757m13.35-.622%201.757-1.757a4.5%204.5%200%200%200-6.364-6.364l-4.5%204.5a4.5%204.5%200%200%200%201.242%207.244%22%20%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-link);-webkit-mask:var(--icon-link);-webkit-mask:var(--icon-link);mask:var(--icon-link);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-lock-closed{--icon-lock-closed:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M16.5%2010.5V6.75a4.5%204.5%200%2010-9%200v3.75m-.75%2011.25h10.5a2.25%202.25%200%20002.25-2.25v-6.75a2.25%202.25%200%2000-2.25-2.25H6.75a2.25%202.25%200%2000-2.25%202.25v6.75a2.25%202.25%200%20002.25%202.25z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-lock-closed);-webkit-mask:var(--icon-lock-closed);-webkit-mask:var(--icon-lock-closed);mask:var(--icon-lock-closed);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-magnifying-glass{--icon-magnifying-glass:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M21%2021l-5.197-5.197m0%200A7.5%207.5%200%20105.196%205.196a7.5%207.5%200%200010.607%2010.607z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-magnifying-glass);-webkit-mask:var(--icon-magnifying-glass);-webkit-mask:var(--icon-magnifying-glass);mask:var(--icon-magnifying-glass);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-map-pin{--icon-map-pin:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M15%2010.5a3%203%200%2011-6%200%203%203%200%20016%200z%22%2F%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M19.5%2010.5c0%207.142-7.5%2011.25-7.5%2011.25S4.5%2017.642%204.5%2010.5a7.5%207.5%200%201115%200z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-map-pin);-webkit-mask:var(--icon-map-pin);-webkit-mask:var(--icon-map-pin);mask:var(--icon-map-pin);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-minus-circle{--icon-minus-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M15%2012H9m12%200a9%209%200%2011-18%200%209%209%200%200118%200z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-minus-circle);-webkit-mask:var(--icon-minus-circle);-webkit-mask:var(--icon-minus-circle);mask:var(--icon-minus-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-moon{--icon-moon:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20d%3D%22M17.715%2015.15A6.5%206.5%200%200%201%209%206.035C6.106%206.922%204%209.645%204%2012.867c0%203.94%203.153%207.136%207.042%207.136%203.101%200%205.734-2.032%206.673-4.853Z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-moon);-webkit-mask:var(--icon-moon);-webkit-mask:var(--icon-moon);mask:var(--icon-moon);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-no-symbol{--icon-no-symbol:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M18.364%2018.364A9%209%200%20005.636%205.636m12.728%2012.728A9%209%200%20015.636%205.636m12.728%2012.728L5.636%205.636%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-no-symbol);-webkit-mask:var(--icon-no-symbol);-webkit-mask:var(--icon-no-symbol);mask:var(--icon-no-symbol);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-pause-circle{--icon-pause-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M14.25%209v6m-4.5%200V9M21%2012a9%209%200%201%201-18%200%209%209%200%200%201%2018%200Z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-pause-circle);-webkit-mask:var(--icon-pause-circle);-webkit-mask:var(--icon-pause-circle);mask:var(--icon-pause-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-pencil-square{--icon-pencil-square:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22m16.862%204.487%201.687-1.688a1.875%201.875%200%201%201%202.652%202.652L10.582%2016.07a4.5%204.5%200%200%201-1.897%201.13L6%2018l.8-2.685a4.5%204.5%200%200%201%201.13-1.897l8.932-8.931Zm0%200L19.5%207.125M18%2014v4.75A2.25%202.25%200%200%201%2015.75%2021H5.25A2.25%202.25%200%200%201%203%2018.75V8.25A2.25%202.25%200%200%201%205.25%206H10%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-pencil-square);-webkit-mask:var(--icon-pencil-square);-webkit-mask:var(--icon-pencil-square);mask:var(--icon-pencil-square);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-percent-square{--icon-percent-square:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20d%3D%22M6%204h12.5a2%202%200%200%201%202%202v12.5a2%202%200%200%201-2%202H6a2%202%200%200%201-2-2V6a2%202%200%200%201%202-2Zm2%2013%209-9m-6.313%202.125a.563.563%200%201%201-1.125%200%20.563.563%200%200%201%201.126%200Zm4.75%204.75a.562.562%200%201%201-1.124%200%20.562.562%200%200%201%201.124%200Z%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-percent-square);-webkit-mask:var(--icon-percent-square);-webkit-mask:var(--icon-percent-square);mask:var(--icon-percent-square);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-play-circle{--icon-play-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M21%2012a9%209%200%201%201-18%200%209%209%200%200%201%2018%200Z%22%2F%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M15.91%2011.672a.375.375%200%200%201%200%20.656l-5.603%203.113a.375.375%200%200%201-.557-.328V8.887c0-.286.307-.466.557-.327l5.603%203.112Z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-play-circle);-webkit-mask:var(--icon-play-circle);-webkit-mask:var(--icon-play-circle);mask:var(--icon-play-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-play-pause-circle{--icon-play-pause-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20d%3D%22M17%209v6m-2.455-6v6M7%2014.32V9.68c0-.494.509-.803.918-.558l3.877%202.32c.191.115.31.328.31.559%200%20.23-.119.443-.31.558l-3.877%202.32a.59.59%200%200%201-.613-.002.65.65%200%200%201-.305-.556h0ZM12%2021a9%209%200%201%200%200-18%209%209%200%200%200%200%2018Z%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-play-pause-circle);-webkit-mask:var(--icon-play-pause-circle);-webkit-mask:var(--icon-play-pause-circle);mask:var(--icon-play-pause-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-plus-circle{--icon-plus-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M12%209v6m3-3H9m12%200a9%209%200%2011-18%200%209%209%200%200118%200z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-plus-circle);-webkit-mask:var(--icon-plus-circle);-webkit-mask:var(--icon-plus-circle);mask:var(--icon-plus-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-power{--icon-power:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M5.636%205.636a9%209%200%201%200%2012.728%200M12%203v9%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-power);-webkit-mask:var(--icon-power);-webkit-mask:var(--icon-power);mask:var(--icon-power);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-question-mark-circle{--icon-question-mark-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20class%3D%22size-6%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M9.879%207.519c1.171-1.025%203.071-1.025%204.242%200%201.172%201.025%201.172%202.687%200%203.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45%201.827v.75M21%2012a9%209%200%201%201-18%200%209%209%200%200%201%2018%200Zm-9%205.25h.008v.008H12v-.008Z%22%20%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-question-mark-circle);-webkit-mask:var(--icon-question-mark-circle);-webkit-mask:var(--icon-question-mark-circle);mask:var(--icon-question-mark-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-queue-list{--icon-queue-list:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20class%3D%22size-6%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M3.75%2012h16.5m-16.5%203.75h16.5M3.75%2019.5h16.5M5.625%204.5h12.75a1.875%201.875%200%200%201%200%203.75H5.625a1.875%201.875%200%200%201%200-3.75Z%22%20%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-queue-list);-webkit-mask:var(--icon-queue-list);-webkit-mask:var(--icon-queue-list);mask:var(--icon-queue-list);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-rectangle-group{--icon-rectangle-group:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M2.25%207.125C2.25%206.504%202.754%206%203.375%206h6c.621%200%201.125.504%201.125%201.125v3.75c0%20.621-.504%201.125-1.125%201.125h-6a1.125%201.125%200%2001-1.125-1.125v-3.75zM14.25%208.625c0-.621.504-1.125%201.125-1.125h5.25c.621%200%201.125.504%201.125%201.125v8.25c0%20.621-.504%201.125-1.125%201.125h-5.25a1.125%201.125%200%2001-1.125-1.125v-8.25zM3.75%2016.125c0-.621.504-1.125%201.125-1.125h5.25c.621%200%201.125.504%201.125%201.125v2.25c0%20.621-.504%201.125-1.125%201.125h-5.25a1.125%201.125%200%2001-1.125-1.125v-2.25z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-rectangle-group);-webkit-mask:var(--icon-rectangle-group);-webkit-mask:var(--icon-rectangle-group);mask:var(--icon-rectangle-group);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-signal{--icon-signal:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20class%3D%22size-6%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M9.348%2014.652a3.75%203.75%200%200%201%200-5.304m5.304%200a3.75%203.75%200%200%201%200%205.304m-7.425%202.121a6.75%206.75%200%200%201%200-9.546m9.546%200a6.75%206.75%200%200%201%200%209.546M5.106%2018.894c-3.808-3.807-3.808-9.98%200-13.788m13.788%200c3.808%203.807%203.808%209.98%200%2013.788M12%2012h.008v.008H12V12Zm.375%200a.375.375%200%201%201-.75%200%20.375.375%200%200%201%20.75%200Z%22%20%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-signal);-webkit-mask:var(--icon-signal);-webkit-mask:var(--icon-signal);mask:var(--icon-signal);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-sparkles{--icon-sparkles:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M9.813%2015.904%209%2018.75l-.813-2.846a4.5%204.5%200%200%200-3.09-3.09L2.25%2012l2.846-.813a4.5%204.5%200%200%200%203.09-3.09L9%205.25l.813%202.846a4.5%204.5%200%200%200%203.09%203.09L15.75%2012l-2.846.813a4.5%204.5%200%200%200-3.09%203.09ZM18.259%208.715%2018%209.75l-.259-1.035a3.375%203.375%200%200%200-2.455-2.456L14.25%206l1.036-.259a3.375%203.375%200%200%200%202.455-2.456L18%202.25l.259%201.035a3.375%203.375%200%200%200%202.456%202.456L21.75%206l-1.035.259a3.375%203.375%200%200%200-2.456%202.456ZM16.894%2020.567%2016.5%2021.75l-.394-1.183a2.25%202.25%200%200%200-1.423-1.423L13.5%2018.75l1.183-.394a2.25%202.25%200%200%200%201.423-1.423l.394-1.183.394%201.183a2.25%202.25%200%200%200%201.423%201.423l1.183.394-1.183.394a2.25%202.25%200%200%200-1.423%201.423Z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-sparkles);-webkit-mask:var(--icon-sparkles);-webkit-mask:var(--icon-sparkles);mask:var(--icon-sparkles);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-square-2x2{--icon-square-2x2:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M3.75%206A2.25%202.25%200%20016%203.75h2.25A2.25%202.25%200%200110.5%206v2.25a2.25%202.25%200%2001-2.25%202.25H6a2.25%202.25%200%2001-2.25-2.25V6zM3.75%2015.75A2.25%202.25%200%20016%2013.5h2.25a2.25%202.25%200%20012.25%202.25V18a2.25%202.25%200%2001-2.25%202.25H6A2.25%202.25%200%20013.75%2018v-2.25zM13.5%206a2.25%202.25%200%20012.25-2.25H18A2.25%202.25%200%200120.25%206v2.25A2.25%202.25%200%200118%2010.5h-2.25a2.25%202.25%200%2001-2.25-2.25V6zM13.5%2015.75a2.25%202.25%200%20012.25-2.25H18a2.25%202.25%200%20012.25%202.25V18A2.25%202.25%200%200118%2020.25h-2.25A2.25%202.25%200%200113.5%2018v-2.25z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-square-2x2);-webkit-mask:var(--icon-square-2x2);-webkit-mask:var(--icon-square-2x2);mask:var(--icon-square-2x2);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-sun{--icon-sun:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M12%203v2.25m6.364.386l-1.591%201.591M21%2012h-2.25m-.386%206.364l-1.591-1.591M12%2018.75V21m-4.773-4.227l-1.591%201.591M5.25%2012H3m4.227-4.773L5.636%205.636M15.75%2012a3.75%203.75%200%2011-7.5%200%203.75%203.75%200%20017.5%200z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-sun);-webkit-mask:var(--icon-sun);-webkit-mask:var(--icon-sun);mask:var(--icon-sun);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-table-cells{--icon-table-cells:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M3.375%2019.5h17.25m-17.25%200a1.125%201.125%200%2001-1.125-1.125M3.375%2019.5h7.5c.621%200%201.125-.504%201.125-1.125m-9.75%200V5.625m0%2012.75v-1.5c0-.621.504-1.125%201.125-1.125m18.375%202.625V5.625m0%2012.75c0%20.621-.504%201.125-1.125%201.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0%203.75h-7.5A1.125%201.125%200%200112%2018.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621%200-1.125.504-1.125%201.125m19.5%200v1.5c0%20.621-.504%201.125-1.125%201.125M2.25%205.625v1.5c0%20.621.504%201.125%201.125%201.125m0%200h17.25m-17.25%200h7.5c.621%200%201.125.504%201.125%201.125M3.375%208.25c-.621%200-1.125.504-1.125%201.125v1.5c0%20.621.504%201.125%201.125%201.125m17.25-3.75h-7.5c-.621%200-1.125.504-1.125%201.125m8.625-1.125c.621%200%201.125.504%201.125%201.125v1.5c0%20.621-.504%201.125-1.125%201.125m-17.25%200h7.5m-7.5%200c-.621%200-1.125.504-1.125%201.125v1.5c0%20.621.504%201.125%201.125%201.125M12%2010.875v-1.5m0%201.5c0%20.621-.504%201.125-1.125%201.125M12%2010.875c0%20.621.504%201.125%201.125%201.125m-2.25%200c.621%200%201.125.504%201.125%201.125M13.125%2012h7.5m-7.5%200c-.621%200-1.125.504-1.125%201.125M20.625%2012c.621%200%201.125.504%201.125%201.125v1.5c0%20.621-.504%201.125-1.125%201.125m-17.25%200h7.5M12%2014.625v-1.5m0%201.5c0%20.621-.504%201.125-1.125%201.125M12%2014.625c0%20.621.504%201.125%201.125%201.125m-2.25%200c.621%200%201.125.504%201.125%201.125m0%201.5v-1.5m0%200c0-.621.504-1.125%201.125-1.125m0%200h7.5%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-table-cells);-webkit-mask:var(--icon-table-cells);-webkit-mask:var(--icon-table-cells);mask:var(--icon-table-cells);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-trash{--icon-trash:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M14.74%209l-.346%209m-4.788%200L9.26%209m9.968-3.21c.342.052.682.107%201.022.166m-1.022-.165L18.16%2019.673a2.25%202.25%200%2001-2.244%202.077H8.084a2.25%202.25%200%2001-2.244-2.077L4.772%205.79m14.456%200a48.108%2048.108%200%2000-3.478-.397m-12%20.562c.34-.059.68-.114%201.022-.165m0%200a48.11%2048.11%200%20013.478-.397m7.5%200v-.916c0-1.18-.91-2.164-2.09-2.201a51.964%2051.964%200%2000-3.32%200c-1.18.037-2.09%201.022-2.09%202.201v.916m7.5%200a48.667%2048.667%200%2000-7.5%200%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-trash);-webkit-mask:var(--icon-trash);-webkit-mask:var(--icon-trash);mask:var(--icon-trash);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-user-group{--icon-user-group:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20class%3D%22size-6%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M18%2018.72a9.094%209.094%200%200%200%203.741-.479%203%203%200%200%200-4.682-2.72m.94%203.198.001.031c0%20.225-.012.447-.037.666A11.944%2011.944%200%200%201%2012%2021c-2.17%200-4.207-.576-5.963-1.584A6.062%206.062%200%200%201%206%2018.719m12%200a5.971%205.971%200%200%200-.941-3.197m0%200A5.995%205.995%200%200%200%2012%2012.75a5.995%205.995%200%200%200-5.058%202.772m0%200a3%203%200%200%200-4.681%202.72%208.986%208.986%200%200%200%203.74.477m.94-3.197a5.971%205.971%200%200%200-.94%203.197M15%206.75a3%203%200%201%201-6%200%203%203%200%200%201%206%200Zm6%203a2.25%202.25%200%201%201-4.5%200%202.25%202.25%200%200%201%204.5%200Zm-13.5%200a2.25%202.25%200%201%201-4.5%200%202.25%202.25%200%200%201%204.5%200Z%22%20%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-user-group);-webkit-mask:var(--icon-user-group);-webkit-mask:var(--icon-user-group);mask:var(--icon-user-group);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-view-columns{--icon-view-columns:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%221.5%22%20stroke%3D%22currentColor%22%20class%3D%22size-6%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M9%204.5v15m6-15v15m-10.875%200h15.75c.621%200%201.125-.504%201.125-1.125V5.625c0-.621-.504-1.125-1.125-1.125H4.125C3.504%204.5%203%205.004%203%205.625v12.75c0%20.621.504%201.125%201.125%201.125Z%22%20%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-view-columns);-webkit-mask:var(--icon-view-columns);-webkit-mask:var(--icon-view-columns);mask:var(--icon-view-columns);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-x-circle{--icon-x-circle:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M9.75%209.75l4.5%204.5m0-4.5l-4.5%204.5M21%2012a9%209%200%2011-18%200%209%209%200%200118%200z%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-x-circle);-webkit-mask:var(--icon-x-circle);-webkit-mask:var(--icon-x-circle);mask:var(--icon-x-circle);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.icon-x-mark{--icon-x-mark:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%20%20%3Cpath%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M6%2018L18%206M6%206l12%2012%22%2F%3E%3C%2Fsvg%3E);-webkit-mask:var(--icon-x-mark);-webkit-mask:var(--icon-x-mark);-webkit-mask:var(--icon-x-mark);mask:var(--icon-x-mark);vertical-align:middle;background-color:currentColor;width:1.5rem;height:1.5rem;display:inline-block}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-48{height:calc(var(--spacing)*48)}.h-64{height:calc(var(--spacing)*64)}.h-96{height:var(--spacing-96)}.h-full{height:100%}.max-h-64{max-height:calc(var(--spacing)*64)}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0{width:calc(var(--spacing)*0)}.w-1{width:calc(var(--spacing)*1)}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-1\/4{width:25%}.w-2{width:calc(var(--spacing)*2)}.w-3{width:calc(var(--spacing)*3)}.w-3xs{width:var(--container-3xs)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-11{width:calc(var(--spacing)*11)}.w-12{width:calc(var(--spacing)*12)}.w-14{width:calc(var(--spacing)*14)}.w-16{width:calc(var(--spacing)*16)}.w-18{width:calc(var(--spacing)*18)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-28{width:calc(var(--spacing)*28)}.w-32{width:calc(var(--spacing)*32)}.w-42{width:calc(var(--spacing)*42)}.w-44{width:calc(var(--spacing)*44)}.w-48{width:calc(var(--spacing)*48)}.w-56{width:calc(var(--spacing)*56)}.w-64{width:calc(var(--spacing)*64)}.w-80{width:calc(var(--spacing)*80)}.w-full{width:100%}.w-lg{width:var(--container-lg)}.w-screen{width:100vw}.max-w-0{max-width:calc(var(--spacing)*0)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.min-w-\[4rem\]{min-width:4rem}.min-w-\[10rem\]{min-width:10rem}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.table-fixed{table-layout:fixed}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-5{--tw-translate-x:calc(var(--spacing)*5);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-4{--tw-translate-y:calc(var(--spacing)*4);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-px{--tw-translate-y:1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing)*2)}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*1)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-1\.5>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*3)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-6>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*6)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-3{row-gap:calc(var(--spacing)*3)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-y-auto{overflow-y:auto}.overflow-y-scroll{overflow-y:scroll}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-s-md{border-start-start-radius:var(--radius-md);border-end-start-radius:var(--radius-md)}.rounded-e-md{border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md)}.rounded-l-md{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-none{--tw-border-style:none;border-style:none}.border-blue-400{border-color:var(--color-blue-400)}.border-blue-500{border-color:var(--color-blue-500)}.border-cyan-400{border-color:var(--color-cyan-400)}.border-emerald-400{border-color:var(--color-emerald-400)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400{border-color:var(--color-gray-400)}.border-gray-600{border-color:var(--color-gray-600)}.border-indigo-400{border-color:var(--color-indigo-400)}.border-rose-400{border-color:var(--color-rose-400)}.border-transparent{border-color:#0000}.border-violet-400{border-color:var(--color-violet-400)}.border-violet-500{border-color:var(--color-violet-500)}.border-yellow-200{border-color:var(--color-yellow-200)}.border-yellow-400{border-color:var(--color-yellow-400)}.border-yellow-700{border-color:var(--color-yellow-700)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-100\/30{background-color:#dbeafe4d}@supports (color:color-mix(in lab, red, red)){.bg-blue-100\/30{background-color:color-mix(in oklab,var(--color-blue-100)30%,transparent)}}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-400\/10{background-color:#54a2ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-400\/10{background-color:color-mix(in oklab,var(--color-blue-400)10%,transparent)}}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-900{background-color:var(--color-blue-900)}.bg-cyan-400{background-color:var(--color-cyan-400)}.bg-cyan-400\/10{background-color:#00d2ef1a}@supports (color:color-mix(in lab, red, red)){.bg-cyan-400\/10{background-color:color-mix(in oklab,var(--color-cyan-400)10%,transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-400\/10{background-color:#00d2941a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-400\/10{background-color:color-mix(in oklab,var(--color-emerald-400)10%,transparent)}}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-400\/10{background-color:#99a1af1a}@supports (color:color-mix(in lab, red, red)){.bg-gray-400\/10{background-color:color-mix(in oklab,var(--color-gray-400)10%,transparent)}}.bg-gray-800{background-color:var(--color-gray-800)}.bg-indigo-400{background-color:var(--color-indigo-400)}.bg-indigo-400\/10{background-color:#7d87ff1a}@supports (color:color-mix(in lab, red, red)){.bg-indigo-400\/10{background-color:color-mix(in oklab,var(--color-indigo-400)10%,transparent)}}.bg-red-100{background-color:var(--color-red-100)}.bg-rose-400{background-color:var(--color-rose-400)}.bg-rose-400\/10{background-color:#ff667f1a}@supports (color:color-mix(in lab, red, red)){.bg-rose-400\/10{background-color:color-mix(in oklab,var(--color-rose-400)10%,transparent)}}.bg-transparent{background-color:#0000}.bg-violet-50{background-color:var(--color-violet-50)}.bg-violet-100{background-color:var(--color-violet-100)}.bg-violet-300{background-color:var(--color-violet-300)}.bg-violet-400{background-color:var(--color-violet-400)}.bg-violet-400\/10{background-color:#a685ff1a}@supports (color:color-mix(in lab, red, red)){.bg-violet-400\/10{background-color:color-mix(in oklab,var(--color-violet-400)10%,transparent)}}.bg-violet-600{background-color:var(--color-violet-600)}.bg-white{background-color:var(--color-white)}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-400{background-color:var(--color-yellow-400)}.bg-yellow-400\/10{background-color:#fac8001a}@supports (color:color-mix(in lab, red, red)){.bg-yellow-400\/10{background-color:color-mix(in oklab,var(--color-yellow-400)10%,transparent)}}.bg-yellow-900\/80{background-color:#733e0acc}@supports (color:color-mix(in lab, red, red)){.bg-yellow-900\/80{background-color:color-mix(in oklab,var(--color-yellow-900)80%,transparent)}}.bg-zinc-50\/80{background-color:#fafafacc}@supports (color:color-mix(in lab, red, red)){.bg-zinc-50\/80{background-color:color-mix(in oklab,var(--color-zinc-50)80%,transparent)}}.\[mask-image\:linear-gradient\(to_right\,black_60\%\,transparent_100\%\)\]{-webkit-mask-image:linear-gradient(90deg,#000 60%,#0000 100%);mask-image:linear-gradient(90deg,#000 60%,#0000 100%)}.fill-violet-500{fill:var(--color-violet-500)}.stroke-gray-300{stroke:var(--color-gray-300)}.stroke-gray-400{stroke:var(--color-gray-400)}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-3\.5{padding-block:calc(var(--spacing)*3.5)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-6{padding-block:calc(var(--spacing)*6)}.py-12{padding-block:calc(var(--spacing)*12)}.py-16{padding-block:calc(var(--spacing)*16)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-6{padding-top:calc(var(--spacing)*6)}.pr-0\.5{padding-right:calc(var(--spacing)*.5)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-1\.5{padding-right:calc(var(--spacing)*1.5)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-2\.5{padding-right:calc(var(--spacing)*2.5)}.pr-3{padding-right:calc(var(--spacing)*3)}.pr-4{padding-right:calc(var(--spacing)*4)}.pr-6{padding-right:calc(var(--spacing)*6)}.pr-12{padding-right:calc(var(--spacing)*12)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pl-0\.5{padding-left:calc(var(--spacing)*.5)}.pl-1\.5{padding-left:calc(var(--spacing)*1.5)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-2\.5{padding-left:calc(var(--spacing)*2.5)}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-5{padding-left:calc(var(--spacing)*5)}.pl-10{padding-left:calc(var(--spacing)*10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-700{color:var(--color-amber-700)}.text-blue-400{color:var(--color-blue-400)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-cyan-400{color:var(--color-cyan-400)}.text-cyan-600{color:var(--color-cyan-600)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-600{color:var(--color-emerald-600)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-800\/70{color:#1e2939b3}@supports (color:color-mix(in lab, red, red)){.text-gray-800\/70{color:color-mix(in oklab,var(--color-gray-800)70%,transparent)}}.text-gray-900{color:var(--color-gray-900)}.text-gray-950{color:var(--color-gray-950)}.text-green-400{color:var(--color-green-400)}.text-indigo-600{color:var(--color-indigo-600)}.text-red-500{color:var(--color-red-500)}.text-red-700{color:var(--color-red-700)}.text-rose-400{color:var(--color-rose-400)}.text-rose-500{color:var(--color-rose-500)}.text-rose-600{color:var(--color-rose-600)}.text-sky-900{color:var(--color-sky-900)}.text-violet-400{color:var(--color-violet-400)}.text-violet-500{color:var(--color-violet-500)}.text-violet-600{color:var(--color-violet-600)}.text-violet-700{color:var(--color-violet-700)}.text-violet-950{color:var(--color-violet-950)}.text-white{color:var(--color-white)}.text-yellow-200{color:var(--color-yellow-200)}.text-yellow-400{color:var(--color-yellow-400)}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-600{color:var(--color-yellow-600)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-gray-400::placeholder{color:var(--color-gray-400)}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-blue-100{--tw-shadow-color:color-mix(in srgb,oklch(93.2% .032 255.585) var(--tw-shadow-alpha),transparent)}@supports (color:color-mix(in lab, red, red)){.shadow-blue-100{--tw-shadow-color:color-mix(in oklab,var(--color-blue-100)var(--tw-shadow-alpha),transparent)}}.ring-black\/5{--tw-ring-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.ring-black\/5{--tw-ring-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.ring-blue-500{--tw-ring-color:var(--color-blue-500)}.ring-gray-300{--tw-ring-color:var(--color-gray-300)}.ring-gray-400{--tw-ring-color:var(--color-gray-400)}.ring-violet-200{--tw-ring-color:var(--color-violet-200)}.ring-zinc-300{--tw-ring-color:var(--color-zinc-300)}.ring-zinc-700\/10{--tw-ring-color:#3f3f461a}@supports (color:color-mix(in lab, red, red)){.ring-zinc-700\/10{--tw-ring-color:color-mix(in oklab,var(--color-zinc-700)10%,transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.drop-shadow-md\/30{--tw-drop-shadow-alpha:30%;--tw-drop-shadow-size:drop-shadow(0 3px 3px var(--tw-drop-shadow-color,oklab(0% 0 0/.3)));--tw-drop-shadow:var(--tw-drop-shadow-size);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.saturate-40{--tw-saturate:saturate(40%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.group-hover\:ml-1\.5:is(:where(.group):hover *){margin-left:calc(var(--spacing)*1.5)}.group-hover\:w-20:is(:where(.group):hover *){width:calc(var(--spacing)*20)}.group-hover\:max-w-24:is(:where(.group):hover *){max-width:calc(var(--spacing)*24)}.group-hover\:bg-gray-400:is(:where(.group):hover *){background-color:var(--color-gray-400)}.group-hover\:bg-violet-500:is(:where(.group):hover *){background-color:var(--color-violet-500)}.group-hover\:\[mask-image\:none\]:is(:where(.group):hover *){-webkit-mask-image:none;mask-image:none}.group-hover\:pr-3:is(:where(.group):hover *){padding-right:calc(var(--spacing)*3)}.group-hover\:pr-4:is(:where(.group):hover *){padding-right:calc(var(--spacing)*4)}.group-hover\:text-blue-500:is(:where(.group):hover *){color:var(--color-blue-500)}.group-hover\:text-gray-600:is(:where(.group):hover *){color:var(--color-gray-600)}.group-hover\:text-red-500:is(:where(.group):hover *){color:var(--color-red-500)}.group-hover\:text-red-600:is(:where(.group):hover *){color:var(--color-red-600)}.group-hover\:text-violet-500:is(:where(.group):hover *){color:var(--color-violet-500)}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}.group-hover\:text-yellow-500:is(:where(.group):hover *){color:var(--color-yellow-500)}.group-hover\:underline:is(:where(.group):hover *){text-decoration-line:underline}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-has-\[\:disabled\]\:cursor-not-allowed:is(:where(.group):has(:disabled) *){cursor:not-allowed}.group-has-\[\:disabled\]\:opacity-50:is(:where(.group):has(:disabled) *){opacity:.5}.peer-checked\:block:is(:where(.peer):checked~*){display:block}.peer-checked\:border-blue-500:is(:where(.peer):checked~*){border-color:var(--color-blue-500)}.peer-checked\:bg-blue-500:is(:where(.peer):checked~*){background-color:var(--color-blue-500)}@media (hover:hover){.hover\:border-blue-600:hover{border-color:var(--color-blue-600)}.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:border-red-600:hover{border-color:var(--color-red-600)}.hover\:border-violet-400:hover{border-color:var(--color-violet-400)}.hover\:border-violet-500:hover{border-color:var(--color-violet-500)}.hover\:border-violet-600:hover{border-color:var(--color-violet-600)}.hover\:border-yellow-600:hover{border-color:var(--color-yellow-600)}.hover\:bg-black\/5:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-black\/5:hover{background-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.hover\:bg-blue-100:hover{background-color:var(--color-blue-100)}.hover\:bg-blue-500:hover{background-color:var(--color-blue-500)}.hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-violet-400:hover{background-color:var(--color-violet-400)}.hover\:bg-violet-500:hover{background-color:var(--color-violet-500)}.hover\:bg-violet-700:hover{background-color:var(--color-violet-700)}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:text-blue-500:hover{color:var(--color-blue-500)}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:text-gray-100:hover{color:var(--color-gray-100)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-800:hover{color:var(--color-gray-800)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-gray-950:hover{color:var(--color-gray-950)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:text-violet-500:hover{color:var(--color-violet-500)}.hover\:text-white:hover{color:var(--color-white)}.hover\:text-yellow-500:hover{color:var(--color-yellow-500)}.hover\:text-yellow-600:hover{color:var(--color-yellow-600)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-blue-400:focus{border-color:var(--color-blue-400)}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:border-violet-200:focus{border-color:var(--color-violet-200)}.focus\:border-violet-500:focus{border-color:var(--color-violet-500)}.focus\:text-gray-500:focus{color:var(--color-gray-500)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-blue-400:focus{--tw-ring-color:var(--color-blue-400)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-blue-500:focus-visible{border-color:var(--color-blue-500)}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-blue-500:focus-visible{--tw-ring-color:var(--color-blue-500)}.focus-visible\:ring-gray-500:focus-visible{--tw-ring-color:var(--color-gray-500)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:text-gray-400:disabled{color:var(--color-gray-400)}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:40rem){.sm\:inline{display:inline}.sm\:translate-y-0{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.sm\:scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.sm\:scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.sm\:items-start{align-items:flex-start}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2{gap:calc(var(--spacing)*2)}.sm\:gap-x-4{column-gap:calc(var(--spacing)*4)}.sm\:gap-y-5{row-gap:calc(var(--spacing)*5)}.sm\:p-4{padding:calc(var(--spacing)*4)}.sm\:p-6{padding:calc(var(--spacing)*6)}.sm\:px-3{padding-inline:calc(var(--spacing)*3)}}@media (min-width:48rem){.md\:mr-3{margin-right:calc(var(--spacing)*3)}.md\:mb-0{margin-bottom:calc(var(--spacing)*0)}.md\:block{display:block}.md\:flex{display:flex}.md\:w-84{width:var(--spacing-84)}.md\:flex-row{flex-direction:row}.md\:px-4{padding-inline:calc(var(--spacing)*4)}.md\:py-3{padding-block:calc(var(--spacing)*3)}}@media (min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:gap-x-8{column-gap:calc(var(--spacing)*8)}}@media (min-width:80rem){.xl\:flex-row{flex-direction:row}.xl\:justify-between{justify-content:space-between}}:where(.dark\:divide-gray-700:where(.dark,.dark *)>:not(:last-child)){border-color:var(--color-gray-700)}:where(.dark\:divide-gray-800:where(.dark,.dark *)>:not(:last-child)){border-color:var(--color-gray-800)}:where(.dark\:divide-gray-900:where(.dark,.dark *)>:not(:last-child)){border-color:var(--color-gray-900)}.dark\:border-gray-600:where(.dark,.dark *){border-color:var(--color-gray-600)}.dark\:border-gray-700:where(.dark,.dark *){border-color:var(--color-gray-700)}.dark\:border-gray-800:where(.dark,.dark *){border-color:var(--color-gray-800)}.dark\:bg-amber-900\/50:where(.dark,.dark *){background-color:#7b330680}@supports (color:color-mix(in lab, red, red)){.dark\:bg-amber-900\/50:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-amber-900)50%,transparent)}}.dark\:bg-black:where(.dark,.dark *){background-color:var(--color-black)}.dark\:bg-blue-900\/30:where(.dark,.dark *){background-color:#1c398e4d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-blue-900\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-blue-900)30%,transparent)}}.dark\:bg-blue-950:where(.dark,.dark *){background-color:var(--color-blue-950)}.dark\:bg-gray-600:where(.dark,.dark *){background-color:var(--color-gray-600)}.dark\:bg-gray-700:where(.dark,.dark *){background-color:var(--color-gray-700)}.dark\:bg-gray-800:where(.dark,.dark *){background-color:var(--color-gray-800)}.dark\:bg-gray-900:where(.dark,.dark *){background-color:var(--color-gray-900)}.dark\:bg-gray-950:where(.dark,.dark *){background-color:var(--color-gray-950)}.dark\:bg-red-900\/50:where(.dark,.dark *){background-color:#82181a80}@supports (color:color-mix(in lab, red, red)){.dark\:bg-red-900\/50:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-red-900)50%,transparent)}}.dark\:bg-transparent:where(.dark,.dark *){background-color:#0000}.dark\:bg-violet-300:where(.dark,.dark *){background-color:var(--color-violet-300)}.dark\:bg-violet-700\/70:where(.dark,.dark *){background-color:#7008e7b3}@supports (color:color-mix(in lab, red, red)){.dark\:bg-violet-700\/70:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-violet-700)70%,transparent)}}.dark\:bg-violet-900\/30:where(.dark,.dark *){background-color:#4d179a4d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-violet-900\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-violet-900)30%,transparent)}}.dark\:bg-violet-900\/50:where(.dark,.dark *){background-color:#4d179a80}@supports (color:color-mix(in lab, red, red)){.dark\:bg-violet-900\/50:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-violet-900)50%,transparent)}}.dark\:bg-violet-950\/30:where(.dark,.dark *){background-color:#2f0d684d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-violet-950\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-violet-950)30%,transparent)}}.dark\:bg-yellow-900\/50:where(.dark,.dark *){background-color:#733e0a80}@supports (color:color-mix(in lab, red, red)){.dark\:bg-yellow-900\/50:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-yellow-900)50%,transparent)}}.dark\:bg-zinc-950\/80:where(.dark,.dark *){background-color:#09090bcc}@supports (color:color-mix(in lab, red, red)){.dark\:bg-zinc-950\/80:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-zinc-950)80%,transparent)}}.dark\:fill-gray-700:where(.dark,.dark *){fill:var(--color-gray-700)}.dark\:stroke-gray-500:where(.dark,.dark *){stroke:var(--color-gray-500)}.dark\:stroke-gray-600:where(.dark,.dark *){stroke:var(--color-gray-600)}.dark\:text-amber-300:where(.dark,.dark *){color:var(--color-amber-300)}.dark\:text-blue-400:where(.dark,.dark *){color:var(--color-blue-400)}.dark\:text-cyan-400:where(.dark,.dark *){color:var(--color-cyan-400)}.dark\:text-emerald-400:where(.dark,.dark *){color:var(--color-emerald-400)}.dark\:text-gray-100:where(.dark,.dark *){color:var(--color-gray-100)}.dark\:text-gray-200:where(.dark,.dark *){color:var(--color-gray-200)}.dark\:text-gray-300:where(.dark,.dark *){color:var(--color-gray-300)}.dark\:text-gray-400:where(.dark,.dark *){color:var(--color-gray-400)}.dark\:text-gray-500:where(.dark,.dark *){color:var(--color-gray-500)}.dark\:text-gray-600:where(.dark,.dark *){color:var(--color-gray-600)}.dark\:text-gray-900:where(.dark,.dark *){color:var(--color-gray-900)}.dark\:text-indigo-400:where(.dark,.dark *){color:var(--color-indigo-400)}.dark\:text-red-300:where(.dark,.dark *){color:var(--color-red-300)}.dark\:text-rose-400:where(.dark,.dark *){color:var(--color-rose-400)}.dark\:text-sky-300:where(.dark,.dark *){color:var(--color-sky-300)}.dark\:text-violet-50:where(.dark,.dark *){color:var(--color-violet-50)}.dark\:text-violet-200:where(.dark,.dark *){color:var(--color-violet-200)}.dark\:text-violet-300:where(.dark,.dark *){color:var(--color-violet-300)}.dark\:text-violet-400:where(.dark,.dark *){color:var(--color-violet-400)}.dark\:text-violet-950:where(.dark,.dark *){color:var(--color-violet-950)}.dark\:text-yellow-300:where(.dark,.dark *){color:var(--color-yellow-300)}.dark\:text-yellow-400:where(.dark,.dark *){color:var(--color-yellow-400)}.dark\:placeholder-gray-500:where(.dark,.dark *)::placeholder{color:var(--color-gray-500)}.dark\:shadow-blue-950:where(.dark,.dark *){--tw-shadow-color:color-mix(in srgb,oklch(28.2% .091 267.935) var(--tw-shadow-alpha),transparent)}@supports (color:color-mix(in lab, red, red)){.dark\:shadow-blue-950:where(.dark,.dark *){--tw-shadow-color:color-mix(in oklab,var(--color-blue-950)var(--tw-shadow-alpha),transparent)}}.dark\:ring-blue-700:where(.dark,.dark *){--tw-ring-color:var(--color-blue-700)}.dark\:ring-gray-700:where(.dark,.dark *){--tw-ring-color:var(--color-gray-700)}.dark\:ring-violet-800:where(.dark,.dark *){--tw-ring-color:var(--color-violet-800)}@media (hover:hover){.dark\:group-hover\:bg-gray-600:where(.dark,.dark *):is(:where(.group):hover *){background-color:var(--color-gray-600)}.dark\:group-hover\:text-gray-100:where(.dark,.dark *):is(:where(.group):hover *){color:var(--color-gray-100)}.dark\:hover\:bg-blue-500:where(.dark,.dark *):hover{background-color:var(--color-blue-500)}.dark\:hover\:bg-blue-900:where(.dark,.dark *):hover{background-color:var(--color-blue-900)}.dark\:hover\:bg-gray-700:where(.dark,.dark *):hover{background-color:var(--color-gray-700)}.dark\:hover\:bg-gray-700\/50:where(.dark,.dark *):hover{background-color:#36415380}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-gray-700\/50:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-gray-700)50%,transparent)}}.dark\:hover\:bg-gray-800:where(.dark,.dark *):hover{background-color:var(--color-gray-800)}.dark\:hover\:bg-gray-950:where(.dark,.dark *):hover{background-color:var(--color-gray-950)}.dark\:hover\:bg-gray-950\/30:where(.dark,.dark *):hover{background-color:#0307124d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-gray-950\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-gray-950)30%,transparent)}}.dark\:hover\:bg-violet-500:where(.dark,.dark *):hover{background-color:var(--color-violet-500)}.dark\:hover\:bg-white\/5:where(.dark,.dark *):hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-white\/5:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.dark\:hover\:bg-white\/20:where(.dark,.dark *):hover{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-white\/20:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.hover\:dark\:bg-gray-600\/30:hover:where(.dark,.dark *){background-color:#4a55654d}@supports (color:color-mix(in lab, red, red)){.hover\:dark\:bg-gray-600\/30:hover:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-gray-600)30%,transparent)}}.dark\:hover\:text-blue-300:where(.dark,.dark *):hover{color:var(--color-blue-300)}.dark\:hover\:text-gray-100:where(.dark,.dark *):hover{color:var(--color-gray-100)}.dark\:hover\:text-gray-200:where(.dark,.dark *):hover{color:var(--color-gray-200)}.dark\:hover\:text-gray-300:where(.dark,.dark *):hover{color:var(--color-gray-300)}.dark\:hover\:text-violet-300:where(.dark,.dark *):hover{color:var(--color-violet-300)}.dark\:hover\:text-violet-500:where(.dark,.dark *):hover{color:var(--color-violet-500)}.dark\:hover\:text-white:where(.dark,.dark *):hover{color:var(--color-white)}.dark\:hover\:text-yellow-500:where(.dark,.dark *):hover{color:var(--color-yellow-500)}}.dark\:focus\:ring-blue-500:where(.dark,.dark *):focus{--tw-ring-color:var(--color-blue-500)}.disabled\:dark\:text-gray-500:disabled:where(.dark,.dark *){color:var(--color-gray-500)}}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes pulse{50%{opacity:.5}} \ No newline at end of file diff --git a/vendor/oban_web/priv/static/app.js b/vendor/oban_web/priv/static/app.js index f453e06e..fb735a51 100644 --- a/vendor/oban_web/priv/static/app.js +++ b/vendor/oban_web/priv/static/app.js @@ -166,7 +166,7 @@ Showing first ${t} jobs. This workflow has more jobs than can be displayed. - `,this.el.appendChild(r)},updateControlColors(){let e=this.el.querySelector("#graph-controls");if(!e)return;let t=this.isDarkMode(),n=t?"bg-gray-800":"bg-white",i=t?"border-gray-600":"border-gray-300",r=t?"text-gray-300":"text-gray-600",s=t?"hover:bg-gray-700":"hover:bg-gray-100";e.querySelectorAll("button").forEach(o=>{if(o.id==="toggle-tracking"&&this.trackActiveNode){let a=t?"bg-blue-900":"bg-blue-100",l=t?"border-blue-500":"border-blue-400",c=t?"text-blue-400":"text-blue-600";o.className=`w-8 h-8 flex items-center justify-center rounded-md border transition-colors cursor-pointer ${a} ${l} ${c}`}else o.className=`w-8 h-8 flex items-center justify-center rounded-md border transition-colors cursor-pointer ${n} ${i} ${r} ${s}`})}},Uw=$V;var WV={Completer:Ac,CronChart:$d,CronSparkline:$h,JobHistoryChart:Vd,JobsChart:Gd,HistoryBack:Xd,Instantiator:Kd,QueueDetailChart:Zd,QueueSparkline:Wh,Refresher:Jd,Relativize:Qd,Shortcuts:th,SidebarResizer:eh,Themer:Vh,TimelineConnectors:Hh,Tippy:Uh,WorkflowGraph:Uw},So;Mo.default.config({barColors:{0:"#0284c7"},shadowColor:"rgba(0, 0, 0, .3)"});window.addEventListener("phx:page-loading-start",e=>{So||(So=setTimeout(()=>Mo.default.show(),500))});window.addEventListener("phx:page-loading-stop",e=>{clearTimeout(So),So=void 0,Mo.default.hide()});window.addEventListener("phx:scroll-top",()=>{window.scrollTo({top:0,behavior:"instant"})});window.addEventListener("phx:copy-to-clipboard",e=>{let t=e.detail.text;t&&navigator.clipboard.writeText(t)});var VV=document.querySelector("meta[name='csrf-token']").getAttribute("content"),HV=document.querySelector("meta[name='live-transport']").getAttribute("content"),UV=document.querySelector("meta[name='live-path']").getAttribute("content"),YV=new LiveView.LiveSocket(UV,Phoenix.Socket,{transport:HV==="longpoll"?Phoenix.LongPoll:WebSocket,params:{_csrf_token:VV,init_state:Tc()},hooks:WV});YV.connect();})(); + `,this.el.appendChild(r)},updateControlColors(){let e=this.el.querySelector("#graph-controls");if(!e)return;let t=this.isDarkMode(),n=t?"bg-gray-800":"bg-white",i=t?"border-gray-600":"border-gray-300",r=t?"text-gray-300":"text-gray-600",s=t?"hover:bg-gray-700":"hover:bg-gray-100";e.querySelectorAll("button").forEach(o=>{if(o.id==="toggle-tracking"&&this.trackActiveNode){let a=t?"bg-blue-900":"bg-blue-100",l=t?"border-blue-500":"border-blue-400",c=t?"text-blue-400":"text-blue-600";o.className=`w-8 h-8 flex items-center justify-center rounded-md border transition-colors cursor-pointer ${a} ${l} ${c}`}else o.className=`w-8 h-8 flex items-center justify-center rounded-md border transition-colors cursor-pointer ${n} ${i} ${r} ${s}`})}},Uw=$V;var WV={Completer:Ac,CronChart:$d,CronSparkline:$h,JobHistoryChart:Vd,JobsChart:Gd,HistoryBack:Xd,Instantiator:Kd,QueueDetailChart:Zd,QueueSparkline:Wh,Refresher:Jd,Relativize:Qd,Shortcuts:th,SidebarResizer:eh,Themer:Vh,TimelineConnectors:Hh,Tippy:Uh,WorkflowGraph:Uw},So;Mo.default.config({barColors:{0:"#0284c7"},shadowColor:"rgba(0, 0, 0, .3)"});window.addEventListener("phx:page-loading-start",e=>{So||(So=setTimeout(()=>Mo.default.show(),500))});window.addEventListener("phx:page-loading-stop",e=>{clearTimeout(So),So=void 0,Mo.default.hide()});window.addEventListener("phx:scroll-top",()=>{window.scrollTo({top:0,behavior:"instant"})});window.addEventListener("phx:copy-to-clipboard",e=>{let t=e.detail.text;if(navigator.clipboard)navigator.clipboard.writeText(t);else{let n=document.createElement("textarea");n.value=t,n.style.position="fixed",n.style.opacity="0",document.body.appendChild(n),n.focus(),n.select();try{document.execCommand("copy")}finally{document.body.removeChild(n)}}});var VV=document.querySelector("meta[name='csrf-token']").getAttribute("content"),HV=document.querySelector("meta[name='live-transport']").getAttribute("content"),UV=document.querySelector("meta[name='live-path']").getAttribute("content"),YV=new LiveView.LiveSocket(UV,Phoenix.Socket,{transport:HV==="longpoll"?Phoenix.LongPoll:WebSocket,params:{_csrf_token:VV,init_state:Tc()},hooks:WV});YV.connect();})(); /*! * @kurkle/color v0.3.2 * https://github.com/kurkle/color#readme