From cb558d05fe8587f1b551971d88411410a3769593 Mon Sep 17 00:00:00 2001 From: NeonXP Date: Sat, 20 Jan 2024 21:37:49 +0300 Subject: [PATCH] =?UTF-8?q?Antd=20=D0=B2=D0=BC=D0=B5=D1=81=D1=82=D0=BE=20b?= =?UTF-8?q?ootstrap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 2 +- api/openapi.yaml | 55 ++ api/server.go | 73 +- api/types.go | 23 +- frontend/index.html | 2 +- frontend/package-lock.json | 1219 ++++++++++++++++++++++++- frontend/package.json | 3 +- frontend/public/icon.png | Bin 0 -> 15366 bytes frontend/public/icon150.png | Bin 0 -> 6372 bytes frontend/public/icon278.png | Bin 0 -> 13825 bytes frontend/public/icon32.png | Bin 0 -> 1618 bytes frontend/public/icon576.png | Bin 0 -> 23314 bytes frontend/public/icon578.png | Bin 0 -> 17804 bytes frontend/src/App.jsx | 12 +- frontend/src/assets/bootstrap.min.css | 12 - frontend/src/assets/styles.css | 44 +- frontend/src/components/Layout.jsx | 131 ++- frontend/src/main.jsx | 23 +- frontend/src/pages/Engine.jsx | 130 ++- frontend/src/pages/Index.jsx | 85 +- frontend/src/pages/Login.jsx | 116 ++- frontend/src/pages/Quests.jsx | 60 ++ frontend/src/pages/Register.jsx | 162 ++-- frontend/src/utils/fetch.js | 1 - main.go | 6 + pkg/controller/admin.go | 12 +- pkg/controller/file.go | 50 + pkg/controller/game.go | 1 + pkg/models/file.go | 10 + pkg/models/game.go | 4 + pkg/service/file.go | 49 + pkg/service/user.go | 2 + requests.http | 27 +- 33 files changed, 1933 insertions(+), 381 deletions(-) create mode 100644 frontend/public/icon.png create mode 100644 frontend/public/icon150.png create mode 100644 frontend/public/icon278.png create mode 100644 frontend/public/icon32.png create mode 100644 frontend/public/icon576.png create mode 100644 frontend/public/icon578.png delete mode 100644 frontend/src/assets/bootstrap.min.css create mode 100644 frontend/src/pages/Quests.jsx create mode 100644 pkg/controller/file.go create mode 100644 pkg/models/file.go create mode 100644 pkg/service/file.go diff --git a/Makefile b/Makefile index 6bbdd19..13900f6 100644 --- a/Makefile +++ b/Makefile @@ -12,4 +12,4 @@ build-front: .PHONY: dev-front dev-front: - cd frontend; npm run dev \ No newline at end of file + cd frontend; npm run dev diff --git a/api/openapi.yaml b/api/openapi.yaml index 1671577..d8f4b39 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -89,6 +89,41 @@ paths: responses: 200: $ref: '#/components/responses/taskResponse' + /file/upload: + post: + security: [] + operationId: uploadFile + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + file: + type: string + format: binary + responses: + 200: + $ref: '#/components/responses/uploadResponse' + /file/{uid}: + get: + operationId: getFile + parameters: + - name: uid + in: path + required: true + schema: + type: string + format: uuid + responses: + 200: + description: file + content: + 'application/octet-stream': + schema: + type: string + format: binary + components: schemas: @@ -123,6 +158,9 @@ components: type: array items: $ref: "#/components/schemas/userView" + icon: + type: string + format: uuid required: - id - title @@ -132,6 +170,7 @@ components: - taskCount - createdAt - authors + - icon taskView: type: object properties: @@ -193,12 +232,16 @@ components: $ref: "#/components/schemas/taskEdit" points: type: integer + icon: + type: string + format: uuid required: - title - description - type - tasks - points + - icon taskEdit: type: object properties: @@ -358,6 +401,18 @@ components: 'application/json': schema: $ref: "#/components/schemas/taskView" + uploadResponse: + description: '' + content: + 'application/json': + schema: + type: object + properties: + uuid: + type: string + format: uuid + required: + - uuid securitySchemes: cookieAuth: type: apiKey diff --git a/api/server.go b/api/server.go index a76693a..360d913 100644 --- a/api/server.go +++ b/api/server.go @@ -28,6 +28,12 @@ type ServerInterface interface { // (POST /engine/{uid}/code) EnterCode(ctx echo.Context, uid openapi_types.UUID) error + // (POST /file/upload) + UploadFile(ctx echo.Context) error + + // (GET /file/{uid}) + GetFile(ctx echo.Context, uid openapi_types.UUID) error + // (GET /games) GetGames(ctx echo.Context) error @@ -88,6 +94,33 @@ func (w *ServerInterfaceWrapper) EnterCode(ctx echo.Context) error { return err } +// UploadFile converts echo context to params. +func (w *ServerInterfaceWrapper) UploadFile(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshaled arguments + err = w.Handler.UploadFile(ctx) + return err +} + +// GetFile converts echo context to params. +func (w *ServerInterfaceWrapper) GetFile(ctx echo.Context) error { + var err error + // ------------- Path parameter "uid" ------------- + var uid openapi_types.UUID + + err = runtime.BindStyledParameterWithLocation("simple", false, "uid", runtime.ParamLocationPath, ctx.Param("uid"), &uid) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter uid: %s", err)) + } + + ctx.Set(CookieAuthScopes, []string{}) + + // Invoke the callback with all the unmarshaled arguments + err = w.Handler.GetFile(ctx, uid) + return err +} + // GetGames converts echo context to params. func (w *ServerInterfaceWrapper) GetGames(ctx echo.Context) error { var err error @@ -176,6 +209,8 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL router.GET(baseURL+"/engine/:uid", wrapper.GameEngine) router.POST(baseURL+"/engine/:uid/code", wrapper.EnterCode) + router.POST(baseURL+"/file/upload", wrapper.UploadFile) + router.GET(baseURL+"/file/:uid", wrapper.GetFile) router.GET(baseURL+"/games", wrapper.GetGames) router.POST(baseURL+"/games", wrapper.CreateGame) router.GET(baseURL+"/user", wrapper.GetUser) @@ -188,24 +223,26 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/api/types.go b/api/types.go index 1af8dd5..6aa564e 100644 --- a/api/types.go +++ b/api/types.go @@ -40,11 +40,12 @@ type CodeView struct { // GameEdit defines model for gameEdit. type GameEdit struct { - Description string `json:"description"` - Points int `json:"points"` - Tasks []TaskEdit `json:"tasks"` - Title string `json:"title"` - Type GameType `json:"type"` + Description string `json:"description"` + Icon openapi_types.UUID `json:"icon"` + Points int `json:"points"` + Tasks []TaskEdit `json:"tasks"` + Title string `json:"title"` + Type GameType `json:"type"` } // GameType defines model for gameType. @@ -55,6 +56,7 @@ type GameView struct { Authors []UserView `json:"authors"` CreatedAt string `json:"createdAt"` Description string `json:"description"` + Icon openapi_types.UUID `json:"icon"` Id openapi_types.UUID `json:"id"` Points int `json:"points"` TaskCount int `json:"taskCount"` @@ -115,6 +117,11 @@ type GameResponse = GameView // TaskResponse defines model for taskResponse. type TaskResponse = TaskView +// UploadResponse defines model for uploadResponse. +type UploadResponse struct { + Uuid openapi_types.UUID `json:"uuid"` +} + // UserResponse defines model for userResponse. type UserResponse struct { Email string `json:"email"` @@ -154,6 +161,9 @@ type EnterCodeJSONBody struct { Code string `json:"code"` } +// UploadFileMultipartBody defines parameters for UploadFile. +type UploadFileMultipartBody interface{} + // PostUserLoginJSONBody defines parameters for PostUserLogin. type PostUserLoginJSONBody struct { Email string `json:"email"` @@ -171,6 +181,9 @@ type PostUserRegisterJSONBody struct { // EnterCodeJSONRequestBody defines body for EnterCode for application/json ContentType. type EnterCodeJSONRequestBody EnterCodeJSONBody +// UploadFileMultipartRequestBody defines body for UploadFile for multipart/form-data ContentType. +type UploadFileMultipartRequestBody UploadFileMultipartBody + // CreateGameJSONRequestBody defines body for CreateGame for application/json ContentType. type CreateGameJSONRequestBody = GameEdit diff --git a/frontend/index.html b/frontend/index.html index af23490..8f8e543 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -5,7 +5,7 @@ nQuest - +
diff --git a/frontend/package-lock.json b/frontend/package-lock.json index a918d9a..fb2f2d8 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -9,12 +9,13 @@ "version": "0.0.0", "dependencies": { "@neonxp/compose": "0.0.6", + "antd": "^5.12.8", "moment": "^2.30.1", "react": "^18.2.0", - "react-bootstrap": "^2.9.1", "react-dom": "^18.2.0", "react-markdown": "^9.0.0", "react-router-dom": "^6.17.0", + "remark-gfm": "^4.0.0", "unstated-next": "^1.1.0" }, "devDependencies": { @@ -50,6 +51,71 @@ "node": ">=6.0.0" } }, + "node_modules/@ant-design/colors": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.0.2.tgz", + "integrity": "sha512-7KJkhTiPiLHSu+LmMJnehfJ6242OCxSlR3xHVBecYxnMW8MS/878NXct1GqYARyL59fyeFdKRxXTfvR9SnDgJg==", + "dependencies": { + "@ctrl/tinycolor": "^3.6.1" + } + }, + "node_modules/@ant-design/cssinjs": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.18.2.tgz", + "integrity": "sha512-514V9rjLaFYb3v4s55/8bg2E6fb81b99s3crDZf4nSwtiDLLXs8axnIph+q2TVkY2hbJPZOn/cVsVcnLkzFy7w==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@emotion/hash": "^0.8.0", + "@emotion/unitless": "^0.7.5", + "classnames": "^2.3.1", + "csstype": "^3.1.3", + "rc-util": "^5.35.0", + "stylis": "^4.0.13" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/icons": { + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.2.6.tgz", + "integrity": "sha512-4wn0WShF43TrggskBJPRqCD0fcHbzTYjnaoskdiJrVHg86yxoZ8ZUqsXvyn4WUqehRiFKnaclOhqk9w4Ui2KVw==", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.3.0", + "@babel/runtime": "^7.11.2", + "classnames": "^2.2.6", + "rc-util": "^5.31.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/icons-svg": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.3.1.tgz", + "integrity": "sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==" + }, + "node_modules/@ant-design/react-slick": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.0.2.tgz", + "integrity": "sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==", + "dependencies": { + "@babel/runtime": "^7.10.4", + "classnames": "^2.2.5", + "json2mq": "^0.2.0", + "resize-observer-polyfill": "^1.5.1", + "throttle-debounce": "^5.0.0" + }, + "peerDependencies": { + "react": ">=16.9.0" + } + }, "node_modules/@babel/code-frame": { "version": "7.23.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", @@ -388,6 +454,24 @@ "node": ">=6.9.0" } }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, "node_modules/@esbuild/android-arm": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", @@ -946,6 +1030,118 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@rc-component/color-picker": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-1.5.1.tgz", + "integrity": "sha512-onyAFhWKXuG4P162xE+7IgaJkPkwM94XlOYnQuu69XdXWMfxpeFi6tpJBsieIMV7EnyLV5J3lDzdLiFeK0iEBA==", + "dependencies": { + "@babel/runtime": "^7.23.6", + "@ctrl/tinycolor": "^3.6.1", + "classnames": "^2.2.6", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/context": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz", + "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mini-decimal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", + "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", + "dependencies": { + "@babel/runtime": "^7.18.0" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@rc-component/mutate-observer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz", + "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/tour": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.11.1.tgz", + "integrity": "sha512-c9Lw3/oVinj5D64Rsp8aDLOXcgdViE+hq7bj0Qoo8fTuQEh9sSpUw5OZcum943JkjeIE4hLcc5FD4a5ANtMJ4w==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/portal": "^1.0.0-9", + "@rc-component/trigger": "^1.3.6", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/trigger": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-1.18.2.tgz", + "integrity": "sha512-jRLYgFgjLEPq3MvS87fIhcfuywFSRDaDrYw1FLku7Cm4esszvzTbA0JBsyacAyLrK9rF3TiHFcvoEDMzoD3CTA==", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.38.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, "node_modules/@react-aria/ssr": { "version": "3.9.1", "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.1.tgz", @@ -1227,6 +1423,68 @@ "node": ">=4" } }, + "node_modules/antd": { + "version": "5.12.8", + "resolved": "https://registry.npmjs.org/antd/-/antd-5.12.8.tgz", + "integrity": "sha512-R2CRcB+aaVZurb3J0IKpBRWq5kW4CLcSqDF58/QBsqYdzK7XjSvM8+eF3rWVRUDbSJfGmyW7I80ywNRYpW1+vA==", + "dependencies": { + "@ant-design/colors": "^7.0.2", + "@ant-design/cssinjs": "^1.18.2", + "@ant-design/icons": "^5.2.6", + "@ant-design/react-slick": "~1.0.2", + "@ctrl/tinycolor": "^3.6.1", + "@rc-component/color-picker": "~1.5.1", + "@rc-component/mutate-observer": "^1.1.0", + "@rc-component/tour": "~1.11.1", + "@rc-component/trigger": "^1.18.2", + "classnames": "^2.5.1", + "copy-to-clipboard": "^3.3.3", + "dayjs": "^1.11.10", + "qrcode.react": "^3.1.0", + "rc-cascader": "~3.20.0", + "rc-checkbox": "~3.1.0", + "rc-collapse": "~3.7.2", + "rc-dialog": "~9.3.4", + "rc-drawer": "~6.5.2", + "rc-dropdown": "~4.1.0", + "rc-field-form": "~1.41.0", + "rc-image": "~7.5.1", + "rc-input": "~1.3.11", + "rc-input-number": "~8.4.0", + "rc-mentions": "~2.9.1", + "rc-menu": "~9.12.4", + "rc-motion": "^2.9.0", + "rc-notification": "~5.3.0", + "rc-pagination": "~4.0.4", + "rc-picker": "~3.14.6", + "rc-progress": "~3.5.1", + "rc-rate": "~2.12.0", + "rc-resize-observer": "^1.4.0", + "rc-segmented": "~2.2.2", + "rc-select": "~14.10.0", + "rc-slider": "~10.5.0", + "rc-steps": "~6.0.1", + "rc-switch": "~4.1.0", + "rc-table": "~7.36.1", + "rc-tabs": "~12.14.1", + "rc-textarea": "~1.5.3", + "rc-tooltip": "~6.1.3", + "rc-tree": "~5.8.2", + "rc-tree-select": "~5.15.0", + "rc-upload": "~4.5.2", + "rc-util": "^5.38.1", + "scroll-into-view-if-needed": "^3.1.0", + "throttle-debounce": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -1265,6 +1523,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array-tree-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", + "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" + }, "node_modules/array.prototype.flat": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", @@ -1335,6 +1598,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" + }, "node_modules/asynciterator.prototype": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", @@ -1544,6 +1812,11 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/compute-scroll-into-view": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz", + "integrity": "sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==" + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1556,6 +1829,14 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -1575,6 +1856,11 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -3060,6 +3346,14 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "node_modules/json2mq": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", + "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", + "dependencies": { + "string-convert": "^0.2.0" + } + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -3159,6 +3453,41 @@ "yallist": "^3.0.2" } }, + "node_modules/markdown-table": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", + "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", + "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mdast-util-from-markdown": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", @@ -3182,6 +3511,101 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", + "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.0.tgz", + "integrity": "sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", + "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdast-util-mdx-expression": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz", @@ -3370,6 +3794,120 @@ "micromark-util-types": "^2.0.0" } }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.0.0.tgz", + "integrity": "sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.0.0.tgz", + "integrity": "sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.0.0.tgz", + "integrity": "sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.0.1.tgz", + "integrity": "sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/micromark-factory-destination": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", @@ -4092,6 +4630,14 @@ "node": ">=6" } }, + "node_modules/qrcode.react": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-3.1.0.tgz", + "integrity": "sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -4112,6 +4658,581 @@ } ] }, + "node_modules/rc-cascader": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.20.0.tgz", + "integrity": "sha512-lkT9EEwOcYdjZ/jvhLoXGzprK1sijT3/Tp4BLxQQcHDZkkOzzwYQC9HgmKoJz0K7CukMfgvO9KqHeBdgE+pELw==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "array-tree-filter": "^2.1.0", + "classnames": "^2.3.1", + "rc-select": "~14.10.0", + "rc-tree": "~5.8.1", + "rc-util": "^5.37.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-checkbox": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.1.0.tgz", + "integrity": "sha512-PAwpJFnBa3Ei+5pyqMMXdcKYKNBMS+TvSDiLdDnARnMJHC8ESxwPfm4Ao1gJiKtWLdmGfigascnCpwrHFgoOBQ==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.25.2" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-collapse": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.7.2.tgz", + "integrity": "sha512-ZRw6ipDyOnfLFySxAiCMdbHtb5ePAsB9mT17PA6y1mRD/W6KHRaZeb5qK/X9xDV1CqgyxMpzw0VdS74PCcUk4A==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.3.4", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dialog": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.3.4.tgz", + "integrity": "sha512-975X3018GhR+EjZFbxA2Z57SX5rnu0G0/OxFgMMvZK4/hQWEm3MHaNvP4wXpxYDoJsp+xUvVW+GB9CMMCm81jA==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/portal": "^1.0.0-8", + "classnames": "^2.2.6", + "rc-motion": "^2.3.0", + "rc-util": "^5.21.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-drawer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-6.5.2.tgz", + "integrity": "sha512-QckxAnQNdhh4vtmKN0ZwDf3iakO83W9eZcSKWYYTDv4qcD2fHhRAZJJ/OE6v2ZlQ2kSqCJX5gYssF4HJFvsEPQ==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/portal": "^1.1.1", + "classnames": "^2.2.6", + "rc-motion": "^2.6.1", + "rc-util": "^5.36.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dropdown": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.1.0.tgz", + "integrity": "sha512-VZjMunpBdlVzYpEdJSaV7WM7O0jf8uyDjirxXLZRNZ+tAC+NzD3PXPEtliFwGzVwBBdCmGuSqiS9DWcOLxQ9tw==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@rc-component/trigger": "^1.7.0", + "classnames": "^2.2.6", + "rc-util": "^5.17.0" + }, + "peerDependencies": { + "react": ">=16.11.0", + "react-dom": ">=16.11.0" + } + }, + "node_modules/rc-field-form": { + "version": "1.41.0", + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.41.0.tgz", + "integrity": "sha512-k9AS0wmxfJfusWDP/YXWTpteDNaQ4isJx9UKxx4/e8Dub4spFeZ54/EuN2sYrMRID/+hUznPgVZeg+Gf7XSYCw==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "async-validator": "^4.1.0", + "rc-util": "^5.32.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-image": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.5.1.tgz", + "integrity": "sha512-Z9loECh92SQp0nSipc0MBuf5+yVC05H/pzC+Nf8xw1BKDFUJzUeehYBjaWlxly8VGBZJcTHYri61Fz9ng1G3Ag==", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/portal": "^1.0.2", + "classnames": "^2.2.6", + "rc-dialog": "~9.3.4", + "rc-motion": "^2.6.2", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-input": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.3.11.tgz", + "integrity": "sha512-jhH7QP5rILanSHCGSUkdoFE5DEtpv8FIseYhuYkOZzUBeiVAiwM3q26YqZ6xBB0QFEZ/yUAgms4xW4iuub3xFQ==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.18.1" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-input-number": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-8.4.0.tgz", + "integrity": "sha512-B6rziPOLRmeP7kcS5qbdC5hXvvDHYKV4vUxmahevYx2E6crS2bRi0xLDjhJ0E1HtOWo8rTmaE2EBJAkTCZOLdA==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/mini-decimal": "^1.0.1", + "classnames": "^2.2.5", + "rc-input": "~1.3.5", + "rc-util": "^5.28.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-mentions": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.9.1.tgz", + "integrity": "sha512-cZuElWr/5Ws0PXx1uxobxfYh4mqUw2FitfabR62YnWgm+WAfDyXZXqZg5DxXW+M1cgVvntrQgDDd9LrihrXzew==", + "dependencies": { + "@babel/runtime": "^7.22.5", + "@rc-component/trigger": "^1.5.0", + "classnames": "^2.2.6", + "rc-input": "~1.3.5", + "rc-menu": "~9.12.0", + "rc-textarea": "~1.5.0", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-menu": { + "version": "9.12.4", + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.12.4.tgz", + "integrity": "sha512-t2NcvPLV1mFJzw4F21ojOoRVofK2rWhpKPx69q2raUsiHPDP6DDevsBILEYdsIegqBeSXoWs2bf6CueBKg3BFg==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^1.17.0", + "classnames": "2.x", + "rc-motion": "^2.4.3", + "rc-overflow": "^1.3.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-motion": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.0.tgz", + "integrity": "sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.21.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-notification": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.3.0.tgz", + "integrity": "sha512-WCf0uCOkZ3HGfF0p1H4Sgt7aWfipxORWTPp7o6prA3vxwtWhtug3GfpYls1pnBp4WA+j8vGIi5c2/hQRpGzPcQ==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.9.0", + "rc-util": "^5.20.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-overflow": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.3.2.tgz", + "integrity": "sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.37.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-pagination": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-4.0.4.tgz", + "integrity": "sha512-GGrLT4NgG6wgJpT/hHIpL9nELv27A1XbSZzECIuQBQTVSf4xGKxWr6I/jhpRPauYEWEbWVw22ObG6tJQqwJqWQ==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.38.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-picker": { + "version": "3.14.6", + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-3.14.6.tgz", + "integrity": "sha512-AdKKW0AqMwZsKvIpwUWDUnpuGKZVrbxVTZTNjcO+pViGkjC1EBcjMgxVe8tomOEaIHJL5Gd13vS8Rr3zzxWmag==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^1.5.0", + "classnames": "^2.2.1", + "rc-util": "^5.30.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "date-fns": ">= 2.x", + "dayjs": ">= 1.x", + "luxon": ">= 3.x", + "moment": ">= 2.x", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + }, + "peerDependenciesMeta": { + "date-fns": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + } + } + }, + "node_modules/rc-progress": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-3.5.1.tgz", + "integrity": "sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.6", + "rc-util": "^5.16.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-rate": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.12.0.tgz", + "integrity": "sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.0.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-resize-observer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz", + "integrity": "sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==", + "dependencies": { + "@babel/runtime": "^7.20.7", + "classnames": "^2.2.1", + "rc-util": "^5.38.0", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-segmented": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.2.2.tgz", + "integrity": "sha512-Mq52M96QdHMsNdE/042ibT5vkcGcD5jxKp7HgPC2SRofpia99P5fkfHy1pEaajLMF/kj0+2Lkq1UZRvqzo9mSA==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-motion": "^2.4.4", + "rc-util": "^5.17.0" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-select": { + "version": "14.10.0", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.10.0.tgz", + "integrity": "sha512-TsIJTYafTTapCA32LLNpx/AD6ntepR1TG8jEVx35NiAAWCPymhUfuca8kRcUNd3WIGVMDcMKn9kkphoxEz+6Ag==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^1.5.0", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-overflow": "^1.3.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-slider": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-10.5.0.tgz", + "integrity": "sha512-xiYght50cvoODZYI43v3Ylsqiw14+D7ELsgzR40boDZaya1HFa1Etnv9MDkQE8X/UrXAffwv2AcNAhslgYuDTw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.27.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-steps": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz", + "integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==", + "dependencies": { + "@babel/runtime": "^7.16.7", + "classnames": "^2.2.3", + "rc-util": "^5.16.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-switch": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz", + "integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==", + "dependencies": { + "@babel/runtime": "^7.21.0", + "classnames": "^2.2.1", + "rc-util": "^5.30.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-table": { + "version": "7.36.1", + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.36.1.tgz", + "integrity": "sha512-9qMxEm/3Y8ukdW8I8ZvmhX0QImfNKzH0JEUlSbyaUlsYTB+/tQEbfaB8YkG4sHVZ1io4pxqK/BXoZYqebi/TIQ==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/context": "^1.4.0", + "classnames": "^2.2.5", + "rc-resize-observer": "^1.1.0", + "rc-util": "^5.37.0", + "rc-virtual-list": "^3.11.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tabs": { + "version": "12.14.1", + "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-12.14.1.tgz", + "integrity": "sha512-1xlE7JQNYxD5RwBsM7jf2xSdUrkmTSDFLFEm2gqAgnsRlOGydEzXXNAVTOT6QcgM1G/gCm+AgG+FYPUGb4Hs4g==", + "dependencies": { + "@babel/runtime": "^7.11.2", + "classnames": "2.x", + "rc-dropdown": "~4.1.0", + "rc-menu": "~9.12.0", + "rc-motion": "^2.6.2", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.34.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-textarea": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.5.3.tgz", + "integrity": "sha512-oH682ghHx++stFNYrosPRBfwsypywrTXpaD0/5Z8MPkUOnyOQUaY9ueL9tMu6BP1LfsuYQ1VLpg5OtshViLNgA==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.1", + "rc-input": "~1.3.5", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tooltip": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.1.3.tgz", + "integrity": "sha512-HMSbSs5oieZ7XddtINUddBLSVgsnlaSb3bZrzzGWjXa7/B7nNedmsuz72s7EWFEro9mNa7RyF3gOXKYqvJiTcQ==", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/trigger": "^1.18.0", + "classnames": "^2.3.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tree": { + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.8.2.tgz", + "integrity": "sha512-xH/fcgLHWTLmrSuNphU8XAqV7CdaOQgm4KywlLGNoTMhDAcNR3GVNP6cZzb0GrKmIZ9yae+QLot/cAgUdPRMzg==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.1" + }, + "engines": { + "node": ">=10.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-tree-select": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.15.0.tgz", + "integrity": "sha512-YJHfdO6azFnR0/JuNBZLDptGE4/RGfVeHAafUIYcm2T3RBkL1O8aVqiHvwIyLzdK59ry0NLrByd+3TkfpRM+9Q==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-select": "~14.10.0", + "rc-tree": "~5.8.1", + "rc-util": "^5.16.1" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-upload": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.5.2.tgz", + "integrity": "sha512-QO3ne77DwnAPKFn0bA5qJM81QBjQi0e0NHdkvpFyY73Bea2NfITiotqJqVjHgeYPOJu5lLVR32TNGP084aSoXA==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "classnames": "^2.2.5", + "rc-util": "^5.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-util": { + "version": "5.38.1", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.38.1.tgz", + "integrity": "sha512-e4ZMs7q9XqwTuhIK7zBIVFltUtMSjphuPPQXHoHlzRzNdOwUxDejo0Zls5HYaJfRKNURcsS/ceKVULlhjBrxng==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "react-is": "^18.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-util/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/rc-virtual-list": { + "version": "3.11.3", + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.11.3.tgz", + "integrity": "sha512-tu5UtrMk/AXonHwHxUogdXAWynaXsrx1i6dsgg+lOo/KJSF8oBAcprh1z5J3xgnPJD5hXxTL58F8s8onokdt0Q==", + "dependencies": { + "@babel/runtime": "^7.20.0", + "classnames": "^2.2.6", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, "node_modules/react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", @@ -4123,35 +5244,6 @@ "node": ">=0.10.0" } }, - "node_modules/react-bootstrap": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.9.2.tgz", - "integrity": "sha512-a36B+EHsAI/aH+ZhXNILBFnqscE3zr10dWmjBmfhIb2QR7KSXJiGzYd6Faf/25G8G7/CP9TCL2B0WhUBOD2UBQ==", - "dependencies": { - "@babel/runtime": "^7.22.5", - "@restart/hooks": "^0.4.9", - "@restart/ui": "^1.6.6", - "@types/react-transition-group": "^4.4.6", - "classnames": "^2.3.2", - "dom-helpers": "^5.2.1", - "invariant": "^2.2.4", - "prop-types": "^15.8.1", - "prop-types-extra": "^1.1.0", - "react-transition-group": "^4.4.5", - "uncontrollable": "^7.2.1", - "warning": "^4.0.3" - }, - "peerDependencies": { - "@types/react": ">=16.14.8", - "react": ">=16.14.0", - "react-dom": ">=16.14.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/react-dom": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", @@ -4295,6 +5387,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/remark-gfm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", + "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/remark-parse": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", @@ -4326,6 +5435,25 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, "node_modules/resolve": { "version": "2.0.0-next.5", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", @@ -4456,6 +5584,14 @@ "loose-envify": "^1.1.0" } }, + "node_modules/scroll-into-view-if-needed": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", + "dependencies": { + "compute-scroll-into-view": "^3.0.2" + } + }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -4547,6 +5683,11 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/string-convert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", + "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==" + }, "node_modules/string.prototype.matchall": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", @@ -4657,6 +5798,11 @@ "inline-style-parser": "0.2.2" } }, + "node_modules/stylis": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.1.tgz", + "integrity": "sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==" + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -4687,6 +5833,14 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "node_modules/throttle-debounce": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.0.tgz", + "integrity": "sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==", + "engines": { + "node": ">=12.22" + } + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -4696,6 +5850,11 @@ "node": ">=4" } }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" + }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", diff --git a/frontend/package.json b/frontend/package.json index d865f88..774aaf9 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -11,12 +11,13 @@ }, "dependencies": { "@neonxp/compose": "0.0.6", + "antd": "^5.12.8", "moment": "^2.30.1", "react": "^18.2.0", - "react-bootstrap": "^2.9.1", "react-dom": "^18.2.0", "react-markdown": "^9.0.0", "react-router-dom": "^6.17.0", + "remark-gfm": "^4.0.0", "unstated-next": "^1.1.0" }, "devDependencies": { diff --git a/frontend/public/icon.png b/frontend/public/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b24bcccc0cd06d0b861df08c707dde3b51aff87b GIT binary patch literal 15366 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 Ee^(l!uR@r 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 literal 0 HcmV?d00001 diff --git a/frontend/public/icon278.png b/frontend/public/icon278.png new file mode 100644 index 0000000000000000000000000000000000000000..06db8057ee7be69ca351a733f25b8ebe6b12b39e GIT binary patch literal 13825 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 literal 0 HcmV?d00001 diff --git a/frontend/public/icon32.png b/frontend/public/icon32.png new file mode 100644 index 0000000000000000000000000000000000000000..7700cf053f883dde6c96f14d8a32bbd9eaea826e GIT binary patch literal 1618 zcmV-Y2CeytP)EX>4Tx04R}tkv&MmP!xqvQ>7vmk#-Pqh)|vEq9Tr3g(6f4wL+^7CNKSiCJjl7 zi=*ILaPVib>fqw6tAnc`2>yULJ2)x2NQw6)g%&Yhc)XAE?m4`7A0RX;OtZRX0Zq5f zbTT1kbE{(L6#;}WfCxrpW*Kvml!9-4-BUN!U7Tn6_x)LYYTjZ%KqQ`JhG`RT5KnK~ z2Iqa^C@aY-@j3ChNf#u3)BVfh)c3uQq_0Ptxmc zEp`O-Zvz+CZB5w&E_Z;zCqp)6R|?V+3I*W(jJ_!cL~eoJHE(XMbDTZ^8Jbn<1~@nb z#)_1^?(^=R&bj^D)0*E8UEp$_VOg|`00006VoOIv0RI600RN!9r;`8x010qNS#tmY zE+YT{E+YYWr9XB6000McNliru=m7^26*!b9wTl1%02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00b&YL_t(o!@X8tD7$?W|Lo`ILThRz7gDTPQvQ~dDdob_ zE?v1$B1NuA{#-0B+)(}`k;WBDBBjO^tubWFpJ=pa=3ffKY-F4BUcBwJ@B8rfHt%nz zo;uI@obP!)-|so!a~=SoSfB3hZu+VG!VjdNpa4IW-#=NLot@2kS63Gn78YWP6LSjg z@9&9-C>RVBdibCa>b!9ljKuC59@ot>Q} zy-7YHIyyQi91ar^kPh3 z$?0@D^7(wcc64-9P9P8n5D}5z?uCK4Lv9SRFP^;DG>+1smw6wG!F)tDk|bedWCZW;?*IV3UJn2$Dk@?hm&*kJ zsH&=B+uq*Zzux=gK4)ZP zur1>Mous9uvA(;zEB1k_t1He=b#*lXpx)kIwwX*Oy1Tn0BBD?zL|Uzu0MPC2E&H^# zw#xF}(9l2tsHUcd3p=W={&v!6G!zPjWJL#nyk0L)y-0wot1HH%2^ft=VeR<%I0b`2 znwy&wdc@Mwl1QMZr-#9Vg99PR+S;0|H(0G!#*dGW*>15|*j`jrL{Cpod}0yuPft%& zTwE-UgWHk<6o z2L=XkbaVs&czJn&&*u|xv)K%-R*TNgPL!9IBPAsT;cyr?H#abw&6t>&fX!w@dU`sH zMx!{6`}_O9ETaGW(P%W00VJM4ettf)IXgSUpAt!uAW4$^mn_o90bpxu3-K0ud3oXD z`cudM?QeN)Z7ozP6;Hr;%dd)x3Vw0B-SH=olanJ%z_=5L9;NH+>v1RW7e9dN8&EPQ Qu>b%707*qoM6N<$f}SY$yZ`_I literal 0 HcmV?d00001 diff --git a/frontend/public/icon576.png b/frontend/public/icon576.png new file mode 100644 index 0000000000000000000000000000000000000000..1d7cbc959f731b61f7107ea7d5ce1ae960a0f234 GIT binary patch literal 23314 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 KKbLh*2~7ZG_u0?@ literal 0 HcmV?d00001 diff --git a/frontend/public/icon578.png b/frontend/public/icon578.png new file mode 100644 index 0000000000000000000000000000000000000000..68173f425dcdc782f5ae419ec102bd433d7e9ba3 GIT binary patch literal 17804 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 aCh}3LkD(<5{(mbN7;@6eQiT!^eg6mTHX*M7 literal 0 HcmV?d00001 diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 6dba62a..1390f17 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -9,6 +9,7 @@ import NoMatch from './pages/NoMatch' import { UserProvider } from './store/user' import { ajax } from './utils/fetch' import Engine from './pages/Engine' +import Quests from './pages/Quests' const router = createBrowserRouter( createRoutesFromElements( @@ -16,19 +17,24 @@ const router = createBrowserRouter( path="/" id="root" element={} - loader={async () => ajax("/api/user")} + loader={async () => ajax("/api/user").catch(x => {console.log(x); return null})} > } - loader={() => ajax("/api/games")} + /> + } + loader={() => ajax("/api/games").catch(x => console.log(x))} /> } /> } /> } - loader={({ params }) => ajax(`/api/engine/${params.gameId}`)} + loader={({ params }) => ajax(`/api/engine/${params.gameId}`).catch(x => console.log(x))} /> {/* 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;font-size:calc(1.275rem + .3vw);line-height:inherit}@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-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@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:#888}.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:#444;--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:#fff;--bs-table-bg:#375a7f;--bs-table-border-color:#5f7b99;--bs-table-striped-bg:#416285;--bs-table-striped-color:#fff;--bs-table-active-bg:#4b6b8c;--bs-table-active-color:#fff;--bs-table-hover-bg:#466689;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#fff;--bs-table-bg:#444444;--bs-table-border-color:dimgray;--bs-table-striped-bg:#4d4d4d;--bs-table-striped-color:#fff;--bs-table-active-bg:#575757;--bs-table-active-color:#fff;--bs-table-hover-bg:#525252;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#fff;--bs-table-bg:#00bc8c;--bs-table-border-color:#33c9a3;--bs-table-striped-bg:#0dbf92;--bs-table-striped-color:#fff;--bs-table-active-bg:#1ac398;--bs-table-active-color:#fff;--bs-table-hover-bg:#13c195;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#fff;--bs-table-bg:#3498db;--bs-table-border-color:#5dade2;--bs-table-striped-bg:#3e9ddd;--bs-table-striped-color:#fff;--bs-table-active-bg:#48a2df;--bs-table-active-color:#fff;--bs-table-hover-bg:#43a0de;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#fff;--bs-table-bg:#f39c12;--bs-table-border-color:#f5b041;--bs-table-striped-bg:#f4a11e;--bs-table-striped-color:#fff;--bs-table-active-bg:#f4a62a;--bs-table-active-color:#fff;--bs-table-hover-bg:#f4a324;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#fff;--bs-table-bg:#e74c3c;--bs-table-border-color:#ec7063;--bs-table-striped-bg:#e85546;--bs-table-striped-color:#fff;--bs-table-active-bg:#e95e50;--bs-table-active-color:#fff;--bs-table-hover-bg:#e9594b;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#fff;--bs-table-bg:#adb5bd;--bs-table-border-color:#bdc4ca;--bs-table-striped-bg:#b1b9c0;--bs-table-striped-color:#fff;--bs-table-active-bg:#b5bcc4;--bs-table-active-color:#fff;--bs-table-hover-bg:#b3bbc2;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#303030;--bs-table-border-color:#595959;--bs-table-striped-bg:#3a3a3a;--bs-table-striped-color:#fff;--bs-table-active-bg:#454545;--bs-table-active-color:#fff;--bs-table-hover-bg:#404040;--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:#303030;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-clip:padding-box;border:var(--bs-border-width) solid #222;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:#303030;background-color:#fff;border-color:#9badbf;outline:0;box-shadow:0 0 0 .25rem rgba(55,90,127,.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::-moz-placeholder{color:#888;opacity:1}.form-control::placeholder{color:#888;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:#adb5bd;background-color:#444;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:#adb5bd;background-color:#444;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:#373737}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#373737}.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='%23303030' 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:#303030;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;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 #222;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:#9badbf;outline:0;box-shadow:0 0 0 .25rem rgba(55,90,127,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{color:#888;background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #303030}.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:#fff;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:none;-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:#9badbf;outline:0;box-shadow:0 0 0 .25rem rgba(55,90,127,.25)}.form-check-input:checked{background-color:#375a7f;border-color:#375a7f}.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:#375a7f;border-color:#375a7f;--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='%239badbf'/%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 #222,0 0 0 .25rem rgba(55,90,127,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #222,0 0 0 .25rem rgba(55,90,127,.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:#375a7f;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:#c3ced9}.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:#375a7f;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:#c3ced9}.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;height:100%;padding:1rem .75rem;overflow:hidden;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::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown),.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.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}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.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{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-moz-placeholder-shown)~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:#fff;border-radius:var(--bs-border-radius)}.form-floating>.form-control-plaintext~label::after,.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:#fff;border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#888}.form-floating>.form-control:disabled~label::after,.form-floating>:disabled~label::after{background-color:var(--bs-secondary-bg)}.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:#adb5bd;text-align:center;white-space:nowrap;background-color:#444;border:var(--bs-border-width) solid #222;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(var(--bs-border-width) * -1);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='%2300bc8c' 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.1z'/%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='%2300bc8c' 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.1z'/%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='%23e74c3c'%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='%23e74c3c' 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='%23e74c3c'%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='%23e74c3c' 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.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:#375a7f;--bs-btn-border-color:#375a7f;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#2f4d6c;--bs-btn-hover-border-color:#2c4866;--bs-btn-focus-shadow-rgb:85,115,146;--bs-btn-active-color:#fff;--bs-btn-active-bg:#2c4866;--bs-btn-active-border-color:#29445f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#375a7f;--bs-btn-disabled-border-color:#375a7f}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#444;--bs-btn-border-color:#444;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#3a3a3a;--bs-btn-hover-border-color:#363636;--bs-btn-focus-shadow-rgb:96,96,96;--bs-btn-active-color:#fff;--bs-btn-active-bg:#363636;--bs-btn-active-border-color:#333333;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#444;--bs-btn-disabled-border-color:#444}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#00bc8c;--bs-btn-border-color:#00bc8c;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#00a077;--bs-btn-hover-border-color:#009670;--bs-btn-focus-shadow-rgb:38,198,157;--bs-btn-active-color:#fff;--bs-btn-active-bg:#009670;--bs-btn-active-border-color:#008d69;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#00bc8c;--bs-btn-disabled-border-color:#00bc8c}.btn-info{--bs-btn-color:#fff;--bs-btn-bg:#3498db;--bs-btn-border-color:#3498db;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#2c81ba;--bs-btn-hover-border-color:#2a7aaf;--bs-btn-focus-shadow-rgb:82,167,224;--bs-btn-active-color:#fff;--bs-btn-active-bg:#2a7aaf;--bs-btn-active-border-color:#2772a4;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#3498db;--bs-btn-disabled-border-color:#3498db}.btn-warning{--bs-btn-color:#fff;--bs-btn-bg:#f39c12;--bs-btn-border-color:#f39c12;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#cf850f;--bs-btn-hover-border-color:#c27d0e;--bs-btn-focus-shadow-rgb:245,171,54;--bs-btn-active-color:#fff;--bs-btn-active-bg:#c27d0e;--bs-btn-active-border-color:#b6750e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#f39c12;--bs-btn-disabled-border-color:#f39c12}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#e74c3c;--bs-btn-border-color:#e74c3c;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#c44133;--bs-btn-hover-border-color:#b93d30;--bs-btn-focus-shadow-rgb:235,103,89;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b93d30;--bs-btn-active-border-color:#ad392d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#e74c3c;--bs-btn-disabled-border-color:#e74c3c}.btn-light{--bs-btn-color:#fff;--bs-btn-bg:#adb5bd;--bs-btn-border-color:#adb5bd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#939aa1;--bs-btn-hover-border-color:#8a9197;--bs-btn-focus-shadow-rgb:185,192,199;--bs-btn-active-color:#fff;--bs-btn-active-bg:#8a9197;--bs-btn-active-border-color:#82888e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#adb5bd;--bs-btn-disabled-border-color:#adb5bd}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#303030;--bs-btn-border-color:#303030;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#4f4f4f;--bs-btn-hover-border-color:#454545;--bs-btn-focus-shadow-rgb:79,79,79;--bs-btn-active-color:#fff;--bs-btn-active-bg:#595959;--bs-btn-active-border-color:#454545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#303030;--bs-btn-disabled-border-color:#303030}.btn-outline-primary{--bs-btn-color:#375a7f;--bs-btn-border-color:#375a7f;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#375a7f;--bs-btn-hover-border-color:#375a7f;--bs-btn-focus-shadow-rgb:55,90,127;--bs-btn-active-color:#fff;--bs-btn-active-bg:#375a7f;--bs-btn-active-border-color:#375a7f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#375a7f;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#375a7f;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#444;--bs-btn-border-color:#444;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#444;--bs-btn-hover-border-color:#444;--bs-btn-focus-shadow-rgb:68,68,68;--bs-btn-active-color:#fff;--bs-btn-active-bg:#444;--bs-btn-active-border-color:#444;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#444;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#444;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#00bc8c;--bs-btn-border-color:#00bc8c;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#00bc8c;--bs-btn-hover-border-color:#00bc8c;--bs-btn-focus-shadow-rgb:0,188,140;--bs-btn-active-color:#fff;--bs-btn-active-bg:#00bc8c;--bs-btn-active-border-color:#00bc8c;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#00bc8c;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#00bc8c;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#3498db;--bs-btn-border-color:#3498db;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#3498db;--bs-btn-hover-border-color:#3498db;--bs-btn-focus-shadow-rgb:52,152,219;--bs-btn-active-color:#fff;--bs-btn-active-bg:#3498db;--bs-btn-active-border-color:#3498db;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#3498db;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#3498db;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#f39c12;--bs-btn-border-color:#f39c12;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#f39c12;--bs-btn-hover-border-color:#f39c12;--bs-btn-focus-shadow-rgb:243,156,18;--bs-btn-active-color:#fff;--bs-btn-active-bg:#f39c12;--bs-btn-active-border-color:#f39c12;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#f39c12;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f39c12;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#e74c3c;--bs-btn-border-color:#e74c3c;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#e74c3c;--bs-btn-hover-border-color:#e74c3c;--bs-btn-focus-shadow-rgb:231,76,60;--bs-btn-active-color:#fff;--bs-btn-active-bg:#e74c3c;--bs-btn-active-border-color:#e74c3c;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#e74c3c;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#e74c3c;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#adb5bd;--bs-btn-border-color:#adb5bd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#adb5bd;--bs-btn-hover-border-color:#adb5bd;--bs-btn-focus-shadow-rgb:173,181,189;--bs-btn-active-color:#fff;--bs-btn-active-bg:#adb5bd;--bs-btn-active-border-color:#adb5bd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#adb5bd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#adb5bd;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#303030;--bs-btn-border-color:#303030;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#303030;--bs-btn-hover-border-color:#303030;--bs-btn-focus-shadow-rgb:48,48,48;--bs-btn-active-color:#fff;--bs-btn-active-bg:#303030;--bs-btn-active-border-color:#303030;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#303030;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#303030;--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:#888;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:38,198,157;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:#222;--bs-dropdown-border-color:#444;--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:#444;--bs-dropdown-divider-margin-y:0.5rem;--bs-dropdown-box-shadow:var(--bs-box-shadow);--bs-dropdown-link-color:#fff;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-link-hover-bg:#375a7f;--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#375a7f;--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:#888;--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:#303030;--bs-dropdown-border-color:#444;--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:#444;--bs-dropdown-link-hover-bg:rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#375a7f;--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(var(--bs-border-width) * -1)}.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(var(--bs-border-width) * -1)}.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~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:2rem;--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:#adb5bd;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(55,90,127,.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:#444;--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:#444 #444 transparent;--bs-nav-tabs-link-active-color:#fff;--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:#444 #444 transparent;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:#375a7f}.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-basis:0;flex-grow:1;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:1rem;--bs-navbar-color:rgba(34, 34, 34, 0.7);--bs-navbar-hover-color:#222;--bs-navbar-disabled-color:rgba(var(--bs-emphasis-color-rgb), 0.3);--bs-navbar-active-color:#222;--bs-navbar-brand-padding-y:0.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:#222;--bs-navbar-brand-hover-color:#222;--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%28255, 255, 255, 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(34, 34, 34, 0.1);--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-basis:100%;flex-grow:1;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.6);--bs-navbar-hover-color:#fff;--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.6%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.6%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:#444;--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:#303030;--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='%23fff'%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-.708z'/%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='%23162433'%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-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color:#9badbf;--bs-accordion-btn-focus-box-shadow:0 0 0 0.25rem rgba(55, 90, 127, 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;border-color:var(--bs-accordion-btn-focus-border-color);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-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-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-collapse{border-width:0}.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-button,.accordion-flush .accordion-item .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='%23879cb2'%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-.708z'/%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='%23879cb2'%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-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x:0.75rem;--bs-breadcrumb-padding-y:0.375rem;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg:#444;--bs-breadcrumb-border-radius:0.25rem;--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:#fff;--bs-pagination-bg:#00bc8c;--bs-pagination-border-width:0;--bs-pagination-border-color:transparent;--bs-pagination-border-radius:var(--bs-border-radius);--bs-pagination-hover-color:#fff;--bs-pagination-hover-bg:#00efb2;--bs-pagination-hover-border-color:transparent;--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(55, 90, 127, 0.25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#00efb2;--bs-pagination-active-border-color:transparent;--bs-pagination-disabled-color:#fff;--bs-pagination-disabled-bg:#007053;--bs-pagination-disabled-border-color:transparent;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(0 * -1)}.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:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg:#444;--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:#375a7f;--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:#fff;--bs-list-group-bg:#303030;--bs-list-group-border-color:#444;--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:#fff;--bs-list-group-action-hover-bg:#444;--bs-list-group-action-active-color:var(--bs-body-color);--bs-list-group-action-active-bg:#222;--bs-list-group-disabled-color:var(--bs-secondary-color);--bs-list-group-disabled-bg:#303030;--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#375a7f;--bs-list-group-active-border-color:#375a7f;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-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action: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:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.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-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:#fff;--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%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.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity:0.4;--bs-btn-close-hover-opacity:1;--bs-btn-close-focus-shadow:0 0 0 0.25rem rgba(55, 90, 127, 0.25);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:0.25;--bs-btn-close-white-filter:invert(1) grayscale(100%) brightness(200%);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;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{filter:var(--bs-btn-close-white-filter)}[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.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:#444;--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:#303030;--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: ;--bs-modal-bg:#303030;--bs-modal-border-color:#444;--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:#444;--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:#444;--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{transition:transform .3s ease-out;transform:translate(0,-50px)}@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;justify-content:space-between;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:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) 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:#303030;--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:#444;--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;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 0z'/%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-.708z'/%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:#fff;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:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.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:#444;--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;justify-content:space-between;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))}.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:#fff!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#fff!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:#fff!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(44,72,102,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(44,72,102,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(44,72,102,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(54,54,54,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(54,54,54,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(54,54,54,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(0,150,112,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(0,150,112,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(0,150,112,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(42,122,175,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(42,122,175,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(42,122,175,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(194,125,14,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(194,125,14,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(194,125,14,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(185,61,48,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(185,61,48,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(185,61,48,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(138,145,151,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(138,145,151,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(138,145,151,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(38,38,38,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(38,38,38,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(38,38,38,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}.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-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.425rem + 2.1vw)!important}.fs-2{font-size:calc(1.375rem + 1.5vw)!important}.fs-3{font-size:calc(1.325rem + .9vw)!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:3rem!important}.fs-2{font-size:2.5rem!important}.fs-3{font-size:2rem!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}}.blockquote-footer{color:#888}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{color:#888}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>label{color:#888}.nav-pills .nav-item.open .nav-link,.nav-pills .nav-item.open .nav-link:focus,.nav-pills .nav-item.open .nav-link:hover,.nav-pills .nav-link,.nav-pills .nav-link.active,.nav-pills .nav-link.active:focus,.nav-pills .nav-link.active:hover,.nav-tabs .nav-item.open .nav-link,.nav-tabs .nav-item.open .nav-link:focus,.nav-tabs .nav-item.open .nav-link:hover,.nav-tabs .nav-link,.nav-tabs .nav-link.active,.nav-tabs .nav-link.active:focus,.nav-tabs .nav-link.active:hover{color:#fff}.breadcrumb a{color:#fff}.pagination a:hover{text-decoration:none}.alert{color:#fff;border:none}.alert .alert-link,.alert a{color:#fff;text-decoration:underline}.alert-primary{background-color:#375a7f}.alert-secondary{background-color:#444}.alert-success{background-color:#00bc8c}.alert-info{background-color:#3498db}.alert-warning{background-color:#f39c12}.alert-danger{background-color:#e74c3c}.alert-light{background-color:#adb5bd}.alert-dark{background-color:#303030}.tooltip{--bs-tooltip-bg:var(--bs-tertiary-bg);--bs-tooltip-color:var(--bs-emphasis-color)} -/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/frontend/src/assets/styles.css b/frontend/src/assets/styles.css index d6c46c6..a9862f4 100644 --- a/frontend/src/assets/styles.css +++ b/frontend/src/assets/styles.css @@ -1,26 +1,4 @@ -/* navbar */ -.navbar-dark { - border-bottom: 0.1px solid #333333 !important; -} -.navbar { - background-color: rgb(16, 22, 29) !important; -} -/* @font-face { - font-family: 'TiltNeon'; - src: url('TiltNeon-Regular.ttf'); -} */ .navbar-brand { - /* font-family: TiltNeon, var(--bs-font-sans-serif); - text-shadow: - 0 0 1px rgb(255, 255, 255, 1), - 0 0 2px rgb(255, 255, 255, 1), - 0 0 3px rgb(255, 255, 255, 1), - 0 0 4px rgb(255, 255, 255, 1), - -1px 0 #198754, - 0 1px #198754, - 1px 0 #198754, - 0 -1px #198754; - -webkit-text-stroke: 1px white; */ font-size: 26px; padding-top: 0 !important; padding-bottom: 0 !important; @@ -28,6 +6,7 @@ width: 85px; background-image: url("./logo_small.png"); background-size: 100%; + display: inline-block; } th.thin { @@ -35,11 +14,18 @@ th.thin { white-space: nowrap; } -* { - --bs-body-bg: rgb(23, 30, 38) !important; - --bs-primary-rgb: rgb(16, 22, 29) !important; - --bs-navbar-color: rgb(249, 115, 22) !important; - --bs-btn-bg: rgb(249, 115, 22) !important; - --bs-btn-hover-bg: rgba(249, 115, 22, 0.5) !important; - --bs-btn-active-bg: rgba(249, 115, 22, 0.5) !important; +html, body, #container { + height: 100%; + margin:0; + background-color: #171E26; +} + +.ant-layout-header { + background-color: #26323f; + border: 0; + border-bottom: 1px solid rgba(154, 197, 247, 0.19); +} + +.ant-menu-horizontal { + border-bottom: 0; } \ No newline at end of file diff --git a/frontend/src/components/Layout.jsx b/frontend/src/components/Layout.jsx index c549e00..7be0a39 100644 --- a/frontend/src/components/Layout.jsx +++ b/frontend/src/components/Layout.jsx @@ -1,14 +1,16 @@ -import { Link, Outlet, useLoaderData } from "react-router-dom"; -import { Button, Nav, Container, NavbarBrand, NavbarToggle, Navbar, NavbarCollapse, ButtonGroup, ProgressBar, OverlayTrigger, Tooltip, Col, Row, NavDropdown } from "react-bootstrap"; +import { Link, Outlet, useLoaderData, useLocation, useNavigate, useNavigation } from "react-router-dom"; import { UserProvider } from "../store/user"; import { useEffect, useRef, useState } from "react"; import { ajax } from "../utils/fetch"; import { useRole } from "../utils/roles"; +import { Layout, Menu, Progress, Space } from "antd"; +import { FireTwoTone, StarTwoTone } from '@ant-design/icons'; +import { Content, Header } from "antd/es/layout/layout"; export default () => { const params = useLoaderData(); - const { hasRole } = useRole(); - + const navigate = useNavigate(); + const location = useLocation(); useEffect(() => { setUser(params) }, [params]) @@ -17,53 +19,84 @@ export default () => { const logout = () => { ajax("/api/user/logout", { method: "POST", - }). - then(() => setUser(null)) + }) + .then(() => { setUser(null); navigate("/login") }) + .catch(() => { setUser(null); navigate("/login") }) + } + let items = [ + { key: "login", label: "Вход", link: "/login" }, + { key: "register", label: "Регистрация", link: "/register" } + ] + if (user != null) { + items = [ + { + key: "quests", + label: "Квесты", + link: "/quests" + }, + { + key: "user", + label: user.username, + children: [ + { + type: "group", + key: "exp", + label: ( + {user.level} уровень + {user.experience} опыт + ) + }, + { + type: "group", + key: "progress", + label: + }, + { + type: "group", + key: "nextLevel", + label: `Следующий уровень - ${user.expToNextLevel} очков опыта` + }, + { + key: "logout", + label: "Выход", + handler: logout, + } + ], + }, + ] + } + const menuHandler = (x) => { + const item = getItemByPath(items, x.keyPath); + item.link ? navigate(item.link) : null; + item.handler ? item.handler() : null; } - return (<> - - - - - - - + const getItemByPath = (items, path) => { + const x = path.pop() + const item = items.find(y => y.key === x); + if (path.length == 0) { + return item + } + return getItemByPath(item.children, path) + } - - - - - + return ( +
+ + +
+ -
- ); + +
); } \ No newline at end of file diff --git a/frontend/src/main.jsx b/frontend/src/main.jsx index 96dd03a..b0ce5b1 100644 --- a/frontend/src/main.jsx +++ b/frontend/src/main.jsx @@ -1,8 +1,9 @@ import React from 'react' import ReactDOM from 'react-dom/client' import { Compose } from '@neonxp/compose'; - -import "./assets/bootstrap.min.css" +import { App as AntdApp, ConfigProvider, theme } from 'antd'; +const { darkAlgorithm } = theme; +import ruRU from "antd/locale/ru_RU"; import "./assets/styles.css" import App from './App.jsx' @@ -11,7 +12,23 @@ import { store } from './store/provider.js'; ReactDOM.createRoot(document.getElementById('root')).render( - + + + + + , ); \ No newline at end of file diff --git a/frontend/src/pages/Engine.jsx b/frontend/src/pages/Engine.jsx index 506bbd1..7e1e0d3 100644 --- a/frontend/src/pages/Engine.jsx +++ b/frontend/src/pages/Engine.jsx @@ -1,75 +1,115 @@ -import { Badge, Button, Col, Form, Row, Table } from "react-bootstrap"; import { Link, useLoaderData, useParams } from "react-router-dom"; import Markdown from "react-markdown"; -import { useState } from "react"; +import { useEffect, useState } from "react"; import { ajax } from "../utils/fetch"; +import Title from "antd/es/typography/Title"; +import { Alert, App, Badge, Button, Card, Col, Form, Input, List, Row } from "antd"; export default () => { const params = useParams(); const loadedTask = useLoaderData(); const [task, setTask] = useState(loadedTask); - const [code, setCode] = useState(""); - const onSubmitCode = (e) => { - e.preventDefault(); + const { message, notification, modal } = App.useApp(); + + useEffect(() => { + switch (task.message) { + case "invalid_code": + message.error("Неверный код") + break + case "old_code": + message.error("Этот код уже вводился") + break + case "next_level": + message.success("Переход на новый уровень") + break + case "ok_code": + message.success("Код принят, ищите оставшиеся") + break + } + }, [task.message]) + + + const [form] = Form.useForm(); + const onFinish = ({ code }) => { ajax(`/api/engine/${params.gameId}/code`, { - method: "POST", - headers: { - 'Accept': 'application/json', - 'Content-Type': 'application/json' - }, - body: JSON.stringify({ code }) - }). + method: "POST", + headers: { + 'Accept': 'application/json', + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ code }) + }). then((x) => { if (x != null) { setTask(x); - setCode(""); + form.setFieldsValue({ code: '' }); } }).catch(e => { console.warn(e); }); - } + }; + + if (task && task.message == "game_complete") { - return (
-
Вы прошли все уровни!
+ return (
+ К списку игр
); } if (!task) { - return (
-
Для вас не предусмотренно уровней
+ return (
+ К списку игр
); } return (<> -

{task.title}

- {task.text} - {task.message == "invalid_code" ? (
Неверный код
) : null} - {task.message == "old_code" ? (
Этот код уже вводился
) : null} - {task.message == "next_level" ? (
Переход на новый уровень
) : null} - {task.message == "ok_code" ? (
Код принят, ищите оставшиеся
) : null} -

Коды:

-
    - {task.codes.map( - (c, idx) =>
  • {c.description} {!!c.code ? (Принят {c.code}) : (Не введён)}
  • - )} -
-
- - Код: - - setCode(e.target.value)} + {task.title} + + + + {task.text} + + + ( + ) : ()} + > + {c.description} + )} /> - - - - - -
+ + + + +
+ + + + + + +
+
+ {task.message == "invalid_code" ? () : null} + {task.message == "old_code" ? () : null} + {task.message == "next_level" ? () : null} + {task.message == "ok_code" ? () : null} + + ); } \ No newline at end of file diff --git a/frontend/src/pages/Index.jsx b/frontend/src/pages/Index.jsx index 38638c8..9433c5f 100644 --- a/frontend/src/pages/Index.jsx +++ b/frontend/src/pages/Index.jsx @@ -1,73 +1,22 @@ -import { Button, Table } from "react-bootstrap"; -import { Link, useLoaderData } from "react-router-dom"; -import Markdown from "react-markdown"; -import moment from 'moment/min/moment-with-locales'; +import { useNavigate } from "react-router-dom"; import { UserProvider } from "../store/user"; +import { Typography, Button } from 'antd'; +import React from "react"; + +const { Title, Text, Paragraph } = Typography; export default () => { - moment.locale('ru'); - const games = useLoaderData(); - const { user } = UserProvider.useContainer(); + const {user} = UserProvider.useContainer(); + const navigate = useNavigate(); return (<> -

Доступные квесты

- {games && games.map(game => ( -
-

{game.title}

- - - - - - - - - - - - - - - - - - - - - - -
- Тип - - {game.type} - - Опыт за квест - - {game.points} -
- Уровней - - {game.taskCount} - - Опубликовано - - {moment(game.createdAt).fromNow()} -
- Автор - - {game.authors.map(a => {a.username})} -
- {game.description} -
- {user ? (<> - {(!!user.games.find(x => x.id === game.id)) - ? (Вы уже прошли этот квест) - : (Начать прохождение)} - ): null} - -
-
-
- ))} - {!games ? (Игр пока не анонсировано) : null} + NQuest + Привет! Это платформа для ARG игр. + Если ты попал сюда случайно, то скорее всего, для тебя здесь нет ничего интересного. А если ты знаешь зачем пришёл, то добро пожаловать! + {!user?( + + + + + ):()} ); -} \ No newline at end of file +} diff --git a/frontend/src/pages/Login.jsx b/frontend/src/pages/Login.jsx index 8c5f698..b6542d1 100644 --- a/frontend/src/pages/Login.jsx +++ b/frontend/src/pages/Login.jsx @@ -1,65 +1,93 @@ import { useEffect, useState } from "react"; -import { Form, Button, Row, Col } from "react-bootstrap"; import { UserProvider } from "../store/user"; import { useLocation, useNavigate } from "react-router-dom"; import { ajax } from "../utils/fetch"; +import { Alert, App, Button, Form, Input } from "antd"; export default () => { - const {user, setUser} = UserProvider.useContainer(); - const {state} = useLocation() - const [email, setEmail] = useState(""); - const [password, setPassword] = useState(""); + const { user, setUser } = UserProvider.useContainer(); + const { state } = useLocation() const [error, setError] = useState(null); const navigate = useNavigate(); + const [form] = Form.useForm(); useEffect(() => { if (user) { navigate(state && state.from ? state.from : "/"); - } + } }, [user]) - const onLogin = (e) => { - e.preventDefault(); + const onFinish = (values) => { ajax("/api/user/login", { - method: "POST", - headers: { - 'Accept': 'application/json', - 'Content-Type': 'application/json' - }, - body: JSON.stringify({ email, password }) - }). + method: "POST", + headers: { + 'Accept': 'application/json', + 'Content-Type': 'application/json' + }, + body: JSON.stringify(values) + }). then(setUser). - catch(({ message }) => setError(message)); + catch(({ message }) => setError("Проверьте e-mail и пароль")); } + return (<>

Вход

-
-
- {error ? (
{error}
) : null} - - Email - - setEmail(e.target.value)} - /> - - - - Пароль - - setPassword(e.target.value)} - /> - - - -
-
+ {error ? : null} +
+ + + + + + + + + +
) }; \ No newline at end of file diff --git a/frontend/src/pages/Quests.jsx b/frontend/src/pages/Quests.jsx new file mode 100644 index 0000000..db615c7 --- /dev/null +++ b/frontend/src/pages/Quests.jsx @@ -0,0 +1,60 @@ +import { Link, useLoaderData, useNavigate } from "react-router-dom"; +import Markdown from "react-markdown"; +import remarkGfm from 'remark-gfm'; +import moment from 'moment/min/moment-with-locales'; +import { UserProvider } from "../store/user"; +import { Avatar, List, Typography, Button, Space, Table, Card } from 'antd'; +import { FireTwoTone, BuildTwoTone } from '@ant-design/icons'; +import React from "react"; + +const { Title } = Typography; + +export default () => { + moment.locale('ru'); + const games = useLoaderData(); + const { user } = UserProvider.useContainer(); + const navigate = useNavigate(); + + return (<> + Квесты + {games.map(item => renderItem(user, navigate, item))} + {!games ? (Квестов пока не анонсировано) : null} + ); +} + + +const renderItem = (user, navigate, item) => { + const actions = [ + Оп: {item.points}, + Ур: {item.taskCount}, + <>{moment(item.createdAt).fromNow()}, + <>Автор(ы) {item.authors.map(a => a.username)}, + ]; + + + let questAction = (Необходимо войти) + + if (!!user) { + questAction = (!!user.games.find(x => x.id === item.id) + ? Вы уже прошли этот квест + : + ); + } + + return ( + + + + + {item.description} + + {questAction} + + ) +} diff --git a/frontend/src/pages/Register.jsx b/frontend/src/pages/Register.jsx index e920993..d98b119 100644 --- a/frontend/src/pages/Register.jsx +++ b/frontend/src/pages/Register.jsx @@ -1,89 +1,121 @@ import { useEffect, useState } from "react"; -import { Form, Button, Row, Col } from "react-bootstrap"; import { useNavigate } from "react-router-dom"; import { UserProvider } from "../store/user"; import { ajax } from "../utils/fetch"; +import { Alert, Button, Form, Input } from "antd"; export default () => { const { user, setUser } = UserProvider.useContainer(); - const [username, setUsername] = useState(""); - const [email, setEmail] = useState(""); - const [password, setPassword] = useState(""); - const [password2, setPassword2] = useState(""); const [error, setError] = useState(null); const navigate = useNavigate(); useEffect(() => { user ? navigate("/") : null; }, [user]) - const onRegister = (e) => { - e.preventDefault(); + const onFinish = (values) => { ajax("/api/user/register", { method: "POST", headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, - body: JSON.stringify({ username, email, password, password2 }) + body: JSON.stringify(values) }). - then(setUser). - catch(({ message }) => setError(message)); + then(setUser). + catch(({ message }) => setError("Ошибка регистрации")); } return (<>

Регистрация

-
-
- {error ? (
{error}
) : null} - - Имя пользователя - - setUsername(e.target.value)} - /> - Имя пользователя для отображения другим игрокам - - - - Email - - setEmail(e.target.value)} - /> - E-mail не виден другим игрокам - - - - Пароль - - setPassword(e.target.value)} - /> - Пароль должен быть от 8 до 16 символов - - - - Повторите пароль - - setPassword2(e.target.value)} - /> - Введите пароль заново, чтобы избежать опечаток - - - -
-
- ); + {error ? : null} +
+ + + + + + + + + + ({ + validator(_, value) { + if (!value || getFieldValue('password') === value) { + return Promise.resolve(); + } + return Promise.reject(new Error('Пароли отличаются!')); + }, + }), + ]} + > + + + + + +
+ ) } \ No newline at end of file diff --git a/frontend/src/utils/fetch.js b/frontend/src/utils/fetch.js index 2cdd4d1..910aa26 100644 --- a/frontend/src/utils/fetch.js +++ b/frontend/src/utils/fetch.js @@ -7,5 +7,4 @@ export const ajax = async (path, params) => { return r }) .then(r => r.json()) - .catch(() => null) } diff --git a/main.go b/main.go index f71aa0a..48e825d 100644 --- a/main.go +++ b/main.go @@ -54,6 +54,7 @@ func main() { &models.Task{}, &models.Solution{}, &models.Code{}, + &models.File{}, ); err != nil { fmt.Fprintf(os.Stderr, "Error DB migration\n: %s", err) os.Exit(1) @@ -63,6 +64,7 @@ func main() { userService := service.NewUser(db) gameService := service.NewGame(db) engineService := service.NewEngine(db) + uploadService := service.NewFile(db) // --[ HTTP server ]-- @@ -130,6 +132,9 @@ func main() { Admin: &controller.Admin{ GameService: gameService, }, + File: &controller.File{ + FileService: uploadService, + }, } codegen := e.Group("") @@ -161,4 +166,5 @@ type serverRouter struct { *controller.User *controller.Engine *controller.Admin + *controller.File } diff --git a/pkg/controller/admin.go b/pkg/controller/admin.go index 62b7ace..5cd67bc 100644 --- a/pkg/controller/admin.go +++ b/pkg/controller/admin.go @@ -2,6 +2,7 @@ package controller import ( "net/http" + "time" "github.com/google/uuid" "github.com/labstack/echo/v4" @@ -32,9 +33,15 @@ func (a *Admin) CreateGame(ctx echo.Context) error { } return ctx.JSON(http.StatusCreated, api.GameResponse{ - Id: game.ID, - Title: game.Title, + Authors: make([]api.UserView, 0, len(game.Authors)), + CreatedAt: game.CreatedAt.Format(time.RFC3339), Description: game.Description, + Icon: game.IconID, + Id: game.ID, + Points: game.Points, + TaskCount: len(game.Tasks), + Title: game.Title, + Type: api.MapGameTypeReverse(game.Type), }) } @@ -52,6 +59,7 @@ func (*Admin) mapCreateGameRequest(req *api.GameEditRequest, user *models.User) Type: api.MapGameType(req.Type), Tasks: make([]*models.Task, 0, len(req.Tasks)), Points: req.Points, + IconID: req.Icon, } for order, te := range req.Tasks { task := &models.Task{ diff --git a/pkg/controller/file.go b/pkg/controller/file.go new file mode 100644 index 0000000..0e296c9 --- /dev/null +++ b/pkg/controller/file.go @@ -0,0 +1,50 @@ +package controller + +import ( + "github.com/google/uuid" + "github.com/labstack/echo/v4" + "gitrepo.ru/neonxp/nquest/api" + "gitrepo.ru/neonxp/nquest/pkg/service" +) + +type File struct { + FileService *service.File +} + +// (POST /file/upload) +func (u *File) UploadFile(c echo.Context) error { + // user := contextlib.GetUser(c) + fh, err := c.FormFile("file") + if err != nil { + return err + } + fo, err := fh.Open() + if err != nil { + return err + } + + id, err := u.FileService.Upload( + c.Request().Context(), + fh.Filename, + fh.Header.Get("Content-Type"), + int(fh.Size), + fo, + ) + if err != nil { + return err + } + + return c.JSON(200, &api.UploadResponse{ + Uuid: id, + }) +} + +// (GET /file/{uid}) +func (u *File) GetFile(c echo.Context, uid uuid.UUID) error { + f, err := u.FileService.GetFile(c.Request().Context(), uid) + if err != nil { + return err + } + + return c.Blob(200, f.ContentType, f.Body) +} diff --git a/pkg/controller/game.go b/pkg/controller/game.go index 6502c53..2a173ec 100644 --- a/pkg/controller/game.go +++ b/pkg/controller/game.go @@ -31,6 +31,7 @@ func (g *Game) GetGames(ctx echo.Context) error { TaskCount: len(game.Tasks), Authors: make([]api.UserView, 0, len(game.Authors)), CreatedAt: game.CreatedAt.Format(time.RFC3339), + Icon: game.IconID, } for _, u := range game.Authors { gv.Authors = append(gv.Authors, api.UserView{ diff --git a/pkg/models/file.go b/pkg/models/file.go new file mode 100644 index 0000000..cf4138e --- /dev/null +++ b/pkg/models/file.go @@ -0,0 +1,10 @@ +package models + +type File struct { + Model + + Filename string + ContentType string + Size int + Body []byte `gorm:"type:bytea"` +} diff --git a/pkg/models/game.go b/pkg/models/game.go index d375efd..7b60bc9 100644 --- a/pkg/models/game.go +++ b/pkg/models/game.go @@ -1,5 +1,7 @@ package models +import "github.com/google/uuid" + type Game struct { Model @@ -10,6 +12,8 @@ type Game struct { Authors []*User `gorm:"many2many:game_authors"` Type GameType Points int + Icon *File + IconID uuid.UUID } type GameType int diff --git a/pkg/service/file.go b/pkg/service/file.go new file mode 100644 index 0000000..9c48085 --- /dev/null +++ b/pkg/service/file.go @@ -0,0 +1,49 @@ +package service + +import ( + "context" + "mime/multipart" + + "github.com/google/uuid" + "gitrepo.ru/neonxp/nquest/pkg/models" + "gorm.io/gorm" +) + +type File struct { + DB *gorm.DB +} + +func NewFile(db *gorm.DB) *File { + return &File{ + DB: db, + } +} + +func (u *File) Upload( + ctx context.Context, + filename string, + contentType string, + size int, + r multipart.File, +) (uuid.UUID, error) { + buf := make([]byte, size) + if _, err := r.Read(buf); err != nil { + return uuid.UUID{}, err + } + + file := &models.File{ + Model: models.Model{ID: uuid.New()}, + Filename: filename, + ContentType: contentType, + Size: size, + Body: buf, + } + + return file.ID, u.DB.WithContext(ctx).Create(file).Error +} + +func (u *File) GetFile(ctx context.Context, uid uuid.UUID) (*models.File, error) { + f := new(models.File) + + return f, u.DB.WithContext(ctx).First(f, uid).Error +} diff --git a/pkg/service/user.go b/pkg/service/user.go index d57f25e..794d2c2 100644 --- a/pkg/service/user.go +++ b/pkg/service/user.go @@ -85,6 +85,8 @@ func (s *User) Login(ctx context.Context, email, password string) (*models.User, nemail := normalizer.NewNormalizer().Normalize(email) err := s.DB. WithContext(ctx). + Preload("Games", `Finish = true`). + Preload("Games.Game"). Where("email = ?", nemail). First(u). Error diff --git a/requests.http b/requests.http index b763010..3696404 100644 --- a/requests.http +++ b/requests.http @@ -33,14 +33,15 @@ POST http://localhost:8000/api/games Content-Type: application/json { - "title": "Тестовая игра 2", - "description": "Описание тестовой игры", + "icon": "f343919a-b068-4d72-ade5-bbb84db0bec9", + "title": "Тестовая игра 7", + "description": "A paragraph with *emphasis* and **strong importance**.\n\n> A block quote with ~strikethrough~ and a URL: https://reactjs.org.\n\n* Lists\n* [ ] todo\n* [x] done\n\nA table:\n\n\n| a | b |\n| - | - |\n", "type": "city", "points": 500, "tasks": [ { "title": "Задание 1", - "text": "Текст первого задания.\n\n*Коды: `nq1111`*", + "text": "A paragraph with *emphasis* and **strong importance**.\n\n> A block quote with ~strikethrough~ and a URL: https://reactjs.org.\n\n* Lists\n* [ ] todo\n* [x] done\n\nA table:\n\n\n| a | b |\n| - | - |\n", "codes": [ { "description": "1+", @@ -233,4 +234,22 @@ Content-Type: application/json { "code": "NQ3333" -} \ No newline at end of file +} + + +### + +POST http://localhost:8000/api/file/upload +Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW + + +------WebKitFormBoundary7MA4YWxkTrZu0gW +Content-Disposition: form-data; name="file"; filename="icon.jpg" +Content-Type: image/jpg + +< /home/neonxp/logo.jpg +------WebKitFormBoundary7MA4YWxkTrZu0gW-- + +### + +GET http://localhost:8000/api/file/f343919a-b068-4d72-ade5-bbb84db0bec9 \ No newline at end of file