diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 107954b79..baee1ba60 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ # See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks -exclude: (^LICENSE.md$|^src/VERSION$|^src/(bw/misc/root-ca.pem$|deps/src/|common/core/modsecurity/files|ui/static/js/(editor/|utils/purify/|tsparticles\.bundle\.min\.js))|\.(svg|drawio|patch\d?|ascii|tf|tftpl)$) +exclude: (^LICENSE.md$|^src/VERSION$|^env/|^src/(bw/misc/root-ca.pem$|deps/src/|common/core/modsecurity/files|ui/static/js/(editor/|utils/purify/|tsparticles\.bundle\.min\.js))|\.(svg|drawio|patch\d?|ascii|tf|tftpl|key)$) repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: c4a0b883114b00d8d76b479c820ce7950211c99b # frozen: v4.5.0 @@ -16,8 +16,8 @@ repos: args: ["--allow-multiple-documents"] - id: check-case-conflict - - repo: https://github.com/ambv/black - rev: 2a1c67e0b2f81df602ec1f6e7aeb030b9709dc7c # frozen: 23.11.0 + - repo: https://github.com/psf/black + rev: ec91a2be3c44d88e1a3960a4937ad6ed3b63464e # frozen: 23.12.1 hooks: - id: black name: Black Python Formatter @@ -36,21 +36,21 @@ repos: exclude: ^src/(bw/lua/middleclass.lua|common/core/antibot/captcha.lua)$ - repo: https://github.com/lunarmodules/luacheck - rev: ababb6d403d634eb74d2c541035e9ede966e710d # frozen: v1.1.1 + rev: 418f48976c73be697fe64b0eba9ea9821ac9bca8 # frozen: v1.1.2 hooks: - id: luacheck exclude: ^src/(bw/lua/middleclass.lua|common/core/antibot/captcha.lua)$ args: ["--std", "min", "--codes", "--ranges", "--no-cache"] - repo: https://github.com/pycqa/flake8 - rev: 10f4af6dbcf93456ba7df762278ae61ba3120dc6 # frozen: 6.1.0 + rev: 7d37d9032d0d161634be4554273c30efd4dea0b3 # frozen: 7.0.0 hooks: - id: flake8 name: Flake8 Python Linter args: ["--max-line-length=250", "--ignore=E266,E402,E722,W503"] - repo: https://github.com/dosisod/refurb - rev: a25b5d6087bba1509f96654c583efcd7796452cd # frozen: v1.24.0 + rev: a7c461fcfaa2ca3248d489cdf7fed8e2d4fd8520 # frozen: v1.26.0 hooks: - id: refurb name: Refurb Python Refactoring Tool diff --git a/docs/json2md.py b/docs/json2md.py index 7ea963260..cca38729a 100755 --- a/docs/json2md.py +++ b/docs/json2md.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from io import StringIO from json import loads diff --git a/docs/settings.md b/docs/settings.md index 3aed4b61b..143108788 100644 --- a/docs/settings.md +++ b/docs/settings.md @@ -243,7 +243,7 @@ Manage default error pages | Setting | Default | Context |Multiple| Description | |-------------------------|-------------------------------------------------|---------|--------|------------------------------------------------------------------------------------------------------------------------| |`ERRORS` | |multisite|no |List of HTTP error code and corresponding error pages, separated with spaces (404=/my404.html 403=/errors/403.html ...).| -|`INTERCEPTED_ERROR_CODES`|`400 401 403 404 405 413 429 500 501 502 503 504`|multisite|no |List of HTTP error code intercepted by Bunkerweb | +|`INTERCEPTED_ERROR_CODES`|`400 401 403 404 405 413 429 500 501 502 503 504`|multisite|no |List of HTTP error code intercepted by BunkerWeb | ### Greylist @@ -550,4 +550,3 @@ Allow access based on internal and external IP/network/rDNS/ASN whitelists. |`WHITELIST_USER_AGENT_URLS`| |global |no |List of URLs, separated with spaces, containing good User-Agent to whitelist. | |`WHITELIST_URI` | |multisite|no |List of URI (PCRE regex), separated with spaces, to whitelist. | |`WHITELIST_URI_URLS` | |global |no |List of URLs, separated with spaces, containing bad URI to whitelist. | - diff --git a/docs/web-ui.md b/docs/web-ui.md index 2beb9f9fe..4e6170092 100644 --- a/docs/web-ui.md +++ b/docs/web-ui.md @@ -44,7 +44,7 @@ The setup wizard is a feature that helps you to **configure** and **install the
Account section of the setup wizard
-Choose your administator username and password. Please note that password must have at least 8 chars with 1 lower case letter, 1 upper case letter, 1 digit and 1 special char. +Choose your administrator username and password. Please note that password must have at least 8 chars with 1 lower case letter, 1 upper case letter, 1 digit and 1 special char.
![Overview](assets/img/ui-wizard-settings.webp){ align=center, width="350" } diff --git a/examples/behind-reverse-proxy/setup-linux.sh b/examples/behind-reverse-proxy/setup-linux.sh index f93c7e24a..f6e7edd25 100755 --- a/examples/behind-reverse-proxy/setup-linux.sh +++ b/examples/behind-reverse-proxy/setup-linux.sh @@ -24,6 +24,7 @@ if [ -f /lib/systemd/system/haproxy.service ] ; then systemctl daemon-reload fi systemctl start haproxy +# shellcheck disable=SC2181 if [ $? -ne 0 ] ; then systemctl status haproxy journalctl -u haproxy.service diff --git a/src/autoconf/Config.py b/src/autoconf/Config.py index 23f5a81a2..edf0bb60e 100644 --- a/src/autoconf/Config.py +++ b/src/autoconf/Config.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from os import getenv from time import sleep diff --git a/src/autoconf/Controller.py b/src/autoconf/Controller.py index 8754ea07f..616793c03 100644 --- a/src/autoconf/Controller.py +++ b/src/autoconf/Controller.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from abc import abstractmethod from os import getenv diff --git a/src/autoconf/DockerController.py b/src/autoconf/DockerController.py index 491850baf..4529e176d 100644 --- a/src/autoconf/DockerController.py +++ b/src/autoconf/DockerController.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from typing import Any, Dict, List from docker import DockerClient diff --git a/src/autoconf/IngressController.py b/src/autoconf/IngressController.py index d7a01f633..2e9db4a77 100644 --- a/src/autoconf/IngressController.py +++ b/src/autoconf/IngressController.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from time import sleep from traceback import format_exc diff --git a/src/autoconf/SwarmController.py b/src/autoconf/SwarmController.py index 8772b320f..d0976620b 100644 --- a/src/autoconf/SwarmController.py +++ b/src/autoconf/SwarmController.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from time import sleep from traceback import format_exc diff --git a/src/autoconf/main.py b/src/autoconf/main.py index c70e27307..042f4fd7a 100644 --- a/src/autoconf/main.py +++ b/src/autoconf/main.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from os import _exit, getenv, sep from os.path import join diff --git a/src/bw/lua/bunkerweb/api.lua b/src/bw/lua/bunkerweb/api.lua index 2c4962228..9c2f9a2a8 100644 --- a/src/bw/lua/bunkerweb/api.lua +++ b/src/bw/lua/bunkerweb/api.lua @@ -1,14 +1,14 @@ local ngx = ngx local ngx_req = ngx.req +local cdatastore = require "bunkerweb.datastore" local cjson = require "cjson" local class = require "middleclass" -local cdatastore = require "bunkerweb.datastore" local clogger = require "bunkerweb.logger" +local helpers = require "bunkerweb.helpers" local process = require "ngx.process" local rsignal = require "resty.signal" local upload = require "resty.upload" local utils = require "bunkerweb.utils" -local helpers = require "bunkerweb.helpers" local api = class("api") @@ -287,13 +287,14 @@ function api:do_api_call() return false, resp["msg"], HTTP_INTERNAL_SERVER_ERROR, encode(resp) end for _, plugin in ipairs(list) do - local plugin_lua, err = require_plugin(plugin.id) + local plugin_lua, _ = require_plugin(plugin.id) if plugin_lua and plugin_lua.api ~= nil then local ok, plugin_obj = new_plugin(plugin_lua, self.ctx) if not ok then logger:log(ERR, "can't instantiate " .. plugin.id .. " : " .. plugin_obj) else - local ok, ret = call_plugin(plugin_obj, "api") + local ret + ok, ret = call_plugin(plugin_obj, "api") if not ok then logger:log(ERR, "error while executing " .. plugin.id .. ":api() : " .. ret) else diff --git a/src/bw/lua/bunkerweb/cachestore.lua b/src/bw/lua/bunkerweb/cachestore.lua index 172838f4e..c20349274 100644 --- a/src/bw/lua/bunkerweb/cachestore.lua +++ b/src/bw/lua/bunkerweb/cachestore.lua @@ -1,7 +1,7 @@ local ngx = ngx local class = require "middleclass" -local clusterstore = require "bunkerweb.clusterstore" local clogger = require "bunkerweb.logger" +local clusterstore = require "bunkerweb.clusterstore" local mlcache = require "resty.mlcache" local utils = require "bunkerweb.utils" local cachestore = class("cachestore") @@ -184,10 +184,12 @@ function cachestore:del_redis(key) return true end +-- luacheck: ignore 212 function cachestore:purge() return cache:purge(true) end +-- luacheck: ignore 212 function cachestore:update() return cache:update() end diff --git a/src/bw/lua/bunkerweb/clusterstore.lua b/src/bw/lua/bunkerweb/clusterstore.lua index 3486ed9f3..ec7545afe 100644 --- a/src/bw/lua/bunkerweb/clusterstore.lua +++ b/src/bw/lua/bunkerweb/clusterstore.lua @@ -33,7 +33,7 @@ function clusterstore:initialize(pool) ["REDIS_SENTINEL_HOSTS"] = "", ["REDIS_SENTINEL_USERNAME"] = "", ["REDIS_SENTINEL_PASSWORD"] = "", - ["REDIS_SENTINEL_MASTER"] = "" + ["REDIS_SENTINEL_MASTER"] = "", } -- Set them for later use self.variables = {} @@ -57,7 +57,6 @@ function clusterstore:initialize(pool) keepalive_poolsize = tonumber(self.variables["REDIS_KEEPALIVE_POOL"]), connection_options = { ssl = self.variables["REDIS_SSL"] == "yes", - }, host = self.variables["REDIS_HOST"], port = tonumber(self.variables["REDIS_PORT"]), @@ -68,7 +67,7 @@ function clusterstore:initialize(pool) sentinel_password = self.variables["REDIS_SENTINEL_PASSWORD"], master_name = self.variables["REDIS_SENTINEL_MASTER"], role = "master", - sentinels = {} + sentinels = {}, } self.pool = pool == nil or pool if self.pool then @@ -83,7 +82,7 @@ function clusterstore:initialize(pool) else sport = tonumber(sport) end - table.insert(options.sentinel, {host = shost, port = sport}) + table.insert(options.sentinel, { host = shost, port = sport }) end end self.options = options @@ -110,12 +109,13 @@ function clusterstore:connect(readonly) -- Connect to sentinels if needed local redis_client, err if #self.options.sentinels > 0 then - local redis_sentinel, err = self.redis_connector:connect() + local redis_sentinel + redis_sentinel, err = self.redis_connector:connect() if not redis_sentinel then return false, "error while connecting to sentinels : " .. err end if readonly then - local redis_clients, err = rs.get_slaves(redis_sentinel, self.options.master_name) + local redis_clients, _ = rs.get_slaves(redis_sentinel, self.options.master_name) if redis_clients then redis_client = redis_clients[random(#redis_clients)] else @@ -124,7 +124,7 @@ function clusterstore:connect(readonly) else redis_client, err = rs.get_master(redis_sentinel, self.options.master_name) end - -- Classic connection + -- Classic connection else redis_client, err = self.redis_connector:connect() end @@ -155,7 +155,7 @@ function clusterstore:close() local ok, err if self.pool then ok, err = self.redis_connector:set_keepalive(self.redis_client) - -- No pool + -- No pool else ok, err = self.redis_client:close() end diff --git a/src/bw/lua/bunkerweb/ctx.lua b/src/bw/lua/bunkerweb/ctx.lua index 1a63d95a4..f0ecf0801 100644 --- a/src/bw/lua/bunkerweb/ctx.lua +++ b/src/bw/lua/bunkerweb/ctx.lua @@ -13,16 +13,13 @@ -- * allow passing of context -- * updated to work with new 1.19.x apis -local ffi = require "ffi" local base = require "resty.core.base" +local ffi = require "ffi" require "resty.core.ctx" - local C = ffi.C local ngx = ngx local var = ngx.var -local ngx_log = ngx.log -local ngx_WARN = ngx.WARN local tonumber = tonumber local registry = debug.getregistry() local subsystem = ngx.config.subsystem @@ -34,75 +31,69 @@ local ngx_ERR = ngx.ERR local ngx_lua_ffi_get_ctx_ref if subsystem == "http" then - ngx_lua_ffi_get_ctx_ref = C.ngx_http_lua_ffi_get_ctx_ref + ngx_lua_ffi_get_ctx_ref = C.ngx_http_lua_ffi_get_ctx_ref elseif subsystem == "stream" then - ngx_lua_ffi_get_ctx_ref = C.ngx_stream_lua_ffi_get_ctx_ref + ngx_lua_ffi_get_ctx_ref = C.ngx_stream_lua_ffi_get_ctx_ref end - local in_ssl_phase = ffi.new("int[1]") local ssl_ctx_ref = ffi.new("int[1]") - local FFI_NO_REQ_CTX = base.FFI_NO_REQ_CTX - local _M = {} - function _M.stash_ref(ctx) - local r = get_request() - if not r then - logger:log(ngx_ERR, "could not stash ngx.ctx ref: no request found") - return - end + local r = get_request() + if not r then + logger:log(ngx_ERR, "could not stash ngx.ctx ref: no request found") + return + end - do - local ctx_ref = var.ctx_ref - if not ctx_ref or ctx_ref ~= "" then - return - end + do + local ctx_ref = var.ctx_ref + if not ctx_ref or ctx_ref ~= "" then + return + end - if not ctx then - local _ = ngx.ctx -- load context if not previously loaded - end - end - local ctx_ref = ngx_lua_ffi_get_ctx_ref(r, in_ssl_phase, ssl_ctx_ref) - if ctx_ref == FFI_NO_REQ_CTX then - logger:log(ngx_ERR, "could not stash ngx.ctx ref: no ctx found") - return - end + if not ctx then + local _ = ngx.ctx -- load context if not previously loaded + end + end + local ctx_ref = ngx_lua_ffi_get_ctx_ref(r, in_ssl_phase, ssl_ctx_ref) + if ctx_ref == FFI_NO_REQ_CTX then + logger:log(ngx_ERR, "could not stash ngx.ctx ref: no ctx found") + return + end - var.ctx_ref = ctx_ref + var.ctx_ref = ctx_ref end - function _M.apply_ref() - local r = get_request() - if not r then - logger:log(ngx_ERR, "could not apply ngx.ctx: no request found") - return - end + local r = get_request() + if not r then + logger:log(ngx_ERR, "could not apply ngx.ctx: no request found") + return + end - local ctx_ref = var.ctx_ref - if not ctx_ref or ctx_ref == "" then - return - end + local ctx_ref = var.ctx_ref + if not ctx_ref or ctx_ref == "" then + return + end - ctx_ref = tonumber(ctx_ref) - if not ctx_ref then - return - end + ctx_ref = tonumber(ctx_ref) + if not ctx_ref then + return + end - local orig_ctx = registry.ngx_lua_ctx_tables[ctx_ref] - if not orig_ctx then - logger:log(ngx_ERR, "could not apply ngx.ctx: no ctx found") - return - end + local orig_ctx = registry.ngx_lua_ctx_tables[ctx_ref] + if not orig_ctx then + logger:log(ngx_ERR, "could not apply ngx.ctx: no ctx found") + return + end - ngx.ctx = orig_ctx - var.ctx_ref = "" + ngx.ctx = orig_ctx + var.ctx_ref = "" end - return _M diff --git a/src/bw/lua/bunkerweb/helpers.lua b/src/bw/lua/bunkerweb/helpers.lua index 58fa74c69..f417f2e04 100644 --- a/src/bw/lua/bunkerweb/helpers.lua +++ b/src/bw/lua/bunkerweb/helpers.lua @@ -1,8 +1,8 @@ -local ngx = ngx +local ngx = ngx +local base = require "resty.core.base" +local bwctx = require "bunkerweb.ctx" local cjson = require "cjson" local utils = require "bunkerweb.utils" -local bwctx = require "bunkerweb.ctx" -local base = require "resty.core.base" local open = io.open local decode = cjson.decode diff --git a/src/bw/lua/bunkerweb/plugin.lua b/src/bw/lua/bunkerweb/plugin.lua index 4f8282b4d..3db038311 100644 --- a/src/bw/lua/bunkerweb/plugin.lua +++ b/src/bw/lua/bunkerweb/plugin.lua @@ -26,7 +26,7 @@ function plugin:initialize(id, ctx) "header_filter", "body_filter", "log", - "preread" + "preread", } do if current_phase == check_phase then is_request = true @@ -44,8 +44,7 @@ function plugin:initialize(id, ctx) if self.is_request then self.ctx = ctx or ngx.ctx self.datastore = get_ctx_obj("datastore", self.ctx) or datastore:new() - self.cachestore = get_ctx_obj("cachestore", self.ctx) - or cachestore:new(use_redis == "yes", self.ctx) + self.cachestore = get_ctx_obj("cachestore", self.ctx) or cachestore:new(use_redis == "yes", self.ctx) self.clusterstore = get_ctx_obj("clusterstore", self.ctx) or clusterstore:new() self.cachestore_local = get_ctx_obj("cachestore_local", self.ctx) or cachestore:new(false, self.ctx) else diff --git a/src/bw/lua/bunkerweb/utils.lua b/src/bw/lua/bunkerweb/utils.lua index e3ab870c2..9b381c680 100644 --- a/src/bw/lua/bunkerweb/utils.lua +++ b/src/bw/lua/bunkerweb/utils.lua @@ -769,7 +769,7 @@ utils.get_phases = function() "log", "preread", "log_stream", - "log_default" + "log_default", } end @@ -780,7 +780,7 @@ utils.is_cosocket_available = function() "access", "content", "ssl_certificate", - "preread" + "preread", } local current_phase = get_phase() for _, phase in ipairs(phases) do @@ -808,4 +808,17 @@ utils.get_ctx_obj = function(obj, ctx) return nil end +utils.read_files = function(files) + local data = {} + for _, file in ipairs(files) do + local f, err = open(file, "r") + if not f then + return false, file .. " = " .. err + end + table.insert(data, f:read("*a")) + f:close() + end + return true, data +end + return utils diff --git a/src/common/api/API.py b/src/common/api/API.py index 4a94f5474..b5aa3218b 100644 --- a/src/common/api/API.py +++ b/src/common/api/API.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from typing import Literal, Optional, Union from requests import request diff --git a/src/common/cli/CLI.py b/src/common/cli/CLI.py index d71c45a64..b8b6cf754 100644 --- a/src/common/cli/CLI.py +++ b/src/common/cli/CLI.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from dotenv import dotenv_values from os import getenv, sep @@ -6,7 +6,7 @@ from os.path import join from pathlib import Path from redis import StrictRedis from sys import path as sys_path -from typing import Tuple +from typing import Optional, Tuple for deps_path in [join(sep, "usr", "share", "bunkerweb", *paths) for paths in (("utils",), ("db",))]: @@ -15,7 +15,6 @@ for deps_path in [join(sep, "usr", "share", "bunkerweb", *paths) for paths in (( from API import API # type: ignore from ApiCaller import ApiCaller # type: ignore -from Database import Database # type: ignore from logger import setup_logger # type: ignore @@ -47,28 +46,35 @@ class CLI(ApiCaller): if variables_path.is_file(): self.__variables = dotenv_values(variables_path) - db = Database(self.__logger, sqlalchemy_string=self.__variables.get("DATABASE_URI", None)) - self.__variables = db.get_config() + if Path(sep, "usr", "share", "bunkerweb", "db").exists(): + from Database import Database # type: ignore + + db = Database(self.__logger, sqlalchemy_string=self.__get_variable("DATABASE_URI", None)) + self.__variables = db.get_config() + + assert isinstance(self.__variables, dict), "Failed to get variables from database" self.__integration = self.__detect_integration() - self.__use_redis = self.__variables.get("USE_REDIS", "no") == "yes" + self.__use_redis = self.__get_variable("USE_REDIS", "no") == "yes" self.__redis = None if self.__use_redis: - redis_host = self.__variables.get("REDIS_HOST") + redis_host = self.__get_variable("REDIS_HOST") if redis_host: - redis_port = self.__variables.get("REDIS_PORT", "6379") + redis_port = self.__get_variable("REDIS_PORT", "6379") + assert isinstance(redis_port, str), "REDIS_PORT is not a string" if not redis_port.isdigit(): self.__logger.error(f"REDIS_PORT is not a valid port number: {redis_port}, defaulting to 6379") redis_port = "6379" redis_port = int(redis_port) - redis_db = self.__variables.get("REDIS_DB", "0") + redis_db = self.__get_variable("REDIS_DB", "0") + assert isinstance(redis_db, str), "REDIS_DB is not a string" if not redis_db.isdigit(): self.__logger.error(f"REDIS_DB is not a valid database number: {redis_db}, defaulting to 0") redis_db = "0" redis_db = int(redis_db) - redis_timeout = self.__variables.get("REDIS_TIMEOUT", "1000.0") + redis_timeout = self.__get_variable("REDIS_TIMEOUT", "1000.0") if redis_timeout: try: redis_timeout = float(redis_timeout) @@ -76,7 +82,8 @@ class CLI(ApiCaller): self.__logger.error(f"REDIS_TIMEOUT is not a valid timeout: {redis_timeout}, defaulting to 1000 ms") redis_timeout = 1000.0 - redis_keepalive_pool = self.__variables.get("REDIS_KEEPALIVE_POOL", "10") + redis_keepalive_pool = self.__get_variable("REDIS_KEEPALIVE_POOL", "10") + assert isinstance(redis_keepalive_pool, str), "REDIS_KEEPALIVE_POOL is not a string" if not redis_keepalive_pool.isdigit(): self.__logger.error(f"REDIS_KEEPALIVE_POOL is not a valid number of connections: {redis_keepalive_pool}, defaulting to 10") redis_keepalive_pool = "10" @@ -90,7 +97,7 @@ class CLI(ApiCaller): socket_connect_timeout=redis_timeout, socket_keepalive=True, max_connections=redis_keepalive_pool, - ssl=self.__variables.get("REDIS_SSL", "no") == "yes", + ssl=self.__get_variable("REDIS_SSL", "no") == "yes", ) else: self.__logger.error("USE_REDIS is set to yes but REDIS_HOST is not set, disabling redis") @@ -100,8 +107,8 @@ class CLI(ApiCaller): super().__init__( [ API( - f"http://127.0.0.1:{self.__variables.get('API_HTTP_PORT', '5000')}", - host=self.__variables.get("API_SERVER_NAME", "bwapi"), + f"http://127.0.0.1:{self.__get_variable('API_HTTP_PORT', '5000')}", + host=self.__get_variable("API_SERVER_NAME", "bwapi"), ) ] ) @@ -109,14 +116,20 @@ class CLI(ApiCaller): super().__init__() self.auto_setup(self.__integration) + def __get_variable(self, variable: str, default: Optional[str] = None) -> Optional[str]: + return getenv(variable, self.__variables.get(variable, default)) + def __detect_integration(self) -> str: + if Path(sep, "usr", "sbin", "nginx").exists(): + return "linux" + integration_path = Path(sep, "usr", "share", "bunkerweb", "INTEGRATION") os_release_path = Path(sep, "etc", "os-release") - if self.__variables.get("KUBERNETES_MODE", "no").lower() == "yes": + if self.__get_variable("KUBERNETES_MODE", "no").lower() == "yes": # type: ignore return "kubernetes" - elif self.__variables.get("SWARM_MODE", "no").lower() == "yes": + elif self.__get_variable("SWARM_MODE", "no").lower() == "yes": # type: ignore return "swarm" - elif self.__variables.get("AUTOCONF_MODE", "no").lower() == "yes": + elif self.__get_variable("AUTOCONF_MODE", "no").lower() == "yes": # type: ignore return "autoconf" elif integration_path.is_file(): return integration_path.read_text(encoding="utf-8").strip().lower() @@ -137,19 +150,12 @@ class CLI(ApiCaller): def ban(self, ip: str, exp: float) -> Tuple[bool, str]: if self.__redis: - ok = self.__redis.set( - f"bans_ip_{ip}", - "manual", - ex=exp, - ) + ok = self.__redis.set(f"bans_ip_{ip}", "manual", ex=exp) if not ok: self.__logger.error(f"Failed to ban {ip} in redis") if self.send_to_apis("POST", "/ban", data={"ip": ip, "exp": exp}): - return ( - True, - f"IP {ip} has been banned for {format_remaining_time(exp)}", - ) + return (True, f"IP {ip} has been banned for {format_remaining_time(exp)}") return False, "error" def bans(self) -> Tuple[bool, str]: @@ -167,13 +173,7 @@ class CLI(ApiCaller): for key in self.__redis.scan_iter("bans_ip_*"): ip = key.decode("utf-8").replace("bans_ip_", "") exp = self.__redis.ttl(key) - servers["redis"].append( - { - "ip": ip, - "exp": exp, - "reason": "manual", - } - ) + servers["redis"].append({"ip": ip, "exp": exp, "reason": "manual"}) cli_str = "" for server, bans in servers.items(): diff --git a/src/common/cli/main.py b/src/common/cli/main.py index ad019711e..92473b7c7 100644 --- a/src/common/cli/main.py +++ b/src/common/cli/main.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from argparse import ArgumentParser from os import _exit, getenv, sep diff --git a/src/common/confs/api.conf b/src/common/confs/api.conf index bd627dcf5..61efdd377 100644 --- a/src/common/confs/api.conf +++ b/src/common/confs/api.conf @@ -18,7 +18,7 @@ server { -- Instantiate objects and import required modules local logger = require "bunkerweb.logger":new("API") local helpers = require "bunkerweb.helpers" - + local ngx = ngx local INFO = ngx.INFO local ERR = ngx.ERR diff --git a/src/common/core/antibot/antibot.lua b/src/common/core/antibot/antibot.lua index 255dbb57c..14cab8f9e 100644 --- a/src/common/core/antibot/antibot.lua +++ b/src/common/core/antibot/antibot.lua @@ -26,7 +26,7 @@ local to_hex = str.to_hex local http_new = http.new local decode = cjson.decode -local template = nil +local template local render = nil if subsystem == "http" then template = require "resty.template" diff --git a/src/common/core/badbehavior/badbehavior.lua b/src/common/core/badbehavior/badbehavior.lua index 4e3f2f8c1..8c0c7e971 100644 --- a/src/common/core/badbehavior/badbehavior.lua +++ b/src/common/core/badbehavior/badbehavior.lua @@ -65,7 +65,7 @@ function badbehavior.increase(premature, ip, count_time, ban_time, threshold, us -- Instantiate objects local logger = require "bunkerweb.logger":new("badbehavior") local datastore = require "bunkerweb.datastore":new() - + -- Declare counter local counter = false -- Redis case diff --git a/src/common/core/blacklist/blacklist.lua b/src/common/core/blacklist/blacklist.lua index 8c84c7b61..63136ed5c 100644 --- a/src/common/core/blacklist/blacklist.lua +++ b/src/common/core/blacklist/blacklist.lua @@ -348,6 +348,7 @@ function blacklist:is_blacklisted_ua() return false, "ok" end +-- luacheck: ignore 212 function blacklist:get_data(blacklisted) local data = {} if blacklisted == "ip" then diff --git a/src/common/core/blacklist/jobs/blacklist-download.py b/src/common/core/blacklist/jobs/blacklist-download.py index 29eee550f..2bc5434b8 100755 --- a/src/common/core/blacklist/jobs/blacklist-download.py +++ b/src/common/core/blacklist/jobs/blacklist-download.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from contextlib import suppress from ipaddress import ip_address, ip_network diff --git a/src/common/core/bunkernet/bunkernet.lua b/src/common/core/bunkernet/bunkernet.lua index cc154b513..fb030b0af 100644 --- a/src/common/core/bunkernet/bunkernet.lua +++ b/src/common/core/bunkernet/bunkernet.lua @@ -199,9 +199,11 @@ function bunkernet:log(bypass_checks) elseif data then return self:ret(true, "already reported recently") end + local ok, err -- luacheck: ignore 212 431 local function report_callback(premature, obj, ip, reason, reason_data, method, url, headers, use_redis) - local ok, err, status, _ = obj:report(ip, reason, reason_data, method, url, headers) + local status, _ + ok, err, status, _ = obj:report(ip, reason, reason_data, method, url, headers) if status == 429 then obj.logger:log(WARN, "bunkernet API is rate limiting us") elseif not ok then diff --git a/src/common/core/bunkernet/jobs/bunkernet-data.py b/src/common/core/bunkernet/jobs/bunkernet-data.py index b307b4f24..d79b3377e 100755 --- a/src/common/core/bunkernet/jobs/bunkernet-data.py +++ b/src/common/core/bunkernet/jobs/bunkernet-data.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from os import _exit, getenv, sep from os.path import join diff --git a/src/common/core/bunkernet/jobs/bunkernet-register.py b/src/common/core/bunkernet/jobs/bunkernet-register.py index 3abe90149..b9803e84f 100755 --- a/src/common/core/bunkernet/jobs/bunkernet-register.py +++ b/src/common/core/bunkernet/jobs/bunkernet-register.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from os import _exit, getenv, sep from os.path import join diff --git a/src/common/core/bunkernet/jobs/bunkernet.py b/src/common/core/bunkernet/jobs/bunkernet.py index e976b4555..23983afba 100644 --- a/src/common/core/bunkernet/jobs/bunkernet.py +++ b/src/common/core/bunkernet/jobs/bunkernet.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from os import getenv, sep from pathlib import Path diff --git a/src/common/core/cors/cors.lua b/src/common/core/cors/cors.lua index b50fbb523..814d1150e 100644 --- a/src/common/core/cors/cors.lua +++ b/src/common/core/cors/cors.lua @@ -106,7 +106,7 @@ function cors:access() nil, { id = "origin", - origin = self.ctx.bw.http_origin + origin = self.ctx.bw.http_origin, } ) end diff --git a/src/common/core/country/country.lua b/src/common/core/country/country.lua index fe547aa84..8bb767fd6 100644 --- a/src/common/core/country/country.lua +++ b/src/common/core/country/country.lua @@ -5,7 +5,6 @@ local utils = require "bunkerweb.utils" local country = class("country", plugin) -local ngx = ngx local get_country = utils.get_country local get_deny_status = utils.get_deny_status local decode = cjson.decode @@ -46,7 +45,7 @@ function country:access() nil, { id = "country", - country = data.country + country = data.country, } ) end @@ -93,7 +92,7 @@ function country:access() nil, { id = "country", - country = country_data + country = country_data, } ) end @@ -113,7 +112,7 @@ function country:access() nil, { id = "country", - country = country_data + country = country_data, } ) end diff --git a/src/common/core/customcert/customcert.lua b/src/common/core/customcert/customcert.lua index 7a05262ae..76655c1f9 100644 --- a/src/common/core/customcert/customcert.lua +++ b/src/common/core/customcert/customcert.lua @@ -1,7 +1,7 @@ local class = require "middleclass" local plugin = require "bunkerweb.plugin" -local utils = require "bunkerweb.utils" local ssl = require "ngx.ssl" +local utils = require "bunkerweb.utils" local customcert = class("customcert", plugin) @@ -13,7 +13,7 @@ local ssl_server_name = ssl.server_name local get_variable = utils.get_variable local get_multiple_variables = utils.get_multiple_variables local has_variable = utils.has_variable -local open = io.open +local read_files = utils.read_files function customcert:initialize(ctx) -- Call parent initialize @@ -22,25 +22,29 @@ end function customcert:init() local ret_ok, ret_err = true, "success" - if has_variable("USE_CUSTOM_SSL", "yes") then + if has_variable("USE_CUSTOM_SSL", "yes") then local multisite, err = get_variable("MULTISITE", false) if not multisite then return self:ret(false, "can't get MULTISITE variable : " .. err) end if multisite == "yes" then - local vars, err = get_multiple_variables({"USE_CUSTOM_SSL", "SERVER_NAME"}) + local vars + vars, err = get_multiple_variables({ "USE_CUSTOM_SSL", "SERVER_NAME" }) if not vars then return self:ret(false, "can't get USE_CUSTOM_SSL variables : " .. err) end for server_name, multisite_vars in pairs(vars) do if multisite_vars["USE_CUSTOM_SSL"] == "yes" and server_name ~= "global" then - local check, data = self:read_files(server_name) + local check, data = read_files({ + "/var/cache/bunkerweb/customcert/" .. server_name .. "/cert.pem", + "/var/cache/bunkerweb/customcert/" .. server_name .. "/key.pem", + }) if not check then self.logger:log(ERR, "error while reading files : " .. data) ret_ok = false ret_err = "error reading files" else - local check, err = self:load_data(data, multisite_vars["SERVER_NAME"]) + check, err = self:load_data(data, multisite_vars["SERVER_NAME"]) if not check then self.logger:log(ERR, "error while loading data : " .. err) ret_ok = false @@ -50,17 +54,21 @@ function customcert:init() end end else - local server_name, err = get_variable("SERVER_NAME", false) + local server_name + server_name, err = get_variable("SERVER_NAME", false) if not server_name then return self:ret(false, "can't get SERVER_NAME variable : " .. err) end - local check, data = self:read_files(server_name:match("%S+")) + local check, data = read_files({ + "/var/cache/bunkerweb/customcert/" .. server_name:match("%S+") .. "/cert.pem", + "/var/cache/bunkerweb/customcert/" .. server_name:match("%S+") .. "/key.pem", + }) if not check then self.logger:log(ERR, "error while reading files : " .. data) ret_ok = false ret_err = "error reading files" else - local check, err = self:load_data(data, server_name) + check, err = self:load_data(data, server_name) if not check then self.logger:log(ERR, "error while loading data : " .. err) ret_ok = false @@ -70,7 +78,7 @@ function customcert:init() end else ret_err = "custom cert is not used" - end + end return self:ret(ret_ok, ret_err) end @@ -79,31 +87,18 @@ function customcert:ssl_certificate() if not server_name then return self:ret(false, "can't get server_name : " .. err) end - if self.variables["USE_CUSTOM_SSL"] == "yes" then - local data, err = self.datastore:get("plugin_customcert_" .. server_name, true) + if self.variables["USE_CUSTOM_SSL"] == "yes" then + local data + data, err = self.datastore:get("plugin_customcert_" .. server_name, true) if not data then - return self:ret(false, "error while getting plugin_customcert_" .. server_name .. " from datastore : " .. err) + return self:ret( + false, + "error while getting plugin_customcert_" .. server_name .. " from datastore : " .. err + ) end - return self:ret(true, "certificate/key data found", data) - end - return self:ret(true, "custom certificate is not used") -end - -function customcert:read_files(server_name) - local files = { - "/var/cache/bunkerweb/customcert/" .. server_name .. "/cert.pem", - "/var/cache/bunkerweb/customcert/" .. server_name .. "/key.pem" - } - local data = {} - for i, file in ipairs(files) do - local f, err = open(file, "r") - if not f then - return false, file .. " = " .. err - end - table.insert(data, f:read("*a")) - f:close() + return self:ret(true, "certificate/key data found", data) end - return true, data + return self:ret(true, "custom certificate is not used") end function customcert:load_data(data, server_name) @@ -120,7 +115,8 @@ function customcert:load_data(data, server_name) -- Cache data for key in server_name:gmatch("%S+") do local cache_key = "plugin_customcert_" .. key - local ok, err = self.datastore:set(cache_key, {cert_chain, priv_key}, nil, true) + local ok + ok, err = self.datastore:set(cache_key, { cert_chain, priv_key }, nil, true) if not ok then return false, "error while setting data into datastore : " .. err end diff --git a/src/common/core/customcert/jobs/custom-cert.py b/src/common/core/customcert/jobs/custom-cert.py index d57f71fb2..7377305b9 100644 --- a/src/common/core/customcert/jobs/custom-cert.py +++ b/src/common/core/customcert/jobs/custom-cert.py @@ -1,11 +1,10 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from os import getenv, sep from os.path import join, normpath from pathlib import Path from sys import exit as sys_exit, path as sys_path from traceback import format_exc -from typing import Optional from base64 import b64decode for deps_path in [ @@ -103,7 +102,7 @@ try: cert_data = b64decode(getenv("CUSTOM_SSL_CERT_DATA", "")) key_data = b64decode(getenv("CUSTOM_SSL_KEY_DATA", "")) - for file, data in [("cert.pem", cert_data), ("key.pem", key_data)]: + for file, data in (("cert.pem", cert_data), ("key.pem", key_data)): if data != b"": file_path = Path(sep, "var", "tmp", "bunkerweb", "customcert", first_server, file) file_path.parent.mkdir(parents=True, exist_ok=True) @@ -140,7 +139,7 @@ try: cert_data = b64decode(getenv(f"{first_server}_CUSTOM_SSL_CERT_DATA", "")) key_data = b64decode(getenv(f"{first_server}_CUSTOM_SSL_KEY_DATA", "")) - for file, data in [("cert.pem", cert_data), ("key.pem", key_data)]: + for file, data in (("cert.pem", cert_data), ("key.pem", key_data)): if data != b"": file_path = Path(sep, "var", "tmp", "bunkerweb", "customcert", first_server, file) file_path.parent.mkdir(parents=True, exist_ok=True) diff --git a/src/common/core/dnsbl/dnsbl.lua b/src/common/core/dnsbl/dnsbl.lua index b5159405d..545c9a1b9 100644 --- a/src/common/core/dnsbl/dnsbl.lua +++ b/src/common/core/dnsbl/dnsbl.lua @@ -98,7 +98,7 @@ function dnsbl:access() nil, { id = "dnsbl", - dnsbl = cached + dnsbl = cached, } ) end @@ -161,7 +161,13 @@ function dnsbl:access() if not ok then return self:ret(false, "error while adding element to cache : " .. err) end - return self:ret(true, "IP is blacklisted by " .. ret_server, get_deny_status(), nil, {id = "dnsbl", dnsbl = ret_server}) + return self:ret( + true, + "IP is blacklisted by " .. ret_server, + get_deny_status(), + nil, + { id = "dnsbl", dnsbl = ret_server } + ) end -- Error case return self:ret(false, ret_err) diff --git a/src/common/core/errors/errors.lua b/src/common/core/errors/errors.lua index 6e3023bf5..8692d3a3d 100644 --- a/src/common/core/errors/errors.lua +++ b/src/common/core/errors/errors.lua @@ -4,7 +4,7 @@ local plugin = require "bunkerweb.plugin" local ngx = ngx local subsystem = ngx.config.subsystem -local template = nil +local template local render = nil if subsystem == "http" then template = require "resty.template" diff --git a/src/common/core/errors/files/error.html b/src/common/core/errors/files/error.html index ee854ea5b..7b76f4f56 100644 --- a/src/common/core/errors/files/error.html +++ b/src/common/core/errors/files/error.html @@ -1,4 +1,4 @@ - + diff --git a/src/common/core/greylist/jobs/greylist-download.py b/src/common/core/greylist/jobs/greylist-download.py index 7b3fbb6aa..7684d47ae 100755 --- a/src/common/core/greylist/jobs/greylist-download.py +++ b/src/common/core/greylist/jobs/greylist-download.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from contextlib import suppress from ipaddress import ip_address, ip_network diff --git a/src/common/core/jobs/jobs/download-plugins.py b/src/common/core/jobs/jobs/download-plugins.py index b2bf471fe..2a66ac6e2 100644 --- a/src/common/core/jobs/jobs/download-plugins.py +++ b/src/common/core/jobs/jobs/download-plugins.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from hashlib import sha256 from io import BytesIO diff --git a/src/common/core/jobs/jobs/mmdb-asn.py b/src/common/core/jobs/jobs/mmdb-asn.py index 21a9ecef3..d11e705c2 100755 --- a/src/common/core/jobs/jobs/mmdb-asn.py +++ b/src/common/core/jobs/jobs/mmdb-asn.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from datetime import date from gzip import decompress diff --git a/src/common/core/jobs/jobs/mmdb-country.py b/src/common/core/jobs/jobs/mmdb-country.py index 9728e7856..d305748b2 100755 --- a/src/common/core/jobs/jobs/mmdb-country.py +++ b/src/common/core/jobs/jobs/mmdb-country.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from datetime import date from gzip import decompress diff --git a/src/common/core/letsencrypt/jobs/certbot-auth.py b/src/common/core/letsencrypt/jobs/certbot-auth.py index 245056711..d01ac6eff 100755 --- a/src/common/core/letsencrypt/jobs/certbot-auth.py +++ b/src/common/core/letsencrypt/jobs/certbot-auth.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from os import getenv, sep from os.path import join diff --git a/src/common/core/letsencrypt/jobs/certbot-cleanup.py b/src/common/core/letsencrypt/jobs/certbot-cleanup.py index ddfeccb87..7c811b911 100755 --- a/src/common/core/letsencrypt/jobs/certbot-cleanup.py +++ b/src/common/core/letsencrypt/jobs/certbot-cleanup.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from os import getenv, sep from os.path import join diff --git a/src/common/core/letsencrypt/jobs/certbot-deploy.py b/src/common/core/letsencrypt/jobs/certbot-deploy.py index 12ad34608..d68e0ab27 100755 --- a/src/common/core/letsencrypt/jobs/certbot-deploy.py +++ b/src/common/core/letsencrypt/jobs/certbot-deploy.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from io import BytesIO from os import getenv, sep diff --git a/src/common/core/letsencrypt/jobs/certbot-new.py b/src/common/core/letsencrypt/jobs/certbot-new.py index 35593dd1f..17a0df5e6 100755 --- a/src/common/core/letsencrypt/jobs/certbot-new.py +++ b/src/common/core/letsencrypt/jobs/certbot-new.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from os import _exit, environ, getenv, sep from os.path import join diff --git a/src/common/core/letsencrypt/jobs/certbot-renew.py b/src/common/core/letsencrypt/jobs/certbot-renew.py index 425f76222..63b9a585d 100755 --- a/src/common/core/letsencrypt/jobs/certbot-renew.py +++ b/src/common/core/letsencrypt/jobs/certbot-renew.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from os import _exit, environ, getenv, sep from os.path import join diff --git a/src/common/core/letsencrypt/letsencrypt.lua b/src/common/core/letsencrypt/letsencrypt.lua index d7cad3caf..dcd1fcc78 100644 --- a/src/common/core/letsencrypt/letsencrypt.lua +++ b/src/common/core/letsencrypt/letsencrypt.lua @@ -1,8 +1,8 @@ local cjson = require "cjson" local class = require "middleclass" local plugin = require "bunkerweb.plugin" -local utils = require "bunkerweb.utils" local ssl = require "ngx.ssl" +local utils = require "bunkerweb.utils" local letsencrypt = class("letsencrypt", plugin) @@ -20,6 +20,7 @@ local ssl_server_name = ssl.server_name local get_variable = utils.get_variable local get_multiple_variables = utils.get_multiple_variables local has_variable = utils.has_variable +local read_files = utils.read_files local open = io.open local sub = string.sub local match = string.match @@ -34,25 +35,29 @@ end function letsencrypt:init() local ret_ok, ret_err = true, "success" - if has_variable("AUTO_LETS_ENCRYPT", "yes") then + if has_variable("AUTO_LETS_ENCRYPT", "yes") then local multisite, err = get_variable("MULTISITE", false) if not multisite then return self:ret(false, "can't get MULTISITE variable : " .. err) end if multisite == "yes" then - local vars, err = get_multiple_variables({"AUTO_LETS_ENCRYPT", "SERVER_NAME"}) + local vars + vars, err = get_multiple_variables({ "AUTO_LETS_ENCRYPT", "SERVER_NAME" }) if not vars then return self:ret(false, "can't get AUTO_LETS_ENCRYPT variables : " .. err) end for server_name, multisite_vars in pairs(vars) do if multisite_vars["AUTO_LETS_ENCRYPT"] == "yes" and server_name ~= "global" then - local check, data = self:read_files(server_name) + local check, data = read_files({ + "/var/cache/bunkerweb/letsencrypt/etc/live/" .. server_name .. "/fullchain.pem", + "/var/cache/bunkerweb/letsencrypt/etc/live/" .. server_name .. "/privkey.pem", + }) if not check then self.logger:log(ERR, "error while reading files : " .. data) ret_ok = false ret_err = "error reading files" else - local check, err = self:load_data(data, multisite_vars["SERVER_NAME"]) + check, err = self:load_data(data, multisite_vars["SERVER_NAME"]) if not check then self.logger:log(ERR, "error while loading data : " .. err) ret_ok = false @@ -62,17 +67,21 @@ function letsencrypt:init() end end else - local server_name, err = get_variable("SERVER_NAME", false) + local server_name + server_name, err = get_variable("SERVER_NAME", false) if not server_name then return self:ret(false, "can't get SERVER_NAME variable : " .. err) end - local check, data = self:read_files(server_name:match("%S+")) + local check, data = read_files({ + "/var/cache/bunkerweb/letsencrypt/etc/live/" .. server_name:match("%S+") .. "/fullchain.pem", + "/var/cache/bunkerweb/letsencrypt/etc/live/" .. server_name:match("%S+") .. "/privkey.pem", + }) if not check then self.logger:log(ERR, "error while reading files : " .. data) ret_ok = false ret_err = "error reading files" else - local check, err = self:load_data(data, server_name) + check, err = self:load_data(data, server_name) if not check then self.logger:log(ERR, "error while loading data : " .. err) ret_ok = false @@ -82,7 +91,7 @@ function letsencrypt:init() end else ret_err = "let's encrypt is not used" - end + end return self:ret(ret_ok, ret_err) end @@ -91,31 +100,18 @@ function letsencrypt:ssl_certificate() if not server_name then return self:ret(false, "can't get server_name : " .. err) end - if self.variables["AUTO_LETS_ENCRYPT"] == "yes" then - local data, err = self.datastore:get("plugin_letsencrypt_" .. server_name, true) + if self.variables["AUTO_LETS_ENCRYPT"] == "yes" then + local data + data, err = self.datastore:get("plugin_letsencrypt_" .. server_name, true) if not data then - return self:ret(false, "error while getting plugin_letsencrypt_" .. server_name .. " from datastore : " .. err) + return self:ret( + false, + "error while getting plugin_letsencrypt_" .. server_name .. " from datastore : " .. err + ) end - return self:ret(true, "certificate/key data found", data) - end - return self:ret(true, "let's encrypt is not used") -end - -function letsencrypt:read_files(server_name) - local files = { - "/var/cache/bunkerweb/letsencrypt/etc/live/" .. server_name .. "/fullchain.pem", - "/var/cache/bunkerweb/letsencrypt/etc/live/" .. server_name .. "/privkey.pem" - } - local data = {} - for i, file in ipairs(files) do - local f, err = open(file, "r") - if not f then - return false, file .. " = " .. err - end - table.insert(data, f:read("*a")) - f:close() + return self:ret(true, "certificate/key data found", data) end - return true, data + return self:ret(true, "let's encrypt is not used") end function letsencrypt:load_data(data, server_name) @@ -125,14 +121,16 @@ function letsencrypt:load_data(data, server_name) return false, "error while parsing pem cert : " .. err end -- Load key - local priv_key, err = parse_pem_priv_key(data[2]) + local priv_key + priv_key, err = parse_pem_priv_key(data[2]) if not priv_key then return false, "error while parsing pem priv key : " .. err end -- Cache data for key in server_name:gmatch("%S+") do local cache_key = "plugin_letsencrypt_" .. key - local ok, err = self.datastore:set(cache_key, {cert_chain, priv_key}, nil, true) + local ok + ok, err = self.datastore:set(cache_key, { cert_chain, priv_key }, nil, true) if not ok then return false, "error while setting data into datastore : " .. err end @@ -172,7 +170,7 @@ function letsencrypt:api() file:write(data.validation) file:close() return self:ret(true, "validation token written", HTTP_OK) - elseif ctx.bw.request_method == "DELETE" then + elseif self.ctx.bw.request_method == "DELETE" then local ok, err = remove(acme_folder .. data.token) if not ok then return self:ret(true, "can't remove validation token : " .. err, HTTP_INTERNAL_SERVER_ERROR) diff --git a/src/common/core/misc/files/default.html b/src/common/core/misc/files/default.html index 4f86b9361..e91e10d33 100644 --- a/src/common/core/misc/files/default.html +++ b/src/common/core/misc/files/default.html @@ -1,4 +1,4 @@ - + diff --git a/src/common/core/misc/jobs/anonymous-report.py b/src/common/core/misc/jobs/anonymous-report.py index b1787b470..c4cea39c5 100644 --- a/src/common/core/misc/jobs/anonymous-report.py +++ b/src/common/core/misc/jobs/anonymous-report.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from json import dumps from os import getenv, sep diff --git a/src/common/core/misc/jobs/default-server-cert.py b/src/common/core/misc/jobs/default-server-cert.py index 0e894cf50..61708a136 100644 --- a/src/common/core/misc/jobs/default-server-cert.py +++ b/src/common/core/misc/jobs/default-server-cert.py @@ -1,6 +1,6 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 -from os import _exit, getenv, sep +from os import getenv, sep from os.path import join from pathlib import Path from subprocess import DEVNULL, run diff --git a/src/common/core/misc/jobs/update-check.py b/src/common/core/misc/jobs/update-check.py index 465f89aea..3c60f4927 100644 --- a/src/common/core/misc/jobs/update-check.py +++ b/src/common/core/misc/jobs/update-check.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from os import getenv, sep from os.path import basename, join diff --git a/src/common/core/realip/jobs/realip-download.py b/src/common/core/realip/jobs/realip-download.py index 578b30e35..9423510eb 100755 --- a/src/common/core/realip/jobs/realip-download.py +++ b/src/common/core/realip/jobs/realip-download.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from contextlib import suppress from ipaddress import ip_address, ip_network diff --git a/src/common/core/selfsigned/jobs/self-signed.py b/src/common/core/selfsigned/jobs/self-signed.py index 93d3b27f3..1c0fb9acd 100755 --- a/src/common/core/selfsigned/jobs/self-signed.py +++ b/src/common/core/selfsigned/jobs/self-signed.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from datetime import timedelta from os import getenv, sep diff --git a/src/common/core/selfsigned/selfsigned.lua b/src/common/core/selfsigned/selfsigned.lua index bf5fab29a..fa0deb411 100644 --- a/src/common/core/selfsigned/selfsigned.lua +++ b/src/common/core/selfsigned/selfsigned.lua @@ -1,7 +1,7 @@ local class = require "middleclass" local plugin = require "bunkerweb.plugin" -local utils = require "bunkerweb.utils" local ssl = require "ngx.ssl" +local utils = require "bunkerweb.utils" local selfsigned = class("selfsigned", plugin) @@ -13,7 +13,7 @@ local ssl_server_name = ssl.server_name local get_variable = utils.get_variable local get_multiple_variables = utils.get_multiple_variables local has_variable = utils.has_variable -local open = io.open +local read_files = utils.read_files function selfsigned:initialize(ctx) -- Call parent initialize @@ -22,25 +22,29 @@ end function selfsigned:init() local ret_ok, ret_err = true, "success" - if has_variable("GENERATE_SELF_SIGNED_SSL", "yes") then + if has_variable("GENERATE_SELF_SIGNED_SSL", "yes") then local multisite, err = get_variable("MULTISITE", false) if not multisite then return self:ret(false, "can't get MULTISITE variable : " .. err) end if multisite == "yes" then - local vars, err = get_multiple_variables({"GENERATE_SELF_SIGNED_SSL", "SERVER_NAME"}) + local vars + vars, err = get_multiple_variables({ "GENERATE_SELF_SIGNED_SSL", "SERVER_NAME" }) if not vars then return self:ret(false, "can't get GENERATE_SELF_SIGNED_SSL variables : " .. err) end for server_name, multisite_vars in pairs(vars) do if multisite_vars["GENERATE_SELF_SIGNED_SSL"] == "yes" and server_name ~= "global" then - local check, data = self:read_files(server_name) + local check, data = read_files({ + "/var/cache/bunkerweb/selfsigned/" .. server_name .. ".pem", + "/var/cache/bunkerweb/selfsigned/" .. server_name .. ".key", + }) if not check then self.logger:log(ERR, "error while reading files : " .. data) ret_ok = false ret_err = "error reading files" else - local check, err = self:load_data(data, multisite_vars["SERVER_NAME"]) + check, err = self:load_data(data, multisite_vars["SERVER_NAME"]) if not check then self.logger:log(ERR, "error while loading data : " .. err) ret_ok = false @@ -50,17 +54,21 @@ function selfsigned:init() end end else - local server_name, err = get_variable("SERVER_NAME", false) + local server_name + server_name, err = get_variable("SERVER_NAME", false) if not server_name then return self:ret(false, "can't get SERVER_NAME variable : " .. err) end - local check, data = self:read_files(server_name:match("%S+")) + local check, data = read_files({ + "/var/cache/bunkerweb/selfsigned/" .. server_name:match("%S+") .. ".pem", + "/var/cache/bunkerweb/selfsigned/" .. server_name:match("%S+") .. ".key", + }) if not check then self.logger:log(ERR, "error while reading files : " .. data) ret_ok = false ret_err = "error reading files" else - local check, err = self:load_data(data, server_name) + check, err = self:load_data(data, server_name) if not check then self.logger:log(ERR, "error while loading data : " .. err) ret_ok = false @@ -70,7 +78,7 @@ function selfsigned:init() end else ret_err = "self signed is not used" - end + end return self:ret(ret_ok, ret_err) end @@ -79,31 +87,18 @@ function selfsigned:ssl_certificate() if not server_name then return self:ret(false, "can't get server_name : " .. err) end - if self.variables["GENERATE_SELF_SIGNED_SSL"] == "yes" then - local data, err = self.datastore:get("plugin_selfsigned_" .. server_name, true) + if self.variables["GENERATE_SELF_SIGNED_SSL"] == "yes" then + local data + data, err = self.datastore:get("plugin_selfsigned_" .. server_name, true) if not data then - return self:ret(false, "error while getting plugin_selfsigned_" .. server_name .. " from datastore : " .. err) + return self:ret( + false, + "error while getting plugin_selfsigned_" .. server_name .. " from datastore : " .. err + ) end - return self:ret(true, "certificate/key data found", data) - end - return self:ret(true, "selfsigned is not used") -end - -function selfsigned:read_files(server_name) - local files = { - "/var/cache/bunkerweb/selfsigned/" .. server_name .. ".pem", - "/var/cache/bunkerweb/selfsigned/" .. server_name .. ".key" - } - local data = {} - for i, file in ipairs(files) do - local f, err = open(file, "r") - if not f then - return false, file .. " = " .. err - end - table.insert(data, f:read("*a")) - f:close() + return self:ret(true, "certificate/key data found", data) end - return true, data + return self:ret(true, "selfsigned is not used") end function selfsigned:load_data(data, server_name) @@ -120,7 +115,8 @@ function selfsigned:load_data(data, server_name) -- Cache data for key in server_name:gmatch("%S+") do local cache_key = "plugin_selfsigned_" .. key - local ok, err = self.datastore:set(cache_key, {cert_chain, priv_key}, nil, true) + local ok + ok, err = self.datastore:set(cache_key, { cert_chain, priv_key }, nil, true) if not ok then return false, "error while setting data into datastore : " .. err end diff --git a/src/common/core/sessions/sessions.lua b/src/common/core/sessions/sessions.lua index 41d8f420b..386a26f02 100644 --- a/src/common/core/sessions/sessions.lua +++ b/src/common/core/sessions/sessions.lua @@ -66,7 +66,7 @@ function sessions:init() ["REDIS_SENTINEL_HOSTS"] = "", ["REDIS_SENTINEL_USERNAME"] = "", ["REDIS_SENTINEL_PASSWORD"] = "", - ["REDIS_SENTINEL_MASTER"] = "" + ["REDIS_SENTINEL_MASTER"] = "", } for k, _ in pairs(redis_vars) do local value, err = get_variable(k, false) @@ -124,7 +124,7 @@ function sessions:init() pool = "bw-redis", pool_size = tonumber(redis_vars["REDIS_KEEPALIVE_POOL"]), ssl = redis_vars["REDIS_SSL"] == "yes", - database = tonumber(redis_vars["REDIS_DATABASE"]) + database = tonumber(redis_vars["REDIS_DATABASE"]), } if redis_vars["REDIS_SENTINEL_HOSTS"] ~= nil then config.redis.master = redis_vars["REDIS_SENTINEL_MASTER"] @@ -139,7 +139,7 @@ function sessions:init() else sport = tonumber(sport) end - table.insert(config.redis.sentinels, {host = shost, port = sport}) + table.insert(config.redis.sentinels, { host = shost, port = sport }) end else config.redis.host = redis_vars["REDIS_HOST"] diff --git a/src/common/core/whitelist/jobs/whitelist-download.py b/src/common/core/whitelist/jobs/whitelist-download.py index cb242567c..dbb67ee10 100755 --- a/src/common/core/whitelist/jobs/whitelist-download.py +++ b/src/common/core/whitelist/jobs/whitelist-download.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from contextlib import suppress from ipaddress import ip_address, ip_network diff --git a/src/common/db/Database.py b/src/common/db/Database.py index 994a25bf6..1751bad55 100644 --- a/src/common/db/Database.py +++ b/src/common/db/Database.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from contextlib import contextmanager, suppress from copy import deepcopy diff --git a/src/common/db/model.py b/src/common/db/model.py index b207c241a..87a146d11 100644 --- a/src/common/db/model.py +++ b/src/common/db/model.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from sqlalchemy import ( Boolean, diff --git a/src/common/gen/Configurator.py b/src/common/gen/Configurator.py index ebdf40de5..86f72c90b 100644 --- a/src/common/gen/Configurator.py +++ b/src/common/gen/Configurator.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from glob import glob from hashlib import sha256 diff --git a/src/common/gen/Templator.py b/src/common/gen/Templator.py index 3b567b09e..6d9882b5d 100644 --- a/src/common/gen/Templator.py +++ b/src/common/gen/Templator.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from glob import glob from importlib import import_module diff --git a/src/common/gen/main.py b/src/common/gen/main.py index 35d724120..65ef64ec0 100644 --- a/src/common/gen/main.py +++ b/src/common/gen/main.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from argparse import ArgumentParser from glob import glob diff --git a/src/common/gen/save_config.py b/src/common/gen/save_config.py index 605cc4363..820f4bf0c 100644 --- a/src/common/gen/save_config.py +++ b/src/common/gen/save_config.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from argparse import ArgumentParser from os import R_OK, X_OK, access, environ, getenv, sep diff --git a/src/common/gen/utils.py b/src/common/gen/utils.py index 8cdd6495d..9d56a2fe7 100644 --- a/src/common/gen/utils.py +++ b/src/common/gen/utils.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from os import getegid, geteuid from pathlib import Path diff --git a/src/common/utils/ApiCaller.py b/src/common/utils/ApiCaller.py index 54387989a..1523d0f72 100644 --- a/src/common/utils/ApiCaller.py +++ b/src/common/utils/ApiCaller.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from io import BytesIO from os import getenv, sep diff --git a/src/common/utils/ConfigCaller.py b/src/common/utils/ConfigCaller.py index 996d63b9b..54a4a147b 100644 --- a/src/common/utils/ConfigCaller.py +++ b/src/common/utils/ConfigCaller.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from glob import glob from json import JSONDecodeError, loads diff --git a/src/common/utils/jobs.py b/src/common/utils/jobs.py index e559eca8c..9397f555d 100644 --- a/src/common/utils/jobs.py +++ b/src/common/utils/jobs.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from contextlib import suppress from datetime import datetime diff --git a/src/scheduler/Dockerfile b/src/scheduler/Dockerfile index 9d9d48e58..7f257f4ed 100644 --- a/src/scheduler/Dockerfile +++ b/src/scheduler/Dockerfile @@ -50,7 +50,6 @@ WORKDIR /usr/share/bunkerweb # Add scheduler user, drop bwcli, install runtime dependencies, create data folders and set permissions RUN apk add --no-cache bash libgcc libstdc++ libpq openssl libmagic && \ - ln -s /usr/local/bin/python3 /usr/bin/python3 && \ addgroup -g 101 scheduler && \ adduser -h /var/cache/nginx -g scheduler -s /bin/sh -G scheduler -D -H -u 101 scheduler && \ cp helpers/bwcli /usr/bin/ && \ diff --git a/src/scheduler/JobScheduler.py b/src/scheduler/JobScheduler.py index e8e77d9a2..0792828ac 100644 --- a/src/scheduler/JobScheduler.py +++ b/src/scheduler/JobScheduler.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from copy import deepcopy from functools import partial diff --git a/src/scheduler/main.py b/src/scheduler/main.py index 28f59049f..2bbc2a590 100644 --- a/src/scheduler/main.py +++ b/src/scheduler/main.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from argparse import ArgumentParser from copy import deepcopy @@ -6,16 +6,7 @@ from glob import glob from hashlib import sha256 from io import BytesIO from json import load as json_load -from os import ( - _exit, - chmod, - environ, - getenv, - getpid, - listdir, - sep, - walk, -) +from os import _exit, chmod, environ, getenv, getpid, listdir, sep, walk from os.path import basename, dirname, join, normpath from pathlib import Path from shutil import copy, rmtree @@ -322,11 +313,7 @@ if __name__ == "__main__": content = Path(join(root, file)).read_text(encoding="utf-8") custom_conf = { "value": content, - "exploded": ( - f"{path_exploded.pop()}" if path_exploded[-1] not in root_dirs else None, - path_exploded[-1], - file.replace(".conf", ""), - ), + "exploded": (path_exploded.pop() if path_exploded[-1] not in root_dirs else None, path_exploded[-1], file.replace(".conf", "")), } saving = True @@ -674,7 +661,6 @@ if __name__ == "__main__": env = db.get_config() env["DATABASE_URI"] = db.database_uri - except: logger.error( f"Exception while executing scheduler : {format_exc()}", diff --git a/src/ui/main.py b/src/ui/main.py index b33eae62f..8b2209fc0 100755 --- a/src/ui/main.py +++ b/src/ui/main.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from contextlib import suppress from os import _exit, getenv, listdir, sep, urandom @@ -1132,11 +1132,11 @@ def plugins(): except (TarError, OSError) as e: errors += 1 error = 1 - flash(f"{e}", "error") + flash(str(e), "error") except Exception as e: errors += 1 error = 1 - flash(f"{e}", "error") + flash(str(e), "error") finally: if error != 1: flash(f"Successfully created plugin: {folder_name}") diff --git a/src/ui/src/Config.py b/src/ui/src/Config.py index ecc1dcf0c..eb79a5c8b 100644 --- a/src/ui/src/Config.py +++ b/src/ui/src/Config.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from copy import deepcopy from os import sep diff --git a/src/ui/src/ConfigFiles.py b/src/ui/src/ConfigFiles.py index 96aa23b6e..beb30a90b 100644 --- a/src/ui/src/ConfigFiles.py +++ b/src/ui/src/ConfigFiles.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from glob import glob from os import listdir, replace, sep, walk @@ -62,11 +62,7 @@ class ConfigFiles: custom_configs.append( { "value": f.read(), - "exploded": ( - f"{path_exploded.pop()}" if path_exploded[-1] not in root_dirs else None, - path_exploded[-1], - file.replace(".conf", ""), - ), + "exploded": (path_exploded.pop() if path_exploded[-1] not in root_dirs else None, path_exploded[-1], file.replace(".conf", "")), } ) diff --git a/src/ui/src/Instances.py b/src/ui/src/Instances.py index 04e3a8ecf..76fef8f0a 100644 --- a/src/ui/src/Instances.py +++ b/src/ui/src/Instances.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from os import sep from os.path import join diff --git a/src/ui/src/ReverseProxied.py b/src/ui/src/ReverseProxied.py index deeae4350..29dbc1606 100644 --- a/src/ui/src/ReverseProxied.py +++ b/src/ui/src/ReverseProxied.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from werkzeug.middleware.proxy_fix import ProxyFix diff --git a/src/ui/src/User.py b/src/ui/src/User.py index 237c60c1f..cce2247c7 100644 --- a/src/ui/src/User.py +++ b/src/ui/src/User.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from typing import Optional diff --git a/src/ui/static/css/dashboard.css b/src/ui/static/css/dashboard.css index 9d02581ce..a98fa3c6a 100644 --- a/src/ui/static/css/dashboard.css +++ b/src/ui/static/css/dashboard.css @@ -1 +1,4141 @@ -/*! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e9ecef}:after,:before{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Open Sans;font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#ced4da}input::placeholder,textarea::placeholder{opacity:1;color:#ced4da}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#5e72e480;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.\!container{width:100%!important;margin-right:auto!important;margin-left:auto!important;padding-right:1.5rem!important;padding-left:1.5rem!important}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:1.5rem;padding-left:1.5rem}@media (min-width:340px){.\!container{max-width:340px!important}.container{max-width:340px}}@media (min-width:576px){.\!container{max-width:576px!important}.container{max-width:576px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:992px){.\!container{max-width:992px!important}.container{max-width:992px}}@media (min-width:1200px){.\!container{max-width:1200px!important}.container{max-width:1200px}}@media (min-width:1320px){.\!container{max-width:1320px!important}.container{max-width:1320px}}@media (min-width:1920px){.\!container{max-width:1920px!important}.container{max-width:1920px}}a{letter-spacing:-.025rem}hr{margin:1rem 0;border:0;opacity:.25}img{max-width:none}label{display:inline-block}p{line-height:1.625;font-weight:400;margin-bottom:1rem}small{font-size:.875em}svg{display:inline}table{border-collapse:inherit}h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;color:#344767}h1,h2,h3,h4{letter-spacing:-.05rem}h1,h2,h3{font-weight:700}h4,h5,h6{font-weight:600}h1{font-size:3rem;line-height:1.25}h2{font-size:2.25rem;line-height:1.3}h3{font-size:1.875rem}h3,h4{line-height:1.375}h4{font-size:1.5rem}h5{font-size:1.25rem;line-height:1.375}h6{font-size:1rem;line-height:1.625}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-y-0{top:0;bottom:0}.-left-full{left:-100%}.-right-0{right:0}.-right-1{right:-.25rem}.bottom-0{bottom:0}.left-0{left:0}.left-auto{left:auto}.left-full{left:100%}.right-0{right:0}.right-12{right:3rem}.right-2{right:.5rem}.right-20{right:5rem}.right-4{right:1rem}.right-5{right:1.25rem}.right-6{right:1.5rem}.right-7{right:1.75rem}.right-8{right:2rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-16{top:4rem}.top-2{top:.5rem}.top-4{top:1rem}.top-\[38\%\]{top:38%}.top-\[4\.5rem\]{top:4.5rem}.top-\[55\%\]{top:55%}.top-\[8\.2rem\]{top:8.2rem}.top-\[53\%\]{top:53%}.top-\[52\%\]{top:52%}.right-14{right:3.5rem}.right-\[2\.25rem\]{right:2.25rem}.right-\[3\.25rem\]{right:3.25rem}.-z-10{z-index:-10}.z-10{z-index:10}.z-100{z-index:100}.z-110{z-index:110}.z-20{z-index:20}.z-50{z-index:50}.z-990{z-index:990}.z-\[10000\]{z-index:10000}.z-\[1000\]{z-index:1000}.z-\[1001\]{z-index:1001}.z-\[20\]{z-index:20}.z-sticky{z-index:1020}.order-1{order:1}.order-2{order:2}.col-span-1{grid-column:span 1/span 1}.col-span-10{grid-column:span 10/span 10}.col-span-11{grid-column:span 11/span 11}.col-span-12{grid-column:span 12/span 12}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-9{grid-column:span 9/span 9}.float-right{float:right}.float-left{float:left}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-4{margin:1rem}.mx-0{margin-left:0;margin-right:0}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-2\.5{margin-left:.625rem;margin-right:.625rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-7{margin-bottom:1.75rem}.mb-8{margin-bottom:2rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-12{margin-left:3rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-12{margin-right:3rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mr-6{margin-right:1.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-\[4\.5rem\]{margin-top:4.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1\/3{height:33.333333%}.h-12{height:3rem}.h-14{height:3.5rem}.h-19{height:4.75rem}.h-3{height:.75rem}.h-4{height:1rem}.h-4\.5{height:1.125rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-5\.5{height:1.375rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-\[2\.5rem\]{height:2.5rem}.h-\[3\.5rem\]{height:3.5rem}.h-\[4rem\]{height:4rem}.h-\[90vh\]{height:90vh}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.h-sidenav{height:calc(100vh - 360px)}.max-h-100{max-height:25rem}.max-h-135{max-height:33.75rem}.max-h-30{max-height:7.5rem}.max-h-80{max-height:20rem}.max-h-90{max-height:22.5rem}.max-h-screen{max-height:100vh}.min-h-12{min-height:3rem}.min-h-20{min-height:5rem}.min-h-50-screen{min-height:50vh}.min-h-52{min-height:13rem}.min-h-6{min-height:1.5rem}.min-h-\[100px\]{min-height:100px}.min-h-\[350px\]{min-height:350px}.min-h-\[55vh\]{min-height:55vh}.min-h-\[75px\]{min-height:75px}.min-h-\[85vh\]{min-height:85vh}.min-h-screen{min-height:100vh}.w-1{width:.25rem}.w-10{width:2.5rem}.w-11\/12{width:91.666667%}.w-12{width:3rem}.w-28{width:7rem}.w-3{width:.75rem}.w-4{width:1rem}.w-4\.5{width:1.125rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-5\.5{width:1.375rem}.w-50{width:12.5rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-80{width:20rem}.w-90{width:22.5rem}.w-\[2\.5rem\]{width:2.5rem}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-screen{width:100vw}.min-w-0{min-width:0}.min-w-\[900px\]{min-width:900px}.max-w-180{max-width:45rem}.max-w-40{max-width:10rem}.max-w-60{max-width:15rem}.max-w-64{max-width:16rem}.max-w-\[1920px\]{max-width:1920px}.max-w-\[300px\]{max-width:300px}.max-w-\[400px\]{max-width:400px}.max-w-\[550px\]{max-width:550px}.max-w-full{max-width:100%}.flex-auto{flex:1 1 auto}.grow{flex-grow:1}.basis-full{flex-basis:100%}.-translate-x-1{--tw-translate-x:-0.25rem}.-translate-x-1,.-translate-x-1\.5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-1\.5{--tw-translate-x:-0.375rem}.-translate-x-full{--tw-translate-x:-100%}.-translate-x-full,.-translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-0{--tw-translate-y:-0px}.-translate-y-0\.4{--tw-translate-y:-0.1rem}.-translate-y-0\.4,.-translate-y-0\.5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-0\.5{--tw-translate-y:-0.125rem}.-translate-y-1{--tw-translate-y:-0.25rem}.-translate-y-1,.-translate-y-1\.5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\.5{--tw-translate-y:-0.375rem}.translate-x-0{--tw-translate-x:0px}.translate-x-0,.translate-x-0\.5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0\.5{--tw-translate-x:0.125rem}.translate-x-1{--tw-translate-x:0.25rem}.translate-x-1,.translate-x-2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-2{--tw-translate-x:0.5rem}.translate-x-90{--tw-translate-x:22.5rem}.translate-x-90,.translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y:0px}.translate-y-0\.5{--tw-translate-y:0.125rem}.translate-y-0\.5,.translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-1{--tw-translate-y:0.25rem}.translate-y-16{--tw-translate-y:4rem}.translate-y-16,.translate-y-2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-2{--tw-translate-y:0.5rem}.-rotate-12{--tw-rotate:-12deg}.-rotate-12,.rotate-12{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-12{--tw-rotate:12deg}.rotate-180{--tw-rotate:180deg}.rotate-180,.scale-105{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}.scale-110,.scale-50{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-50{--tw-scale-x:.5;--tw-scale-y:.5}.scale-90{--tw-scale-x:.9;--tw-scale-y:.9}.scale-90,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-center{justify-items:center}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-2{row-gap:.5rem}.gap-y-4{row-gap:1rem}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded,.rounded-1{border-radius:.25rem}.rounded-1\.4{border-radius:.35rem}.rounded-10{border-radius:2.5rem}.rounded-2xl{border-radius:1rem}.rounded-circle{border-radius:50%}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-none{border-radius:0}.rounded-xl{border-radius:.75rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-lg{border-bottom-left-radius:.5rem}.rounded-b-lg,.rounded-r-lg{border-bottom-right-radius:.5rem}.rounded-r-lg{border-top-right-radius:.5rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-gray-200{--tw-border-opacity:1;border-color:rgb(233 236 239/var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(210 214 218/var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity:1;border-color:rgb(206 212 218/var(--tw-border-opacity))}.border-primary{--tw-border-opacity:1;border-color:rgb(11 85 119/var(--tw-border-opacity))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(94 114 228/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(235 239 244/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(233 236 239/var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(210 214 218/var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(248 249 250/var(--tw-bg-opacity))}.bg-gray-600\/50{background-color:#6c757d80}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity))}.bg-orange-500{--tw-bg-opacity:1;background-color:rgb(251 99 64/var(--tw-bg-opacity))}.bg-primary{--tw-bg-opacity:1;background-color:rgb(11 85 119/var(--tw-bg-opacity))}.bg-primary\/20{background-color:#0b557733}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(245 57 57/var(--tw-bg-opacity))}.bg-secondary{--tw-bg-opacity:1;background-color:rgb(46 172 104/var(--tw-bg-opacity))}.bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity))}.bg-slate-800\/10{background-color:#3a416f1a}.bg-transparent{background-color:initial}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(251 177 64/var(--tw-bg-opacity))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(206 212 218/var(--tw-bg-opacity))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--tw-gradient-stops))}.bg-none{background-image:none}.from-transparent{--tw-gradient-from:#0000 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-black\/40{--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#0006 var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-transparent{--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.bg-150{background-size:150%}.bg-contain{background-size:contain}.bg-clip-border{background-clip:initial}.bg-clip-padding{background-clip:padding-box}.bg-center{background-position:50%}.bg-left{background-position:0}.bg-x-25{background-position:25% 0}.bg-no-repeat{background-repeat:no-repeat}.fill-amber-500{fill:#f59e0b}.fill-blue-500{fill:#5e72e4}.fill-gray-400{fill:#ced4da}.fill-gray-500{fill:#adb5bd}.fill-gray-600{fill:#6c757d}.fill-green-500{fill:#22c55e}.fill-primary{fill:#0b5577}.fill-red-500{fill:#f53939}.fill-sky-500{fill:#0ea5e9}.fill-slate-800{fill:#3a416f}.fill-white{fill:#fff}.fill-yellow-500{fill:#fbb140}.stroke-blue-400{stroke:#60a5fa}.stroke-blue-500{stroke:#5e72e4}.stroke-emerald-600{stroke:#059669}.stroke-gray-100{stroke:#ebeff4}.stroke-gray-600{stroke:#6c757d}.stroke-green-700{stroke:#15803d}.stroke-orange-500{stroke:#fb6340}.stroke-pink-600{stroke:#db2777}.stroke-red-500{stroke:#f53939}.stroke-sky-500{stroke:#0ea5e9}.stroke-teal-600{stroke:#0d9488}.stroke-yellow-500{stroke:#fbb140}.stroke-gray-800{stroke:#252f40}.stroke-gray-700{stroke:#495057}.stroke-0{stroke-width:0}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-0\.4{padding:.1rem}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pl-0{padding-left:0}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pr-0{padding-right:0}.pr-8{padding-right:2rem}.pt-1{padding-top:.25rem}.pt-10{padding-top:2.5rem}.pt-20{padding-top:5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.font-sans{font-family:Open Sans}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.5rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-5{line-height:1.25rem}.leading-5\.6{line-height:1.4rem}.leading-6{line-height:1.5rem}.leading-8{line-height:2rem}.leading-default{line-height:1.6}.leading-none{line-height:1}.leading-normal{line-height:1.5}.leading-tight{line-height:1.25}.tracking-tight-rem{letter-spacing:-.025rem}.tracking-wide{letter-spacing:.025em}.tracking-widest{letter-spacing:.1em}.text-blue-500{--tw-text-opacity:1;color:rgb(94 114 228/var(--tw-text-opacity))}.text-emerald-500{--tw-text-opacity:1;color:rgb(45 206 137/var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgb(235 239 244/var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgb(210 214 218/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(108 117 125/var(--tw-text-opacity))}.text-gray-600\/90{color:#6c757de6}.text-gray-700{--tw-text-opacity:1;color:rgb(73 80 87/var(--tw-text-opacity))}.text-gray-700\/80{color:#495057cc}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity))}.text-primary{--tw-text-opacity:1;color:rgb(11 85 119/var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgb(245 57 57/var(--tw-text-opacity))}.text-sky-600{--tw-text-opacity:1;color:rgb(62 161 236/var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity:1;color:rgb(103 116 142/var(--tw-text-opacity))}.text-slate-700{--tw-text-opacity:1;color:rgb(52 71 103/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity:1;color:rgb(251 177 64/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-3xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-3xl{--tw-shadow:0 8px 26px -4px #14141426,0 8px 9px -5px #1414140f;--tw-shadow-colored:0 8px 26px -4px var(--tw-shadow-color),0 8px 9px -5px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px #32325d1a,0 1px 3px #00000014;--tw-shadow-colored:0 4px 6px var(--tw-shadow-color),0 1px 3px var(--tw-shadow-color)}.shadow-md,.shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.shadow-sm{--tw-shadow:0 .25rem .375rem -.0625rem #1414141f,0 .125rem .25rem -.0625rem #14141412;--tw-shadow-colored:0 .25rem .375rem -.0625rem var(--tw-shadow-color),0 .125rem .25rem -.0625rem var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 0 2rem 0 #8898aa26;--tw-shadow-colored:0 0 2rem 0 var(--tw-shadow-color)}.shadow-xs{--tw-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014;--tw-shadow-colored:0 7px 14px var(--tw-shadow-color),0 3px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid #0000;outline-offset:2px}.blur{--tw-blur:blur(8px)}.blur,.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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:ease;transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:ease;transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:ease;transition-duration:.15s}.delay-200{transition-delay:.2s}.duration-200{transition-duration:.2s}.duration-250{transition-duration:.25s}.duration-300{transition-duration:.3s}.duration-700{transition-duration:.7s}.ease-in{transition-timing-function:ease-in}.ease-in-out{transition-timing-function:ease-in-out}.flex-wrap-inherit{flex-wrap:inherit}@font-face{font-family:Open Sans;src:url(../webfonts/OpenSans.ttf)}*{font-family:Open Sans,sans-serif!important}.ace_content,.ace_editor,.ace_editor div{font-family:Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,monospace!important;font-size:16px!important;font-weight:400!important}.close-btn{display:inline-block;cursor:pointer;border-radius:.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(245 57 57/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));padding:.75rem 1.5rem;text-align:center;vertical-align:middle;font-weight:700;text-transform:uppercase;line-height:1.5;letter-spacing:-.025rem;--tw-text-opacity:1;color:rgb(245 57 57/var(--tw-text-opacity));--tw-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014;--tw-shadow-colored:0 7px 14px var(--tw-shadow-color),0 3px 6px var(--tw-shadow-color);transition-property:all;transition-timing-function:ease;transition-duration:.15s;transition-timing-function:ease-in}.close-btn,.close-btn:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.close-btn:hover{--tw-translate-y:-1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow:0 4px 6px #32325d1a,0 1px 3px #00000014;--tw-shadow-colored:0 4px 6px var(--tw-shadow-color),0 1px 3px var(--tw-shadow-color)}.close-btn:focus,.close-btn:hover{background-color:#fffc}.close-btn:active{opacity:.85}:is(.dark .close-btn){--tw-bg-opacity:1;background-color:rgb(233 236 239/var(--tw-bg-opacity));--tw-brightness:brightness(.9)}:is(.dark .close-btn),:is(.dark .close-btn:hover){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)}:is(.dark .close-btn:hover){--tw-brightness:brightness(.75)}.valid-btn{display:inline-block;cursor:pointer;border-radius:.5rem;--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity));padding:.75rem 1.5rem;text-align:center;vertical-align:middle;font-weight:700;text-transform:uppercase;line-height:1.5;letter-spacing:.025em;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));--tw-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014;--tw-shadow-colored:0 7px 14px var(--tw-shadow-color),0 3px 6px var(--tw-shadow-color);transition-property:all;transition-timing-function:ease;transition-duration:.15s;transition-timing-function:ease-in}.valid-btn,.valid-btn:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.valid-btn:hover{--tw-translate-y:-1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow:0 4px 6px #32325d1a,0 1px 3px #00000014;--tw-shadow-colored:0 4px 6px var(--tw-shadow-color),0 1px 3px var(--tw-shadow-color)}.valid-btn:focus,.valid-btn:hover{background-color:#22c55ecc}.valid-btn:active{opacity:.85}:is(.dark .valid-btn){--tw-brightness:brightness(.9);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)}.delete-btn{display:inline-block;cursor:pointer;border-radius:.5rem;--tw-bg-opacity:1;background-color:rgb(245 57 57/var(--tw-bg-opacity));padding:.75rem 1.5rem;text-align:center;vertical-align:middle;font-weight:700;text-transform:uppercase;line-height:1.5;letter-spacing:.025em;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));--tw-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014;--tw-shadow-colored:0 7px 14px var(--tw-shadow-color),0 3px 6px var(--tw-shadow-color);transition-property:all;transition-timing-function:ease;transition-duration:.15s;transition-timing-function:ease-in}.delete-btn,.delete-btn:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.delete-btn:hover{--tw-translate-y:-1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow:0 4px 6px #32325d1a,0 1px 3px #00000014;--tw-shadow-colored:0 4px 6px var(--tw-shadow-color),0 1px 3px var(--tw-shadow-color)}.delete-btn:focus,.delete-btn:hover{background-color:#f53939cc}.delete-btn:active{opacity:.85}:is(.dark .delete-btn){--tw-brightness:brightness(.9);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)}.edit-btn{display:inline-block;cursor:pointer;border-radius:.5rem;--tw-bg-opacity:1;background-color:rgb(251 177 64/var(--tw-bg-opacity));padding:.75rem 1.5rem;text-align:center;vertical-align:middle;font-weight:700;text-transform:uppercase;line-height:1.5;letter-spacing:.025em;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));--tw-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014;--tw-shadow-colored:0 7px 14px var(--tw-shadow-color),0 3px 6px var(--tw-shadow-color);transition-property:all;transition-timing-function:ease;transition-duration:.15s;transition-timing-function:ease-in}.edit-btn,.edit-btn:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.edit-btn:hover{--tw-translate-y:-1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow:0 4px 6px #32325d1a,0 1px 3px #00000014;--tw-shadow-colored:0 4px 6px var(--tw-shadow-color),0 1px 3px var(--tw-shadow-color)}.edit-btn:focus,.edit-btn:hover{background-color:#fbb140cc}.edit-btn:active{opacity:.85}:is(.dark .edit-btn){--tw-brightness:brightness(.9);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)}.info-btn{display:inline-block;cursor:pointer;border-radius:.5rem;--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity));padding:.75rem 1.5rem;text-align:center;vertical-align:middle;font-weight:700;text-transform:uppercase;line-height:1.5;letter-spacing:.025em;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));--tw-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014;--tw-shadow-colored:0 7px 14px var(--tw-shadow-color),0 3px 6px var(--tw-shadow-color);transition-property:all;transition-timing-function:ease;transition-duration:.15s;transition-timing-function:ease-in}.info-btn,.info-btn:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.info-btn:hover{--tw-translate-y:-1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow:0 4px 6px #32325d1a,0 1px 3px #00000014;--tw-shadow-colored:0 4px 6px var(--tw-shadow-color),0 1px 3px var(--tw-shadow-color)}.info-btn:focus,.info-btn:hover{background-color:#0ea5e9cc}.info-btn:active{opacity:.85}:is(.dark .info-btn){--tw-brightness:brightness(.9);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)}.checkbox{position:relative;z-index:10;float:left;margin-top:.25rem;height:1.25rem;width:1.25rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.35rem;border-width:1px;border-color:rgb(210 214 218/var(--tw-border-opacity));background-color:rgb(255 255 255/var(--tw-bg-opacity));background-size:contain;background-position:50%;background-repeat:no-repeat;vertical-align:top;font-size:1rem;line-height:1.5rem;transition-property:all;transition-timing-function:ease;transition-duration:.25s}.checkbox,.checkbox:disabled{--tw-border-opacity:1;--tw-bg-opacity:1}.checkbox:disabled{cursor:default;border-color:rgb(206 212 218/var(--tw-border-opacity));background-color:rgb(206 212 218/var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(73 80 87/var(--tw-text-opacity))}.checkbox[data-checked=true]{z-index:0;--tw-border-opacity:1;border-color:rgb(11 85 119/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(11 85 119/var(--tw-bg-opacity))}.checkbox:disabled[data-checked=true]{--tw-border-opacity:1;border-color:rgb(206 212 218/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(206 212 218/var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(73 80 87/var(--tw-text-opacity))}:is(.dark .checkbox){--tw-border-opacity:1;border-color:rgb(98 117 148/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(52 71 103/var(--tw-bg-opacity))}:is(.dark .checkbox:disabled){--tw-border-opacity:1;border-color:rgb(37 47 64/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(37 47 64/var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(210 214 218/var(--tw-text-opacity))}:is(.dark .checkbox[data-checked=true]){--tw-border-opacity:1;border-color:rgb(11 85 119/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(11 85 119/var(--tw-bg-opacity))}:is(.dark .checkbox:disabled[data-checked=true]){--tw-border-opacity:1;border-color:rgb(37 47 64/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(37 47 64/var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(210 214 218/var(--tw-text-opacity))}.custom-select-btn{display:flex;width:100%;align-items:center;justify-content:space-between;border-radius:.5rem;border-width:1px;border-style:solid;--tw-border-opacity:1;border-color:rgb(210 214 218/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));background-clip:padding-box;padding:.25rem .375rem;text-align:left;vertical-align:middle;font-size:.875rem;font-weight:400;line-height:1.4rem;--tw-text-opacity:1;color:rgb(73 80 87/var(--tw-text-opacity));transition-property:all;transition-timing-function:ease;transition-duration:.3s;transition-timing-function:ease-in-out}.custom-select-btn::-moz-placeholder{--tw-text-opacity:1;color:rgb(173 181 189/var(--tw-text-opacity))}.custom-select-btn::placeholder{--tw-text-opacity:1;color:rgb(173 181 189/var(--tw-text-opacity))}.custom-select-btn:focus{--tw-border-opacity:1;border-color:rgb(11 85 119/var(--tw-border-opacity))}.custom-select-btn:disabled{--tw-border-opacity:1;border-color:rgb(206 212 218/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(206 212 218/var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(73 80 87/var(--tw-text-opacity));opacity:.75}:is(.dark .custom-select-btn){border-color:rgb(98 117 148/var(--tw-border-opacity));background-color:rgb(52 71 103/var(--tw-bg-opacity));opacity:.9}:is(.dark .custom-select-btn),:is(.dark .custom-select-btn:disabled){--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(210 214 218/var(--tw-text-opacity))}:is(.dark .custom-select-btn:disabled){border-color:rgb(37 47 64/var(--tw-border-opacity));background-color:rgb(37 47 64/var(--tw-bg-opacity))}@media (min-width:768px){.custom-select-btn{padding:.5rem .75rem}}.custom-dropdown-btn{position:relative;margin-top:0;margin-bottom:0;min-height:38px;cursor:pointer;border-radius:0;border-bottom-width:1px;border-left-width:1px;border-right-width:1px;--tw-border-opacity:1;border-color:rgb(210 214 218/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));padding:.5rem 1.5rem;text-align:center;vertical-align:middle;font-size:.875rem;line-height:1.5rem;line-height:1.5;letter-spacing:-.025rem;--tw-text-opacity:1;color:rgb(73 80 87/var(--tw-text-opacity));transition-property:all;transition-timing-function:ease;transition-duration:.15s;transition-timing-function:ease-in}.custom-dropdown-btn:hover{--tw-brightness:brightness(.9);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)}:is(.dark .custom-dropdown-btn){border-color:rgb(98 117 148/var(--tw-border-opacity));background-color:rgb(52 71 103/var(--tw-bg-opacity))}.active.custom-dropdown-btn,:is(.dark .custom-dropdown-btn){--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(210 214 218/var(--tw-text-opacity))}.active.custom-dropdown-btn{position:relative;margin-top:0;margin-bottom:0;min-height:38px;cursor:pointer;border-radius:0;border-bottom-width:1px;border-left-width:1px;border-right-width:1px;border-color:rgb(210 214 218/var(--tw-border-opacity));background-color:rgb(11 85 119/var(--tw-bg-opacity));padding:.5rem 1.5rem;text-align:center;vertical-align:middle;font-size:.875rem;line-height:1.5rem;line-height:1.5;letter-spacing:-.025rem;transition-property:all;transition-timing-function:ease;transition-duration:.15s;transition-timing-function:ease-in}.active.custom-dropdown-btn:hover{--tw-brightness:brightness(.9);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)}:is(.dark .active.custom-dropdown-btn){border-color:rgb(98 117 148/var(--tw-border-opacity));background-color:rgb(11 85 119/var(--tw-bg-opacity));color:rgb(210 214 218/var(--tw-text-opacity))}.regular-input,:is(.dark .active.custom-dropdown-btn){--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1}.regular-input{display:block;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.5rem;border-width:1px;border-style:solid;border-color:rgb(210 214 218/var(--tw-border-opacity));background-color:rgb(255 255 255/var(--tw-bg-opacity));background-clip:padding-box;padding:.25rem .375rem;font-size:.875rem;font-weight:400;line-height:1.4rem;color:rgb(73 80 87/var(--tw-text-opacity));outline:2px solid #0000;outline-offset:2px;transition-property:all;transition-timing-function:ease;transition-duration:.15s;transition-timing-function:ease-in}.regular-input::-moz-placeholder{--tw-text-opacity:1;color:rgb(173 181 189/var(--tw-text-opacity))}.regular-input::placeholder{--tw-text-opacity:1;color:rgb(173 181 189/var(--tw-text-opacity))}.regular-input:focus{border-color:#d2d6da00;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.regular-input:valid:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity))}.regular-input:invalid:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(245 57 57/var(--tw-ring-opacity))}.regular-input:disabled{--tw-bg-opacity:1;background-color:rgb(206 212 218/var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(73 80 87/var(--tw-text-opacity));opacity:.75}:is(.dark .regular-input){border-color:rgb(98 117 148/var(--tw-border-opacity));background-color:rgb(52 71 103/var(--tw-bg-opacity));opacity:.9}:is(.dark .regular-input),:is(.dark .regular-input:disabled){--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(210 214 218/var(--tw-text-opacity))}:is(.dark .regular-input:disabled){border-color:rgb(37 47 64/var(--tw-border-opacity));background-color:rgb(37 47 64/var(--tw-bg-opacity))}@media (min-width:768px){.regular-input{padding:.5rem .75rem}}.input-title{margin:0;font-size:.875rem;line-height:1.5rem;font-weight:700;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:ease;transition-duration:.3s;transition-timing-function:ease-in-out}:is(.dark .input-title){--tw-text-opacity:1;color:rgb(210 214 218/var(--tw-text-opacity));opacity:.9}.popover-settings-container{position:absolute;left:0;bottom:0;z-index:50;--tw-translate-y:-1.75rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:.375rem;--tw-bg-opacity:1;background-color:rgb(94 114 228/var(--tw-bg-opacity));padding:.75rem;transition-property:all;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:ease;transition-duration:.5s}:is(.dark .popover-settings-container){--tw-brightness:brightness(.9);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)}.popover-settings-text{margin:0;font-size:.875rem;line-height:1.5rem;font-weight:700;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:ease;transition-duration:.3s;transition-timing-function:ease-in-out}:is(.dark .popover-settings-text){--tw-text-opacity:1;color:rgb(235 239 244/var(--tw-text-opacity));opacity:.9}.popover-settings-svg{margin-left:.5rem;height:1.25rem;width:1.25rem;cursor:pointer;fill:#5e72e4}.popover-settings-svg:hover{--tw-brightness:brightness(.75);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)}.active.settings-tabs-tab-btn{position:relative;z-index:10;margin-top:.25rem;margin-bottom:.25rem;cursor:pointer;border-radius:0;border-width:1px;--tw-border-opacity:1;border-color:rgb(11 85 119/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));padding:.75rem;text-align:center;vertical-align:middle;font-size:.875rem;line-height:1.5rem;font-weight:700;text-transform:uppercase;line-height:1.5;letter-spacing:-.025rem;--tw-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014;--tw-shadow-colored:0 7px 14px var(--tw-shadow-color),0 3px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-brightness:brightness(.9);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-property:all;transition-timing-function:ease;transition-duration:.15s;transition-timing-function:ease-in}.active.settings-tabs-tab-btn:hover{--tw-bg-opacity:1;background-color:rgb(235 239 244/var(--tw-bg-opacity));--tw-shadow:0 4px 6px #32325d1a,0 1px 3px #00000014;--tw-shadow-colored:0 4px 6px var(--tw-shadow-color),0 1px 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}:is(.dark .active.settings-tabs-tab-btn){--tw-border-opacity:1;border-color:rgb(98 117 148/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(52 71 103/var(--tw-bg-opacity))}:is(.dark .active.settings-tabs-tab-btn:hover){--tw-bg-opacity:1;background-color:rgb(58 65 111/var(--tw-bg-opacity))}.settings-tabs-tab-btn{position:relative;margin-top:.25rem;margin-bottom:.25rem;cursor:pointer;border-radius:0;border-width:1px;--tw-border-opacity:1;border-color:rgb(11 85 119/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));padding:.75rem;text-align:center;vertical-align:middle;font-size:.875rem;line-height:1.5rem;font-weight:700;text-transform:uppercase;line-height:1.5;letter-spacing:-.025rem;--tw-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014;--tw-shadow-colored:0 7px 14px var(--tw-shadow-color),0 3px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:ease;transition-duration:.15s;transition-timing-function:ease-in}.settings-tabs-tab-btn:hover{--tw-bg-opacity:1;background-color:rgb(235 239 244/var(--tw-bg-opacity));--tw-shadow:0 4px 6px #32325d1a,0 1px 3px #00000014;--tw-shadow-colored:0 4px 6px var(--tw-shadow-color),0 1px 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}:is(.dark .settings-tabs-tab-btn){--tw-border-opacity:1;border-color:rgb(98 117 148/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(52 71 103/var(--tw-bg-opacity))}:is(.dark .settings-tabs-tab-btn:hover){--tw-bg-opacity:1;background-color:rgb(58 65 111/var(--tw-bg-opacity))}.settings-tabs-name{padding-left:.75rem;padding-right:.5rem;--tw-text-opacity:1;color:rgb(11 85 119/var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:ease;transition-duration:.3s;transition-timing-function:ease-in-out}:is(.dark .settings-tabs-name){--tw-text-opacity:1;color:rgb(210 214 218/var(--tw-text-opacity));opacity:.9}.settings-tabs-popover-container{position:absolute;top:60px;left:0;z-index:50;min-width:150px;border-radius:.375rem;--tw-bg-opacity:1;background-color:rgb(94 114 228/var(--tw-bg-opacity));padding:.75rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:ease;transition-duration:.15s}:is(.dark .settings-tabs-popover-container){--tw-brightness:brightness(.9);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)}.settings-tabs-popover-text{margin:0;font-size:.875rem;line-height:1.5rem;font-weight:700;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.settings-tabs-mobile-btn{margin-top:.25rem;margin-bottom:.25rem;display:flex;width:100%;cursor:pointer;align-items:center;justify-content:space-between;border-radius:.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(11 85 119/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));padding:.75rem 1.5rem;text-align:center;vertical-align:middle;font-size:.875rem;line-height:1.5rem;font-weight:700;text-transform:uppercase;line-height:1.5;letter-spacing:-.025rem;--tw-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014;--tw-shadow-colored:0 7px 14px var(--tw-shadow-color),0 3px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:ease;transition-duration:.15s;transition-timing-function:ease-in}.settings-tabs-mobile-btn:hover{--tw-translate-y:-1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-bg-opacity:1;background-color:rgb(248 249 250/var(--tw-bg-opacity));--tw-shadow:0 4px 6px #32325d1a,0 1px 3px #00000014;--tw-shadow-colored:0 4px 6px var(--tw-shadow-color),0 1px 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}:is(.dark .settings-tabs-mobile-btn){--tw-border-opacity:1;border-color:rgb(98 117 148/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(52 71 103/var(--tw-bg-opacity))}:is(.dark .settings-tabs-mobile-btn:hover){--tw-brightness:brightness(.95);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)}.settings-tabs-mobile-btn-text{--tw-text-opacity:1;color:rgb(11 85 119/var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:ease;transition-duration:.3s;transition-timing-function:ease-in-out}:is(.dark .settings-tabs-mobile-btn-text){--tw-text-opacity:1;color:rgb(210 214 218/var(--tw-text-opacity));opacity:.9}.active.settings-tabs-mobile-dropdown-btn{position:relative;z-index:1000;margin-top:0;margin-bottom:0;cursor:pointer;border-radius:0;--tw-border-opacity:1;border-color:rgb(210 214 218/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(11 85 119/var(--tw-bg-opacity));padding:.5rem 1.5rem;text-align:center;vertical-align:middle;font-size:.875rem;line-height:1.5rem;line-height:1.5;letter-spacing:-.025rem;--tw-text-opacity:1;color:rgb(210 214 218/var(--tw-text-opacity));transition-property:all;transition-timing-function:ease;transition-duration:.15s;transition-timing-function:ease-in}.active.settings-tabs-mobile-dropdown-btn:hover{--tw-brightness:brightness(.9);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)}:is(.dark .active.settings-tabs-mobile-dropdown-btn){--tw-border-opacity:1;border-color:rgb(98 117 148/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(11 85 119/var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(210 214 218/var(--tw-text-opacity))}:is(.dark .active.settings-tabs-mobile-dropdown-btn:hover){--tw-brightness:brightness(.9);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)}.first.settings-tabs-mobile-dropdown-btn{border-top-left-radius:.25rem;border-top-right-radius:.25rem;border-width:1px}.settings-tabs-mobile-dropdown-btn{position:relative;margin-top:0;margin-bottom:0;display:flex;cursor:pointer;justify-content:space-between;border-radius:0;border-bottom-width:1px;border-left-width:1px;border-right-width:1px;--tw-border-opacity:1;border-color:rgb(210 214 218/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));padding:.5rem 1.5rem;text-align:center;vertical-align:middle;font-size:.875rem;line-height:1.5rem;line-height:1.5;letter-spacing:-.025rem;--tw-text-opacity:1;color:rgb(73 80 87/var(--tw-text-opacity));transition-property:all;transition-timing-function:ease;transition-duration:.15s;transition-timing-function:ease-in}.settings-tabs-mobile-dropdown-btn:hover{--tw-brightness:brightness(.9);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)}:is(.dark .settings-tabs-mobile-dropdown-btn){--tw-border-opacity:1;border-color:rgb(98 117 148/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(52 71 103/var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(210 214 218/var(--tw-text-opacity))}:is(.dark .settings-tabs-mobile-dropdown-btn:hover){--tw-brightness:brightness(.9);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)}.first-letter\:absolute:first-letter{position:absolute}.first-letter\:w-full:first-letter{width:100%}.placeholder\:text-gray-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(173 181 189/var(--tw-text-opacity))}.placeholder\:text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(173 181 189/var(--tw-text-opacity))}.before\:float-left:before{content:var(--tw-content);float:left}.before\:pr-2:before{content:var(--tw-content);padding-right:.5rem}.before\:text-white:before{content:var(--tw-content);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.before\:content-\[\'\/\'\]:before{--tw-content:"/";content:var(--tw-content)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:top-px:after{content:var(--tw-content);top:1px}.after\:float-right:after{content:var(--tw-content);float:right}.after\:h-4:after{content:var(--tw-content);height:1rem}.after\:w-4:after{content:var(--tw-content);width:1rem}.after\:translate-x-px:after{content:var(--tw-content);--tw-translate-x:1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.after\:rounded-circle:after{content:var(--tw-content);border-radius:50%}.after\:bg-white:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.after\:pl-2:after{content:var(--tw-content);padding-left:.5rem}.after\:text-gray-600:after{content:var(--tw-content);--tw-text-opacity:1;color:rgb(108 117 125/var(--tw-text-opacity))}.after\:shadow-2xl:after{content:var(--tw-content);--tw-shadow:0 .3125rem .625rem 0 #0000001f;--tw-shadow-colored:0 .3125rem .625rem 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.after\:duration-300:after{content:var(--tw-content);transition-duration:.3s}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.after\:content-\[\'\/\'\]:after{--tw-content:"/";content:var(--tw-content)}.checked\:z-0:checked{z-index:0}.checked\:border-primary:checked{--tw-border-opacity:1;border-color:rgb(11 85 119/var(--tw-border-opacity))}.checked\:bg-primary:checked{--tw-bg-opacity:1;background-color:rgb(11 85 119/var(--tw-bg-opacity))}.checked\:bg-none:checked{background-image:none}.checked\:bg-right:checked{background-position:100%}.checked\:after\:translate-x-5:checked:after{--tw-translate-x:1.25rem}.checked\:after\:translate-x-5:checked:after,.checked\:after\:translate-x-5\.3:checked:after{content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.checked\:after\:translate-x-5\.3:checked:after{--tw-translate-x:1.3rem}.valid\:\!border-red-500:valid{--tw-border-opacity:1!important;border-color:rgb(245 57 57/var(--tw-border-opacity))!important}.hover\:-translate-y-0:hover{--tw-translate-y:-0px}.hover\:-translate-y-0:hover,.hover\:-translate-y-0\.4:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-0\.4:hover{--tw-translate-y:-0.1rem}.hover\:-translate-y-px:hover{--tw-translate-y:-1px}.hover\:-translate-y-px:hover,.hover\:scale-102:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-102:hover{--tw-scale-x:1.02;--tw-scale-y:1.02}.hover\:rounded-lg:hover{border-radius:.5rem}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(235 239 244/var(--tw-bg-opacity))}.hover\:bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgb(210 214 218/var(--tw-bg-opacity))}.hover\:bg-green-500\/80:hover{background-color:#22c55ecc}.hover\:bg-primary\/30:hover{background-color:#0b55774d}.hover\:bg-primary\/5:hover{background-color:#0b55770d}.hover\:bg-primary\/80:hover{background-color:#0b5577cc}.hover\:bg-red-500\/80:hover{background-color:#f53939cc}.hover\:bg-sky-500\/80:hover{background-color:#0ea5e9cc}.hover\:bg-yellow-500\/80:hover{background-color:#fbb140cc}.hover\:italic:hover{font-style:italic}.hover\:no-underline:hover{text-decoration-line:none}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px #32325d1a,0 1px 3px #00000014;--tw-shadow-colored:0 4px 6px var(--tw-shadow-color),0 1px 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:brightness-75:hover{--tw-brightness:brightness(.75)}.hover\:brightness-75:hover,.hover\:brightness-90:hover{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:brightness-90:hover{--tw-brightness:brightness(.9)}.hover\:brightness-95:hover{--tw-brightness:brightness(.95);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)}.focus\:\!border-red-500:focus{--tw-border-opacity:1!important;border-color:rgb(245 57 57/var(--tw-border-opacity))!important}.focus\:border-green-500:focus{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity))}.focus\:border-primary:focus{--tw-border-opacity:1;border-color:rgb(11 85 119/var(--tw-border-opacity))}.focus\:bg-green-500\/80:focus{background-color:#22c55ecc}.focus\:bg-primary\/80:focus{background-color:#0b5577cc}.focus\:bg-red-500\/80:focus{background-color:#f53939cc}.focus\:bg-sky-500\/80:focus{background-color:#0ea5e9cc}.focus\:bg-yellow-500\/80:focus{background-color:#fbb140cc}.focus\:\!outline-red-500:focus{outline-color:#f53939!important}.focus\:\!ring-red-500:focus{--tw-ring-opacity:1!important;--tw-ring-color:rgb(245 57 57/var(--tw-ring-opacity))!important}.focus\:valid\:\!border-red-500:valid:focus{--tw-border-opacity:1!important;border-color:rgb(245 57 57/var(--tw-border-opacity))!important}.focus\:valid\:border-green-500:valid:focus{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity))}.focus\:valid\:\!outline-red-500:valid:focus{outline-color:#f53939!important}.focus\:valid\:\!ring-red-500:valid:focus{--tw-ring-opacity:1!important;--tw-ring-color:rgb(245 57 57/var(--tw-ring-opacity))!important}.focus\:invalid\:border-red-500:invalid:focus{--tw-border-opacity:1;border-color:rgb(245 57 57/var(--tw-border-opacity))}.focus\:file\:invalid\:border-red-500:invalid::file-selector-button:focus{--tw-border-opacity:1;border-color:rgb(245 57 57/var(--tw-border-opacity))}.active\:\!border-red-500:active{--tw-border-opacity:1!important;border-color:rgb(245 57 57/var(--tw-border-opacity))!important}.active\:opacity-85:active{opacity:.85}.active\:valid\:\!border-red-500:valid:active{--tw-border-opacity:1!important;border-color:rgb(245 57 57/var(--tw-border-opacity))!important}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:border-gray-400:disabled{--tw-border-opacity:1;border-color:rgb(206 212 218/var(--tw-border-opacity))}.disabled\:bg-gray-400:disabled{--tw-bg-opacity:1;background-color:rgb(206 212 218/var(--tw-bg-opacity))}.disabled\:text-gray-700:disabled{--tw-text-opacity:1;color:rgb(73 80 87/var(--tw-text-opacity))}.disabled\:opacity-75:disabled{opacity:.75}.disabled\:hover\:translate-y-0:hover:disabled{--tw-translate-y:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:is(.dark .dark\:inline){display:inline}:is(.dark .dark\:hidden){display:none}:is(.dark .dark\:border-gray-700){--tw-border-opacity:1;border-color:rgb(73 80 87/var(--tw-border-opacity))}:is(.dark .dark\:border-slate-600){--tw-border-opacity:1;border-color:rgb(98 117 148/var(--tw-border-opacity))}:is(.dark .dark\:border-slate-800){--tw-border-opacity:1;border-color:rgb(58 65 111/var(--tw-border-opacity))}:is(.dark .dark\:bg-gray-800){--tw-bg-opacity:1;background-color:rgb(37 47 64/var(--tw-bg-opacity))}:is(.dark .dark\:bg-green-500\/90){background-color:#22c55ee6}:is(.dark .dark\:bg-primary){--tw-bg-opacity:1;background-color:rgb(11 85 119/var(--tw-bg-opacity))}:is(.dark .dark\:bg-primary\/50){background-color:#0b557780}:is(.dark .dark\:bg-slate-700){--tw-bg-opacity:1;background-color:rgb(52 71 103/var(--tw-bg-opacity))}:is(.dark .dark\:bg-slate-700\/50){background-color:#34476780}:is(.dark .dark\:bg-slate-850){--tw-bg-opacity:1;background-color:rgb(17 28 68/var(--tw-bg-opacity))}:is(.dark .dark\:bg-slate-900){--tw-bg-opacity:1;background-color:rgb(5 17 57/var(--tw-bg-opacity))}:is(.dark .dark\:bg-slate-900\/30){background-color:#0511394d}:is(.dark .dark\:bg-gray-600){--tw-bg-opacity:1;background-color:rgb(108 117 125/var(--tw-bg-opacity))}:is(.dark .dark\:bg-slate-600){--tw-bg-opacity:1;background-color:rgb(98 117 148/var(--tw-bg-opacity))}:is(.dark .dark\:bg-slate-800){--tw-bg-opacity:1;background-color:rgb(58 65 111/var(--tw-bg-opacity))}:is(.dark .dark\:bg-gradient-to-r){background-image:linear-gradient(to right,var(--tw-gradient-stops))}:is(.dark .dark\:from-transparent){--tw-gradient-from:#0000 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}:is(.dark .dark\:via-white){--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#fff var(--tw-gradient-via-position),var(--tw-gradient-to)}:is(.dark .dark\:to-transparent){--tw-gradient-to:#0000 var(--tw-gradient-to-position)}:is(.dark .dark\:fill-blue-500){fill:#5e72e4}:is(.dark .dark\:fill-gray-300){fill:#d2d6da}:is(.dark .dark\:fill-gray-500){fill:#adb5bd}:is(.dark .dark\:fill-gray-600){fill:#6c757d}:is(.dark .dark\:fill-gray-50){fill:#f8f9fa}:is(.dark .dark\:stroke-gray-600){stroke:#6c757d}:is(.dark .dark\:stroke-gray-50){stroke:#f8f9fa}:is(.dark .dark\:stroke-gray-400){stroke:#ced4da}:is(.dark .dark\:text-gray-100){--tw-text-opacity:1;color:rgb(235 239 244/var(--tw-text-opacity))}:is(.dark .dark\:text-gray-200){--tw-text-opacity:1;color:rgb(233 236 239/var(--tw-text-opacity))}:is(.dark .dark\:text-gray-300){--tw-text-opacity:1;color:rgb(210 214 218/var(--tw-text-opacity))}:is(.dark .dark\:text-gray-400){--tw-text-opacity:1;color:rgb(206 212 218/var(--tw-text-opacity))}:is(.dark .dark\:text-gray-500){--tw-text-opacity:1;color:rgb(173 181 189/var(--tw-text-opacity))}:is(.dark .dark\:text-red-500){--tw-text-opacity:1;color:rgb(245 57 57/var(--tw-text-opacity))}:is(.dark .dark\:text-white){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .dark\:text-white\/80){color:#fffc}:is(.dark .dark\:text-white\/90){color:#ffffffe6}:is(.dark .dark\:opacity-60){opacity:.6}:is(.dark .dark\:opacity-75){opacity:.75}:is(.dark .dark\:opacity-80){opacity:.8}:is(.dark .dark\:opacity-90){opacity:.9}:is(.dark .dark\:shadow-dark-xl){--tw-shadow:0 2px 2px 0 #00000024,0 3px 1px -2px #0003,0 1px 5px 0 #0000001f;--tw-shadow-colored:0 2px 2px 0 var(--tw-shadow-color),0 3px 1px -2px var(--tw-shadow-color),0 1px 5px 0 var(--tw-shadow-color)}:is(.dark .dark\:shadow-dark-xl),:is(.dark .dark\:shadow-none){box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}:is(.dark .dark\:shadow-none){--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}:is(.dark .dark\:brightness-110){--tw-brightness:brightness(1.1)}:is(.dark .dark\:brightness-110),:is(.dark .dark\:brightness-125){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)}:is(.dark .dark\:brightness-125){--tw-brightness:brightness(1.25)}:is(.dark .dark\:brightness-150){--tw-brightness:brightness(1.5)}:is(.dark .dark\:brightness-150),:is(.dark .dark\:brightness-90){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)}:is(.dark .dark\:brightness-90){--tw-brightness:brightness(.9)}:is(.dark .dark\:brightness-95){--tw-brightness:brightness(.95)}:is(.dark .dark\:brightness-95),:is(.dark .dark\:brightness-\[0\.885\]){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)}:is(.dark .dark\:brightness-\[0\.885\]){--tw-brightness:brightness(0.885)}:is(.dark .dark\:after\:text-gray-500):after{content:var(--tw-content);--tw-text-opacity:1;color:rgb(173 181 189/var(--tw-text-opacity))}:is(.dark .dark\:checked\:border-primary:checked){--tw-border-opacity:1;border-color:rgb(11 85 119/var(--tw-border-opacity))}:is(.dark .dark\:checked\:bg-primary:checked){--tw-bg-opacity:1;background-color:rgb(11 85 119/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-primary\/20:hover){background-color:#0b557733}:is(.dark .dark\:hover\:bg-primary\/60:hover){background-color:#0b557799}:is(.dark .dark\:hover\:bg-slate-700\/50:hover){background-color:#34476780}:is(.dark .dark\:hover\:bg-slate-800:hover){--tw-bg-opacity:1;background-color:rgb(58 65 111/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:brightness-100:hover){--tw-brightness:brightness(1)}:is(.dark .dark\:hover\:brightness-100:hover),:is(.dark .dark\:hover\:brightness-105:hover){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)}:is(.dark .dark\:hover\:brightness-105:hover){--tw-brightness:brightness(1.05)}:is(.dark .dark\:hover\:brightness-90:hover){--tw-brightness:brightness(.9);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)}:is(.dark .dark\:disabled\:border-gray-800:disabled){--tw-border-opacity:1;border-color:rgb(37 47 64/var(--tw-border-opacity))}:is(.dark .dark\:disabled\:bg-gray-800:disabled){--tw-bg-opacity:1;background-color:rgb(37 47 64/var(--tw-bg-opacity))}:is(.dark .dark\:disabled\:text-gray-300:disabled){--tw-text-opacity:1;color:rgb(210 214 218/var(--tw-text-opacity))}@media (min-width:576px){.sm\:right-24{right:6rem}.sm\:right-40{right:10rem}.sm\:right-6{right:1.5rem}.sm\:top-2{top:.5rem}.sm\:top-\[4\.5rem\]{top:4.5rem}.sm\:col-span-4{grid-column:span 4/span 4}.sm\:col-span-6{grid-column:span 6/span 6}.sm\:col-start-5{grid-column-start:5}.sm\:mx-4{margin-left:1rem;margin-right:1rem}.sm\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.sm\:ml-1{margin-left:.25rem}.sm\:mr-16{margin-right:4rem}.sm\:h-10{height:2.5rem}.sm\:h-14{height:3.5rem}.sm\:h-7{height:1.75rem}.sm\:max-h-125{max-height:31.25rem}.sm\:max-h-28{max-height:7rem}.sm\:w-36{width:9rem}.sm\:w-50{width:12.5rem}.sm\:w-7{width:1.75rem}.sm\:min-w-\[500px\]{min-width:500px}.sm\:scale-100{--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:justify-items-start{justify-items:start}.sm\:gap-4{gap:1rem}.sm\:px-12{padding-left:3rem;padding-right:3rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-0{padding-top:0;padding-bottom:0}.sm\:pt-6{padding-top:1.5rem}.sm\:text-left{text-align:left}}@media (min-width:768px){.md\:right-8{right:2rem}.md\:top-\[40\%\]{top:40%}.md\:right-12{right:3rem}.md\:right-16{right:4rem}.md\:right-14{right:3.5rem}.md\:right-\[3\.75rem\]{right:3.75rem}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-5{grid-column:span 5/span 5}.md\:col-span-6{grid-column:span 6/span 6}.md\:col-span-7{grid-column:span 7/span 7}.md\:col-span-8{grid-column:span 8/span 8}.md\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.md\:my-3{margin-top:.75rem;margin-bottom:.75rem}.md\:mb-0{margin-bottom:0}.md\:mb-3{margin-bottom:.75rem}.md\:mb-8{margin-bottom:2rem}.md\:mr-3{margin-right:.75rem}.md\:mt-0{margin-top:0}.md\:mt-6{margin-top:1.5rem}.md\:block{display:block}.md\:hidden{display:none}.md\:h-16{height:4rem}.md\:max-h-160{max-height:40rem}.md\:min-h-75-screen{min-height:75vh}.md\:w-1\/2{width:50%}.md\:w-60{width:15rem}.md\:max-w-\[600px\]{max-width:600px}.md\:justify-end{justify-content:flex-end}.md\:gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.md\:px-3{padding-left:.75rem;padding-right:.75rem}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:py-2{padding-top:.5rem;padding-bottom:.5rem}.md\:py-4{padding-top:1rem;padding-bottom:1rem}.md\:text-base{font-size:1rem;line-height:1.5rem}}@media (min-width:992px){.lg\:relative{position:relative}.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:mx-0{margin-left:0;margin-right:0}.lg\:mx-8{margin-left:2rem;margin-right:2rem}.lg\:my-3{margin-top:.75rem;margin-bottom:.75rem}.lg\:mt-0{margin-top:0}.lg\:mt-4{margin-top:1rem}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-24{height:6rem}.lg\:h-9{height:2.25rem}.lg\:w-80{width:20rem}.lg\:w-9{width:2.25rem}.lg\:flex-row{flex-direction:row}.lg\:flex-nowrap{flex-wrap:nowrap}.lg\:justify-start{justify-content:flex-start}.lg\:justify-end{justify-content:flex-end}.lg\:justify-between{justify-content:space-between}.lg\:gap-6{gap:1.5rem}.lg\:bg-gray-50{--tw-bg-opacity:1;background-color:rgb(248 249 250/var(--tw-bg-opacity))}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:pb-1{padding-bottom:.25rem}.lg\:text-left{text-align:left}}@media (min-width:1200px){.xl\:left-0{left:0}.xl\:right-24{right:6rem}.xl\:right-6{right:1.5rem}.xl\:ml-6{margin-left:1.5rem}.xl\:ml-68{margin-left:17rem}.xl\:hidden{display:none}.xl\:translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.xl\:p-1{padding:.25rem}.xl\:p-1\.5{padding:.375rem}.xl\:pl-75{padding-left:18.75rem}.xl\:text-base{font-size:1rem;line-height:1.5rem}}@media (min-width:1320px){.\32xl\:col-span-4{grid-column:span 4/span 4}.\32xl\:col-span-6{grid-column:span 6/span 6}.\32xl\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.\32xl\:my-3{margin-top:.75rem;margin-bottom:.75rem}}@media (min-width:1920px){.\33xl\:col-span-3{grid-column:span 3/span 3}.\33xl\:col-span-4{grid-column:span 4/span 4}.\33xl\:col-span-5{grid-column:span 5/span 5}}@media (min-width:340px){.xs\:flex{display:flex}.xs\:flex-row{flex-direction:row}.xs\:items-center{align-items:center}.xs\:justify-start{justify-content:flex-start}.xs\:pl-2{padding-left:.5rem}.xs\:text-sm{font-size:.875rem;line-height:1.5rem}}.\[\&\>\*\]\:bg-primary>*{--tw-bg-opacity:1;background-color:rgb(11 85 119/var(--tw-bg-opacity))} \ No newline at end of file +/*! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com*/ +*, +:after, +:before { + box-sizing: border-box; + border: 0 solid #e9ecef; +} +:after, +:before { + --tw-content: ""; +} +html { + line-height: 1.5; + -webkit-text-size-adjust: 100%; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + font-family: Open Sans; + font-feature-settings: normal; + font-variation-settings: normal; +} +body { + margin: 0; + line-height: inherit; +} +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; + text-decoration: inherit; +} +b, +strong { + font-weight: bolder; +} +code, +kbd, +pre, +samp { + font-family: + ui-monospace, + SFMono-Regular, + Menlo, + Monaco, + Consolas, + Liberation Mono, + Courier New, + monospace; + font-size: 1em; +} +small { + font-size: 80%; +} +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: initial; +} +sub { + bottom: -0.25em; +} +sup { + top: -0.5em; +} +table { + text-indent: 0; + border-color: inherit; + border-collapse: collapse; +} +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + font-size: 100%; + font-weight: inherit; + line-height: inherit; + color: inherit; + margin: 0; + padding: 0; +} +button, +select { + text-transform: none; +} +[type="button"], +[type="reset"], +[type="submit"], +button { + -webkit-appearance: button; + background-color: initial; + background-image: none; +} +:-moz-focusring { + outline: auto; +} +:-moz-ui-invalid { + box-shadow: none; +} +progress { + vertical-align: initial; +} +::-webkit-inner-spin-button, +::-webkit-outer-spin-button { + height: auto; +} +[type="search"] { + -webkit-appearance: textfield; + outline-offset: -2px; +} +::-webkit-search-decoration { + -webkit-appearance: none; +} +::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit; +} +summary { + display: list-item; +} +blockquote, +dd, +dl, +figure, +h1, +h2, +h3, +h4, +h5, +h6, +hr, +p, +pre { + margin: 0; +} +fieldset { + margin: 0; +} +fieldset, +legend { + padding: 0; +} +menu, +ol, +ul { + list-style: none; + margin: 0; + padding: 0; +} +textarea { + resize: vertical; +} +input::-moz-placeholder, +textarea::-moz-placeholder { + opacity: 1; + color: #ced4da; +} +input::placeholder, +textarea::placeholder { + opacity: 1; + color: #ced4da; +} +[role="button"], +button { + cursor: pointer; +} +:disabled { + cursor: default; +} +audio, +canvas, +embed, +iframe, +img, +object, +svg, +video { + display: block; + vertical-align: middle; +} +img, +video { + max-width: 100%; + height: auto; +} +[hidden] { + display: none; +} +*, +::backdrop, +:after, +:before { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: #5e72e480; + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; +} +.\!container { + width: 100% !important; + margin-right: auto !important; + margin-left: auto !important; + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} +.container { + width: 100%; + margin-right: auto; + margin-left: auto; + padding-right: 1.5rem; + padding-left: 1.5rem; +} +@media (min-width: 340px) { + .\!container { + max-width: 340px !important; + } + .container { + max-width: 340px; + } +} +@media (min-width: 576px) { + .\!container { + max-width: 576px !important; + } + .container { + max-width: 576px; + } +} +@media (min-width: 768px) { + .\!container { + max-width: 768px !important; + } + .container { + max-width: 768px; + } +} +@media (min-width: 992px) { + .\!container { + max-width: 992px !important; + } + .container { + max-width: 992px; + } +} +@media (min-width: 1200px) { + .\!container { + max-width: 1200px !important; + } + .container { + max-width: 1200px; + } +} +@media (min-width: 1320px) { + .\!container { + max-width: 1320px !important; + } + .container { + max-width: 1320px; + } +} +@media (min-width: 1920px) { + .\!container { + max-width: 1920px !important; + } + .container { + max-width: 1920px; + } +} +a { + letter-spacing: -0.025rem; +} +hr { + margin: 1rem 0; + border: 0; + opacity: 0.25; +} +img { + max-width: none; +} +label { + display: inline-block; +} +p { + line-height: 1.625; + font-weight: 400; + margin-bottom: 1rem; +} +small { + font-size: 0.875em; +} +svg { + display: inline; +} +table { + border-collapse: inherit; +} +h1, +h2, +h3, +h4, +h5, +h6 { + margin-bottom: 0.5rem; + color: #344767; +} +h1, +h2, +h3, +h4 { + letter-spacing: -0.05rem; +} +h1, +h2, +h3 { + font-weight: 700; +} +h4, +h5, +h6 { + font-weight: 600; +} +h1 { + font-size: 3rem; + line-height: 1.25; +} +h2 { + font-size: 2.25rem; + line-height: 1.3; +} +h3 { + font-size: 1.875rem; +} +h3, +h4 { + line-height: 1.375; +} +h4 { + font-size: 1.5rem; +} +h5 { + font-size: 1.25rem; + line-height: 1.375; +} +h6 { + font-size: 1rem; + line-height: 1.625; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; +} +.pointer-events-none { + pointer-events: none; +} +.visible { + visibility: visible; +} +.invisible { + visibility: hidden; +} +.collapse { + visibility: collapse; +} +.static { + position: static; +} +.fixed { + position: fixed; +} +.absolute { + position: absolute; +} +.relative { + position: relative; +} +.inset-y-0 { + top: 0; + bottom: 0; +} +.-left-full { + left: -100%; +} +.-right-0 { + right: 0; +} +.-right-1 { + right: -0.25rem; +} +.bottom-0 { + bottom: 0; +} +.left-0 { + left: 0; +} +.left-auto { + left: auto; +} +.left-full { + left: 100%; +} +.right-0 { + right: 0; +} +.right-12 { + right: 3rem; +} +.right-2 { + right: 0.5rem; +} +.right-20 { + right: 5rem; +} +.right-4 { + right: 1rem; +} +.right-5 { + right: 1.25rem; +} +.right-6 { + right: 1.5rem; +} +.right-7 { + right: 1.75rem; +} +.right-8 { + right: 2rem; +} +.top-0 { + top: 0; +} +.top-1 { + top: 0.25rem; +} +.top-1\.5 { + top: 0.375rem; +} +.top-16 { + top: 4rem; +} +.top-2 { + top: 0.5rem; +} +.top-4 { + top: 1rem; +} +.top-\[38\%\] { + top: 38%; +} +.top-\[4\.5rem\] { + top: 4.5rem; +} +.top-\[55\%\] { + top: 55%; +} +.top-\[8\.2rem\] { + top: 8.2rem; +} +.top-\[53\%\] { + top: 53%; +} +.top-\[52\%\] { + top: 52%; +} +.right-14 { + right: 3.5rem; +} +.right-\[2\.25rem\] { + right: 2.25rem; +} +.right-\[3\.25rem\] { + right: 3.25rem; +} +.-z-10 { + z-index: -10; +} +.z-10 { + z-index: 10; +} +.z-100 { + z-index: 100; +} +.z-110 { + z-index: 110; +} +.z-20 { + z-index: 20; +} +.z-50 { + z-index: 50; +} +.z-990 { + z-index: 990; +} +.z-\[10000\] { + z-index: 10000; +} +.z-\[1000\] { + z-index: 1000; +} +.z-\[1001\] { + z-index: 1001; +} +.z-\[20\] { + z-index: 20; +} +.z-sticky { + z-index: 1020; +} +.order-1 { + order: 1; +} +.order-2 { + order: 2; +} +.col-span-1 { + grid-column: span 1 / span 1; +} +.col-span-10 { + grid-column: span 10 / span 10; +} +.col-span-11 { + grid-column: span 11 / span 11; +} +.col-span-12 { + grid-column: span 12 / span 12; +} +.col-span-2 { + grid-column: span 2 / span 2; +} +.col-span-3 { + grid-column: span 3 / span 3; +} +.col-span-9 { + grid-column: span 9 / span 9; +} +.float-right { + float: right; +} +.float-left { + float: left; +} +.m-0 { + margin: 0; +} +.m-1 { + margin: 0.25rem; +} +.m-2 { + margin: 0.5rem; +} +.m-4 { + margin: 1rem; +} +.mx-0 { + margin-left: 0; + margin-right: 0; +} +.mx-0\.5 { + margin-left: 0.125rem; + margin-right: 0.125rem; +} +.mx-1 { + margin-left: 0.25rem; + margin-right: 0.25rem; +} +.mx-2 { + margin-left: 0.5rem; + margin-right: 0.5rem; +} +.mx-2\.5 { + margin-left: 0.625rem; + margin-right: 0.625rem; +} +.mx-3 { + margin-left: 0.75rem; + margin-right: 0.75rem; +} +.mx-4 { + margin-left: 1rem; + margin-right: 1rem; +} +.mx-auto { + margin-left: auto; + margin-right: auto; +} +.my-0 { + margin-top: 0; + margin-bottom: 0; +} +.my-1 { + margin-top: 0.25rem; + margin-bottom: 0.25rem; +} +.my-2 { + margin-top: 0.5rem; + margin-bottom: 0.5rem; +} +.my-3 { + margin-top: 0.75rem; + margin-bottom: 0.75rem; +} +.my-4 { + margin-top: 1rem; + margin-bottom: 1rem; +} +.mb-0 { + margin-bottom: 0; +} +.mb-0\.5 { + margin-bottom: 0.125rem; +} +.mb-1 { + margin-bottom: 0.25rem; +} +.mb-2 { + margin-bottom: 0.5rem; +} +.mb-3 { + margin-bottom: 0.75rem; +} +.mb-4 { + margin-bottom: 1rem; +} +.mb-6 { + margin-bottom: 1.5rem; +} +.mb-7 { + margin-bottom: 1.75rem; +} +.mb-8 { + margin-bottom: 2rem; +} +.ml-0 { + margin-left: 0; +} +.ml-1 { + margin-left: 0.25rem; +} +.ml-12 { + margin-left: 3rem; +} +.ml-2 { + margin-left: 0.5rem; +} +.ml-3 { + margin-left: 0.75rem; +} +.ml-4 { + margin-left: 1rem; +} +.ml-6 { + margin-left: 1.5rem; +} +.ml-auto { + margin-left: auto; +} +.mr-1 { + margin-right: 0.25rem; +} +.mr-12 { + margin-right: 3rem; +} +.mr-2 { + margin-right: 0.5rem; +} +.mr-3 { + margin-right: 0.75rem; +} +.mr-4 { + margin-right: 1rem; +} +.mr-6 { + margin-right: 1.5rem; +} +.mt-0 { + margin-top: 0; +} +.mt-0\.5 { + margin-top: 0.125rem; +} +.mt-1 { + margin-top: 0.25rem; +} +.mt-10 { + margin-top: 2.5rem; +} +.mt-16 { + margin-top: 4rem; +} +.mt-2 { + margin-top: 0.5rem; +} +.mt-3 { + margin-top: 0.75rem; +} +.mt-4 { + margin-top: 1rem; +} +.mt-6 { + margin-top: 1.5rem; +} +.mt-8 { + margin-top: 2rem; +} +.mt-\[4\.5rem\] { + margin-top: 4.5rem; +} +.block { + display: block; +} +.inline-block { + display: inline-block; +} +.inline { + display: inline; +} +.flex { + display: flex; +} +.table { + display: table; +} +.grid { + display: grid; +} +.hidden { + display: none; +} +.h-1\/3 { + height: 33.333333%; +} +.h-12 { + height: 3rem; +} +.h-14 { + height: 3.5rem; +} +.h-19 { + height: 4.75rem; +} +.h-3 { + height: 0.75rem; +} +.h-4 { + height: 1rem; +} +.h-4\.5 { + height: 1.125rem; +} +.h-40 { + height: 10rem; +} +.h-48 { + height: 12rem; +} +.h-5 { + height: 1.25rem; +} +.h-5\.5 { + height: 1.375rem; +} +.h-6 { + height: 1.5rem; +} +.h-8 { + height: 2rem; +} +.h-\[2\.5rem\] { + height: 2.5rem; +} +.h-\[3\.5rem\] { + height: 3.5rem; +} +.h-\[4rem\] { + height: 4rem; +} +.h-\[90vh\] { + height: 90vh; +} +.h-full { + height: 100%; +} +.h-px { + height: 1px; +} +.h-screen { + height: 100vh; +} +.h-sidenav { + height: calc(100vh - 360px); +} +.max-h-100 { + max-height: 25rem; +} +.max-h-135 { + max-height: 33.75rem; +} +.max-h-30 { + max-height: 7.5rem; +} +.max-h-80 { + max-height: 20rem; +} +.max-h-90 { + max-height: 22.5rem; +} +.max-h-screen { + max-height: 100vh; +} +.min-h-12 { + min-height: 3rem; +} +.min-h-20 { + min-height: 5rem; +} +.min-h-50-screen { + min-height: 50vh; +} +.min-h-52 { + min-height: 13rem; +} +.min-h-6 { + min-height: 1.5rem; +} +.min-h-\[100px\] { + min-height: 100px; +} +.min-h-\[350px\] { + min-height: 350px; +} +.min-h-\[55vh\] { + min-height: 55vh; +} +.min-h-\[75px\] { + min-height: 75px; +} +.min-h-\[85vh\] { + min-height: 85vh; +} +.min-h-screen { + min-height: 100vh; +} +.w-1 { + width: 0.25rem; +} +.w-10 { + width: 2.5rem; +} +.w-11\/12 { + width: 91.666667%; +} +.w-12 { + width: 3rem; +} +.w-28 { + width: 7rem; +} +.w-3 { + width: 0.75rem; +} +.w-4 { + width: 1rem; +} +.w-4\.5 { + width: 1.125rem; +} +.w-40 { + width: 10rem; +} +.w-48 { + width: 12rem; +} +.w-5 { + width: 1.25rem; +} +.w-5\.5 { + width: 1.375rem; +} +.w-50 { + width: 12.5rem; +} +.w-6 { + width: 1.5rem; +} +.w-8 { + width: 2rem; +} +.w-80 { + width: 20rem; +} +.w-90 { + width: 22.5rem; +} +.w-\[2\.5rem\] { + width: 2.5rem; +} +.w-auto { + width: auto; +} +.w-fit { + width: -moz-fit-content; + width: fit-content; +} +.w-full { + width: 100%; +} +.w-screen { + width: 100vw; +} +.min-w-0 { + min-width: 0; +} +.min-w-\[900px\] { + min-width: 900px; +} +.max-w-180 { + max-width: 45rem; +} +.max-w-40 { + max-width: 10rem; +} +.max-w-60 { + max-width: 15rem; +} +.max-w-64 { + max-width: 16rem; +} +.max-w-\[1920px\] { + max-width: 1920px; +} +.max-w-\[300px\] { + max-width: 300px; +} +.max-w-\[400px\] { + max-width: 400px; +} +.max-w-\[550px\] { + max-width: 550px; +} +.max-w-full { + max-width: 100%; +} +.flex-auto { + flex: 1 1 auto; +} +.grow { + flex-grow: 1; +} +.basis-full { + flex-basis: 100%; +} +.-translate-x-1 { + --tw-translate-x: -0.25rem; +} +.-translate-x-1, +.-translate-x-1\.5 { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.-translate-x-1\.5 { + --tw-translate-x: -0.375rem; +} +.-translate-x-full { + --tw-translate-x: -100%; +} +.-translate-x-full, +.-translate-y-0 { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.-translate-y-0 { + --tw-translate-y: -0px; +} +.-translate-y-0\.4 { + --tw-translate-y: -0.1rem; +} +.-translate-y-0\.4, +.-translate-y-0\.5 { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.-translate-y-0\.5 { + --tw-translate-y: -0.125rem; +} +.-translate-y-1 { + --tw-translate-y: -0.25rem; +} +.-translate-y-1, +.-translate-y-1\.5 { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.-translate-y-1\.5 { + --tw-translate-y: -0.375rem; +} +.translate-x-0 { + --tw-translate-x: 0px; +} +.translate-x-0, +.translate-x-0\.5 { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.translate-x-0\.5 { + --tw-translate-x: 0.125rem; +} +.translate-x-1 { + --tw-translate-x: 0.25rem; +} +.translate-x-1, +.translate-x-2 { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.translate-x-2 { + --tw-translate-x: 0.5rem; +} +.translate-x-90 { + --tw-translate-x: 22.5rem; +} +.translate-x-90, +.translate-y-0 { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.translate-y-0 { + --tw-translate-y: 0px; +} +.translate-y-0\.5 { + --tw-translate-y: 0.125rem; +} +.translate-y-0\.5, +.translate-y-1 { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.translate-y-1 { + --tw-translate-y: 0.25rem; +} +.translate-y-16 { + --tw-translate-y: 4rem; +} +.translate-y-16, +.translate-y-2 { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.translate-y-2 { + --tw-translate-y: 0.5rem; +} +.-rotate-12 { + --tw-rotate: -12deg; +} +.-rotate-12, +.rotate-12 { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.rotate-12 { + --tw-rotate: 12deg; +} +.rotate-180 { + --tw-rotate: 180deg; +} +.rotate-180, +.scale-105 { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.scale-105 { + --tw-scale-x: 1.05; + --tw-scale-y: 1.05; +} +.scale-110 { + --tw-scale-x: 1.1; + --tw-scale-y: 1.1; +} +.scale-110, +.scale-50 { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.scale-50 { + --tw-scale-x: 0.5; + --tw-scale-y: 0.5; +} +.scale-90 { + --tw-scale-x: 0.9; + --tw-scale-y: 0.9; +} +.scale-90, +.transform { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.cursor-pointer { + cursor: pointer; +} +.select-none { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.resize { + resize: both; +} +.list-none { + list-style-type: none; +} +.appearance-none { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +.grid-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); +} +.grid-cols-12 { + grid-template-columns: repeat(12, minmax(0, 1fr)); +} +.grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} +.flex-col { + flex-direction: column; +} +.flex-wrap { + flex-wrap: wrap; +} +.items-start { + align-items: flex-start; +} +.items-end { + align-items: flex-end; +} +.items-center { + align-items: center; +} +.justify-start { + justify-content: flex-start; +} +.justify-end { + justify-content: flex-end; +} +.justify-center { + justify-content: center; +} +.justify-between { + justify-content: space-between; +} +.justify-items-center { + justify-items: center; +} +.gap-2 { + gap: 0.5rem; +} +.gap-3 { + gap: 0.75rem; +} +.gap-8 { + gap: 2rem; +} +.gap-x-4 { + -moz-column-gap: 1rem; + column-gap: 1rem; +} +.gap-y-2 { + row-gap: 0.5rem; +} +.gap-y-4 { + row-gap: 1rem; +} +.overflow-auto { + overflow: auto; +} +.overflow-hidden { + overflow: hidden; +} +.overflow-x-auto { + overflow-x: auto; +} +.overflow-y-auto { + overflow-y: auto; +} +.overflow-x-hidden { + overflow-x: hidden; +} +.whitespace-nowrap { + white-space: nowrap; +} +.break-words { + overflow-wrap: break-word; +} +.rounded, +.rounded-1 { + border-radius: 0.25rem; +} +.rounded-1\.4 { + border-radius: 0.35rem; +} +.rounded-10 { + border-radius: 2.5rem; +} +.rounded-2xl { + border-radius: 1rem; +} +.rounded-circle { + border-radius: 50%; +} +.rounded-full { + border-radius: 9999px; +} +.rounded-lg { + border-radius: 0.5rem; +} +.rounded-none { + border-radius: 0; +} +.rounded-xl { + border-radius: 0.75rem; +} +.rounded-b { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} +.rounded-b-lg { + border-bottom-left-radius: 0.5rem; +} +.rounded-b-lg, +.rounded-r-lg { + border-bottom-right-radius: 0.5rem; +} +.rounded-r-lg { + border-top-right-radius: 0.5rem; +} +.rounded-t { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.rounded-t-2xl { + border-top-left-radius: 1rem; + border-top-right-radius: 1rem; +} +.rounded-t-lg { + border-top-left-radius: 0.5rem; + border-top-right-radius: 0.5rem; +} +.border { + border-width: 1px; +} +.border-0 { + border-width: 0; +} +.border-2 { + border-width: 2px; +} +.border-b { + border-bottom-width: 1px; +} +.border-b-0 { + border-bottom-width: 0; +} +.border-l { + border-left-width: 1px; +} +.border-r { + border-right-width: 1px; +} +.border-t { + border-top-width: 1px; +} +.border-solid { + border-style: solid; +} +.border-dashed { + border-style: dashed; +} +.border-gray-200 { + --tw-border-opacity: 1; + border-color: rgb(233 236 239 / var(--tw-border-opacity)); +} +.border-gray-300 { + --tw-border-opacity: 1; + border-color: rgb(210 214 218 / var(--tw-border-opacity)); +} +.border-gray-400 { + --tw-border-opacity: 1; + border-color: rgb(206 212 218 / var(--tw-border-opacity)); +} +.border-primary { + --tw-border-opacity: 1; + border-color: rgb(11 85 119 / var(--tw-border-opacity)); +} +.bg-blue-500 { + --tw-bg-opacity: 1; + background-color: rgb(94 114 228 / var(--tw-bg-opacity)); +} +.bg-gray-100 { + --tw-bg-opacity: 1; + background-color: rgb(235 239 244 / var(--tw-bg-opacity)); +} +.bg-gray-200 { + --tw-bg-opacity: 1; + background-color: rgb(233 236 239 / var(--tw-bg-opacity)); +} +.bg-gray-300 { + --tw-bg-opacity: 1; + background-color: rgb(210 214 218 / var(--tw-bg-opacity)); +} +.bg-gray-50 { + --tw-bg-opacity: 1; + background-color: rgb(248 249 250 / var(--tw-bg-opacity)); +} +.bg-gray-600\/50 { + background-color: #6c757d80; +} +.bg-green-500 { + --tw-bg-opacity: 1; + background-color: rgb(34 197 94 / var(--tw-bg-opacity)); +} +.bg-orange-500 { + --tw-bg-opacity: 1; + background-color: rgb(251 99 64 / var(--tw-bg-opacity)); +} +.bg-primary { + --tw-bg-opacity: 1; + background-color: rgb(11 85 119 / var(--tw-bg-opacity)); +} +.bg-primary\/20 { + background-color: #0b557733; +} +.bg-red-500 { + --tw-bg-opacity: 1; + background-color: rgb(245 57 57 / var(--tw-bg-opacity)); +} +.bg-secondary { + --tw-bg-opacity: 1; + background-color: rgb(46 172 104 / var(--tw-bg-opacity)); +} +.bg-sky-500 { + --tw-bg-opacity: 1; + background-color: rgb(14 165 233 / var(--tw-bg-opacity)); +} +.bg-slate-800\/10 { + background-color: #3a416f1a; +} +.bg-transparent { + background-color: initial; +} +.bg-white { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} +.bg-yellow-500 { + --tw-bg-opacity: 1; + background-color: rgb(251 177 64 / var(--tw-bg-opacity)); +} +.bg-gray-400 { + --tw-bg-opacity: 1; + background-color: rgb(206 212 218 / var(--tw-bg-opacity)); +} +.bg-gradient-to-r { + background-image: linear-gradient(to right, var(--tw-gradient-stops)); +} +.bg-gradient-to-tl { + background-image: linear-gradient(to top left, var(--tw-gradient-stops)); +} +.bg-none { + background-image: none; +} +.from-transparent { + --tw-gradient-from: #0000 var(--tw-gradient-from-position); + --tw-gradient-to: #0000 var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +.via-black\/40 { + --tw-gradient-to: #0000 var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), + #0006 var(--tw-gradient-via-position), var(--tw-gradient-to); +} +.to-transparent { + --tw-gradient-to: #0000 var(--tw-gradient-to-position); +} +.bg-150 { + background-size: 150%; +} +.bg-contain { + background-size: contain; +} +.bg-clip-border { + background-clip: initial; +} +.bg-clip-padding { + background-clip: padding-box; +} +.bg-center { + background-position: 50%; +} +.bg-left { + background-position: 0; +} +.bg-x-25 { + background-position: 25% 0; +} +.bg-no-repeat { + background-repeat: no-repeat; +} +.fill-amber-500 { + fill: #f59e0b; +} +.fill-blue-500 { + fill: #5e72e4; +} +.fill-gray-400 { + fill: #ced4da; +} +.fill-gray-500 { + fill: #adb5bd; +} +.fill-gray-600 { + fill: #6c757d; +} +.fill-green-500 { + fill: #22c55e; +} +.fill-primary { + fill: #0b5577; +} +.fill-red-500 { + fill: #f53939; +} +.fill-sky-500 { + fill: #0ea5e9; +} +.fill-slate-800 { + fill: #3a416f; +} +.fill-white { + fill: #fff; +} +.fill-yellow-500 { + fill: #fbb140; +} +.stroke-blue-400 { + stroke: #60a5fa; +} +.stroke-blue-500 { + stroke: #5e72e4; +} +.stroke-emerald-600 { + stroke: #059669; +} +.stroke-gray-100 { + stroke: #ebeff4; +} +.stroke-gray-600 { + stroke: #6c757d; +} +.stroke-green-700 { + stroke: #15803d; +} +.stroke-orange-500 { + stroke: #fb6340; +} +.stroke-pink-600 { + stroke: #db2777; +} +.stroke-red-500 { + stroke: #f53939; +} +.stroke-sky-500 { + stroke: #0ea5e9; +} +.stroke-teal-600 { + stroke: #0d9488; +} +.stroke-yellow-500 { + stroke: #fbb140; +} +.stroke-gray-800 { + stroke: #252f40; +} +.stroke-gray-700 { + stroke: #495057; +} +.stroke-0 { + stroke-width: 0; +} +.object-cover { + -o-object-fit: cover; + object-fit: cover; +} +.p-0 { + padding: 0; +} +.p-1 { + padding: 0.25rem; +} +.p-2 { + padding: 0.5rem; +} +.p-3 { + padding: 0.75rem; +} +.p-4 { + padding: 1rem; +} +.p-0\.4 { + padding: 0.1rem; +} +.px-0 { + padding-left: 0; + padding-right: 0; +} +.px-0\.5 { + padding-left: 0.125rem; + padding-right: 0.125rem; +} +.px-1 { + padding-left: 0.25rem; + padding-right: 0.25rem; +} +.px-1\.5 { + padding-left: 0.375rem; + padding-right: 0.375rem; +} +.px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; +} +.px-3 { + padding-left: 0.75rem; + padding-right: 0.75rem; +} +.px-4 { + padding-left: 1rem; + padding-right: 1rem; +} +.px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; +} +.px-8 { + padding-left: 2rem; + padding-right: 2rem; +} +.py-1 { + padding-top: 0.25rem; + padding-bottom: 0.25rem; +} +.py-1\.5 { + padding-top: 0.375rem; + padding-bottom: 0.375rem; +} +.py-16 { + padding-top: 4rem; + padding-bottom: 4rem; +} +.py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +.py-2\.5 { + padding-top: 0.625rem; + padding-bottom: 0.625rem; +} +.py-3 { + padding-top: 0.75rem; + padding-bottom: 0.75rem; +} +.py-4 { + padding-top: 1rem; + padding-bottom: 1rem; +} +.py-6 { + padding-top: 1.5rem; + padding-bottom: 1.5rem; +} +.pb-0 { + padding-bottom: 0; +} +.pb-2 { + padding-bottom: 0.5rem; +} +.pb-4 { + padding-bottom: 1rem; +} +.pb-8 { + padding-bottom: 2rem; +} +.pl-0 { + padding-left: 0; +} +.pl-2 { + padding-left: 0.5rem; +} +.pl-3 { + padding-left: 0.75rem; +} +.pl-4 { + padding-left: 1rem; +} +.pl-6 { + padding-left: 1.5rem; +} +.pr-0 { + padding-right: 0; +} +.pr-8 { + padding-right: 2rem; +} +.pt-1 { + padding-top: 0.25rem; +} +.pt-10 { + padding-top: 2.5rem; +} +.pt-20 { + padding-top: 5rem; +} +.pt-3 { + padding-top: 0.75rem; +} +.pt-4 { + padding-top: 1rem; +} +.text-left { + text-align: left; +} +.text-center { + text-align: center; +} +.align-top { + vertical-align: top; +} +.align-middle { + vertical-align: middle; +} +.align-bottom { + vertical-align: bottom; +} +.font-sans { + font-family: Open Sans; +} +.text-2xl { + font-size: 1.5rem; + line-height: 2rem; +} +.text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; +} +.text-base { + font-size: 1rem; + line-height: 1.5rem; +} +.text-lg { + font-size: 1.125rem; + line-height: 1.75rem; +} +.text-sm { + font-size: 0.875rem; + line-height: 1.5rem; +} +.text-xl { + font-size: 1.25rem; + line-height: 1.75rem; +} +.text-xs { + font-size: 0.75rem; + line-height: 1rem; +} +.font-bold { + font-weight: 700; +} +.font-medium { + font-weight: 500; +} +.font-normal { + font-weight: 400; +} +.font-semibold { + font-weight: 600; +} +.uppercase { + text-transform: uppercase; +} +.capitalize { + text-transform: capitalize; +} +.italic { + font-style: italic; +} +.ordinal { + --tw-ordinal: ordinal; + font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) + var(--tw-numeric-figure) var(--tw-numeric-spacing) + var(--tw-numeric-fraction); +} +.leading-5 { + line-height: 1.25rem; +} +.leading-5\.6 { + line-height: 1.4rem; +} +.leading-6 { + line-height: 1.5rem; +} +.leading-8 { + line-height: 2rem; +} +.leading-default { + line-height: 1.6; +} +.leading-none { + line-height: 1; +} +.leading-normal { + line-height: 1.5; +} +.leading-tight { + line-height: 1.25; +} +.tracking-tight-rem { + letter-spacing: -0.025rem; +} +.tracking-wide { + letter-spacing: 0.025em; +} +.tracking-widest { + letter-spacing: 0.1em; +} +.text-blue-500 { + --tw-text-opacity: 1; + color: rgb(94 114 228 / var(--tw-text-opacity)); +} +.text-emerald-500 { + --tw-text-opacity: 1; + color: rgb(45 206 137 / var(--tw-text-opacity)); +} +.text-gray-100 { + --tw-text-opacity: 1; + color: rgb(235 239 244 / var(--tw-text-opacity)); +} +.text-gray-300 { + --tw-text-opacity: 1; + color: rgb(210 214 218 / var(--tw-text-opacity)); +} +.text-gray-600 { + --tw-text-opacity: 1; + color: rgb(108 117 125 / var(--tw-text-opacity)); +} +.text-gray-600\/90 { + color: #6c757de6; +} +.text-gray-700 { + --tw-text-opacity: 1; + color: rgb(73 80 87 / var(--tw-text-opacity)); +} +.text-gray-700\/80 { + color: #495057cc; +} +.text-green-500 { + --tw-text-opacity: 1; + color: rgb(34 197 94 / var(--tw-text-opacity)); +} +.text-primary { + --tw-text-opacity: 1; + color: rgb(11 85 119 / var(--tw-text-opacity)); +} +.text-red-500 { + --tw-text-opacity: 1; + color: rgb(245 57 57 / var(--tw-text-opacity)); +} +.text-sky-600 { + --tw-text-opacity: 1; + color: rgb(62 161 236 / var(--tw-text-opacity)); +} +.text-slate-500 { + --tw-text-opacity: 1; + color: rgb(103 116 142 / var(--tw-text-opacity)); +} +.text-slate-700 { + --tw-text-opacity: 1; + color: rgb(52 71 103 / var(--tw-text-opacity)); +} +.text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} +.text-yellow-500 { + --tw-text-opacity: 1; + color: rgb(251 177 64 / var(--tw-text-opacity)); +} +.underline { + text-decoration-line: underline; +} +.antialiased { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.opacity-0 { + opacity: 0; +} +.opacity-100 { + opacity: 1; +} +.opacity-50 { + opacity: 0.5; +} +.opacity-60 { + opacity: 0.6; +} +.shadow { + --tw-shadow: 0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a; + --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), + 0 1px 2px -1px var(--tw-shadow-color); +} +.shadow, +.shadow-3xl { + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.shadow-3xl { + --tw-shadow: 0 8px 26px -4px #14141426, 0 8px 9px -5px #1414140f; + --tw-shadow-colored: 0 8px 26px -4px var(--tw-shadow-color), + 0 8px 9px -5px var(--tw-shadow-color); +} +.shadow-md { + --tw-shadow: 0 4px 6px #32325d1a, 0 1px 3px #00000014; + --tw-shadow-colored: 0 4px 6px var(--tw-shadow-color), + 0 1px 3px var(--tw-shadow-color); +} +.shadow-md, +.shadow-none { + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.shadow-none { + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; +} +.shadow-sm { + --tw-shadow: 0 0.25rem 0.375rem -0.0625rem #1414141f, + 0 0.125rem 0.25rem -0.0625rem #14141412; + --tw-shadow-colored: 0 0.25rem 0.375rem -0.0625rem var(--tw-shadow-color), + 0 0.125rem 0.25rem -0.0625rem var(--tw-shadow-color); +} +.shadow-sm, +.shadow-xl { + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.shadow-xl { + --tw-shadow: 0 0 2rem 0 #8898aa26; + --tw-shadow-colored: 0 0 2rem 0 var(--tw-shadow-color); +} +.shadow-xs { + --tw-shadow: 0 7px 14px #32325d1a, 0 3px 6px #00000014; + --tw-shadow-colored: 0 7px 14px var(--tw-shadow-color), + 0 3px 6px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.outline-none { + outline: 2px solid #0000; + outline-offset: 2px; +} +.blur { + --tw-blur: blur(8px); +} +.blur, +.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, + text-decoration-color, + fill, + stroke, + opacity, + box-shadow, + transform, + filter, + -webkit-backdrop-filter; + transition-property: color, background-color, border-color, + text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, + backdrop-filter; + transition-property: + color, + background-color, + border-color, + text-decoration-color, + fill, + stroke, + opacity, + box-shadow, + transform, + filter, + backdrop-filter, + -webkit-backdrop-filter; + transition-timing-function: ease; + transition-duration: 0.15s; +} +.transition-all { + transition-property: all; + transition-timing-function: ease; + transition-duration: 0.15s; +} +.transition-transform { + transition-property: transform; + transition-timing-function: ease; + transition-duration: 0.15s; +} +.delay-200 { + transition-delay: 0.2s; +} +.duration-200 { + transition-duration: 0.2s; +} +.duration-250 { + transition-duration: 0.25s; +} +.duration-300 { + transition-duration: 0.3s; +} +.duration-700 { + transition-duration: 0.7s; +} +.ease-in { + transition-timing-function: ease-in; +} +.ease-in-out { + transition-timing-function: ease-in-out; +} +.flex-wrap-inherit { + flex-wrap: inherit; +} +@font-face { + font-family: Open Sans; + src: url(../webfonts/OpenSans.ttf); +} +* { + font-family: + Open Sans, + sans-serif !important; +} +.ace_content, +.ace_editor, +.ace_editor div { + font-family: + Monaco, + Menlo, + Ubuntu Mono, + Consolas, + source-code-pro, + monospace !important; + font-size: 16px !important; + font-weight: 400 !important; +} +.close-btn { + display: inline-block; + cursor: pointer; + border-radius: 0.5rem; + border-width: 1px; + --tw-border-opacity: 1; + border-color: rgb(245 57 57 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + padding: 0.75rem 1.5rem; + text-align: center; + vertical-align: middle; + font-weight: 700; + text-transform: uppercase; + line-height: 1.5; + letter-spacing: -0.025rem; + --tw-text-opacity: 1; + color: rgb(245 57 57 / var(--tw-text-opacity)); + --tw-shadow: 0 7px 14px #32325d1a, 0 3px 6px #00000014; + --tw-shadow-colored: 0 7px 14px var(--tw-shadow-color), + 0 3px 6px var(--tw-shadow-color); + transition-property: all; + transition-timing-function: ease; + transition-duration: 0.15s; + transition-timing-function: ease-in; +} +.close-btn, +.close-btn:hover { + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.close-btn:hover { + --tw-translate-y: -1px; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + --tw-shadow: 0 4px 6px #32325d1a, 0 1px 3px #00000014; + --tw-shadow-colored: 0 4px 6px var(--tw-shadow-color), + 0 1px 3px var(--tw-shadow-color); +} +.close-btn:focus, +.close-btn:hover { + background-color: #fffc; +} +.close-btn:active { + opacity: 0.85; +} +:is(.dark .close-btn) { + --tw-bg-opacity: 1; + background-color: rgb(233 236 239 / var(--tw-bg-opacity)); + --tw-brightness: brightness(0.9); +} +:is(.dark .close-btn), +:is(.dark .close-btn:hover) { + 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); +} +:is(.dark .close-btn:hover) { + --tw-brightness: brightness(0.75); +} +.valid-btn { + display: inline-block; + cursor: pointer; + border-radius: 0.5rem; + --tw-bg-opacity: 1; + background-color: rgb(34 197 94 / var(--tw-bg-opacity)); + padding: 0.75rem 1.5rem; + text-align: center; + vertical-align: middle; + font-weight: 700; + text-transform: uppercase; + line-height: 1.5; + letter-spacing: 0.025em; + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); + --tw-shadow: 0 7px 14px #32325d1a, 0 3px 6px #00000014; + --tw-shadow-colored: 0 7px 14px var(--tw-shadow-color), + 0 3px 6px var(--tw-shadow-color); + transition-property: all; + transition-timing-function: ease; + transition-duration: 0.15s; + transition-timing-function: ease-in; +} +.valid-btn, +.valid-btn:hover { + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.valid-btn:hover { + --tw-translate-y: -1px; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + --tw-shadow: 0 4px 6px #32325d1a, 0 1px 3px #00000014; + --tw-shadow-colored: 0 4px 6px var(--tw-shadow-color), + 0 1px 3px var(--tw-shadow-color); +} +.valid-btn:focus, +.valid-btn:hover { + background-color: #22c55ecc; +} +.valid-btn:active { + opacity: 0.85; +} +:is(.dark .valid-btn) { + --tw-brightness: brightness(0.9); + 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); +} +.delete-btn { + display: inline-block; + cursor: pointer; + border-radius: 0.5rem; + --tw-bg-opacity: 1; + background-color: rgb(245 57 57 / var(--tw-bg-opacity)); + padding: 0.75rem 1.5rem; + text-align: center; + vertical-align: middle; + font-weight: 700; + text-transform: uppercase; + line-height: 1.5; + letter-spacing: 0.025em; + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); + --tw-shadow: 0 7px 14px #32325d1a, 0 3px 6px #00000014; + --tw-shadow-colored: 0 7px 14px var(--tw-shadow-color), + 0 3px 6px var(--tw-shadow-color); + transition-property: all; + transition-timing-function: ease; + transition-duration: 0.15s; + transition-timing-function: ease-in; +} +.delete-btn, +.delete-btn:hover { + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.delete-btn:hover { + --tw-translate-y: -1px; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + --tw-shadow: 0 4px 6px #32325d1a, 0 1px 3px #00000014; + --tw-shadow-colored: 0 4px 6px var(--tw-shadow-color), + 0 1px 3px var(--tw-shadow-color); +} +.delete-btn:focus, +.delete-btn:hover { + background-color: #f53939cc; +} +.delete-btn:active { + opacity: 0.85; +} +:is(.dark .delete-btn) { + --tw-brightness: brightness(0.9); + 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); +} +.edit-btn { + display: inline-block; + cursor: pointer; + border-radius: 0.5rem; + --tw-bg-opacity: 1; + background-color: rgb(251 177 64 / var(--tw-bg-opacity)); + padding: 0.75rem 1.5rem; + text-align: center; + vertical-align: middle; + font-weight: 700; + text-transform: uppercase; + line-height: 1.5; + letter-spacing: 0.025em; + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); + --tw-shadow: 0 7px 14px #32325d1a, 0 3px 6px #00000014; + --tw-shadow-colored: 0 7px 14px var(--tw-shadow-color), + 0 3px 6px var(--tw-shadow-color); + transition-property: all; + transition-timing-function: ease; + transition-duration: 0.15s; + transition-timing-function: ease-in; +} +.edit-btn, +.edit-btn:hover { + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.edit-btn:hover { + --tw-translate-y: -1px; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + --tw-shadow: 0 4px 6px #32325d1a, 0 1px 3px #00000014; + --tw-shadow-colored: 0 4px 6px var(--tw-shadow-color), + 0 1px 3px var(--tw-shadow-color); +} +.edit-btn:focus, +.edit-btn:hover { + background-color: #fbb140cc; +} +.edit-btn:active { + opacity: 0.85; +} +:is(.dark .edit-btn) { + --tw-brightness: brightness(0.9); + 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); +} +.info-btn { + display: inline-block; + cursor: pointer; + border-radius: 0.5rem; + --tw-bg-opacity: 1; + background-color: rgb(14 165 233 / var(--tw-bg-opacity)); + padding: 0.75rem 1.5rem; + text-align: center; + vertical-align: middle; + font-weight: 700; + text-transform: uppercase; + line-height: 1.5; + letter-spacing: 0.025em; + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); + --tw-shadow: 0 7px 14px #32325d1a, 0 3px 6px #00000014; + --tw-shadow-colored: 0 7px 14px var(--tw-shadow-color), + 0 3px 6px var(--tw-shadow-color); + transition-property: all; + transition-timing-function: ease; + transition-duration: 0.15s; + transition-timing-function: ease-in; +} +.info-btn, +.info-btn:hover { + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.info-btn:hover { + --tw-translate-y: -1px; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + --tw-shadow: 0 4px 6px #32325d1a, 0 1px 3px #00000014; + --tw-shadow-colored: 0 4px 6px var(--tw-shadow-color), + 0 1px 3px var(--tw-shadow-color); +} +.info-btn:focus, +.info-btn:hover { + background-color: #0ea5e9cc; +} +.info-btn:active { + opacity: 0.85; +} +:is(.dark .info-btn) { + --tw-brightness: brightness(0.9); + 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); +} +.checkbox { + position: relative; + z-index: 10; + float: left; + margin-top: 0.25rem; + height: 1.25rem; + width: 1.25rem; + cursor: pointer; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: 0.35rem; + border-width: 1px; + border-color: rgb(210 214 218 / var(--tw-border-opacity)); + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + background-size: contain; + background-position: 50%; + background-repeat: no-repeat; + vertical-align: top; + font-size: 1rem; + line-height: 1.5rem; + transition-property: all; + transition-timing-function: ease; + transition-duration: 0.25s; +} +.checkbox, +.checkbox:disabled { + --tw-border-opacity: 1; + --tw-bg-opacity: 1; +} +.checkbox:disabled { + cursor: default; + border-color: rgb(206 212 218 / var(--tw-border-opacity)); + background-color: rgb(206 212 218 / var(--tw-bg-opacity)); + --tw-text-opacity: 1; + color: rgb(73 80 87 / var(--tw-text-opacity)); +} +.checkbox[data-checked="true"] { + z-index: 0; + --tw-border-opacity: 1; + border-color: rgb(11 85 119 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(11 85 119 / var(--tw-bg-opacity)); +} +.checkbox:disabled[data-checked="true"] { + --tw-border-opacity: 1; + border-color: rgb(206 212 218 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(206 212 218 / var(--tw-bg-opacity)); + --tw-text-opacity: 1; + color: rgb(73 80 87 / var(--tw-text-opacity)); +} +:is(.dark .checkbox) { + --tw-border-opacity: 1; + border-color: rgb(98 117 148 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(52 71 103 / var(--tw-bg-opacity)); +} +:is(.dark .checkbox:disabled) { + --tw-border-opacity: 1; + border-color: rgb(37 47 64 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(37 47 64 / var(--tw-bg-opacity)); + --tw-text-opacity: 1; + color: rgb(210 214 218 / var(--tw-text-opacity)); +} +:is(.dark .checkbox[data-checked="true"]) { + --tw-border-opacity: 1; + border-color: rgb(11 85 119 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(11 85 119 / var(--tw-bg-opacity)); +} +:is(.dark .checkbox:disabled[data-checked="true"]) { + --tw-border-opacity: 1; + border-color: rgb(37 47 64 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(37 47 64 / var(--tw-bg-opacity)); + --tw-text-opacity: 1; + color: rgb(210 214 218 / var(--tw-text-opacity)); +} +.custom-select-btn { + display: flex; + width: 100%; + align-items: center; + justify-content: space-between; + border-radius: 0.5rem; + border-width: 1px; + border-style: solid; + --tw-border-opacity: 1; + border-color: rgb(210 214 218 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + background-clip: padding-box; + padding: 0.25rem 0.375rem; + text-align: left; + vertical-align: middle; + font-size: 0.875rem; + font-weight: 400; + line-height: 1.4rem; + --tw-text-opacity: 1; + color: rgb(73 80 87 / var(--tw-text-opacity)); + transition-property: all; + transition-timing-function: ease; + transition-duration: 0.3s; + transition-timing-function: ease-in-out; +} +.custom-select-btn::-moz-placeholder { + --tw-text-opacity: 1; + color: rgb(173 181 189 / var(--tw-text-opacity)); +} +.custom-select-btn::placeholder { + --tw-text-opacity: 1; + color: rgb(173 181 189 / var(--tw-text-opacity)); +} +.custom-select-btn:focus { + --tw-border-opacity: 1; + border-color: rgb(11 85 119 / var(--tw-border-opacity)); +} +.custom-select-btn:disabled { + --tw-border-opacity: 1; + border-color: rgb(206 212 218 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(206 212 218 / var(--tw-bg-opacity)); + --tw-text-opacity: 1; + color: rgb(73 80 87 / var(--tw-text-opacity)); + opacity: 0.75; +} +:is(.dark .custom-select-btn) { + border-color: rgb(98 117 148 / var(--tw-border-opacity)); + background-color: rgb(52 71 103 / var(--tw-bg-opacity)); + opacity: 0.9; +} +:is(.dark .custom-select-btn), +:is(.dark .custom-select-btn:disabled) { + --tw-border-opacity: 1; + --tw-bg-opacity: 1; + --tw-text-opacity: 1; + color: rgb(210 214 218 / var(--tw-text-opacity)); +} +:is(.dark .custom-select-btn:disabled) { + border-color: rgb(37 47 64 / var(--tw-border-opacity)); + background-color: rgb(37 47 64 / var(--tw-bg-opacity)); +} +@media (min-width: 768px) { + .custom-select-btn { + padding: 0.5rem 0.75rem; + } +} +.custom-dropdown-btn { + position: relative; + margin-top: 0; + margin-bottom: 0; + min-height: 38px; + cursor: pointer; + border-radius: 0; + border-bottom-width: 1px; + border-left-width: 1px; + border-right-width: 1px; + --tw-border-opacity: 1; + border-color: rgb(210 214 218 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + padding: 0.5rem 1.5rem; + text-align: center; + vertical-align: middle; + font-size: 0.875rem; + line-height: 1.5rem; + line-height: 1.5; + letter-spacing: -0.025rem; + --tw-text-opacity: 1; + color: rgb(73 80 87 / var(--tw-text-opacity)); + transition-property: all; + transition-timing-function: ease; + transition-duration: 0.15s; + transition-timing-function: ease-in; +} +.custom-dropdown-btn:hover { + --tw-brightness: brightness(0.9); + 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); +} +:is(.dark .custom-dropdown-btn) { + border-color: rgb(98 117 148 / var(--tw-border-opacity)); + background-color: rgb(52 71 103 / var(--tw-bg-opacity)); +} +.active.custom-dropdown-btn, +:is(.dark .custom-dropdown-btn) { + --tw-border-opacity: 1; + --tw-bg-opacity: 1; + --tw-text-opacity: 1; + color: rgb(210 214 218 / var(--tw-text-opacity)); +} +.active.custom-dropdown-btn { + position: relative; + margin-top: 0; + margin-bottom: 0; + min-height: 38px; + cursor: pointer; + border-radius: 0; + border-bottom-width: 1px; + border-left-width: 1px; + border-right-width: 1px; + border-color: rgb(210 214 218 / var(--tw-border-opacity)); + background-color: rgb(11 85 119 / var(--tw-bg-opacity)); + padding: 0.5rem 1.5rem; + text-align: center; + vertical-align: middle; + font-size: 0.875rem; + line-height: 1.5rem; + line-height: 1.5; + letter-spacing: -0.025rem; + transition-property: all; + transition-timing-function: ease; + transition-duration: 0.15s; + transition-timing-function: ease-in; +} +.active.custom-dropdown-btn:hover { + --tw-brightness: brightness(0.9); + 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); +} +:is(.dark .active.custom-dropdown-btn) { + border-color: rgb(98 117 148 / var(--tw-border-opacity)); + background-color: rgb(11 85 119 / var(--tw-bg-opacity)); + color: rgb(210 214 218 / var(--tw-text-opacity)); +} +.regular-input, +:is(.dark .active.custom-dropdown-btn) { + --tw-border-opacity: 1; + --tw-bg-opacity: 1; + --tw-text-opacity: 1; +} +.regular-input { + display: block; + width: 100%; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: 0.5rem; + border-width: 1px; + border-style: solid; + border-color: rgb(210 214 218 / var(--tw-border-opacity)); + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + background-clip: padding-box; + padding: 0.25rem 0.375rem; + font-size: 0.875rem; + font-weight: 400; + line-height: 1.4rem; + color: rgb(73 80 87 / var(--tw-text-opacity)); + outline: 2px solid #0000; + outline-offset: 2px; + transition-property: all; + transition-timing-function: ease; + transition-duration: 0.15s; + transition-timing-function: ease-in; +} +.regular-input::-moz-placeholder { + --tw-text-opacity: 1; + color: rgb(173 181 189 / var(--tw-text-opacity)); +} +.regular-input::placeholder { + --tw-text-opacity: 1; + color: rgb(173 181 189 / var(--tw-text-opacity)); +} +.regular-input:focus { + border-color: #d2d6da00; + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 + var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 + calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), + var(--tw-shadow, 0 0 #0000); +} +.regular-input:valid:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity)); +} +.regular-input:invalid:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(245 57 57 / var(--tw-ring-opacity)); +} +.regular-input:disabled { + --tw-bg-opacity: 1; + background-color: rgb(206 212 218 / var(--tw-bg-opacity)); + --tw-text-opacity: 1; + color: rgb(73 80 87 / var(--tw-text-opacity)); + opacity: 0.75; +} +:is(.dark .regular-input) { + border-color: rgb(98 117 148 / var(--tw-border-opacity)); + background-color: rgb(52 71 103 / var(--tw-bg-opacity)); + opacity: 0.9; +} +:is(.dark .regular-input), +:is(.dark .regular-input:disabled) { + --tw-border-opacity: 1; + --tw-bg-opacity: 1; + --tw-text-opacity: 1; + color: rgb(210 214 218 / var(--tw-text-opacity)); +} +:is(.dark .regular-input:disabled) { + border-color: rgb(37 47 64 / var(--tw-border-opacity)); + background-color: rgb(37 47 64 / var(--tw-bg-opacity)); +} +@media (min-width: 768px) { + .regular-input { + padding: 0.5rem 0.75rem; + } +} +.input-title { + margin: 0; + font-size: 0.875rem; + line-height: 1.5rem; + font-weight: 700; + transition-property: + color, + background-color, + border-color, + text-decoration-color, + fill, + stroke, + opacity, + box-shadow, + transform, + filter, + -webkit-backdrop-filter; + transition-property: color, background-color, border-color, + text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, + backdrop-filter; + transition-property: + color, + background-color, + border-color, + text-decoration-color, + fill, + stroke, + opacity, + box-shadow, + transform, + filter, + backdrop-filter, + -webkit-backdrop-filter; + transition-timing-function: ease; + transition-duration: 0.3s; + transition-timing-function: ease-in-out; +} +:is(.dark .input-title) { + --tw-text-opacity: 1; + color: rgb(210 214 218 / var(--tw-text-opacity)); + opacity: 0.9; +} +.popover-settings-container { + position: absolute; + left: 0; + bottom: 0; + z-index: 50; + --tw-translate-y: -1.75rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + border-radius: 0.375rem; + --tw-bg-opacity: 1; + background-color: rgb(94 114 228 / var(--tw-bg-opacity)); + padding: 0.75rem; + transition-property: all; + transition-property: + color, + background-color, + border-color, + text-decoration-color, + fill, + stroke, + opacity, + box-shadow, + transform, + filter, + -webkit-backdrop-filter; + transition-property: color, background-color, border-color, + text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, + backdrop-filter; + transition-property: + color, + background-color, + border-color, + text-decoration-color, + fill, + stroke, + opacity, + box-shadow, + transform, + filter, + backdrop-filter, + -webkit-backdrop-filter; + transition-timing-function: ease; + transition-duration: 0.5s; +} +:is(.dark .popover-settings-container) { + --tw-brightness: brightness(0.9); + 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); +} +.popover-settings-text { + margin: 0; + font-size: 0.875rem; + line-height: 1.5rem; + font-weight: 700; + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); + transition-property: + color, + background-color, + border-color, + text-decoration-color, + fill, + stroke, + opacity, + box-shadow, + transform, + filter, + -webkit-backdrop-filter; + transition-property: color, background-color, border-color, + text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, + backdrop-filter; + transition-property: + color, + background-color, + border-color, + text-decoration-color, + fill, + stroke, + opacity, + box-shadow, + transform, + filter, + backdrop-filter, + -webkit-backdrop-filter; + transition-timing-function: ease; + transition-duration: 0.3s; + transition-timing-function: ease-in-out; +} +:is(.dark .popover-settings-text) { + --tw-text-opacity: 1; + color: rgb(235 239 244 / var(--tw-text-opacity)); + opacity: 0.9; +} +.popover-settings-svg { + margin-left: 0.5rem; + height: 1.25rem; + width: 1.25rem; + cursor: pointer; + fill: #5e72e4; +} +.popover-settings-svg:hover { + --tw-brightness: brightness(0.75); + 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); +} +.active.settings-tabs-tab-btn { + position: relative; + z-index: 10; + margin-top: 0.25rem; + margin-bottom: 0.25rem; + cursor: pointer; + border-radius: 0; + border-width: 1px; + --tw-border-opacity: 1; + border-color: rgb(11 85 119 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + padding: 0.75rem; + text-align: center; + vertical-align: middle; + font-size: 0.875rem; + line-height: 1.5rem; + font-weight: 700; + text-transform: uppercase; + line-height: 1.5; + letter-spacing: -0.025rem; + --tw-shadow: 0 7px 14px #32325d1a, 0 3px 6px #00000014; + --tw-shadow-colored: 0 7px 14px var(--tw-shadow-color), + 0 3px 6px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + --tw-brightness: brightness(0.9); + 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-property: all; + transition-timing-function: ease; + transition-duration: 0.15s; + transition-timing-function: ease-in; +} +.active.settings-tabs-tab-btn:hover { + --tw-bg-opacity: 1; + background-color: rgb(235 239 244 / var(--tw-bg-opacity)); + --tw-shadow: 0 4px 6px #32325d1a, 0 1px 3px #00000014; + --tw-shadow-colored: 0 4px 6px var(--tw-shadow-color), + 0 1px 3px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +:is(.dark .active.settings-tabs-tab-btn) { + --tw-border-opacity: 1; + border-color: rgb(98 117 148 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(52 71 103 / var(--tw-bg-opacity)); +} +:is(.dark .active.settings-tabs-tab-btn:hover) { + --tw-bg-opacity: 1; + background-color: rgb(58 65 111 / var(--tw-bg-opacity)); +} +.settings-tabs-tab-btn { + position: relative; + margin-top: 0.25rem; + margin-bottom: 0.25rem; + cursor: pointer; + border-radius: 0; + border-width: 1px; + --tw-border-opacity: 1; + border-color: rgb(11 85 119 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + padding: 0.75rem; + text-align: center; + vertical-align: middle; + font-size: 0.875rem; + line-height: 1.5rem; + font-weight: 700; + text-transform: uppercase; + line-height: 1.5; + letter-spacing: -0.025rem; + --tw-shadow: 0 7px 14px #32325d1a, 0 3px 6px #00000014; + --tw-shadow-colored: 0 7px 14px var(--tw-shadow-color), + 0 3px 6px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + transition-property: all; + transition-timing-function: ease; + transition-duration: 0.15s; + transition-timing-function: ease-in; +} +.settings-tabs-tab-btn:hover { + --tw-bg-opacity: 1; + background-color: rgb(235 239 244 / var(--tw-bg-opacity)); + --tw-shadow: 0 4px 6px #32325d1a, 0 1px 3px #00000014; + --tw-shadow-colored: 0 4px 6px var(--tw-shadow-color), + 0 1px 3px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +:is(.dark .settings-tabs-tab-btn) { + --tw-border-opacity: 1; + border-color: rgb(98 117 148 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(52 71 103 / var(--tw-bg-opacity)); +} +:is(.dark .settings-tabs-tab-btn:hover) { + --tw-bg-opacity: 1; + background-color: rgb(58 65 111 / var(--tw-bg-opacity)); +} +.settings-tabs-name { + padding-left: 0.75rem; + padding-right: 0.5rem; + --tw-text-opacity: 1; + color: rgb(11 85 119 / var(--tw-text-opacity)); + transition-property: + color, + background-color, + border-color, + text-decoration-color, + fill, + stroke, + opacity, + box-shadow, + transform, + filter, + -webkit-backdrop-filter; + transition-property: color, background-color, border-color, + text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, + backdrop-filter; + transition-property: + color, + background-color, + border-color, + text-decoration-color, + fill, + stroke, + opacity, + box-shadow, + transform, + filter, + backdrop-filter, + -webkit-backdrop-filter; + transition-timing-function: ease; + transition-duration: 0.3s; + transition-timing-function: ease-in-out; +} +:is(.dark .settings-tabs-name) { + --tw-text-opacity: 1; + color: rgb(210 214 218 / var(--tw-text-opacity)); + opacity: 0.9; +} +.settings-tabs-popover-container { + position: absolute; + top: 60px; + left: 0; + z-index: 50; + min-width: 150px; + border-radius: 0.375rem; + --tw-bg-opacity: 1; + background-color: rgb(94 114 228 / var(--tw-bg-opacity)); + padding: 0.75rem; + transition-property: + color, + background-color, + border-color, + text-decoration-color, + fill, + stroke, + opacity, + box-shadow, + transform, + filter, + -webkit-backdrop-filter; + transition-property: color, background-color, border-color, + text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, + backdrop-filter; + transition-property: + color, + background-color, + border-color, + text-decoration-color, + fill, + stroke, + opacity, + box-shadow, + transform, + filter, + backdrop-filter, + -webkit-backdrop-filter; + transition-timing-function: ease; + transition-duration: 0.15s; +} +:is(.dark .settings-tabs-popover-container) { + --tw-brightness: brightness(0.9); + 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); +} +.settings-tabs-popover-text { + margin: 0; + font-size: 0.875rem; + line-height: 1.5rem; + font-weight: 700; + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} +.settings-tabs-mobile-btn { + margin-top: 0.25rem; + margin-bottom: 0.25rem; + display: flex; + width: 100%; + cursor: pointer; + align-items: center; + justify-content: space-between; + border-radius: 0.5rem; + border-width: 1px; + --tw-border-opacity: 1; + border-color: rgb(11 85 119 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + padding: 0.75rem 1.5rem; + text-align: center; + vertical-align: middle; + font-size: 0.875rem; + line-height: 1.5rem; + font-weight: 700; + text-transform: uppercase; + line-height: 1.5; + letter-spacing: -0.025rem; + --tw-shadow: 0 7px 14px #32325d1a, 0 3px 6px #00000014; + --tw-shadow-colored: 0 7px 14px var(--tw-shadow-color), + 0 3px 6px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + transition-property: all; + transition-timing-function: ease; + transition-duration: 0.15s; + transition-timing-function: ease-in; +} +.settings-tabs-mobile-btn:hover { + --tw-translate-y: -1px; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + --tw-bg-opacity: 1; + background-color: rgb(248 249 250 / var(--tw-bg-opacity)); + --tw-shadow: 0 4px 6px #32325d1a, 0 1px 3px #00000014; + --tw-shadow-colored: 0 4px 6px var(--tw-shadow-color), + 0 1px 3px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +:is(.dark .settings-tabs-mobile-btn) { + --tw-border-opacity: 1; + border-color: rgb(98 117 148 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(52 71 103 / var(--tw-bg-opacity)); +} +:is(.dark .settings-tabs-mobile-btn:hover) { + --tw-brightness: brightness(0.95); + 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); +} +.settings-tabs-mobile-btn-text { + --tw-text-opacity: 1; + color: rgb(11 85 119 / var(--tw-text-opacity)); + transition-property: + color, + background-color, + border-color, + text-decoration-color, + fill, + stroke, + opacity, + box-shadow, + transform, + filter, + -webkit-backdrop-filter; + transition-property: color, background-color, border-color, + text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, + backdrop-filter; + transition-property: + color, + background-color, + border-color, + text-decoration-color, + fill, + stroke, + opacity, + box-shadow, + transform, + filter, + backdrop-filter, + -webkit-backdrop-filter; + transition-timing-function: ease; + transition-duration: 0.3s; + transition-timing-function: ease-in-out; +} +:is(.dark .settings-tabs-mobile-btn-text) { + --tw-text-opacity: 1; + color: rgb(210 214 218 / var(--tw-text-opacity)); + opacity: 0.9; +} +.active.settings-tabs-mobile-dropdown-btn { + position: relative; + z-index: 1000; + margin-top: 0; + margin-bottom: 0; + cursor: pointer; + border-radius: 0; + --tw-border-opacity: 1; + border-color: rgb(210 214 218 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(11 85 119 / var(--tw-bg-opacity)); + padding: 0.5rem 1.5rem; + text-align: center; + vertical-align: middle; + font-size: 0.875rem; + line-height: 1.5rem; + line-height: 1.5; + letter-spacing: -0.025rem; + --tw-text-opacity: 1; + color: rgb(210 214 218 / var(--tw-text-opacity)); + transition-property: all; + transition-timing-function: ease; + transition-duration: 0.15s; + transition-timing-function: ease-in; +} +.active.settings-tabs-mobile-dropdown-btn:hover { + --tw-brightness: brightness(0.9); + 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); +} +:is(.dark .active.settings-tabs-mobile-dropdown-btn) { + --tw-border-opacity: 1; + border-color: rgb(98 117 148 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(11 85 119 / var(--tw-bg-opacity)); + --tw-text-opacity: 1; + color: rgb(210 214 218 / var(--tw-text-opacity)); +} +:is(.dark .active.settings-tabs-mobile-dropdown-btn:hover) { + --tw-brightness: brightness(0.9); + 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); +} +.first.settings-tabs-mobile-dropdown-btn { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; + border-width: 1px; +} +.settings-tabs-mobile-dropdown-btn { + position: relative; + margin-top: 0; + margin-bottom: 0; + display: flex; + cursor: pointer; + justify-content: space-between; + border-radius: 0; + border-bottom-width: 1px; + border-left-width: 1px; + border-right-width: 1px; + --tw-border-opacity: 1; + border-color: rgb(210 214 218 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + padding: 0.5rem 1.5rem; + text-align: center; + vertical-align: middle; + font-size: 0.875rem; + line-height: 1.5rem; + line-height: 1.5; + letter-spacing: -0.025rem; + --tw-text-opacity: 1; + color: rgb(73 80 87 / var(--tw-text-opacity)); + transition-property: all; + transition-timing-function: ease; + transition-duration: 0.15s; + transition-timing-function: ease-in; +} +.settings-tabs-mobile-dropdown-btn:hover { + --tw-brightness: brightness(0.9); + 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); +} +:is(.dark .settings-tabs-mobile-dropdown-btn) { + --tw-border-opacity: 1; + border-color: rgb(98 117 148 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(52 71 103 / var(--tw-bg-opacity)); + --tw-text-opacity: 1; + color: rgb(210 214 218 / var(--tw-text-opacity)); +} +:is(.dark .settings-tabs-mobile-dropdown-btn:hover) { + --tw-brightness: brightness(0.9); + 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); +} +.first-letter\:absolute:first-letter { + position: absolute; +} +.first-letter\:w-full:first-letter { + width: 100%; +} +.placeholder\:text-gray-500::-moz-placeholder { + --tw-text-opacity: 1; + color: rgb(173 181 189 / var(--tw-text-opacity)); +} +.placeholder\:text-gray-500::placeholder { + --tw-text-opacity: 1; + color: rgb(173 181 189 / var(--tw-text-opacity)); +} +.before\:float-left:before { + content: var(--tw-content); + float: left; +} +.before\:pr-2:before { + content: var(--tw-content); + padding-right: 0.5rem; +} +.before\:text-white:before { + content: var(--tw-content); + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} +.before\:content-\[\'\/\'\]:before { + --tw-content: "/"; + content: var(--tw-content); +} +.after\:absolute:after { + content: var(--tw-content); + position: absolute; +} +.after\:top-px:after { + content: var(--tw-content); + top: 1px; +} +.after\:float-right:after { + content: var(--tw-content); + float: right; +} +.after\:h-4:after { + content: var(--tw-content); + height: 1rem; +} +.after\:w-4:after { + content: var(--tw-content); + width: 1rem; +} +.after\:translate-x-px:after { + content: var(--tw-content); + --tw-translate-x: 1px; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.after\:rounded-circle:after { + content: var(--tw-content); + border-radius: 50%; +} +.after\:bg-white:after { + content: var(--tw-content); + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} +.after\:pl-2:after { + content: var(--tw-content); + padding-left: 0.5rem; +} +.after\:text-gray-600:after { + content: var(--tw-content); + --tw-text-opacity: 1; + color: rgb(108 117 125 / var(--tw-text-opacity)); +} +.after\:shadow-2xl:after { + content: var(--tw-content); + --tw-shadow: 0 0.3125rem 0.625rem 0 #0000001f; + --tw-shadow-colored: 0 0.3125rem 0.625rem 0 var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.after\:duration-300:after { + content: var(--tw-content); + transition-duration: 0.3s; +} +.after\:content-\[\'\'\]:after { + --tw-content: ""; + content: var(--tw-content); +} +.after\:content-\[\'\/\'\]:after { + --tw-content: "/"; + content: var(--tw-content); +} +.checked\:z-0:checked { + z-index: 0; +} +.checked\:border-primary:checked { + --tw-border-opacity: 1; + border-color: rgb(11 85 119 / var(--tw-border-opacity)); +} +.checked\:bg-primary:checked { + --tw-bg-opacity: 1; + background-color: rgb(11 85 119 / var(--tw-bg-opacity)); +} +.checked\:bg-none:checked { + background-image: none; +} +.checked\:bg-right:checked { + background-position: 100%; +} +.checked\:after\:translate-x-5:checked:after { + --tw-translate-x: 1.25rem; +} +.checked\:after\:translate-x-5:checked:after, +.checked\:after\:translate-x-5\.3:checked:after { + content: var(--tw-content); + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.checked\:after\:translate-x-5\.3:checked:after { + --tw-translate-x: 1.3rem; +} +.valid\:\!border-red-500:valid { + --tw-border-opacity: 1 !important; + border-color: rgb(245 57 57 / var(--tw-border-opacity)) !important; +} +.hover\:-translate-y-0:hover { + --tw-translate-y: -0px; +} +.hover\:-translate-y-0:hover, +.hover\:-translate-y-0\.4:hover { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.hover\:-translate-y-0\.4:hover { + --tw-translate-y: -0.1rem; +} +.hover\:-translate-y-px:hover { + --tw-translate-y: -1px; +} +.hover\:-translate-y-px:hover, +.hover\:scale-102:hover { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.hover\:scale-102:hover { + --tw-scale-x: 1.02; + --tw-scale-y: 1.02; +} +.hover\:rounded-lg:hover { + border-radius: 0.5rem; +} +.hover\:bg-gray-100:hover { + --tw-bg-opacity: 1; + background-color: rgb(235 239 244 / var(--tw-bg-opacity)); +} +.hover\:bg-gray-300:hover { + --tw-bg-opacity: 1; + background-color: rgb(210 214 218 / var(--tw-bg-opacity)); +} +.hover\:bg-green-500\/80:hover { + background-color: #22c55ecc; +} +.hover\:bg-primary\/30:hover { + background-color: #0b55774d; +} +.hover\:bg-primary\/5:hover { + background-color: #0b55770d; +} +.hover\:bg-primary\/80:hover { + background-color: #0b5577cc; +} +.hover\:bg-red-500\/80:hover { + background-color: #f53939cc; +} +.hover\:bg-sky-500\/80:hover { + background-color: #0ea5e9cc; +} +.hover\:bg-yellow-500\/80:hover { + background-color: #fbb140cc; +} +.hover\:italic:hover { + font-style: italic; +} +.hover\:no-underline:hover { + text-decoration-line: none; +} +.hover\:opacity-80:hover { + opacity: 0.8; +} +.hover\:shadow-md:hover { + --tw-shadow: 0 4px 6px #32325d1a, 0 1px 3px #00000014; + --tw-shadow-colored: 0 4px 6px var(--tw-shadow-color), + 0 1px 3px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.hover\:brightness-75:hover { + --tw-brightness: brightness(0.75); +} +.hover\:brightness-75:hover, +.hover\:brightness-90:hover { + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) + var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) + var(--tw-sepia) var(--tw-drop-shadow); +} +.hover\:brightness-90:hover { + --tw-brightness: brightness(0.9); +} +.hover\:brightness-95:hover { + --tw-brightness: brightness(0.95); + 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); +} +.focus\:\!border-red-500:focus { + --tw-border-opacity: 1 !important; + border-color: rgb(245 57 57 / var(--tw-border-opacity)) !important; +} +.focus\:border-green-500:focus { + --tw-border-opacity: 1; + border-color: rgb(34 197 94 / var(--tw-border-opacity)); +} +.focus\:border-primary:focus { + --tw-border-opacity: 1; + border-color: rgb(11 85 119 / var(--tw-border-opacity)); +} +.focus\:bg-green-500\/80:focus { + background-color: #22c55ecc; +} +.focus\:bg-primary\/80:focus { + background-color: #0b5577cc; +} +.focus\:bg-red-500\/80:focus { + background-color: #f53939cc; +} +.focus\:bg-sky-500\/80:focus { + background-color: #0ea5e9cc; +} +.focus\:bg-yellow-500\/80:focus { + background-color: #fbb140cc; +} +.focus\:\!outline-red-500:focus { + outline-color: #f53939 !important; +} +.focus\:\!ring-red-500:focus { + --tw-ring-opacity: 1 !important; + --tw-ring-color: rgb(245 57 57 / var(--tw-ring-opacity)) !important; +} +.focus\:valid\:\!border-red-500:valid:focus { + --tw-border-opacity: 1 !important; + border-color: rgb(245 57 57 / var(--tw-border-opacity)) !important; +} +.focus\:valid\:border-green-500:valid:focus { + --tw-border-opacity: 1; + border-color: rgb(34 197 94 / var(--tw-border-opacity)); +} +.focus\:valid\:\!outline-red-500:valid:focus { + outline-color: #f53939 !important; +} +.focus\:valid\:\!ring-red-500:valid:focus { + --tw-ring-opacity: 1 !important; + --tw-ring-color: rgb(245 57 57 / var(--tw-ring-opacity)) !important; +} +.focus\:invalid\:border-red-500:invalid:focus { + --tw-border-opacity: 1; + border-color: rgb(245 57 57 / var(--tw-border-opacity)); +} +.focus\:file\:invalid\:border-red-500:invalid::file-selector-button:focus { + --tw-border-opacity: 1; + border-color: rgb(245 57 57 / var(--tw-border-opacity)); +} +.active\:\!border-red-500:active { + --tw-border-opacity: 1 !important; + border-color: rgb(245 57 57 / var(--tw-border-opacity)) !important; +} +.active\:opacity-85:active { + opacity: 0.85; +} +.active\:valid\:\!border-red-500:valid:active { + --tw-border-opacity: 1 !important; + border-color: rgb(245 57 57 / var(--tw-border-opacity)) !important; +} +.disabled\:cursor-not-allowed:disabled { + cursor: not-allowed; +} +.disabled\:border-gray-400:disabled { + --tw-border-opacity: 1; + border-color: rgb(206 212 218 / var(--tw-border-opacity)); +} +.disabled\:bg-gray-400:disabled { + --tw-bg-opacity: 1; + background-color: rgb(206 212 218 / var(--tw-bg-opacity)); +} +.disabled\:text-gray-700:disabled { + --tw-text-opacity: 1; + color: rgb(73 80 87 / var(--tw-text-opacity)); +} +.disabled\:opacity-75:disabled { + opacity: 0.75; +} +.disabled\:hover\:translate-y-0:hover:disabled { + --tw-translate-y: 0px; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +:is(.dark .dark\:inline) { + display: inline; +} +:is(.dark .dark\:hidden) { + display: none; +} +:is(.dark .dark\:border-gray-700) { + --tw-border-opacity: 1; + border-color: rgb(73 80 87 / var(--tw-border-opacity)); +} +:is(.dark .dark\:border-slate-600) { + --tw-border-opacity: 1; + border-color: rgb(98 117 148 / var(--tw-border-opacity)); +} +:is(.dark .dark\:border-slate-800) { + --tw-border-opacity: 1; + border-color: rgb(58 65 111 / var(--tw-border-opacity)); +} +:is(.dark .dark\:bg-gray-800) { + --tw-bg-opacity: 1; + background-color: rgb(37 47 64 / var(--tw-bg-opacity)); +} +:is(.dark .dark\:bg-green-500\/90) { + background-color: #22c55ee6; +} +:is(.dark .dark\:bg-primary) { + --tw-bg-opacity: 1; + background-color: rgb(11 85 119 / var(--tw-bg-opacity)); +} +:is(.dark .dark\:bg-primary\/50) { + background-color: #0b557780; +} +:is(.dark .dark\:bg-slate-700) { + --tw-bg-opacity: 1; + background-color: rgb(52 71 103 / var(--tw-bg-opacity)); +} +:is(.dark .dark\:bg-slate-700\/50) { + background-color: #34476780; +} +:is(.dark .dark\:bg-slate-850) { + --tw-bg-opacity: 1; + background-color: rgb(17 28 68 / var(--tw-bg-opacity)); +} +:is(.dark .dark\:bg-slate-900) { + --tw-bg-opacity: 1; + background-color: rgb(5 17 57 / var(--tw-bg-opacity)); +} +:is(.dark .dark\:bg-slate-900\/30) { + background-color: #0511394d; +} +:is(.dark .dark\:bg-gray-600) { + --tw-bg-opacity: 1; + background-color: rgb(108 117 125 / var(--tw-bg-opacity)); +} +:is(.dark .dark\:bg-slate-600) { + --tw-bg-opacity: 1; + background-color: rgb(98 117 148 / var(--tw-bg-opacity)); +} +:is(.dark .dark\:bg-slate-800) { + --tw-bg-opacity: 1; + background-color: rgb(58 65 111 / var(--tw-bg-opacity)); +} +:is(.dark .dark\:bg-gradient-to-r) { + background-image: linear-gradient(to right, var(--tw-gradient-stops)); +} +:is(.dark .dark\:from-transparent) { + --tw-gradient-from: #0000 var(--tw-gradient-from-position); + --tw-gradient-to: #0000 var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} +:is(.dark .dark\:via-white) { + --tw-gradient-to: #fff0 var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), + #fff var(--tw-gradient-via-position), var(--tw-gradient-to); +} +:is(.dark .dark\:to-transparent) { + --tw-gradient-to: #0000 var(--tw-gradient-to-position); +} +:is(.dark .dark\:fill-blue-500) { + fill: #5e72e4; +} +:is(.dark .dark\:fill-gray-300) { + fill: #d2d6da; +} +:is(.dark .dark\:fill-gray-500) { + fill: #adb5bd; +} +:is(.dark .dark\:fill-gray-600) { + fill: #6c757d; +} +:is(.dark .dark\:fill-gray-50) { + fill: #f8f9fa; +} +:is(.dark .dark\:stroke-gray-600) { + stroke: #6c757d; +} +:is(.dark .dark\:stroke-gray-50) { + stroke: #f8f9fa; +} +:is(.dark .dark\:stroke-gray-400) { + stroke: #ced4da; +} +:is(.dark .dark\:text-gray-100) { + --tw-text-opacity: 1; + color: rgb(235 239 244 / var(--tw-text-opacity)); +} +:is(.dark .dark\:text-gray-200) { + --tw-text-opacity: 1; + color: rgb(233 236 239 / var(--tw-text-opacity)); +} +:is(.dark .dark\:text-gray-300) { + --tw-text-opacity: 1; + color: rgb(210 214 218 / var(--tw-text-opacity)); +} +:is(.dark .dark\:text-gray-400) { + --tw-text-opacity: 1; + color: rgb(206 212 218 / var(--tw-text-opacity)); +} +:is(.dark .dark\:text-gray-500) { + --tw-text-opacity: 1; + color: rgb(173 181 189 / var(--tw-text-opacity)); +} +:is(.dark .dark\:text-red-500) { + --tw-text-opacity: 1; + color: rgb(245 57 57 / var(--tw-text-opacity)); +} +:is(.dark .dark\:text-white) { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} +:is(.dark .dark\:text-white\/80) { + color: #fffc; +} +:is(.dark .dark\:text-white\/90) { + color: #ffffffe6; +} +:is(.dark .dark\:opacity-60) { + opacity: 0.6; +} +:is(.dark .dark\:opacity-75) { + opacity: 0.75; +} +:is(.dark .dark\:opacity-80) { + opacity: 0.8; +} +:is(.dark .dark\:opacity-90) { + opacity: 0.9; +} +:is(.dark .dark\:shadow-dark-xl) { + --tw-shadow: 0 2px 2px 0 #00000024, 0 3px 1px -2px #0003, + 0 1px 5px 0 #0000001f; + --tw-shadow-colored: 0 2px 2px 0 var(--tw-shadow-color), + 0 3px 1px -2px var(--tw-shadow-color), 0 1px 5px 0 var(--tw-shadow-color); +} +:is(.dark .dark\:shadow-dark-xl), +:is(.dark .dark\:shadow-none) { + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), + var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +:is(.dark .dark\:shadow-none) { + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; +} +:is(.dark .dark\:brightness-110) { + --tw-brightness: brightness(1.1); +} +:is(.dark .dark\:brightness-110), +:is(.dark .dark\:brightness-125) { + 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); +} +:is(.dark .dark\:brightness-125) { + --tw-brightness: brightness(1.25); +} +:is(.dark .dark\:brightness-150) { + --tw-brightness: brightness(1.5); +} +:is(.dark .dark\:brightness-150), +:is(.dark .dark\:brightness-90) { + 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); +} +:is(.dark .dark\:brightness-90) { + --tw-brightness: brightness(0.9); +} +:is(.dark .dark\:brightness-95) { + --tw-brightness: brightness(0.95); +} +:is(.dark .dark\:brightness-95), +:is(.dark .dark\:brightness-\[0\.885\]) { + 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); +} +:is(.dark .dark\:brightness-\[0\.885\]) { + --tw-brightness: brightness(0.885); +} +:is(.dark .dark\:after\:text-gray-500):after { + content: var(--tw-content); + --tw-text-opacity: 1; + color: rgb(173 181 189 / var(--tw-text-opacity)); +} +:is(.dark .dark\:checked\:border-primary:checked) { + --tw-border-opacity: 1; + border-color: rgb(11 85 119 / var(--tw-border-opacity)); +} +:is(.dark .dark\:checked\:bg-primary:checked) { + --tw-bg-opacity: 1; + background-color: rgb(11 85 119 / var(--tw-bg-opacity)); +} +:is(.dark .dark\:hover\:bg-primary\/20:hover) { + background-color: #0b557733; +} +:is(.dark .dark\:hover\:bg-primary\/60:hover) { + background-color: #0b557799; +} +:is(.dark .dark\:hover\:bg-slate-700\/50:hover) { + background-color: #34476780; +} +:is(.dark .dark\:hover\:bg-slate-800:hover) { + --tw-bg-opacity: 1; + background-color: rgb(58 65 111 / var(--tw-bg-opacity)); +} +:is(.dark .dark\:hover\:brightness-100:hover) { + --tw-brightness: brightness(1); +} +:is(.dark .dark\:hover\:brightness-100:hover), +:is(.dark .dark\:hover\:brightness-105:hover) { + 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); +} +:is(.dark .dark\:hover\:brightness-105:hover) { + --tw-brightness: brightness(1.05); +} +:is(.dark .dark\:hover\:brightness-90:hover) { + --tw-brightness: brightness(0.9); + 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); +} +:is(.dark .dark\:disabled\:border-gray-800:disabled) { + --tw-border-opacity: 1; + border-color: rgb(37 47 64 / var(--tw-border-opacity)); +} +:is(.dark .dark\:disabled\:bg-gray-800:disabled) { + --tw-bg-opacity: 1; + background-color: rgb(37 47 64 / var(--tw-bg-opacity)); +} +:is(.dark .dark\:disabled\:text-gray-300:disabled) { + --tw-text-opacity: 1; + color: rgb(210 214 218 / var(--tw-text-opacity)); +} +@media (min-width: 576px) { + .sm\:right-24 { + right: 6rem; + } + .sm\:right-40 { + right: 10rem; + } + .sm\:right-6 { + right: 1.5rem; + } + .sm\:top-2 { + top: 0.5rem; + } + .sm\:top-\[4\.5rem\] { + top: 4.5rem; + } + .sm\:col-span-4 { + grid-column: span 4 / span 4; + } + .sm\:col-span-6 { + grid-column: span 6 / span 6; + } + .sm\:col-start-5 { + grid-column-start: 5; + } + .sm\:mx-4 { + margin-left: 1rem; + margin-right: 1rem; + } + .sm\:mx-6 { + margin-left: 1.5rem; + margin-right: 1.5rem; + } + .sm\:ml-1 { + margin-left: 0.25rem; + } + .sm\:mr-16 { + margin-right: 4rem; + } + .sm\:h-10 { + height: 2.5rem; + } + .sm\:h-14 { + height: 3.5rem; + } + .sm\:h-7 { + height: 1.75rem; + } + .sm\:max-h-125 { + max-height: 31.25rem; + } + .sm\:max-h-28 { + max-height: 7rem; + } + .sm\:w-36 { + width: 9rem; + } + .sm\:w-50 { + width: 12.5rem; + } + .sm\:w-7 { + width: 1.75rem; + } + .sm\:min-w-\[500px\] { + min-width: 500px; + } + .sm\:scale-100 { + --tw-scale-x: 1; + --tw-scale-y: 1; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + } + .sm\:flex-row { + flex-direction: row; + } + .sm\:justify-end { + justify-content: flex-end; + } + .sm\:justify-items-start { + justify-items: start; + } + .sm\:gap-4 { + gap: 1rem; + } + .sm\:px-12 { + padding-left: 3rem; + padding-right: 3rem; + } + .sm\:px-4 { + padding-left: 1rem; + padding-right: 1rem; + } + .sm\:px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; + } + .sm\:py-0 { + padding-top: 0; + padding-bottom: 0; + } + .sm\:pt-6 { + padding-top: 1.5rem; + } + .sm\:text-left { + text-align: left; + } +} +@media (min-width: 768px) { + .md\:right-8 { + right: 2rem; + } + .md\:top-\[40\%\] { + top: 40%; + } + .md\:right-12 { + right: 3rem; + } + .md\:right-16 { + right: 4rem; + } + .md\:right-14 { + right: 3.5rem; + } + .md\:right-\[3\.75rem\] { + right: 3.75rem; + } + .md\:col-span-4 { + grid-column: span 4 / span 4; + } + .md\:col-span-5 { + grid-column: span 5 / span 5; + } + .md\:col-span-6 { + grid-column: span 6 / span 6; + } + .md\:col-span-7 { + grid-column: span 7 / span 7; + } + .md\:col-span-8 { + grid-column: span 8 / span 8; + } + .md\:mx-6 { + margin-left: 1.5rem; + margin-right: 1.5rem; + } + .md\:my-3 { + margin-top: 0.75rem; + margin-bottom: 0.75rem; + } + .md\:mb-0 { + margin-bottom: 0; + } + .md\:mb-3 { + margin-bottom: 0.75rem; + } + .md\:mb-8 { + margin-bottom: 2rem; + } + .md\:mr-3 { + margin-right: 0.75rem; + } + .md\:mt-0 { + margin-top: 0; + } + .md\:mt-6 { + margin-top: 1.5rem; + } + .md\:block { + display: block; + } + .md\:hidden { + display: none; + } + .md\:h-16 { + height: 4rem; + } + .md\:max-h-160 { + max-height: 40rem; + } + .md\:min-h-75-screen { + min-height: 75vh; + } + .md\:w-1\/2 { + width: 50%; + } + .md\:w-60 { + width: 15rem; + } + .md\:max-w-\[600px\] { + max-width: 600px; + } + .md\:justify-end { + justify-content: flex-end; + } + .md\:gap-x-6 { + -moz-column-gap: 1.5rem; + column-gap: 1.5rem; + } + .md\:px-3 { + padding-left: 0.75rem; + padding-right: 0.75rem; + } + .md\:px-4 { + padding-left: 1rem; + padding-right: 1rem; + } + .md\:px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; + } + .md\:py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + } + .md\:py-4 { + padding-top: 1rem; + padding-bottom: 1rem; + } + .md\:text-base { + font-size: 1rem; + line-height: 1.5rem; + } +} +@media (min-width: 992px) { + .lg\:relative { + position: relative; + } + .lg\:order-1 { + order: 1; + } + .lg\:order-2 { + order: 2; + } + .lg\:col-span-1 { + grid-column: span 1 / span 1; + } + .lg\:col-span-4 { + grid-column: span 4 / span 4; + } + .lg\:col-span-6 { + grid-column: span 6 / span 6; + } + .lg\:col-span-8 { + grid-column: span 8 / span 8; + } + .lg\:mx-0 { + margin-left: 0; + margin-right: 0; + } + .lg\:mx-8 { + margin-left: 2rem; + margin-right: 2rem; + } + .lg\:my-3 { + margin-top: 0.75rem; + margin-bottom: 0.75rem; + } + .lg\:mt-0 { + margin-top: 0; + } + .lg\:mt-4 { + margin-top: 1rem; + } + .lg\:block { + display: block; + } + .lg\:flex { + display: flex; + } + .lg\:hidden { + display: none; + } + .lg\:h-24 { + height: 6rem; + } + .lg\:h-9 { + height: 2.25rem; + } + .lg\:w-80 { + width: 20rem; + } + .lg\:w-9 { + width: 2.25rem; + } + .lg\:flex-row { + flex-direction: row; + } + .lg\:flex-nowrap { + flex-wrap: nowrap; + } + .lg\:justify-start { + justify-content: flex-start; + } + .lg\:justify-end { + justify-content: flex-end; + } + .lg\:justify-between { + justify-content: space-between; + } + .lg\:gap-6 { + gap: 1.5rem; + } + .lg\:bg-gray-50 { + --tw-bg-opacity: 1; + background-color: rgb(248 249 250 / var(--tw-bg-opacity)); + } + .lg\:px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; + } + .lg\:pb-1 { + padding-bottom: 0.25rem; + } + .lg\:text-left { + text-align: left; + } +} +@media (min-width: 1200px) { + .xl\:left-0 { + left: 0; + } + .xl\:right-24 { + right: 6rem; + } + .xl\:right-6 { + right: 1.5rem; + } + .xl\:ml-6 { + margin-left: 1.5rem; + } + .xl\:ml-68 { + margin-left: 17rem; + } + .xl\:hidden { + display: none; + } + .xl\:translate-x-0 { + --tw-translate-x: 0px; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) + rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) + scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + } + .xl\:p-1 { + padding: 0.25rem; + } + .xl\:p-1\.5 { + padding: 0.375rem; + } + .xl\:pl-75 { + padding-left: 18.75rem; + } + .xl\:text-base { + font-size: 1rem; + line-height: 1.5rem; + } +} +@media (min-width: 1320px) { + .\32xl\:col-span-4 { + grid-column: span 4 / span 4; + } + .\32xl\:col-span-6 { + grid-column: span 6 / span 6; + } + .\32xl\:mx-6 { + margin-left: 1.5rem; + margin-right: 1.5rem; + } + .\32xl\:my-3 { + margin-top: 0.75rem; + margin-bottom: 0.75rem; + } +} +@media (min-width: 1920px) { + .\33xl\:col-span-3 { + grid-column: span 3 / span 3; + } + .\33xl\:col-span-4 { + grid-column: span 4 / span 4; + } + .\33xl\:col-span-5 { + grid-column: span 5 / span 5; + } +} +@media (min-width: 340px) { + .xs\:flex { + display: flex; + } + .xs\:flex-row { + flex-direction: row; + } + .xs\:items-center { + align-items: center; + } + .xs\:justify-start { + justify-content: flex-start; + } + .xs\:pl-2 { + padding-left: 0.5rem; + } + .xs\:text-sm { + font-size: 0.875rem; + line-height: 1.5rem; + } +} +.\[\&\>\*\]\:bg-primary > * { + --tw-bg-opacity: 1; + background-color: rgb(11 85 119 / var(--tw-bg-opacity)); +} diff --git a/src/ui/static/css/datepicker-foundation.css b/src/ui/static/css/datepicker-foundation.css index d81e212ab..8831cf0c0 100644 --- a/src/ui/static/css/datepicker-foundation.css +++ b/src/ui/static/css/datepicker-foundation.css @@ -1,3 +1,3 @@ .datepicker{display:none}.datepicker.active{display:block}.datepicker-dropdown{position:absolute;top:0;left:0;z-index:100;padding-top:4px}.datepicker-dropdown.datepicker-orient-top{padding-top:0;padding-bottom:4px}.datepicker-picker{display:inline-block;border-radius:0;background-color:#fefefe}.datepicker-dropdown .datepicker-picker{box-shadow:0 0 0 1px #cacaca}.datepicker-picker span{display:block;flex:1;border:0;border-radius:0;cursor:default;text-align:center;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker-main{padding:2px}.datepicker-footer{box-shadow:inset 0 1px 1px rgba(10,10,10,.1);background-color:#e6e6e6}.datepicker-controls,.datepicker-grid,.datepicker-view,.datepicker-view .days-of-week{display:flex}.datepicker-grid{flex-wrap:wrap;width:15.75rem}.datepicker-view .days .datepicker-cell,.datepicker-view .dow{flex-basis:14.2857142857%}.datepicker-view.datepicker-grid .datepicker-cell{flex-basis:25%;height:4.5rem;line-height:4.5rem}.datepicker-cell,.datepicker-view .week{height:2.25rem;line-height:2.25rem}.datepicker-title{box-shadow:inset 0 -1px 1px rgba(10,10,10,.1);background-color:#e6e6e6;padding:.375rem .75rem;text-align:center;font-weight:700}.datepicker-header .datepicker-controls{padding:2px 2px 0}.datepicker-controls .button{margin:.4rem 0;background-color:#fefefe;color:#707070}.datepicker-controls .button:focus,.datepicker-controls .button:hover{background-color:#d8d8d8}.datepicker-controls .button:focus[disabled],.datepicker-controls .button:hover[disabled]{opacity:.25;background-color:#fefefe;margin-top:.4rem;margin-bottom:.4rem;color:#707070}.datepicker-header .datepicker-controls .button{border-color:transparent;font-weight:700}.datepicker-footer .datepicker-controls .button{margin:calc(.375rem - 1px) .375rem;border-radius:0;width:100%;font-size:.75rem}.datepicker-controls .view-switch{flex:auto}.datepicker-controls .next-btn,.datepicker-controls .prev-btn{padding-right:.375rem;padding-left:.375rem;width:2.25rem}.datepicker-controls .next-btn.disabled,.datepicker-controls .prev-btn.disabled{visibility:hidden}.datepicker-view .dow{height:1.5rem;line-height:1.5rem;font-size:.875rem;font-weight:700;color:#064059}.datepicker-view .week{width:2.25rem;color:#8a8a8a;font-size:.75rem}@media (max-width:22.5rem){.datepicker-view .week{width:1.96875rem}.calendar-weeks+.days .datepicker-grid{width:13.78125rem}}.datepicker-cell:not(.disabled):hover{background-color:#f8f8f8;cursor:pointer}.datepicker-cell.focused:not(.selected),.datepicker-cell.highlighted:not(.selected):not(.range):not(.today).focused,.datepicker-cell.highlighted:not(.selected):not(.range):not(.today):not( .disabled -):hover{background-color:#f1f1f1}.datepicker-cell.selected,.datepicker-cell.selected:hover{background-color:#1779ba;color:#fefefe;font-weight:semibold}.datepicker-cell.disabled{color:#e6e6e6}.datepicker-cell.next:not(.disabled),.datepicker-cell.prev:not(.disabled){color:#cacaca}.datepicker-cell.next.selected,.datepicker-cell.prev.selected{color:#e5e5e5}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today){border-radius:0;background-color:#f7f7f7}.datepicker-cell.today:not(.selected){background-color:#d7ecfa}.datepicker-cell.today:not(.selected):not(.disabled){color:#8a8a8a}.datepicker-cell.today.focused:not(.selected){background-color:#cbe7f9}.datepicker-cell.range-end:not(.selected),.datepicker-cell.range-start:not(.selected){background-color:#767676;color:#fefefe}.datepicker-cell.range-end.focused:not(.selected),.datepicker-cell.range-start.focused:not(.selected){background-color:#707070}.datepicker-cell.range-end,.datepicker-cell.range-start{border-radius:0}.datepicker-cell.range{border-radius:0;background-color:#e6e6e6}.datepicker-cell.range:not(.disabled):not(.focused):not(.today):hover{background-color:#e0e0e0}.datepicker-cell.range.disabled{color:#cdcdcd}.datepicker-cell.range.focused{background-color:#d9d9d9}.datepicker-cell.range.today{background-color:#b3dbf6}.datepicker-input.in-edit{border-color:#a4a4a4}.datepicker-input.in-edit:active,.datepicker-input.in-edit:focus{box-shadow:0 0 .25em .25em rgba(164,164,164,.2)} \ No newline at end of file +):hover{background-color:#f1f1f1}.datepicker-cell.selected,.datepicker-cell.selected:hover{background-color:#1779ba;color:#fefefe;font-weight:semibold}.datepicker-cell.disabled{color:#e6e6e6}.datepicker-cell.next:not(.disabled),.datepicker-cell.prev:not(.disabled){color:#cacaca}.datepicker-cell.next.selected,.datepicker-cell.prev.selected{color:#e5e5e5}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today){border-radius:0;background-color:#f7f7f7}.datepicker-cell.today:not(.selected){background-color:#d7ecfa}.datepicker-cell.today:not(.selected):not(.disabled){color:#8a8a8a}.datepicker-cell.today.focused:not(.selected){background-color:#cbe7f9}.datepicker-cell.range-end:not(.selected),.datepicker-cell.range-start:not(.selected){background-color:#767676;color:#fefefe}.datepicker-cell.range-end.focused:not(.selected),.datepicker-cell.range-start.focused:not(.selected){background-color:#707070}.datepicker-cell.range-end,.datepicker-cell.range-start{border-radius:0}.datepicker-cell.range{border-radius:0;background-color:#e6e6e6}.datepicker-cell.range:not(.disabled):not(.focused):not(.today):hover{background-color:#e0e0e0}.datepicker-cell.range.disabled{color:#cdcdcd}.datepicker-cell.range.focused{background-color:#d9d9d9}.datepicker-cell.range.today{background-color:#b3dbf6}.datepicker-input.in-edit{border-color:#a4a4a4}.datepicker-input.in-edit:active,.datepicker-input.in-edit:focus{box-shadow:0 0 .25em .25em rgba(164,164,164,.2)} diff --git a/src/ui/static/css/flatpickr.css b/src/ui/static/css/flatpickr.css index 61628659e..2d0f7af19 100644 --- a/src/ui/static/css/flatpickr.css +++ b/src/ui/static/css/flatpickr.css @@ -1 +1 @@ -.flatpickr-calendar.noCalendar.hasTime .flatpickr-time,.numInputWrapper{height:auto}.flatpickr-calendar{background:0 0;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;-webkit-box-shadow:0 3px 13px rgba(0,0,0,.08);box-shadow:0 3px 13px rgba(0,0,0,.08)}.flatpickr-wrapper,.numInputWrapper input,.numInputWrapper span{display:inline-block}.flatpickr-calendar.inline,.flatpickr-calendar.open{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:.3s cubic-bezier(.23,1,.32,1) fpFadeInDown;animation:.3s cubic-bezier(.23,1,.32,1) fpFadeInDown}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasTime .dayContainer,.flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-innerContainer{border-bottom:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid rgba(72,72,72,.2);border:1px solid rgba(72,72,72,.2)}.flatpickr-calendar:after,.flatpickr-calendar:before{position:absolute;display:block;pointer-events:none;border:solid transparent;content:"";height:0;width:0;left:22px}.flatpickr-months .flatpickr-next-month i,.flatpickr-months .flatpickr-prev-month i,.flatpickr-wrapper,.numInputWrapper{position:relative}.flatpickr-calendar.arrowRight:after,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar.arrowCenter:after,.flatpickr-calendar.arrowCenter:before{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:rgba(72,72,72,.2)}.flatpickr-calendar.arrowTop:after{border-bottom-color:#085577}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:rgba(72,72,72,.2)}.flatpickr-calendar.arrowBottom:after{border-top-color:#085577}.flatpickr-calendar:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active,.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month input.cur-year:focus,.flatpickr-days:focus{outline:0}.flatpickr-months,.flatpickr-weekdays{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.flatpickr-months{display:flex}.flatpickr-months .flatpickr-month{border-radius:5px 5px 0 0;background:#085577;color:#fff;fill:#fff;height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:#fff;fill:#fff}.flatpickr-months .flatpickr-next-month.flatpickr-disabled,.flatpickr-months .flatpickr-prev-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-next-month.flatpickr-next-month,.flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-next-month:hover,.flatpickr-months .flatpickr-prev-month:hover{color:#bbb}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#40bb6b}.flatpickr-months .flatpickr-next-month svg,.flatpickr-months .flatpickr-prev-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-next-month svg path,.flatpickr-months .flatpickr-prev-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-inner-spin-button,.numInputWrapper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(72,72,72,.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(72,72,72,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(72,72,72,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(255,255,255,0.5)}.flatpickr-current-month .flatpickr-monthDropdown-months:hover,.flatpickr-current-month span.cur-month:hover,.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month .flatpickr-monthDropdown-months,.flatpickr-current-month input.cur-year{color:inherit;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;padding:0 0 0 .5ch;vertical-align:initial}.flatpickr-current-month .numInputWrapper{width:6ch;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#fff}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#fff}.flatpickr-current-month input.cur-year{background:0 0;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:text;margin:0;display:inline-block;border:0;border-radius:0;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(255,255,255,.5);background:0 0;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:#085577;border:none;border-radius:0;box-sizing:border-box;cursor:pointer;margin:-1px 0 0;outline:0;position:relative;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:#085577;outline:0;padding:0}.flatpickr-weekdays{background:#085577;text-align:center;overflow:hidden;width:100%;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:#085577;color:#fff;line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px;border-left:1px solid rgba(72,72,72,.2);border-right:1px solid rgba(72,72,72,.2)}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 rgba(72,72,72,.2);box-shadow:-1px 0 0 rgba(72,72,72,.2)}.flatpickr-day{background:0 0;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#484848;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:focus,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:focus,.flatpickr-day:hover{cursor:pointer;outline:0;background:#e2e2e2;border-color:#e2e2e2}.flatpickr-day.today{border-color:#bbb}.flatpickr-day.today:focus,.flatpickr-day.today:hover{border-color:#bbb;background:#bbb;color:#fff}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:#40bb6b;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#40bb6b}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n + 1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n + 1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n + 1)){-webkit-box-shadow:-10px 0 0 #085577;box-shadow:-10px 0 0 #085577}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e2e2e2,5px 0 0 #e2e2e2;box-shadow:-5px 0 0 #e2e2e2,5px 0 0 #e2e2e2}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{color:rgba(72,72,72,.3);background:0 0;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(72,72,72,.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #085577,5px 0 0 #085577;box-shadow:-5px 0 0 #085577,5px 0 0 #085577}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;border-left:1px solid rgba(72,72,72,.2)}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(72,72,72,.3);background:0 0;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;background:#fff;border-bottom:1px solid rgba(72,72,72,.2)}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;background:#fff;border-radius:0 0 5px 5px}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#484848}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#484848}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:0 0;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#484848;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{height:inherit;float:left;line-height:inherit;color:#484848;font-weight:700;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:#eaeaea}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}} \ No newline at end of file +.flatpickr-calendar.noCalendar.hasTime .flatpickr-time,.numInputWrapper{height:auto}.flatpickr-calendar{background:0 0;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;-webkit-box-shadow:0 3px 13px rgba(0,0,0,.08);box-shadow:0 3px 13px rgba(0,0,0,.08)}.flatpickr-wrapper,.numInputWrapper input,.numInputWrapper span{display:inline-block}.flatpickr-calendar.inline,.flatpickr-calendar.open{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:.3s cubic-bezier(.23,1,.32,1) fpFadeInDown;animation:.3s cubic-bezier(.23,1,.32,1) fpFadeInDown}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasTime .dayContainer,.flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-innerContainer{border-bottom:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid rgba(72,72,72,.2);border:1px solid rgba(72,72,72,.2)}.flatpickr-calendar:after,.flatpickr-calendar:before{position:absolute;display:block;pointer-events:none;border:solid transparent;content:"";height:0;width:0;left:22px}.flatpickr-months .flatpickr-next-month i,.flatpickr-months .flatpickr-prev-month i,.flatpickr-wrapper,.numInputWrapper{position:relative}.flatpickr-calendar.arrowRight:after,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar.arrowCenter:after,.flatpickr-calendar.arrowCenter:before{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:rgba(72,72,72,.2)}.flatpickr-calendar.arrowTop:after{border-bottom-color:#085577}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:rgba(72,72,72,.2)}.flatpickr-calendar.arrowBottom:after{border-top-color:#085577}.flatpickr-calendar:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active,.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month input.cur-year:focus,.flatpickr-days:focus{outline:0}.flatpickr-months,.flatpickr-weekdays{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.flatpickr-months{display:flex}.flatpickr-months .flatpickr-month{border-radius:5px 5px 0 0;background:#085577;color:#fff;fill:#fff;height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:#fff;fill:#fff}.flatpickr-months .flatpickr-next-month.flatpickr-disabled,.flatpickr-months .flatpickr-prev-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-next-month.flatpickr-next-month,.flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-next-month:hover,.flatpickr-months .flatpickr-prev-month:hover{color:#bbb}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#40bb6b}.flatpickr-months .flatpickr-next-month svg,.flatpickr-months .flatpickr-prev-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-next-month svg path,.flatpickr-months .flatpickr-prev-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-inner-spin-button,.numInputWrapper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(72,72,72,.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(72,72,72,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(72,72,72,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(255,255,255,0.5)}.flatpickr-current-month .flatpickr-monthDropdown-months:hover,.flatpickr-current-month span.cur-month:hover,.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month .flatpickr-monthDropdown-months,.flatpickr-current-month input.cur-year{color:inherit;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;padding:0 0 0 .5ch;vertical-align:initial}.flatpickr-current-month .numInputWrapper{width:6ch;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#fff}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#fff}.flatpickr-current-month input.cur-year{background:0 0;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:text;margin:0;display:inline-block;border:0;border-radius:0;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(255,255,255,.5);background:0 0;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:#085577;border:none;border-radius:0;box-sizing:border-box;cursor:pointer;margin:-1px 0 0;outline:0;position:relative;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:#085577;outline:0;padding:0}.flatpickr-weekdays{background:#085577;text-align:center;overflow:hidden;width:100%;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:#085577;color:#fff;line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px;border-left:1px solid rgba(72,72,72,.2);border-right:1px solid rgba(72,72,72,.2)}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 rgba(72,72,72,.2);box-shadow:-1px 0 0 rgba(72,72,72,.2)}.flatpickr-day{background:0 0;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#484848;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:focus,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:focus,.flatpickr-day:hover{cursor:pointer;outline:0;background:#e2e2e2;border-color:#e2e2e2}.flatpickr-day.today{border-color:#bbb}.flatpickr-day.today:focus,.flatpickr-day.today:hover{border-color:#bbb;background:#bbb;color:#fff}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:#40bb6b;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#40bb6b}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n + 1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n + 1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n + 1)){-webkit-box-shadow:-10px 0 0 #085577;box-shadow:-10px 0 0 #085577}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e2e2e2,5px 0 0 #e2e2e2;box-shadow:-5px 0 0 #e2e2e2,5px 0 0 #e2e2e2}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{color:rgba(72,72,72,.3);background:0 0;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(72,72,72,.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #085577,5px 0 0 #085577;box-shadow:-5px 0 0 #085577,5px 0 0 #085577}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;border-left:1px solid rgba(72,72,72,.2)}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(72,72,72,.3);background:0 0;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;background:#fff;border-bottom:1px solid rgba(72,72,72,.2)}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;background:#fff;border-radius:0 0 5px 5px}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#484848}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#484848}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:0 0;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#484848;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{height:inherit;float:left;line-height:inherit;color:#484848;font-weight:700;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:#eaeaea}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}} diff --git a/src/ui/static/css/flatpickr.dark.css b/src/ui/static/css/flatpickr.dark.css index af890f028..8e93dd540 100644 --- a/src/ui/static/css/flatpickr.dark.css +++ b/src/ui/static/css/flatpickr.dark.css @@ -1 +1 @@ -.dark .flatpickr-calendar{background:#3f4458;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;-webkit-box-shadow:1px 0 0 #20222c,-1px 0 0 #20222c,0 1px 0 #20222c,0 -1px 0 #20222c,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 0 #20222c,-1px 0 0 #20222c,0 1px 0 #20222c,0 -1px 0 #20222c,0 3px 13px rgba(0,0,0,.08)}.dark .flatpickr-calendar.inline,.dark .flatpickr-calendar.open{opacity:1;max-height:640px;visibility:visible}.dark .flatpickr-calendar.open{display:inline-block;z-index:99999}.dark .flatpickr-calendar.animate.open{-webkit-animation:.3s cubic-bezier(.23,1,.32,1) fpFadeInDown;animation:.3s cubic-bezier(.23,1,.32,1) fpFadeInDown}.dark .flatpickr-calendar.inline{display:block;position:relative;top:2px}.dark .flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.dark .flatpickr-calendar.static.open{z-index:999;display:block}.dark .flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.dark .flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.dark .flatpickr-calendar .hasTime .dayContainer,.dark .flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.dark .flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.dark .flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #20222c}.dark .flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.dark .flatpickr-calendar:after,.dark .flatpickr-calendar:before{position:absolute;display:block;pointer-events:none;border:solid transparent;content:"";height:0;width:0;left:22px}.dark .flatpickr-calendar.arrowRight:after,.dark .flatpickr-calendar.arrowRight:before,.dark .flatpickr-calendar.rightMost:after,.dark .flatpickr-calendar.rightMost:before{left:auto;right:22px}.dark .flatpickr-calendar.arrowCenter:after,.dark .flatpickr-calendar.arrowCenter:before{left:50%;right:50%}.dark .flatpickr-calendar:before{border-width:5px;margin:0 -5px}.dark .flatpickr-calendar:after{border-width:4px;margin:0 -4px}.dark .flatpickr-calendar.arrowTop:after,.dark .flatpickr-calendar.arrowTop:before{bottom:100%}.dark .flatpickr-calendar.arrowTop:before{border-bottom-color:#20222c}.dark .flatpickr-calendar.arrowTop:after{border-bottom-color:#3f4458}.dark .flatpickr-calendar.arrowBottom:after,.dark .flatpickr-calendar.arrowBottom:before{top:100%}.dark .flatpickr-calendar.arrowBottom:before{border-top-color:#20222c}.dark .flatpickr-calendar.arrowBottom:after{border-top-color:#3f4458}.dark .flatpickr-calendar:focus,.dark .flatpickr-current-month .flatpickr-monthDropdown-months:active,.dark .flatpickr-current-month .flatpickr-monthDropdown-months:focus,.dark .flatpickr-current-month input.cur-year:focus,.dark .flatpickr-days:focus{outline:0}.dark .flatpickr-wrapper{position:relative;display:inline-block}.dark .flatpickr-months,.dark .flatpickr-weekdays{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.dark .flatpickr-months{display:flex}.dark .flatpickr-months .flatpickr-month{background:#085577;color:#fff;fill:#fff;height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.dark .flatpickr-months .flatpickr-next-month,.dark .flatpickr-months .flatpickr-prev-month{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:#fff;fill:#fff}.dark .flatpickr-months .flatpickr-next-month.flatpickr-disabled,.dark .flatpickr-months .flatpickr-prev-month.flatpickr-disabled{display:none}.dark .flatpickr-months .flatpickr-next-month i,.dark .flatpickr-months .flatpickr-prev-month i{position:relative}.dark .flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.dark .flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.dark .flatpickr-months .flatpickr-next-month.flatpickr-next-month,.dark .flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.dark .flatpickr-months .flatpickr-next-month:hover,.dark .flatpickr-months .flatpickr-prev-month:hover{color:#eee}.dark .flatpickr-months .flatpickr-prev-month:hover svg,.dark.flatpickr-months .flatpickr-next-month:hover svg{fill:#40bb6b}.dark .flatpickr-months .flatpickr-next-month svg,.dark .flatpickr-months .flatpickr-prev-month svg{width:14px;height:14px}.dark .flatpickr-months .flatpickr-next-month svg path,.dark .flatpickr-months .flatpickr-prev-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.dark .numInputWrapper{position:relative;height:auto}.dark .numInputWrapper input,.dark .numInputWrapper span{display:inline-block}.dark .numInputWrapper input{width:100%}.dark .numInputWrapper input::-ms-clear{display:none}.dark .numInputWrapper input::-webkit-inner-spin-button,.dark .numInputWrapper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.dark .numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(255,255,255,.15);-webkit-box-sizing:border-box;box-sizing:border-box}.dark .numInputWrapper span:hover{background:rgba(192,187,167,.1)}.dark .numInputWrapper span:active{background:rgba(192,187,167,.2)}.dark .numInputWrapper span:after{display:block;content:"";position:absolute}.dark .numInputWrapper span.arrowUp{top:0;border-bottom:0}.dark .numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(255,255,255,.6);top:26%}.dark .numInputWrapper span.arrowDown{top:50%}.dark .numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(255,255,255,.6);top:40%}.dark .numInputWrapper span svg{width:inherit;height:auto}.dark .numInputWrapper span svg path{fill:rgba(255,255,255,0.5)}.dark .flatpickr-current-month .flatpickr-monthDropdown-months:hover,.dark .flatpickr-current-month span.cur-month:hover,.dark .numInputWrapper:hover{background:rgba(192,187,167,.05)}.dark .numInputWrapper:hover span{opacity:1}.dark .flatpickr-current-month{font-size:135%;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.dark .flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.dark .flatpickr-current-month .flatpickr-monthDropdown-months,.dark .flatpickr-current-month input.cur-year{color:inherit;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;padding:0 0 0 .5ch;vertical-align:initial}.dark .flatpickr-current-month .numInputWrapper{width:6ch;display:inline-block}.dark .flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#fff}.dark .flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#fff}.dark .flatpickr-current-month input.cur-year{background:0 0;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:text;margin:0;display:inline-block;border:0;border-radius:0;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.dark .flatpickr-current-month input.cur-year[disabled],.dark .flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(255,255,255,.5);background:0 0;pointer-events:none}.dark .flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:#085577;border:none;border-radius:0;box-sizing:border-box;cursor:pointer;margin:-1px 0 0;outline:0;position:relative;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.dark .flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:#085577;outline:0;padding:0}.dark .flatpickr-weekdays{background:#085577;text-align:center;overflow:hidden;width:100%;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.dark .flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.dark span.flatpickr-weekday{cursor:default;font-size:90%;background:#085577;color:#fff;line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dark .dayContainer,.flatpickr-weeks{padding:1px 0 0}.dark .flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px;border:none}.dark .dayContainer{background:#1e3969;padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dark .dayContainer+.dark .dayContainer{-webkit-box-shadow:-1px 0 0 #20222c;box-shadow:-1px 0 0 #20222c}.dark .flatpickr-day{background:0 0;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(255,255,255,.95);cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.dark .flatpickr-day.inRange,.dark .flatpickr-day.nextMonthDay.inRange,.dark .flatpickr-day.nextMonthDay.today.inRange,.dark .flatpickr-day.nextMonthDay:focus,.dark .flatpickr-day.nextMonthDay:hover,.dark .flatpickr-day.prevMonthDay.inRange,.dark .flatpickr-day.prevMonthDay.today.inRange,.dark .flatpickr-day.prevMonthDay:focus,.dark .flatpickr-day.prevMonthDay:hover,.dark .flatpickr-day.today.inRange,.dark .flatpickr-day:focus,.dark .flatpickr-day:hover{cursor:pointer;outline:0;background:#646c8c;border-color:#646c8c}.dark .flatpickr-day.today{border-color:#eee}.dark .flatpickr-day.today:focus,.dark .flatpickr-day.today:hover{border-color:#eee;background:#eee;color:#3f4458}.dark .flatpickr-day.endRange,.dark .flatpickr-day.endRange.inRange,.dark .flatpickr-day.endRange.nextMonthDay,.dark .flatpickr-day.endRange.prevMonthDay,.dark .flatpickr-day.endRange:focus,.dark .flatpickr-day.endRange:hover,.dark .flatpickr-day.selected,.dark .flatpickr-day.selected.inRange,.dark .flatpickr-day.selected.nextMonthDay,.dark .flatpickr-day.selected.prevMonthDay,.dark .flatpickr-day.selected:focus,.dark .flatpickr-day.selected:hover,.dark .flatpickr-day.startRange,.dark .flatpickr-day.startRange.inRange,.dark .flatpickr-day.startRange.nextMonthDay,.dark .flatpickr-day.startRange.prevMonthDay,.dark .flatpickr-day.startRange:focus,.dark .flatpickr-day.startRange:hover{background:#40bb6b;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#40bb6b}.dark .flatpickr-day.endRange.startRange,.dark .flatpickr-day.selected.startRange,.dark .flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.dark .flatpickr-day.endRange.endRange,.dark .flatpickr-day.selected.endRange,.dark .flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.dark .flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n + 1)),.dark .flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n + 1)),.dark .flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n + 1)){-webkit-box-shadow:-10px 0 0 #80cbc4;box-shadow:-10px 0 0 #80cbc4}.dark .flatpickr-day.endRange.startRange.endRange,.dark .flatpickr-day.selected.startRange.endRange,.dark .flatpickr-day.startRange.startRange.endRange{border-radius:50px}.dark .flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #646c8c,5px 0 0 #646c8c;box-shadow:-5px 0 0 #646c8c,5px 0 0 #646c8c}.dark .flatpickr-day.flatpickr-disabled,.dark .flatpickr-day.flatpickr-disabled:hover,.dark .flatpickr-day.nextMonthDay,.dark .flatpickr-day.notAllowed,.dark .flatpickr-day.notAllowed.nextMonthDay,.dark .flatpickr-day.notAllowed.prevMonthDay,.dark .flatpickr-day.prevMonthDay{color:rgba(255,255,255,.3);background:0 0;border-color:transparent;cursor:default}.dark .flatpickr-day.flatpickr-disabled,.dark .flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(255,255,255,.1)}.dark .flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #80cbc4,5px 0 0 #80cbc4;box-shadow:-5px 0 0 #80cbc4,5px 0 0 #80cbc4}.dark .flatpickr-day.hidden{visibility:hidden}.dark .rangeMode .flatpickr-day{margin-top:1px}.dark .flatpickr-weekwrapper{float:left}.dark .flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #20222c;box-shadow:1px 0 0 #20222c}.dark .flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.dark .flatpickr-weekwrapper span.flatpickr-day,.dark .flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(255,255,255,.3);background:0 0;cursor:default;border:none}.dark .flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;border-bottom:none}.dark .flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.dark .flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.dark .flatpickr-time:after{content:"";display:table;clear:both}.dark .flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.dark .flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(255,255,255,.95)}.dark .flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:rgba(255,255,255,.95)}.dark .flatpickr-time.hasSeconds .numInputWrapper{width:26%}.dark .flatpickr-time.time24hr .numInputWrapper{width:49%}.dark .flatpickr-time input{background:0 0;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:rgba(255,255,255,.95);font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.dark .flatpickr-time input.flatpickr-hour{font-weight:700}.dark .flatpickr-time input.flatpickr-minute,.dark .flatpickr-time input.flatpickr-second{font-weight:400}.dark .flatpickr-time input:focus{outline:0;border:0}.dark .flatpickr-time .flatpickr-am-pm,.dark .flatpickr-time .flatpickr-time-separator{height:inherit;float:left;line-height:inherit;color:rgba(255,255,255,.95);font-weight:700;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.dark .flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.dark .flatpickr-time .flatpickr-am-pm:focus,.dark .flatpickr-time .flatpickr-am-pm:hover,.dark .flatpickr-time input:focus,.dark .flatpickr-time input:hover{background:#6a7395}.dark .flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}} \ No newline at end of file +.dark .flatpickr-calendar{background:#3f4458;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;-webkit-box-shadow:1px 0 0 #20222c,-1px 0 0 #20222c,0 1px 0 #20222c,0 -1px 0 #20222c,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 0 #20222c,-1px 0 0 #20222c,0 1px 0 #20222c,0 -1px 0 #20222c,0 3px 13px rgba(0,0,0,.08)}.dark .flatpickr-calendar.inline,.dark .flatpickr-calendar.open{opacity:1;max-height:640px;visibility:visible}.dark .flatpickr-calendar.open{display:inline-block;z-index:99999}.dark .flatpickr-calendar.animate.open{-webkit-animation:.3s cubic-bezier(.23,1,.32,1) fpFadeInDown;animation:.3s cubic-bezier(.23,1,.32,1) fpFadeInDown}.dark .flatpickr-calendar.inline{display:block;position:relative;top:2px}.dark .flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.dark .flatpickr-calendar.static.open{z-index:999;display:block}.dark .flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.dark .flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.dark .flatpickr-calendar .hasTime .dayContainer,.dark .flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.dark .flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.dark .flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #20222c}.dark .flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.dark .flatpickr-calendar:after,.dark .flatpickr-calendar:before{position:absolute;display:block;pointer-events:none;border:solid transparent;content:"";height:0;width:0;left:22px}.dark .flatpickr-calendar.arrowRight:after,.dark .flatpickr-calendar.arrowRight:before,.dark .flatpickr-calendar.rightMost:after,.dark .flatpickr-calendar.rightMost:before{left:auto;right:22px}.dark .flatpickr-calendar.arrowCenter:after,.dark .flatpickr-calendar.arrowCenter:before{left:50%;right:50%}.dark .flatpickr-calendar:before{border-width:5px;margin:0 -5px}.dark .flatpickr-calendar:after{border-width:4px;margin:0 -4px}.dark .flatpickr-calendar.arrowTop:after,.dark .flatpickr-calendar.arrowTop:before{bottom:100%}.dark .flatpickr-calendar.arrowTop:before{border-bottom-color:#20222c}.dark .flatpickr-calendar.arrowTop:after{border-bottom-color:#3f4458}.dark .flatpickr-calendar.arrowBottom:after,.dark .flatpickr-calendar.arrowBottom:before{top:100%}.dark .flatpickr-calendar.arrowBottom:before{border-top-color:#20222c}.dark .flatpickr-calendar.arrowBottom:after{border-top-color:#3f4458}.dark .flatpickr-calendar:focus,.dark .flatpickr-current-month .flatpickr-monthDropdown-months:active,.dark .flatpickr-current-month .flatpickr-monthDropdown-months:focus,.dark .flatpickr-current-month input.cur-year:focus,.dark .flatpickr-days:focus{outline:0}.dark .flatpickr-wrapper{position:relative;display:inline-block}.dark .flatpickr-months,.dark .flatpickr-weekdays{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.dark .flatpickr-months{display:flex}.dark .flatpickr-months .flatpickr-month{background:#085577;color:#fff;fill:#fff;height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.dark .flatpickr-months .flatpickr-next-month,.dark .flatpickr-months .flatpickr-prev-month{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:#fff;fill:#fff}.dark .flatpickr-months .flatpickr-next-month.flatpickr-disabled,.dark .flatpickr-months .flatpickr-prev-month.flatpickr-disabled{display:none}.dark .flatpickr-months .flatpickr-next-month i,.dark .flatpickr-months .flatpickr-prev-month i{position:relative}.dark .flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.dark .flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.dark .flatpickr-months .flatpickr-next-month.flatpickr-next-month,.dark .flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.dark .flatpickr-months .flatpickr-next-month:hover,.dark .flatpickr-months .flatpickr-prev-month:hover{color:#eee}.dark .flatpickr-months .flatpickr-prev-month:hover svg,.dark.flatpickr-months .flatpickr-next-month:hover svg{fill:#40bb6b}.dark .flatpickr-months .flatpickr-next-month svg,.dark .flatpickr-months .flatpickr-prev-month svg{width:14px;height:14px}.dark .flatpickr-months .flatpickr-next-month svg path,.dark .flatpickr-months .flatpickr-prev-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.dark .numInputWrapper{position:relative;height:auto}.dark .numInputWrapper input,.dark .numInputWrapper span{display:inline-block}.dark .numInputWrapper input{width:100%}.dark .numInputWrapper input::-ms-clear{display:none}.dark .numInputWrapper input::-webkit-inner-spin-button,.dark .numInputWrapper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.dark .numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(255,255,255,.15);-webkit-box-sizing:border-box;box-sizing:border-box}.dark .numInputWrapper span:hover{background:rgba(192,187,167,.1)}.dark .numInputWrapper span:active{background:rgba(192,187,167,.2)}.dark .numInputWrapper span:after{display:block;content:"";position:absolute}.dark .numInputWrapper span.arrowUp{top:0;border-bottom:0}.dark .numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(255,255,255,.6);top:26%}.dark .numInputWrapper span.arrowDown{top:50%}.dark .numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(255,255,255,.6);top:40%}.dark .numInputWrapper span svg{width:inherit;height:auto}.dark .numInputWrapper span svg path{fill:rgba(255,255,255,0.5)}.dark .flatpickr-current-month .flatpickr-monthDropdown-months:hover,.dark .flatpickr-current-month span.cur-month:hover,.dark .numInputWrapper:hover{background:rgba(192,187,167,.05)}.dark .numInputWrapper:hover span{opacity:1}.dark .flatpickr-current-month{font-size:135%;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.dark .flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.dark .flatpickr-current-month .flatpickr-monthDropdown-months,.dark .flatpickr-current-month input.cur-year{color:inherit;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;padding:0 0 0 .5ch;vertical-align:initial}.dark .flatpickr-current-month .numInputWrapper{width:6ch;display:inline-block}.dark .flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#fff}.dark .flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#fff}.dark .flatpickr-current-month input.cur-year{background:0 0;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:text;margin:0;display:inline-block;border:0;border-radius:0;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.dark .flatpickr-current-month input.cur-year[disabled],.dark .flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(255,255,255,.5);background:0 0;pointer-events:none}.dark .flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:#085577;border:none;border-radius:0;box-sizing:border-box;cursor:pointer;margin:-1px 0 0;outline:0;position:relative;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.dark .flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:#085577;outline:0;padding:0}.dark .flatpickr-weekdays{background:#085577;text-align:center;overflow:hidden;width:100%;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.dark .flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.dark span.flatpickr-weekday{cursor:default;font-size:90%;background:#085577;color:#fff;line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dark .dayContainer,.flatpickr-weeks{padding:1px 0 0}.dark .flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px;border:none}.dark .dayContainer{background:#1e3969;padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dark .dayContainer+.dark .dayContainer{-webkit-box-shadow:-1px 0 0 #20222c;box-shadow:-1px 0 0 #20222c}.dark .flatpickr-day{background:0 0;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(255,255,255,.95);cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.dark .flatpickr-day.inRange,.dark .flatpickr-day.nextMonthDay.inRange,.dark .flatpickr-day.nextMonthDay.today.inRange,.dark .flatpickr-day.nextMonthDay:focus,.dark .flatpickr-day.nextMonthDay:hover,.dark .flatpickr-day.prevMonthDay.inRange,.dark .flatpickr-day.prevMonthDay.today.inRange,.dark .flatpickr-day.prevMonthDay:focus,.dark .flatpickr-day.prevMonthDay:hover,.dark .flatpickr-day.today.inRange,.dark .flatpickr-day:focus,.dark .flatpickr-day:hover{cursor:pointer;outline:0;background:#646c8c;border-color:#646c8c}.dark .flatpickr-day.today{border-color:#eee}.dark .flatpickr-day.today:focus,.dark .flatpickr-day.today:hover{border-color:#eee;background:#eee;color:#3f4458}.dark .flatpickr-day.endRange,.dark .flatpickr-day.endRange.inRange,.dark .flatpickr-day.endRange.nextMonthDay,.dark .flatpickr-day.endRange.prevMonthDay,.dark .flatpickr-day.endRange:focus,.dark .flatpickr-day.endRange:hover,.dark .flatpickr-day.selected,.dark .flatpickr-day.selected.inRange,.dark .flatpickr-day.selected.nextMonthDay,.dark .flatpickr-day.selected.prevMonthDay,.dark .flatpickr-day.selected:focus,.dark .flatpickr-day.selected:hover,.dark .flatpickr-day.startRange,.dark .flatpickr-day.startRange.inRange,.dark .flatpickr-day.startRange.nextMonthDay,.dark .flatpickr-day.startRange.prevMonthDay,.dark .flatpickr-day.startRange:focus,.dark .flatpickr-day.startRange:hover{background:#40bb6b;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#40bb6b}.dark .flatpickr-day.endRange.startRange,.dark .flatpickr-day.selected.startRange,.dark .flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.dark .flatpickr-day.endRange.endRange,.dark .flatpickr-day.selected.endRange,.dark .flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.dark .flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n + 1)),.dark .flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n + 1)),.dark .flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n + 1)){-webkit-box-shadow:-10px 0 0 #80cbc4;box-shadow:-10px 0 0 #80cbc4}.dark .flatpickr-day.endRange.startRange.endRange,.dark .flatpickr-day.selected.startRange.endRange,.dark .flatpickr-day.startRange.startRange.endRange{border-radius:50px}.dark .flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #646c8c,5px 0 0 #646c8c;box-shadow:-5px 0 0 #646c8c,5px 0 0 #646c8c}.dark .flatpickr-day.flatpickr-disabled,.dark .flatpickr-day.flatpickr-disabled:hover,.dark .flatpickr-day.nextMonthDay,.dark .flatpickr-day.notAllowed,.dark .flatpickr-day.notAllowed.nextMonthDay,.dark .flatpickr-day.notAllowed.prevMonthDay,.dark .flatpickr-day.prevMonthDay{color:rgba(255,255,255,.3);background:0 0;border-color:transparent;cursor:default}.dark .flatpickr-day.flatpickr-disabled,.dark .flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(255,255,255,.1)}.dark .flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #80cbc4,5px 0 0 #80cbc4;box-shadow:-5px 0 0 #80cbc4,5px 0 0 #80cbc4}.dark .flatpickr-day.hidden{visibility:hidden}.dark .rangeMode .flatpickr-day{margin-top:1px}.dark .flatpickr-weekwrapper{float:left}.dark .flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #20222c;box-shadow:1px 0 0 #20222c}.dark .flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.dark .flatpickr-weekwrapper span.flatpickr-day,.dark .flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(255,255,255,.3);background:0 0;cursor:default;border:none}.dark .flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;border-bottom:none}.dark .flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.dark .flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.dark .flatpickr-time:after{content:"";display:table;clear:both}.dark .flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.dark .flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(255,255,255,.95)}.dark .flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:rgba(255,255,255,.95)}.dark .flatpickr-time.hasSeconds .numInputWrapper{width:26%}.dark .flatpickr-time.time24hr .numInputWrapper{width:49%}.dark .flatpickr-time input{background:0 0;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:rgba(255,255,255,.95);font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.dark .flatpickr-time input.flatpickr-hour{font-weight:700}.dark .flatpickr-time input.flatpickr-minute,.dark .flatpickr-time input.flatpickr-second{font-weight:400}.dark .flatpickr-time input:focus{outline:0;border:0}.dark .flatpickr-time .flatpickr-am-pm,.dark .flatpickr-time .flatpickr-time-separator{height:inherit;float:left;line-height:inherit;color:rgba(255,255,255,.95);font-weight:700;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.dark .flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.dark .flatpickr-time .flatpickr-am-pm:focus,.dark .flatpickr-time .flatpickr-am-pm:hover,.dark .flatpickr-time input:focus,.dark .flatpickr-time input:hover{background:#6a7395}.dark .flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}} diff --git a/src/ui/static/js/global.js b/src/ui/static/js/global.js index c9e946300..449ca8848 100644 --- a/src/ui/static/js/global.js +++ b/src/ui/static/js/global.js @@ -78,7 +78,7 @@ class News { news.photo.url, news.excerpt, news.tags, - news.date + news.date, ); let cleanHTML = DOMPurify.sanitize(cardHTML); //add to DOM @@ -205,7 +205,7 @@ class darkMode { }; const send = await fetch( `${location.href.split("/").slice(0, -1).join("/")}/darkmode`, - data + data, ); } } @@ -245,7 +245,7 @@ class FlashMsg { flashEl.remove(); //update count this.flashCount.textContent = document.querySelectorAll( - "[data-flash-message]" + "[data-flash-message]", ).length; } } catch (err) {} @@ -338,7 +338,7 @@ class Banner { this.bannerEl.querySelector( `[role="listitem"][data-id="${ +visibleEl.getAttribute("data-id") + 1 - }"]` + }"]`, ) || this.bannerEl.querySelector(`[role="listitem"][data-id="0"]`); // Hide current one @@ -426,7 +426,7 @@ class Clipboard { if (result.state === "granted" || result.state === "prompt") { /* write to the clipboard now */ const copyEl = document.querySelector( - e.target.getAttribute("data-clipboard-target") + e.target.getAttribute("data-clipboard-target"), ); copyEl.select(); @@ -454,13 +454,13 @@ const setMenu = new Menu(); const setNewsSidebar = new Sidebar( "[data-sidebar-info]", "[data-sidebar-info-open]", - "[data-sidebar-info-close]" + "[data-sidebar-info-close]", ); const setFlashSidebar = new Sidebar( "[data-flash-sidebar]", "[data-flash-sidebar-open]", - "[data-flash-sidebar-close]" + "[data-flash-sidebar-close]", ); const setClipboard = new Clipboard(); diff --git a/src/ui/static/js/profile.js b/src/ui/static/js/profile.js index 262e0cd48..34dcb83a6 100644 --- a/src/ui/static/js/profile.js +++ b/src/ui/static/js/profile.js @@ -45,7 +45,7 @@ class SubmitProfile { "focus:valid:!ring-red-500", "active:!border-red-500", "active:valid:!border-red-500", - "valid:!border-red-500" + "valid:!border-red-500", ); this.pwAlertEl.classList.add("opacity-0"); this.pwAlertEl.setAttribute("aria-hidden", "true"); @@ -59,7 +59,7 @@ class SubmitProfile { "focus:valid:!ring-red-500", "active:!border-red-500", "active:valid:!border-red-500", - "valid:!border-red-500" + "valid:!border-red-500", ); this.pwAlertEl.classList.remove("opacity-0"); this.pwAlertEl.setAttribute("aria-hidden", "false"); @@ -77,14 +77,14 @@ class PwBtn { const passwordContainer = e.target.closest("[data-input-group]"); const inpEl = passwordContainer.querySelector("input"); const invBtn = passwordContainer.querySelector( - '[data-setting-password="invisible"]' + '[data-setting-password="invisible"]', ); const visBtn = passwordContainer.querySelector( - '[data-setting-password="visible"]' + '[data-setting-password="visible"]', ); inpEl.setAttribute( "type", - inpEl.getAttribute("type") === "password" ? "text" : "password" + inpEl.getAttribute("type") === "password" ? "text" : "password", ); if (inpEl.getAttribute("type") === "password") { diff --git a/src/ui/utils.py b/src/ui/utils.py index 6df92c1cb..3c5032b99 100644 --- a/src/ui/utils.py +++ b/src/ui/utils.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 from base64 import b64encode from io import BytesIO diff --git a/tests/ui/main.py b/tests/ui/main.py index 0c42a57a3..a6019087e 100644 --- a/tests/ui/main.py +++ b/tests/ui/main.py @@ -1483,12 +1483,9 @@ location /hello { username_input.send_keys("admin2") password_input.send_keys("S$cr3tP@ssw0rd") - access_page( - driver, - driver_wait, - "//button[@value='login']", - "profile", - ) + access_page(driver, driver_wait, "//button[@value='login']", "home") + + access_page(driver, driver_wait, "/html/body/aside[1]/div[1]/div[2]/ul/li[10]/a", "profile") username_input = safe_get_element(driver, By.ID, "admin_username") @@ -1543,12 +1540,9 @@ location /hello { username_input.send_keys("admin2") password_input.send_keys("P@ssw0rd") - access_page( - driver, - driver_wait, - "//button[@value='login']", - "profile", - ) + access_page(driver, driver_wait, "//button[@value='login']", "home") + + access_page(driver, driver_wait, "/html/body/aside[1]/div[1]/div[2]/ul/li[10]/a", "profile") print("Successfully logged in with new password, trying 2FA ...", flush=True) @@ -1584,12 +1578,7 @@ location /hello { password_input.send_keys("P@ssw0rd") - access_page( - driver, - driver_wait, - "//button[@id='totp-button' and @class='valid-btn']", - "profile", - ) + access_page(driver, driver_wait, "//button[@id='totp-button' and @class='valid-btn']", "profile") assert_button_click(driver, "//button[@data-tab-handler='totp']")