From f97bd549dacf0261531f3503a3d94cbea4310316 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E5=BC=BA?= <357099073@qq.com> Date: Wed, 24 Dec 2025 17:46:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=AB=99=E7=82=B9=E8=B5=84?= =?UTF-8?q?=E8=AE=AF=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/.env | 2 + frontend/package-lock.json | 587 +- frontend/package.json | 4 +- frontend/src/api/README.md | 369 + frontend/src/api/api.ts | 6 + frontend/src/api/axios.ts | 70 + frontend/src/api/menu.ts | 12 + frontend/src/api/siteInformation.ts | 21 + frontend/src/api/status.ts | 42 + frontend/src/assets/css/bootstrap.min.css | 13870 ++++++++++++++++ frontend/src/assets/imgs/avatar.png | Bin 0 -> 28332 bytes frontend/src/assets/imgs/footer-bg-1.png | Bin 0 -> 10403 bytes frontend/src/assets/imgs/logo-l-w.png | Bin 0 -> 15967 bytes frontend/src/assets/imgs/logo-light.png | Bin 0 -> 6857 bytes frontend/src/assets/imgs/logo.png | Bin 0 -> 7983 bytes frontend/src/assets/imgs/wechat_qrcode.jpg | Bin 0 -> 27768 bytes frontend/src/assets/less/global.less | 126 + .../assets/{scss/main.scss => less/main.less} | 0 frontend/src/components.d.ts | 26 + frontend/src/main.ts | 2 +- frontend/src/router/index.ts | 54 +- frontend/src/style.css | 79 - frontend/src/views/components/footer.vue | 282 + frontend/src/views/components/header.vue | 291 + frontend/src/views/downloadGames/index.vue | 66 + frontend/src/views/downloadPrograms/index.vue | 66 + frontend/src/views/index/index.vue | 70 +- frontend/src/views/officeResources/index.vue | 66 + frontend/src/views/siteInformation/index.vue | 422 + .../src/views/technicalArticles/index.vue | 66 + frontend/tsconfig.app.json | 5 +- frontend/vite.config.ts | 40 +- 32 files changed, 16521 insertions(+), 123 deletions(-) create mode 100644 frontend/.env create mode 100644 frontend/src/api/README.md create mode 100644 frontend/src/api/api.ts create mode 100644 frontend/src/api/axios.ts create mode 100644 frontend/src/api/menu.ts create mode 100644 frontend/src/api/siteInformation.ts create mode 100644 frontend/src/api/status.ts create mode 100644 frontend/src/assets/css/bootstrap.min.css create mode 100644 frontend/src/assets/imgs/avatar.png create mode 100644 frontend/src/assets/imgs/footer-bg-1.png create mode 100644 frontend/src/assets/imgs/logo-l-w.png create mode 100644 frontend/src/assets/imgs/logo-light.png create mode 100644 frontend/src/assets/imgs/logo.png create mode 100644 frontend/src/assets/imgs/wechat_qrcode.jpg create mode 100644 frontend/src/assets/less/global.less rename frontend/src/assets/{scss/main.scss => less/main.less} (100%) create mode 100644 frontend/src/components.d.ts delete mode 100644 frontend/src/style.css create mode 100644 frontend/src/views/components/footer.vue create mode 100644 frontend/src/views/components/header.vue create mode 100644 frontend/src/views/downloadGames/index.vue create mode 100644 frontend/src/views/downloadPrograms/index.vue create mode 100644 frontend/src/views/officeResources/index.vue create mode 100644 frontend/src/views/siteInformation/index.vue create mode 100644 frontend/src/views/technicalArticles/index.vue diff --git a/frontend/.env b/frontend/.env new file mode 100644 index 0000000..55794e0 --- /dev/null +++ b/frontend/.env @@ -0,0 +1,2 @@ +# API 基础地址 +VITE_API_DOMAIN=http://localhost:8000 \ No newline at end of file diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 10d1a6a..87da438 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,9 +8,9 @@ "name": "frontend", "version": "0.0.0", "dependencies": { + "axios": "^1.13.2", "element-plus": "^2.13.0", "pinia": "^3.0.4", - "sass": "^1.97.1", "unplugin-auto-import": "^20.3.0", "unplugin-vue-components": "^30.0.0", "vue": "^3.5.24", @@ -20,6 +20,8 @@ "@types/node": "^24.10.1", "@vitejs/plugin-vue": "^6.0.1", "@vue/tsconfig": "^0.8.1", + "less": "^4.5.1", + "less-loader": "^12.3.0", "typescript": "~5.9.3", "vite": "^7.2.4", "vue-tsc": "^3.1.4" @@ -605,9 +607,11 @@ "version": "2.5.1", "resolved": "https://registry.npmmirror.com/@parcel/watcher/-/watcher-2.5.1.tgz", "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { "detect-libc": "^1.0.3", "is-glob": "^4.0.3", @@ -644,11 +648,13 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "android" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -664,11 +670,13 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "darwin" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -684,11 +692,13 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "darwin" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -704,11 +714,13 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "freebsd" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -724,11 +736,13 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -744,11 +758,13 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -764,11 +780,13 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -784,11 +802,13 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -804,11 +824,13 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -824,11 +846,13 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -844,11 +868,13 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "win32" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -864,11 +890,13 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "win32" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -884,11 +912,13 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "win32" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -1584,6 +1614,23 @@ "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==", "license": "MIT" }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.13.2", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.13.2.tgz", + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/birpc": { "version": "2.9.0", "resolved": "https://registry.npmmirror.com/birpc/-/birpc-2.9.0.tgz", @@ -1597,8 +1644,10 @@ "version": "3.0.3", "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { "fill-range": "^7.1.1" }, @@ -1606,6 +1655,19 @@ "node": ">=8" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/chokidar": { "version": "4.0.3", "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-4.0.3.tgz", @@ -1621,6 +1683,18 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/confbox": { "version": "0.2.2", "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.2.2.tgz", @@ -1671,12 +1745,23 @@ } } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, "license": "Apache-2.0", "optional": true, + "peer": true, "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -1684,6 +1769,20 @@ "node": ">=0.10" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/element-plus": { "version": "2.13.0", "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.13.0.tgz", @@ -1721,6 +1820,65 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/esbuild": { "version": "0.27.2", "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.27.2.tgz", @@ -1808,8 +1966,10 @@ "version": "7.1.1", "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1817,6 +1977,42 @@ "node": ">=8" } }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", @@ -1832,24 +2028,162 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hookable": { "version": "5.5.3", "resolved": "https://registry.npmmirror.com/hookable/-/hookable-5.5.3.tgz", "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", "license": "MIT" }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/immutable": { "version": "5.1.4", "resolved": "https://registry.npmmirror.com/immutable/-/immutable-5.1.4.tgz", "integrity": "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==", - "license": "MIT" + "dev": true, + "license": "MIT", + "optional": true, + "peer": true }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, "license": "MIT", "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -1858,8 +2192,10 @@ "version": "4.0.3", "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -1871,8 +2207,10 @@ "version": "7.0.0", "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "license": "MIT", "optional": true, + "peer": true, "engines": { "node": ">=0.12.0" } @@ -1895,6 +2233,81 @@ "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", "license": "MIT" }, + "node_modules/less": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/less/-/less-4.5.1.tgz", + "integrity": "sha512-UKgI3/KON4u6ngSsnDADsUERqhZknsVZbnuzlRZXLQCmfC/MDld42fTydUE9B+Mla1AL6SJ/Pp6SlEFi/AVGfw==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "12.3.0", + "resolved": "https://registry.npmmirror.com/less-loader/-/less-loader-12.3.0.tgz", + "integrity": "sha512-0M6+uYulvYIWs52y0LqN4+QM9TqWAohYSNTo4htE8Z7Cn3G/qQMEmktfHmyJT23k+20kU9zHH2wrfFXkxNLtVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/less/node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/less/node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true, + "license": "MIT" + }, "node_modules/local-pkg": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-1.1.2.tgz", @@ -1944,6 +2357,30 @@ "@jridgewell/sourcemap-codec": "^1.5.5" } }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/memoize-one": { "version": "6.0.0", "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz", @@ -1954,8 +2391,10 @@ "version": "4.0.8", "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -1968,8 +2407,10 @@ "version": "2.3.1", "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "license": "MIT", "optional": true, + "peer": true, "engines": { "node": ">=8.6" }, @@ -1977,6 +2418,41 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mitt": { "version": "3.0.1", "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz", @@ -2043,12 +2519,32 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, "node_modules/node-addon-api": { "version": "7.1.1", "resolved": "https://registry.npmmirror.com/node-addon-api/-/node-addon-api-7.1.1.tgz", "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, "license": "MIT", - "optional": true + "optional": true, + "peer": true }, "node_modules/normalize-wheel-es": { "version": "1.2.0", @@ -2056,6 +2552,16 @@ "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==", "license": "BSD-3-Clause" }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", @@ -2093,6 +2599,17 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, "node_modules/pinia": { "version": "3.0.4", "resolved": "https://registry.npmmirror.com/pinia/-/pinia-3.0.4.tgz", @@ -2162,6 +2679,20 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "license": "MIT", + "optional": true + }, "node_modules/quansync": { "version": "0.2.11", "resolved": "https://registry.npmmirror.com/quansync/-/quansync-0.2.11.tgz", @@ -2239,11 +2770,22 @@ "fsevents": "~2.3.2" } }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT", + "optional": true + }, "node_modules/sass": { "version": "1.97.1", "resolved": "https://registry.npmmirror.com/sass/-/sass-1.97.1.tgz", "integrity": "sha512-uf6HoO8fy6ClsrShvMgaKUn14f2EHQLQRtpsZZLeU/Mv0Q1K5P0+x2uvH6Cub39TVVbWNSrraUhDAoFph6vh0A==", + "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", @@ -2259,12 +2801,42 @@ "@parcel/watcher": "^2.4.1" } }, + "node_modules/sax": { + "version": "1.4.3", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.4.3.tgz", + "integrity": "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==", + "dev": true, + "license": "BlueOak-1.0.0", + "optional": true + }, "node_modules/scule": { "version": "1.3.0", "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz", "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", "license": "MIT" }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz", @@ -2327,8 +2899,10 @@ "version": "5.0.1", "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { "is-number": "^7.0.0" }, @@ -2336,6 +2910,13 @@ "node": ">=8.0" } }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/typescript": { "version": "5.9.3", "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.9.3.tgz", diff --git a/frontend/package.json b/frontend/package.json index 4c451b1..ab8c90d 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -9,9 +9,9 @@ "preview": "vite preview" }, "dependencies": { + "axios": "^1.13.2", "element-plus": "^2.13.0", "pinia": "^3.0.4", - "sass": "^1.97.1", "unplugin-auto-import": "^20.3.0", "unplugin-vue-components": "^30.0.0", "vue": "^3.5.24", @@ -21,6 +21,8 @@ "@types/node": "^24.10.1", "@vitejs/plugin-vue": "^6.0.1", "@vue/tsconfig": "^0.8.1", + "less": "^4.5.1", + "less-loader": "^12.3.0", "typescript": "~5.9.3", "vite": "^7.2.4", "vue-tsc": "^3.1.4" diff --git a/frontend/src/api/README.md b/frontend/src/api/README.md new file mode 100644 index 0000000..45d8510 --- /dev/null +++ b/frontend/src/api/README.md @@ -0,0 +1,369 @@ +# API 接口管理使用说明 + +## 📁 文件结构 + +``` +src/api/ +├── axios.ts # 🚀 Axios 配置、拦截器和通用请求方法 +├── api.ts # 📋 具体 API 接口定义和管理 +├── status.ts # ⚠️ HTTP 状态码处理 +└── README.md # 📖 使用说明(本文档) +``` + +## 🚀 快速开始 + +### 1. 环境变量配置 + +在项目根目录创建或编辑 `.env` 文件: + +```env +# API 基础地址 +VITE_API_DOMAIN=http://localhost:8080/api +``` + +### 2. 在组件中使用 API + +```typescript +// 导入 API 服务 +import { UserService, landRelevant } from '@/api/api' + +// 在组件中使用 +const handleLogin = async () => { + try { + const response = await UserService.login1({ + username: 'admin', + password: '123456' + }) + console.log('登录成功:', response.data) + } catch (error) { + console.error('登录失败:', error) + } +} + +const getLandList = async () => { + try { + const response = await landRelevant.landList({ + page: 1, + size: 10 + }) + console.log('土地列表:', response.data) + } catch (error) { + console.error('获取列表失败:', error) + } +} +``` + +## 📋 详细说明 + +### axios.ts - HTTP 请求核心配置 + +#### 🔧 主要功能: +- **超时配置**:60秒超时 +- **基础 URL**:通过环境变量配置 +- **请求拦截器**:自动添加请求头和 token +- **响应拦截器**:统一错误处理 +- **通用请求方法**:封装 GET/POST 请求 + +#### 📝 配置详情: + +```typescript +// 超时时间 +axios.defaults.timeout = 60000 + +// 基础 URL +axios.defaults.baseURL = import.meta.env.VITE_API_DOMAIN + +// 请求头配置 +config.headers = { + "Content-Type": "application/json;charset=UTF-8", + token: "80c483d59ca86ad0393cf8a98416e2a1" +} +``` + +#### 🎯 使用通用请求方法: + +```typescript +import { request } from '@/api/axios' + +// GET 请求 +const getData = await request('/api/data', { id: 1 }, 'GET') + +// POST 请求 +const postData = await request('/api/submit', { name: 'test' }, 'POST') +``` + +### api.ts - 业务接口管理 + +#### 🏗️ 架构设计: +- **类化管理**:按业务模块划分服务类 +- **静态方法**:所有接口方法都是静态方法 +- **统一导入**:所有接口都通过 `request` 方法调用 + +#### 📚 当前接口模块: + +##### UserService - 用户相关接口 +```typescript +// 用户登录相关接口 +UserService.login1(params) // 接口一 +UserService.login2(params) // 接口二 +UserService.login3(params) // 接口三 +``` + +##### landRelevant - 土地相关接口 +```typescript +// 获取土地列表 +landRelevant.landList(params) +``` + +##### menu - 菜单相关接口 +```typescript +// 获取头部菜单 +menu.getHeaderMenu() +``` + +**返回数据结构:** +```json +{ + "code": 0, + "msg": "获取主菜单成功", + "data": [ + { + "id": 1, + "parent_id": 0, + "title": "站点资讯", + "src": "/articles", + "icon": "", + "sort": 0, + "children": [] + } + ] +} +``` + +#### ➕ 添加新的接口: + +```typescript +// 1. 在现有类中添加方法 +export class UserService { + // 添加新方法 + static async getUserInfo(params) { + return request("/user/info", params, "get"); + } +} + +// 2. 创建新的服务类 +export class ProductService { + // 产品相关接口 + static async getProductList(params) { + return request("/product/list", params, "get"); + } + + static async createProduct(params) { + return request("/product/create", params, "post"); + } +} +``` + +### status.ts - 状态码处理 + +#### 🎯 功能说明: +- **HTTP 状态码映射**:将状态码转换为用户友好的错误信息 +- **统一错误提示**:所有 HTTP 错误都有对应的中文提示 + +#### 📊 支持的状态码: + +| 状态码 | 说明 | 提示信息 | +|--------|------|----------| +| 400 | 请求错误 | 请求错误(400) | +| 401 | 未授权 | 未授权,请重新登录(401) | +| 403 | 拒绝访问 | 拒绝访问(403) | +| 404 | 请求出错 | 请求出错(404) | +| 408 | 请求超时 | 请求超时(408) | +| 500 | 服务器错误 | 服务器错误(500) | +| 501 | 服务未实现 | 服务未实现(501) | +| 502 | 网络错误 | 网络错误(502) | +| 503 | 服务不可用 | 服务不可用(503) | +| 504 | 网络超时 | 网络超时(504) | +| 505 | HTTP版本不受支持 | HTTP版本不受支持(505) | + +## 💡 使用示例 + +### 在 Vue 组件中使用 + +```vue + + + +``` + +### 在组合式函数中使用 + +```typescript +// composables/useUser.ts +import { ref } from 'vue' +import { UserService } from '@/api/api' + +export function useUser() { + const userInfo = ref(null) + const loading = ref(false) + + const login = async (credentials) => { + loading.value = true + try { + const response = await UserService.login1(credentials) + userInfo.value = response.data.user + return response.data + } catch (error) { + throw error + } finally { + loading.value = false + } + } + + const logout = () => { + userInfo.value = null + // 清除本地存储等 + } + + return { + userInfo, + loading, + login, + logout + } +} +``` + +## ⚠️ 注意事项 + +### 1. 错误处理 +- 所有接口调用都需要 try-catch 包装 +- 使用 Element Plus 的 ElMessage 显示错误信息 + +### 2. 环境变量 +- 确保 `.env` 文件中配置了 `VITE_API_DOMAIN` +- 不同环境可以使用不同的配置文件 + +### 3. Token 管理 +- 当前代码中 token 是硬编码的 +- 实际项目中应该从 localStorage 或 Vuex/Pinia 中获取 + +### 4. 类型安全 +- 建议为请求参数和响应数据添加 TypeScript 类型定义 +- 可以创建 `types.ts` 文件定义接口类型 + +## 🔧 扩展指南 + +### 添加新的业务模块 + +```typescript +// 1. 在 api.ts 中添加新的服务类 +export class OrderService { + static async getOrderList(params) { + return request("/order/list", params, "get"); + } + + static async createOrder(params) { + return request("/order/create", params, "post"); + } +} + +// 2. 在组件中导入使用 +import { OrderService } from '@/api/api' +``` + +### 自定义请求配置 + +```typescript +// 如果需要特殊的请求配置,可以直接使用 axios +import axios from '@/api/axios' + +// 自定义配置的请求 +const customRequest = await axios({ + method: 'POST', + url: '/custom/api', + data: params, + timeout: 30000, + headers: { + 'Custom-Header': 'value' + } +}) +``` + +## 🎯 最佳实践 + +1. **统一错误处理**:在组件中统一处理接口错误 +2. **Loading 状态**:显示加载状态提升用户体验 +3. **数据缓存**:对不变数据使用缓存策略 +4. **接口文档**:为每个接口方法添加 JSDoc 注释 +5. **模块化**:按业务领域划分接口模块 + +## 📞 技术支持 + +如有问题,请检查: +1. 环境变量配置是否正确 +2. 网络连接是否正常 +3. 后端接口是否可用 +4. 控制台是否有详细错误信息 diff --git a/frontend/src/api/api.ts b/frontend/src/api/api.ts new file mode 100644 index 0000000..d8a09f9 --- /dev/null +++ b/frontend/src/api/api.ts @@ -0,0 +1,6 @@ +//进行接口API的统一管理 +import { request } from "./axios"; + +export class UserService { + +} \ No newline at end of file diff --git a/frontend/src/api/axios.ts b/frontend/src/api/axios.ts new file mode 100644 index 0000000..149465b --- /dev/null +++ b/frontend/src/api/axios.ts @@ -0,0 +1,70 @@ +//封装请求配置拦截器 +import axios from "axios"; +import { showMessage } from "./status"; // 引入状态码文件 +import { ElMessage } from "element-plus"; + +// 设置接口超时时间 +axios.defaults.timeout = 60000; + +// @ts-ignore +axios.defaults.baseURL = import.meta.env.VITE_API_DOMAIN; + +//http request 拦截器 +axios.interceptors.request.use( + (config) => { + // 配置请求头 + config.headers.set("Content-Type", "application/json;charset=UTF-8"); + return config; + }, + (error) => { + return Promise.reject(error); + } +); + +//http response 拦截器 +axios.interceptors.response.use( + (response) => { + return response; + }, + (error) => { + const { response } = error; + if (response) { + // 请求已发出,但是不在2xx的范围 + showMessage(response.status); // 传入响应码,匹配响应码对应信息 + return Promise.reject(response.data); + } else { + ElMessage.warning("网络连接异常,请稍后再试!"); + } + } +); + +// 封装 GET POST 请求并导出 +export function request(url = "", params = {}, type = "POST") { + //设置 url params type 的默认值 + return new Promise((resolve, reject) => { + let promise; + if (type.toUpperCase() === "GET") { + promise = axios({ + url, + params, + }); + } else if (type.toUpperCase() === "POST") { + promise = axios({ + method: "POST", + url, + data: params, + }); + } else { + reject(new Error(`不支持的请求类型: ${type}`)); + return; + } + //处理返回 + promise + .then((res) => { + resolve(res); + }) + .catch((err) => { + reject(err); + }); + }); +} diff --git a/frontend/src/api/menu.ts b/frontend/src/api/menu.ts new file mode 100644 index 0000000..310f043 --- /dev/null +++ b/frontend/src/api/menu.ts @@ -0,0 +1,12 @@ +//进行接口API的统一管理 +import { request } from "./axios"; + +export class menu { + /** + * @description 获取header菜单 + * @return {Promise} 返回请求结果 + */ + static async getHeaderMenu() { + return request("/index/index/getmainmenu", "get"); + } +} diff --git a/frontend/src/api/siteInformation.ts b/frontend/src/api/siteInformation.ts new file mode 100644 index 0000000..a74a3d7 --- /dev/null +++ b/frontend/src/api/siteInformation.ts @@ -0,0 +1,21 @@ +//进行接口API的统一管理 +import { request } from "./axios"; + +export class siteInformation { + /** + * @description 获取siteinformation分类 + * @return {Promise} 返回请求结果 + */ + static async getSiteInformationCategory() { + return request("/index/articles/getSiteInformationCategory", "get"); + } + + /** + * @description 获取siteinformation文章列表 + * @param {string} cateid - 分类ID + * @return {Promise} 返回请求结果 + */ + static async getSiteInformationLists(cateid: string) { + return request("/index/articles/getSiteInformationLists", { cateid }, "get"); + } +} diff --git a/frontend/src/api/status.ts b/frontend/src/api/status.ts new file mode 100644 index 0000000..134bc90 --- /dev/null +++ b/frontend/src/api/status.ts @@ -0,0 +1,42 @@ +//管理接口返回状态码 +export const showMessage = (status: number | string): string => { + let message: string = ""; + switch (status) { + case 400: + message = "请求错误(400)"; + break; + case 401: + message = "未授权,请重新登录(401)"; + break; + case 403: + message = "拒绝访问(403)"; + break; + case 404: + message = "请求出错(404)"; + break; + case 408: + message = "请求超时(408)"; + break; + case 500: + message = "服务器错误(500)"; + break; + case 501: + message = "服务未实现(501)"; + break; + case 502: + message = "网络错误(502)"; + break; + case 503: + message = "服务不可用(503)"; + break; + case 504: + message = "网络超时(504)"; + break; + case 505: + message = "HTTP版本不受支持(505)"; + break; + default: + message = `连接出错(${status})!`; + } + return `${message},请检查网络或联系管理员!`; +}; diff --git a/frontend/src/assets/css/bootstrap.min.css b/frontend/src/assets/css/bootstrap.min.css new file mode 100644 index 0000000..d0114f3 --- /dev/null +++ b/frontend/src/assets/css/bootstrap.min.css @@ -0,0 +1,13870 @@ +@charset "UTF-8"; + +/*! + * Bootstrap v5.3.6 (https://getbootstrap.com/) + * Copyright 2011-2025 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +:root, +[data-bs-theme=light] { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-black: #000; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9ecef; + --bs-gray-300: #dee2e6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #212529; + --bs-primary: #0d6efd; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-primary-rgb: 13, 110, 253; + --bs-secondary-rgb: 108, 117, 125; + --bs-success-rgb: 25, 135, 84; + --bs-info-rgb: 13, 202, 240; + --bs-warning-rgb: 255, 193, 7; + --bs-danger-rgb: 220, 53, 69; + --bs-light-rgb: 248, 249, 250; + --bs-dark-rgb: 33, 37, 41; + --bs-primary-text-emphasis: #052c65; + --bs-secondary-text-emphasis: #2b2f32; + --bs-success-text-emphasis: #0a3622; + --bs-info-text-emphasis: #055160; + --bs-warning-text-emphasis: #664d03; + --bs-danger-text-emphasis: #58151c; + --bs-light-text-emphasis: #495057; + --bs-dark-text-emphasis: #495057; + --bs-primary-bg-subtle: #cfe2ff; + --bs-secondary-bg-subtle: #e2e3e5; + --bs-success-bg-subtle: #d1e7dd; + --bs-info-bg-subtle: #cff4fc; + --bs-warning-bg-subtle: #fff3cd; + --bs-danger-bg-subtle: #f8d7da; + --bs-light-bg-subtle: #fcfcfd; + --bs-dark-bg-subtle: #ced4da; + --bs-primary-border-subtle: #9ec5fe; + --bs-secondary-border-subtle: #c4c8cb; + --bs-success-border-subtle: #a3cfbb; + --bs-info-border-subtle: #9eeaf9; + --bs-warning-border-subtle: #ffe69c; + --bs-danger-border-subtle: #f1aeb5; + --bs-light-border-subtle: #e9ecef; + --bs-dark-border-subtle: #adb5bd; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: var(--bs-font-sans-serif); + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #212529; + --bs-body-color-rgb: 33, 37, 41; + /* --bs-body-bg: #fff; */ + --bs-body-bg:#f4f6f9; + --bs-body-bg-rgb: 255, 255, 255; + --bs-emphasis-color: #000; + --bs-emphasis-color-rgb: 0, 0, 0; + --bs-secondary-color: rgba(33, 37, 41, 0.75); + --bs-secondary-color-rgb: 33, 37, 41; + --bs-secondary-bg: #e9ecef; + --bs-secondary-bg-rgb: 233, 236, 239; + --bs-tertiary-color: rgba(33, 37, 41, 0.5); + --bs-tertiary-color-rgb: 33, 37, 41; + --bs-tertiary-bg: #f8f9fa; + --bs-tertiary-bg-rgb: 248, 249, 250; + --bs-heading-color: inherit; + --bs-link-color: #0d6efd; + --bs-link-color-rgb: 13, 110, 253; + --bs-link-decoration: underline; + --bs-link-hover-color: #0a58ca; + --bs-link-hover-color-rgb: 10, 88, 202; + --bs-code-color: #d63384; + --bs-highlight-color: #212529; + --bs-highlight-bg: #fff3cd; + --bs-border-width: 1px; + --bs-border-style: solid; + --bs-border-color: #dee2e6; + --bs-border-color-translucent: rgba(0, 0, 0, 0.175); + --bs-border-radius: 0.375rem; + --bs-border-radius-sm: 0.25rem; + --bs-border-radius-lg: 0.5rem; + --bs-border-radius-xl: 1rem; + --bs-border-radius-xxl: 2rem; + --bs-border-radius-2xl: var(--bs-border-radius-xxl); + --bs-border-radius-pill: 50rem; + --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); + --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175); + --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075); + --bs-focus-ring-width: 0.25rem; + --bs-focus-ring-opacity: 0.25; + --bs-focus-ring-color: rgba(13, 110, 253, 0.25); + --bs-form-valid-color: #198754; + --bs-form-valid-border-color: #198754; + --bs-form-invalid-color: #dc3545; + --bs-form-invalid-border-color: #dc3545 +} + +[data-bs-theme=dark] { + color-scheme: dark; + --bs-body-color: #dee2e6; + --bs-body-color-rgb: 222, 226, 230; + --bs-body-bg: #212529; + --bs-body-bg-rgb: 33, 37, 41; + --bs-emphasis-color: #fff; + --bs-emphasis-color-rgb: 255, 255, 255; + --bs-secondary-color: rgba(222, 226, 230, 0.75); + --bs-secondary-color-rgb: 222, 226, 230; + --bs-secondary-bg: #343a40; + --bs-secondary-bg-rgb: 52, 58, 64; + --bs-tertiary-color: rgba(222, 226, 230, 0.5); + --bs-tertiary-color-rgb: 222, 226, 230; + --bs-tertiary-bg: #2b3035; + --bs-tertiary-bg-rgb: 43, 48, 53; + --bs-primary-text-emphasis: #6ea8fe; + --bs-secondary-text-emphasis: #a7acb1; + --bs-success-text-emphasis: #75b798; + --bs-info-text-emphasis: #6edff6; + --bs-warning-text-emphasis: #ffda6a; + --bs-danger-text-emphasis: #ea868f; + --bs-light-text-emphasis: #f8f9fa; + --bs-dark-text-emphasis: #dee2e6; + --bs-primary-bg-subtle: #031633; + --bs-secondary-bg-subtle: #161719; + --bs-success-bg-subtle: #051b11; + --bs-info-bg-subtle: #032830; + --bs-warning-bg-subtle: #332701; + --bs-danger-bg-subtle: #2c0b0e; + --bs-light-bg-subtle: #343a40; + --bs-dark-bg-subtle: #1a1d20; + --bs-primary-border-subtle: #084298; + --bs-secondary-border-subtle: #41464b; + --bs-success-border-subtle: #0f5132; + --bs-info-border-subtle: #087990; + --bs-warning-border-subtle: #997404; + --bs-danger-border-subtle: #842029; + --bs-light-border-subtle: #495057; + --bs-dark-border-subtle: #343a40; + --bs-heading-color: inherit; + --bs-link-color: #6ea8fe; + --bs-link-hover-color: #8bb9fe; + --bs-link-color-rgb: 110, 168, 254; + --bs-link-hover-color-rgb: 139, 185, 254; + --bs-code-color: #e685b5; + --bs-highlight-color: #dee2e6; + --bs-highlight-bg: #664d03; + --bs-border-color: #495057; + --bs-border-color-translucent: rgba(255, 255, 255, 0.15); + --bs-form-valid-color: #75b798; + --bs-form-valid-border-color: #75b798; + --bs-form-invalid-color: #ea868f; + --bs-form-invalid-border-color: #ea868f +} + +*, +::after, +::before { + box-sizing: border-box +} + +@media (prefers-reduced-motion:no-preference) { + :root { + scroll-behavior: smooth + } +} + +body { + margin: 0; + font-family: var(--bs-body-font-family); + font-size: var(--bs-body-font-size); + font-weight: var(--bs-body-font-weight); + line-height: var(--bs-body-line-height); + color: var(--bs-body-color); + text-align: var(--bs-body-text-align); + background-color: var(--bs-body-bg); + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: transparent +} + +hr { + margin: 1rem 0; + color: inherit; + border: 0; + border-top: var(--bs-border-width) solid; + opacity: .25 +} + +.h1, +.h2, +.h3, +.h4, +.h5, +.h6, +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 0; + margin-bottom: .5rem; + font-weight: 500; + line-height: 1.2; + color: var(--bs-heading-color) +} + +.h1, +h1 { + font-size: calc(1.375rem + 1.5vw) +} + +@media (min-width:1200px) { + + .h1, + h1 { + font-size: 2.5rem + } +} + +.h2, +h2 { + font-size: calc(1.325rem + .9vw) +} + +@media (min-width:1200px) { + + .h2, + h2 { + font-size: 2rem + } +} + +.h3, +h3 { + font-size: calc(1.3rem + .6vw) +} + +@media (min-width:1200px) { + + .h3, + h3 { + font-size: 1.75rem + } +} + +.h4, +h4 { + font-size: calc(1.275rem + .3vw) +} + +@media (min-width:1200px) { + + .h4, + h4 { + font-size: 1.5rem + } +} + +.h5, +h5 { + font-size: 1.25rem +} + +.h6, +h6 { + font-size: 1rem +} + +p { + margin-top: 0; + margin-bottom: 1rem +} + +abbr[title] { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit +} + +ol, +ul { + padding-left: 2rem +} + +dl, +ol, +ul { + margin-top: 0; + margin-bottom: 1rem +} + +ol ol, +ol ul, +ul ol, +ul ul { + margin-bottom: 0 +} + +dt { + font-weight: 700 +} + +dd { + margin-bottom: .5rem; + margin-left: 0 +} + +blockquote { + margin: 0 0 1rem +} + +b, +strong { + font-weight: bolder +} + +.small, +small { + font-size: .875em +} + +.mark, +mark { + padding: .1875em; + color: var(--bs-highlight-color); + background-color: var(--bs-highlight-bg) +} + +sub, +sup { + position: relative; + font-size: .75em; + line-height: 0; + vertical-align: baseline +} + +sub { + bottom: -.25em +} + +sup { + top: -.5em +} + +a { + color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1)); + text-decoration: underline +} + +a:hover { + --bs-link-color-rgb: var(--bs-link-hover-color-rgb) +} + +a:not([href]):not([class]), +a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none +} + +code, +kbd, +pre, +samp { + font-family: var(--bs-font-monospace); + font-size: 1em +} + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: .875em +} + +pre code { + font-size: inherit; + color: inherit; + word-break: normal +} + +code { + font-size: .875em; + color: var(--bs-code-color); + word-wrap: break-word +} + +a>code { + color: inherit +} + +kbd { + padding: .1875rem .375rem; + font-size: .875em; + color: var(--bs-body-bg); + background-color: var(--bs-body-color); + border-radius: .25rem +} + +kbd kbd { + padding: 0; + font-size: 1em +} + +figure { + margin: 0 0 1rem +} + +img, +svg { + vertical-align: middle +} + +table { + caption-side: bottom; + border-collapse: collapse +} + +caption { + padding-top: .5rem; + padding-bottom: .5rem; + color: var(--bs-secondary-color); + text-align: left +} + +th { + text-align: inherit; + text-align: -webkit-match-parent +} + +tbody, +td, +tfoot, +th, +thead, +tr { + border-color: inherit; + border-style: solid; + border-width: 0 +} + +label { + display: inline-block +} + +button { + border-radius: 0 +} + +button:focus:not(:focus-visible) { + outline: 0 +} + +button, +input, +optgroup, +select, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit +} + +button, +select { + text-transform: none +} + +[role=button] { + cursor: pointer +} + +select { + word-wrap: normal +} + +select:disabled { + opacity: 1 +} + +[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator { + display: none !important +} + +[type=button], +[type=reset], +[type=submit], +button { + -webkit-appearance: button +} + +[type=button]:not(:disabled), +[type=reset]:not(:disabled), +[type=submit]:not(:disabled), +button:not(:disabled) { + cursor: pointer +} + +::-moz-focus-inner { + padding: 0; + border-style: none +} + +textarea { + resize: vertical +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0 +} + +legend { + float: left; + width: 100%; + padding: 0; + margin-bottom: .5rem; + line-height: inherit; + font-size: calc(1.275rem + .3vw) +} + +@media (min-width:1200px) { + legend { + font-size: 1.5rem + } +} + +legend+* { + clear: left +} + +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-fields-wrapper, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-minute, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-text, +::-webkit-datetime-edit-year-field { + padding: 0 +} + +::-webkit-inner-spin-button { + height: auto +} + +[type=search] { + -webkit-appearance: textfield; + outline-offset: -2px +} + +::-webkit-search-decoration { + -webkit-appearance: none +} + +::-webkit-color-swatch-wrapper { + padding: 0 +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button +} + +::file-selector-button { + font: inherit; + -webkit-appearance: button +} + +output { + display: inline-block +} + +iframe { + border: 0 +} + +summary { + display: list-item; + cursor: pointer +} + +progress { + vertical-align: baseline +} + +[hidden] { + display: none !important +} + +.lead { + font-size: 1.25rem; + font-weight: 300 +} + +.display-1 { + font-weight: 300; + line-height: 1.2; + font-size: calc(1.625rem + 4.5vw) +} + +@media (min-width:1200px) { + .display-1 { + font-size: 5rem + } +} + +.display-2 { + font-weight: 300; + line-height: 1.2; + font-size: calc(1.575rem + 3.9vw) +} + +@media (min-width:1200px) { + .display-2 { + font-size: 4.5rem + } +} + +.display-3 { + font-weight: 300; + line-height: 1.2; + font-size: calc(1.525rem + 3.3vw) +} + +@media (min-width:1200px) { + .display-3 { + font-size: 4rem + } +} + +.display-4 { + font-weight: 300; + line-height: 1.2; + font-size: calc(1.475rem + 2.7vw) +} + +@media (min-width:1200px) { + .display-4 { + font-size: 3.5rem + } +} + +.display-5 { + font-weight: 300; + line-height: 1.2; + font-size: calc(1.425rem + 2.1vw) +} + +@media (min-width:1200px) { + .display-5 { + font-size: 3rem + } +} + +.display-6 { + font-weight: 300; + line-height: 1.2; + font-size: calc(1.375rem + 1.5vw) +} + +@media (min-width:1200px) { + .display-6 { + font-size: 2.5rem + } +} + +.list-unstyled { + padding-left: 0; + list-style: none +} + +.list-inline { + padding-left: 0; + list-style: none +} + +.list-inline-item { + display: inline-block +} + +.list-inline-item:not(:last-child) { + margin-right: .5rem +} + +.initialism { + font-size: .875em; + text-transform: uppercase +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem +} + +.blockquote>:last-child { + margin-bottom: 0 +} + +.blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: .875em; + color: #6c757d +} + +.blockquote-footer::before { + content: "— " +} + +.img-fluid { + max-width: 100%; + height: auto +} + +.img-thumbnail { + padding: .25rem; + background-color: var(--bs-body-bg); + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + max-width: 100%; + height: auto +} + +.figure { + display: inline-block +} + +.figure-img { + margin-bottom: .5rem; + line-height: 1 +} + +.figure-caption { + font-size: .875em; + color: var(--bs-secondary-color) +} + +.container, +.container-fluid, +.container-lg, +.container-md, +.container-sm, +.container-xl, +.container-xxl { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + width: 100%; + /* padding-right: calc(var(--bs-gutter-x) * .5); + padding-left: calc(var(--bs-gutter-x) * .5); */ + margin-right: auto; + margin-left: auto +} + +@media (min-width:576px) { + + .container, + .container-sm { + /* max-width: 540px */ + } +} + +@media (min-width:768px) { + + .container, + .container-md, + .container-sm { + /* max-width: 720px */ + } +} + +@media (min-width:992px) { + + .container, + .container-lg, + .container-md, + .container-sm { + /* max-width: 960px */ + } +} + +@media (min-width:1200px) { + + .container, + .container-lg, + .container-md, + .container-sm, + .container-xl { + /* max-width: 1140px */ + } +} + +@media (min-width:1400px) { + + .container, + .container-lg, + .container-md, + .container-sm, + .container-xl, + .container-xxl { + /* max-width: 1320px */ + } +} + +:root { + --bs-breakpoint-xs: 0; + --bs-breakpoint-sm: 576px; + --bs-breakpoint-md: 768px; + --bs-breakpoint-lg: 992px; + --bs-breakpoint-xl: 1200px; + --bs-breakpoint-xxl: 1400px +} + +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-right: calc(-.5 * var(--bs-gutter-x)); + margin-left: calc(-.5 * var(--bs-gutter-x)) +} + +.row>* { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * .5); + padding-left: calc(var(--bs-gutter-x) * .5); + margin-top: var(--bs-gutter-y) +} + +.col { + flex: 1 0 0 +} + +.row-cols-auto>* { + flex: 0 0 auto; + width: auto +} + +.row-cols-1>* { + flex: 0 0 auto; + width: 100% +} + +.row-cols-2>* { + flex: 0 0 auto; + width: 50% +} + +.row-cols-3>* { + flex: 0 0 auto; + width: 33.33333333% +} + +.row-cols-4>* { + flex: 0 0 auto; + width: 25% +} + +.row-cols-5>* { + flex: 0 0 auto; + width: 20% +} + +.row-cols-6>* { + flex: 0 0 auto; + width: 16.66666667% +} + +.col-auto { + flex: 0 0 auto; + width: auto +} + +.col-1 { + flex: 0 0 auto; + width: 8.33333333% +} + +.col-2 { + flex: 0 0 auto; + width: 16.66666667% +} + +.col-3 { + flex: 0 0 auto; + width: 25% +} + +.col-4 { + flex: 0 0 auto; + width: 33.33333333% +} + +.col-5 { + flex: 0 0 auto; + width: 41.66666667% +} + +.col-6 { + flex: 0 0 auto; + width: 50% +} + +.col-7 { + flex: 0 0 auto; + width: 58.33333333% +} + +.col-8 { + flex: 0 0 auto; + width: 66.66666667% +} + +.col-9 { + flex: 0 0 auto; + width: 75% +} + +.col-10 { + flex: 0 0 auto; + width: 83.33333333% +} + +.col-11 { + flex: 0 0 auto; + width: 91.66666667% +} + +.col-12 { + flex: 0 0 auto; + width: 100% +} + +.offset-1 { + margin-left: 8.33333333% +} + +.offset-2 { + margin-left: 16.66666667% +} + +.offset-3 { + margin-left: 25% +} + +.offset-4 { + margin-left: 33.33333333% +} + +.offset-5 { + margin-left: 41.66666667% +} + +.offset-6 { + margin-left: 50% +} + +.offset-7 { + margin-left: 58.33333333% +} + +.offset-8 { + margin-left: 66.66666667% +} + +.offset-9 { + margin-left: 75% +} + +.offset-10 { + margin-left: 83.33333333% +} + +.offset-11 { + margin-left: 91.66666667% +} + +.g-0, +.gx-0 { + --bs-gutter-x: 0 +} + +.g-0, +.gy-0 { + --bs-gutter-y: 0 +} + +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem +} + +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem +} + +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem +} + +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem +} + +.g-3, +.gx-3 { + --bs-gutter-x: 1rem +} + +.g-3, +.gy-3 { + --bs-gutter-y: 1rem +} + +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem +} + +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem +} + +.g-5, +.gx-5 { + --bs-gutter-x: 3rem +} + +.g-5, +.gy-5 { + --bs-gutter-y: 3rem +} + +@media (min-width:576px) { + .col-sm { + flex: 1 0 0 + } + + .row-cols-sm-auto>* { + flex: 0 0 auto; + width: auto + } + + .row-cols-sm-1>* { + flex: 0 0 auto; + width: 100% + } + + .row-cols-sm-2>* { + flex: 0 0 auto; + width: 50% + } + + .row-cols-sm-3>* { + flex: 0 0 auto; + width: 33.33333333% + } + + .row-cols-sm-4>* { + flex: 0 0 auto; + width: 25% + } + + .row-cols-sm-5>* { + flex: 0 0 auto; + width: 20% + } + + .row-cols-sm-6>* { + flex: 0 0 auto; + width: 16.66666667% + } + + .col-sm-auto { + flex: 0 0 auto; + width: auto + } + + .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333% + } + + .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667% + } + + .col-sm-3 { + flex: 0 0 auto; + width: 25% + } + + .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333% + } + + .col-sm-5 { + flex: 0 0 auto; + width: 41.66666667% + } + + .col-sm-6 { + flex: 0 0 auto; + width: 50% + } + + .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333% + } + + .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667% + } + + .col-sm-9 { + flex: 0 0 auto; + width: 75% + } + + .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333% + } + + .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667% + } + + .col-sm-12 { + flex: 0 0 auto; + width: 100% + } + + .offset-sm-0 { + margin-left: 0 + } + + .offset-sm-1 { + margin-left: 8.33333333% + } + + .offset-sm-2 { + margin-left: 16.66666667% + } + + .offset-sm-3 { + margin-left: 25% + } + + .offset-sm-4 { + margin-left: 33.33333333% + } + + .offset-sm-5 { + margin-left: 41.66666667% + } + + .offset-sm-6 { + margin-left: 50% + } + + .offset-sm-7 { + margin-left: 58.33333333% + } + + .offset-sm-8 { + margin-left: 66.66666667% + } + + .offset-sm-9 { + margin-left: 75% + } + + .offset-sm-10 { + margin-left: 83.33333333% + } + + .offset-sm-11 { + margin-left: 91.66666667% + } + + .g-sm-0, + .gx-sm-0 { + --bs-gutter-x: 0 + } + + .g-sm-0, + .gy-sm-0 { + --bs-gutter-y: 0 + } + + .g-sm-1, + .gx-sm-1 { + --bs-gutter-x: 0.25rem + } + + .g-sm-1, + .gy-sm-1 { + --bs-gutter-y: 0.25rem + } + + .g-sm-2, + .gx-sm-2 { + --bs-gutter-x: 0.5rem + } + + .g-sm-2, + .gy-sm-2 { + --bs-gutter-y: 0.5rem + } + + .g-sm-3, + .gx-sm-3 { + --bs-gutter-x: 1rem + } + + .g-sm-3, + .gy-sm-3 { + --bs-gutter-y: 1rem + } + + .g-sm-4, + .gx-sm-4 { + --bs-gutter-x: 1.5rem + } + + .g-sm-4, + .gy-sm-4 { + --bs-gutter-y: 1.5rem + } + + .g-sm-5, + .gx-sm-5 { + --bs-gutter-x: 3rem + } + + .g-sm-5, + .gy-sm-5 { + --bs-gutter-y: 3rem + } +} + +@media (min-width:768px) { + .col-md { + flex: 1 0 0 + } + + .row-cols-md-auto>* { + flex: 0 0 auto; + width: auto + } + + .row-cols-md-1>* { + flex: 0 0 auto; + width: 100% + } + + .row-cols-md-2>* { + flex: 0 0 auto; + width: 50% + } + + .row-cols-md-3>* { + flex: 0 0 auto; + width: 33.33333333% + } + + .row-cols-md-4>* { + flex: 0 0 auto; + width: 25% + } + + .row-cols-md-5>* { + flex: 0 0 auto; + width: 20% + } + + .row-cols-md-6>* { + flex: 0 0 auto; + width: 16.66666667% + } + + .col-md-auto { + flex: 0 0 auto; + width: auto + } + + .col-md-1 { + flex: 0 0 auto; + width: 8.33333333% + } + + .col-md-2 { + flex: 0 0 auto; + width: 16.66666667% + } + + .col-md-3 { + flex: 0 0 auto; + width: 25% + } + + .col-md-4 { + flex: 0 0 auto; + width: 33.33333333% + } + + .col-md-5 { + flex: 0 0 auto; + width: 41.66666667% + } + + .col-md-6 { + flex: 0 0 auto; + width: 50% + } + + .col-md-7 { + flex: 0 0 auto; + width: 58.33333333% + } + + .col-md-8 { + flex: 0 0 auto; + width: 66.66666667% + } + + .col-md-9 { + flex: 0 0 auto; + width: 75% + } + + .col-md-10 { + flex: 0 0 auto; + width: 83.33333333% + } + + .col-md-11 { + flex: 0 0 auto; + width: 91.66666667% + } + + .col-md-12 { + flex: 0 0 auto; + width: 100% + } + + .offset-md-0 { + margin-left: 0 + } + + .offset-md-1 { + margin-left: 8.33333333% + } + + .offset-md-2 { + margin-left: 16.66666667% + } + + .offset-md-3 { + margin-left: 25% + } + + .offset-md-4 { + margin-left: 33.33333333% + } + + .offset-md-5 { + margin-left: 41.66666667% + } + + .offset-md-6 { + margin-left: 50% + } + + .offset-md-7 { + margin-left: 58.33333333% + } + + .offset-md-8 { + margin-left: 66.66666667% + } + + .offset-md-9 { + margin-left: 75% + } + + .offset-md-10 { + margin-left: 83.33333333% + } + + .offset-md-11 { + margin-left: 91.66666667% + } + + .g-md-0, + .gx-md-0 { + --bs-gutter-x: 0 + } + + .g-md-0, + .gy-md-0 { + --bs-gutter-y: 0 + } + + .g-md-1, + .gx-md-1 { + --bs-gutter-x: 0.25rem + } + + .g-md-1, + .gy-md-1 { + --bs-gutter-y: 0.25rem + } + + .g-md-2, + .gx-md-2 { + --bs-gutter-x: 0.5rem + } + + .g-md-2, + .gy-md-2 { + --bs-gutter-y: 0.5rem + } + + .g-md-3, + .gx-md-3 { + --bs-gutter-x: 1rem + } + + .g-md-3, + .gy-md-3 { + --bs-gutter-y: 1rem + } + + .g-md-4, + .gx-md-4 { + --bs-gutter-x: 1.5rem + } + + .g-md-4, + .gy-md-4 { + --bs-gutter-y: 1.5rem + } + + .g-md-5, + .gx-md-5 { + --bs-gutter-x: 3rem + } + + .g-md-5, + .gy-md-5 { + --bs-gutter-y: 3rem + } +} + +@media (min-width:992px) { + .col-lg { + flex: 1 0 0 + } + + .row-cols-lg-auto>* { + flex: 0 0 auto; + width: auto + } + + .row-cols-lg-1>* { + flex: 0 0 auto; + width: 100% + } + + .row-cols-lg-2>* { + flex: 0 0 auto; + width: 50% + } + + .row-cols-lg-3>* { + flex: 0 0 auto; + width: 33.33333333% + } + + .row-cols-lg-4>* { + flex: 0 0 auto; + width: 25% + } + + .row-cols-lg-5>* { + flex: 0 0 auto; + width: 20% + } + + .row-cols-lg-6>* { + flex: 0 0 auto; + width: 16.66666667% + } + + .col-lg-auto { + flex: 0 0 auto; + width: auto + } + + .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333% + } + + .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667% + } + + .col-lg-3 { + flex: 0 0 auto; + width: 25% + } + + .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333% + } + + .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667% + } + + .col-lg-6 { + flex: 0 0 auto; + width: 50% + } + + .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333% + } + + .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667% + } + + .col-lg-9 { + flex: 0 0 auto; + width: 75% + } + + .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333% + } + + .col-lg-11 { + flex: 0 0 auto; + width: 91.66666667% + } + + .col-lg-12 { + flex: 0 0 auto; + width: 100% + } + + .offset-lg-0 { + margin-left: 0 + } + + .offset-lg-1 { + margin-left: 8.33333333% + } + + .offset-lg-2 { + margin-left: 16.66666667% + } + + .offset-lg-3 { + margin-left: 25% + } + + .offset-lg-4 { + margin-left: 33.33333333% + } + + .offset-lg-5 { + margin-left: 41.66666667% + } + + .offset-lg-6 { + margin-left: 50% + } + + .offset-lg-7 { + margin-left: 58.33333333% + } + + .offset-lg-8 { + margin-left: 66.66666667% + } + + .offset-lg-9 { + margin-left: 75% + } + + .offset-lg-10 { + margin-left: 83.33333333% + } + + .offset-lg-11 { + margin-left: 91.66666667% + } + + .g-lg-0, + .gx-lg-0 { + --bs-gutter-x: 0 + } + + .g-lg-0, + .gy-lg-0 { + --bs-gutter-y: 0 + } + + .g-lg-1, + .gx-lg-1 { + --bs-gutter-x: 0.25rem + } + + .g-lg-1, + .gy-lg-1 { + --bs-gutter-y: 0.25rem + } + + .g-lg-2, + .gx-lg-2 { + --bs-gutter-x: 0.5rem + } + + .g-lg-2, + .gy-lg-2 { + --bs-gutter-y: 0.5rem + } + + .g-lg-3, + .gx-lg-3 { + --bs-gutter-x: 1rem + } + + .g-lg-3, + .gy-lg-3 { + --bs-gutter-y: 1rem + } + + .g-lg-4, + .gx-lg-4 { + --bs-gutter-x: 1.5rem + } + + .g-lg-4, + .gy-lg-4 { + --bs-gutter-y: 1.5rem + } + + .g-lg-5, + .gx-lg-5 { + --bs-gutter-x: 3rem + } + + .g-lg-5, + .gy-lg-5 { + --bs-gutter-y: 3rem + } +} + +@media (min-width:1200px) { + .col-xl { + flex: 1 0 0 + } + + .row-cols-xl-auto>* { + flex: 0 0 auto; + width: auto + } + + .row-cols-xl-1>* { + flex: 0 0 auto; + width: 100% + } + + .row-cols-xl-2>* { + flex: 0 0 auto; + width: 50% + } + + .row-cols-xl-3>* { + flex: 0 0 auto; + width: 33.33333333% + } + + .row-cols-xl-4>* { + flex: 0 0 auto; + width: 25% + } + + .row-cols-xl-5>* { + flex: 0 0 auto; + width: 20% + } + + .row-cols-xl-6>* { + flex: 0 0 auto; + width: 16.66666667% + } + + .col-xl-auto { + flex: 0 0 auto; + width: auto + } + + .col-xl-1 { + flex: 0 0 auto; + width: 8.33333333% + } + + .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667% + } + + .col-xl-3 { + flex: 0 0 auto; + width: 25% + } + + .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333% + } + + .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667% + } + + .col-xl-6 { + flex: 0 0 auto; + width: 50% + } + + .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333% + } + + .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667% + } + + .col-xl-9 { + flex: 0 0 auto; + width: 75% + } + + .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333% + } + + .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667% + } + + .col-xl-12 { + flex: 0 0 auto; + width: 100% + } + + .offset-xl-0 { + margin-left: 0 + } + + .offset-xl-1 { + margin-left: 8.33333333% + } + + .offset-xl-2 { + margin-left: 16.66666667% + } + + .offset-xl-3 { + margin-left: 25% + } + + .offset-xl-4 { + margin-left: 33.33333333% + } + + .offset-xl-5 { + margin-left: 41.66666667% + } + + .offset-xl-6 { + margin-left: 50% + } + + .offset-xl-7 { + margin-left: 58.33333333% + } + + .offset-xl-8 { + margin-left: 66.66666667% + } + + .offset-xl-9 { + margin-left: 75% + } + + .offset-xl-10 { + margin-left: 83.33333333% + } + + .offset-xl-11 { + margin-left: 91.66666667% + } + + .g-xl-0, + .gx-xl-0 { + --bs-gutter-x: 0 + } + + .g-xl-0, + .gy-xl-0 { + --bs-gutter-y: 0 + } + + .g-xl-1, + .gx-xl-1 { + --bs-gutter-x: 0.25rem + } + + .g-xl-1, + .gy-xl-1 { + --bs-gutter-y: 0.25rem + } + + .g-xl-2, + .gx-xl-2 { + --bs-gutter-x: 0.5rem + } + + .g-xl-2, + .gy-xl-2 { + --bs-gutter-y: 0.5rem + } + + .g-xl-3, + .gx-xl-3 { + --bs-gutter-x: 1rem + } + + .g-xl-3, + .gy-xl-3 { + --bs-gutter-y: 1rem + } + + .g-xl-4, + .gx-xl-4 { + --bs-gutter-x: 1.5rem + } + + .g-xl-4, + .gy-xl-4 { + --bs-gutter-y: 1.5rem + } + + .g-xl-5, + .gx-xl-5 { + --bs-gutter-x: 3rem + } + + .g-xl-5, + .gy-xl-5 { + --bs-gutter-y: 3rem + } +} + +@media (min-width:1400px) { + .col-xxl { + flex: 1 0 0 + } + + .row-cols-xxl-auto>* { + flex: 0 0 auto; + width: auto + } + + .row-cols-xxl-1>* { + flex: 0 0 auto; + width: 100% + } + + .row-cols-xxl-2>* { + flex: 0 0 auto; + width: 50% + } + + .row-cols-xxl-3>* { + flex: 0 0 auto; + width: 33.33333333% + } + + .row-cols-xxl-4>* { + flex: 0 0 auto; + width: 25% + } + + .row-cols-xxl-5>* { + flex: 0 0 auto; + width: 20% + } + + .row-cols-xxl-6>* { + flex: 0 0 auto; + width: 16.66666667% + } + + .col-xxl-auto { + flex: 0 0 auto; + width: auto + } + + .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333% + } + + .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667% + } + + .col-xxl-3 { + flex: 0 0 auto; + width: 25% + } + + .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333% + } + + .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667% + } + + .col-xxl-6 { + flex: 0 0 auto; + width: 50% + } + + .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333% + } + + .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667% + } + + .col-xxl-9 { + flex: 0 0 auto; + width: 75% + } + + .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333% + } + + .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667% + } + + .col-xxl-12 { + flex: 0 0 auto; + width: 100% + } + + .offset-xxl-0 { + margin-left: 0 + } + + .offset-xxl-1 { + margin-left: 8.33333333% + } + + .offset-xxl-2 { + margin-left: 16.66666667% + } + + .offset-xxl-3 { + margin-left: 25% + } + + .offset-xxl-4 { + margin-left: 33.33333333% + } + + .offset-xxl-5 { + margin-left: 41.66666667% + } + + .offset-xxl-6 { + margin-left: 50% + } + + .offset-xxl-7 { + margin-left: 58.33333333% + } + + .offset-xxl-8 { + margin-left: 66.66666667% + } + + .offset-xxl-9 { + margin-left: 75% + } + + .offset-xxl-10 { + margin-left: 83.33333333% + } + + .offset-xxl-11 { + margin-left: 91.66666667% + } + + .g-xxl-0, + .gx-xxl-0 { + --bs-gutter-x: 0 + } + + .g-xxl-0, + .gy-xxl-0 { + --bs-gutter-y: 0 + } + + .g-xxl-1, + .gx-xxl-1 { + --bs-gutter-x: 0.25rem + } + + .g-xxl-1, + .gy-xxl-1 { + --bs-gutter-y: 0.25rem + } + + .g-xxl-2, + .gx-xxl-2 { + --bs-gutter-x: 0.5rem + } + + .g-xxl-2, + .gy-xxl-2 { + --bs-gutter-y: 0.5rem + } + + .g-xxl-3, + .gx-xxl-3 { + --bs-gutter-x: 1rem + } + + .g-xxl-3, + .gy-xxl-3 { + --bs-gutter-y: 1rem + } + + .g-xxl-4, + .gx-xxl-4 { + --bs-gutter-x: 1.5rem + } + + .g-xxl-4, + .gy-xxl-4 { + --bs-gutter-y: 1.5rem + } + + .g-xxl-5, + .gx-xxl-5 { + --bs-gutter-x: 3rem + } + + .g-xxl-5, + .gy-xxl-5 { + --bs-gutter-y: 3rem + } +} + +.table { + --bs-table-color-type: initial; + --bs-table-bg-type: initial; + --bs-table-color-state: initial; + --bs-table-bg-state: initial; + --bs-table-color: var(--bs-emphasis-color); + --bs-table-bg: var(--bs-body-bg); + --bs-table-border-color: var(--bs-border-color); + --bs-table-accent-bg: transparent; + --bs-table-striped-color: var(--bs-emphasis-color); + --bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), 0.05); + --bs-table-active-color: var(--bs-emphasis-color); + --bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.1); + --bs-table-hover-color: var(--bs-emphasis-color); + --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.075); + width: 100%; + margin-bottom: 1rem; + vertical-align: top; + border-color: var(--bs-table-border-color) +} + +.table>:not(caption)>*>* { + padding: .5rem .5rem; + color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color))); + background-color: var(--bs-table-bg); + border-bottom-width: var(--bs-border-width); + box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg))) +} + +.table>tbody { + vertical-align: inherit +} + +.table>thead { + vertical-align: bottom +} + +.table-group-divider { + border-top: calc(var(--bs-border-width) * 2) solid currentcolor +} + +.caption-top { + caption-side: top +} + +.table-sm>:not(caption)>*>* { + padding: .25rem .25rem +} + +.table-bordered>:not(caption)>* { + border-width: var(--bs-border-width) 0 +} + +.table-bordered>:not(caption)>*>* { + border-width: 0 var(--bs-border-width) +} + +.table-borderless>:not(caption)>*>* { + border-bottom-width: 0 +} + +.table-borderless>:not(:first-child) { + border-top-width: 0 +} + +.table-striped>tbody>tr:nth-of-type(odd)>* { + --bs-table-color-type: var(--bs-table-striped-color); + --bs-table-bg-type: var(--bs-table-striped-bg) +} + +.table-striped-columns>:not(caption)>tr>:nth-child(2n) { + --bs-table-color-type: var(--bs-table-striped-color); + --bs-table-bg-type: var(--bs-table-striped-bg) +} + +.table-active { + --bs-table-color-state: var(--bs-table-active-color); + --bs-table-bg-state: var(--bs-table-active-bg) +} + +.table-hover>tbody>tr:hover>* { + --bs-table-color-state: var(--bs-table-hover-color); + --bs-table-bg-state: var(--bs-table-hover-bg) +} + +.table-primary { + --bs-table-color: #000; + --bs-table-bg: #cfe2ff; + --bs-table-border-color: #a6b5cc; + --bs-table-striped-bg: #c5d7f2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bacbe6; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfd1ec; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color) +} + +.table-secondary { + --bs-table-color: #000; + --bs-table-bg: #e2e3e5; + --bs-table-border-color: #b5b6b7; + --bs-table-striped-bg: #d7d8da; + --bs-table-striped-color: #000; + --bs-table-active-bg: #cbccce; + --bs-table-active-color: #000; + --bs-table-hover-bg: #d1d2d4; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color) +} + +.table-success { + --bs-table-color: #000; + --bs-table-bg: #d1e7dd; + --bs-table-border-color: #a7b9b1; + --bs-table-striped-bg: #c7dbd2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bcd0c7; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c1d6cc; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color) +} + +.table-info { + --bs-table-color: #000; + --bs-table-bg: #cff4fc; + --bs-table-border-color: #a6c3ca; + --bs-table-striped-bg: #c5e8ef; + --bs-table-striped-color: #000; + --bs-table-active-bg: #badce3; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfe2e9; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color) +} + +.table-warning { + --bs-table-color: #000; + --bs-table-bg: #fff3cd; + --bs-table-border-color: #ccc2a4; + --bs-table-striped-bg: #f2e7c3; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e6dbb9; + --bs-table-active-color: #000; + --bs-table-hover-bg: #ece1be; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color) +} + +.table-danger { + --bs-table-color: #000; + --bs-table-bg: #f8d7da; + --bs-table-border-color: #c6acae; + --bs-table-striped-bg: #eccccf; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfc2c4; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5c7ca; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color) +} + +.table-light { + --bs-table-color: #000; + --bs-table-bg: #f8f9fa; + --bs-table-border-color: #c6c7c8; + --bs-table-striped-bg: #ecedee; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfe0e1; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5e6e7; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color) +} + +.table-dark { + --bs-table-color: #fff; + --bs-table-bg: #212529; + --bs-table-border-color: #4d5154; + --bs-table-striped-bg: #2c3034; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #373b3e; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #323539; + --bs-table-hover-color: #fff; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color) +} + +.table-responsive { + overflow-x: auto; + -webkit-overflow-scrolling: touch +} + +@media (max-width:575.98px) { + .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch + } +} + +@media (max-width:767.98px) { + .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch + } +} + +@media (max-width:991.98px) { + .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch + } +} + +@media (max-width:1199.98px) { + .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch + } +} + +@media (max-width:1399.98px) { + .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch + } +} + +.form-label { + margin-bottom: .5rem +} + +.col-form-label { + padding-top: calc(.375rem + var(--bs-border-width)); + padding-bottom: calc(.375rem + var(--bs-border-width)); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5 +} + +.col-form-label-lg { + padding-top: calc(.5rem + var(--bs-border-width)); + padding-bottom: calc(.5rem + var(--bs-border-width)); + font-size: 1.25rem +} + +.col-form-label-sm { + padding-top: calc(.25rem + var(--bs-border-width)); + padding-bottom: calc(.25rem + var(--bs-border-width)); + font-size: .875rem +} + +.form-text { + margin-top: .25rem; + font-size: .875em; + color: var(--bs-secondary-color) +} + +.form-control { + display: block; + width: 100%; + padding: .375rem .75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: var(--bs-body-color); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: var(--bs-body-bg); + background-clip: padding-box; + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out +} + +@media (prefers-reduced-motion:reduce) { + .form-control { + transition: none + } +} + +.form-control[type=file] { + overflow: hidden +} + +.form-control[type=file]:not(:disabled):not([readonly]) { + cursor: pointer +} + +.form-control:focus { + color: var(--bs-body-color); + background-color: var(--bs-body-bg); + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25) +} + +.form-control::-webkit-date-and-time-value { + min-width: 85px; + height: 1.5em; + margin: 0 +} + +.form-control::-webkit-datetime-edit { + display: block; + padding: 0 +} + +.form-control::placeholder { + color: var(--bs-secondary-color); + opacity: 1 +} + +.form-control:disabled { + background-color: var(--bs-secondary-bg); + opacity: 1 +} + +.form-control::-webkit-file-upload-button { + padding: .375rem .75rem; + margin: -.375rem -.75rem; + -webkit-margin-end: .75rem; + margin-inline-end: .75rem; + color: var(--bs-body-color); + background-color: var(--bs-tertiary-bg); + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: var(--bs-border-width); + border-radius: 0; + -webkit-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; + transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out +} + +.form-control::file-selector-button { + padding: .375rem .75rem; + margin: -.375rem -.75rem; + -webkit-margin-end: .75rem; + margin-inline-end: .75rem; + color: var(--bs-body-color); + background-color: var(--bs-tertiary-bg); + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: var(--bs-border-width); + border-radius: 0; + transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out +} + +@media (prefers-reduced-motion:reduce) { + .form-control::-webkit-file-upload-button { + -webkit-transition: none; + transition: none + } + + .form-control::file-selector-button { + transition: none + } +} + +.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { + background-color: var(--bs-secondary-bg) +} + +.form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: var(--bs-secondary-bg) +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: .375rem 0; + margin-bottom: 0; + line-height: 1.5; + color: var(--bs-body-color); + background-color: transparent; + border: solid transparent; + border-width: var(--bs-border-width) 0 +} + +.form-control-plaintext:focus { + outline: 0 +} + +.form-control-plaintext.form-control-lg, +.form-control-plaintext.form-control-sm { + padding-right: 0; + padding-left: 0 +} + +.form-control-sm { + min-height: calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)); + padding: .25rem .5rem; + font-size: .875rem; + border-radius: var(--bs-border-radius-sm) +} + +.form-control-sm::-webkit-file-upload-button { + padding: .25rem .5rem; + margin: -.25rem -.5rem; + -webkit-margin-end: .5rem; + margin-inline-end: .5rem +} + +.form-control-sm::file-selector-button { + padding: .25rem .5rem; + margin: -.25rem -.5rem; + -webkit-margin-end: .5rem; + margin-inline-end: .5rem +} + +.form-control-lg { + min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); + padding: .5rem 1rem; + font-size: 1.25rem; + border-radius: var(--bs-border-radius-lg) +} + +.form-control-lg::-webkit-file-upload-button { + padding: .5rem 1rem; + margin: -.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem +} + +.form-control-lg::file-selector-button { + padding: .5rem 1rem; + margin: -.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem +} + +textarea.form-control { + min-height: calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)) +} + +textarea.form-control-sm { + min-height: calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) +} + +textarea.form-control-lg { + min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) +} + +.form-control-color { + width: 3rem; + height: calc(1.5em + .75rem + calc(var(--bs-border-width) * 2)); + padding: .375rem +} + +.form-control-color:not(:disabled):not([readonly]) { + cursor: pointer +} + +.form-control-color::-moz-color-swatch { + border: 0 !important; + border-radius: var(--bs-border-radius) +} + +.form-control-color::-webkit-color-swatch { + border: 0 !important; + border-radius: var(--bs-border-radius) +} + +.form-control-color.form-control-sm { + height: calc(1.5em + .5rem + calc(var(--bs-border-width) * 2)) +} + +.form-control-color.form-control-lg { + height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)) +} + +.form-select { + --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); + display: block; + width: 100%; + padding: .375rem 2.25rem .375rem .75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: var(--bs-body-color); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: var(--bs-body-bg); + background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none); + background-repeat: no-repeat; + background-position: right .75rem center; + background-size: 16px 12px; + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out +} + +@media (prefers-reduced-motion:reduce) { + .form-select { + transition: none + } +} + +.form-select:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25) +} + +.form-select[multiple], +.form-select[size]:not([size="1"]) { + padding-right: .75rem; + background-image: none +} + +.form-select:disabled { + background-color: var(--bs-secondary-bg) +} + +.form-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 var(--bs-body-color) +} + +.form-select-sm { + padding-top: .25rem; + padding-bottom: .25rem; + padding-left: .5rem; + font-size: .875rem; + border-radius: var(--bs-border-radius-sm) +} + +.form-select-lg { + padding-top: .5rem; + padding-bottom: .5rem; + padding-left: 1rem; + font-size: 1.25rem; + border-radius: var(--bs-border-radius-lg) +} + +[data-bs-theme=dark] .form-select { + --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e") +} + +.form-check { + display: block; + min-height: 1.5rem; + padding-left: 1.5em; + margin-bottom: .125rem +} + +.form-check .form-check-input { + float: left; + margin-left: -1.5em +} + +.form-check-reverse { + padding-right: 1.5em; + padding-left: 0; + text-align: right +} + +.form-check-reverse .form-check-input { + float: right; + margin-right: -1.5em; + margin-left: 0 +} + +.form-check-input { + --bs-form-check-bg: var(--bs-body-bg); + flex-shrink: 0; + width: 1em; + height: 1em; + margin-top: .25em; + vertical-align: top; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: var(--bs-form-check-bg); + background-image: var(--bs-form-check-bg-image); + background-repeat: no-repeat; + background-position: center; + background-size: contain; + border: var(--bs-border-width) solid var(--bs-border-color); + -webkit-print-color-adjust: exact; + color-adjust: exact; + print-color-adjust: exact +} + +.form-check-input[type=checkbox] { + border-radius: .25em +} + +.form-check-input[type=radio] { + border-radius: 50% +} + +.form-check-input:active { + filter: brightness(90%) +} + +.form-check-input:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25) +} + +.form-check-input:checked { + background-color: #0d6efd; + border-color: #0d6efd +} + +.form-check-input:checked[type=checkbox] { + --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e") +} + +.form-check-input:checked[type=radio] { + --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e") +} + +.form-check-input[type=checkbox]:indeterminate { + background-color: #0d6efd; + border-color: #0d6efd; + --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e") +} + +.form-check-input:disabled { + pointer-events: none; + filter: none; + opacity: .5 +} + +.form-check-input:disabled~.form-check-label, +.form-check-input[disabled]~.form-check-label { + cursor: default; + opacity: .5 +} + +.form-switch { + padding-left: 2.5em +} + +.form-switch .form-check-input { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); + width: 2em; + margin-left: -2.5em; + background-image: var(--bs-form-switch-bg); + background-position: left center; + border-radius: 2em; + transition: background-position .15s ease-in-out +} + +@media (prefers-reduced-motion:reduce) { + .form-switch .form-check-input { + transition: none + } +} + +.form-switch .form-check-input:focus { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e") +} + +.form-switch .form-check-input:checked { + background-position: right center; + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e") +} + +.form-switch.form-check-reverse { + padding-right: 2.5em; + padding-left: 0 +} + +.form-switch.form-check-reverse .form-check-input { + margin-right: -2.5em; + margin-left: 0 +} + +.form-check-inline { + display: inline-block; + margin-right: 1rem +} + +.btn-check { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none +} + +.btn-check:disabled+.btn, +.btn-check[disabled]+.btn { + pointer-events: none; + filter: none; + opacity: .65 +} + +[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus) { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e") +} + +.form-range { + width: 100%; + height: 1.5rem; + padding: 0; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: transparent +} + +.form-range:focus { + outline: 0 +} + +.form-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 .25rem rgba(13, 110, 253, .25) +} + +.form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 .25rem rgba(13, 110, 253, .25) +} + +.form-range::-moz-focus-outer { + border: 0 +} + +.form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -.25rem; + -webkit-appearance: none; + appearance: none; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; + transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out +} + +@media (prefers-reduced-motion:reduce) { + .form-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none + } +} + +.form-range::-webkit-slider-thumb:active { + background-color: #b6d4fe +} + +.form-range::-webkit-slider-runnable-track { + width: 100%; + height: .5rem; + color: transparent; + cursor: pointer; + background-color: var(--bs-secondary-bg); + border-color: transparent; + border-radius: 1rem +} + +.form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + -moz-appearance: none; + appearance: none; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -moz-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; + transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out +} + +@media (prefers-reduced-motion:reduce) { + .form-range::-moz-range-thumb { + -moz-transition: none; + transition: none + } +} + +.form-range::-moz-range-thumb:active { + background-color: #b6d4fe +} + +.form-range::-moz-range-track { + width: 100%; + height: .5rem; + color: transparent; + cursor: pointer; + background-color: var(--bs-secondary-bg); + border-color: transparent; + border-radius: 1rem +} + +.form-range:disabled { + pointer-events: none +} + +.form-range:disabled::-webkit-slider-thumb { + background-color: var(--bs-secondary-color) +} + +.form-range:disabled::-moz-range-thumb { + background-color: var(--bs-secondary-color) +} + +.form-floating { + position: relative +} + +.form-floating>.form-control, +.form-floating>.form-control-plaintext, +.form-floating>.form-select { + height: calc(3.5rem + calc(var(--bs-border-width) * 2)); + min-height: calc(3.5rem + calc(var(--bs-border-width) * 2)); + line-height: 1.25 +} + +.form-floating>label { + position: absolute; + top: 0; + left: 0; + z-index: 2; + max-width: 100%; + height: 100%; + padding: 1rem .75rem; + overflow: hidden; + color: rgba(var(--bs-body-color-rgb), .65); + text-align: start; + text-overflow: ellipsis; + white-space: nowrap; + pointer-events: none; + border: var(--bs-border-width) solid transparent; + transform-origin: 0 0; + transition: opacity .1s ease-in-out, transform .1s ease-in-out +} + +@media (prefers-reduced-motion:reduce) { + .form-floating>label { + transition: none + } +} + +.form-floating>.form-control, +.form-floating>.form-control-plaintext { + padding: 1rem .75rem +} + +.form-floating>.form-control-plaintext::placeholder, +.form-floating>.form-control::placeholder { + color: transparent +} + +.form-floating>.form-control-plaintext:focus, +.form-floating>.form-control-plaintext:not(:placeholder-shown), +.form-floating>.form-control:focus, +.form-floating>.form-control:not(:placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: .625rem +} + +.form-floating>.form-control-plaintext:-webkit-autofill, +.form-floating>.form-control:-webkit-autofill { + padding-top: 1.625rem; + padding-bottom: .625rem +} + +.form-floating>.form-select { + padding-top: 1.625rem; + padding-bottom: .625rem; + padding-left: .75rem +} + +.form-floating>.form-control-plaintext~label, +.form-floating>.form-control:focus~label, +.form-floating>.form-control:not(:placeholder-shown)~label, +.form-floating>.form-select~label { + transform: scale(.85) translateY(-.5rem) translateX(.15rem) +} + +.form-floating>.form-control:-webkit-autofill~label { + transform: scale(.85) translateY(-.5rem) translateX(.15rem) +} + +.form-floating>textarea:focus~label::after, +.form-floating>textarea:not(:placeholder-shown)~label::after { + position: absolute; + inset: 1rem 0.375rem; + z-index: -1; + height: 1.5em; + content: ""; + background-color: var(--bs-body-bg); + border-radius: var(--bs-border-radius) +} + +.form-floating>textarea:disabled~label::after { + background-color: var(--bs-secondary-bg) +} + +.form-floating>.form-control-plaintext~label { + border-width: var(--bs-border-width) 0 +} + +.form-floating>.form-control:disabled~label, +.form-floating>:disabled~label { + color: #6c757d +} + +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100% +} + +.input-group>.form-control, +.input-group>.form-floating, +.input-group>.form-select { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0 +} + +.input-group>.form-control:focus, +.input-group>.form-floating:focus-within, +.input-group>.form-select:focus { + z-index: 5 +} + +.input-group .btn { + position: relative; + z-index: 2 +} + +.input-group .btn:focus { + z-index: 5 +} + +.input-group-text { + display: flex; + align-items: center; + padding: .375rem .75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: var(--bs-body-color); + text-align: center; + white-space: nowrap; + background-color: var(--bs-tertiary-bg); + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius) +} + +.input-group-lg>.btn, +.input-group-lg>.form-control, +.input-group-lg>.form-select, +.input-group-lg>.input-group-text { + padding: .5rem 1rem; + font-size: 1.25rem; + border-radius: var(--bs-border-radius-lg) +} + +.input-group-sm>.btn, +.input-group-sm>.form-control, +.input-group-sm>.form-select, +.input-group-sm>.input-group-text { + padding: .25rem .5rem; + font-size: .875rem; + border-radius: var(--bs-border-radius-sm) +} + +.input-group-lg>.form-select, +.input-group-sm>.form-select { + padding-right: 3rem +} + +.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3), +.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control, +.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select, +.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4), +.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control, +.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select, +.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { + margin-left: calc(-1 * var(--bs-border-width)); + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.input-group>.form-floating:not(:first-child)>.form-control, +.input-group>.form-floating:not(:first-child)>.form-select { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: .25rem; + font-size: .875em; + color: var(--bs-form-valid-color) +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: .25rem .5rem; + margin-top: .1rem; + font-size: .875rem; + color: #fff; + background-color: var(--bs-success); + border-radius: var(--bs-border-radius) +} + +.is-valid~.valid-feedback, +.is-valid~.valid-tooltip, +.was-validated :valid~.valid-feedback, +.was-validated :valid~.valid-tooltip { + display: block +} + +.form-control.is-valid, +.was-validated .form-control:valid { + border-color: var(--bs-form-valid-border-color); + padding-right: calc(1.5em + .75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(.375em + .1875rem) center; + background-size: calc(.75em + .375rem) calc(.75em + .375rem) +} + +.form-control.is-valid:focus, +.was-validated .form-control:valid:focus { + border-color: var(--bs-form-valid-border-color); + box-shadow: 0 0 0 .25rem rgba(var(--bs-success-rgb), .25) +} + +.was-validated textarea.form-control:valid, +textarea.form-control.is-valid { + padding-right: calc(1.5em + .75rem); + background-position: top calc(.375em + .1875rem) right calc(.375em + .1875rem) +} + +.form-select.is-valid, +.was-validated .form-select:valid { + border-color: var(--bs-form-valid-border-color) +} + +.form-select.is-valid:not([multiple]):not([size]), +.form-select.is-valid:not([multiple])[size="1"], +.was-validated .form-select:valid:not([multiple]):not([size]), +.was-validated .form-select:valid:not([multiple])[size="1"] { + --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1'/%3e%3c/svg%3e"); + padding-right: 4.125rem; + background-position: right .75rem center, center right 2.25rem; + background-size: 16px 12px, calc(.75em + .375rem) calc(.75em + .375rem) +} + +.form-select.is-valid:focus, +.was-validated .form-select:valid:focus { + border-color: var(--bs-form-valid-border-color); + box-shadow: 0 0 0 .25rem rgba(var(--bs-success-rgb), .25) +} + +.form-control-color.is-valid, +.was-validated .form-control-color:valid { + width: calc(3rem + calc(1.5em + .75rem)) +} + +.form-check-input.is-valid, +.was-validated .form-check-input:valid { + border-color: var(--bs-form-valid-border-color) +} + +.form-check-input.is-valid:checked, +.was-validated .form-check-input:valid:checked { + background-color: var(--bs-form-valid-color) +} + +.form-check-input.is-valid:focus, +.was-validated .form-check-input:valid:focus { + box-shadow: 0 0 0 .25rem rgba(var(--bs-success-rgb), .25) +} + +.form-check-input.is-valid~.form-check-label, +.was-validated .form-check-input:valid~.form-check-label { + color: var(--bs-form-valid-color) +} + +.form-check-inline .form-check-input~.valid-feedback { + margin-left: .5em +} + +.input-group>.form-control:not(:focus).is-valid, +.input-group>.form-floating:not(:focus-within).is-valid, +.input-group>.form-select:not(:focus).is-valid, +.was-validated .input-group>.form-control:not(:focus):valid, +.was-validated .input-group>.form-floating:not(:focus-within):valid, +.was-validated .input-group>.form-select:not(:focus):valid { + z-index: 3 +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: .25rem; + font-size: .875em; + color: var(--bs-form-invalid-color) +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: .25rem .5rem; + margin-top: .1rem; + font-size: .875rem; + color: #fff; + background-color: var(--bs-danger); + border-radius: var(--bs-border-radius) +} + +.is-invalid~.invalid-feedback, +.is-invalid~.invalid-tooltip, +.was-validated :invalid~.invalid-feedback, +.was-validated :invalid~.invalid-tooltip { + display: block +} + +.form-control.is-invalid, +.was-validated .form-control:invalid { + border-color: var(--bs-form-invalid-border-color); + padding-right: calc(1.5em + .75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(.375em + .1875rem) center; + background-size: calc(.75em + .375rem) calc(.75em + .375rem) +} + +.form-control.is-invalid:focus, +.was-validated .form-control:invalid:focus { + border-color: var(--bs-form-invalid-border-color); + box-shadow: 0 0 0 .25rem rgba(var(--bs-danger-rgb), .25) +} + +.was-validated textarea.form-control:invalid, +textarea.form-control.is-invalid { + padding-right: calc(1.5em + .75rem); + background-position: top calc(.375em + .1875rem) right calc(.375em + .1875rem) +} + +.form-select.is-invalid, +.was-validated .form-select:invalid { + border-color: var(--bs-form-invalid-border-color) +} + +.form-select.is-invalid:not([multiple]):not([size]), +.form-select.is-invalid:not([multiple])[size="1"], +.was-validated .form-select:invalid:not([multiple]):not([size]), +.was-validated .form-select:invalid:not([multiple])[size="1"] { + --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + padding-right: 4.125rem; + background-position: right .75rem center, center right 2.25rem; + background-size: 16px 12px, calc(.75em + .375rem) calc(.75em + .375rem) +} + +.form-select.is-invalid:focus, +.was-validated .form-select:invalid:focus { + border-color: var(--bs-form-invalid-border-color); + box-shadow: 0 0 0 .25rem rgba(var(--bs-danger-rgb), .25) +} + +.form-control-color.is-invalid, +.was-validated .form-control-color:invalid { + width: calc(3rem + calc(1.5em + .75rem)) +} + +.form-check-input.is-invalid, +.was-validated .form-check-input:invalid { + border-color: var(--bs-form-invalid-border-color) +} + +.form-check-input.is-invalid:checked, +.was-validated .form-check-input:invalid:checked { + background-color: var(--bs-form-invalid-color) +} + +.form-check-input.is-invalid:focus, +.was-validated .form-check-input:invalid:focus { + box-shadow: 0 0 0 .25rem rgba(var(--bs-danger-rgb), .25) +} + +.form-check-input.is-invalid~.form-check-label, +.was-validated .form-check-input:invalid~.form-check-label { + color: var(--bs-form-invalid-color) +} + +.form-check-inline .form-check-input~.invalid-feedback { + margin-left: .5em +} + +.input-group>.form-control:not(:focus).is-invalid, +.input-group>.form-floating:not(:focus-within).is-invalid, +.input-group>.form-select:not(:focus).is-invalid, +.was-validated .input-group>.form-control:not(:focus):invalid, +.was-validated .input-group>.form-floating:not(:focus-within):invalid, +.was-validated .input-group>.form-select:not(:focus):invalid { + z-index: 4 +} + +.btn { + --bs-btn-padding-x: 0.75rem; + --bs-btn-padding-y: 0.375rem; + --bs-btn-font-family: ; + --bs-btn-font-size: 1rem; + --bs-btn-font-weight: 400; + --bs-btn-line-height: 1.5; + --bs-btn-color: var(--bs-body-color); + --bs-btn-bg: transparent; + --bs-btn-border-width: var(--bs-border-width); + --bs-btn-border-color: transparent; + --bs-btn-border-radius: var(--bs-border-radius); + --bs-btn-hover-border-color: transparent; + --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); + --bs-btn-disabled-opacity: 0.65; + --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5); + display: inline-block; + padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x); + font-family: var(--bs-btn-font-family); + font-size: var(--bs-btn-font-size); + font-weight: var(--bs-btn-font-weight); + line-height: var(--bs-btn-line-height); + color: var(--bs-btn-color); + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + border: var(--bs-btn-border-width) solid var(--bs-btn-border-color); + border-radius: var(--bs-btn-border-radius); + background-color: var(--bs-btn-bg); + transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out +} + +@media (prefers-reduced-motion:reduce) { + .btn { + transition: none + } +} + +.btn:hover { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color) +} + +.btn-check+.btn:hover { + color: var(--bs-btn-color); + background-color: var(--bs-btn-bg); + border-color: var(--bs-btn-border-color) +} + +.btn:focus-visible { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow) +} + +.btn-check:focus-visible+.btn { + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow) +} + +.btn-check:checked+.btn, +.btn.active, +.btn.show, +.btn:first-child:active, +:not(.btn-check)+.btn:active { + color: var(--bs-btn-active-color); + background-color: var(--bs-btn-active-bg); + border-color: var(--bs-btn-active-border-color) +} + +.btn-check:checked+.btn:focus-visible, +.btn.active:focus-visible, +.btn.show:focus-visible, +.btn:first-child:active:focus-visible, +:not(.btn-check)+.btn:active:focus-visible { + box-shadow: var(--bs-btn-focus-box-shadow) +} + +.btn-check:checked:focus-visible+.btn { + box-shadow: var(--bs-btn-focus-box-shadow) +} + +.btn.disabled, +.btn:disabled, +fieldset:disabled .btn { + color: var(--bs-btn-disabled-color); + pointer-events: none; + background-color: var(--bs-btn-disabled-bg); + border-color: var(--bs-btn-disabled-border-color); + opacity: var(--bs-btn-disabled-opacity) +} + +.btn-primary { + --bs-btn-color: #fff; + --bs-btn-bg: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #0b5ed7; + --bs-btn-hover-border-color: #0a58ca; + --bs-btn-focus-shadow-rgb: 49, 132, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #0a58ca; + --bs-btn-active-border-color: #0a53be; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #0d6efd; + --bs-btn-disabled-border-color: #0d6efd +} + +.btn-secondary { + --bs-btn-color: #fff; + --bs-btn-bg: #6c757d; + --bs-btn-border-color: #6c757d; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #5c636a; + --bs-btn-hover-border-color: #565e64; + --bs-btn-focus-shadow-rgb: 130, 138, 145; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #565e64; + --bs-btn-active-border-color: #51585e; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #6c757d; + --bs-btn-disabled-border-color: #6c757d +} + +.btn-success { + --bs-btn-color: #fff; + --bs-btn-bg: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #157347; + --bs-btn-hover-border-color: #146c43; + --bs-btn-focus-shadow-rgb: 60, 153, 110; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #146c43; + --bs-btn-active-border-color: #13653f; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #198754; + --bs-btn-disabled-border-color: #198754 +} + +.btn-info { + --bs-btn-color: #000; + --bs-btn-bg: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #31d2f2; + --bs-btn-hover-border-color: #25cff2; + --bs-btn-focus-shadow-rgb: 11, 172, 204; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #3dd5f3; + --bs-btn-active-border-color: #25cff2; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #0dcaf0; + --bs-btn-disabled-border-color: #0dcaf0 +} + +.btn-warning { + --bs-btn-color: #000; + --bs-btn-bg: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffca2c; + --bs-btn-hover-border-color: #ffc720; + --bs-btn-focus-shadow-rgb: 217, 164, 6; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffcd39; + --bs-btn-active-border-color: #ffc720; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #ffc107; + --bs-btn-disabled-border-color: #ffc107 +} + +.btn-danger { + --bs-btn-color: #fff; + --bs-btn-bg: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #bb2d3b; + --bs-btn-hover-border-color: #b02a37; + --bs-btn-focus-shadow-rgb: 225, 83, 97; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #b02a37; + --bs-btn-active-border-color: #a52834; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #dc3545; + --bs-btn-disabled-border-color: #dc3545 +} + +.btn-light { + --bs-btn-color: #000; + --bs-btn-bg: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #d3d4d5; + --bs-btn-hover-border-color: #c6c7c8; + --bs-btn-focus-shadow-rgb: 211, 212, 213; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #c6c7c8; + --bs-btn-active-border-color: #babbbc; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #f8f9fa; + --bs-btn-disabled-border-color: #f8f9fa +} + +.btn-dark { + --bs-btn-color: #fff; + --bs-btn-bg: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #424649; + --bs-btn-hover-border-color: #373b3e; + --bs-btn-focus-shadow-rgb: 66, 70, 73; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #4d5154; + --bs-btn-active-border-color: #373b3e; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #212529; + --bs-btn-disabled-border-color: #212529 +} + +.btn-outline-primary { + --bs-btn-color: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #0d6efd; + --bs-btn-hover-border-color: #0d6efd; + --bs-btn-focus-shadow-rgb: 13, 110, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #0d6efd; + --bs-btn-active-border-color: #0d6efd; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #0d6efd; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #0d6efd; + --bs-gradient: none +} + +.btn-outline-secondary { + --bs-btn-color: #6c757d; + --bs-btn-border-color: #6c757d; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #6c757d; + --bs-btn-hover-border-color: #6c757d; + --bs-btn-focus-shadow-rgb: 108, 117, 125; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #6c757d; + --bs-btn-active-border-color: #6c757d; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #6c757d; + --bs-gradient: none +} + +.btn-outline-success { + --bs-btn-color: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #198754; + --bs-btn-hover-border-color: #198754; + --bs-btn-focus-shadow-rgb: 25, 135, 84; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #198754; + --bs-btn-active-border-color: #198754; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #198754; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #198754; + --bs-gradient: none +} + +.btn-outline-info { + --bs-btn-color: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #0dcaf0; + --bs-btn-hover-border-color: #0dcaf0; + --bs-btn-focus-shadow-rgb: 13, 202, 240; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #0dcaf0; + --bs-btn-active-border-color: #0dcaf0; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #0dcaf0; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #0dcaf0; + --bs-gradient: none +} + +.btn-outline-warning { + --bs-btn-color: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffc107; + --bs-btn-hover-border-color: #ffc107; + --bs-btn-focus-shadow-rgb: 255, 193, 7; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffc107; + --bs-btn-active-border-color: #ffc107; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #ffc107; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #ffc107; + --bs-gradient: none +} + +.btn-outline-danger { + --bs-btn-color: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #dc3545; + --bs-btn-hover-border-color: #dc3545; + --bs-btn-focus-shadow-rgb: 220, 53, 69; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #dc3545; + --bs-btn-active-border-color: #dc3545; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #dc3545; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #dc3545; + --bs-gradient: none +} + +.btn-outline-light { + --bs-btn-color: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #f8f9fa; + --bs-btn-hover-border-color: #f8f9fa; + --bs-btn-focus-shadow-rgb: 248, 249, 250; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #f8f9fa; + --bs-btn-active-border-color: #f8f9fa; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #f8f9fa; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #f8f9fa; + --bs-gradient: none +} + +.btn-outline-dark { + --bs-btn-color: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #212529; + --bs-btn-hover-border-color: #212529; + --bs-btn-focus-shadow-rgb: 33, 37, 41; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #212529; + --bs-btn-active-border-color: #212529; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #212529; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #212529; + --bs-gradient: none +} + +.btn-link { + --bs-btn-font-weight: 400; + --bs-btn-color: var(--bs-link-color); + --bs-btn-bg: transparent; + --bs-btn-border-color: transparent; + --bs-btn-hover-color: var(--bs-link-hover-color); + --bs-btn-hover-border-color: transparent; + --bs-btn-active-color: var(--bs-link-hover-color); + --bs-btn-active-border-color: transparent; + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-border-color: transparent; + --bs-btn-box-shadow: 0 0 0 #000; + --bs-btn-focus-shadow-rgb: 49, 132, 253; + text-decoration: underline +} + +.btn-link:focus-visible { + color: var(--bs-btn-color) +} + +.btn-link:hover { + color: var(--bs-btn-hover-color) +} + +.btn-group-lg>.btn, +.btn-lg { + --bs-btn-padding-y: 0.5rem; + --bs-btn-padding-x: 1rem; + --bs-btn-font-size: 1.25rem; + --bs-btn-border-radius: var(--bs-border-radius-lg) +} + +.btn-group-sm>.btn, +.btn-sm { + --bs-btn-padding-y: 0.25rem; + --bs-btn-padding-x: 0.5rem; + --bs-btn-font-size: 0.875rem; + --bs-btn-border-radius: var(--bs-border-radius-sm) +} + +.fade { + transition: opacity .15s linear +} + +@media (prefers-reduced-motion:reduce) { + .fade { + transition: none + } +} + +.fade:not(.show) { + opacity: 0 +} + +.collapse:not(.show) { + display: none +} + +.collapsing { + height: 0; + overflow: hidden; + transition: height .35s ease +} + +@media (prefers-reduced-motion:reduce) { + .collapsing { + transition: none + } +} + +.collapsing.collapse-horizontal { + width: 0; + height: auto; + transition: width .35s ease +} + +@media (prefers-reduced-motion:reduce) { + .collapsing.collapse-horizontal { + transition: none + } +} + +.dropdown, +.dropdown-center, +.dropend, +.dropstart, +.dropup, +.dropup-center { + position: relative +} + +.dropdown-toggle { + white-space: nowrap +} + +.dropdown-toggle::after { + display: inline-block; + margin-left: .255em; + vertical-align: .255em; + content: ""; + border-top: .3em solid; + border-right: .3em solid transparent; + border-bottom: 0; + border-left: .3em solid transparent +} + +.dropdown-toggle:empty::after { + margin-left: 0 +} + +.dropdown-menu { + --bs-dropdown-zindex: 1000; + --bs-dropdown-min-width: 10rem; + --bs-dropdown-padding-x: 0; + --bs-dropdown-padding-y: 0.5rem; + --bs-dropdown-spacer: 0.125rem; + --bs-dropdown-font-size: 1rem; + --bs-dropdown-color: var(--bs-body-color); + --bs-dropdown-bg: var(--bs-body-bg); + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-border-radius: var(--bs-border-radius); + --bs-dropdown-border-width: var(--bs-border-width); + --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width)); + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-divider-margin-y: 0.5rem; + --bs-dropdown-box-shadow: var(--bs-box-shadow); + --bs-dropdown-link-color: var(--bs-body-color); + --bs-dropdown-link-hover-color: var(--bs-body-color); + --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg); + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #0d6efd; + --bs-dropdown-link-disabled-color: var(--bs-tertiary-color); + --bs-dropdown-item-padding-x: 1rem; + --bs-dropdown-item-padding-y: 0.25rem; + --bs-dropdown-header-color: #6c757d; + --bs-dropdown-header-padding-x: 1rem; + --bs-dropdown-header-padding-y: 0.5rem; + position: absolute; + z-index: var(--bs-dropdown-zindex); + display: none; + min-width: var(--bs-dropdown-min-width); + padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x); + margin: 0; + font-size: var(--bs-dropdown-font-size); + color: var(--bs-dropdown-color); + text-align: left; + list-style: none; + background-color: var(--bs-dropdown-bg); + background-clip: padding-box; + border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color); + border-radius: var(--bs-dropdown-border-radius) +} + +.dropdown-menu[data-bs-popper] { + top: 100%; + left: 0; + margin-top: var(--bs-dropdown-spacer) +} + +.dropdown-menu-start { + --bs-position: start +} + +.dropdown-menu-start[data-bs-popper] { + right: auto; + left: 0 +} + +.dropdown-menu-end { + --bs-position: end +} + +.dropdown-menu-end[data-bs-popper] { + right: 0; + left: auto +} + +@media (min-width:576px) { + .dropdown-menu-sm-start { + --bs-position: start + } + + .dropdown-menu-sm-start[data-bs-popper] { + right: auto; + left: 0 + } + + .dropdown-menu-sm-end { + --bs-position: end + } + + .dropdown-menu-sm-end[data-bs-popper] { + right: 0; + left: auto + } +} + +@media (min-width:768px) { + .dropdown-menu-md-start { + --bs-position: start + } + + .dropdown-menu-md-start[data-bs-popper] { + right: auto; + left: 0 + } + + .dropdown-menu-md-end { + --bs-position: end + } + + .dropdown-menu-md-end[data-bs-popper] { + right: 0; + left: auto + } +} + +@media (min-width:992px) { + .dropdown-menu-lg-start { + --bs-position: start + } + + .dropdown-menu-lg-start[data-bs-popper] { + right: auto; + left: 0 + } + + .dropdown-menu-lg-end { + --bs-position: end + } + + .dropdown-menu-lg-end[data-bs-popper] { + right: 0; + left: auto + } +} + +@media (min-width:1200px) { + .dropdown-menu-xl-start { + --bs-position: start + } + + .dropdown-menu-xl-start[data-bs-popper] { + right: auto; + left: 0 + } + + .dropdown-menu-xl-end { + --bs-position: end + } + + .dropdown-menu-xl-end[data-bs-popper] { + right: 0; + left: auto + } +} + +@media (min-width:1400px) { + .dropdown-menu-xxl-start { + --bs-position: start + } + + .dropdown-menu-xxl-start[data-bs-popper] { + right: auto; + left: 0 + } + + .dropdown-menu-xxl-end { + --bs-position: end + } + + .dropdown-menu-xxl-end[data-bs-popper] { + right: 0; + left: auto + } +} + +.dropup .dropdown-menu[data-bs-popper] { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: var(--bs-dropdown-spacer) +} + +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: .255em; + vertical-align: .255em; + content: ""; + border-top: 0; + border-right: .3em solid transparent; + border-bottom: .3em solid; + border-left: .3em solid transparent +} + +.dropup .dropdown-toggle:empty::after { + margin-left: 0 +} + +.dropend .dropdown-menu[data-bs-popper] { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: var(--bs-dropdown-spacer) +} + +.dropend .dropdown-toggle::after { + display: inline-block; + margin-left: .255em; + vertical-align: .255em; + content: ""; + border-top: .3em solid transparent; + border-right: 0; + border-bottom: .3em solid transparent; + border-left: .3em solid +} + +.dropend .dropdown-toggle:empty::after { + margin-left: 0 +} + +.dropend .dropdown-toggle::after { + vertical-align: 0 +} + +.dropstart .dropdown-menu[data-bs-popper] { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: var(--bs-dropdown-spacer) +} + +.dropstart .dropdown-toggle::after { + display: inline-block; + margin-left: .255em; + vertical-align: .255em; + content: "" +} + +.dropstart .dropdown-toggle::after { + display: none +} + +.dropstart .dropdown-toggle::before { + display: inline-block; + margin-right: .255em; + vertical-align: .255em; + content: ""; + border-top: .3em solid transparent; + border-right: .3em solid; + border-bottom: .3em solid transparent +} + +.dropstart .dropdown-toggle:empty::after { + margin-left: 0 +} + +.dropstart .dropdown-toggle::before { + vertical-align: 0 +} + +.dropdown-divider { + height: 0; + margin: var(--bs-dropdown-divider-margin-y) 0; + overflow: hidden; + border-top: 1px solid var(--bs-dropdown-divider-bg); + opacity: 1 +} + +.dropdown-item { + display: block; + width: 100%; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + clear: both; + font-weight: 400; + color: var(--bs-dropdown-link-color); + text-align: inherit; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border: 0; + border-radius: var(--bs-dropdown-item-border-radius, 0) +} + +.dropdown-item:focus, +.dropdown-item:hover { + color: var(--bs-dropdown-link-hover-color); + background-color: var(--bs-dropdown-link-hover-bg) +} + +.dropdown-item.active, +.dropdown-item:active { + color: var(--bs-dropdown-link-active-color); + text-decoration: none; + background-color: var(--bs-dropdown-link-active-bg) +} + +.dropdown-item.disabled, +.dropdown-item:disabled { + color: var(--bs-dropdown-link-disabled-color); + pointer-events: none; + background-color: transparent +} + +.dropdown-menu.show { + display: block +} + +.dropdown-header { + display: block; + padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x); + margin-bottom: 0; + font-size: .875rem; + color: var(--bs-dropdown-header-color); + white-space: nowrap +} + +.dropdown-item-text { + display: block; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + color: var(--bs-dropdown-link-color) +} + +.dropdown-menu-dark { + --bs-dropdown-color: #dee2e6; + --bs-dropdown-bg: #343a40; + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-box-shadow: ; + --bs-dropdown-link-color: #dee2e6; + --bs-dropdown-link-hover-color: #fff; + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15); + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #0d6efd; + --bs-dropdown-link-disabled-color: #adb5bd; + --bs-dropdown-header-color: #adb5bd +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle +} + +.btn-group-vertical>.btn, +.btn-group>.btn { + position: relative; + flex: 1 1 auto +} + +.btn-group-vertical>.btn-check:checked+.btn, +.btn-group-vertical>.btn-check:focus+.btn, +.btn-group-vertical>.btn.active, +.btn-group-vertical>.btn:active, +.btn-group-vertical>.btn:focus, +.btn-group-vertical>.btn:hover, +.btn-group>.btn-check:checked+.btn, +.btn-group>.btn-check:focus+.btn, +.btn-group>.btn.active, +.btn-group>.btn:active, +.btn-group>.btn:focus, +.btn-group>.btn:hover { + z-index: 1 +} + +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start +} + +.btn-toolbar .input-group { + width: auto +} + +.btn-group { + border-radius: var(--bs-border-radius) +} + +.btn-group>.btn-group:not(:first-child), +.btn-group>:not(.btn-check:first-child)+.btn { + margin-left: calc(-1 * var(--bs-border-width)) +} + +.btn-group>.btn-group:not(:last-child)>.btn, +.btn-group>.btn.dropdown-toggle-split:first-child, +.btn-group>.btn:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.btn-group>.btn-group:not(:first-child)>.btn, +.btn-group>.btn:nth-child(n+3), +.btn-group>:not(.btn-check)+.btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.dropdown-toggle-split { + padding-right: .5625rem; + padding-left: .5625rem +} + +.dropdown-toggle-split::after, +.dropend .dropdown-toggle-split::after, +.dropup .dropdown-toggle-split::after { + margin-left: 0 +} + +.dropstart .dropdown-toggle-split::before { + margin-right: 0 +} + +.btn-group-sm>.btn+.dropdown-toggle-split, +.btn-sm+.dropdown-toggle-split { + padding-right: .375rem; + padding-left: .375rem +} + +.btn-group-lg>.btn+.dropdown-toggle-split, +.btn-lg+.dropdown-toggle-split { + padding-right: .75rem; + padding-left: .75rem +} + +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center +} + +.btn-group-vertical>.btn, +.btn-group-vertical>.btn-group { + width: 100% +} + +.btn-group-vertical>.btn-group:not(:first-child), +.btn-group-vertical>.btn:not(:first-child) { + margin-top: calc(-1 * var(--bs-border-width)) +} + +.btn-group-vertical>.btn-group:not(:last-child)>.btn, +.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.btn-group-vertical>.btn-group:not(:first-child)>.btn, +.btn-group-vertical>.btn:nth-child(n+3), +.btn-group-vertical>:not(.btn-check)+.btn { + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.nav { + --bs-nav-link-padding-x: 1rem; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-font-weight: ; + --bs-nav-link-color: var(--bs-link-color); + --bs-nav-link-hover-color: var(--bs-link-hover-color); + --bs-nav-link-disabled-color: var(--bs-secondary-color); + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none +} + +.nav-link { + display: block; + padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x); + font-size: var(--bs-nav-link-font-size); + font-weight: var(--bs-nav-link-font-weight); + color: var(--bs-nav-link-color); + text-decoration: none; + background: 0 0; + border: 0; + transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out +} + +@media (prefers-reduced-motion:reduce) { + .nav-link { + transition: none + } +} + +.nav-link:focus, +.nav-link:hover { + color: var(--bs-nav-link-hover-color) +} + +.nav-link:focus-visible { + outline: 0; + box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25) +} + +.nav-link.disabled, +.nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + pointer-events: none; + cursor: default +} + +.nav-tabs { + --bs-nav-tabs-border-width: var(--bs-border-width); + --bs-nav-tabs-border-color: var(--bs-border-color); + --bs-nav-tabs-border-radius: var(--bs-border-radius); + --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color); + --bs-nav-tabs-link-active-color: var(--bs-emphasis-color); + --bs-nav-tabs-link-active-bg: var(--bs-body-bg); + --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg); + border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color) +} + +.nav-tabs .nav-link { + margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width)); + border: var(--bs-nav-tabs-border-width) solid transparent; + border-top-left-radius: var(--bs-nav-tabs-border-radius); + border-top-right-radius: var(--bs-nav-tabs-border-radius) +} + +.nav-tabs .nav-link:focus, +.nav-tabs .nav-link:hover { + isolation: isolate; + border-color: var(--bs-nav-tabs-link-hover-border-color) +} + +.nav-tabs .nav-item.show .nav-link, +.nav-tabs .nav-link.active { + color: var(--bs-nav-tabs-link-active-color); + background-color: var(--bs-nav-tabs-link-active-bg); + border-color: var(--bs-nav-tabs-link-active-border-color) +} + +.nav-tabs .dropdown-menu { + margin-top: calc(-1 * var(--bs-nav-tabs-border-width)); + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.nav-pills { + --bs-nav-pills-border-radius: var(--bs-border-radius); + --bs-nav-pills-link-active-color: #fff; + --bs-nav-pills-link-active-bg: #0d6efd +} + +.nav-pills .nav-link { + border-radius: var(--bs-nav-pills-border-radius) +} + +.nav-pills .nav-link.active, +.nav-pills .show>.nav-link { + color: var(--bs-nav-pills-link-active-color); + background-color: var(--bs-nav-pills-link-active-bg) +} + +.nav-underline { + --bs-nav-underline-gap: 1rem; + --bs-nav-underline-border-width: 0.125rem; + --bs-nav-underline-link-active-color: var(--bs-emphasis-color); + gap: var(--bs-nav-underline-gap) +} + +.nav-underline .nav-link { + padding-right: 0; + padding-left: 0; + border-bottom: var(--bs-nav-underline-border-width) solid transparent +} + +.nav-underline .nav-link:focus, +.nav-underline .nav-link:hover { + border-bottom-color: currentcolor +} + +.nav-underline .nav-link.active, +.nav-underline .show>.nav-link { + font-weight: 700; + color: var(--bs-nav-underline-link-active-color); + border-bottom-color: currentcolor +} + +.nav-fill .nav-item, +.nav-fill>.nav-link { + flex: 1 1 auto; + text-align: center +} + +.nav-justified .nav-item, +.nav-justified>.nav-link { + flex-grow: 1; + flex-basis: 0; + text-align: center +} + +.nav-fill .nav-item .nav-link, +.nav-justified .nav-item .nav-link { + width: 100% +} + +.tab-content>.tab-pane { + display: none +} + +.tab-content>.active { + display: block +} + +.navbar { + --bs-navbar-padding-x: 0; + --bs-navbar-padding-y: 0.5rem; + --bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65); + --bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8); + --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3); + --bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1); + --bs-navbar-brand-padding-y: 0.3125rem; + --bs-navbar-brand-margin-end: 1rem; + --bs-navbar-brand-font-size: 1.25rem; + --bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1); + --bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1); + --bs-navbar-nav-link-padding-x: 0.5rem; + --bs-navbar-toggler-padding-y: 0.25rem; + --bs-navbar-toggler-padding-x: 0.75rem; + --bs-navbar-toggler-font-size: 1.25rem; + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); + --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15); + --bs-navbar-toggler-border-radius: var(--bs-border-radius); + --bs-navbar-toggler-focus-width: 0.25rem; + --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out; + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x) +} + +.navbar>.container, +.navbar>.container-fluid, +.navbar>.container-lg, +.navbar>.container-md, +.navbar>.container-sm, +.navbar>.container-xl, +.navbar>.container-xxl { + display: flex; + flex-wrap: inherit; + align-items: center; + justify-content: space-between +} + +.navbar-brand { + padding-top: var(--bs-navbar-brand-padding-y); + padding-bottom: var(--bs-navbar-brand-padding-y); + margin-right: var(--bs-navbar-brand-margin-end); + font-size: var(--bs-navbar-brand-font-size); + color: var(--bs-navbar-brand-color); + text-decoration: none; + white-space: nowrap +} + +.navbar-brand:focus, +.navbar-brand:hover { + color: var(--bs-navbar-brand-hover-color) +} + +.navbar-nav { + --bs-nav-link-padding-x: 0; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-font-weight: ; + --bs-nav-link-color: var(--bs-navbar-color); + --bs-nav-link-hover-color: var(--bs-navbar-hover-color); + --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color); + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none +} + +.navbar-nav .nav-link.active, +.navbar-nav .nav-link.show { + color: var(--bs-navbar-active-color) +} + +.navbar-nav .dropdown-menu { + position: static +} + +.navbar-text { + padding-top: .5rem; + padding-bottom: .5rem; + color: var(--bs-navbar-color) +} + +.navbar-text a, +.navbar-text a:focus, +.navbar-text a:hover { + color: var(--bs-navbar-active-color) +} + +.navbar-collapse { + flex-grow: 1; + flex-basis: 100%; + align-items: center +} + +.navbar-toggler { + padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x); + font-size: var(--bs-navbar-toggler-font-size); + line-height: 1; + color: var(--bs-navbar-color); + background-color: transparent; + border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color); + border-radius: var(--bs-navbar-toggler-border-radius); + transition: var(--bs-navbar-toggler-transition) +} + +@media (prefers-reduced-motion:reduce) { + .navbar-toggler { + transition: none + } +} + +.navbar-toggler:hover { + text-decoration: none +} + +.navbar-toggler:focus { + text-decoration: none; + outline: 0; + box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width) +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + background-image: var(--bs-navbar-toggler-icon-bg); + background-repeat: no-repeat; + background-position: center; + background-size: 100% +} + +.navbar-nav-scroll { + max-height: var(--bs-scroll-height, 75vh); + overflow-y: auto +} + +@media (min-width:576px) { + .navbar-expand-sm { + flex-wrap: nowrap; + justify-content: flex-start + } + + .navbar-expand-sm .navbar-nav { + flex-direction: row + } + + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute + } + + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x) + } + + .navbar-expand-sm .navbar-nav-scroll { + overflow: visible + } + + .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto + } + + .navbar-expand-sm .navbar-toggler { + display: none + } + + .navbar-expand-sm .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none + } + + .navbar-expand-sm .offcanvas .offcanvas-header { + display: none + } + + .navbar-expand-sm .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible + } +} + +@media (min-width:768px) { + .navbar-expand-md { + flex-wrap: nowrap; + justify-content: flex-start + } + + .navbar-expand-md .navbar-nav { + flex-direction: row + } + + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute + } + + .navbar-expand-md .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x) + } + + .navbar-expand-md .navbar-nav-scroll { + overflow: visible + } + + .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto + } + + .navbar-expand-md .navbar-toggler { + display: none + } + + .navbar-expand-md .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none + } + + .navbar-expand-md .offcanvas .offcanvas-header { + display: none + } + + .navbar-expand-md .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible + } +} + +@media (min-width:992px) { + .navbar-expand-lg { + flex-wrap: nowrap; + justify-content: flex-start + } + + .navbar-expand-lg .navbar-nav { + flex-direction: row + } + + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute + } + + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x) + } + + .navbar-expand-lg .navbar-nav-scroll { + overflow: visible + } + + .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto + } + + .navbar-expand-lg .navbar-toggler { + display: none + } + + .navbar-expand-lg .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none + } + + .navbar-expand-lg .offcanvas .offcanvas-header { + display: none + } + + .navbar-expand-lg .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible + } +} + +@media (min-width:1200px) { + .navbar-expand-xl { + flex-wrap: nowrap; + justify-content: flex-start + } + + .navbar-expand-xl .navbar-nav { + flex-direction: row + } + + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute + } + + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x) + } + + .navbar-expand-xl .navbar-nav-scroll { + overflow: visible + } + + .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto + } + + .navbar-expand-xl .navbar-toggler { + display: none + } + + .navbar-expand-xl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none + } + + .navbar-expand-xl .offcanvas .offcanvas-header { + display: none + } + + .navbar-expand-xl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible + } +} + +@media (min-width:1400px) { + .navbar-expand-xxl { + flex-wrap: nowrap; + justify-content: flex-start + } + + .navbar-expand-xxl .navbar-nav { + flex-direction: row + } + + .navbar-expand-xxl .navbar-nav .dropdown-menu { + position: absolute + } + + .navbar-expand-xxl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x) + } + + .navbar-expand-xxl .navbar-nav-scroll { + overflow: visible + } + + .navbar-expand-xxl .navbar-collapse { + display: flex !important; + flex-basis: auto + } + + .navbar-expand-xxl .navbar-toggler { + display: none + } + + .navbar-expand-xxl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none + } + + .navbar-expand-xxl .offcanvas .offcanvas-header { + display: none + } + + .navbar-expand-xxl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible + } +} + +.navbar-expand { + flex-wrap: nowrap; + justify-content: flex-start +} + +.navbar-expand .navbar-nav { + flex-direction: row +} + +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute +} + +.navbar-expand .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x) +} + +.navbar-expand .navbar-nav-scroll { + overflow: visible +} + +.navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto +} + +.navbar-expand .navbar-toggler { + display: none +} + +.navbar-expand .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none +} + +.navbar-expand .offcanvas .offcanvas-header { + display: none +} + +.navbar-expand .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible +} + +.navbar-dark, +.navbar[data-bs-theme=dark] { + --bs-navbar-color: rgba(255, 255, 255, 0.55); + --bs-navbar-hover-color: rgba(255, 255, 255, 0.75); + --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25); + --bs-navbar-active-color: #fff; + --bs-navbar-brand-color: #fff; + --bs-navbar-brand-hover-color: #fff; + --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1); + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") +} + +[data-bs-theme=dark] .navbar-toggler-icon { + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") +} + +.card { + --bs-card-spacer-y: 1rem; + --bs-card-spacer-x: 1rem; + --bs-card-title-spacer-y: 0.5rem; + --bs-card-title-color: ; + --bs-card-subtitle-color: ; + --bs-card-border-width: var(--bs-border-width); + --bs-card-border-color: var(--bs-border-color-translucent); + --bs-card-border-radius: var(--bs-border-radius); + --bs-card-box-shadow: ; + --bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width))); + --bs-card-cap-padding-y: 0.5rem; + --bs-card-cap-padding-x: 1rem; + --bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03); + --bs-card-cap-color: ; + --bs-card-height: ; + --bs-card-color: ; + --bs-card-bg: var(--bs-body-bg); + --bs-card-img-overlay-padding: 1rem; + --bs-card-group-margin: 0.75rem; + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + height: var(--bs-card-height); + color: var(--bs-body-color); + word-wrap: break-word; + background-color: var(--bs-card-bg); + background-clip: border-box; + border: var(--bs-card-border-width) solid var(--bs-card-border-color); + border-radius: var(--bs-card-border-radius) +} + +.card>hr { + margin-right: 0; + margin-left: 0 +} + +.card>.list-group { + border-top: inherit; + border-bottom: inherit +} + +.card>.list-group:first-child { + border-top-width: 0; + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius) +} + +.card>.list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius) +} + +.card>.card-header+.list-group, +.card>.list-group+.card-footer { + border-top: 0 +} + +.card-body { + flex: 1 1 auto; + padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x); + color: var(--bs-card-color) +} + +.card-title { + margin-bottom: var(--bs-card-title-spacer-y); + color: var(--bs-card-title-color) +} + +.card-subtitle { + margin-top: calc(-.5 * var(--bs-card-title-spacer-y)); + margin-bottom: 0; + color: var(--bs-card-subtitle-color) +} + +.card-text:last-child { + margin-bottom: 0 +} + +.card-link+.card-link { + margin-left: var(--bs-card-spacer-x) +} + +.card-header { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + margin-bottom: 0; + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color) +} + +.card-header:first-child { + border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0 +} + +.card-footer { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-top: var(--bs-card-border-width) solid var(--bs-card-border-color) +} + +.card-footer:last-child { + border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) +} + +.card-header-tabs { + margin-right: calc(-.5 * var(--bs-card-cap-padding-x)); + margin-bottom: calc(-1 * var(--bs-card-cap-padding-y)); + margin-left: calc(-.5 * var(--bs-card-cap-padding-x)); + border-bottom: 0 +} + +.card-header-tabs .nav-link.active { + background-color: var(--bs-card-bg); + border-bottom-color: var(--bs-card-bg) +} + +.card-header-pills { + margin-right: calc(-.5 * var(--bs-card-cap-padding-x)); + margin-left: calc(-.5 * var(--bs-card-cap-padding-x)) +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: var(--bs-card-img-overlay-padding); + border-radius: var(--bs-card-inner-border-radius) +} + +.card-img, +.card-img-bottom, +.card-img-top { + width: 100% +} + +.card-img, +.card-img-top { + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius) +} + +.card-img, +.card-img-bottom { + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius) +} + +.card-group>.card { + margin-bottom: var(--bs-card-group-margin) +} + +@media (min-width:576px) { + .card-group { + display: flex; + flex-flow: row wrap + } + + .card-group>.card { + flex: 1 0 0; + margin-bottom: 0 + } + + .card-group>.card+.card { + margin-left: 0; + border-left: 0 + } + + .card-group>.card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 + } + + .card-group>.card:not(:last-child)>.card-header, + .card-group>.card:not(:last-child)>.card-img-top { + border-top-right-radius: 0 + } + + .card-group>.card:not(:last-child)>.card-footer, + .card-group>.card:not(:last-child)>.card-img-bottom { + border-bottom-right-radius: 0 + } + + .card-group>.card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0 + } + + .card-group>.card:not(:first-child)>.card-header, + .card-group>.card:not(:first-child)>.card-img-top { + border-top-left-radius: 0 + } + + .card-group>.card:not(:first-child)>.card-footer, + .card-group>.card:not(:first-child)>.card-img-bottom { + border-bottom-left-radius: 0 + } +} + +.accordion { + --bs-accordion-color: var(--bs-body-color); + --bs-accordion-bg: var(--bs-body-bg); + --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; + --bs-accordion-border-color: var(--bs-border-color); + --bs-accordion-border-width: var(--bs-border-width); + --bs-accordion-border-radius: var(--bs-border-radius); + --bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width))); + --bs-accordion-btn-padding-x: 1.25rem; + --bs-accordion-btn-padding-y: 1rem; + --bs-accordion-btn-color: var(--bs-body-color); + --bs-accordion-btn-bg: var(--bs-accordion-bg); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon-width: 1.25rem; + --bs-accordion-btn-icon-transform: rotate(-180deg); + --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23052c65' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); + --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-accordion-body-padding-x: 1.25rem; + --bs-accordion-body-padding-y: 1rem; + --bs-accordion-active-color: var(--bs-primary-text-emphasis); + --bs-accordion-active-bg: var(--bs-primary-bg-subtle) +} + +.accordion-button { + position: relative; + display: flex; + align-items: center; + width: 100%; + padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x); + font-size: 1rem; + color: var(--bs-accordion-btn-color); + text-align: left; + background-color: var(--bs-accordion-btn-bg); + border: 0; + border-radius: 0; + overflow-anchor: none; + transition: var(--bs-accordion-transition) +} + +@media (prefers-reduced-motion:reduce) { + .accordion-button { + transition: none + } +} + +.accordion-button:not(.collapsed) { + color: var(--bs-accordion-active-color); + background-color: var(--bs-accordion-active-bg); + box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color) +} + +.accordion-button:not(.collapsed)::after { + background-image: var(--bs-accordion-btn-active-icon); + transform: var(--bs-accordion-btn-icon-transform) +} + +.accordion-button::after { + flex-shrink: 0; + width: var(--bs-accordion-btn-icon-width); + height: var(--bs-accordion-btn-icon-width); + margin-left: auto; + content: ""; + background-image: var(--bs-accordion-btn-icon); + background-repeat: no-repeat; + background-size: var(--bs-accordion-btn-icon-width); + transition: var(--bs-accordion-btn-icon-transition) +} + +@media (prefers-reduced-motion:reduce) { + .accordion-button::after { + transition: none + } +} + +.accordion-button:hover { + z-index: 2 +} + +.accordion-button:focus { + z-index: 3; + outline: 0; + box-shadow: var(--bs-accordion-btn-focus-box-shadow) +} + +.accordion-header { + margin-bottom: 0 +} + +.accordion-item { + color: var(--bs-accordion-color); + background-color: var(--bs-accordion-bg); + border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color) +} + +.accordion-item:first-of-type { + border-top-left-radius: var(--bs-accordion-border-radius); + border-top-right-radius: var(--bs-accordion-border-radius) +} + +.accordion-item:first-of-type>.accordion-header .accordion-button { + border-top-left-radius: var(--bs-accordion-inner-border-radius); + border-top-right-radius: var(--bs-accordion-inner-border-radius) +} + +.accordion-item:not(:first-of-type) { + border-top: 0 +} + +.accordion-item:last-of-type { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius) +} + +.accordion-item:last-of-type>.accordion-header .accordion-button.collapsed { + border-bottom-right-radius: var(--bs-accordion-inner-border-radius); + border-bottom-left-radius: var(--bs-accordion-inner-border-radius) +} + +.accordion-item:last-of-type>.accordion-collapse { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius) +} + +.accordion-body { + padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x) +} + +.accordion-flush>.accordion-item { + border-right: 0; + border-left: 0; + border-radius: 0 +} + +.accordion-flush>.accordion-item:first-child { + border-top: 0 +} + +.accordion-flush>.accordion-item:last-child { + border-bottom: 0 +} + +.accordion-flush>.accordion-item>.accordion-collapse, +.accordion-flush>.accordion-item>.accordion-header .accordion-button, +.accordion-flush>.accordion-item>.accordion-header .accordion-button.collapsed { + border-radius: 0 +} + +[data-bs-theme=dark] .accordion-button::after { + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e") +} + +.breadcrumb { + --bs-breadcrumb-padding-x: 0; + --bs-breadcrumb-padding-y: 0; + --bs-breadcrumb-margin-bottom: 1rem; + --bs-breadcrumb-bg: ; + --bs-breadcrumb-border-radius: ; + --bs-breadcrumb-divider-color: var(--bs-secondary-color); + --bs-breadcrumb-item-padding-x: 0.5rem; + --bs-breadcrumb-item-active-color: var(--bs-secondary-color); + display: flex; + flex-wrap: wrap; + padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x); + margin-bottom: var(--bs-breadcrumb-margin-bottom); + font-size: var(--bs-breadcrumb-font-size); + list-style: none; + background-color: var(--bs-breadcrumb-bg); + border-radius: var(--bs-breadcrumb-border-radius) +} + +.breadcrumb-item+.breadcrumb-item { + padding-left: var(--bs-breadcrumb-item-padding-x) +} + +.breadcrumb-item+.breadcrumb-item::before { + float: left; + padding-right: var(--bs-breadcrumb-item-padding-x); + color: var(--bs-breadcrumb-divider-color); + content: var(--bs-breadcrumb-divider, "/") +} + +.breadcrumb-item.active { + color: var(--bs-breadcrumb-item-active-color) +} + +.pagination { + --bs-pagination-padding-x: 0.75rem; + --bs-pagination-padding-y: 0.375rem; + --bs-pagination-font-size: 1rem; + --bs-pagination-color: var(--bs-link-color); + --bs-pagination-bg: var(--bs-body-bg); + --bs-pagination-border-width: var(--bs-border-width); + --bs-pagination-border-color: var(--bs-border-color); + --bs-pagination-border-radius: var(--bs-border-radius); + --bs-pagination-hover-color: var(--bs-link-hover-color); + --bs-pagination-hover-bg: var(--bs-tertiary-bg); + --bs-pagination-hover-border-color: var(--bs-border-color); + --bs-pagination-focus-color: var(--bs-link-hover-color); + --bs-pagination-focus-bg: var(--bs-secondary-bg); + --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-pagination-active-color: #fff; + --bs-pagination-active-bg: #0d6efd; + --bs-pagination-active-border-color: #0d6efd; + --bs-pagination-disabled-color: var(--bs-secondary-color); + --bs-pagination-disabled-bg: var(--bs-secondary-bg); + --bs-pagination-disabled-border-color: var(--bs-border-color); + display: flex; + padding-left: 0; + list-style: none +} + +.page-link { + position: relative; + display: block; + padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x); + font-size: var(--bs-pagination-font-size); + color: var(--bs-pagination-color); + text-decoration: none; + background-color: var(--bs-pagination-bg); + border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color); + transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out +} + +@media (prefers-reduced-motion:reduce) { + .page-link { + transition: none + } +} + +.page-link:hover { + z-index: 2; + color: var(--bs-pagination-hover-color); + background-color: var(--bs-pagination-hover-bg); + border-color: var(--bs-pagination-hover-border-color) +} + +.page-link:focus { + z-index: 3; + color: var(--bs-pagination-focus-color); + background-color: var(--bs-pagination-focus-bg); + outline: 0; + box-shadow: var(--bs-pagination-focus-box-shadow) +} + +.active>.page-link, +.page-link.active { + z-index: 3; + color: var(--bs-pagination-active-color); + background-color: var(--bs-pagination-active-bg); + border-color: var(--bs-pagination-active-border-color) +} + +.disabled>.page-link, +.page-link.disabled { + color: var(--bs-pagination-disabled-color); + pointer-events: none; + background-color: var(--bs-pagination-disabled-bg); + border-color: var(--bs-pagination-disabled-border-color) +} + +.page-item:not(:first-child) .page-link { + margin-left: calc(-1 * var(--bs-border-width)) +} + +.page-item:first-child .page-link { + border-top-left-radius: var(--bs-pagination-border-radius); + border-bottom-left-radius: var(--bs-pagination-border-radius) +} + +.page-item:last-child .page-link { + border-top-right-radius: var(--bs-pagination-border-radius); + border-bottom-right-radius: var(--bs-pagination-border-radius) +} + +.pagination-lg { + --bs-pagination-padding-x: 1.5rem; + --bs-pagination-padding-y: 0.75rem; + --bs-pagination-font-size: 1.25rem; + --bs-pagination-border-radius: var(--bs-border-radius-lg) +} + +.pagination-sm { + --bs-pagination-padding-x: 0.5rem; + --bs-pagination-padding-y: 0.25rem; + --bs-pagination-font-size: 0.875rem; + --bs-pagination-border-radius: var(--bs-border-radius-sm) +} + +.badge { + --bs-badge-padding-x: 0.65em; + --bs-badge-padding-y: 0.35em; + --bs-badge-font-size: 0.75em; + --bs-badge-font-weight: 700; + --bs-badge-color: #fff; + --bs-badge-border-radius: var(--bs-border-radius); + display: inline-block; + padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x); + font-size: var(--bs-badge-font-size); + font-weight: var(--bs-badge-font-weight); + line-height: 1; + color: var(--bs-badge-color); + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: var(--bs-badge-border-radius) +} + +.badge:empty { + display: none +} + +.btn .badge { + position: relative; + top: -1px +} + +.alert { + --bs-alert-bg: transparent; + --bs-alert-padding-x: 1rem; + --bs-alert-padding-y: 1rem; + --bs-alert-margin-bottom: 1rem; + --bs-alert-color: inherit; + --bs-alert-border-color: transparent; + --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color); + --bs-alert-border-radius: var(--bs-border-radius); + --bs-alert-link-color: inherit; + position: relative; + padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x); + margin-bottom: var(--bs-alert-margin-bottom); + color: var(--bs-alert-color); + background-color: var(--bs-alert-bg); + border: var(--bs-alert-border); + border-radius: var(--bs-alert-border-radius) +} + +.alert-heading { + color: inherit +} + +.alert-link { + font-weight: 700; + color: var(--bs-alert-link-color) +} + +.alert-dismissible { + padding-right: 3rem +} + +.alert-dismissible .btn-close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: 1.25rem 1rem +} + +.alert-primary { + --bs-alert-color: var(--bs-primary-text-emphasis); + --bs-alert-bg: var(--bs-primary-bg-subtle); + --bs-alert-border-color: var(--bs-primary-border-subtle); + --bs-alert-link-color: var(--bs-primary-text-emphasis) +} + +.alert-secondary { + --bs-alert-color: var(--bs-secondary-text-emphasis); + --bs-alert-bg: var(--bs-secondary-bg-subtle); + --bs-alert-border-color: var(--bs-secondary-border-subtle); + --bs-alert-link-color: var(--bs-secondary-text-emphasis) +} + +.alert-success { + --bs-alert-color: var(--bs-success-text-emphasis); + --bs-alert-bg: var(--bs-success-bg-subtle); + --bs-alert-border-color: var(--bs-success-border-subtle); + --bs-alert-link-color: var(--bs-success-text-emphasis) +} + +.alert-info { + --bs-alert-color: var(--bs-info-text-emphasis); + --bs-alert-bg: var(--bs-info-bg-subtle); + --bs-alert-border-color: var(--bs-info-border-subtle); + --bs-alert-link-color: var(--bs-info-text-emphasis) +} + +.alert-warning { + --bs-alert-color: var(--bs-warning-text-emphasis); + --bs-alert-bg: var(--bs-warning-bg-subtle); + --bs-alert-border-color: var(--bs-warning-border-subtle); + --bs-alert-link-color: var(--bs-warning-text-emphasis) +} + +.alert-danger { + --bs-alert-color: var(--bs-danger-text-emphasis); + --bs-alert-bg: var(--bs-danger-bg-subtle); + --bs-alert-border-color: var(--bs-danger-border-subtle); + --bs-alert-link-color: var(--bs-danger-text-emphasis) +} + +.alert-light { + --bs-alert-color: var(--bs-light-text-emphasis); + --bs-alert-bg: var(--bs-light-bg-subtle); + --bs-alert-border-color: var(--bs-light-border-subtle); + --bs-alert-link-color: var(--bs-light-text-emphasis) +} + +.alert-dark { + --bs-alert-color: var(--bs-dark-text-emphasis); + --bs-alert-bg: var(--bs-dark-bg-subtle); + --bs-alert-border-color: var(--bs-dark-border-subtle); + --bs-alert-link-color: var(--bs-dark-text-emphasis) +} + +@keyframes progress-bar-stripes { + 0% { + background-position-x: var(--bs-progress-height) + } +} + +.progress, +.progress-stacked { + --bs-progress-height: 1rem; + --bs-progress-font-size: 0.75rem; + --bs-progress-bg: var(--bs-secondary-bg); + --bs-progress-border-radius: var(--bs-border-radius); + --bs-progress-box-shadow: var(--bs-box-shadow-inset); + --bs-progress-bar-color: #fff; + --bs-progress-bar-bg: #0d6efd; + --bs-progress-bar-transition: width 0.6s ease; + display: flex; + height: var(--bs-progress-height); + overflow: hidden; + font-size: var(--bs-progress-font-size); + background-color: var(--bs-progress-bg); + border-radius: var(--bs-progress-border-radius) +} + +.progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: var(--bs-progress-bar-color); + text-align: center; + white-space: nowrap; + background-color: var(--bs-progress-bar-bg); + transition: var(--bs-progress-bar-transition) +} + +@media (prefers-reduced-motion:reduce) { + .progress-bar { + transition: none + } +} + +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-size: var(--bs-progress-height) var(--bs-progress-height) +} + +.progress-stacked>.progress { + overflow: visible +} + +.progress-stacked>.progress>.progress-bar { + width: 100% +} + +.progress-bar-animated { + animation: 1s linear infinite progress-bar-stripes +} + +@media (prefers-reduced-motion:reduce) { + .progress-bar-animated { + animation: none + } +} + +.list-group { + --bs-list-group-color: var(--bs-body-color); + --bs-list-group-bg: var(--bs-body-bg); + --bs-list-group-border-color: var(--bs-border-color); + --bs-list-group-border-width: var(--bs-border-width); + --bs-list-group-border-radius: var(--bs-border-radius); + --bs-list-group-item-padding-x: 1rem; + --bs-list-group-item-padding-y: 0.5rem; + --bs-list-group-action-color: var(--bs-secondary-color); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-tertiary-bg); + --bs-list-group-action-active-color: var(--bs-body-color); + --bs-list-group-action-active-bg: var(--bs-secondary-bg); + --bs-list-group-disabled-color: var(--bs-secondary-color); + --bs-list-group-disabled-bg: var(--bs-body-bg); + --bs-list-group-active-color: #fff; + --bs-list-group-active-bg: #0d6efd; + --bs-list-group-active-border-color: #0d6efd; + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: var(--bs-list-group-border-radius) +} + +.list-group-numbered { + list-style-type: none; + counter-reset: section +} + +.list-group-numbered>.list-group-item::before { + content: counters(section, ".") ". "; + counter-increment: section +} + +.list-group-item { + position: relative; + display: block; + padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x); + color: var(--bs-list-group-color); + text-decoration: none; + background-color: var(--bs-list-group-bg); + border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color) +} + +.list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit +} + +.list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit +} + +.list-group-item.disabled, +.list-group-item:disabled { + color: var(--bs-list-group-disabled-color); + pointer-events: none; + background-color: var(--bs-list-group-disabled-bg) +} + +.list-group-item.active { + z-index: 2; + color: var(--bs-list-group-active-color); + background-color: var(--bs-list-group-active-bg); + border-color: var(--bs-list-group-active-border-color) +} + +.list-group-item+.list-group-item { + border-top-width: 0 +} + +.list-group-item+.list-group-item.active { + margin-top: calc(-1 * var(--bs-list-group-border-width)); + border-top-width: var(--bs-list-group-border-width) +} + +.list-group-item-action { + width: 100%; + color: var(--bs-list-group-action-color); + text-align: inherit +} + +.list-group-item-action:not(.active):focus, +.list-group-item-action:not(.active):hover { + z-index: 1; + color: var(--bs-list-group-action-hover-color); + text-decoration: none; + background-color: var(--bs-list-group-action-hover-bg) +} + +.list-group-item-action:not(.active):active { + color: var(--bs-list-group-action-active-color); + background-color: var(--bs-list-group-action-active-bg) +} + +.list-group-horizontal { + flex-direction: row +} + +.list-group-horizontal>.list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0 +} + +.list-group-horizontal>.list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0 +} + +.list-group-horizontal>.list-group-item.active { + margin-top: 0 +} + +.list-group-horizontal>.list-group-item+.list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0 +} + +.list-group-horizontal>.list-group-item+.list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width) +} + +@media (min-width:576px) { + .list-group-horizontal-sm { + flex-direction: row + } + + .list-group-horizontal-sm>.list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0 + } + + .list-group-horizontal-sm>.list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0 + } + + .list-group-horizontal-sm>.list-group-item.active { + margin-top: 0 + } + + .list-group-horizontal-sm>.list-group-item+.list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0 + } + + .list-group-horizontal-sm>.list-group-item+.list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width) + } +} + +@media (min-width:768px) { + .list-group-horizontal-md { + flex-direction: row + } + + .list-group-horizontal-md>.list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0 + } + + .list-group-horizontal-md>.list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0 + } + + .list-group-horizontal-md>.list-group-item.active { + margin-top: 0 + } + + .list-group-horizontal-md>.list-group-item+.list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0 + } + + .list-group-horizontal-md>.list-group-item+.list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width) + } +} + +@media (min-width:992px) { + .list-group-horizontal-lg { + flex-direction: row + } + + .list-group-horizontal-lg>.list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0 + } + + .list-group-horizontal-lg>.list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0 + } + + .list-group-horizontal-lg>.list-group-item.active { + margin-top: 0 + } + + .list-group-horizontal-lg>.list-group-item+.list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0 + } + + .list-group-horizontal-lg>.list-group-item+.list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width) + } +} + +@media (min-width:1200px) { + .list-group-horizontal-xl { + flex-direction: row + } + + .list-group-horizontal-xl>.list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0 + } + + .list-group-horizontal-xl>.list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0 + } + + .list-group-horizontal-xl>.list-group-item.active { + margin-top: 0 + } + + .list-group-horizontal-xl>.list-group-item+.list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0 + } + + .list-group-horizontal-xl>.list-group-item+.list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width) + } +} + +@media (min-width:1400px) { + .list-group-horizontal-xxl { + flex-direction: row + } + + .list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0 + } + + .list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0 + } + + .list-group-horizontal-xxl>.list-group-item.active { + margin-top: 0 + } + + .list-group-horizontal-xxl>.list-group-item+.list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0 + } + + .list-group-horizontal-xxl>.list-group-item+.list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width) + } +} + +.list-group-flush { + border-radius: 0 +} + +.list-group-flush>.list-group-item { + border-width: 0 0 var(--bs-list-group-border-width) +} + +.list-group-flush>.list-group-item:last-child { + border-bottom-width: 0 +} + +.list-group-item-primary { + --bs-list-group-color: var(--bs-primary-text-emphasis); + --bs-list-group-bg: var(--bs-primary-bg-subtle); + --bs-list-group-border-color: var(--bs-primary-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-primary-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-primary-border-subtle); + --bs-list-group-active-color: var(--bs-primary-bg-subtle); + --bs-list-group-active-bg: var(--bs-primary-text-emphasis); + --bs-list-group-active-border-color: var(--bs-primary-text-emphasis) +} + +.list-group-item-secondary { + --bs-list-group-color: var(--bs-secondary-text-emphasis); + --bs-list-group-bg: var(--bs-secondary-bg-subtle); + --bs-list-group-border-color: var(--bs-secondary-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-secondary-border-subtle); + --bs-list-group-active-color: var(--bs-secondary-bg-subtle); + --bs-list-group-active-bg: var(--bs-secondary-text-emphasis); + --bs-list-group-active-border-color: var(--bs-secondary-text-emphasis) +} + +.list-group-item-success { + --bs-list-group-color: var(--bs-success-text-emphasis); + --bs-list-group-bg: var(--bs-success-bg-subtle); + --bs-list-group-border-color: var(--bs-success-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-success-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-success-border-subtle); + --bs-list-group-active-color: var(--bs-success-bg-subtle); + --bs-list-group-active-bg: var(--bs-success-text-emphasis); + --bs-list-group-active-border-color: var(--bs-success-text-emphasis) +} + +.list-group-item-info { + --bs-list-group-color: var(--bs-info-text-emphasis); + --bs-list-group-bg: var(--bs-info-bg-subtle); + --bs-list-group-border-color: var(--bs-info-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-info-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-info-border-subtle); + --bs-list-group-active-color: var(--bs-info-bg-subtle); + --bs-list-group-active-bg: var(--bs-info-text-emphasis); + --bs-list-group-active-border-color: var(--bs-info-text-emphasis) +} + +.list-group-item-warning { + --bs-list-group-color: var(--bs-warning-text-emphasis); + --bs-list-group-bg: var(--bs-warning-bg-subtle); + --bs-list-group-border-color: var(--bs-warning-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-warning-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-warning-border-subtle); + --bs-list-group-active-color: var(--bs-warning-bg-subtle); + --bs-list-group-active-bg: var(--bs-warning-text-emphasis); + --bs-list-group-active-border-color: var(--bs-warning-text-emphasis) +} + +.list-group-item-danger { + --bs-list-group-color: var(--bs-danger-text-emphasis); + --bs-list-group-bg: var(--bs-danger-bg-subtle); + --bs-list-group-border-color: var(--bs-danger-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-danger-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-danger-border-subtle); + --bs-list-group-active-color: var(--bs-danger-bg-subtle); + --bs-list-group-active-bg: var(--bs-danger-text-emphasis); + --bs-list-group-active-border-color: var(--bs-danger-text-emphasis) +} + +.list-group-item-light { + --bs-list-group-color: var(--bs-light-text-emphasis); + --bs-list-group-bg: var(--bs-light-bg-subtle); + --bs-list-group-border-color: var(--bs-light-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-light-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-light-border-subtle); + --bs-list-group-active-color: var(--bs-light-bg-subtle); + --bs-list-group-active-bg: var(--bs-light-text-emphasis); + --bs-list-group-active-border-color: var(--bs-light-text-emphasis) +} + +.list-group-item-dark { + --bs-list-group-color: var(--bs-dark-text-emphasis); + --bs-list-group-bg: var(--bs-dark-bg-subtle); + --bs-list-group-border-color: var(--bs-dark-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-dark-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-dark-border-subtle); + --bs-list-group-active-color: var(--bs-dark-bg-subtle); + --bs-list-group-active-bg: var(--bs-dark-text-emphasis); + --bs-list-group-active-border-color: var(--bs-dark-text-emphasis) +} + +.btn-close { + --bs-btn-close-color: #000; + --bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/%3e%3c/svg%3e"); + --bs-btn-close-opacity: 0.5; + --bs-btn-close-hover-opacity: 0.75; + --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-btn-close-focus-opacity: 1; + --bs-btn-close-disabled-opacity: 0.25; + box-sizing: content-box; + width: 1em; + height: 1em; + padding: .25em .25em; + color: var(--bs-btn-close-color); + background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat; + filter: var(--bs-btn-close-filter); + border: 0; + border-radius: .375rem; + opacity: var(--bs-btn-close-opacity) +} + +.btn-close:hover { + color: var(--bs-btn-close-color); + text-decoration: none; + opacity: var(--bs-btn-close-hover-opacity) +} + +.btn-close:focus { + outline: 0; + box-shadow: var(--bs-btn-close-focus-shadow); + opacity: var(--bs-btn-close-focus-opacity) +} + +.btn-close.disabled, +.btn-close:disabled { + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + opacity: var(--bs-btn-close-disabled-opacity) +} + +.btn-close-white { + --bs-btn-close-filter: invert(1) grayscale(100%) brightness(200%) +} + +:root, +[data-bs-theme=light] { + --bs-btn-close-filter: +} + +[data-bs-theme=dark] { + --bs-btn-close-filter: invert(1) grayscale(100%) brightness(200%) +} + +.toast { + --bs-toast-zindex: 1090; + --bs-toast-padding-x: 0.75rem; + --bs-toast-padding-y: 0.5rem; + --bs-toast-spacing: 1.5rem; + --bs-toast-max-width: 350px; + --bs-toast-font-size: 0.875rem; + --bs-toast-color: ; + --bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85); + --bs-toast-border-width: var(--bs-border-width); + --bs-toast-border-color: var(--bs-border-color-translucent); + --bs-toast-border-radius: var(--bs-border-radius); + --bs-toast-box-shadow: var(--bs-box-shadow); + --bs-toast-header-color: var(--bs-secondary-color); + --bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85); + --bs-toast-header-border-color: var(--bs-border-color-translucent); + width: var(--bs-toast-max-width); + max-width: 100%; + font-size: var(--bs-toast-font-size); + color: var(--bs-toast-color); + pointer-events: auto; + background-color: var(--bs-toast-bg); + background-clip: padding-box; + border: var(--bs-toast-border-width) solid var(--bs-toast-border-color); + box-shadow: var(--bs-toast-box-shadow); + border-radius: var(--bs-toast-border-radius) +} + +.toast.showing { + opacity: 0 +} + +.toast:not(.show) { + display: none +} + +.toast-container { + --bs-toast-zindex: 1090; + position: absolute; + z-index: var(--bs-toast-zindex); + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + max-width: 100%; + pointer-events: none +} + +.toast-container>:not(:last-child) { + margin-bottom: var(--bs-toast-spacing) +} + +.toast-header { + display: flex; + align-items: center; + padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x); + color: var(--bs-toast-header-color); + background-color: var(--bs-toast-header-bg); + background-clip: padding-box; + border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color); + border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); + border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)) +} + +.toast-header .btn-close { + margin-right: calc(-.5 * var(--bs-toast-padding-x)); + margin-left: var(--bs-toast-padding-x) +} + +.toast-body { + padding: var(--bs-toast-padding-x); + word-wrap: break-word +} + +.modal { + --bs-modal-zindex: 1055; + --bs-modal-width: 500px; + --bs-modal-padding: 1rem; + --bs-modal-margin: 0.5rem; + --bs-modal-color: var(--bs-body-color); + --bs-modal-bg: var(--bs-body-bg); + --bs-modal-border-color: var(--bs-border-color-translucent); + --bs-modal-border-width: var(--bs-border-width); + --bs-modal-border-radius: var(--bs-border-radius-lg); + --bs-modal-box-shadow: var(--bs-box-shadow-sm); + --bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width))); + --bs-modal-header-padding-x: 1rem; + --bs-modal-header-padding-y: 1rem; + --bs-modal-header-padding: 1rem 1rem; + --bs-modal-header-border-color: var(--bs-border-color); + --bs-modal-header-border-width: var(--bs-border-width); + --bs-modal-title-line-height: 1.5; + --bs-modal-footer-gap: 0.5rem; + --bs-modal-footer-bg: ; + --bs-modal-footer-border-color: var(--bs-border-color); + --bs-modal-footer-border-width: var(--bs-border-width); + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-modal-zindex); + display: none; + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: auto; + outline: 0 +} + +.modal-dialog { + position: relative; + width: auto; + margin: var(--bs-modal-margin); + pointer-events: none +} + +.modal.fade .modal-dialog { + transform: translate(0, -50px); + transition: transform .3s ease-out +} + +@media (prefers-reduced-motion:reduce) { + .modal.fade .modal-dialog { + transition: none + } +} + +.modal.show .modal-dialog { + transform: none +} + +.modal.modal-static .modal-dialog { + transform: scale(1.02) +} + +.modal-dialog-scrollable { + height: calc(100% - var(--bs-modal-margin) * 2) +} + +.modal-dialog-scrollable .modal-content { + max-height: 100%; + overflow: hidden +} + +.modal-dialog-scrollable .modal-body { + overflow-y: auto +} + +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - var(--bs-modal-margin) * 2) +} + +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + color: var(--bs-modal-color); + pointer-events: auto; + background-color: var(--bs-modal-bg); + background-clip: padding-box; + border: var(--bs-modal-border-width) solid var(--bs-modal-border-color); + border-radius: var(--bs-modal-border-radius); + outline: 0 +} + +.modal-backdrop { + --bs-backdrop-zindex: 1050; + --bs-backdrop-bg: #000; + --bs-backdrop-opacity: 0.5; + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-backdrop-zindex); + width: 100vw; + height: 100vh; + background-color: var(--bs-backdrop-bg) +} + +.modal-backdrop.fade { + opacity: 0 +} + +.modal-backdrop.show { + opacity: var(--bs-backdrop-opacity) +} + +.modal-header { + display: flex; + flex-shrink: 0; + align-items: center; + padding: var(--bs-modal-header-padding); + border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color); + border-top-left-radius: var(--bs-modal-inner-border-radius); + border-top-right-radius: var(--bs-modal-inner-border-radius) +} + +.modal-header .btn-close { + padding: calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5); + margin-top: calc(-.5 * var(--bs-modal-header-padding-y)); + margin-right: calc(-.5 * var(--bs-modal-header-padding-x)); + margin-bottom: calc(-.5 * var(--bs-modal-header-padding-y)); + margin-left: auto +} + +.modal-title { + margin-bottom: 0; + line-height: var(--bs-modal-title-line-height) +} + +.modal-body { + position: relative; + flex: 1 1 auto; + padding: var(--bs-modal-padding) +} + +.modal-footer { + display: flex; + flex-shrink: 0; + flex-wrap: wrap; + align-items: center; + justify-content: flex-end; + padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5); + background-color: var(--bs-modal-footer-bg); + border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color); + border-bottom-right-radius: var(--bs-modal-inner-border-radius); + border-bottom-left-radius: var(--bs-modal-inner-border-radius) +} + +.modal-footer>* { + margin: calc(var(--bs-modal-footer-gap) * .5) +} + +@media (min-width:576px) { + .modal { + --bs-modal-margin: 1.75rem; + --bs-modal-box-shadow: var(--bs-box-shadow) + } + + .modal-dialog { + max-width: var(--bs-modal-width); + margin-right: auto; + margin-left: auto + } + + .modal-sm { + --bs-modal-width: 300px + } +} + +@media (min-width:992px) { + + .modal-lg, + .modal-xl { + --bs-modal-width: 800px + } +} + +@media (min-width:1200px) { + .modal-xl { + --bs-modal-width: 1140px + } +} + +.modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0 +} + +.modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0 +} + +.modal-fullscreen .modal-footer, +.modal-fullscreen .modal-header { + border-radius: 0 +} + +.modal-fullscreen .modal-body { + overflow-y: auto +} + +@media (max-width:575.98px) { + .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0 + } + + .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0 + } + + .modal-fullscreen-sm-down .modal-footer, + .modal-fullscreen-sm-down .modal-header { + border-radius: 0 + } + + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto + } +} + +@media (max-width:767.98px) { + .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0 + } + + .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0 + } + + .modal-fullscreen-md-down .modal-footer, + .modal-fullscreen-md-down .modal-header { + border-radius: 0 + } + + .modal-fullscreen-md-down .modal-body { + overflow-y: auto + } +} + +@media (max-width:991.98px) { + .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0 + } + + .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0 + } + + .modal-fullscreen-lg-down .modal-footer, + .modal-fullscreen-lg-down .modal-header { + border-radius: 0 + } + + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto + } +} + +@media (max-width:1199.98px) { + .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0 + } + + .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0 + } + + .modal-fullscreen-xl-down .modal-footer, + .modal-fullscreen-xl-down .modal-header { + border-radius: 0 + } + + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto + } +} + +@media (max-width:1399.98px) { + .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0 + } + + .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0 + } + + .modal-fullscreen-xxl-down .modal-footer, + .modal-fullscreen-xxl-down .modal-header { + border-radius: 0 + } + + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto + } +} + +.tooltip { + --bs-tooltip-zindex: 1080; + --bs-tooltip-max-width: 200px; + --bs-tooltip-padding-x: 0.5rem; + --bs-tooltip-padding-y: 0.25rem; + --bs-tooltip-margin: ; + --bs-tooltip-font-size: 0.875rem; + --bs-tooltip-color: var(--bs-body-bg); + --bs-tooltip-bg: var(--bs-emphasis-color); + --bs-tooltip-border-radius: var(--bs-border-radius); + --bs-tooltip-opacity: 0.9; + --bs-tooltip-arrow-width: 0.8rem; + --bs-tooltip-arrow-height: 0.4rem; + z-index: var(--bs-tooltip-zindex); + display: block; + margin: var(--bs-tooltip-margin); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-tooltip-font-size); + word-wrap: break-word; + opacity: 0 +} + +.tooltip.show { + opacity: var(--bs-tooltip-opacity) +} + +.tooltip .tooltip-arrow { + display: block; + width: var(--bs-tooltip-arrow-width); + height: var(--bs-tooltip-arrow-height) +} + +.tooltip .tooltip-arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid +} + +.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow, +.bs-tooltip-top .tooltip-arrow { + bottom: calc(-1 * var(--bs-tooltip-arrow-height)) +} + +.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before, +.bs-tooltip-top .tooltip-arrow::before { + top: -1px; + border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0; + border-top-color: var(--bs-tooltip-bg) +} + +.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow, +.bs-tooltip-end .tooltip-arrow { + left: calc(-1 * var(--bs-tooltip-arrow-height)); + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width) +} + +.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before, +.bs-tooltip-end .tooltip-arrow::before { + right: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0; + border-right-color: var(--bs-tooltip-bg) +} + +.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow, +.bs-tooltip-bottom .tooltip-arrow { + top: calc(-1 * var(--bs-tooltip-arrow-height)) +} + +.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before, +.bs-tooltip-bottom .tooltip-arrow::before { + bottom: -1px; + border-width: 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height); + border-bottom-color: var(--bs-tooltip-bg) +} + +.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow, +.bs-tooltip-start .tooltip-arrow { + right: calc(-1 * var(--bs-tooltip-arrow-height)); + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width) +} + +.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before, +.bs-tooltip-start .tooltip-arrow::before { + left: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height); + border-left-color: var(--bs-tooltip-bg) +} + +.tooltip-inner { + max-width: var(--bs-tooltip-max-width); + padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x); + color: var(--bs-tooltip-color); + text-align: center; + background-color: var(--bs-tooltip-bg); + border-radius: var(--bs-tooltip-border-radius) +} + +.popover { + --bs-popover-zindex: 1070; + --bs-popover-max-width: 276px; + --bs-popover-font-size: 0.875rem; + --bs-popover-bg: var(--bs-body-bg); + --bs-popover-border-width: var(--bs-border-width); + --bs-popover-border-color: var(--bs-border-color-translucent); + --bs-popover-border-radius: var(--bs-border-radius-lg); + --bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width)); + --bs-popover-box-shadow: var(--bs-box-shadow); + --bs-popover-header-padding-x: 1rem; + --bs-popover-header-padding-y: 0.5rem; + --bs-popover-header-font-size: 1rem; + --bs-popover-header-color: inherit; + --bs-popover-header-bg: var(--bs-secondary-bg); + --bs-popover-body-padding-x: 1rem; + --bs-popover-body-padding-y: 1rem; + --bs-popover-body-color: var(--bs-body-color); + --bs-popover-arrow-width: 1rem; + --bs-popover-arrow-height: 0.5rem; + --bs-popover-arrow-border: var(--bs-popover-border-color); + z-index: var(--bs-popover-zindex); + display: block; + max-width: var(--bs-popover-max-width); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-popover-font-size); + word-wrap: break-word; + background-color: var(--bs-popover-bg); + background-clip: padding-box; + border: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-radius: var(--bs-popover-border-radius) +} + +.popover .popover-arrow { + display: block; + width: var(--bs-popover-arrow-width); + height: var(--bs-popover-arrow-height) +} + +.popover .popover-arrow::after, +.popover .popover-arrow::before { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; + border-width: 0 +} + +.bs-popover-auto[data-popper-placement^=top]>.popover-arrow, +.bs-popover-top>.popover-arrow { + bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)) +} + +.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after, +.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before, +.bs-popover-top>.popover-arrow::after, +.bs-popover-top>.popover-arrow::before { + border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0 +} + +.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before, +.bs-popover-top>.popover-arrow::before { + bottom: 0; + border-top-color: var(--bs-popover-arrow-border) +} + +.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after, +.bs-popover-top>.popover-arrow::after { + bottom: var(--bs-popover-border-width); + border-top-color: var(--bs-popover-bg) +} + +.bs-popover-auto[data-popper-placement^=right]>.popover-arrow, +.bs-popover-end>.popover-arrow { + left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width) +} + +.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after, +.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before, +.bs-popover-end>.popover-arrow::after, +.bs-popover-end>.popover-arrow::before { + border-width: calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0 +} + +.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before, +.bs-popover-end>.popover-arrow::before { + left: 0; + border-right-color: var(--bs-popover-arrow-border) +} + +.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after, +.bs-popover-end>.popover-arrow::after { + left: var(--bs-popover-border-width); + border-right-color: var(--bs-popover-bg) +} + +.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow, +.bs-popover-bottom>.popover-arrow { + top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)) +} + +.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after, +.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before, +.bs-popover-bottom>.popover-arrow::after, +.bs-popover-bottom>.popover-arrow::before { + border-width: 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) +} + +.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before, +.bs-popover-bottom>.popover-arrow::before { + top: 0; + border-bottom-color: var(--bs-popover-arrow-border) +} + +.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after, +.bs-popover-bottom>.popover-arrow::after { + top: var(--bs-popover-border-width); + border-bottom-color: var(--bs-popover-bg) +} + +.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before, +.bs-popover-bottom .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: var(--bs-popover-arrow-width); + margin-left: calc(-.5 * var(--bs-popover-arrow-width)); + content: ""; + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg) +} + +.bs-popover-auto[data-popper-placement^=left]>.popover-arrow, +.bs-popover-start>.popover-arrow { + right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width) +} + +.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after, +.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before, +.bs-popover-start>.popover-arrow::after, +.bs-popover-start>.popover-arrow::before { + border-width: calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) +} + +.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before, +.bs-popover-start>.popover-arrow::before { + right: 0; + border-left-color: var(--bs-popover-arrow-border) +} + +.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after, +.bs-popover-start>.popover-arrow::after { + right: var(--bs-popover-border-width); + border-left-color: var(--bs-popover-bg) +} + +.popover-header { + padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x); + margin-bottom: 0; + font-size: var(--bs-popover-header-font-size); + color: var(--bs-popover-header-color); + background-color: var(--bs-popover-header-bg); + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-top-left-radius: var(--bs-popover-inner-border-radius); + border-top-right-radius: var(--bs-popover-inner-border-radius) +} + +.popover-header:empty { + display: none +} + +.popover-body { + padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x); + color: var(--bs-popover-body-color) +} + +.carousel { + position: relative +} + +.carousel.pointer-event { + touch-action: pan-y +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden +} + +.carousel-inner::after { + display: block; + clear: both; + content: "" +} + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: transform .6s ease-in-out +} + +@media (prefers-reduced-motion:reduce) { + .carousel-item { + transition: none + } +} + +.carousel-item-next, +.carousel-item-prev, +.carousel-item.active { + display: block +} + +.active.carousel-item-end, +.carousel-item-next:not(.carousel-item-start) { + transform: translateX(100%) +} + +.active.carousel-item-start, +.carousel-item-prev:not(.carousel-item-end) { + transform: translateX(-100%) +} + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none +} + +.carousel-fade .carousel-item-next.carousel-item-start, +.carousel-fade .carousel-item-prev.carousel-item-end, +.carousel-fade .carousel-item.active { + z-index: 1; + opacity: 1 +} + +.carousel-fade .active.carousel-item-end, +.carousel-fade .active.carousel-item-start { + z-index: 0; + opacity: 0; + transition: opacity 0s .6s +} + +@media (prefers-reduced-motion:reduce) { + + .carousel-fade .active.carousel-item-end, + .carousel-fade .active.carousel-item-start { + transition: none + } +} + +.carousel-control-next, +.carousel-control-prev { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + padding: 0; + color: #fff; + text-align: center; + background: 0 0; + filter: var(--bs-carousel-control-icon-filter); + border: 0; + opacity: .5; + transition: opacity .15s ease +} + +@media (prefers-reduced-motion:reduce) { + + .carousel-control-next, + .carousel-control-prev { + transition: none + } +} + +.carousel-control-next:focus, +.carousel-control-next:hover, +.carousel-control-prev:focus, +.carousel-control-prev:hover { + color: #fff; + text-decoration: none; + outline: 0; + opacity: .9 +} + +.carousel-control-prev { + left: 0 +} + +.carousel-control-next { + right: 0 +} + +.carousel-control-next-icon, +.carousel-control-prev-icon { + display: inline-block; + width: 2rem; + height: 2rem; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100% +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/%3e%3c/svg%3e") +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e") +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 2; + display: flex; + justify-content: center; + padding: 0; + margin-right: 15%; + margin-bottom: 1rem; + margin-left: 15% +} + +.carousel-indicators [data-bs-target] { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + padding: 0; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: var(--bs-carousel-indicator-active-bg); + background-clip: padding-box; + border: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: .5; + transition: opacity .6s ease +} + +@media (prefers-reduced-motion:reduce) { + .carousel-indicators [data-bs-target] { + transition: none + } +} + +.carousel-indicators .active { + opacity: 1 +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 1.25rem; + left: 15%; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + color: var(--bs-carousel-caption-color); + text-align: center +} + +.carousel-dark { + --bs-carousel-indicator-active-bg: #000; + --bs-carousel-caption-color: #000; + --bs-carousel-control-icon-filter: invert(1) grayscale(100) +} + +:root, +[data-bs-theme=light] { + --bs-carousel-indicator-active-bg: #fff; + --bs-carousel-caption-color: #fff; + --bs-carousel-control-icon-filter: +} + +[data-bs-theme=dark] { + --bs-carousel-indicator-active-bg: #000; + --bs-carousel-caption-color: #000; + --bs-carousel-control-icon-filter: invert(1) grayscale(100) +} + +.spinner-border, +.spinner-grow { + display: inline-block; + width: var(--bs-spinner-width); + height: var(--bs-spinner-height); + vertical-align: var(--bs-spinner-vertical-align); + border-radius: 50%; + animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name) +} + +@keyframes spinner-border { + to { + transform: rotate(360deg) + } +} + +.spinner-border { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-border-width: 0.25em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-border; + border: var(--bs-spinner-border-width) solid currentcolor; + border-right-color: transparent +} + +.spinner-border-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; + --bs-spinner-border-width: 0.2em +} + +@keyframes spinner-grow { + 0% { + transform: scale(0) + } + + 50% { + opacity: 1; + transform: none + } +} + +.spinner-grow { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-grow; + background-color: currentcolor; + opacity: 0 +} + +.spinner-grow-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem +} + +@media (prefers-reduced-motion:reduce) { + + .spinner-border, + .spinner-grow { + --bs-spinner-animation-speed: 1.5s + } +} + +.offcanvas, +.offcanvas-lg, +.offcanvas-md, +.offcanvas-sm, +.offcanvas-xl, +.offcanvas-xxl { + --bs-offcanvas-zindex: 1045; + --bs-offcanvas-width: 400px; + --bs-offcanvas-height: 30vh; + --bs-offcanvas-padding-x: 1rem; + --bs-offcanvas-padding-y: 1rem; + --bs-offcanvas-color: var(--bs-body-color); + --bs-offcanvas-bg: var(--bs-body-bg); + --bs-offcanvas-border-width: var(--bs-border-width); + --bs-offcanvas-border-color: var(--bs-border-color-translucent); + --bs-offcanvas-box-shadow: var(--bs-box-shadow-sm); + --bs-offcanvas-transition: transform 0.3s ease-in-out; + --bs-offcanvas-title-line-height: 1.5 +} + +@media (max-width:575.98px) { + .offcanvas-sm { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition) + } +} + +@media (max-width:575.98px) and (prefers-reduced-motion:reduce) { + .offcanvas-sm { + transition: none + } +} + +@media (max-width:575.98px) { + .offcanvas-sm.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%) + } + + .offcanvas-sm.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%) + } + + .offcanvas-sm.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%) + } + + .offcanvas-sm.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%) + } + + .offcanvas-sm.show:not(.hiding), + .offcanvas-sm.showing { + transform: none + } + + .offcanvas-sm.hiding, + .offcanvas-sm.show, + .offcanvas-sm.showing { + visibility: visible + } +} + +@media (min-width:576px) { + .offcanvas-sm { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important + } + + .offcanvas-sm .offcanvas-header { + display: none + } + + .offcanvas-sm .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important + } +} + +@media (max-width:767.98px) { + .offcanvas-md { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition) + } +} + +@media (max-width:767.98px) and (prefers-reduced-motion:reduce) { + .offcanvas-md { + transition: none + } +} + +@media (max-width:767.98px) { + .offcanvas-md.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%) + } + + .offcanvas-md.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%) + } + + .offcanvas-md.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%) + } + + .offcanvas-md.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%) + } + + .offcanvas-md.show:not(.hiding), + .offcanvas-md.showing { + transform: none + } + + .offcanvas-md.hiding, + .offcanvas-md.show, + .offcanvas-md.showing { + visibility: visible + } +} + +@media (min-width:768px) { + .offcanvas-md { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important + } + + .offcanvas-md .offcanvas-header { + display: none + } + + .offcanvas-md .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important + } +} + +@media (max-width:991.98px) { + .offcanvas-lg { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition) + } +} + +@media (max-width:991.98px) and (prefers-reduced-motion:reduce) { + .offcanvas-lg { + transition: none + } +} + +@media (max-width:991.98px) { + .offcanvas-lg.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%) + } + + .offcanvas-lg.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%) + } + + .offcanvas-lg.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%) + } + + .offcanvas-lg.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%) + } + + .offcanvas-lg.show:not(.hiding), + .offcanvas-lg.showing { + transform: none + } + + .offcanvas-lg.hiding, + .offcanvas-lg.show, + .offcanvas-lg.showing { + visibility: visible + } +} + +@media (min-width:992px) { + .offcanvas-lg { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important + } + + .offcanvas-lg .offcanvas-header { + display: none + } + + .offcanvas-lg .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important + } +} + +@media (max-width:1199.98px) { + .offcanvas-xl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition) + } +} + +@media (max-width:1199.98px) and (prefers-reduced-motion:reduce) { + .offcanvas-xl { + transition: none + } +} + +@media (max-width:1199.98px) { + .offcanvas-xl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%) + } + + .offcanvas-xl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%) + } + + .offcanvas-xl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%) + } + + .offcanvas-xl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%) + } + + .offcanvas-xl.show:not(.hiding), + .offcanvas-xl.showing { + transform: none + } + + .offcanvas-xl.hiding, + .offcanvas-xl.show, + .offcanvas-xl.showing { + visibility: visible + } +} + +@media (min-width:1200px) { + .offcanvas-xl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important + } + + .offcanvas-xl .offcanvas-header { + display: none + } + + .offcanvas-xl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important + } +} + +@media (max-width:1399.98px) { + .offcanvas-xxl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition) + } +} + +@media (max-width:1399.98px) and (prefers-reduced-motion:reduce) { + .offcanvas-xxl { + transition: none + } +} + +@media (max-width:1399.98px) { + .offcanvas-xxl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%) + } + + .offcanvas-xxl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%) + } + + .offcanvas-xxl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%) + } + + .offcanvas-xxl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%) + } + + .offcanvas-xxl.show:not(.hiding), + .offcanvas-xxl.showing { + transform: none + } + + .offcanvas-xxl.hiding, + .offcanvas-xxl.show, + .offcanvas-xxl.showing { + visibility: visible + } +} + +@media (min-width:1400px) { + .offcanvas-xxl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important + } + + .offcanvas-xxl .offcanvas-header { + display: none + } + + .offcanvas-xxl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important + } +} + +.offcanvas { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition) +} + +@media (prefers-reduced-motion:reduce) { + .offcanvas { + transition: none + } +} + +.offcanvas.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%) +} + +.offcanvas.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%) +} + +.offcanvas.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%) +} + +.offcanvas.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%) +} + +.offcanvas.show:not(.hiding), +.offcanvas.showing { + transform: none +} + +.offcanvas.hiding, +.offcanvas.show, +.offcanvas.showing { + visibility: visible +} + +.offcanvas-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000 +} + +.offcanvas-backdrop.fade { + opacity: 0 +} + +.offcanvas-backdrop.show { + opacity: .5 +} + +.offcanvas-header { + display: flex; + align-items: center; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x) +} + +.offcanvas-header .btn-close { + padding: calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5); + margin-top: calc(-.5 * var(--bs-offcanvas-padding-y)); + margin-right: calc(-.5 * var(--bs-offcanvas-padding-x)); + margin-bottom: calc(-.5 * var(--bs-offcanvas-padding-y)); + margin-left: auto +} + +.offcanvas-title { + margin-bottom: 0; + line-height: var(--bs-offcanvas-title-line-height) +} + +.offcanvas-body { + flex-grow: 1; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); + overflow-y: auto +} + +.placeholder { + display: inline-block; + min-height: 1em; + vertical-align: middle; + cursor: wait; + background-color: currentcolor; + opacity: .5 +} + +.placeholder.btn::before { + display: inline-block; + content: "" +} + +.placeholder-xs { + min-height: .6em +} + +.placeholder-sm { + min-height: .8em +} + +.placeholder-lg { + min-height: 1.2em +} + +.placeholder-glow .placeholder { + animation: placeholder-glow 2s ease-in-out infinite +} + +@keyframes placeholder-glow { + 50% { + opacity: .2 + } +} + +.placeholder-wave { + -webkit-mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + -webkit-mask-size: 200% 100%; + mask-size: 200% 100%; + animation: placeholder-wave 2s linear infinite +} + +@keyframes placeholder-wave { + 100% { + -webkit-mask-position: -200% 0%; + mask-position: -200% 0% + } +} + +.clearfix::after { + display: block; + clear: both; + content: "" +} + +.text-bg-primary { + color: #fff !important; + background-color: RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important +} + +.text-bg-secondary { + color: #fff !important; + background-color: RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important +} + +.text-bg-success { + color: #fff !important; + background-color: RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important +} + +.text-bg-info { + color: #000 !important; + background-color: RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important +} + +.text-bg-warning { + color: #000 !important; + background-color: RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important +} + +.text-bg-danger { + color: #fff !important; + background-color: RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important +} + +.text-bg-light { + color: #000 !important; + background-color: RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important +} + +.text-bg-dark { + color: #fff !important; + background-color: RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important +} + +.link-primary { + color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important +} + +.link-primary:focus, +.link-primary:hover { + color: RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important +} + +.link-secondary { + color: RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important +} + +.link-secondary:focus, +.link-secondary:hover { + color: RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important +} + +.link-success { + color: RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important +} + +.link-success:focus, +.link-success:hover { + color: RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important +} + +.link-info { + color: RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important +} + +.link-info:focus, +.link-info:hover { + color: RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important +} + +.link-warning { + color: RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important +} + +.link-warning:focus, +.link-warning:hover { + color: RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important +} + +.link-danger { + color: RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important +} + +.link-danger:focus, +.link-danger:hover { + color: RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important +} + +.link-light { + color: RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important +} + +.link-light:focus, +.link-light:hover { + color: RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important +} + +.link-dark { + color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important +} + +.link-dark:focus, +.link-dark:hover { + color: RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important +} + +.link-body-emphasis { + color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important +} + +.link-body-emphasis:focus, +.link-body-emphasis:hover { + color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, .75)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important; + text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important +} + +.focus-ring:focus { + outline: 0; + box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color) +} + +.icon-link { + display: inline-flex; + gap: .375rem; + align-items: center; + -webkit-text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5)); + text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5)); + text-underline-offset: 0.25em; + -webkit-backface-visibility: hidden; + backface-visibility: hidden +} + +.icon-link>.bi { + flex-shrink: 0; + width: 1em; + height: 1em; + fill: currentcolor; + transition: .2s ease-in-out transform +} + +@media (prefers-reduced-motion:reduce) { + .icon-link>.bi { + transition: none + } +} + +.icon-link-hover:focus-visible>.bi, +.icon-link-hover:hover>.bi { + transform: var(--bs-icon-link-transform, translate3d(.25em, 0, 0)) +} + +.ratio { + position: relative; + width: 100% +} + +.ratio::before { + display: block; + padding-top: var(--bs-aspect-ratio); + content: "" +} + +.ratio>* { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% +} + +.ratio-1x1 { + --bs-aspect-ratio: 100% +} + +.ratio-4x3 { + --bs-aspect-ratio: 75% +} + +.ratio-16x9 { + --bs-aspect-ratio: 56.25% +} + +.ratio-21x9 { + --bs-aspect-ratio: 42.8571428571% +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030 +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030 +} + +.sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 +} + +.sticky-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020 +} + +@media (min-width:576px) { + .sticky-sm-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 + } + + .sticky-sm-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020 + } +} + +@media (min-width:768px) { + .sticky-md-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 + } + + .sticky-md-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020 + } +} + +@media (min-width:992px) { + .sticky-lg-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 + } + + .sticky-lg-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020 + } +} + +@media (min-width:1200px) { + .sticky-xl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 + } + + .sticky-xl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020 + } +} + +@media (min-width:1400px) { + .sticky-xxl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 + } + + .sticky-xxl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020 + } +} + +.hstack { + display: flex; + flex-direction: row; + align-items: center; + align-self: stretch +} + +.vstack { + display: flex; + flex: 1 1 auto; + flex-direction: column; + align-self: stretch +} + +.visually-hidden, +.visually-hidden-focusable:not(:focus):not(:focus-within) { + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important +} + +.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption), +.visually-hidden:not(caption) { + position: absolute !important +} + +.visually-hidden *, +.visually-hidden-focusable:not(:focus):not(:focus-within) * { + overflow: hidden !important +} + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + content: "" +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap +} + +.vr { + display: inline-block; + align-self: stretch; + width: var(--bs-border-width); + min-height: 1em; + background-color: currentcolor; + opacity: .25 +} + +.align-baseline { + vertical-align: baseline !important +} + +.align-top { + vertical-align: top !important +} + +.align-middle { + vertical-align: middle !important +} + +.align-bottom { + vertical-align: bottom !important +} + +.align-text-bottom { + vertical-align: text-bottom !important +} + +.align-text-top { + vertical-align: text-top !important +} + +.float-start { + float: left !important +} + +.float-end { + float: right !important +} + +.float-none { + float: none !important +} + +.object-fit-contain { + -o-object-fit: contain !important; + object-fit: contain !important +} + +.object-fit-cover { + -o-object-fit: cover !important; + object-fit: cover !important +} + +.object-fit-fill { + -o-object-fit: fill !important; + object-fit: fill !important +} + +.object-fit-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important +} + +.object-fit-none { + -o-object-fit: none !important; + object-fit: none !important +} + +.opacity-0 { + opacity: 0 !important +} + +.opacity-25 { + opacity: .25 !important +} + +.opacity-50 { + opacity: .5 !important +} + +.opacity-75 { + opacity: .75 !important +} + +.opacity-100 { + opacity: 1 !important +} + +.overflow-auto { + overflow: auto !important +} + +.overflow-hidden { + overflow: hidden !important +} + +.overflow-visible { + overflow: visible !important +} + +.overflow-scroll { + overflow: scroll !important +} + +.overflow-x-auto { + overflow-x: auto !important +} + +.overflow-x-hidden { + overflow-x: hidden !important +} + +.overflow-x-visible { + overflow-x: visible !important +} + +.overflow-x-scroll { + overflow-x: scroll !important +} + +.overflow-y-auto { + overflow-y: auto !important +} + +.overflow-y-hidden { + overflow-y: hidden !important +} + +.overflow-y-visible { + overflow-y: visible !important +} + +.overflow-y-scroll { + overflow-y: scroll !important +} + +.d-inline { + display: inline !important +} + +.d-inline-block { + display: inline-block !important +} + +.d-block { + display: block !important +} + +.d-grid { + display: grid !important +} + +.d-inline-grid { + display: inline-grid !important +} + +.d-table { + display: table !important +} + +.d-table-row { + display: table-row !important +} + +.d-table-cell { + display: table-cell !important +} + +.d-flex { + display: flex !important +} + +.d-inline-flex { + display: inline-flex !important +} + +.d-none { + display: none !important +} + +.shadow { + box-shadow: var(--bs-box-shadow) !important +} + +.shadow-sm { + box-shadow: var(--bs-box-shadow-sm) !important +} + +.shadow-lg { + box-shadow: var(--bs-box-shadow-lg) !important +} + +.shadow-none { + box-shadow: none !important +} + +.focus-ring-primary { + --bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity)) +} + +.focus-ring-secondary { + --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity)) +} + +.focus-ring-success { + --bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity)) +} + +.focus-ring-info { + --bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity)) +} + +.focus-ring-warning { + --bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity)) +} + +.focus-ring-danger { + --bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity)) +} + +.focus-ring-light { + --bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity)) +} + +.focus-ring-dark { + --bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity)) +} + +.position-static { + position: static !important +} + +.position-relative { + position: relative !important +} + +.position-absolute { + position: absolute !important +} + +.position-fixed { + position: fixed !important +} + +.position-sticky { + position: -webkit-sticky !important; + position: sticky !important +} + +.top-0 { + top: 0 !important +} + +.top-50 { + top: 50% !important +} + +.top-100 { + top: 100% !important +} + +.bottom-0 { + bottom: 0 !important +} + +.bottom-50 { + bottom: 50% !important +} + +.bottom-100 { + bottom: 100% !important +} + +.start-0 { + left: 0 !important +} + +.start-50 { + left: 50% !important +} + +.start-100 { + left: 100% !important +} + +.end-0 { + right: 0 !important +} + +.end-50 { + right: 50% !important +} + +.end-100 { + right: 100% !important +} + +.translate-middle { + transform: translate(-50%, -50%) !important +} + +.translate-middle-x { + transform: translateX(-50%) !important +} + +.translate-middle-y { + transform: translateY(-50%) !important +} + +.border { + border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important +} + +.border-0 { + border: 0 !important +} + +.border-top { + border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important +} + +.border-top-0 { + border-top: 0 !important +} + +.border-end { + border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important +} + +.border-end-0 { + border-right: 0 !important +} + +.border-bottom { + border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important +} + +.border-bottom-0 { + border-bottom: 0 !important +} + +.border-start { + border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important +} + +.border-start-0 { + border-left: 0 !important +} + +.border-primary { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important +} + +.border-secondary { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important +} + +.border-success { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important +} + +.border-info { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important +} + +.border-warning { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important +} + +.border-danger { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important +} + +.border-light { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important +} + +.border-dark { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important +} + +.border-black { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important +} + +.border-white { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important +} + +.border-primary-subtle { + border-color: var(--bs-primary-border-subtle) !important +} + +.border-secondary-subtle { + border-color: var(--bs-secondary-border-subtle) !important +} + +.border-success-subtle { + border-color: var(--bs-success-border-subtle) !important +} + +.border-info-subtle { + border-color: var(--bs-info-border-subtle) !important +} + +.border-warning-subtle { + border-color: var(--bs-warning-border-subtle) !important +} + +.border-danger-subtle { + border-color: var(--bs-danger-border-subtle) !important +} + +.border-light-subtle { + border-color: var(--bs-light-border-subtle) !important +} + +.border-dark-subtle { + border-color: var(--bs-dark-border-subtle) !important +} + +.border-1 { + border-width: 1px !important +} + +.border-2 { + border-width: 2px !important +} + +.border-3 { + border-width: 3px !important +} + +.border-4 { + border-width: 4px !important +} + +.border-5 { + border-width: 5px !important +} + +.border-opacity-10 { + --bs-border-opacity: 0.1 +} + +.border-opacity-25 { + --bs-border-opacity: 0.25 +} + +.border-opacity-50 { + --bs-border-opacity: 0.5 +} + +.border-opacity-75 { + --bs-border-opacity: 0.75 +} + +.border-opacity-100 { + --bs-border-opacity: 1 +} + +.w-25 { + width: 25% !important +} + +.w-50 { + width: 50% !important +} + +.w-75 { + width: 75% !important +} + +.w-100 { + width: 100% !important +} + +.w-auto { + width: auto !important +} + +.mw-100 { + max-width: 100% !important +} + +.vw-100 { + width: 100vw !important +} + +.min-vw-100 { + min-width: 100vw !important +} + +.h-25 { + height: 25% !important +} + +.h-50 { + height: 50% !important +} + +.h-75 { + height: 75% !important +} + +.h-100 { + height: 100% !important +} + +.h-auto { + height: auto !important +} + +.mh-100 { + max-height: 100% !important +} + +.vh-100 { + height: 100vh !important +} + +.min-vh-100 { + min-height: 100vh !important +} + +.flex{ + display:flex; +} + +.flex-fill { + flex: 1 1 auto !important +} + +.flex-row { + flex-direction: row !important +} + +.flex-column { + flex-direction: column !important +} + +.flex-row-reverse { + flex-direction: row-reverse !important +} + +.flex-column-reverse { + flex-direction: column-reverse !important +} + +.flex-grow-0 { + flex-grow: 0 !important +} + +.flex-grow-1 { + flex-grow: 1 !important +} + +.flex-shrink-0 { + flex-shrink: 0 !important +} + +.flex-shrink-1 { + flex-shrink: 1 !important +} + +.flex-wrap { + flex-wrap: wrap !important +} + +.flex-nowrap { + flex-wrap: nowrap !important +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important +} + +.justify-content-start { + justify-content: flex-start !important +} + +.justify-content-end { + justify-content: flex-end !important +} + +.justify-content-center { + justify-content: center !important +} + +.justify-content-between { + justify-content: space-between !important +} + +.justify-content-around { + justify-content: space-around !important +} + +.justify-content-evenly { + justify-content: space-evenly !important +} + +.align-items-start { + align-items: flex-start !important +} + +.align-items-end { + align-items: flex-end !important +} + +.align-items-center { + align-items: center !important +} + +.align-items-baseline { + align-items: baseline !important +} + +.align-items-stretch { + align-items: stretch !important +} + +.align-content-start { + align-content: flex-start !important +} + +.align-content-end { + align-content: flex-end !important +} + +.align-content-center { + align-content: center !important +} + +.align-content-between { + align-content: space-between !important +} + +.align-content-around { + align-content: space-around !important +} + +.align-content-stretch { + align-content: stretch !important +} + +.align-self-auto { + align-self: auto !important +} + +.align-self-start { + align-self: flex-start !important +} + +.align-self-end { + align-self: flex-end !important +} + +.align-self-center { + align-self: center !important +} + +.align-self-baseline { + align-self: baseline !important +} + +.align-self-stretch { + align-self: stretch !important +} + +.order-first { + order: -1 !important +} + +.order-0 { + order: 0 !important +} + +.order-1 { + order: 1 !important +} + +.order-2 { + order: 2 !important +} + +.order-3 { + order: 3 !important +} + +.order-4 { + order: 4 !important +} + +.order-5 { + order: 5 !important +} + +.order-last { + order: 6 !important +} + +.m-0 { + margin: 0 !important +} + +.m-1 { + margin: .25rem !important +} + +.m-2 { + margin: .5rem !important +} + +.m-3 { + margin: 1rem !important +} + +.m-4 { + margin: 1.5rem !important +} + +.m-5 { + margin: 3rem !important +} + +.m-auto { + margin: auto !important +} + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important +} + +.mx-1 { + margin-right: .25rem !important; + margin-left: .25rem !important +} + +.mx-2 { + margin-right: .5rem !important; + margin-left: .5rem !important +} + +.mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important +} + +.mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important +} + +.mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important +} + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important +} + +.my-1 { + margin-top: .25rem !important; + margin-bottom: .25rem !important +} + +.my-2 { + margin-top: .5rem !important; + margin-bottom: .5rem !important +} + +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important +} + +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important +} + +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important +} + +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important +} + +.mt-0 { + margin-top: 0 !important +} + +.mt-1 { + margin-top: .25rem !important +} + +.mt-2 { + margin-top: .5rem !important +} + +.mt-3 { + margin-top: 1rem !important +} + +.mt-4 { + margin-top: 1.5rem !important +} + +.mt-5 { + margin-top: 3rem !important +} + +.mt-auto { + margin-top: auto !important +} + +.me-0 { + margin-right: 0 !important +} + +.me-1 { + margin-right: .25rem !important +} + +.me-2 { + margin-right: .5rem !important +} + +.me-3 { + margin-right: 1rem !important +} + +.me-4 { + margin-right: 1.5rem !important +} + +.me-5 { + margin-right: 3rem !important +} + +.me-auto { + margin-right: auto !important +} + +.mb-0 { + margin-bottom: 0 !important +} + +.mb-1 { + margin-bottom: .25rem !important +} + +.mb-2 { + margin-bottom: .5rem !important +} + +.mb-3 { + margin-bottom: 1rem !important +} + +.mb-4 { + margin-bottom: 1.5rem !important +} + +.mb-5 { + margin-bottom: 3rem !important +} + +.mb-auto { + margin-bottom: auto !important +} + +.ms-0 { + margin-left: 0 !important +} + +.ms-1 { + margin-left: .25rem !important +} + +.ms-2 { + margin-left: .5rem !important +} + +.ms-3 { + margin-left: 1rem !important +} + +.ms-4 { + margin-left: 1.5rem !important +} + +.ms-5 { + margin-left: 3rem !important +} + +.ms-auto { + margin-left: auto !important +} + +.p-0 { + padding: 0 !important +} + +.p-1 { + padding: .25rem !important +} + +.p-2 { + padding: .5rem !important +} + +.p-3 { + padding: 1rem !important +} + +.p-4 { + padding: 1.5rem !important +} + +.p-5 { + padding: 3rem !important +} + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important +} + +.px-1 { + padding-right: .25rem !important; + padding-left: .25rem !important +} + +.px-2 { + padding-right: .5rem !important; + padding-left: .5rem !important +} + +.px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important +} + +.px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important +} + +.px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important +} + +.py-1 { + padding-top: .25rem !important; + padding-bottom: .25rem !important +} + +.py-2 { + padding-top: .5rem !important; + padding-bottom: .5rem !important +} + +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important +} + +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important +} + +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important +} + +.pt-0 { + padding-top: 0 !important +} + +.pt-1 { + padding-top: .25rem !important +} + +.pt-2 { + padding-top: .5rem !important +} + +.pt-3 { + padding-top: 1rem !important +} + +.pt-4 { + padding-top: 1.5rem !important +} + +.pt-5 { + padding-top: 3rem !important +} + +.pe-0 { + padding-right: 0 !important +} + +.pe-1 { + padding-right: .25rem !important +} + +.pe-2 { + padding-right: .5rem !important +} + +.pe-3 { + padding-right: 1rem !important +} + +.pe-4 { + padding-right: 1.5rem !important +} + +.pe-5 { + padding-right: 3rem !important +} + +.pb-0 { + padding-bottom: 0 !important +} + +.pb-1 { + padding-bottom: .25rem !important +} + +.pb-2 { + padding-bottom: .5rem !important +} + +.pb-3 { + padding-bottom: 1rem !important +} + +.pb-4 { + padding-bottom: 1.5rem !important +} + +.pb-5 { + padding-bottom: 3rem !important +} + +.ps-0 { + padding-left: 0 !important +} + +.ps-1 { + padding-left: .25rem !important +} + +.ps-2 { + padding-left: .5rem !important +} + +.ps-3 { + padding-left: 1rem !important +} + +.ps-4 { + padding-left: 1.5rem !important +} + +.ps-5 { + padding-left: 3rem !important +} + +.gap-0 { + gap: 0 !important +} + +.gap-1 { + gap: .25rem !important +} + +.gap-2 { + gap: .5rem !important +} + +.gap-3 { + gap: 1rem !important +} + +.gap-4 { + gap: 1.5rem !important +} + +.gap-5 { + gap: 3rem !important +} + +.row-gap-0 { + row-gap: 0 !important +} + +.row-gap-1 { + row-gap: .25rem !important +} + +.row-gap-2 { + row-gap: .5rem !important +} + +.row-gap-3 { + row-gap: 1rem !important +} + +.row-gap-4 { + row-gap: 1.5rem !important +} + +.row-gap-5 { + row-gap: 3rem !important +} + +.column-gap-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important +} + +.column-gap-1 { + -moz-column-gap: 0.25rem !important; + column-gap: .25rem !important +} + +.column-gap-2 { + -moz-column-gap: 0.5rem !important; + column-gap: .5rem !important +} + +.column-gap-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important +} + +.column-gap-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important +} + +.column-gap-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important +} + +.font-monospace { + font-family: var(--bs-font-monospace) !important +} + +.fs-1 { + font-size: calc(1.375rem + 1.5vw) !important +} + +.fs-2 { + font-size: calc(1.325rem + .9vw) !important +} + +.fs-3 { + font-size: calc(1.3rem + .6vw) !important +} + +.fs-4 { + font-size: calc(1.275rem + .3vw) !important +} + +.fs-5 { + font-size: 1.25rem !important +} + +.fs-6 { + font-size: 1rem !important +} + +.fst-italic { + font-style: italic !important +} + +.fst-normal { + font-style: normal !important +} + +.fw-lighter { + font-weight: lighter !important +} + +.fw-light { + font-weight: 300 !important +} + +.fw-normal { + font-weight: 400 !important +} + +.fw-medium { + font-weight: 500 !important +} + +.fw-semibold { + font-weight: 600 !important +} + +.fw-bold { + font-weight: 700 !important +} + +.fw-bolder { + font-weight: bolder !important +} + +.lh-1 { + line-height: 1 !important +} + +.lh-sm { + line-height: 1.25 !important +} + +.lh-base { + line-height: 1.5 !important +} + +.lh-lg { + line-height: 2 !important +} + +.text-start { + text-align: left !important +} + +.text-end { + text-align: right !important +} + +.text-center { + text-align: center !important +} + +.text-decoration-none { + text-decoration: none !important +} + +.text-decoration-underline { + text-decoration: underline !important +} + +.text-decoration-line-through { + text-decoration: line-through !important +} + +.text-lowercase { + text-transform: lowercase !important +} + +.text-uppercase { + text-transform: uppercase !important +} + +.text-capitalize { + text-transform: capitalize !important +} + +.text-wrap { + white-space: normal !important +} + +.text-nowrap { + white-space: nowrap !important +} + +.text-break { + word-wrap: break-word !important; + word-break: break-word !important +} + +.text-primary { + --bs-text-opacity: 1; + color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important +} + +.text-secondary { + --bs-text-opacity: 1; + color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important +} + +.text-success { + --bs-text-opacity: 1; + color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important +} + +.text-info { + --bs-text-opacity: 1; + color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important +} + +.text-warning { + --bs-text-opacity: 1; + color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important +} + +.text-danger { + --bs-text-opacity: 1; + color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important +} + +.text-light { + --bs-text-opacity: 1; + color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important +} + +.text-dark { + --bs-text-opacity: 1; + color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important +} + +.text-black { + --bs-text-opacity: 1; + color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important +} + +.text-white { + --bs-text-opacity: 1; + color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important +} + +.text-body { + --bs-text-opacity: 1; + color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important +} + +.text-muted { + --bs-text-opacity: 1; + color: var(--bs-secondary-color) !important +} + +.text-black-50 { + --bs-text-opacity: 1; + color: rgba(0, 0, 0, .5) !important +} + +.text-white-50 { + --bs-text-opacity: 1; + color: rgba(255, 255, 255, .5) !important +} + +.text-body-secondary { + --bs-text-opacity: 1; + color: var(--bs-secondary-color) !important +} + +.text-body-tertiary { + --bs-text-opacity: 1; + color: var(--bs-tertiary-color) !important +} + +.text-body-emphasis { + --bs-text-opacity: 1; + color: var(--bs-emphasis-color) !important +} + +.text-reset { + --bs-text-opacity: 1; + color: inherit !important +} + +.text-opacity-25 { + --bs-text-opacity: 0.25 +} + +.text-opacity-50 { + --bs-text-opacity: 0.5 +} + +.text-opacity-75 { + --bs-text-opacity: 0.75 +} + +.text-opacity-100 { + --bs-text-opacity: 1 +} + +.text-primary-emphasis { + color: var(--bs-primary-text-emphasis) !important +} + +.text-secondary-emphasis { + color: var(--bs-secondary-text-emphasis) !important +} + +.text-success-emphasis { + color: var(--bs-success-text-emphasis) !important +} + +.text-info-emphasis { + color: var(--bs-info-text-emphasis) !important +} + +.text-warning-emphasis { + color: var(--bs-warning-text-emphasis) !important +} + +.text-danger-emphasis { + color: var(--bs-danger-text-emphasis) !important +} + +.text-light-emphasis { + color: var(--bs-light-text-emphasis) !important +} + +.text-dark-emphasis { + color: var(--bs-dark-text-emphasis) !important +} + +.link-opacity-10 { + --bs-link-opacity: 0.1 +} + +.link-opacity-10-hover:hover { + --bs-link-opacity: 0.1 +} + +.link-opacity-25 { + --bs-link-opacity: 0.25 +} + +.link-opacity-25-hover:hover { + --bs-link-opacity: 0.25 +} + +.link-opacity-50 { + --bs-link-opacity: 0.5 +} + +.link-opacity-50-hover:hover { + --bs-link-opacity: 0.5 +} + +.link-opacity-75 { + --bs-link-opacity: 0.75 +} + +.link-opacity-75-hover:hover { + --bs-link-opacity: 0.75 +} + +.link-opacity-100 { + --bs-link-opacity: 1 +} + +.link-opacity-100-hover:hover { + --bs-link-opacity: 1 +} + +.link-offset-1 { + text-underline-offset: 0.125em !important +} + +.link-offset-1-hover:hover { + text-underline-offset: 0.125em !important +} + +.link-offset-2 { + text-underline-offset: 0.25em !important +} + +.link-offset-2-hover:hover { + text-underline-offset: 0.25em !important +} + +.link-offset-3 { + text-underline-offset: 0.375em !important +} + +.link-offset-3-hover:hover { + text-underline-offset: 0.375em !important +} + +.link-underline-primary { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important +} + +.link-underline-secondary { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important +} + +.link-underline-success { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important +} + +.link-underline-info { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important +} + +.link-underline-warning { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important +} + +.link-underline-danger { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important +} + +.link-underline-light { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important +} + +.link-underline-dark { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important +} + +.link-underline { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important +} + +.link-underline-opacity-0 { + --bs-link-underline-opacity: 0 +} + +.link-underline-opacity-0-hover:hover { + --bs-link-underline-opacity: 0 +} + +.link-underline-opacity-10 { + --bs-link-underline-opacity: 0.1 +} + +.link-underline-opacity-10-hover:hover { + --bs-link-underline-opacity: 0.1 +} + +.link-underline-opacity-25 { + --bs-link-underline-opacity: 0.25 +} + +.link-underline-opacity-25-hover:hover { + --bs-link-underline-opacity: 0.25 +} + +.link-underline-opacity-50 { + --bs-link-underline-opacity: 0.5 +} + +.link-underline-opacity-50-hover:hover { + --bs-link-underline-opacity: 0.5 +} + +.link-underline-opacity-75 { + --bs-link-underline-opacity: 0.75 +} + +.link-underline-opacity-75-hover:hover { + --bs-link-underline-opacity: 0.75 +} + +.link-underline-opacity-100 { + --bs-link-underline-opacity: 1 +} + +.link-underline-opacity-100-hover:hover { + --bs-link-underline-opacity: 1 +} + +.bg-primary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important +} + +.bg-secondary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important +} + +.bg-success { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important +} + +.bg-info { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important +} + +.bg-warning { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important +} + +.bg-danger { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important +} + +.bg-light { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important +} + +.bg-dark { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important +} + +.bg-black { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important +} + +.bg-white { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important +} + +.bg-body { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important +} + +.bg-transparent { + --bs-bg-opacity: 1; + background-color: transparent !important +} + +.bg-body-secondary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important +} + +.bg-body-tertiary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important +} + +.bg-opacity-10 { + --bs-bg-opacity: 0.1 +} + +.bg-opacity-25 { + --bs-bg-opacity: 0.25 +} + +.bg-opacity-50 { + --bs-bg-opacity: 0.5 +} + +.bg-opacity-75 { + --bs-bg-opacity: 0.75 +} + +.bg-opacity-100 { + --bs-bg-opacity: 1 +} + +.bg-primary-subtle { + background-color: var(--bs-primary-bg-subtle) !important +} + +.bg-secondary-subtle { + background-color: var(--bs-secondary-bg-subtle) !important +} + +.bg-success-subtle { + background-color: var(--bs-success-bg-subtle) !important +} + +.bg-info-subtle { + background-color: var(--bs-info-bg-subtle) !important +} + +.bg-warning-subtle { + background-color: var(--bs-warning-bg-subtle) !important +} + +.bg-danger-subtle { + background-color: var(--bs-danger-bg-subtle) !important +} + +.bg-light-subtle { + background-color: var(--bs-light-bg-subtle) !important +} + +.bg-dark-subtle { + background-color: var(--bs-dark-bg-subtle) !important +} + +.bg-gradient { + background-image: var(--bs-gradient) !important +} + +.user-select-all { + -webkit-user-select: all !important; + -moz-user-select: all !important; + user-select: all !important +} + +.user-select-auto { + -webkit-user-select: auto !important; + -moz-user-select: auto !important; + user-select: auto !important +} + +.user-select-none { + -webkit-user-select: none !important; + -moz-user-select: none !important; + user-select: none !important +} + +.pe-none { + pointer-events: none !important +} + +.pe-auto { + pointer-events: auto !important +} + +.rounded { + border-radius: var(--bs-border-radius) !important +} + +.rounded-0 { + border-radius: 0 !important +} + +.rounded-1 { + border-radius: var(--bs-border-radius-sm) !important +} + +.rounded-2 { + border-radius: var(--bs-border-radius) !important +} + +.rounded-3 { + border-radius: var(--bs-border-radius-lg) !important +} + +.rounded-4 { + border-radius: var(--bs-border-radius-xl) !important +} + +.rounded-5 { + border-radius: var(--bs-border-radius-xxl) !important +} + +.rounded-circle { + border-radius: 50% !important +} + +.rounded-pill { + border-radius: var(--bs-border-radius-pill) !important +} + +.rounded-top { + border-top-left-radius: var(--bs-border-radius) !important; + border-top-right-radius: var(--bs-border-radius) !important +} + +.rounded-top-0 { + border-top-left-radius: 0 !important; + border-top-right-radius: 0 !important +} + +.rounded-top-1 { + border-top-left-radius: var(--bs-border-radius-sm) !important; + border-top-right-radius: var(--bs-border-radius-sm) !important +} + +.rounded-top-2 { + border-top-left-radius: var(--bs-border-radius) !important; + border-top-right-radius: var(--bs-border-radius) !important +} + +.rounded-top-3 { + border-top-left-radius: var(--bs-border-radius-lg) !important; + border-top-right-radius: var(--bs-border-radius-lg) !important +} + +.rounded-top-4 { + border-top-left-radius: var(--bs-border-radius-xl) !important; + border-top-right-radius: var(--bs-border-radius-xl) !important +} + +.rounded-top-5 { + border-top-left-radius: var(--bs-border-radius-xxl) !important; + border-top-right-radius: var(--bs-border-radius-xxl) !important +} + +.rounded-top-circle { + border-top-left-radius: 50% !important; + border-top-right-radius: 50% !important +} + +.rounded-top-pill { + border-top-left-radius: var(--bs-border-radius-pill) !important; + border-top-right-radius: var(--bs-border-radius-pill) !important +} + +.rounded-end { + border-top-right-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important +} + +.rounded-end-0 { + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important +} + +.rounded-end-1 { + border-top-right-radius: var(--bs-border-radius-sm) !important; + border-bottom-right-radius: var(--bs-border-radius-sm) !important +} + +.rounded-end-2 { + border-top-right-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important +} + +.rounded-end-3 { + border-top-right-radius: var(--bs-border-radius-lg) !important; + border-bottom-right-radius: var(--bs-border-radius-lg) !important +} + +.rounded-end-4 { + border-top-right-radius: var(--bs-border-radius-xl) !important; + border-bottom-right-radius: var(--bs-border-radius-xl) !important +} + +.rounded-end-5 { + border-top-right-radius: var(--bs-border-radius-xxl) !important; + border-bottom-right-radius: var(--bs-border-radius-xxl) !important +} + +.rounded-end-circle { + border-top-right-radius: 50% !important; + border-bottom-right-radius: 50% !important +} + +.rounded-end-pill { + border-top-right-radius: var(--bs-border-radius-pill) !important; + border-bottom-right-radius: var(--bs-border-radius-pill) !important +} + +.rounded-bottom { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important +} + +.rounded-bottom-0 { + border-bottom-right-radius: 0 !important; + border-bottom-left-radius: 0 !important +} + +.rounded-bottom-1 { + border-bottom-right-radius: var(--bs-border-radius-sm) !important; + border-bottom-left-radius: var(--bs-border-radius-sm) !important +} + +.rounded-bottom-2 { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important +} + +.rounded-bottom-3 { + border-bottom-right-radius: var(--bs-border-radius-lg) !important; + border-bottom-left-radius: var(--bs-border-radius-lg) !important +} + +.rounded-bottom-4 { + border-bottom-right-radius: var(--bs-border-radius-xl) !important; + border-bottom-left-radius: var(--bs-border-radius-xl) !important +} + +.rounded-bottom-5 { + border-bottom-right-radius: var(--bs-border-radius-xxl) !important; + border-bottom-left-radius: var(--bs-border-radius-xxl) !important +} + +.rounded-bottom-circle { + border-bottom-right-radius: 50% !important; + border-bottom-left-radius: 50% !important +} + +.rounded-bottom-pill { + border-bottom-right-radius: var(--bs-border-radius-pill) !important; + border-bottom-left-radius: var(--bs-border-radius-pill) !important +} + +.rounded-start { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important +} + +.rounded-start-0 { + border-bottom-left-radius: 0 !important; + border-top-left-radius: 0 !important +} + +.rounded-start-1 { + border-bottom-left-radius: var(--bs-border-radius-sm) !important; + border-top-left-radius: var(--bs-border-radius-sm) !important +} + +.rounded-start-2 { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important +} + +.rounded-start-3 { + border-bottom-left-radius: var(--bs-border-radius-lg) !important; + border-top-left-radius: var(--bs-border-radius-lg) !important +} + +.rounded-start-4 { + border-bottom-left-radius: var(--bs-border-radius-xl) !important; + border-top-left-radius: var(--bs-border-radius-xl) !important +} + +.rounded-start-5 { + border-bottom-left-radius: var(--bs-border-radius-xxl) !important; + border-top-left-radius: var(--bs-border-radius-xxl) !important +} + +.rounded-start-circle { + border-bottom-left-radius: 50% !important; + border-top-left-radius: 50% !important +} + +.rounded-start-pill { + border-bottom-left-radius: var(--bs-border-radius-pill) !important; + border-top-left-radius: var(--bs-border-radius-pill) !important +} + +.visible { + visibility: visible !important +} + +.invisible { + visibility: hidden !important +} + +.z-n1 { + z-index: -1 !important +} + +.z-0 { + z-index: 0 !important +} + +.z-1 { + z-index: 1 !important +} + +.z-2 { + z-index: 2 !important +} + +.z-3 { + z-index: 3 !important +} + +@media (min-width:576px) { + .float-sm-start { + float: left !important + } + + .float-sm-end { + float: right !important + } + + .float-sm-none { + float: none !important + } + + .object-fit-sm-contain { + -o-object-fit: contain !important; + object-fit: contain !important + } + + .object-fit-sm-cover { + -o-object-fit: cover !important; + object-fit: cover !important + } + + .object-fit-sm-fill { + -o-object-fit: fill !important; + object-fit: fill !important + } + + .object-fit-sm-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important + } + + .object-fit-sm-none { + -o-object-fit: none !important; + object-fit: none !important + } + + .d-sm-inline { + display: inline !important + } + + .d-sm-inline-block { + display: inline-block !important + } + + .d-sm-block { + display: block !important + } + + .d-sm-grid { + display: grid !important + } + + .d-sm-inline-grid { + display: inline-grid !important + } + + .d-sm-table { + display: table !important + } + + .d-sm-table-row { + display: table-row !important + } + + .d-sm-table-cell { + display: table-cell !important + } + + .d-sm-flex { + display: flex !important + } + + .d-sm-inline-flex { + display: inline-flex !important + } + + .d-sm-none { + display: none !important + } + + .flex-sm-fill { + flex: 1 1 auto !important + } + + .flex-sm-row { + flex-direction: row !important + } + + .flex-sm-column { + flex-direction: column !important + } + + .flex-sm-row-reverse { + flex-direction: row-reverse !important + } + + .flex-sm-column-reverse { + flex-direction: column-reverse !important + } + + .flex-sm-grow-0 { + flex-grow: 0 !important + } + + .flex-sm-grow-1 { + flex-grow: 1 !important + } + + .flex-sm-shrink-0 { + flex-shrink: 0 !important + } + + .flex-sm-shrink-1 { + flex-shrink: 1 !important + } + + .flex-sm-wrap { + flex-wrap: wrap !important + } + + .flex-sm-nowrap { + flex-wrap: nowrap !important + } + + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important + } + + .justify-content-sm-start { + justify-content: flex-start !important + } + + .justify-content-sm-end { + justify-content: flex-end !important + } + + .justify-content-sm-center { + justify-content: center !important + } + + .justify-content-sm-between { + justify-content: space-between !important + } + + .justify-content-sm-around { + justify-content: space-around !important + } + + .justify-content-sm-evenly { + justify-content: space-evenly !important + } + + .align-items-sm-start { + align-items: flex-start !important + } + + .align-items-sm-end { + align-items: flex-end !important + } + + .align-items-sm-center { + align-items: center !important + } + + .align-items-sm-baseline { + align-items: baseline !important + } + + .align-items-sm-stretch { + align-items: stretch !important + } + + .align-content-sm-start { + align-content: flex-start !important + } + + .align-content-sm-end { + align-content: flex-end !important + } + + .align-content-sm-center { + align-content: center !important + } + + .align-content-sm-between { + align-content: space-between !important + } + + .align-content-sm-around { + align-content: space-around !important + } + + .align-content-sm-stretch { + align-content: stretch !important + } + + .align-self-sm-auto { + align-self: auto !important + } + + .align-self-sm-start { + align-self: flex-start !important + } + + .align-self-sm-end { + align-self: flex-end !important + } + + .align-self-sm-center { + align-self: center !important + } + + .align-self-sm-baseline { + align-self: baseline !important + } + + .align-self-sm-stretch { + align-self: stretch !important + } + + .order-sm-first { + order: -1 !important + } + + .order-sm-0 { + order: 0 !important + } + + .order-sm-1 { + order: 1 !important + } + + .order-sm-2 { + order: 2 !important + } + + .order-sm-3 { + order: 3 !important + } + + .order-sm-4 { + order: 4 !important + } + + .order-sm-5 { + order: 5 !important + } + + .order-sm-last { + order: 6 !important + } + + .m-sm-0 { + margin: 0 !important + } + + .m-sm-1 { + margin: .25rem !important + } + + .m-sm-2 { + margin: .5rem !important + } + + .m-sm-3 { + margin: 1rem !important + } + + .m-sm-4 { + margin: 1.5rem !important + } + + .m-sm-5 { + margin: 3rem !important + } + + .m-sm-auto { + margin: auto !important + } + + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important + } + + .mx-sm-1 { + margin-right: .25rem !important; + margin-left: .25rem !important + } + + .mx-sm-2 { + margin-right: .5rem !important; + margin-left: .5rem !important + } + + .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important + } + + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important + } + + .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important + } + + .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important + } + + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important + } + + .my-sm-1 { + margin-top: .25rem !important; + margin-bottom: .25rem !important + } + + .my-sm-2 { + margin-top: .5rem !important; + margin-bottom: .5rem !important + } + + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important + } + + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important + } + + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important + } + + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important + } + + .mt-sm-0 { + margin-top: 0 !important + } + + .mt-sm-1 { + margin-top: .25rem !important + } + + .mt-sm-2 { + margin-top: .5rem !important + } + + .mt-sm-3 { + margin-top: 1rem !important + } + + .mt-sm-4 { + margin-top: 1.5rem !important + } + + .mt-sm-5 { + margin-top: 3rem !important + } + + .mt-sm-auto { + margin-top: auto !important + } + + .me-sm-0 { + margin-right: 0 !important + } + + .me-sm-1 { + margin-right: .25rem !important + } + + .me-sm-2 { + margin-right: .5rem !important + } + + .me-sm-3 { + margin-right: 1rem !important + } + + .me-sm-4 { + margin-right: 1.5rem !important + } + + .me-sm-5 { + margin-right: 3rem !important + } + + .me-sm-auto { + margin-right: auto !important + } + + .mb-sm-0 { + margin-bottom: 0 !important + } + + .mb-sm-1 { + margin-bottom: .25rem !important + } + + .mb-sm-2 { + margin-bottom: .5rem !important + } + + .mb-sm-3 { + margin-bottom: 1rem !important + } + + .mb-sm-4 { + margin-bottom: 1.5rem !important + } + + .mb-sm-5 { + margin-bottom: 3rem !important + } + + .mb-sm-auto { + margin-bottom: auto !important + } + + .ms-sm-0 { + margin-left: 0 !important + } + + .ms-sm-1 { + margin-left: .25rem !important + } + + .ms-sm-2 { + margin-left: .5rem !important + } + + .ms-sm-3 { + margin-left: 1rem !important + } + + .ms-sm-4 { + margin-left: 1.5rem !important + } + + .ms-sm-5 { + margin-left: 3rem !important + } + + .ms-sm-auto { + margin-left: auto !important + } + + .p-sm-0 { + padding: 0 !important + } + + .p-sm-1 { + padding: .25rem !important + } + + .p-sm-2 { + padding: .5rem !important + } + + .p-sm-3 { + padding: 1rem !important + } + + .p-sm-4 { + padding: 1.5rem !important + } + + .p-sm-5 { + padding: 3rem !important + } + + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important + } + + .px-sm-1 { + padding-right: .25rem !important; + padding-left: .25rem !important + } + + .px-sm-2 { + padding-right: .5rem !important; + padding-left: .5rem !important + } + + .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important + } + + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important + } + + .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important + } + + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important + } + + .py-sm-1 { + padding-top: .25rem !important; + padding-bottom: .25rem !important + } + + .py-sm-2 { + padding-top: .5rem !important; + padding-bottom: .5rem !important + } + + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important + } + + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important + } + + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important + } + + .pt-sm-0 { + padding-top: 0 !important + } + + .pt-sm-1 { + padding-top: .25rem !important + } + + .pt-sm-2 { + padding-top: .5rem !important + } + + .pt-sm-3 { + padding-top: 1rem !important + } + + .pt-sm-4 { + padding-top: 1.5rem !important + } + + .pt-sm-5 { + padding-top: 3rem !important + } + + .pe-sm-0 { + padding-right: 0 !important + } + + .pe-sm-1 { + padding-right: .25rem !important + } + + .pe-sm-2 { + padding-right: .5rem !important + } + + .pe-sm-3 { + padding-right: 1rem !important + } + + .pe-sm-4 { + padding-right: 1.5rem !important + } + + .pe-sm-5 { + padding-right: 3rem !important + } + + .pb-sm-0 { + padding-bottom: 0 !important + } + + .pb-sm-1 { + padding-bottom: .25rem !important + } + + .pb-sm-2 { + padding-bottom: .5rem !important + } + + .pb-sm-3 { + padding-bottom: 1rem !important + } + + .pb-sm-4 { + padding-bottom: 1.5rem !important + } + + .pb-sm-5 { + padding-bottom: 3rem !important + } + + .ps-sm-0 { + padding-left: 0 !important + } + + .ps-sm-1 { + padding-left: .25rem !important + } + + .ps-sm-2 { + padding-left: .5rem !important + } + + .ps-sm-3 { + padding-left: 1rem !important + } + + .ps-sm-4 { + padding-left: 1.5rem !important + } + + .ps-sm-5 { + padding-left: 3rem !important + } + + .gap-sm-0 { + gap: 0 !important + } + + .gap-sm-1 { + gap: .25rem !important + } + + .gap-sm-2 { + gap: .5rem !important + } + + .gap-sm-3 { + gap: 1rem !important + } + + .gap-sm-4 { + gap: 1.5rem !important + } + + .gap-sm-5 { + gap: 3rem !important + } + + .row-gap-sm-0 { + row-gap: 0 !important + } + + .row-gap-sm-1 { + row-gap: .25rem !important + } + + .row-gap-sm-2 { + row-gap: .5rem !important + } + + .row-gap-sm-3 { + row-gap: 1rem !important + } + + .row-gap-sm-4 { + row-gap: 1.5rem !important + } + + .row-gap-sm-5 { + row-gap: 3rem !important + } + + .column-gap-sm-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important + } + + .column-gap-sm-1 { + -moz-column-gap: 0.25rem !important; + column-gap: .25rem !important + } + + .column-gap-sm-2 { + -moz-column-gap: 0.5rem !important; + column-gap: .5rem !important + } + + .column-gap-sm-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important + } + + .column-gap-sm-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important + } + + .column-gap-sm-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important + } + + .text-sm-start { + text-align: left !important + } + + .text-sm-end { + text-align: right !important + } + + .text-sm-center { + text-align: center !important + } +} + +@media (min-width:768px) { + .float-md-start { + float: left !important + } + + .float-md-end { + float: right !important + } + + .float-md-none { + float: none !important + } + + .object-fit-md-contain { + -o-object-fit: contain !important; + object-fit: contain !important + } + + .object-fit-md-cover { + -o-object-fit: cover !important; + object-fit: cover !important + } + + .object-fit-md-fill { + -o-object-fit: fill !important; + object-fit: fill !important + } + + .object-fit-md-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important + } + + .object-fit-md-none { + -o-object-fit: none !important; + object-fit: none !important + } + + .d-md-inline { + display: inline !important + } + + .d-md-inline-block { + display: inline-block !important + } + + .d-md-block { + display: block !important + } + + .d-md-grid { + display: grid !important + } + + .d-md-inline-grid { + display: inline-grid !important + } + + .d-md-table { + display: table !important + } + + .d-md-table-row { + display: table-row !important + } + + .d-md-table-cell { + display: table-cell !important + } + + .d-md-flex { + display: flex !important + } + + .d-md-inline-flex { + display: inline-flex !important + } + + .d-md-none { + display: none !important + } + + .flex-md-fill { + flex: 1 1 auto !important + } + + .flex-md-row { + flex-direction: row !important + } + + .flex-md-column { + flex-direction: column !important + } + + .flex-md-row-reverse { + flex-direction: row-reverse !important + } + + .flex-md-column-reverse { + flex-direction: column-reverse !important + } + + .flex-md-grow-0 { + flex-grow: 0 !important + } + + .flex-md-grow-1 { + flex-grow: 1 !important + } + + .flex-md-shrink-0 { + flex-shrink: 0 !important + } + + .flex-md-shrink-1 { + flex-shrink: 1 !important + } + + .flex-md-wrap { + flex-wrap: wrap !important + } + + .flex-md-nowrap { + flex-wrap: nowrap !important + } + + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important + } + + .justify-content-md-start { + justify-content: flex-start !important + } + + .justify-content-md-end { + justify-content: flex-end !important + } + + .justify-content-md-center { + justify-content: center !important + } + + .justify-content-md-between { + justify-content: space-between !important + } + + .justify-content-md-around { + justify-content: space-around !important + } + + .justify-content-md-evenly { + justify-content: space-evenly !important + } + + .align-items-md-start { + align-items: flex-start !important + } + + .align-items-md-end { + align-items: flex-end !important + } + + .align-items-md-center { + align-items: center !important + } + + .align-items-md-baseline { + align-items: baseline !important + } + + .align-items-md-stretch { + align-items: stretch !important + } + + .align-content-md-start { + align-content: flex-start !important + } + + .align-content-md-end { + align-content: flex-end !important + } + + .align-content-md-center { + align-content: center !important + } + + .align-content-md-between { + align-content: space-between !important + } + + .align-content-md-around { + align-content: space-around !important + } + + .align-content-md-stretch { + align-content: stretch !important + } + + .align-self-md-auto { + align-self: auto !important + } + + .align-self-md-start { + align-self: flex-start !important + } + + .align-self-md-end { + align-self: flex-end !important + } + + .align-self-md-center { + align-self: center !important + } + + .align-self-md-baseline { + align-self: baseline !important + } + + .align-self-md-stretch { + align-self: stretch !important + } + + .order-md-first { + order: -1 !important + } + + .order-md-0 { + order: 0 !important + } + + .order-md-1 { + order: 1 !important + } + + .order-md-2 { + order: 2 !important + } + + .order-md-3 { + order: 3 !important + } + + .order-md-4 { + order: 4 !important + } + + .order-md-5 { + order: 5 !important + } + + .order-md-last { + order: 6 !important + } + + .m-md-0 { + margin: 0 !important + } + + .m-md-1 { + margin: .25rem !important + } + + .m-md-2 { + margin: .5rem !important + } + + .m-md-3 { + margin: 1rem !important + } + + .m-md-4 { + margin: 1.5rem !important + } + + .m-md-5 { + margin: 3rem !important + } + + .m-md-auto { + margin: auto !important + } + + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important + } + + .mx-md-1 { + margin-right: .25rem !important; + margin-left: .25rem !important + } + + .mx-md-2 { + margin-right: .5rem !important; + margin-left: .5rem !important + } + + .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important + } + + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important + } + + .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important + } + + .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important + } + + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important + } + + .my-md-1 { + margin-top: .25rem !important; + margin-bottom: .25rem !important + } + + .my-md-2 { + margin-top: .5rem !important; + margin-bottom: .5rem !important + } + + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important + } + + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important + } + + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important + } + + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important + } + + .mt-md-0 { + margin-top: 0 !important + } + + .mt-md-1 { + margin-top: .25rem !important + } + + .mt-md-2 { + margin-top: .5rem !important + } + + .mt-md-3 { + margin-top: 1rem !important + } + + .mt-md-4 { + margin-top: 1.5rem !important + } + + .mt-md-5 { + margin-top: 3rem !important + } + + .mt-md-auto { + margin-top: auto !important + } + + .me-md-0 { + margin-right: 0 !important + } + + .me-md-1 { + margin-right: .25rem !important + } + + .me-md-2 { + margin-right: .5rem !important + } + + .me-md-3 { + margin-right: 1rem !important + } + + .me-md-4 { + margin-right: 1.5rem !important + } + + .me-md-5 { + margin-right: 3rem !important + } + + .me-md-auto { + margin-right: auto !important + } + + .mb-md-0 { + margin-bottom: 0 !important + } + + .mb-md-1 { + margin-bottom: .25rem !important + } + + .mb-md-2 { + margin-bottom: .5rem !important + } + + .mb-md-3 { + margin-bottom: 1rem !important + } + + .mb-md-4 { + margin-bottom: 1.5rem !important + } + + .mb-md-5 { + margin-bottom: 3rem !important + } + + .mb-md-auto { + margin-bottom: auto !important + } + + .ms-md-0 { + margin-left: 0 !important + } + + .ms-md-1 { + margin-left: .25rem !important + } + + .ms-md-2 { + margin-left: .5rem !important + } + + .ms-md-3 { + margin-left: 1rem !important + } + + .ms-md-4 { + margin-left: 1.5rem !important + } + + .ms-md-5 { + margin-left: 3rem !important + } + + .ms-md-auto { + margin-left: auto !important + } + + .p-md-0 { + padding: 0 !important + } + + .p-md-1 { + padding: .25rem !important + } + + .p-md-2 { + padding: .5rem !important + } + + .p-md-3 { + padding: 1rem !important + } + + .p-md-4 { + padding: 1.5rem !important + } + + .p-md-5 { + padding: 3rem !important + } + + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important + } + + .px-md-1 { + padding-right: .25rem !important; + padding-left: .25rem !important + } + + .px-md-2 { + padding-right: .5rem !important; + padding-left: .5rem !important + } + + .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important + } + + .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important + } + + .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important + } + + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important + } + + .py-md-1 { + padding-top: .25rem !important; + padding-bottom: .25rem !important + } + + .py-md-2 { + padding-top: .5rem !important; + padding-bottom: .5rem !important + } + + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important + } + + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important + } + + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important + } + + .pt-md-0 { + padding-top: 0 !important + } + + .pt-md-1 { + padding-top: .25rem !important + } + + .pt-md-2 { + padding-top: .5rem !important + } + + .pt-md-3 { + padding-top: 1rem !important + } + + .pt-md-4 { + padding-top: 1.5rem !important + } + + .pt-md-5 { + padding-top: 3rem !important + } + + .pe-md-0 { + padding-right: 0 !important + } + + .pe-md-1 { + padding-right: .25rem !important + } + + .pe-md-2 { + padding-right: .5rem !important + } + + .pe-md-3 { + padding-right: 1rem !important + } + + .pe-md-4 { + padding-right: 1.5rem !important + } + + .pe-md-5 { + padding-right: 3rem !important + } + + .pb-md-0 { + padding-bottom: 0 !important + } + + .pb-md-1 { + padding-bottom: .25rem !important + } + + .pb-md-2 { + padding-bottom: .5rem !important + } + + .pb-md-3 { + padding-bottom: 1rem !important + } + + .pb-md-4 { + padding-bottom: 1.5rem !important + } + + .pb-md-5 { + padding-bottom: 3rem !important + } + + .ps-md-0 { + padding-left: 0 !important + } + + .ps-md-1 { + padding-left: .25rem !important + } + + .ps-md-2 { + padding-left: .5rem !important + } + + .ps-md-3 { + padding-left: 1rem !important + } + + .ps-md-4 { + padding-left: 1.5rem !important + } + + .ps-md-5 { + padding-left: 3rem !important + } + + .gap-md-0 { + gap: 0 !important + } + + .gap-md-1 { + gap: .25rem !important + } + + .gap-md-2 { + gap: .5rem !important + } + + .gap-md-3 { + gap: 1rem !important + } + + .gap-md-4 { + gap: 1.5rem !important + } + + .gap-md-5 { + gap: 3rem !important + } + + .row-gap-md-0 { + row-gap: 0 !important + } + + .row-gap-md-1 { + row-gap: .25rem !important + } + + .row-gap-md-2 { + row-gap: .5rem !important + } + + .row-gap-md-3 { + row-gap: 1rem !important + } + + .row-gap-md-4 { + row-gap: 1.5rem !important + } + + .row-gap-md-5 { + row-gap: 3rem !important + } + + .column-gap-md-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important + } + + .column-gap-md-1 { + -moz-column-gap: 0.25rem !important; + column-gap: .25rem !important + } + + .column-gap-md-2 { + -moz-column-gap: 0.5rem !important; + column-gap: .5rem !important + } + + .column-gap-md-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important + } + + .column-gap-md-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important + } + + .column-gap-md-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important + } + + .text-md-start { + text-align: left !important + } + + .text-md-end { + text-align: right !important + } + + .text-md-center { + text-align: center !important + } +} + +@media (min-width:992px) { + .float-lg-start { + float: left !important + } + + .float-lg-end { + float: right !important + } + + .float-lg-none { + float: none !important + } + + .object-fit-lg-contain { + -o-object-fit: contain !important; + object-fit: contain !important + } + + .object-fit-lg-cover { + -o-object-fit: cover !important; + object-fit: cover !important + } + + .object-fit-lg-fill { + -o-object-fit: fill !important; + object-fit: fill !important + } + + .object-fit-lg-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important + } + + .object-fit-lg-none { + -o-object-fit: none !important; + object-fit: none !important + } + + .d-lg-inline { + display: inline !important + } + + .d-lg-inline-block { + display: inline-block !important + } + + .d-lg-block { + display: block !important + } + + .d-lg-grid { + display: grid !important + } + + .d-lg-inline-grid { + display: inline-grid !important + } + + .d-lg-table { + display: table !important + } + + .d-lg-table-row { + display: table-row !important + } + + .d-lg-table-cell { + display: table-cell !important + } + + .d-lg-flex { + display: flex !important + } + + .d-lg-inline-flex { + display: inline-flex !important + } + + .d-lg-none { + display: none !important + } + + .flex-lg-fill { + flex: 1 1 auto !important + } + + .flex-lg-row { + flex-direction: row !important + } + + .flex-lg-column { + flex-direction: column !important + } + + .flex-lg-row-reverse { + flex-direction: row-reverse !important + } + + .flex-lg-column-reverse { + flex-direction: column-reverse !important + } + + .flex-lg-grow-0 { + flex-grow: 0 !important + } + + .flex-lg-grow-1 { + flex-grow: 1 !important + } + + .flex-lg-shrink-0 { + flex-shrink: 0 !important + } + + .flex-lg-shrink-1 { + flex-shrink: 1 !important + } + + .flex-lg-wrap { + flex-wrap: wrap !important + } + + .flex-lg-nowrap { + flex-wrap: nowrap !important + } + + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important + } + + .justify-content-lg-start { + justify-content: flex-start !important + } + + .justify-content-lg-end { + justify-content: flex-end !important + } + + .justify-content-lg-center { + justify-content: center !important + } + + .justify-content-lg-between { + justify-content: space-between !important + } + + .justify-content-lg-around { + justify-content: space-around !important + } + + .justify-content-lg-evenly { + justify-content: space-evenly !important + } + + .align-items-lg-start { + align-items: flex-start !important + } + + .align-items-lg-end { + align-items: flex-end !important + } + + .align-items-lg-center { + align-items: center !important + } + + .align-items-lg-baseline { + align-items: baseline !important + } + + .align-items-lg-stretch { + align-items: stretch !important + } + + .align-content-lg-start { + align-content: flex-start !important + } + + .align-content-lg-end { + align-content: flex-end !important + } + + .align-content-lg-center { + align-content: center !important + } + + .align-content-lg-between { + align-content: space-between !important + } + + .align-content-lg-around { + align-content: space-around !important + } + + .align-content-lg-stretch { + align-content: stretch !important + } + + .align-self-lg-auto { + align-self: auto !important + } + + .align-self-lg-start { + align-self: flex-start !important + } + + .align-self-lg-end { + align-self: flex-end !important + } + + .align-self-lg-center { + align-self: center !important + } + + .align-self-lg-baseline { + align-self: baseline !important + } + + .align-self-lg-stretch { + align-self: stretch !important + } + + .order-lg-first { + order: -1 !important + } + + .order-lg-0 { + order: 0 !important + } + + .order-lg-1 { + order: 1 !important + } + + .order-lg-2 { + order: 2 !important + } + + .order-lg-3 { + order: 3 !important + } + + .order-lg-4 { + order: 4 !important + } + + .order-lg-5 { + order: 5 !important + } + + .order-lg-last { + order: 6 !important + } + + .m-lg-0 { + margin: 0 !important + } + + .m-lg-1 { + margin: .25rem !important + } + + .m-lg-2 { + margin: .5rem !important + } + + .m-lg-3 { + margin: 1rem !important + } + + .m-lg-4 { + margin: 1.5rem !important + } + + .m-lg-5 { + margin: 3rem !important + } + + .m-lg-auto { + margin: auto !important + } + + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important + } + + .mx-lg-1 { + margin-right: .25rem !important; + margin-left: .25rem !important + } + + .mx-lg-2 { + margin-right: .5rem !important; + margin-left: .5rem !important + } + + .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important + } + + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important + } + + .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important + } + + .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important + } + + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important + } + + .my-lg-1 { + margin-top: .25rem !important; + margin-bottom: .25rem !important + } + + .my-lg-2 { + margin-top: .5rem !important; + margin-bottom: .5rem !important + } + + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important + } + + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important + } + + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important + } + + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important + } + + .mt-lg-0 { + margin-top: 0 !important + } + + .mt-lg-1 { + margin-top: .25rem !important + } + + .mt-lg-2 { + margin-top: .5rem !important + } + + .mt-lg-3 { + margin-top: 1rem !important + } + + .mt-lg-4 { + margin-top: 1.5rem !important + } + + .mt-lg-5 { + margin-top: 3rem !important + } + + .mt-lg-auto { + margin-top: auto !important + } + + .me-lg-0 { + margin-right: 0 !important + } + + .me-lg-1 { + margin-right: .25rem !important + } + + .me-lg-2 { + margin-right: .5rem !important + } + + .me-lg-3 { + margin-right: 1rem !important + } + + .me-lg-4 { + margin-right: 1.5rem !important + } + + .me-lg-5 { + margin-right: 3rem !important + } + + .me-lg-auto { + margin-right: auto !important + } + + .mb-lg-0 { + margin-bottom: 0 !important + } + + .mb-lg-1 { + margin-bottom: .25rem !important + } + + .mb-lg-2 { + margin-bottom: .5rem !important + } + + .mb-lg-3 { + margin-bottom: 1rem !important + } + + .mb-lg-4 { + margin-bottom: 1.5rem !important + } + + .mb-lg-5 { + margin-bottom: 3rem !important + } + + .mb-lg-auto { + margin-bottom: auto !important + } + + .ms-lg-0 { + margin-left: 0 !important + } + + .ms-lg-1 { + margin-left: .25rem !important + } + + .ms-lg-2 { + margin-left: .5rem !important + } + + .ms-lg-3 { + margin-left: 1rem !important + } + + .ms-lg-4 { + margin-left: 1.5rem !important + } + + .ms-lg-5 { + margin-left: 3rem !important + } + + .ms-lg-auto { + margin-left: auto !important + } + + .p-lg-0 { + padding: 0 !important + } + + .p-lg-1 { + padding: .25rem !important + } + + .p-lg-2 { + padding: .5rem !important + } + + .p-lg-3 { + padding: 1rem !important + } + + .p-lg-4 { + padding: 1.5rem !important + } + + .p-lg-5 { + padding: 3rem !important + } + + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important + } + + .px-lg-1 { + padding-right: .25rem !important; + padding-left: .25rem !important + } + + .px-lg-2 { + padding-right: .5rem !important; + padding-left: .5rem !important + } + + .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important + } + + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important + } + + .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important + } + + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important + } + + .py-lg-1 { + padding-top: .25rem !important; + padding-bottom: .25rem !important + } + + .py-lg-2 { + padding-top: .5rem !important; + padding-bottom: .5rem !important + } + + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important + } + + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important + } + + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important + } + + .pt-lg-0 { + padding-top: 0 !important + } + + .pt-lg-1 { + padding-top: .25rem !important + } + + .pt-lg-2 { + padding-top: .5rem !important + } + + .pt-lg-3 { + padding-top: 1rem !important + } + + .pt-lg-4 { + padding-top: 1.5rem !important + } + + .pt-lg-5 { + padding-top: 3rem !important + } + + .pe-lg-0 { + padding-right: 0 !important + } + + .pe-lg-1 { + padding-right: .25rem !important + } + + .pe-lg-2 { + padding-right: .5rem !important + } + + .pe-lg-3 { + padding-right: 1rem !important + } + + .pe-lg-4 { + padding-right: 1.5rem !important + } + + .pe-lg-5 { + padding-right: 3rem !important + } + + .pb-lg-0 { + padding-bottom: 0 !important + } + + .pb-lg-1 { + padding-bottom: .25rem !important + } + + .pb-lg-2 { + padding-bottom: .5rem !important + } + + .pb-lg-3 { + padding-bottom: 1rem !important + } + + .pb-lg-4 { + padding-bottom: 1.5rem !important + } + + .pb-lg-5 { + padding-bottom: 3rem !important + } + + .ps-lg-0 { + padding-left: 0 !important + } + + .ps-lg-1 { + padding-left: .25rem !important + } + + .ps-lg-2 { + padding-left: .5rem !important + } + + .ps-lg-3 { + padding-left: 1rem !important + } + + .ps-lg-4 { + padding-left: 1.5rem !important + } + + .ps-lg-5 { + padding-left: 3rem !important + } + + .gap-lg-0 { + gap: 0 !important + } + + .gap-lg-1 { + gap: .25rem !important + } + + .gap-lg-2 { + gap: .5rem !important + } + + .gap-lg-3 { + gap: 1rem !important + } + + .gap-lg-4 { + gap: 1.5rem !important + } + + .gap-lg-5 { + gap: 3rem !important + } + + .row-gap-lg-0 { + row-gap: 0 !important + } + + .row-gap-lg-1 { + row-gap: .25rem !important + } + + .row-gap-lg-2 { + row-gap: .5rem !important + } + + .row-gap-lg-3 { + row-gap: 1rem !important + } + + .row-gap-lg-4 { + row-gap: 1.5rem !important + } + + .row-gap-lg-5 { + row-gap: 3rem !important + } + + .column-gap-lg-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important + } + + .column-gap-lg-1 { + -moz-column-gap: 0.25rem !important; + column-gap: .25rem !important + } + + .column-gap-lg-2 { + -moz-column-gap: 0.5rem !important; + column-gap: .5rem !important + } + + .column-gap-lg-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important + } + + .column-gap-lg-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important + } + + .column-gap-lg-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important + } + + .text-lg-start { + text-align: left !important + } + + .text-lg-end { + text-align: right !important + } + + .text-lg-center { + text-align: center !important + } +} + +@media (min-width:1200px) { + .float-xl-start { + float: left !important + } + + .float-xl-end { + float: right !important + } + + .float-xl-none { + float: none !important + } + + .object-fit-xl-contain { + -o-object-fit: contain !important; + object-fit: contain !important + } + + .object-fit-xl-cover { + -o-object-fit: cover !important; + object-fit: cover !important + } + + .object-fit-xl-fill { + -o-object-fit: fill !important; + object-fit: fill !important + } + + .object-fit-xl-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important + } + + .object-fit-xl-none { + -o-object-fit: none !important; + object-fit: none !important + } + + .d-xl-inline { + display: inline !important + } + + .d-xl-inline-block { + display: inline-block !important + } + + .d-xl-block { + display: block !important + } + + .d-xl-grid { + display: grid !important + } + + .d-xl-inline-grid { + display: inline-grid !important + } + + .d-xl-table { + display: table !important + } + + .d-xl-table-row { + display: table-row !important + } + + .d-xl-table-cell { + display: table-cell !important + } + + .d-xl-flex { + display: flex !important + } + + .d-xl-inline-flex { + display: inline-flex !important + } + + .d-xl-none { + display: none !important + } + + .flex-xl-fill { + flex: 1 1 auto !important + } + + .flex-xl-row { + flex-direction: row !important + } + + .flex-xl-column { + flex-direction: column !important + } + + .flex-xl-row-reverse { + flex-direction: row-reverse !important + } + + .flex-xl-column-reverse { + flex-direction: column-reverse !important + } + + .flex-xl-grow-0 { + flex-grow: 0 !important + } + + .flex-xl-grow-1 { + flex-grow: 1 !important + } + + .flex-xl-shrink-0 { + flex-shrink: 0 !important + } + + .flex-xl-shrink-1 { + flex-shrink: 1 !important + } + + .flex-xl-wrap { + flex-wrap: wrap !important + } + + .flex-xl-nowrap { + flex-wrap: nowrap !important + } + + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important + } + + .justify-content-xl-start { + justify-content: flex-start !important + } + + .justify-content-xl-end { + justify-content: flex-end !important + } + + .justify-content-xl-center { + justify-content: center !important + } + + .justify-content-xl-between { + justify-content: space-between !important + } + + .justify-content-xl-around { + justify-content: space-around !important + } + + .justify-content-xl-evenly { + justify-content: space-evenly !important + } + + .align-items-xl-start { + align-items: flex-start !important + } + + .align-items-xl-end { + align-items: flex-end !important + } + + .align-items-xl-center { + align-items: center !important + } + + .align-items-xl-baseline { + align-items: baseline !important + } + + .align-items-xl-stretch { + align-items: stretch !important + } + + .align-content-xl-start { + align-content: flex-start !important + } + + .align-content-xl-end { + align-content: flex-end !important + } + + .align-content-xl-center { + align-content: center !important + } + + .align-content-xl-between { + align-content: space-between !important + } + + .align-content-xl-around { + align-content: space-around !important + } + + .align-content-xl-stretch { + align-content: stretch !important + } + + .align-self-xl-auto { + align-self: auto !important + } + + .align-self-xl-start { + align-self: flex-start !important + } + + .align-self-xl-end { + align-self: flex-end !important + } + + .align-self-xl-center { + align-self: center !important + } + + .align-self-xl-baseline { + align-self: baseline !important + } + + .align-self-xl-stretch { + align-self: stretch !important + } + + .order-xl-first { + order: -1 !important + } + + .order-xl-0 { + order: 0 !important + } + + .order-xl-1 { + order: 1 !important + } + + .order-xl-2 { + order: 2 !important + } + + .order-xl-3 { + order: 3 !important + } + + .order-xl-4 { + order: 4 !important + } + + .order-xl-5 { + order: 5 !important + } + + .order-xl-last { + order: 6 !important + } + + .m-xl-0 { + margin: 0 !important + } + + .m-xl-1 { + margin: .25rem !important + } + + .m-xl-2 { + margin: .5rem !important + } + + .m-xl-3 { + margin: 1rem !important + } + + .m-xl-4 { + margin: 1.5rem !important + } + + .m-xl-5 { + margin: 3rem !important + } + + .m-xl-auto { + margin: auto !important + } + + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important + } + + .mx-xl-1 { + margin-right: .25rem !important; + margin-left: .25rem !important + } + + .mx-xl-2 { + margin-right: .5rem !important; + margin-left: .5rem !important + } + + .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important + } + + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important + } + + .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important + } + + .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important + } + + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important + } + + .my-xl-1 { + margin-top: .25rem !important; + margin-bottom: .25rem !important + } + + .my-xl-2 { + margin-top: .5rem !important; + margin-bottom: .5rem !important + } + + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important + } + + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important + } + + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important + } + + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important + } + + .mt-xl-0 { + margin-top: 0 !important + } + + .mt-xl-1 { + margin-top: .25rem !important + } + + .mt-xl-2 { + margin-top: .5rem !important + } + + .mt-xl-3 { + margin-top: 1rem !important + } + + .mt-xl-4 { + margin-top: 1.5rem !important + } + + .mt-xl-5 { + margin-top: 3rem !important + } + + .mt-xl-auto { + margin-top: auto !important + } + + .me-xl-0 { + margin-right: 0 !important + } + + .me-xl-1 { + margin-right: .25rem !important + } + + .me-xl-2 { + margin-right: .5rem !important + } + + .me-xl-3 { + margin-right: 1rem !important + } + + .me-xl-4 { + margin-right: 1.5rem !important + } + + .me-xl-5 { + margin-right: 3rem !important + } + + .me-xl-auto { + margin-right: auto !important + } + + .mb-xl-0 { + margin-bottom: 0 !important + } + + .mb-xl-1 { + margin-bottom: .25rem !important + } + + .mb-xl-2 { + margin-bottom: .5rem !important + } + + .mb-xl-3 { + margin-bottom: 1rem !important + } + + .mb-xl-4 { + margin-bottom: 1.5rem !important + } + + .mb-xl-5 { + margin-bottom: 3rem !important + } + + .mb-xl-auto { + margin-bottom: auto !important + } + + .ms-xl-0 { + margin-left: 0 !important + } + + .ms-xl-1 { + margin-left: .25rem !important + } + + .ms-xl-2 { + margin-left: .5rem !important + } + + .ms-xl-3 { + margin-left: 1rem !important + } + + .ms-xl-4 { + margin-left: 1.5rem !important + } + + .ms-xl-5 { + margin-left: 3rem !important + } + + .ms-xl-auto { + margin-left: auto !important + } + + .p-xl-0 { + padding: 0 !important + } + + .p-xl-1 { + padding: .25rem !important + } + + .p-xl-2 { + padding: .5rem !important + } + + .p-xl-3 { + padding: 1rem !important + } + + .p-xl-4 { + padding: 1.5rem !important + } + + .p-xl-5 { + padding: 3rem !important + } + + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important + } + + .px-xl-1 { + padding-right: .25rem !important; + padding-left: .25rem !important + } + + .px-xl-2 { + padding-right: .5rem !important; + padding-left: .5rem !important + } + + .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important + } + + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important + } + + .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important + } + + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important + } + + .py-xl-1 { + padding-top: .25rem !important; + padding-bottom: .25rem !important + } + + .py-xl-2 { + padding-top: .5rem !important; + padding-bottom: .5rem !important + } + + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important + } + + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important + } + + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important + } + + .pt-xl-0 { + padding-top: 0 !important + } + + .pt-xl-1 { + padding-top: .25rem !important + } + + .pt-xl-2 { + padding-top: .5rem !important + } + + .pt-xl-3 { + padding-top: 1rem !important + } + + .pt-xl-4 { + padding-top: 1.5rem !important + } + + .pt-xl-5 { + padding-top: 3rem !important + } + + .pe-xl-0 { + padding-right: 0 !important + } + + .pe-xl-1 { + padding-right: .25rem !important + } + + .pe-xl-2 { + padding-right: .5rem !important + } + + .pe-xl-3 { + padding-right: 1rem !important + } + + .pe-xl-4 { + padding-right: 1.5rem !important + } + + .pe-xl-5 { + padding-right: 3rem !important + } + + .pb-xl-0 { + padding-bottom: 0 !important + } + + .pb-xl-1 { + padding-bottom: .25rem !important + } + + .pb-xl-2 { + padding-bottom: .5rem !important + } + + .pb-xl-3 { + padding-bottom: 1rem !important + } + + .pb-xl-4 { + padding-bottom: 1.5rem !important + } + + .pb-xl-5 { + padding-bottom: 3rem !important + } + + .ps-xl-0 { + padding-left: 0 !important + } + + .ps-xl-1 { + padding-left: .25rem !important + } + + .ps-xl-2 { + padding-left: .5rem !important + } + + .ps-xl-3 { + padding-left: 1rem !important + } + + .ps-xl-4 { + padding-left: 1.5rem !important + } + + .ps-xl-5 { + padding-left: 3rem !important + } + + .gap-xl-0 { + gap: 0 !important + } + + .gap-xl-1 { + gap: .25rem !important + } + + .gap-xl-2 { + gap: .5rem !important + } + + .gap-xl-3 { + gap: 1rem !important + } + + .gap-xl-4 { + gap: 1.5rem !important + } + + .gap-xl-5 { + gap: 3rem !important + } + + .row-gap-xl-0 { + row-gap: 0 !important + } + + .row-gap-xl-1 { + row-gap: .25rem !important + } + + .row-gap-xl-2 { + row-gap: .5rem !important + } + + .row-gap-xl-3 { + row-gap: 1rem !important + } + + .row-gap-xl-4 { + row-gap: 1.5rem !important + } + + .row-gap-xl-5 { + row-gap: 3rem !important + } + + .column-gap-xl-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important + } + + .column-gap-xl-1 { + -moz-column-gap: 0.25rem !important; + column-gap: .25rem !important + } + + .column-gap-xl-2 { + -moz-column-gap: 0.5rem !important; + column-gap: .5rem !important + } + + .column-gap-xl-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important + } + + .column-gap-xl-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important + } + + .column-gap-xl-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important + } + + .text-xl-start { + text-align: left !important + } + + .text-xl-end { + text-align: right !important + } + + .text-xl-center { + text-align: center !important + } +} + +@media (min-width:1400px) { + .float-xxl-start { + float: left !important + } + + .float-xxl-end { + float: right !important + } + + .float-xxl-none { + float: none !important + } + + .object-fit-xxl-contain { + -o-object-fit: contain !important; + object-fit: contain !important + } + + .object-fit-xxl-cover { + -o-object-fit: cover !important; + object-fit: cover !important + } + + .object-fit-xxl-fill { + -o-object-fit: fill !important; + object-fit: fill !important + } + + .object-fit-xxl-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important + } + + .object-fit-xxl-none { + -o-object-fit: none !important; + object-fit: none !important + } + + .d-xxl-inline { + display: inline !important + } + + .d-xxl-inline-block { + display: inline-block !important + } + + .d-xxl-block { + display: block !important + } + + .d-xxl-grid { + display: grid !important + } + + .d-xxl-inline-grid { + display: inline-grid !important + } + + .d-xxl-table { + display: table !important + } + + .d-xxl-table-row { + display: table-row !important + } + + .d-xxl-table-cell { + display: table-cell !important + } + + .d-xxl-flex { + display: flex !important + } + + .d-xxl-inline-flex { + display: inline-flex !important + } + + .d-xxl-none { + display: none !important + } + + .flex-xxl-fill { + flex: 1 1 auto !important + } + + .flex-xxl-row { + flex-direction: row !important + } + + .flex-xxl-column { + flex-direction: column !important + } + + .flex-xxl-row-reverse { + flex-direction: row-reverse !important + } + + .flex-xxl-column-reverse { + flex-direction: column-reverse !important + } + + .flex-xxl-grow-0 { + flex-grow: 0 !important + } + + .flex-xxl-grow-1 { + flex-grow: 1 !important + } + + .flex-xxl-shrink-0 { + flex-shrink: 0 !important + } + + .flex-xxl-shrink-1 { + flex-shrink: 1 !important + } + + .flex-xxl-wrap { + flex-wrap: wrap !important + } + + .flex-xxl-nowrap { + flex-wrap: nowrap !important + } + + .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important + } + + .justify-content-xxl-start { + justify-content: flex-start !important + } + + .justify-content-xxl-end { + justify-content: flex-end !important + } + + .justify-content-xxl-center { + justify-content: center !important + } + + .justify-content-xxl-between { + justify-content: space-between !important + } + + .justify-content-xxl-around { + justify-content: space-around !important + } + + .justify-content-xxl-evenly { + justify-content: space-evenly !important + } + + .align-items-xxl-start { + align-items: flex-start !important + } + + .align-items-xxl-end { + align-items: flex-end !important + } + + .align-items-xxl-center { + align-items: center !important + } + + .align-items-xxl-baseline { + align-items: baseline !important + } + + .align-items-xxl-stretch { + align-items: stretch !important + } + + .align-content-xxl-start { + align-content: flex-start !important + } + + .align-content-xxl-end { + align-content: flex-end !important + } + + .align-content-xxl-center { + align-content: center !important + } + + .align-content-xxl-between { + align-content: space-between !important + } + + .align-content-xxl-around { + align-content: space-around !important + } + + .align-content-xxl-stretch { + align-content: stretch !important + } + + .align-self-xxl-auto { + align-self: auto !important + } + + .align-self-xxl-start { + align-self: flex-start !important + } + + .align-self-xxl-end { + align-self: flex-end !important + } + + .align-self-xxl-center { + align-self: center !important + } + + .align-self-xxl-baseline { + align-self: baseline !important + } + + .align-self-xxl-stretch { + align-self: stretch !important + } + + .order-xxl-first { + order: -1 !important + } + + .order-xxl-0 { + order: 0 !important + } + + .order-xxl-1 { + order: 1 !important + } + + .order-xxl-2 { + order: 2 !important + } + + .order-xxl-3 { + order: 3 !important + } + + .order-xxl-4 { + order: 4 !important + } + + .order-xxl-5 { + order: 5 !important + } + + .order-xxl-last { + order: 6 !important + } + + .m-xxl-0 { + margin: 0 !important + } + + .m-xxl-1 { + margin: .25rem !important + } + + .m-xxl-2 { + margin: .5rem !important + } + + .m-xxl-3 { + margin: 1rem !important + } + + .m-xxl-4 { + margin: 1.5rem !important + } + + .m-xxl-5 { + margin: 3rem !important + } + + .m-xxl-auto { + margin: auto !important + } + + .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important + } + + .mx-xxl-1 { + margin-right: .25rem !important; + margin-left: .25rem !important + } + + .mx-xxl-2 { + margin-right: .5rem !important; + margin-left: .5rem !important + } + + .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important + } + + .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important + } + + .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important + } + + .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important + } + + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important + } + + .my-xxl-1 { + margin-top: .25rem !important; + margin-bottom: .25rem !important + } + + .my-xxl-2 { + margin-top: .5rem !important; + margin-bottom: .5rem !important + } + + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important + } + + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important + } + + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important + } + + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important + } + + .mt-xxl-0 { + margin-top: 0 !important + } + + .mt-xxl-1 { + margin-top: .25rem !important + } + + .mt-xxl-2 { + margin-top: .5rem !important + } + + .mt-xxl-3 { + margin-top: 1rem !important + } + + .mt-xxl-4 { + margin-top: 1.5rem !important + } + + .mt-xxl-5 { + margin-top: 3rem !important + } + + .mt-xxl-auto { + margin-top: auto !important + } + + .me-xxl-0 { + margin-right: 0 !important + } + + .me-xxl-1 { + margin-right: .25rem !important + } + + .me-xxl-2 { + margin-right: .5rem !important + } + + .me-xxl-3 { + margin-right: 1rem !important + } + + .me-xxl-4 { + margin-right: 1.5rem !important + } + + .me-xxl-5 { + margin-right: 3rem !important + } + + .me-xxl-auto { + margin-right: auto !important + } + + .mb-xxl-0 { + margin-bottom: 0 !important + } + + .mb-xxl-1 { + margin-bottom: .25rem !important + } + + .mb-xxl-2 { + margin-bottom: .5rem !important + } + + .mb-xxl-3 { + margin-bottom: 1rem !important + } + + .mb-xxl-4 { + margin-bottom: 1.5rem !important + } + + .mb-xxl-5 { + margin-bottom: 3rem !important + } + + .mb-xxl-auto { + margin-bottom: auto !important + } + + .ms-xxl-0 { + margin-left: 0 !important + } + + .ms-xxl-1 { + margin-left: .25rem !important + } + + .ms-xxl-2 { + margin-left: .5rem !important + } + + .ms-xxl-3 { + margin-left: 1rem !important + } + + .ms-xxl-4 { + margin-left: 1.5rem !important + } + + .ms-xxl-5 { + margin-left: 3rem !important + } + + .ms-xxl-auto { + margin-left: auto !important + } + + .p-xxl-0 { + padding: 0 !important + } + + .p-xxl-1 { + padding: .25rem !important + } + + .p-xxl-2 { + padding: .5rem !important + } + + .p-xxl-3 { + padding: 1rem !important + } + + .p-xxl-4 { + padding: 1.5rem !important + } + + .p-xxl-5 { + padding: 3rem !important + } + + .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important + } + + .px-xxl-1 { + padding-right: .25rem !important; + padding-left: .25rem !important + } + + .px-xxl-2 { + padding-right: .5rem !important; + padding-left: .5rem !important + } + + .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important + } + + .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important + } + + .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important + } + + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important + } + + .py-xxl-1 { + padding-top: .25rem !important; + padding-bottom: .25rem !important + } + + .py-xxl-2 { + padding-top: .5rem !important; + padding-bottom: .5rem !important + } + + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important + } + + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important + } + + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important + } + + .pt-xxl-0 { + padding-top: 0 !important + } + + .pt-xxl-1 { + padding-top: .25rem !important + } + + .pt-xxl-2 { + padding-top: .5rem !important + } + + .pt-xxl-3 { + padding-top: 1rem !important + } + + .pt-xxl-4 { + padding-top: 1.5rem !important + } + + .pt-xxl-5 { + padding-top: 3rem !important + } + + .pe-xxl-0 { + padding-right: 0 !important + } + + .pe-xxl-1 { + padding-right: .25rem !important + } + + .pe-xxl-2 { + padding-right: .5rem !important + } + + .pe-xxl-3 { + padding-right: 1rem !important + } + + .pe-xxl-4 { + padding-right: 1.5rem !important + } + + .pe-xxl-5 { + padding-right: 3rem !important + } + + .pb-xxl-0 { + padding-bottom: 0 !important + } + + .pb-xxl-1 { + padding-bottom: .25rem !important + } + + .pb-xxl-2 { + padding-bottom: .5rem !important + } + + .pb-xxl-3 { + padding-bottom: 1rem !important + } + + .pb-xxl-4 { + padding-bottom: 1.5rem !important + } + + .pb-xxl-5 { + padding-bottom: 3rem !important + } + + .ps-xxl-0 { + padding-left: 0 !important + } + + .ps-xxl-1 { + padding-left: .25rem !important + } + + .ps-xxl-2 { + padding-left: .5rem !important + } + + .ps-xxl-3 { + padding-left: 1rem !important + } + + .ps-xxl-4 { + padding-left: 1.5rem !important + } + + .ps-xxl-5 { + padding-left: 3rem !important + } + + .gap-xxl-0 { + gap: 0 !important + } + + .gap-xxl-1 { + gap: .25rem !important + } + + .gap-xxl-2 { + gap: .5rem !important + } + + .gap-xxl-3 { + gap: 1rem !important + } + + .gap-xxl-4 { + gap: 1.5rem !important + } + + .gap-xxl-5 { + gap: 3rem !important + } + + .row-gap-xxl-0 { + row-gap: 0 !important + } + + .row-gap-xxl-1 { + row-gap: .25rem !important + } + + .row-gap-xxl-2 { + row-gap: .5rem !important + } + + .row-gap-xxl-3 { + row-gap: 1rem !important + } + + .row-gap-xxl-4 { + row-gap: 1.5rem !important + } + + .row-gap-xxl-5 { + row-gap: 3rem !important + } + + .column-gap-xxl-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important + } + + .column-gap-xxl-1 { + -moz-column-gap: 0.25rem !important; + column-gap: .25rem !important + } + + .column-gap-xxl-2 { + -moz-column-gap: 0.5rem !important; + column-gap: .5rem !important + } + + .column-gap-xxl-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important + } + + .column-gap-xxl-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important + } + + .column-gap-xxl-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important + } + + .text-xxl-start { + text-align: left !important + } + + .text-xxl-end { + text-align: right !important + } + + .text-xxl-center { + text-align: center !important + } +} + +@media (min-width:1200px) { + .fs-1 { + font-size: 2.5rem !important + } + + .fs-2 { + font-size: 2rem !important + } + + .fs-3 { + font-size: 1.75rem !important + } + + .fs-4 { + font-size: 1.5rem !important + } +} + +@media print { + .d-print-inline { + display: inline !important + } + + .d-print-inline-block { + display: inline-block !important + } + + .d-print-block { + display: block !important + } + + .d-print-grid { + display: grid !important + } + + .d-print-inline-grid { + display: inline-grid !important + } + + .d-print-table { + display: table !important + } + + .d-print-table-row { + display: table-row !important + } + + .d-print-table-cell { + display: table-cell !important + } + + .d-print-flex { + display: flex !important + } + + .d-print-inline-flex { + display: inline-flex !important + } + + .d-print-none { + display: none !important + } +} + +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/frontend/src/assets/imgs/avatar.png b/frontend/src/assets/imgs/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..bd9311d4d539fcd03eb540b97891426fd829d593 GIT binary patch literal 28332 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 Hu0mjfSOu_L literal 0 HcmV?d00001 diff --git a/frontend/src/assets/imgs/footer-bg-1.png b/frontend/src/assets/imgs/footer-bg-1.png new file mode 100644 index 0000000000000000000000000000000000000000..f603e3dedf3b0e16a183305881a1d227f1a699db GIT binary patch literal 10403 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%0AsJiEYCN#4(l6$o&$*QdMMsX~^Bt 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

Q>Bfy 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 literal 0 HcmV?d00001 diff --git a/frontend/src/assets/imgs/logo-light.png b/frontend/src/assets/imgs/logo-light.png new file mode 100644 index 0000000000000000000000000000000000000000..41d09290aa6673c46f86d0491a3048d67e96a4aa GIT binary patch literal 6857 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 OQkrUdsz_zK_x}eJbYSZM literal 0 HcmV?d00001 diff --git a/frontend/src/assets/imgs/logo.png b/frontend/src/assets/imgs/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ab69e49c775dd1cc3fa826b52345087a5841f121 GIT binary patch literal 7983 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 Bds_ei literal 0 HcmV?d00001 diff --git a/frontend/src/assets/imgs/wechat_qrcode.jpg b/frontend/src/assets/imgs/wechat_qrcode.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1300672fe249f0a791cbd931783f0b72f731aedf GIT binary patch literal 27768 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 ACjbBd literal 0 HcmV?d00001 diff --git a/frontend/src/assets/less/global.less b/frontend/src/assets/less/global.less new file mode 100644 index 0000000..7e59938 --- /dev/null +++ b/frontend/src/assets/less/global.less @@ -0,0 +1,126 @@ +@import url(@/assets/css/bootstrap.min.css); +@import url(@/assets/less/main.less); + +// 全局样式变量 +:root { + --white:#fff; + --primary-color: #409eff; + --success-color: #67c23a; + --warning-color: #e6a23c; + --danger-color: #f56c6c; + --info-color: #909399; + + --text-primary: #303133; + --text-regular: #606266; + --text-secondary: #909399; + --text-placeholder: #c0c4cc; + + --border-color: #dcdfe6; + --border-color-light: #e4e7ed; + --border-color-lighter: #ebeef5; + + --background-color: #f5f5f5; + --background-color-page: #f0f2f5; +} + +// 全局重置样式 +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +a{ + text-decoration: none; +} + +html, +body { + height: 100%; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, + "Helvetica Neue", Arial, sans-serif; + font-size: 14px; + color: var(--text-primary); + background-color: var(--background-color-page); +} + +#app { + min-height: 100vh; +} + +// 工具类 +.text-center { + text-align: center; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.d-flex { + display: flex; +} + +.d-block { + display: block; +} + +.d-none { + display: none; +} + +.justify-center { + justify-content: center; +} + +.justify-between { + justify-content: space-between; +} + +.align-center { + align-items: center; +} + +.w-100 { + width: 100%; +} + +.h-100 { + height: 100%; +} + +.m-0 { + margin: 0; +} +.mt-1 { + margin-top: 8px; +} +.mt-2 { + margin-top: 16px; +} +.mt-3 { + margin-top: 24px; +} +.mb-1 { + margin-bottom: 8px; +} +.mb-2 { + margin-bottom: 16px; +} +.mb-3 { + margin-bottom: 24px; +} + +.p-1 { + padding: 8px; +} +.p-2 { + padding: 16px; +} +.p-3 { + padding: 24px; +} diff --git a/frontend/src/assets/scss/main.scss b/frontend/src/assets/less/main.less similarity index 100% rename from frontend/src/assets/scss/main.scss rename to frontend/src/assets/less/main.less diff --git a/frontend/src/components.d.ts b/frontend/src/components.d.ts new file mode 100644 index 0000000..58faba2 --- /dev/null +++ b/frontend/src/components.d.ts @@ -0,0 +1,26 @@ +/* eslint-disable */ +// @ts-nocheck +// biome-ignore lint: disable +// oxlint-disable +// ------ +// Generated by unplugin-vue-components +// Read more: https://github.com/vuejs/core/pull/3399 + +export {} + +/* prettier-ignore */ +declare module 'vue' { + export interface GlobalComponents { + ElAvatar: typeof import('element-plus/es')['ElAvatar'] + ElButton: typeof import('element-plus/es')['ElButton'] + ElDropdown: typeof import('element-plus/es')['ElDropdown'] + ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem'] + ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu'] + ElIcon: typeof import('element-plus/es')['ElIcon'] + ElInput: typeof import('element-plus/es')['ElInput'] + ElPagination: typeof import('element-plus/es')['ElPagination'] + HelloWorld: typeof import('./components/HelloWorld.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + } +} diff --git a/frontend/src/main.ts b/frontend/src/main.ts index 568a188..cdddf2f 100644 --- a/frontend/src/main.ts +++ b/frontend/src/main.ts @@ -1,5 +1,5 @@ import { createApp } from "vue"; -import "./style.css"; +import "@/assets/less/global.less"; import App from "./App.vue"; import router from "@/router"; import { createPinia } from 'pinia' diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index 6a3745f..f138f64 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -1,19 +1,43 @@ import { createRouter, createWebHistory } from "vue-router"; -import type { RouteRecordRaw } from "vue-router"; -const history = createWebHistory(); -const routes: Array = [ - { - path: "/", - redirect: "/index", - }, - { - path: "/index", - name: "index", - component: () => import("@/views/index/index.vue"), - }, -]; + const router = createRouter({ - history, - routes, + history: createWebHistory(), + routes: [ + { + path: "/", + redirect: "/index", + }, + { + path: "/index", + name: "index", + component: () => import("@/views/index/index.vue"), + }, + { + path: "/siteInformation", + name: "siteInformation", + component: () => import("@/views/siteInformation/index.vue"), + }, + { + path: "/technicalArticles", + name: "technicalArticles", + component: () => import("@/views/technicalArticles/index.vue"), + }, + { + path: "/officeResources", + name: "officeResources", + component: () => import("@/views/officeResources/index.vue"), + }, + { + path: "/downloadPrograms", + name: "downloadPrograms", + component: () => import("@/views/downloadPrograms/index.vue"), + }, + { + path: "/downloadGames", + name: "downloadGames", + component: () => import("@/views/downloadGames/index.vue"), + }, + ], }); + export default router; diff --git a/frontend/src/style.css b/frontend/src/style.css deleted file mode 100644 index f691315..0000000 --- a/frontend/src/style.css +++ /dev/null @@ -1,79 +0,0 @@ -:root { - font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; - line-height: 1.5; - font-weight: 400; - - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} -a:hover { - color: #535bf2; -} - -body { - margin: 0; - display: flex; - place-items: center; - min-width: 320px; - min-height: 100vh; -} - -h1 { - font-size: 3.2em; - line-height: 1.1; -} - -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -.card { - padding: 2em; -} - -#app { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - text-align: center; -} - -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } -} diff --git a/frontend/src/views/components/footer.vue b/frontend/src/views/components/footer.vue new file mode 100644 index 0000000..2f70c48 --- /dev/null +++ b/frontend/src/views/components/footer.vue @@ -0,0 +1,282 @@ + + + diff --git a/frontend/src/views/components/header.vue b/frontend/src/views/components/header.vue new file mode 100644 index 0000000..6307c2d --- /dev/null +++ b/frontend/src/views/components/header.vue @@ -0,0 +1,291 @@ + + + + + diff --git a/frontend/src/views/downloadGames/index.vue b/frontend/src/views/downloadGames/index.vue new file mode 100644 index 0000000..d0cc976 --- /dev/null +++ b/frontend/src/views/downloadGames/index.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/frontend/src/views/downloadPrograms/index.vue b/frontend/src/views/downloadPrograms/index.vue new file mode 100644 index 0000000..aa81692 --- /dev/null +++ b/frontend/src/views/downloadPrograms/index.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/frontend/src/views/index/index.vue b/frontend/src/views/index/index.vue index 7d4d276..e50777f 100644 --- a/frontend/src/views/index/index.vue +++ b/frontend/src/views/index/index.vue @@ -1,24 +1,64 @@ - - \ No newline at end of file +.main-content { + flex: 1; + display: flex; + flex-direction: column; +} + +.content-wrapper { + flex: 1; + padding: 20px; + background-color: var(--background-color-page); +} + +// 响应式设计 +@media (max-width: 768px) { + .content-wrapper { + padding: 15px; + } +} + +@media (max-width: 480px) { + .content-wrapper { + padding: 10px; + } +} + diff --git a/frontend/src/views/officeResources/index.vue b/frontend/src/views/officeResources/index.vue new file mode 100644 index 0000000..00f8608 --- /dev/null +++ b/frontend/src/views/officeResources/index.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/frontend/src/views/siteInformation/index.vue b/frontend/src/views/siteInformation/index.vue new file mode 100644 index 0000000..047c8cf --- /dev/null +++ b/frontend/src/views/siteInformation/index.vue @@ -0,0 +1,422 @@ + + + + + diff --git a/frontend/src/views/technicalArticles/index.vue b/frontend/src/views/technicalArticles/index.vue new file mode 100644 index 0000000..acc3431 --- /dev/null +++ b/frontend/src/views/technicalArticles/index.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/frontend/tsconfig.app.json b/frontend/tsconfig.app.json index 5434266..2947118 100644 --- a/frontend/tsconfig.app.json +++ b/frontend/tsconfig.app.json @@ -2,7 +2,7 @@ "extends": "@vue/tsconfig/tsconfig.dom.json", "compilerOptions": { "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", - "types": ["vite/client", "src/auto-imports.d.ts"], + "types": ["vite/client"], "baseUrl": "./", "paths": { "@/*": ["src/*"] @@ -14,8 +14,7 @@ "noUnusedParameters": true, "erasableSyntaxOnly": true, "noFallthroughCasesInSwitch": true, - "noUncheckedSideEffectImports": true, - "skipLibCheck": true + "noUncheckedSideEffectImports": true }, "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"] } diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index ddb363a..4e9d21b 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -6,31 +6,59 @@ import AutoImport from "unplugin-auto-import/vite"; import Components from "unplugin-vue-components/vite"; import { ElementPlusResolver } from "unplugin-vue-components/resolvers"; -// https://vitejs.dev/config/ export default defineConfig({ + // 开发服务器配置(可选,解决跨域等问题) + // server: { + // host: "0.0.0.0", // 允许局域网访问 + // port: 5173, // 自定义端口 + // open: true, // 启动后自动打开浏览器 + // }, plugins: [ vue(), + // 自动导入 Vue/VueRouter/Element Plus API AutoImport({ imports: ["vue", "vue-router"], - resolvers: [ElementPlusResolver()], - dts: "src/auto-imports.d.ts", + resolvers: [ElementPlusResolver({ importStyle: "css" })], + dts: path.resolve(__dirname, "src/auto-imports.d.ts"), eslintrc: { enabled: true, + filepath: path.resolve(__dirname, ".eslintrc-auto-import.json"), }, }), + // 自动导入 Element Plus 组件 Components({ - resolvers: [ElementPlusResolver()], + dirs: ["src/components"], + resolvers: [ElementPlusResolver({ importStyle: "css" })], + dts: path.resolve(__dirname, "src/components.d.ts"), }), ], resolve: { alias: { "@": path.resolve(__dirname, "src"), }, + // 省略文件扩展名,导入时无需写 .vue/.scss/.js + extensions: [ + ".mjs", + ".js", + ".ts", + ".jsx", + ".tsx", + ".json", + ".vue", + ".less", + ], }, css: { preprocessorOptions: { - scss: { - additionalData: '@import "./src/assets/scss/main.scss";', + less: { + // 全局注入:用函数判断,避免给 global.less 自身注入导致循环导入 + additionalData: (content, filename) => { + if (!filename.includes("global.less")) { + return `@import "@/assets/less/global.less";${content}`; + } + return content; + }, + charset: false, }, }, },