diff --git a/.dockerignore b/.dockerignore index 5aba1c1..dfc95f4 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,9 +1,27 @@ -**/venv/ -.git -.idea +**/.venv/ +**/.git/ +**/.idea/ **/__pycache__/ **/assets/ **/staticfiles/ +**/mysql_docker/ +**/mattermost/ +keys/ +traefik/ +nginx/ +mock_services/ +media/ .yarnrc.yml README.md +.gitignore +.gitlab-ci.yml +*.pyc +*.pyo +*.pyd +.Python +*.git +*.hg + +.env + diff --git a/.env.sample b/.env.sample new file mode 100644 index 0000000..bc13aaa --- /dev/null +++ b/.env.sample @@ -0,0 +1,48 @@ +DB_USER=gatekeeper_admin +DB_NAME=gatekeeper +DB_PASS=`~G0Q3,Ju# +DB_HOST=localhost +DB_PORT=3310 +DATABASE_URL=postgres://USER:PASSWORD@HOST:PORT/NAME + +ACCESS_TOKEN_SECRET= +REFRESH_TOKEN_SECRET= +JWT_SECRET=some-secrete + +APP_HOST=0.0.0.0 +APP_PORT=8001 + +DJANGO_PORT=8001 + +SUPERUSER_USERNAME= +SUPERUSER_EMAIL= +SUPERUSER_PASSWORD= + +DEFAULT_FROM_EMAIL= +REGISTRATION_FROM_EMAIL= +PASSWORD_RESET_FROM_EMAIL= +NO_REPLY_FROM_EMAIL= +CONTACT_EMAIL= +FROM_EMAIL= + +# POSTMARK +EMAIL_HOST_PASSWORD= +EMAIL_PORT=587 +EMAIL_HOST_USER= +EMAIL_USE_TLS= +EMAIL_HOST= + +DJANGO_SECRET_KEY= +DJANGO_STATIC_ROOT= + +FARM_CALENDAR_API=http://127.0.0.1:8002/api/ +FARM_CALENDAR_POST_AUTH=http://127.0.0.1:8002/post_auth/ + +DOMAIN=https://horizon-openagri.eu/ + +FRONTEND_URL=https://horizon-openagri.eu/ +FRONTEND_PASS_RESET_URL=https://horizon-openagri.eu/reset-password + +MAINTENANCE_MODE=OFF + +DJANGO_DEBUG=True diff --git a/.gitignore b/.gitignore index 3d59521..ec322aa 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,16 @@ # Folders -.git +**/.git/ **/__pycache__/ -venv*/ -.idea/ +**/.venv*/ +**/.idea/ **/staticfiles/ **/assets/ +keys/ +traefik/ +nginx/ +mock_services/ +media/ +**/mattermost/ # Files .env @@ -14,10 +20,6 @@ venv*/ !requirements.txt *.log -# Ignore all migration files, then re-include __init__.py -**/migrations/* -!**/migrations/__init__.py - # Image files - Ignore all, except in the 'static' folder *.jpg *.jpeg @@ -28,3 +30,4 @@ venv*/ *.bmp !static/**/*.* +generate_folder_structure.py diff --git a/API.md b/API.md new file mode 100644 index 0000000..031bf80 --- /dev/null +++ b/API.md @@ -0,0 +1,489 @@ +# API Documentation + +This document provides the authentication endpoints for logging in and logging out of the GateKeeper API. + +## Base URL +``` +http://localhost:8001/api/ +``` + +## Authentication Endpoints + +### 1. Login + +**Endpoint:** +``` +POST /api/login/ +``` + +**Description:** +Obtain JWT tokens (access and refresh) for authentication. + +**Headers:** +``` +Content-Type: application/json +``` + +**Request Body:** +``` +{ + "username": "string", // required + "password": "string" // required +} +``` + +**Success Response:** +``` +{ + "success": true, + "access": "string", // JWT access token + "refresh": "string" // JWT refresh token +} +``` + +**Error Responses:** + +**400 Bad Request - Missing required fields** +``` +{ + "username": ["This field is required."], + "password": ["This field is required."] +} +``` + + +**401 Unauthorized - Invalid credentials or inactive/deleted account** +``` +{ + "detail": "No active account found with the given credentials" +} +``` + +--- + +### 2. Logout + +**Endpoint:** +``` +POST /api/logout/ +``` + +**Description:** +Logs out a user by blacklisting the refresh token. + +**Headers:** +``` +Content-Type: application/json +``` + +**Request Body:** +``` +{ "refresh": "string" // required, JWT refresh token } +``` + +**Success Response:** +``` +{ "success": "Logged out successfully" } +``` + +**Error Responses:** + +**400 Bad Request - Missing token** +``` +{ "error": "Refresh token is required" } +``` + +**400 Bad Request - Invalid or expired token** +``` +{ "error": "Invalid or expired token" } +``` + +--- + +### 3. Register a Service + +**Endpoint:** +``` +POST /api/register_service/ +``` + +**Description:** +Register a new service endpoint or update an existing service with the provided data. +If a service with the same base url, service name, and endpoint exists: +- The service is updated with new methods, params, and comments. +- Existing methods are merged with the new ones provided. +- Existing params and comments are replaced with the new values. + +If no matching service is found, a new service is created. + +To remove method(s), use the Delete Service API. + +**Headers:** +``` +Content-Type: application/json +Authorization: Bearer (Required) +``` + +**Request Body:** +``` +{ + // Required, base URL of the service (name of the docker service) + "base_url": "string", + + // Required, name of the service + "service_name": "string", + + // Required, endpoint of the service + "endpoint": "string", + + // Optional, list of HTTP methods (default: ["GET", "POST"]) + "methods": ["string"], + + // Optional, additional parameters for the service + "params": "string of query parameters" + + // Optional, comments for the service, if any + "comments": "string" +} +``` + +**Success Response:** + +**201 Created - Service registered successfully** +``` +{ + "success": true, + "message": "Service registered successfully", + "service_id": 9 // ID of the created service at GateKeeper +} +``` + +**200 OK - Existing service updated with new methods** +``` +{ + "success": true, + "message": "Service updated successfully.", + "service_id": 9 +} +``` + +**Error Responses:** + +**400 Bad Request - Missing required fields** +``` +{ + "error": "Missing required fields: endpoint" +} +``` + +**400 Bad Request - Invalid JSON input** +``` +{ + "detail": "JSON parse error - Expecting ’,’ delimiter: line 3 column 3 (char 35)" +} +``` + +**400 Bad Request - Methods not in the correct format** +``` +{ + "error": "Methods should be a list of strings." +} +``` + +**400 Bad Request - Service already exists with the same methods** +``` +{ + "error": "A service with this endpoint and methods already exists." +} +``` + +**400 Bad Request - Base URL format invalid** +``` +{ + "error": "Base URL must follow the format ’http://baseurl:port/’ or ’https://baseurl:port/’." +} +``` + +**400 Bad Request - Service Name invalid** +``` +{ + "error": "Service name must only contain alphanumeric characters and underscores, and must be less than 30 characters." +} +``` + +**400 Bad Request - Endpoint format invalid** +``` +{ + "error": "Endpoint must not start with a forward or backward slash and must end with ’/’." +} +``` + +**500 Internal Server Error - Database or unexpected error** +``` +{ + "error": "Database error: " +} +{ + "error": "Unexpected error: " +} +``` + +--- + +### 4. Delete a Service + +**Endpoint:** +``` +POST /api/delete_service/ +``` + +**Description:** +Delete a service or specific method associated with a service. You can delete: +- A specific method by providing the method query parameter. +- The entire service if method is not provided. + +**Headers:** +``` +Authorization: Bearer (Required) +``` + +**Request Body:** +``` +{ + base_url: string // Required, base URL of the service + service_name: string // Required, name of the service + endpoint: string // Required, endpoint of the service + method: string // Optional, HTTP method to delete (e.g., "POST") +} +``` + +**Success Responses:** +**200 OK - Entire service deleted** +``` +{ + "success": true, + "message": "Base URL, service and endpoint deleted successfully." +} +``` + +**200 OK - Specific method removed from the service** +``` +{ + "success": true, + "message": "Method ’POST’ removed from the service." +} +``` + +**Error Responses:** +**400 Bad Request - Missing required parameters** +``` +{ + "error": "Base URL, service name, and endpoint are required." +} +``` + +**400 Bad Request - Method not found for the service** +``` +{ + "error": "Method ’POST’ does not exist for this endpoint." +} +``` + +**404 Not Found - Service not found or already deleted** +``` +{ + "error": "Service with this base URL, name, and endpoint does not exist or is already deleted." +} +``` + +**500 Internal Server Error - Database or unexpected error** +``` +{ + "error": "Database error: " +} +{ + "error": "Unexpected error: " +} +``` + +--- + +### 5. Service Directory +**Endpoint:** +``` +GET /api/service directory/ +``` + +**Headers:** +``` +Content-Type: application/json +Authorization: Bearer (Required) +``` +**Description:** +Retrieve a list of all registered services. If no query parameters are provided, all available +services are returned. Optionally, you can filter the results based on service name, endpoint, or +method. + +**Optional Query Parameters:** +``` +{ + "service_name": "string", // Optional, partial or full match for the service name + "endpoint": "string", // Optional, partial or full match for the endpoint + "method": "string" // Optional, HTTP method supported by the service +} +``` + +**Success Response:** +``` +[ + { + "base_url": "http://127.0.0.1:8003", + "service_name": "weather_data", + "endpoint": "get_temperature/{dd-mm-yyyy}", + "methods":[ + "POST", + "DELETE", + "GET" + ], + "params":{}, + "service_url": "http://127.0.0.1:8003/weather_data/get_temperature/{dd-mm-yyyy}" + }, + { + "base_url": "http://127.0.0.1:8002/", + "service_name": "farm_calendar", + "endpoint": "get_all_farms/{id}", + "methods":[ + "DELETE", + "POST", + "GET" + ], + "params":{}, + "service_url": "http://127.0.0.1:8002/farm_calendar/get_all_farms/{id}" + } +] +``` + + +**Error Responses:** + +**500 Internal Server Error - Unexpected error during query execution** +``` +{ + "error": "Unexpected error: " +} +``` + +**500 Internal Server Error - Database error** +``` +{ + "error": "Database error: " +} +``` + +--- + +### 6. Token Refresh + +**Endpoint:** +``` +POST /api/token/refresh/ +``` + +**Description:** +Obtain a new access token by providing a valid refresh token. + +**Headers:** +``` +Content-Type: application/json +``` + +**Request Body:** +``` +{ + "refresh": "string" // required, JWT refresh token +} +``` + +**Success Response:** +``` +{ + "access": "string" // New JWT access token +} +``` + +**Error Responses:** + +**400 Bad Request - Missing or incorrect refresh token** +``` +{ + "refresh": ["This field is required."] +} +``` + + +**401 Unauthorized - Invalid or expired refresh token** +``` +{ + "detail": "Token is invalid or expired", + "code": "token_not_valid" +} +``` + +--- + +### 7. Token Validation + +**Endpoint:** +``` +POST /api/validate token/ +``` + +**Description:** +Validate an access or refresh token to check if it is still valid and obtain the remaining time until expiration. + +**Headers:** +``` +Content-Type: application/json +``` + +**Request Body:** +``` +{ + "token": "string", // required, JWT token to validate + "token_type": "string" // optional, "access" (default) or "refresh" +} +``` + +**Success Response:** +``` +{ + "success": true, + "remaining_time_in_seconds": number // Time left before the token expires +} +``` + +**Error Responses:** + +**400 Bad Request - Missing token** +``` +{ + "error": "Token is required" +} +``` + + +**400 Bad Request - Invalid token or incorrect token type** +``` +{ + "error": "Invalid access token" +} +``` + +--- + +## Notes +- Ensure that authentication tokens are handled securely. +- The access token should be used in API requests requiring authentication. +- Refresh tokens should be stored securely and never exposed in frontend applications. + +--- diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..471f983 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,49 @@ +# Use an official Python runtime as a parent image +FROM python:3.12 + +# Set environment variables +ENV PYTHONDONTWRITEBYTECODE 1 +ENV PYTHONUNBUFFERED 1 + +# Set the working directory to /var/www +WORKDIR /var/www + +# Update and upgrade the package manager +RUN apt-get update && \ + apt-get install -y \ + sudo \ + vim \ + nano \ + curl \ + wget \ + unzip \ + git \ + iputils-ping \ + net-tools \ + libpq-dev \ + dnsutils \ + build-essential \ + default-mysql-client \ + && apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +# Create the directory for log files +RUN mkdir -p /var/www/logs +RUN chown -R www-data:www-data /var/www/logs + +# Upgrade pip +RUN pip install --upgrade pip + +COPY requirements.txt /var/www/ +RUN pip install -r requirements.txt + +# Copy the current directory contents into the container at /var/www +COPY . /var/www + +EXPOSE 9000 + +COPY entrypoint.sh /usr/local/bin/ +RUN chmod +x /usr/local/bin/entrypoint.sh + +# Set the entrypoint +ENTRYPOINT ["entrypoint.sh"] \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..c29ce2f --- /dev/null +++ b/LICENSE @@ -0,0 +1,287 @@ + EUROPEAN UNION PUBLIC LICENCE v. 1.2 + EUPL © the European Union 2007, 2016 + +This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined +below) which is provided under the terms of this Licence. Any use of the Work, +other than as authorised under this Licence is prohibited (to the extent such +use is covered by a right of the copyright holder of the Work). + +The Work is provided under the terms of this Licence when the Licensor (as +defined below) has placed the following notice immediately following the +copyright notice for the Work: + + Licensed under the EUPL + +or has expressed by any other means his willingness to license under the EUPL. + +1. Definitions + +In this Licence, the following terms have the following meaning: + +- ‘The Licence’: this Licence. + +- ‘The Original Work’: the work or software distributed or communicated by the + Licensor under this Licence, available as Source Code and also as Executable + Code as the case may be. + +- ‘Derivative Works’: the works or software that could be created by the + Licensee, based upon the Original Work or modifications thereof. This Licence + does not define the extent of modification or dependence on the Original Work + required in order to classify a work as a Derivative Work; this extent is + determined by copyright law applicable in the country mentioned in Article 15. + +- ‘The Work’: the Original Work or its Derivative Works. + +- ‘The Source Code’: the human-readable form of the Work which is the most + convenient for people to study and modify. + +- ‘The Executable Code’: any code which has generally been compiled and which is + meant to be interpreted by a computer as a program. + +- ‘The Licensor’: the natural or legal person that distributes or communicates + the Work under the Licence. + +- ‘Contributor(s)’: any natural or legal person who modifies the Work under the + Licence, or otherwise contributes to the creation of a Derivative Work. + +- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of + the Work under the terms of the Licence. + +- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, + renting, distributing, communicating, transmitting, or otherwise making + available, online or offline, copies of the Work or providing access to its + essential functionalities at the disposal of any other natural or legal + person. + +2. Scope of the rights granted by the Licence + +The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +sublicensable licence to do the following, for the duration of copyright vested +in the Original Work: + +- use the Work in any circumstance and for all usage, +- reproduce the Work, +- modify the Work, and make Derivative Works based upon the Work, +- communicate to the public, including the right to make available or display + the Work or copies thereof to the public and perform publicly, as the case may + be, the Work, +- distribute the Work or copies thereof, +- lend and rent the Work or copies thereof, +- sublicense rights in the Work or copies thereof. + +Those rights can be exercised on any media, supports and formats, whether now +known or later invented, as far as the applicable law permits so. + +In the countries where moral rights apply, the Licensor waives his right to +exercise his moral right to the extent allowed by law in order to make effective +the licence of the economic rights here above listed. + +The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to +any patents held by the Licensor, to the extent necessary to make use of the +rights granted on the Work under this Licence. + +3. Communication of the Source Code + +The Licensor may provide the Work either in its Source Code form, or as +Executable Code. If the Work is provided as Executable Code, the Licensor +provides in addition a machine-readable copy of the Source Code of the Work +along with each copy of the Work that the Licensor distributes or indicates, in +a notice following the copyright notice attached to the Work, a repository where +the Source Code is easily and freely accessible for as long as the Licensor +continues to distribute or communicate the Work. + +4. Limitations on copyright + +Nothing in this Licence is intended to deprive the Licensee of the benefits from +any exception or limitation to the exclusive rights of the rights owners in the +Work, of the exhaustion of those rights or of other applicable limitations +thereto. + +5. Obligations of the Licensee + +The grant of the rights mentioned above is subject to some restrictions and +obligations imposed on the Licensee. Those obligations are the following: + +Attribution right: The Licensee shall keep intact all copyright, patent or +trademarks notices and all notices that refer to the Licence and to the +disclaimer of warranties. The Licensee must include a copy of such notices and a +copy of the Licence with every copy of the Work he/she distributes or +communicates. The Licensee must cause any Derivative Work to carry prominent +notices stating that the Work has been modified and the date of modification. + +Copyleft clause: If the Licensee distributes or communicates copies of the +Original Works or Derivative Works, this Distribution or Communication will be +done under the terms of this Licence or of a later version of this Licence +unless the Original Work is expressly distributed only under this version of the +Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee +(becoming Licensor) cannot offer or impose any additional terms or conditions on +the Work or Derivative Work that alter or restrict the terms of the Licence. + +Compatibility clause: If the Licensee Distributes or Communicates Derivative +Works or copies thereof based upon both the Work and another work licensed under +a Compatible Licence, this Distribution or Communication can be done under the +terms of this Compatible Licence. For the sake of this clause, ‘Compatible +Licence’ refers to the licences listed in the appendix attached to this Licence. +Should the Licensee's obligations under the Compatible Licence conflict with +his/her obligations under this Licence, the obligations of the Compatible +Licence shall prevail. + +Provision of Source Code: When distributing or communicating copies of the Work, +the Licensee will provide a machine-readable copy of the Source Code or indicate +a repository where this Source will be easily and freely available for as long +as the Licensee continues to distribute or communicate the Work. + +Legal Protection: This Licence does not grant permission to use the trade names, +trademarks, service marks, or names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the copyright notice. + +6. Chain of Authorship + +The original Licensor warrants that the copyright in the Original Work granted +hereunder is owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each Contributor warrants that the copyright in the modifications he/she brings +to the Work are owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each time You accept the Licence, the original Licensor and subsequent +Contributors grant You a licence to their contributions to the Work, under the +terms of this Licence. + +7. Disclaimer of Warranty + +The Work is a work in progress, which is continuously improved by numerous +Contributors. It is not a finished work and may therefore contain defects or +‘bugs’ inherent to this type of development. + +For the above reason, the Work is provided under the Licence on an ‘as is’ basis +and without warranties of any kind concerning the Work, including without +limitation merchantability, fitness for a particular purpose, absence of defects +or errors, accuracy, non-infringement of intellectual property rights other than +copyright as stated in Article 6 of this Licence. + +This disclaimer of warranty is an essential part of the Licence and a condition +for the grant of any rights to the Work. + +8. Disclaimer of Liability + +Except in the cases of wilful misconduct or damages directly caused to natural +persons, the Licensor will in no event be liable for any direct or indirect, +material or moral, damages of any kind, arising out of the Licence or of the use +of the Work, including without limitation, damages for loss of goodwill, work +stoppage, computer failure or malfunction, loss of data or any commercial +damage, even if the Licensor has been advised of the possibility of such damage. +However, the Licensor will be liable under statutory product liability laws as +far such laws apply to the Work. + +9. Additional agreements + +While distributing the Work, You may choose to conclude an additional agreement, +defining obligations or services consistent with this Licence. However, if +accepting obligations, You may act only on your own behalf and on your sole +responsibility, not on behalf of the original Licensor or any other Contributor, +and only if You agree to indemnify, defend, and hold each Contributor harmless +for any liability incurred by, or claims asserted against such Contributor by +the fact You have accepted any warranty or additional liability. + +10. Acceptance of the Licence + +The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ +placed under the bottom of a window displaying the text of this Licence or by +affirming consent in any other similar way, in accordance with the rules of +applicable law. Clicking on that icon indicates your clear and irrevocable +acceptance of this Licence and all of its terms and conditions. + +Similarly, you irrevocably accept this Licence and all of its terms and +conditions by exercising any rights granted to You by Article 2 of this Licence, +such as the use of the Work, the creation by You of a Derivative Work or the +Distribution or Communication by You of the Work or copies thereof. + +11. Information to the public + +In case of any Distribution or Communication of the Work by means of electronic +communication by You (for example, by offering to download the Work from a +remote location) the distribution channel or media (for example, a website) must +at least provide to the public the information requested by the applicable law +regarding the Licensor, the Licence and the way it may be accessible, concluded, +stored and reproduced by the Licensee. + +12. Termination of the Licence + +The Licence and the rights granted hereunder will terminate automatically upon +any breach by the Licensee of the terms of the Licence. + +Such a termination will not terminate the licences of any person who has +received the Work from the Licensee under the Licence, provided such persons +remain in full compliance with the Licence. + +13. Miscellaneous + +Without prejudice of Article 9 above, the Licence represents the complete +agreement between the Parties as to the Work. + +If any provision of the Licence is invalid or unenforceable under applicable +law, this will not affect the validity or enforceability of the Licence as a +whole. Such provision will be construed or reformed so as necessary to make it +valid and enforceable. + +The European Commission may publish other linguistic versions or new versions of +this Licence or updated versions of the Appendix, so far this is required and +reasonable, without reducing the scope of the rights granted by the Licence. New +versions of the Licence will be published with a unique version number. + +All linguistic versions of this Licence, approved by the European Commission, +have identical value. Parties can take advantage of the linguistic version of +their choice. + +14. Jurisdiction + +Without prejudice to specific agreement between parties, + +- any litigation resulting from the interpretation of this License, arising + between the European Union institutions, bodies, offices or agencies, as a + Licensor, and any Licensee, will be subject to the jurisdiction of the Court + of Justice of the European Union, as laid down in article 272 of the Treaty on + the Functioning of the European Union, + +- any litigation arising between other parties and resulting from the + interpretation of this License, will be subject to the exclusive jurisdiction + of the competent court where the Licensor resides or conducts its primary + business. + +15. Applicable Law + +Without prejudice to specific agreement between parties, + +- this Licence shall be governed by the law of the European Union Member State + where the Licensor has his seat, resides or has his registered office, + +- this licence shall be governed by Belgian law if the Licensor has no seat, + residence or registered office inside a European Union Member State. + +Appendix + +‘Compatible Licences’ according to Article 5 EUPL are: + +- GNU General Public License (GPL) v. 2, v. 3 +- GNU Affero General Public License (AGPL) v. 3 +- Open Software License (OSL) v. 2.1, v. 3.0 +- Eclipse Public License (EPL) v. 1.0 +- CeCILL v. 2.0, v. 2.1 +- Mozilla Public Licence (MPL) v. 2 +- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 +- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for + works other than software +- European Union Public Licence (EUPL) v. 1.1, v. 1.2 +- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong + Reciprocity (LiLiQ-R+). + +The European Commission may update this Appendix to later versions of the above +licences without producing a new version of the EUPL, as long as they provide +the rights granted in Article 2 of this Licence and protect the covered Source +Code from exclusive appropriation. + +All other changes or additions to this Appendix require the production of a new +EUPL version. \ No newline at end of file diff --git a/README.md b/README.md index dec143c..6325911 100644 --- a/README.md +++ b/README.md @@ -1,93 +1,133 @@ # GateKeeper +🇪🇺 +*"This service was created in the context of OpenAgri project (https://horizon-openagri.eu/). OpenAgri has received funding from the EU’s Horizon Europe research and innovation programme under Grant Agreement no. 101134083."* +GateKeeper is a Django-based microservice designed to act as a central point for validation and authentication for +all of the following OpenAgri microservices. +This application is dockerised, making it easy to deploy and manage using Docker and Docker Compose. +- **Irrigation Management (IRM)** +- **Weather Data (WD)** +- **Farm Calendar (FC)** +- **Reporting (RP)** +- **Pest and Disease Management (PDM)** +## Features -## Getting started +- **Centralised Authentication:** Manage authentication across multiple microservices. +- **Validation Services:** Provides validation mechanisms to ensure data integrity. +- **Dockerised Deployment:** Utilise Docker for simplified deployment and management. +- **MySQL Database:** Utilises MySQL as the database backend, with phpMyAdmin for database management. +- GateKeeper is responsible solely for authentication and does not provide any additional features. -To make it easy for you to get started with GitLab, here's a list of recommended next steps. +## Prerequisites -Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)! +- Docker +- Docker Compose -## Add your files +## Getting Started -- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files -- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command: +### Clone the Repository +```bash +git clone https://github.com/openagri-eu/GateKeeper.git ``` -cd existing_repo -git remote add origin https://gitlab.com/openagri1/gatekeeper.git -git branch -M main -git push -uf origin main -``` - -## Integrate with your tools - -- [ ] [Set up project integrations](https://gitlab.com/openagri1/gatekeeper/-/settings/integrations) - -## Collaborate with your team - -- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/) -- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html) -- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically) -- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/) -- [ ] [Set auto-merge](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html) - -## Test and Deploy - -Use the built-in continuous integration in GitLab. - -- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html) -- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/) -- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html) -- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/) -- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html) - -*** - -# Editing this README - -When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template. - -## Suggestions for a good README - -Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information. - -## Name -Choose a self-explaining name for your project. - -## Description -Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors. -## Badges -On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge. +## Integration with Gatekeeper + +Integrating with Gatekeeper is simple. It just means that your service can communicate with GK, use its endpoints, and handle authentication. + +### What integration with GK really means: + +- **Call GK’s API** – Your service should be able to send requests to GK’s endpoints. +- **Log in** – If a user provides valid credentials, GK will return an `access_token` and `refresh_token`. +- **Validate tokens** – If your service needs to check if a token is still valid, you can ask GK. +- **Refresh tokens** – If an `access_token` expires, your service can use the `refresh_token` to get a new one. +- **Log out** – If a user wants to log out, your service can call GK’s `/logout/` endpoint to invalidate their session. + +That’s it! No complex setup. No extra steps. Just make sure your service can send requests to GK and handle the tokens properly. If you can do that, you’re fully integrated with GK. + +## Sample Integration Flow + +1. Services authenticate using the API endpoints provided by GK. +2. If the login is successful, the response contains: + + ```json + { + "success": true, + "access": "access_token", + "refresh": "refresh_token" + } + ``` + +3. Token validity is predefined, and each service must handle token expiration by refreshing the access token. +4. A service is considered successfully integrated with GK once it can log in via `/api/login/` and receive authentication tokens. + +## Further Documentation + +### Configure Environment Variables + +Copy the `.env.sample` file into a new file called `.env`. +Then change its content accordingly. Below is the full list of configuration variables and their purposes. + +| Variable | Description | Example / Default | +|-----------|--------------|------------------| +| `DB_USER` | Database username. | `root` | +| `DB_PASS` | Database password. | `mypassword` | +| `DB_HOST` | Database host address. | `localhost` | +| `DB_PORT` | Database port number. | `3306` | +| `DB_NAME` | Database name. | `gatekeeper_db` | +| `DATABASE_URL` | Alternative database connection string (used instead of separate DB variables). | `mysql://user:password@host:port/dbname` | +| `DJANGO_SECRET_KEY` | Django’s secret key used for cryptographic signing. **Must be set in production.** | `your-secret-key` | +| `DJANGO_DEBUG` | Enables or disables Django debug mode. | `True` or `False` (default: `False`) | +| `DJANGO_PORT` | Port Django runs on locally. | `8001` | +| `EXTRA_ALLOWED_HOSTS` | Comma-separated list of additional allowed hosts. | `example.com,api.example.com` | +| `JWT_SIGNING_KEY` | Key used for signing JWT tokens for authentication. | `your-jwt-signing-key` | +| `JWT_ALG` | Algorithm used for JWT signing. | `HS256` | +| `JWT_ACCESS_TOKEN_MINUTES` | Access token expiration time (in minutes). | `60` | +| `JWT_REFRESH_TOKEN_DAYS` | Refresh token expiration time (in days). | `30` | +| `FARM_CALENDAR_API` | Base API URL for the Farm Calendar service. | `http://127.0.0.1:8002/api/` | +| `FARM_CALENDAR_POST_AUTH` | Post-authentication endpoint for the Farm Calendar service. | `http://127.0.0.1:8002/post_auth/` | +| `IRM_API` | Base API URL for the Irrigation Management service. | `http://127.0.0.1:5173/api/` | +| `IRM_POST_AUTH` | Post-authentication endpoint for the Irrigation Management service. | `http://127.0.0.1:5173/post_auth/` | +| `INTERNAL_GK_URL` | Internal Gatekeeper URL used by internal services. | `http://gatekeeper:8001/` | +| `GATEKEEPER_URL` | External/public URL for the Gatekeeper service. | `https://example.com/gatekeeper/` | +| `FARM_CALENDAR` | Optional reference or identifier for the Farm Calendar service. | `FarmCalendar` | +| `IRM` | Optional reference or identifier for the Irrigation Management service. | `IrrigationManagement` | +| `SUPERUSER_USERNAME` | Used to create the admin username during initial setup. | `admin` | +| `SUPERUSER_EMAIL` | Email address of the admin user during initial setup. | `admin@example.com` | +| `SUPERUSER_PASSWORD` | Password for the admin user during initial setup. | `admin123` | + +> **Note:** +> - Variables marked with `*` in older versions (like `FARM_CALENDAR_API` and `FARM_CALENDAR_POST_AUTH`) are still manually configured but may later be automatically provided by each registered service. +> - Always keep `DJANGO_SECRET_KEY` and `JWT_SIGNING_KEY` private and never commit them to source control. + +### Running +To start up the container with the OpenAgri Gatekeeper service, you can run the command: -## Visuals -Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method. - -## Installation -Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection. - -## Usage -Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README. - -## Support -Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc. - -## Roadmap -If you have ideas for releases in the future, it is a good idea to list them in the README. - -## Contributing -State if you are open to contributions and what your requirements are for accepting them. - -For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self. +``` +$ docker compose up -d +``` +this will start both the DB (postgres) and the Gatekeeper service containers. -You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser. +To access the service on the web, you can go to: +`http://localhost:8001/login/` +Where you'll be able to login using you admin account (as defined in you .env configurations). -## Authors and acknowledgment -Show your appreciation to those who have contributed to the project. +### Stopping +To stop the containers running, run the command: +``` +$ docker compose stop +``` +Afterwards you may resume them using: +``` +$ docker compose start +``` -## License -For open source projects, say how it is licensed. +### Removing containers +To stop, and remove existing containers, **including any data stored in the database** in can run: +``` +$ docker compose down +``` -## Project status -If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers. +# License +This project is distributed with the EUPL 1.2v. See the LICENSE file for more details. diff --git a/aegis/admin.py b/aegis/admin.py index f058774..0022ec1 100644 --- a/aegis/admin.py +++ b/aegis/admin.py @@ -1,59 +1,400 @@ -from django.contrib import admin +from django.contrib import admin, messages from django.contrib.auth.admin import UserAdmin +from django.utils.html import format_html +from django.utils import timezone -from allauth.account.models import EmailAddress, EmailConfirmation +from .models import (DefaultAuthUserExtend, ServiceMaster, PermissionMaster, CustomPermissions, GroupCustomPermissions, + RegisteredService, BlacklistedAccess, BlacklistedRefresh, RequestLog, GroupServiceAccess) -from .models import DefaultAuthUserExtend +class StatusBadgeMixin: + """ + Renders a coloured pill for a 'status' IntegerField with choices like: + 1=Active, 0=Inactive, 2=Deleted + """ + STATUS_COLOURS = {1: "#16a34a", 0: "#ef4444", 2: "#6b7280"} # green/red/grey + + @admin.display(description="Status") + def status_badge(self, obj): + value = getattr(obj, "status", None) + labels = dict(getattr(obj, "STATUS_CHOICES", [])) if hasattr(obj, "STATUS_CHOICES") else { + 1: "Active", 0: "Inactive", 2: "Deleted" + } + return format_html( + '{text}', + bg=self.STATUS_COLOURS.get(value, "#6b7280"), + text=labels.get(value, value), + ) + +class BoolBadgeMixin: + """Show boolean values as coloured badges.""" + @staticmethod + def bool_badge(value: bool, true_label="Yes", false_label="No"): + colour = "#16a34a" if value else "#ef4444" + label = true_label if value else false_label + return format_html( + '{text}', + bg=colour, + text=label, + ) + +class ActivateDeactivateActions(admin.ModelAdmin): + """Bulk activate/deactivate by setting status=1/0.""" + @admin.action(description="Mark selected as Active") + def mark_active(self, request, queryset): + updated = queryset.update(status=1, deleted_at=None) + self.message_user(request, f"{updated} record(s) marked Active.", level=messages.SUCCESS) + + @admin.action(description="Mark selected as Inactive") + def mark_inactive(self, request, queryset): + updated = queryset.update(status=0) + self.message_user(request, f"{updated} record(s) marked Inactive.", level=messages.WARNING) + + +class SoftDeleteActions(admin.ModelAdmin): + """Soft delete / restore using BaseModel fields.""" + @admin.action(description="Soft delete selected") + def soft_delete_selected(self, request, queryset): + updated = queryset.exclude(status=2).update(status=2, deleted_at=timezone.now()) + self.message_user(request, f"{updated} record(s) soft-deleted.", level=messages.WARNING) + + @admin.action(description="Restore selected (set Active)") + def restore_selected(self, request, queryset): + updated = queryset.update(status=1, deleted_at=None) + self.message_user(request, f"{updated} record(s) restored.", level=messages.SUCCESS) + + +class CSVExportMixin: + """ + Minimal CSV export. In each admin class set: + EXPORT_FIELDS = ("field1", "related.field2", ...) + """ + EXPORT_FIELDS: tuple[str, ...] = () + + @admin.action(description="Export selected to CSV") + def export_as_csv(self, request, queryset): + import csv + from django.http import HttpResponse + + if not self.EXPORT_FIELDS: + self.message_user(request, "No EXPORT_FIELDS defined.", level=messages.ERROR) + return + + response = HttpResponse(content_type="text/csv") + response["Content-Disposition"] = f'attachment; filename="{queryset.model.__name__.lower()}_export.csv"' + writer = csv.writer(response) + writer.writerow(self.EXPORT_FIELDS) + + for obj in queryset: + row = [] + for path in self.EXPORT_FIELDS: + value = obj + for part in path.split("."): + value = getattr(value, part, "") + if callable(value): + value = value() + row.append(value) + writer.writerow(row) + return response @admin.register(DefaultAuthUserExtend) -class DefaultAuthUserExtendAdmin(UserAdmin): - # Specify the fields to be displayed in the user list view within the admin panel. - list_display = ('email', 'first_name', 'last_name', 'uuid', 'is_active', 'date_joined', 'last_login', - 'is_email_verified', 'is_email_confirmed') - - # Custom method to display whether the user's email is verified, based on the related EmailAddress entry. - def is_email_verified(self, obj): - return EmailAddress.objects.filter(user=obj, verified=True).exists() - - is_email_verified.short_description = 'Email Verified' - is_email_verified.boolean = True - - # Custom method to display whether an email confirmation has been sent for the user. - def is_email_confirmed(self, obj): - email_confirmation = EmailConfirmation.objects.filter(email_address__user=obj, sent__isnull=False).first() - if email_confirmation: - # Use Django's date formatting (same as last_login) utilities to present the date in a readable format - formatted_date = format(email_confirmation.sent, 'N j, Y, P') - return formatted_date - return 'Not sent' - - is_email_confirmed.short_description = 'Email Confirmation Sent' - - # Specify fields that should have a searchable multiple selection interface in the admin form. - filter_horizontal = ('user_permissions', 'groups') - - # Customize the form fields displayed when viewing or editing a user, adding a new 'Assign projects' section. - fieldsets = UserAdmin.fieldsets + ( - ('Assign projects', { - 'fields': ('projects',), - 'description': 'Optional: Assign project(s) to the user.', - }), - ) +class DefaultAuthUserExtendAdmin(UserAdmin, CSVExportMixin, StatusBadgeMixin, SoftDeleteActions, ActivateDeactivateActions): + """ + Polished user admin for DefaultAuthUserExtend (inherits BaseModel): + - Status badge, soft-delete/restore, activate/deactivate + - CSV export + - Self-edit safety + """ + list_display = ('email', 'first_name', 'last_name', 'uuid', 'status_badge', 'date_joined', 'last_login') + list_display_links = ('email',) + search_fields = ('email', 'first_name', 'last_name', 'username', 'uuid') + list_filter = ('status', 'is_active', 'is_staff', 'is_superuser', 'date_joined', 'last_login') + ordering = ('email',) + date_hierarchy = 'date_joined' + list_per_page = 50 + + # System fields read-only; deleted_at set via soft delete action + readonly_fields = ('deleted_at', 'created_at', 'updated_at') + fieldsets = UserAdmin.fieldsets + + actions = ("mark_active", "mark_inactive", "soft_delete_selected", "restore_selected", "export_as_csv") + EXPORT_FIELDS = ("email", "first_name", "last_name", "username", + "uuid", "status", "is_active", "is_staff", "is_superuser", + "date_joined", "last_login", "created_at", "updated_at", "deleted_at") + + def get_fieldsets(self, request, obj=None): + base = super().get_fieldsets(request, obj) + cleaned = [] + for name, opts in base: + opts = dict(opts) + fields = opts.get('fields', ()) + if isinstance(fields, (list, tuple)): + fields = tuple(f for f in fields if f != 'user_permissions') + opts['fields'] = fields + cleaned.append((name, opts)) + # Append a lifecycle section for BaseModel fields (display only) + cleaned.append(( + "Lifecycle", + {"fields": ("status", "deleted_at", "created_at", "updated_at")} + )) + return tuple(cleaned) - # Define which fields should be read-only in the admin form based on the current request and object being viewed. def get_readonly_fields(self, request, obj=None): - # If a user is editing their own profile, restrict them from changing sensitive fields. + base = super().get_readonly_fields(request, obj) + ro = set(base) | {"deleted_at", "created_at", "updated_at"} if obj is not None and obj == request.user: - return 'email', 'username', 'groups', 'user_permissions' - # For superusers and staff (or other users with the permission to change user models) - # return an empty tuple or any fields that should always be read-only - # Otherwise, no fields are read-only unless specified here. - return () + ro |= {"email", "username", "groups", "user_permissions"} + return tuple(sorted(ro)) + + # Remove hard delete (nudge admins to soft-delete) + def get_actions(self, request): + actions = super().get_actions(request) + actions.pop("delete_selected", None) + return actions + + # Show all (including deleted); default manager already does that + def get_queryset(self, request): + qs = super().get_queryset(request) + return qs.select_related() + + +@admin.register(ServiceMaster) +class ServiceMasterAdmin(StatusBadgeMixin, SoftDeleteActions, ActivateDeactivateActions, CSVExportMixin, admin.ModelAdmin): + list_display = ("service_code", "service_name", "status_badge", "updated_at") + list_display_links = ("service_code", "service_name") + list_filter = ("status", "updated_at", "created_at") + search_fields = ("service_code", "service_name", "service_description") + ordering = ("service_code",) + date_hierarchy = "created_at" + list_per_page = 50 + + prepopulated_fields = {"service_code": ("service_name",)} + + readonly_fields = ("deleted_at", "created_at", "updated_at") + actions = ("mark_active", "mark_inactive", "soft_delete_selected", "restore_selected", "export_as_csv") + EXPORT_FIELDS = ("service_code", "service_name", "service_description", "status", "created_at", "updated_at", "deleted_at") + + # Remove hard delete + def get_actions(self, request): + actions = super().get_actions(request) + actions.pop("delete_selected", None) + return actions + + +@admin.register(PermissionMaster) +class PermissionMasterAdmin(StatusBadgeMixin, SoftDeleteActions, ActivateDeactivateActions, CSVExportMixin, admin.ModelAdmin): + list_display = ("id", "service_code", "action", "virtual_badge", "status_badge", "updated_at") + list_filter = ("action", "is_virtual", "status", "updated_at", "created_at") + search_fields = ("service__service_code", "service__service_name", "action") + autocomplete_fields = ("service",) + ordering = ("service__service_code", "action") + list_per_page = 50 + date_hierarchy = "created_at" + + readonly_fields = ("deleted_at", "created_at", "updated_at") + actions = ("mark_active", "mark_inactive", "soft_delete_selected", "restore_selected", "export_as_csv") + EXPORT_FIELDS = ("id", "service.service_code", "action", "is_virtual", "status", "created_at", "updated_at", "deleted_at") + + @admin.display(description="Service") + def service_code(self, obj): + return getattr(obj.service, "service_code", "") + + @admin.display(description="Virtual") + def virtual_badge(self, obj): + return BoolBadgeMixin.bool_badge(bool(obj.is_virtual), true_label="Virtual", false_label="Real") + + def get_queryset(self, request): + qs = super().get_queryset(request) + return qs.select_related("service") + + def get_actions(self, request): + actions = super().get_actions(request) + actions.pop("delete_selected", None) + return actions + + +@admin.register(CustomPermissions) +class CustomPermissionsAdmin(StatusBadgeMixin, SoftDeleteActions, ActivateDeactivateActions, CSVExportMixin, admin.ModelAdmin): + list_display = ("id", "user_email", "permission_display", "status_badge", "updated_at") + list_filter = ("status", "updated_at", "created_at") + search_fields = ( + "user__email", "user__username", + "permission_name__service__service_code", "permission_name__action", + "permission_name__service__service_name", + ) + autocomplete_fields = ("user", "permission_name") + ordering = ("-updated_at",) + list_per_page = 50 + date_hierarchy = "created_at" + + readonly_fields = ("deleted_at", "created_at", "updated_at") + actions = ("mark_active", "mark_inactive", "soft_delete_selected", "restore_selected", "export_as_csv") + EXPORT_FIELDS = ("id", "user.email", "user.username", "permission_name.service.service_code", + "permission_name.action", "status", "created_at", "updated_at", "deleted_at") + + @admin.display(description="User") + def user_email(self, obj): + return getattr(obj.user, "email", "") or getattr(obj.user, "username", "") + + @admin.display(description="Permission") + def permission_display(self, obj): + # Relies on __str__ in PermissionMaster; otherwise build a custom string + return str(obj.permission_name) + + def get_queryset(self, request): + qs = super().get_queryset(request) + return qs.select_related("user", "permission_name", "permission_name__service") + + def get_actions(self, request): + actions = super().get_actions(request) + actions.pop("delete_selected", None) + return actions + + +@admin.register(GroupCustomPermissions) +class GroupCustomPermissionsAdmin(StatusBadgeMixin, SoftDeleteActions, ActivateDeactivateActions, CSVExportMixin, admin.ModelAdmin): + list_display = ("group_name", "permission_count", "status_badge", "updated_at") + list_display_links = ("group_name",) + list_filter = ("status", "updated_at", "created_at") + search_fields = ("group__name", "permission_names__service__service_code", "permission_names__action") + autocomplete_fields = ("group",) + filter_horizontal = ("permission_names",) + ordering = ("group__name",) + list_per_page = 50 + date_hierarchy = "created_at" + + readonly_fields = ("deleted_at", "created_at", "updated_at") + actions = ("mark_active", "mark_inactive", "soft_delete_selected", "restore_selected", "export_as_csv") + EXPORT_FIELDS = ("group.name", "status", "created_at", "updated_at", "deleted_at") + + def group_name(self, obj): + return obj.group.name + group_name.short_description = "Group" + group_name.admin_order_field = "group__name" + + @admin.display(description="Permissions") + def permission_count(self, obj): + return obj.permission_names.count() + + def get_queryset(self, request): + # Use prefetch_related for the M2M to avoid N+1 on permission_count view clicks + qs = super().get_queryset(request) + return qs.select_related("group").prefetch_related("permission_names") + + def get_actions(self, request): + actions = super().get_actions(request) + actions.pop("delete_selected", None) + return actions + + +@admin.register(RegisteredService) +class RegisteredServiceAdmin(StatusBadgeMixin, SoftDeleteActions, ActivateDeactivateActions, CSVExportMixin, admin.ModelAdmin): + list_display = ("service_name", "endpoint", "base_url", "status_badge", "updated_at") + list_display_links = ("service_name",) + search_fields = ("service_name", "endpoint", "base_url", "service_url", "params", "comments") + list_filter = ("status", "updated_at", "created_at") + ordering = ("service_name",) + date_hierarchy = "created_at" + list_per_page = 50 + + readonly_fields = ("deleted_at", "created_at", "updated_at") + actions = ("mark_active", "mark_inactive", "soft_delete_selected", "restore_selected", "export_as_csv") + EXPORT_FIELDS = ("service_name", "base_url", "endpoint", "methods", "params", "service_url", + "status", "created_at", "updated_at", "deleted_at") + +@admin.register(BlacklistedRefresh) +class BlacklistedRefreshAdmin(CSVExportMixin, admin.ModelAdmin): + list_display = ("rjti", "expires_at", "blacklisted_at", "expired_badge", "status_badge") + # Note: BlacklistedRefresh inherits BaseModel → has status/deleted_at; keep it simple here. + list_filter = ("expires_at", "blacklisted_at", "status") + search_fields = ("rjti",) + date_hierarchy = "blacklisted_at" + ordering = ("-blacklisted_at",) + list_per_page = 50 + readonly_fields = ("blacklisted_at", "created_at", "updated_at", "deleted_at") + EXPORT_FIELDS = ("rjti", "expires_at", "blacklisted_at", "status", "created_at", "updated_at", "deleted_at") + + @admin.display(description="Expired") + def expired_badge(self, obj): + return BoolBadgeMixin.bool_badge(obj.is_expired, true_label="Expired", false_label="Valid") + + @admin.display(description="Status") + def status_badge(self, obj): + colour = "#6b7280" + return format_html('{}', + colour, "—") + + +@admin.register(BlacklistedAccess) +class BlacklistedAccessAdmin(CSVExportMixin, admin.ModelAdmin): + list_display = ("jti", "expires_at", "blacklisted_at", "expired_badge", "status_badge") + list_filter = ("expires_at", "blacklisted_at", "status") + search_fields = ("jti",) + date_hierarchy = "blacklisted_at" + ordering = ("-blacklisted_at",) + list_per_page = 50 + readonly_fields = ("blacklisted_at", "created_at", "updated_at", "deleted_at") + EXPORT_FIELDS = ("jti", "expires_at", "blacklisted_at", "status", "created_at", "updated_at", "deleted_at") + + @admin.display(description="Expired") + def expired_badge(self, obj): + return BoolBadgeMixin.bool_badge(obj.is_expired, true_label="Expired", false_label="Valid") + + @admin.display(description="Status") + def status_badge(self, obj): + colour = "#6b7280" + return format_html('{}', + colour, "—") + +@admin.register(GroupServiceAccess) +class GroupServiceAccessAdmin(StatusBadgeMixin, SoftDeleteActions, ActivateDeactivateActions, CSVExportMixin, admin.ModelAdmin): + list_display = ("group_name", "service_code", "status_badge", "updated_at") + list_filter = ("status", "updated_at", "created_at", "group") + search_fields = ("group__name", "service__service_code", "service__service_name") + autocomplete_fields = ("group", "service") + ordering = ("group__name", "service__service_code") + list_per_page = 50 + date_hierarchy = "created_at" + readonly_fields = ("deleted_at", "created_at", "updated_at") + actions = ("mark_active", "mark_inactive", "soft_delete_selected", "restore_selected", "export_as_csv") + EXPORT_FIELDS = ("group.name", "service.service_code", "service.service_name", + "status", "created_at", "updated_at", "deleted_at") + + @admin.display(description="Group") + def group_name(self, obj): + return obj.group.name + + @admin.display(description="Service") + def service_code(self, obj): + return obj.service.service_code - # Customize the queryset for the list view, which determines which users are displayed based on the request. def get_queryset(self, request): qs = super().get_queryset(request) - if request.user.is_superuser: - return qs # Superuser can see all users + return qs.select_related("group", "service") + + def get_actions(self, request): + actions = super().get_actions(request) + actions.pop("delete_selected", None) + return actions + + +@admin.register(RequestLog) +class RequestLogAdmin(CSVExportMixin, admin.ModelAdmin): + list_display = ("timestamp", "user_display", "ip_address", "method", "path", "response_status") + list_filter = ("method", "response_status", "timestamp") + search_fields = ("user__email", "ip_address", "path", "user_agent", "query_string", "body") + date_hierarchy = "timestamp" + ordering = ("-timestamp",) + list_per_page = 50 + # Important for log integrity: + readonly_fields = tuple(f.name for f in RequestLog._meta.fields) + + EXPORT_FIELDS = ("timestamp", "user.email", "ip_address", "method", "path", "response_status") + + @admin.display(description="User") + def user_display(self, obj): + return getattr(obj.user, "email", None) or "-" +admin.site.site_header = "OpenAgri GateKeeper Admin" +admin.site.site_title = "OpenAgri Admin" +admin.site.index_title = "Administration" diff --git a/aegis/authentication.py b/aegis/authentication.py new file mode 100644 index 0000000..503d6dc --- /dev/null +++ b/aegis/authentication.py @@ -0,0 +1,21 @@ +# aegis/authentication.py + +from rest_framework_simplejwt.authentication import JWTAuthentication +from rest_framework_simplejwt.exceptions import InvalidToken +from aegis.models import BlacklistedRefresh, BlacklistedAccess + +class JWTAuthenticationWithDenylist(JWTAuthentication): + def get_validated_token(self, raw_token): + token = super().get_validated_token(raw_token) # validates signature/exp etc. + + # Specific access token revoked? + jti = token.get("jti") + if jti and BlacklistedAccess.objects.filter(jti=jti).exists(): + raise InvalidToken("Access token has been revoked.") + + # Parent refresh revoked? + rjti = token.get("rjti") + if rjti and BlacklistedRefresh.objects.filter(rjti=rjti).exists(): + raise InvalidToken("Access token has been revoked (parent refresh blacklisted).") + + return token diff --git a/aegis/forms.py b/aegis/forms.py new file mode 100644 index 0000000..8e0a11f --- /dev/null +++ b/aegis/forms.py @@ -0,0 +1,125 @@ +from django import forms +from django.contrib.auth.validators import UnicodeUsernameValidator +from django.utils.translation import gettext_lazy as _ + +from .models import DefaultAuthUserExtend +from .utils.validators import validate_password + + +class UserRegistrationForm(forms.ModelForm): + first_name = forms.CharField( + widget=forms.TextInput(attrs={ + "class": "form-floating form-floating-custom mb-3 textinput form-control", + "placeholder": "First Name (Optional)" + }), + label="", + max_length=150, + required=False, + ) + + last_name = forms.CharField( + widget=forms.TextInput(attrs={ + "class": "form-floating form-floating-custom mb-3 textinput form-control", + "placeholder": "Last Name (Optional)" + }), + label="", + max_length=150, + required=False, + ) + + username = forms.CharField( + widget=forms.TextInput(attrs={ + "class": "form-floating form-floating-custom mb-3 textinput form-control", + "placeholder": "Username (Required)" + }), + label="", + help_text="", + max_length=150, + validators=[UnicodeUsernameValidator()], + error_messages={ + "unique": _("A user with that username already exists."), + }, + ) + + email = forms.EmailField( + widget=forms.EmailInput(attrs={ + "class": "form-floating form-floating-custom mb-3 emailinput form-control", + "placeholder": "Email (Required)" + }), + label="", + ) + + password = forms.CharField( + widget=forms.PasswordInput(attrs={ + "class": "form-floating form-floating-custom mb-3 passwordinput form-control", + "placeholder": "Password (Required)" + }), + validators=[validate_password], + label="", + help_text="", + ) + + # service_name = forms.ChoiceField( + # widget=forms.Select(attrs={ + # "class": "form-floating form-floating-custom mb-3 select form-control", + # }), + # choices=[('', 'Please select service type (Required)')] + DefaultAuthUserExtend.SERVICE_NAME_CHOICES, + # label="", + # required=True, + # ) + + class Meta: + model = DefaultAuthUserExtend + fields = ["first_name", "last_name", "username", "email", "password"] + + def clean_email(self): + email = self.cleaned_data.get("email") + if DefaultAuthUserExtend.objects.filter(email=email).exists(): + raise forms.ValidationError("This email is already registered.") + return email + + def clean_password(self): + password = self.cleaned_data.get("password") + + # Enforce minimum length of 6 characters + if len(password) < 6: + raise forms.ValidationError("Password must be at least 6 characters long.") + + # Uncomment the following validations when needed: + # if not any(char.isdigit() for char in password): + # raise forms.ValidationError("Password must contain at least one digit.") + # if not any(char.isupper() for char in password): + # raise forms.ValidationError("Password must contain at least one uppercase letter.") + # if not any(char in "!@#$%^&*()_+-=[]{}|;:'\",.<>?/`~" for char in password): + # raise forms.ValidationError("Password must contain at least one special character.") + + return password + + +class UserLoginForm(forms.Form): + username = forms.CharField( + widget=forms.TextInput(attrs={ + "class": "form-floating form-floating-custom mb-3 textinput form-control", + "placeholder": "Username or Email (Required)" + }), + label="", + help_text="", + max_length=150, + ) + + password = forms.CharField( + widget=forms.PasswordInput(attrs={ + "class": "form-floating form-floating-custom mb-3 passwordinput form-control", + "placeholder": "Password (Required)" + }), + label="" + ) + + # service_name = forms.ChoiceField( + # widget=forms.Select(attrs={ + # "class": "form-floating form-floating-custom mb-3 select form-control", + # }), + # choices=[('', 'Please select service type (Required)')] + DefaultAuthUserExtend.SERVICE_NAME_CHOICES, + # label="", + # required=True, + # ) diff --git a/aegis/management/commands/__init__.py b/aegis/management/commands/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/aegis/management/commands/check_api_health.py b/aegis/management/commands/check_api_health.py new file mode 100644 index 0000000..0851a99 --- /dev/null +++ b/aegis/management/commands/check_api_health.py @@ -0,0 +1,26 @@ +# aegis/management/commands/check_api_health.py + +from django.core.management.base import BaseCommand +import requests +import logging + +logger = logging.getLogger('aegis') + +class Command(BaseCommand): + help = 'Check health status of services' + + def handle(self, *args, **kwargs): + services = { + 'Weather Data': "http://weather_data_service/api/health", + 'Farm Calendar': "http://farm_calendar_service/api/health" + } + + for service_name, url in services.items(): + try: + response = requests.get(url) + if response.status_code == 200: + logger.info(f"{service_name} is healthy") + else: + logger.warning(f"{service_name} is not healthy: {response.status_code}") + except requests.exceptions.RequestException as e: + logger.error(f"{service_name} health check failed: {e}") diff --git a/aegis/management/commands/generate_keys.py b/aegis/management/commands/generate_keys.py new file mode 100644 index 0000000..3a76abb --- /dev/null +++ b/aegis/management/commands/generate_keys.py @@ -0,0 +1,55 @@ +from django.conf import settings +from django.core.management.base import BaseCommand +from cryptography.hazmat.primitives.asymmetric import ec +from cryptography.hazmat.primitives import serialization + + +class Command(BaseCommand): + help = "Generate ECC key pair and save them in the 'keys' folder at the project root." + + def handle(self, *args, **kwargs): + # Use BASE_DIR from Django settings to locate the project root + keys_folder = settings.BASE_DIR / "keys" + private_key_path = keys_folder / "private_key.pem" + public_key_path = keys_folder / "public_key.pem" + log_file = keys_folder / "key_generation.log" + + # Ensure the keys folder exists + if not keys_folder.exists(): + keys_folder.mkdir() + self.stdout.write(f"Created folder: {keys_folder}") + + # Check if keys already exist + if private_key_path.exists() and public_key_path.exists(): + self.stdout.write("Keys already exist. No action taken.") + return + + # Generate private key + private_key = ec.generate_private_key(ec.SECP256R1()) + private_key_bytes = private_key.private_bytes( + encoding=serialization.Encoding.PEM, + format=serialization.PrivateFormat.TraditionalOpenSSL, + encryption_algorithm=serialization.NoEncryption() + ) + + # Save private key to file + with open(private_key_path, "wb") as private_file: + private_file.write(private_key_bytes) + self.stdout.write(f"Private key saved to: {private_key_path}") + + # Generate public key + public_key = private_key.public_key() + public_key_bytes = public_key.public_bytes( + encoding=serialization.Encoding.PEM, + format=serialization.PublicFormat.SubjectPublicKeyInfo + ) + + # Save public key to file + with open(public_key_path, "wb") as public_file: + public_file.write(public_key_bytes) + self.stdout.write(f"Public key saved to: {public_key_path}") + + # Log the key generation + with open(log_file, "a") as log: + log.write("Keys generated successfully.\n") + self.stdout.write(f"Log entry added to: {log_file}") diff --git a/aegis/management/commands/initial_setup.py b/aegis/management/commands/initial_setup.py new file mode 100644 index 0000000..cb50d54 --- /dev/null +++ b/aegis/management/commands/initial_setup.py @@ -0,0 +1,94 @@ +import os + +from django.core.management import call_command +from django.core.management.base import BaseCommand +from django.db import connections, connection +from django.db.utils import OperationalError +from django.db.migrations.executor import MigrationExecutor +from django.db.migrations.recorder import MigrationRecorder +from django.contrib.auth import get_user_model + + +# Make sure migrations folder inside backend app contains an empty __init__.py file + + +class Command(BaseCommand): + help = "Initial setup command" + + def check_migration_applied(self): + """Check if migrations have been applied to the database.""" + try: + recorder = MigrationRecorder(connections['default']) + applied_migrations = recorder.applied_migrations() + return len(applied_migrations) > 0 + except OperationalError: + # Handle cases where the database isn't initialised yet + self.stdout.write(self.style.WARNING('Database not initialised. No migrations applied yet.')) + return False + + def check_table_exists(self, table_name): + """Check if a specific table exists (MySQL-specific).""" + try: + with connection.cursor() as cursor: + cursor.execute(f"SHOW TABLES LIKE '{table_name}'") + return cursor.fetchone() is not None + except Exception as e: + self.stdout.write(self.style.ERROR(f'Error checking table existence: {str(e)}')) + return False + + def check_pending_migrations(self): + for connection in connections.all(): + executor = MigrationExecutor(connection) + targets = executor.loader.graph.leaf_nodes() + recorder = MigrationRecorder(connection) + applied = recorder.applied_migrations() + + unapplied = [migration for migration in targets if migration not in applied] + + return len(unapplied) > 0 + + def handle(self, *args, **options): + self.stdout.write(self.style.SUCCESS('Checking for migration changes...')) + + # Check if migrations are already applied + if not self.check_migration_applied(): + self.stdout.write(self.style.WARNING('No migrations found. Running migrations...')) + call_command('makemigrations') + call_command('migrate') + elif self.check_pending_migrations(): + self.stdout.write(self.style.SUCCESS('Pending migrations detected, running migrations...')) + call_command('migrate') + else: + self.stdout.write(self.style.SUCCESS('Migrations already applied. Skipping migration step.')) + + + # Check if essential tables exist + if not self.check_table_exists('auth_user'): + self.stdout.write(self.style.WARNING('auth_user table not found. Running migrations...')) + call_command('migrate') + + # Collect static files only if not already collected + static_dir = os.path.join(os.getcwd(), 'staticfiles') + if not os.path.exists(static_dir) or not os.listdir(static_dir): + self.stdout.write(self.style.SUCCESS('Collecting static files...')) + call_command('collectstatic', '--noinput') + else: + self.stdout.write(self.style.SUCCESS('Static files already collected.')) + + self.stdout.write(self.style.SUCCESS('Checking for superuser...')) + user = get_user_model() + + superuser_username = os.getenv('SUPERUSER_USERNAME', 'pranav') + superuser_email = os.getenv('SUPERUSER_EMAIL', 'p.bapat@maastrichtuniversity.nl') + superuser_password = os.getenv('SUPERUSER_PASSWORD', '/i4KNmz/?_x@(Nb') + + if not user.objects.filter(username=superuser_username).exists(): + self.stdout.write(self.style.WARNING('Superuser does not exist. Creating one...')) + user.objects.create_superuser( + username=superuser_username, + email=superuser_email, + password=superuser_password + ) + self.stdout.write(self.style.SUCCESS('Superuser successfully created.')) + else: + self.stdout.write(self.style.SUCCESS('Superuser already exists.')) \ No newline at end of file diff --git a/aegis/migrations/0001_initial.py b/aegis/migrations/0001_initial.py index ca7aa3d..ca6fb96 100644 --- a/aegis/migrations/0001_initial.py +++ b/aegis/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.0.4 on 2024-04-17 19:29 +# Generated by Django 5.1.3 on 2025-01-09 16:30 import django.contrib.auth.models import django.contrib.auth.validators @@ -20,6 +20,28 @@ class Migration(migrations.Migration): ] operations = [ + migrations.CreateModel( + name='RegisteredService', + fields=[ + ('status', models.SmallIntegerField(choices=[(1, 'Active'), (0, 'Inactive'), (2, 'Deleted')], default=1, verbose_name='Status')), + ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='Deleted At')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')), + ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')), + ('id', models.AutoField(db_column='id', db_index=True, editable=False, primary_key=True, serialize=False, unique=True, verbose_name='ID')), + ('base_url', models.CharField(default='http://127.0.0.1:8001', max_length=255)), + ('service_name', models.CharField(max_length=100)), + ('endpoint', models.CharField(max_length=255)), + ('methods', models.JSONField()), + ('params', models.TextField(blank=True, help_text="Query parameter templates (e.g., 'lat={}&lon={}').", max_length=100, null=True)), + ('comments', models.TextField(blank=True, null=True)), + ('service_url', models.CharField(blank=True, max_length=500, null=True)), + ], + options={ + 'verbose_name': 'Registered Service', + 'verbose_name_plural': 'Registered Services', + 'db_table': 'registered_services', + }, + ), migrations.CreateModel( name='DefaultAuthUserExtend', fields=[ @@ -33,6 +55,10 @@ class Migration(migrations.Migration): ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), + ('status', models.SmallIntegerField(choices=[(1, 'Active'), (0, 'Inactive'), (2, 'Deleted')], default=1, verbose_name='Status')), + ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='Deleted At')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')), + ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')), ('uuid', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), ('email', models.EmailField(max_length=254, unique=True)), ('contact_no', models.CharField(blank=True, db_index=True, default='', max_length=10, null=True, validators=[django.core.validators.RegexValidator(message='Invalid phone number', regex='^[0-9- ]+$')])), @@ -41,12 +67,64 @@ class Migration(migrations.Migration): ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')), ], options={ + 'verbose_name': 'User Master', + 'verbose_name_plural': 'User Masters', 'db_table': 'auth_user_extend', }, managers=[ ('objects', django.contrib.auth.models.UserManager()), ], ), + migrations.CreateModel( + name='AdminMenuMaster', + fields=[ + ('status', models.SmallIntegerField(choices=[(1, 'Active'), (0, 'Inactive'), (2, 'Deleted')], default=1, verbose_name='Status')), + ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='Deleted At')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')), + ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')), + ('id', models.SmallAutoField(db_column='id', db_index=True, editable=False, primary_key=True, serialize=False, unique=True, verbose_name='ID')), + ('menu_name', models.CharField(max_length=30, unique=True, validators=[django.core.validators.RegexValidator(message='Invalid characters', regex='^[a-zA-Z0-9()\\s]+$')])), + ('menu_icon', models.CharField(blank=True, default='list', max_length=20, null=True, validators=[django.core.validators.RegexValidator(message='Invalid characters', regex='^[a-z0-9-]+$')])), + ('menu_route', models.CharField(blank=True, max_length=30, null=True, validators=[django.core.validators.RegexValidator(message='Invalid characters', regex='^[a-zA-Z0-9\\s-]+$')])), + ('menu_access', models.CharField(blank=True, max_length=30, null=True, validators=[django.core.validators.RegexValidator(message='Invalid characters', regex='^[a-zA-Z0-9\\s-]+$')])), + ('menu_order', models.SmallIntegerField(blank=True, null=True, validators=[django.core.validators.RegexValidator(message='Invalid characters', regex='^[0-9]+$')])), + ('parent_id', models.ForeignKey(blank=True, db_column='parent_id', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='submenus', to='aegis.adminmenumaster')), + ], + options={ + 'verbose_name': 'Admin Menu', + 'verbose_name_plural': 'Admin Menus', + 'db_table': 'admin_menu_master', + }, + ), + migrations.CreateModel( + name='HistoricalAdminMenuMaster', + fields=[ + ('status', models.SmallIntegerField(choices=[(1, 'Active'), (0, 'Inactive'), (2, 'Deleted')], default=1, verbose_name='Status')), + ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='Deleted At')), + ('created_at', models.DateTimeField(blank=True, editable=False, verbose_name='Created At')), + ('updated_at', models.DateTimeField(blank=True, editable=False, verbose_name='Updated At')), + ('id', models.IntegerField(blank=True, db_column='id', db_index=True, editable=False, verbose_name='ID')), + ('menu_name', models.CharField(db_index=True, max_length=30, validators=[django.core.validators.RegexValidator(message='Invalid characters', regex='^[a-zA-Z0-9()\\s]+$')])), + ('menu_icon', models.CharField(blank=True, default='list', max_length=20, null=True, validators=[django.core.validators.RegexValidator(message='Invalid characters', regex='^[a-z0-9-]+$')])), + ('menu_route', models.CharField(blank=True, max_length=30, null=True, validators=[django.core.validators.RegexValidator(message='Invalid characters', regex='^[a-zA-Z0-9\\s-]+$')])), + ('menu_access', models.CharField(blank=True, max_length=30, null=True, validators=[django.core.validators.RegexValidator(message='Invalid characters', regex='^[a-zA-Z0-9\\s-]+$')])), + ('menu_order', models.SmallIntegerField(blank=True, null=True, validators=[django.core.validators.RegexValidator(message='Invalid characters', regex='^[0-9]+$')])), + ('history_id', models.AutoField(primary_key=True, serialize=False)), + ('history_date', models.DateTimeField(db_index=True)), + ('history_change_reason', models.CharField(max_length=100, null=True)), + ('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)), + ('history_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)), + ('parent_id', models.ForeignKey(blank=True, db_column='parent_id', db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='aegis.adminmenumaster')), + ], + options={ + 'verbose_name': 'historical Admin Menu', + 'verbose_name_plural': 'historical Admin Menus', + 'db_table': 'admin_menu_master_history', + 'ordering': ('-history_date', '-history_id'), + 'get_latest_by': ('history_date', 'history_id'), + }, + bases=(simple_history.models.HistoricalChanges, models.Model), + ), migrations.CreateModel( name='HistoricalDefaultAuthUserExtend', fields=[ @@ -60,6 +138,10 @@ class Migration(migrations.Migration): ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), + ('status', models.SmallIntegerField(choices=[(1, 'Active'), (0, 'Inactive'), (2, 'Deleted')], default=1, verbose_name='Status')), + ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='Deleted At')), + ('created_at', models.DateTimeField(blank=True, editable=False, verbose_name='Created At')), + ('updated_at', models.DateTimeField(blank=True, editable=False, verbose_name='Updated At')), ('uuid', models.UUIDField(db_index=True, default=uuid.uuid4, editable=False)), ('email', models.EmailField(db_index=True, max_length=254)), ('contact_no', models.CharField(blank=True, db_index=True, default='', max_length=10, null=True, validators=[django.core.validators.RegexValidator(message='Invalid phone number', regex='^[0-9- ]+$')])), @@ -71,12 +153,116 @@ class Migration(migrations.Migration): ('history_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)), ], options={ - 'verbose_name': 'historical default auth user extend', - 'verbose_name_plural': 'historical default auth user extends', - 'db_table': 'history_auth_user_extend', + 'verbose_name': 'historical User Master', + 'verbose_name_plural': 'historical User Masters', + 'db_table': 'auth_user_extend_history', 'ordering': ('-history_date', '-history_id'), 'get_latest_by': ('history_date', 'history_id'), }, bases=(simple_history.models.HistoricalChanges, models.Model), ), + migrations.CreateModel( + name='HistoricalRegisteredService', + fields=[ + ('status', models.SmallIntegerField(choices=[(1, 'Active'), (0, 'Inactive'), (2, 'Deleted')], default=1, verbose_name='Status')), + ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='Deleted At')), + ('created_at', models.DateTimeField(blank=True, editable=False, verbose_name='Created At')), + ('updated_at', models.DateTimeField(blank=True, editable=False, verbose_name='Updated At')), + ('id', models.IntegerField(blank=True, db_column='id', db_index=True, editable=False, verbose_name='ID')), + ('base_url', models.CharField(default='http://127.0.0.1:8001', max_length=255)), + ('service_name', models.CharField(max_length=100)), + ('endpoint', models.CharField(max_length=255)), + ('methods', models.JSONField()), + ('params', models.TextField(blank=True, help_text="Query parameter templates (e.g., 'lat={}&lon={}').", max_length=100, null=True)), + ('comments', models.TextField(blank=True, null=True)), + ('service_url', models.CharField(blank=True, max_length=500, null=True)), + ('history_id', models.AutoField(primary_key=True, serialize=False)), + ('history_date', models.DateTimeField(db_index=True)), + ('history_change_reason', models.CharField(max_length=100, null=True)), + ('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)), + ('history_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)), + ], + options={ + 'verbose_name': 'historical Registered Service', + 'verbose_name_plural': 'historical Registered Services', + 'db_table': 'registered_services_history', + 'ordering': ('-history_date', '-history_id'), + 'get_latest_by': ('history_date', 'history_id'), + }, + bases=(simple_history.models.HistoricalChanges, models.Model), + ), + migrations.CreateModel( + name='PermissionMaster', + fields=[ + ('status', models.SmallIntegerField(choices=[(1, 'Active'), (0, 'Inactive'), (2, 'Deleted')], default=1, verbose_name='Status')), + ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='Deleted At')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')), + ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')), + ('id', models.AutoField(db_column='id', db_index=True, editable=False, primary_key=True, serialize=False, unique=True, verbose_name='ID')), + ('action', models.CharField(choices=[('add', 'add'), ('edit', 'edit'), ('view', 'view'), ('delete', 'delete')], max_length=20)), + ('is_virtual', models.BooleanField(default=False)), + ('menu', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='aegis.adminmenumaster')), + ], + options={ + 'verbose_name': 'Permission', + 'verbose_name_plural': 'Permissions', + 'db_table': 'permission_master', + 'unique_together': {('menu', 'action')}, + }, + ), + migrations.CreateModel( + name='GroupCustomPermissions', + fields=[ + ('status', models.SmallIntegerField(choices=[(1, 'Active'), (0, 'Inactive'), (2, 'Deleted')], default=1, verbose_name='Status')), + ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='Deleted At')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')), + ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')), + ('id', models.AutoField(db_column='id', db_index=True, editable=False, primary_key=True, serialize=False, unique=True, verbose_name='ID')), + ('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='auth.group')), + ('permission_names', models.ManyToManyField(to='aegis.permissionmaster')), + ], + options={ + 'verbose_name': 'Group Custom Permission', + 'verbose_name_plural': 'Group Custom Permissions', + 'db_table': 'custom_group_permissions', + }, + ), + migrations.CreateModel( + name='RequestLog', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('ip_address', models.CharField(max_length=45)), + ('user_agent', models.TextField()), + ('path', models.CharField(max_length=200)), + ('query_string', models.TextField()), + ('body', models.TextField()), + ('method', models.CharField(max_length=10)), + ('response_status', models.IntegerField()), + ('timestamp', models.DateTimeField(auto_now_add=True)), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)), + ], + options={ + 'verbose_name': 'Activity Log', + 'verbose_name_plural': 'Activity Logs', + 'db_table': 'activity_log', + }, + ), + migrations.CreateModel( + name='CustomPermissions', + fields=[ + ('status', models.SmallIntegerField(choices=[(1, 'Active'), (0, 'Inactive'), (2, 'Deleted')], default=1, verbose_name='Status')), + ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='Deleted At')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')), + ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')), + ('id', models.AutoField(db_column='id', db_index=True, editable=False, primary_key=True, serialize=False, unique=True, verbose_name='ID')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ('permission_name', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='aegis.permissionmaster')), + ], + options={ + 'verbose_name': 'Custom Permission', + 'verbose_name_plural': 'Custom Permissions', + 'db_table': 'custom_permissions', + 'unique_together': {('user', 'permission_name')}, + }, + ), ] diff --git a/aegis/migrations/0002_blacklistedaccess_blacklistedrefresh.py b/aegis/migrations/0002_blacklistedaccess_blacklistedrefresh.py new file mode 100644 index 0000000..46faf77 --- /dev/null +++ b/aegis/migrations/0002_blacklistedaccess_blacklistedrefresh.py @@ -0,0 +1,51 @@ +# Generated by Django 5.1.4 on 2025-08-12 16:08 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('aegis', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='BlacklistedAccess', + fields=[ + ('status', models.SmallIntegerField(choices=[(1, 'Active'), (0, 'Inactive'), (2, 'Deleted')], default=1, verbose_name='Status')), + ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='Deleted At')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')), + ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')), + ('id', models.AutoField(db_column='id', db_index=True, editable=False, primary_key=True, serialize=False, unique=True, verbose_name='ID')), + ('jti', models.CharField(db_index=True, max_length=64, unique=True, verbose_name='Access JTI')), + ('expires_at', models.DateTimeField(verbose_name='Expires At')), + ('blacklisted_at', models.DateTimeField(auto_now_add=True, verbose_name='Blacklisted At')), + ], + options={ + 'verbose_name': 'Blacklisted Access Token', + 'verbose_name_plural': 'Blacklisted Access Tokens', + 'db_table': 'blacklisted_access_tokens', + 'indexes': [models.Index(fields=['expires_at'], name='blacc_exp_idx')], + }, + ), + migrations.CreateModel( + name='BlacklistedRefresh', + fields=[ + ('status', models.SmallIntegerField(choices=[(1, 'Active'), (0, 'Inactive'), (2, 'Deleted')], default=1, verbose_name='Status')), + ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='Deleted At')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')), + ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')), + ('id', models.AutoField(db_column='id', db_index=True, editable=False, primary_key=True, serialize=False, unique=True, verbose_name='ID')), + ('rjti', models.CharField(db_index=True, max_length=64, unique=True, verbose_name='Refresh JTI')), + ('expires_at', models.DateTimeField(verbose_name='Expires At')), + ('blacklisted_at', models.DateTimeField(auto_now_add=True, verbose_name='Blacklisted At')), + ], + options={ + 'verbose_name': 'Blacklisted Refresh Token', + 'verbose_name_plural': 'Blacklisted Refresh Tokens', + 'db_table': 'blacklisted_refresh_tokens', + 'indexes': [models.Index(fields=['expires_at'], name='blref_exp_idx')], + }, + ), + ] diff --git a/aegis/migrations/0003_servicemaster.py b/aegis/migrations/0003_servicemaster.py new file mode 100644 index 0000000..932ba38 --- /dev/null +++ b/aegis/migrations/0003_servicemaster.py @@ -0,0 +1,32 @@ +# Generated by Django 5.1.4 on 2025-08-30 14:12 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('aegis', '0002_blacklistedaccess_blacklistedrefresh'), + ] + + operations = [ + migrations.CreateModel( + name='ServiceMaster', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('status', models.SmallIntegerField(choices=[(1, 'Active'), (0, 'Inactive'), (2, 'Deleted')], default=1, verbose_name='Status')), + ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='Deleted At')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')), + ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')), + ('service_code', models.SlugField(unique=True)), + ('service_name', models.CharField(max_length=100, unique=True)), + ('service_description', models.TextField(blank=True, null=True)), + ], + options={ + 'verbose_name': 'Service', + 'verbose_name_plural': 'Services', + 'db_table': 'service_master', + 'ordering': ('service_code',), + }, + ), + ] diff --git a/aegis/migrations/0004_alter_servicemaster_service_code.py b/aegis/migrations/0004_alter_servicemaster_service_code.py new file mode 100644 index 0000000..5599c0c --- /dev/null +++ b/aegis/migrations/0004_alter_servicemaster_service_code.py @@ -0,0 +1,18 @@ +# Generated by Django 5.1.4 on 2025-08-30 14:15 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('aegis', '0003_servicemaster'), + ] + + operations = [ + migrations.AlterField( + model_name='servicemaster', + name='service_code', + field=models.CharField(max_length=50, unique=True), + ), + ] diff --git a/aegis/migrations/0005_alter_permissionmaster_unique_together_and_more.py b/aegis/migrations/0005_alter_permissionmaster_unique_together_and_more.py new file mode 100644 index 0000000..f586f95 --- /dev/null +++ b/aegis/migrations/0005_alter_permissionmaster_unique_together_and_more.py @@ -0,0 +1,46 @@ +# Generated by Django 5.1.4 on 2025-08-30 14:57 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('aegis', '0004_alter_servicemaster_service_code'), + ('auth', '0012_alter_user_first_name_max_length'), + ] + + operations = [ + migrations.AlterUniqueTogether( + name='permissionmaster', + unique_together=set(), + ), + migrations.AddField( + model_name='permissionmaster', + name='service', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='aegis.servicemaster'), + ), + migrations.RemoveField( + model_name='permissionmaster', + name='menu', + ), + migrations.CreateModel( + name='GroupServiceAccess', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('status', models.SmallIntegerField(choices=[(1, 'Active'), (0, 'Inactive'), (2, 'Deleted')], default=1, verbose_name='Status')), + ('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='Deleted At')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')), + ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')), + ('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='service_links', to='auth.group')), + ('service', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='group_links', to='aegis.servicemaster')), + ], + options={ + 'verbose_name': 'Group Service Access', + 'verbose_name_plural': 'Group Services Access', + 'db_table': 'group_service_access', + 'unique_together': {('group', 'service')}, + }, + ), + ] diff --git a/aegis/models.py b/aegis/models.py index 815062a..4a0384a 100644 --- a/aegis/models.py +++ b/aegis/models.py @@ -1,26 +1,288 @@ import uuid -from django.db import models -from django.contrib.auth.models import AbstractUser +from django.conf import settings +from django.contrib.auth import get_user_model +from django.contrib.auth.models import Group, AbstractUser from django.core.validators import RegexValidator +from django.db import models +from django.utils import timezone from simple_history.models import HistoricalRecords -class DefaultAuthUserExtend(AbstractUser): +class ActivePageManager(models.Manager): + def get_queryset(self): + return super().get_queryset().filter(status=1) + + +class BaseModel(models.Model): + STATUS_CHOICES = [ + (1, 'Active'), + (0, 'Inactive'), + (2, 'Deleted'), + ] + + status = models.SmallIntegerField(choices=STATUS_CHOICES, default=1, verbose_name='Status') + deleted_at = models.DateTimeField(null=True, blank=True, verbose_name='Deleted At') + created_at = models.DateTimeField(auto_now_add=True, verbose_name='Created At') + updated_at = models.DateTimeField(auto_now=True, verbose_name='Updated At') + + objects = models.Manager() # Default manager. + active_objects = ActivePageManager() # Custom manager for active objects. + class Meta: - db_table = 'auth_user_extend' - verbose_name = 'User Master' - verbose_name_plural = 'User Masters' + abstract = True + + def soft_delete(self): + self.status = 2 + self.deleted_at = timezone.now() + self.save() + + +class RequestLog(models.Model): + user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True, blank=True) + ip_address = models.CharField(max_length=45) + user_agent = models.TextField() + path = models.CharField(max_length=200) + query_string = models.TextField() + body = models.TextField() + method = models.CharField(max_length=10) + response_status = models.IntegerField() + timestamp = models.DateTimeField(auto_now_add=True) + + class Meta: + db_table = 'activity_log' + verbose_name = 'Activity Log' + verbose_name_plural = 'Activity Logs' + + +class DefaultAuthUserExtend(AbstractUser, BaseModel): + SERVICE_NAME_CHOICES = [ + ('farm_calendar', 'Farm Calendar'), + ('gatekeeper', 'Gatekeeper'), + ('weather_data', 'Weather Data'), + ('unknown', 'Unknown'), + ] uuid = models.UUIDField(unique=True, default=uuid.uuid4, editable=False) email = models.EmailField(unique=True) + # service_name = models.CharField(max_length=50, default='unknown', choices=SERVICE_NAME_CHOICES,) contact_no = models.CharField(max_length=10, null=True, db_index=True, default='', blank=True, validators=[RegexValidator(regex=r'^[0-9- ]+$', message="Invalid phone number")]) token_version = models.IntegerField(default=1) - history = HistoricalRecords(table_name="history_auth_user_extend") + history = HistoricalRecords(table_name="auth_user_extend_history") + + class Meta: + db_table = 'auth_user_extend' + verbose_name = 'User Master' + verbose_name_plural = 'User Masters' def __str__(self): return f"{self.email} {self.first_name}" + +class RegisteredService(BaseModel): + id = models.AutoField(primary_key=True, db_column='id', db_index=True, editable=False, unique=True, + blank=False, null=False, verbose_name='ID') + base_url = models.CharField(max_length=255, default="http://127.0.0.1:8001", blank=False, null=False) + service_name = models.CharField(max_length=100) + endpoint = models.CharField(max_length=255) + methods = models.JSONField() + params = models.TextField(max_length=100, blank=True, null=True, help_text="Query parameter templates (e.g., 'lat={}&lon={}').") + comments = models.TextField(blank=True, null=True) + service_url = models.CharField(max_length=500, blank=True, null=True) + + history = HistoricalRecords(table_name="registered_services_history") + + class Meta: + db_table = 'registered_services' + verbose_name = 'Registered Service' + verbose_name_plural = 'Registered Services' + + def __str__(self): + return self.service_name + + +class AdminMenuMaster(BaseModel): + id = models.SmallAutoField(primary_key=True, db_column='id', db_index=True, editable=False, unique=True, + blank=False, null=False, verbose_name='ID') + parent_id = models.ForeignKey('self', null=True, blank=True, related_name='submenus', db_column='parent_id', + on_delete=models.CASCADE) + menu_name = models.CharField(max_length=30, null=False, blank=False, unique=True, + validators=[RegexValidator(regex=r'^[a-zA-Z0-9()\s]+$', message="Invalid characters")]) + menu_icon = models.CharField(max_length=20, null=True, blank=True, default='list', + validators=[RegexValidator(regex=r'^[a-z0-9-]+$', message="Invalid characters")]) + menu_route = models.CharField(max_length=30, null=True, blank=True, + validators=[RegexValidator(regex=r'^[a-zA-Z0-9\s-]+$', message="Invalid characters")]) + menu_access = models.CharField(max_length=30, null=True, blank=True, + validators=[RegexValidator(regex=r'^[a-zA-Z0-9\s-]+$', message="Invalid characters")]) + menu_order = models.SmallIntegerField(null=True, blank=True, + validators=[RegexValidator(regex=r'^[0-9]+$', message="Invalid characters")]) + + history = HistoricalRecords(table_name="admin_menu_master_history") + + class Meta: + db_table = "admin_menu_master" + verbose_name = "Admin Menu" + verbose_name_plural = "Admin Menus" + + def __str__(self): + return f"{self.menu_name} ({self.menu_route})" + + +class PermissionMaster(BaseModel): + ACTION_CHOICES = ( + ('add', 'add'), + ('edit', 'edit'), + ('view', 'view'), + ('delete', 'delete'), + ) + id = models.AutoField(primary_key=True, db_column='id', db_index=True, editable=False, unique=True, + blank=False, null=False, verbose_name='ID') + + service = models.ForeignKey('ServiceMaster', on_delete=models.CASCADE, null=True, blank=True) + action = models.CharField(max_length=20, choices=ACTION_CHOICES) + is_virtual = models.BooleanField(default=False) + + class Meta: + db_table = "permission_master" + verbose_name = "Permission" + verbose_name_plural = "Permissions" + # unique_together = ('service', 'action') + + def __str__(self): + return f"{self.service.service_code}_{self.action}" + + +class CustomPermissions(BaseModel): + id = models.AutoField(primary_key=True, db_column='id', db_index=True, editable=False, unique=True, + blank=False, null=False, verbose_name='ID') + + user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE) + permission_name = models.ForeignKey(PermissionMaster, on_delete=models.CASCADE) + + class Meta: + db_table = "custom_permissions" + verbose_name = "Custom Permission" + verbose_name_plural = "Custom Permissions" + unique_together = ('user', 'permission_name') + + def __str__(self): + return str(self.permission_name) + + +class GroupCustomPermissions(BaseModel): + id = models.AutoField(primary_key=True, db_column='id', db_index=True, editable=False, unique=True, + blank=False, null=False, verbose_name='ID') + + group = models.ForeignKey(Group, on_delete=models.CASCADE) + permission_names = models.ManyToManyField(PermissionMaster) + + class Meta: + db_table = "custom_group_permissions" + verbose_name = "Group Custom Permission" + verbose_name_plural = "Group Custom Permissions" + + def __str__(self): + return f"{self.group} {str(self.permission_names)}" + + +class BlacklistedRefresh(BaseModel): + """ + A refresh token that has been 'logged out'. + Any access token minted from this refresh will carry rjti= + and must be rejected by authentication. + """ + id = models.AutoField( + primary_key=True, db_column='id', db_index=True, editable=False, unique=True, + blank=False, null=False, verbose_name='ID' + ) + # SimpleJWT uses a UUID for JTI; 64 keeps headroom + rjti = models.CharField( + max_length=64, unique=True, db_index=True, verbose_name='Refresh JTI' + ) + expires_at = models.DateTimeField(verbose_name='Expires At') # when the refresh naturally expires + blacklisted_at = models.DateTimeField(auto_now_add=True, verbose_name='Blacklisted At') + + class Meta: + db_table = 'blacklisted_refresh_tokens' + verbose_name = 'Blacklisted Refresh Token' + verbose_name_plural = 'Blacklisted Refresh Tokens' + indexes = [ + models.Index(fields=['expires_at'], name='blref_exp_idx'), + ] + + def __str__(self): + return f"{self.rjti}" + + @property + def is_expired(self) -> bool: + return timezone.now() >= self.expires_at + + +class BlacklistedAccess(BaseModel): + """ + A specific access token that should be rejected immediately. + """ + id = models.AutoField( + primary_key=True, db_column='id', db_index=True, editable=False, unique=True, + blank=False, null=False, verbose_name='ID' + ) + jti = models.CharField( + max_length=64, unique=True, db_index=True, verbose_name='Access JTI' + ) + expires_at = models.DateTimeField(verbose_name='Expires At') + blacklisted_at = models.DateTimeField(auto_now_add=True, verbose_name='Blacklisted At') + + class Meta: + db_table = 'blacklisted_access_tokens' + verbose_name = 'Blacklisted Access Token' + verbose_name_plural = 'Blacklisted Access Tokens' + indexes = [ + models.Index(fields=['expires_at'], name='blacc_exp_idx'), + ] + + def __str__(self): + return f"{self.jti}" + + @property + def is_expired(self) -> bool: + return timezone.now() >= self.expires_at + + +class ServiceMaster(BaseModel): + """ + Normalised list of services (one row per service). + """ + service_code = models.CharField(max_length=50, unique=True) + service_name = models.CharField(max_length=100, unique=True) + service_description = models.TextField(blank=True, null=True) + + class Meta: + db_table = 'service_master' + verbose_name = 'Service' + verbose_name_plural = 'Services' + ordering = ('service_code',) + + def __str__(self): + return f"{self.service_name} ({self.service_code})" + + +class GroupServiceAccess(BaseModel): + """ + One row means: this Group can access this Service. + Keep it minimal (no per-action scopes for now). + """ + group = models.ForeignKey(Group, on_delete=models.CASCADE, related_name="service_links") + service = models.ForeignKey(ServiceMaster, on_delete=models.CASCADE, related_name="group_links") + + class Meta: + db_table = "group_service_access" + unique_together = (("group", "service"),) + verbose_name = "Group Service Access" + verbose_name_plural = "Group Services Access" + + def __str__(self): + return f"{self.group.name} → {self.service.service_code}" + diff --git a/aegis/serializers.py b/aegis/serializers.py new file mode 100644 index 0000000..e7d8ff8 --- /dev/null +++ b/aegis/serializers.py @@ -0,0 +1,65 @@ +# serializers.py + +from typing import cast, TYPE_CHECKING + +from django.contrib.auth import get_user_model +from django.db.models import Q + +from rest_framework.exceptions import AuthenticationFailed +from rest_framework_simplejwt.serializers import TokenObtainPairSerializer +from rest_framework_simplejwt.tokens import RefreshToken + +if TYPE_CHECKING: + from aegis.models import DefaultAuthUserExtend + + +class CustomTokenObtainPairSerializer(TokenObtainPairSerializer): + @classmethod + def get_token(cls, user): + user = cast("DefaultAuthUserExtend", user) + + token = super().get_token(user) + token["username"] = user.username + token["first_name"] = user.first_name + token["last_name"] = user.last_name + # token["service_name"] = user.service_name + token["uuid"] = str(getattr(user, "uuid", "")) + return token + + def validate(self, attrs): + # Extract username/email and service_name from the request data + login_identifier = (attrs.get("username") or "").strip() # Can be either username or email + + # Get the user model + user_model = get_user_model() + + if not login_identifier: + raise AuthenticationFailed("No active account found with the given credentials.") + + user = user_model.objects.filter( + Q(username__iexact=login_identifier) | Q(email__iexact=login_identifier), + status=1, + ).first() + + if not user: + raise AuthenticationFailed("No active account found with the given credentials.") + + attrs["username"] = user.username + + # Authenticate first (sets self.user if credentials are valid) + super().validate(attrs) + + # Mint a fresh pair so we can safely add rjti and avoid re-parsing strings + # Note: get_token actually returns a RefreshToken; we cast to satisfy PyCharm. + refresh = cast(RefreshToken, self.get_token(self.user)) + access = refresh.access_token # AccessToken instance + + # Tag access with the refresh's JTI so we can revoke all access minted from this refresh + access["rjti"] = str(refresh["jti"]) + + # Return strings as usual + return { + "success": True, + "access": str(access), + "refresh": str(refresh), + } diff --git a/aegis/services/auth_services.py b/aegis/services/auth_services.py new file mode 100644 index 0000000..06d35a4 --- /dev/null +++ b/aegis/services/auth_services.py @@ -0,0 +1,52 @@ +# services/auth_service.py + +from django.db import IntegrityError +from django.core.exceptions import ValidationError + +from rest_framework_simplejwt.tokens import RefreshToken + +from aegis.utils.auth_utils import hash_password, verify_password +from aegis.models import DefaultAuthUserExtend + + +def register_user(username, email, password, first_name='', last_name=''): + try: + hashed_password = hash_password(password) + user = DefaultAuthUserExtend.objects.create( + first_name=first_name, + last_name=last_name, + username=username, + email=email, + password=hashed_password + ) + return {"message": "User created successfully", "user_id": user.uuid} + except IntegrityError: + raise ValidationError("Username or email already exists") + + +def authenticate_user(username: str, password: str): + try: + user = DefaultAuthUserExtend.objects.get(username=username, status=1) + except DefaultAuthUserExtend.DoesNotExist: + try: + user = DefaultAuthUserExtend.objects.get(email=username, status=1) + except DefaultAuthUserExtend.DoesNotExist: + return None, None, None + + if not verify_password(password, user.password): + return None, None, None + + # Use SimpleJWT to generate access and refresh tokens + refresh = RefreshToken.for_user(user) + + # Add custom claims to the access token + refresh["username"] = user.username + refresh["email"] = user.email + refresh["first_name"] = user.first_name + refresh["last_name"] = user.last_name + refresh["uuid"] = str(user.uuid) + + access_token = str(refresh.access_token) + refresh_token = str(refresh) + + return user, access_token, refresh_token diff --git a/aegis/templatetags/__init__.py b/aegis/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/aegis/templatetags/custom_filters.py b/aegis/templatetags/custom_filters.py new file mode 100644 index 0000000..6ef4081 --- /dev/null +++ b/aegis/templatetags/custom_filters.py @@ -0,0 +1,9 @@ +from django import template + +register = template.Library() + + +@register.filter +def remove_chars(value): + return value.replace("-", "").replace(" ", "") + diff --git a/aegis/templatetags/permission_tags.py b/aegis/templatetags/permission_tags.py new file mode 100644 index 0000000..4acafb7 --- /dev/null +++ b/aegis/templatetags/permission_tags.py @@ -0,0 +1,38 @@ +from django import template +from aegis.models import CustomPermissions, GroupCustomPermissions, PermissionMaster, AdminMenuMaster + +register = template.Library() + + +@register.simple_tag +def has_view_permission(user, menu_route): + if user.is_superuser or user.is_staff: + return True + + if menu_route is None: + return False # Handle NULL menu_route values as you see fit + + try: + # Get the AdminMenuMaster instance for the relevant menu + menus = AdminMenuMaster.objects.filter(menu_route=menu_route) + # menu = AdminMenuMaster.objects.get(menu_route=menu_route) + + if menus.exists(): + menu = menus.first() + else: + return False + # Get the PermissionMaster instance for 'view' action + permission_master = PermissionMaster.objects.get(menu=menu, action='view') + except (AdminMenuMaster.DoesNotExist, PermissionMaster.DoesNotExist): + return False + + # Check if the user has the permission + has_permission = CustomPermissions.objects.filter( + user=user, permission_name=permission_master + ).exists() + + has_group_permission = GroupCustomPermissions.objects.filter( + group__in=user.groups.all(), permission_names__in=[permission_master] + ).exists() + + return has_permission or has_group_permission diff --git a/aegis/urls.py b/aegis/urls.py new file mode 100644 index 0000000..4b25bfc --- /dev/null +++ b/aegis/urls.py @@ -0,0 +1,8 @@ +from django.urls import path +from .views import DashboardView + +app_name = "aegis" + +urlpatterns = [ + path("dashboard/", DashboardView.as_view(), name="dashboard") +] diff --git a/aegis/utils/auth_utils.py b/aegis/utils/auth_utils.py new file mode 100644 index 0000000..f6cb215 --- /dev/null +++ b/aegis/utils/auth_utils.py @@ -0,0 +1,24 @@ +# utils/auth_utils.py + +import jwt + +from django.conf import settings +from django.core.exceptions import ValidationError +from django.contrib.auth.hashers import make_password, check_password + + +def decode_jwt_token(token: str): + try: + return jwt.decode(token, settings.JWT_SIGNING_KEY, algorithms=["HS256"]) + except jwt.ExpiredSignatureError: + raise ValidationError("Token expired") + except jwt.InvalidTokenError: + raise ValidationError("Invalid token") + + +def hash_password(password: str) -> str: + return make_password(password) + + +def verify_password(password: str, hashed_password: str) -> bool: + return check_password(password, hashed_password) diff --git a/aegis/utils/service_utils.py b/aegis/utils/service_utils.py new file mode 100644 index 0000000..2f9d9d8 --- /dev/null +++ b/aegis/utils/service_utils.py @@ -0,0 +1,46 @@ +import re +import requests +import logging + +logger = logging.getLogger(__name__) + + +def match_endpoint(requested_endpoint, stored_endpoint): + """ + Matches the requested endpoint against a registered endpoint with dynamic path variables. + """ + # Strip leading and trailing slashes for consistent matching + requested_endpoint = requested_endpoint.strip("/") + stored_endpoint = stored_endpoint.strip("/") + + # Replace path variables like {id} with regex patterns (e.g., [^/]+ for non-slash values) + pattern = re.sub(r"{[^}]+}", r"[^/]+", stored_endpoint) + + # Add ^ and $ to ensure the entire path matches + pattern = f"^{pattern}$" + + is_match = re.fullmatch(pattern, requested_endpoint) is not None + + logger.info(f"Matching '{requested_endpoint}' with stored endpoint '{stored_endpoint}' -> Match: {is_match}") + + return is_match + + +def check_service_health(base_url): + """ + Pings a service's health endpoint to check if it's operational. + If no health endpoint is available or the request fails, assume the service is reachable. + """ + health_url = f"{base_url}/health" + logger.info(f"Checking service health at: {health_url}") + + try: + response = requests.get(health_url, timeout=5) + logger.info(f"Health check response code: {response.status_code}") + return response.status_code == 200 # Return True if the service responds with HTTP 200 + except requests.HTTPError as e: + logger.error(f"Service returned an error for health check: {str(e)}") + return False + except requests.RequestException as e: + logger.warning(f"No health endpoint or service unreachable: {str(e)}. Assuming service is up.") + return True diff --git a/aegis/utils/validators.py b/aegis/utils/validators.py new file mode 100644 index 0000000..4ef7036 --- /dev/null +++ b/aegis/utils/validators.py @@ -0,0 +1,25 @@ +# utils/validators.py + +import re + +from django.core.exceptions import ValidationError + + +ALLOWED_NAME_REGEX = r"^[a-zA-Z0-9\-_.,()\[\]{}@#&]*$" + + +def validate_email(email: str) -> str: + email_regex = r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)" + if not re.match(email_regex, email): + raise ValidationError("Invalid email format") + return email + +def validate_username(username: str) -> str: + if len(username) < 3: + raise ValidationError("Username must be at least 3 characters long") + return username + +def validate_password(password: str) -> str: + if len(password) < 8: + raise ValidationError("Password must be at least 8 characters long") + return password diff --git a/aegis/views/DashboardV.py b/aegis/views/DashboardV.py new file mode 100644 index 0000000..3d94103 --- /dev/null +++ b/aegis/views/DashboardV.py @@ -0,0 +1,13 @@ +from django.contrib.auth.mixins import LoginRequiredMixin +from .mixins import AdminMenuMixin +from django.views.generic import TemplateView + + +class DashboardView(LoginRequiredMixin, TemplateView, AdminMenuMixin): + template_name = "dashboard.html" + permission_menu = '' + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + return context + diff --git a/aegis/views/__init__.py b/aegis/views/__init__.py new file mode 100644 index 0000000..af68358 --- /dev/null +++ b/aegis/views/__init__.py @@ -0,0 +1,4 @@ +from .DashboardV import DashboardView +from .auth_views import * +from .home_view import * + diff --git a/aegis/views/api/__init__.py b/aegis/views/api/__init__.py new file mode 100644 index 0000000..b21bc66 --- /dev/null +++ b/aegis/views/api/__init__.py @@ -0,0 +1,2 @@ +from .auth_views import LoginAPIView, LogoutAPIView, TokenValidationAPIView, MeAPIView #, RegisterAPIView +from .service_registry_views import * diff --git a/aegis/views/api/auth_views.py b/aegis/views/api/auth_views.py new file mode 100644 index 0000000..7770b5b --- /dev/null +++ b/aegis/views/api/auth_views.py @@ -0,0 +1,244 @@ +# views/api_views.py + +import logging + +from collections import defaultdict + +# from django import forms +from django.utils.decorators import method_decorator +from django.views.decorators.cache import never_cache + +from rest_framework import status, permissions +from rest_framework.permissions import AllowAny, IsAuthenticated +from rest_framework.response import Response +from rest_framework.views import APIView +from rest_framework_simplejwt.exceptions import TokenError +from rest_framework_simplejwt.tokens import AccessToken, RefreshToken +from rest_framework_simplejwt.views import TokenObtainPairView + +from datetime import datetime, timezone + +# from aegis.forms import UserRegistrationForm +# from aegis.services.auth_services import register_user +from aegis.models import BlacklistedRefresh, BlacklistedAccess, CustomPermissions, GroupCustomPermissions +from aegis.serializers import CustomTokenObtainPairSerializer + +logging.basicConfig(level=logging.ERROR) +logger = logging.getLogger(__name__) + + +@method_decorator(never_cache, name='dispatch') +class LoginAPIView(TokenObtainPairView): + serializer_class = CustomTokenObtainPairSerializer + + +# @method_decorator(never_cache, name='dispatch') +# class RegisterAPIView(APIView): +# permission_classes = [permissions.AllowAny] +# authentication_classes = [] +# +# def post(self, request): +# form = UserRegistrationForm(request.data) +# +# if form.is_valid(): +# try: +# register_user( +# username=form.cleaned_data["username"], +# email=form.cleaned_data["email"], +# # service_name=form.cleaned_data["service_name"], +# password=form.cleaned_data["password"], +# first_name=form.cleaned_data["first_name"], +# last_name=form.cleaned_data["last_name"] +# ) +# return Response({ +# "success": True, +# "message": "User registered successfully. Please log in." +# }, status=status.HTTP_201_CREATED) +# +# except forms.ValidationError as e: +# return Response({ +# "success": False, +# "error": str(e) +# }, status=status.HTTP_400_BAD_REQUEST) +# except Exception as e: +# logging.error(f"An unexpected error occurred: {str(e)}", exc_info=True) +# return Response({ +# "success": False, +# # "error": f"An unexpected error occurred: {str(e)}" +# "error": "An unexpected error occurred. Please try again later." +# }, status=status.HTTP_500_INTERNAL_SERVER_ERROR) +# +# # Return validation errors +# return Response({ +# "success": False, +# "errors": form.errors +# }, status=status.HTTP_400_BAD_REQUEST) + + +@method_decorator(never_cache, name='dispatch') +class LogoutAPIView(APIView): + permission_classes = [AllowAny] + + def post(self, request): + auth = request.headers.get("Authorization", "") + + if auth.startswith("Bearer "): + raw_access = auth.split(" ", 1)[1].strip() + try: + at = AccessToken(raw_access) # verifies signature & token_type=access + BlacklistedAccess.objects.update_or_create( + jti=str(at["jti"]), + defaults={"expires_at": datetime.fromtimestamp(at["exp"], tz=timezone.utc)}, + ) + logger.info("Logout: blacklisted ACCESS jti=%s exp=%s", at["jti"], at["exp"]) + except Exception as e: + logger.warning("Logout: failed to parse access token from Authorization header: %s", e) + else: + logger.info("Logout: no Authorization Bearer header; skipping access JTI blacklist") + + refresh_token = request.data.get("refresh") + + if not refresh_token: + return Response({"error": "Refresh token is required"}, status=status.HTTP_400_BAD_REQUEST) + + try: + rt = RefreshToken(refresh_token) # parse & validate refresh + rjti = str(rt["jti"]) + exp = datetime.fromtimestamp(rt["exp"], tz=timezone.utc) + + # 1) Persist rjti so all access tokens minted from this refresh are rejected + BlacklistedRefresh.objects.update_or_create( + rjti=rjti, + defaults={"expires_at": exp}, + ) + + # 2) Also blacklist the refresh for future refresh attempts + rt.blacklist() # requires 'rest_framework_simplejwt.token_blacklist' in INSTALLED_APPS+migrations + + # token = RefreshToken(refresh_token) + # token.blacklist() + return Response({"success": "Logged out successfully"}, status=status.HTTP_200_OK) + except Exception as e: + return Response({"error": "Invalid or expired token"}, status=status.HTTP_400_BAD_REQUEST) + + +class TokenValidationAPIView(APIView): + permission_classes = [permissions.AllowAny] + authentication_classes = [] + + def post(self, request): + token_type = request.data.get("token_type", "access") + token = request.data.get("token") + + if not token: + return Response({"error": "Token is required"}, status=status.HTTP_400_BAD_REQUEST) + + try: + if token_type == "access": + token_instance = AccessToken(token) + elif token_type == "refresh": + token_instance = RefreshToken(token) + else: + return Response({"error": "Invalid token type. Must be 'access' or 'refresh'."}, + status=status.HTTP_400_BAD_REQUEST) + + # Get expiration time + expiration_time = token_instance["exp"] + + except TokenError as e: + # Check if the error is due to an expired token + if "token is expired" in str(e).lower(): + return Response({"error": f"{token_type.capitalize()} token has expired"}, + status=status.HTTP_400_BAD_REQUEST) + else: + return Response({"error": f"Invalid {token_type} token"}, + status=status.HTTP_400_BAD_REQUEST) + + # Calculate remaining time (in seconds) + current_time = datetime.now(timezone.utc) + remaining_time = expiration_time - current_time.timestamp() + + if remaining_time > 0: + return Response({ + "success": True, + "remaining_time_in_seconds": remaining_time + }, status=status.HTTP_200_OK) + else: + return Response({ + "error": "Token has already expired" + }, status=status.HTTP_400_BAD_REQUEST) + + +class MeAPIView(APIView): + """ + GET /api/me/ -> returns the authenticated user's profile and service permissions. + Requires: Authorization: Bearer + """ + permission_classes = [IsAuthenticated] + + def get(self, request): + u = request.user + + # Basic identity payload + groups = list(u.groups.values_list("name", flat=True)) + user_payload = { + "uuid": str(getattr(u, "uuid", "")), + "username": u.username, + "email": u.email, + "first_name": u.first_name, + "last_name": u.last_name, + "groups": groups, + } + + # Build "services" payload + svc_map = defaultdict(lambda: {"name": None, "actions": set()}) + + # via group custom permissions + group_rows = ( + GroupCustomPermissions.objects + .filter( + group__in=u.groups.all(), status=1, + permission_names__status=1, + permission_names__service__status=1, + ) + .values_list( + "permission_names__service__service_code", + "permission_names__service__service_name", + "permission_names__action", + ) + ) + for code, name, action in group_rows: + if code and action: + if not svc_map[code]["name"]: + svc_map[code]["name"] = name + svc_map[code]["actions"].add(action) + + # via direct user custom permissions + user_rows = ( + CustomPermissions.objects + .filter( + user=u, status=1, + permission_name__status=1, + permission_name__service__status=1, + ) + .values_list( + "permission_name__service__service_code", + "permission_name__service__service_name", + "permission_name__action", + ) + ) + for code, name, action in user_rows: + if code and action: + if not svc_map[code]["name"]: + svc_map[code]["name"] = name + svc_map[code]["actions"].add(action) + + services_payload = [ + {"code": code, "name": data["name"] or code, "actions": sorted(data["actions"])} + for code, data in sorted(svc_map.items()) + ] + + return Response({ + "user": user_payload, + "services": services_payload, + }, status=status.HTTP_200_OK) diff --git a/aegis/views/api/service_registry_views.py b/aegis/views/api/service_registry_views.py new file mode 100644 index 0000000..0ae50d1 --- /dev/null +++ b/aegis/views/api/service_registry_views.py @@ -0,0 +1,562 @@ +# aegis/views/api/service_registry_views.py + +import logging +import re +import requests +import uuid +import requests + +from typing import Optional + +from django.core.exceptions import ValidationError +from django.db import IntegrityError, DatabaseError +from django.http import JsonResponse, HttpResponse, HttpResponseRedirect, StreamingHttpResponse +from django.urls import reverse +from django.utils import timezone + +from rest_framework import status +from rest_framework.permissions import IsAuthenticated +from rest_framework.views import APIView + +from aegis.models import RegisteredService +from aegis.utils.service_utils import match_endpoint + +LOG = logging.getLogger(__name__) + +class RegisterServiceAPIView(APIView): + permission_classes = [IsAuthenticated] + + def post(self, request): + # Validate required fields + required_fields = ["base_url", "service_name", "endpoint"] + missing_fields = [field for field in required_fields if not request.data.get(field)] + + if missing_fields: + return JsonResponse( + {"error": f"Missing required fields: {', '.join(missing_fields)}"}, + status=status.HTTP_400_BAD_REQUEST + ) + + base_url = request.data.get("base_url").strip() + service_name = request.data.get("service_name").strip() + endpoint = request.data.get("endpoint").strip() + methods = request.data.get("methods", ["GET", "POST"]) + params = request.data.get("params", "") + + if not service_name or not endpoint: + return JsonResponse( + {"error": "Service name and endpoint are required."}, + status=status.HTTP_400_BAD_REQUEST + ) + + if not isinstance(methods, list) or not all(isinstance(m, str) for m in methods): + return JsonResponse( + {"error": "Methods should be a list of strings."}, + status=status.HTTP_400_BAD_REQUEST + ) + + if not isinstance(params, str): + return JsonResponse( + {"error": "Params should be a string representing query parameters."}, + status=status.HTTP_400_BAD_REQUEST + ) + + # Validate base_url + if len(base_url) > 100: + return JsonResponse( + {"error": "Base URL must not exceed 100 characters."}, + status=status.HTTP_400_BAD_REQUEST + ) + + if not re.match(r"^(http|https)://[a-zA-Z0-9]([a-zA-Z0-9._]*[a-zA-Z0-9])?:[0-9]{1,5}/$", base_url): + return JsonResponse( + { + "error": "Base URL must follow the format 'http://baseurl:port/' or 'https://baseurl:port/'. " + "The base URL name must only contain alphanumeric characters, dots (.), or underscores (_), " + "and must start and end with an alphanumeric character. The port number must be 1-5 digits."}, + status=status.HTTP_400_BAD_REQUEST + ) + + # Validate service_name + if not re.match(r"^[a-zA-Z0-9]([a-zA-Z0-9_]*[a-zA-Z0-9])?$", service_name) or len(service_name) >= 30: + return JsonResponse( + {"error": "Service name must only contain alphanumeric characters and underscores. " + "It cannot start or end with an underscore, and must be less than 30 characters long."}, + status=status.HTTP_400_BAD_REQUEST + ) + + # Validate endpoint + if endpoint.startswith("/") or endpoint.startswith("\\"): + return JsonResponse( + {"error": "Endpoint must not start with a forward or backward slash."}, + status=status.HTTP_400_BAD_REQUEST + ) + + if len(endpoint) > 100: + return JsonResponse( + {"error": "Endpoint must not exceed 100 characters."}, + status=status.HTTP_400_BAD_REQUEST + ) + + # Ensure consistent formatting (always include trailing slash for endpoint) + endpoint = endpoint.rstrip('/') + '/' # Ensure trailing slash for endpoint + + # Construct service_url + if params: + params = params.strip() # Remove unnecessary leading/trailing spaces + key_value_pairs = [pair.strip() for pair in params.split('&') if '=' in pair] # Split and validate + query_string = f"?{'&'.join(key_value_pairs)}" if key_value_pairs else "" + else: + query_string = "" + + # Final service_url + service_url = f"http://127.0.0.1:8001/api/proxy/{service_name}/{endpoint}{query_string}" + + try: + # Check for existing services with the same base_url and endpoint + existing_services = RegisteredService.objects.filter( + base_url=base_url, + status__in=[1, 0] # Active or inactive services + ) + + for existing_service in existing_services: + if match_endpoint(endpoint, existing_service.endpoint): + # Update the existing service with new data + existing_service.base_url = base_url + existing_service.service_name = service_name + existing_service.endpoint = endpoint + existing_service.methods = list(set(existing_service.methods).union(methods)) # Merge methods + existing_service.params = params # Update params + existing_service.comments = request.data.get("comments", existing_service.comments) # Update comments + existing_service.service_url = service_url # Update the service URL + existing_service.save() + + return JsonResponse( + {"success": True, "message": "Service updated successfully.", + "service_id": existing_service.id}, + status=status.HTTP_200_OK + ) + + # If no existing endpoint combination, create a new entry + service = RegisteredService.objects.create( + base_url=base_url, + service_name=service_name, + endpoint=endpoint, + methods=methods, + params=params, + comments=request.data.get("comments", None), + service_url=service_url + ) + return JsonResponse( + {"success": True, "message": "Service registered successfully", "service_id": service.id}, + status=status.HTTP_201_CREATED + ) + + except (IntegrityError, DatabaseError) as db_error: + logging.error(f"Database error: {str(db_error)}") + return JsonResponse( + # {"error": f"Database error: {str(db_error)}"}, + {"error": "A database error has occurred."}, + status=status.HTTP_500_INTERNAL_SERVER_ERROR + ) + except ValidationError as val_error: + logging.error(f"Validation error: {str(val_error)}") + return JsonResponse( + # {"error": f"Validation error: {str(val_error)}"}, + {"error": "A validation error has occurred."}, + status=status.HTTP_400_BAD_REQUEST + ) + except Exception as e: + logging.error(f"Unexpected error: {str(e)}") + return JsonResponse( + # {"error": f"Unexpected error: {str(e)}"}, + {"error": "An unexpected error has occurred."}, + status=status.HTTP_500_INTERNAL_SERVER_ERROR + ) + + +class ServiceDirectoryAPIView(APIView): + permission_classes = [IsAuthenticated] + + def get(self, request): + try: + # Get query parameters for filtering + service_name = request.query_params.get("service_name", "").strip() or None + endpoint = request.query_params.get("endpoint", "").strip() or None + method = request.query_params.get("method", "").strip() or None + + filters = {} + if service_name: + filters["service_name__icontains"] = service_name + if endpoint: + filters["endpoint__icontains"] = endpoint + if method: + filters["methods__icontains"] = method + + # Query the database with filters (active services only) + services_query = RegisteredService.active_objects.filter(**filters) + + # Only fetch specific fields to optimise the query + services = services_query.only( + "base_url", "service_name", "endpoint", "methods", "params", "comments" + ).values("base_url", "service_name", "endpoint", "methods", "params", "comments") + + return JsonResponse(list(services), safe=False, status=status.HTTP_200_OK) + + except DatabaseError as db_error: + logging.error(f"Database error: {str(db_error)}") + return JsonResponse( + # {"error": f"Database error: {str(db_error)}"}, + {"error": "A database error has occurred."}, + status=status.HTTP_500_INTERNAL_SERVER_ERROR + ) + except Exception as e: + logging.error(f"Unexpected error: {str(e)}") + return JsonResponse( + # {"error": f"Unexpected error: {str(e)}"}, + {"error": "An unexpected error has occurred."}, + status=status.HTTP_500_INTERNAL_SERVER_ERROR + ) + + +class DeleteServiceAPIView(APIView): + permission_classes = [IsAuthenticated] + + def delete(self, request): + base_url = request.query_params.get("base_url") + service_name = request.query_params.get("service_name") + endpoint = request.query_params.get("endpoint") + method = request.query_params.get("method") + + if not service_name or not endpoint or not base_url: + return JsonResponse( + {"error": "Base URL, service name, and endpoint are required."}, + status=status.HTTP_400_BAD_REQUEST + ) + + try: + service = RegisteredService.objects.filter( + base_url=base_url, service_name=service_name, endpoint=endpoint, status__in=[1, 0] + ).first() + + if not service: + return JsonResponse( + {"error": "Service with this base URL, name, and endpoint does not exist or is already deleted."}, + status=status.HTTP_404_NOT_FOUND + ) + + # If no method is provided, mark the service as deleted + if not method: + service.status = 2 + service.deleted_at = timezone.now() + service.save() + return JsonResponse( + {"success": True, "message": "Base URL, service and endpoint deleted successfully."}, + status=status.HTTP_200_OK + ) + + # Check if the provided method exists for the service + if method not in service.methods: + return JsonResponse( + {"error": f"Method '{method}' does not exist for this endpoint."}, + status=status.HTTP_400_BAD_REQUEST + ) + + # Remove the method from the service + updated_methods = [m for m in service.methods if m != method] + service.methods = updated_methods + service.save() + + return JsonResponse( + {"success": True, "message": f"Method '{method}' removed from the service."}, + status=status.HTTP_200_OK + ) + + except DatabaseError as db_error: + logging.error(f"Database error: {str(db_error)}") + return JsonResponse( + # {"error": f"Database error: {str(db_error)}"}, + {"error": "A database error has occurred."}, + status=status.HTTP_500_INTERNAL_SERVER_ERROR + ) + except Exception as e: + logging.error(f"Unexpected error: {str(e)}") + return JsonResponse( + # {"error": f"Unexpected error: {str(e)}"}, + {"error": "An unexpected error has occurred."}, + status=status.HTTP_500_INTERNAL_SERVER_ERROR + ) + + +class NewReverseProxyAPIView(APIView): + permission_classes = [IsAuthenticated] + parser_classes = [] + + def dispatch(self, request, *args, **kwargs): + # Check if the path ends with a slash; if not, redirect to the normalized path + path = kwargs.get('path', '') + if not path.endswith('/'): + # Normalize the URL by adding a trailing slash + # new_path = f"{path}/" + + kwargs['path'] = f"{path}/" + # return HttpResponseRedirect(reverse('new_reverse_proxy', kwargs={'path': new_path})) + return super().dispatch(request, *args, **kwargs) + + return super().dispatch(request, *args, **kwargs) + + @staticmethod + def _scrub_auth(h: Optional[str]) -> str: + """Hide secrets in Authorization header in logs.""" + if not h: + return "-" + hl = h.lower() + if hl.startswith("bearer "): + return "Bearer ***" + if hl.startswith("basic "): + return "Basic ***" + return "***" + + def dispatch_request(self, request, path): + try: + # -------- Correlation + basic request info -------- + corr_id = request.headers.get("X-Request-ID") or str(uuid.uuid4()) + req_ct = (request.META.get("CONTENT_TYPE") or "").lower() + req_cl = request.META.get("CONTENT_LENGTH") + client_ip = request.META.get("REMOTE_ADDR") or "-" + + print(f"Incoming path: {path}") + + # Parse the path to determine service and endpoint + path_parts = path.split('/') + service_name = path_parts[0] if len(path_parts) > 0 else None + endpoint = '/'.join(path_parts[1:]) if len(path_parts) > 1 else None + + LOG.info("GK IN ↘ method=%s path=%s svc=%s ip=%s ct=%s cl=%s corr=%s", + request.method, path, service_name, client_ip, req_ct, req_cl, corr_id) + + if service_name: + print(f"Service Name: {service_name}") + print(f"Endpoint After Removing Service Name: {endpoint}") + + if not service_name or not endpoint: + return JsonResponse({'error': 'Invalid path format.'}, status=400) + + # Query the database for matching service and endpoint pattern + services = RegisteredService.objects.filter(service_name=service_name, status=1) + + service_entry = None + # Filter by service name + for service in services: + # Ensure service.endpoint is valid + if not service.endpoint: + continue + + # Check if the stored endpoint has placeholders + if '{' in service.endpoint and '}' in service.endpoint: + # Convert placeholders to a regex pattern + safe_endpoint = re.escape(service.endpoint) + pattern = re.sub(r"\\\{[^\}]+\\\}", r"[^/]+", safe_endpoint) + + # Match the incoming endpoint to the regex pattern + if re.fullmatch(pattern, endpoint): + service_entry = service + break + else: + # Direct match for endpoints without placeholders + if service.endpoint.strip('/') == endpoint.strip('/'): + service_entry = service + break + + # Ensure endpoint is a valid string before matching + if endpoint is None or not isinstance(endpoint, str): + print(f"Invalid endpoint in request: {endpoint}") + continue + + if not service_entry: + LOG.warning("GK ROUTE ✖ no match svc=%s endpoint=%s corr=%s", service_name, endpoint, corr_id) + return JsonResponse({'error': 'No service can provide this resource.'}, status=404) + + # Check if the method is supported + if request.method not in service_entry.methods: + LOG.warning("GK ROUTE ✖ method-not-allowed method=%s svc=%s corr=%s", + request.method, service_entry.service_name, corr_id) + return JsonResponse( + {'error': f"Method {request.method} not allowed for this endpoint."}, + status=405 + ) + + # Resolve placeholders if present + resolved_endpoint = service_entry.endpoint + if '{' in resolved_endpoint and '}' in resolved_endpoint: + resolved_endpoint_parts = resolved_endpoint.split('/') + incoming_parts = endpoint.split('/') + + # Replace placeholders with actual values from the request path + resolved_endpoint = '/'.join( + incoming if placeholder.startswith("{") and placeholder.endswith("}") else placeholder + for placeholder, incoming in zip(resolved_endpoint_parts, incoming_parts) + ) + + # -------- Build upstream URL (query handled via params=request.GET) -------- + upstream_url = f"{service_entry.base_url}{resolved_endpoint.lstrip('/')}" + LOG.info("GK ROUTE → upstream=%s svc=%s corr=%s", + upstream_url, service_entry.service_name, corr_id) + + # Construct the target service URL + # print("service_entry.base_url: ", service_entry.base_url) + # url = f"{service_entry.base_url}{resolved_endpoint.lstrip('/')}" + + # query_string = request.META.get('QUERY_STRING', '') + # + # if query_string: + # url = f"{url}?{query_string}" + + # -------- Forward headers (strip hop-by-hop; add X-Forwarded-*; propagate corr id) -------- + hop_by_hop = { + "host", "connection", "keep-alive", "proxy-authenticate", "proxy-authorization", + "te", "trailers", "transfer-encoding", "upgrade" + } + + # LOG.info("GK IN ↘ method=%s path=%s svc=%s url=%s ip=%s ct=%s cl=%s corr=%s", + # request.method, path, service_entry.service_name, "TBD", client_ip, req_ct, req_cl, corr_id) + + forward_headers = {} + for k, v in request.headers.items(): + if k.lower() not in hop_by_hop: + forward_headers[k] = v + + # Normalise forwards + existing_xff = forward_headers.get("X-Forwarded-For") + forward_headers["X-Forwarded-For"] = f"{existing_xff}, {client_ip}" if existing_xff else (client_ip or "-") + forward_headers["X-Forwarded-Proto"] = request.scheme + forward_headers["X-Request-ID"] = corr_id + + LOG.debug("GK HEADERS → base=%s Auth=%s Content-Type=%s corr=%s", + service_entry.base_url, + self._scrub_auth(request.headers.get("Authorization")), + req_ct, corr_id) + + # Read the exact bytes once + raw_body = request.body + body_len = len(raw_body or b"") + boundary = None + m = re.search(r'boundary=([^;]+)', req_ct or "") + if m: + boundary = m.group(1) + + # For JSON/text, preview first 300 chars; for others, just size/boundary + if req_ct.startswith("application/json"): + preview = raw_body.decode(errors="ignore")[:300] + LOG.debug("GK BODY (json) len=%s preview=%r corr=%s", body_len, preview, corr_id) + elif req_ct.startswith("multipart/form-data"): + LOG.debug("GK BODY (multipart) len=%s boundary=%s corr=%s", body_len, boundary, corr_id) + else: + LOG.debug("GK BODY (octet/other) len=%s ct=%s corr=%s", body_len, req_ct, corr_id) + + # 3) Build kwargs for the upstream request + request_kwargs = { + "headers": forward_headers, + "params": request.GET, # keep query string + "stream": True, # stream response back + "timeout": (10, 300), # (connect, read) + } + + # POST/PUT/PATCH/DELETE may carry bodies; GET usually shouldn't + method = request.method.upper() + if method in ("POST", "PUT", "PATCH", "DELETE"): + # Always pass exact bytes to preserve multipart boundary & file payload + request_kwargs["data"] = raw_body + + # -------- Call upstream -------- + resp = requests.request(method, upstream_url, **request_kwargs) + + resp_ct = resp.headers.get("Content-Type", "") + resp_cl = resp.headers.get("Content-Length") + LOG.info("GK OUT ↗ method=%s status=%s ct=%s cl=%s corr=%s", + method, resp.status_code, resp_ct, resp_cl, corr_id) + + if resp.status_code >= 400: + try: + if ("application/json" in resp_ct) or ("text/" in resp_ct): + LOG.warning("UPSTREAM ERR preview corr=%s: %s", corr_id, resp.text[:1500]) + else: + LOG.warning("UPSTREAM ERR non-text body corr=%s", corr_id) + except Exception: + LOG.warning("UPSTREAM ERR (no preview) corr=%s", corr_id) + + excluded_resp = {"content-encoding", "transfer-encoding", "connection"} + django_resp = StreamingHttpResponse(resp.iter_content(chunk_size=64 * 1024), + status=resp.status_code) + + for k, v in resp.headers.items(): + if k.lower() not in excluded_resp: + django_resp[k] = v + + return django_resp + + # data = None + # json_data = None + # + # try: + # json_data = request.data + # except Exception as e: + # # Fallback to raw body if something goes wrong (e.g., invalid JSON) + # try: + # data = request.body + # except Exception as e2: + # logging.error(f"Error parsing request body. JSON error: {e}, fallback error: {e2}") + # return JsonResponse({ + # 'error': 'Failed to parse request body. Please ensure it is valid JSON or form data.' + # }, status=status.HTTP_400_BAD_REQUEST) + # + # # Forward the request based on the HTTP method + # request_kwargs = { + # 'headers': headers, + # 'json': json_data if json_data is not None else None, + # 'data': None if json_data is not None else data + # } + # + # if request.method == 'GET': + # response = requests.get(url, headers=headers, params=request.GET) + # elif request.method == 'POST': + # response = requests.post(url, **request_kwargs) + # elif request.method == 'PUT': + # response = requests.put(url, **request_kwargs) + # elif request.method == 'DELETE': + # response = requests.delete(url, **request_kwargs) + # elif request.method == 'PATCH': + # response = requests.patch(url, **request_kwargs) + # else: + # return JsonResponse({'error': 'Unsupported HTTP method.'}, + # status=status.HTTP_405_METHOD_NOT_ALLOWED) + # + # # Return the response from the proxied service + # return HttpResponse( + # response.content, + # status=response.status_code, + # content_type=response.headers.get('Content-Type', 'application/json') + # ) + + except Exception as e: + LOG.error("GK FATAL corr=%s error=%s", corr_id if 'corr_id' in locals() else "-", str(e), exc_info=True) + return JsonResponse( + {'error': "An internal server error occurred. Please try again later."}, + status=status.HTTP_500_INTERNAL_SERVER_ERROR + ) + + def get(self, request, path): + return self.dispatch_request(request, path) + + def post(self, request, path): + return self.dispatch_request(request, path) + + def put(self, request, path): + return self.dispatch_request(request, path) + + def delete(self, request, path): + return self.dispatch_request(request, path) + + def patch(self, request, path): + return self.dispatch_request(request, path) + diff --git a/aegis/views/auth_views.py b/aegis/views/auth_views.py new file mode 100644 index 0000000..7627555 --- /dev/null +++ b/aegis/views/auth_views.py @@ -0,0 +1,146 @@ +# views/auth_views.py + +import requests + +# from django import forms +from django.conf import settings +from django.http import HttpResponseRedirect +from django.urls import reverse_lazy +from django.utils.decorators import method_decorator +from django.views.decorators.cache import never_cache +from django.views.generic.edit import FormView + +from rest_framework import status +from rest_framework.permissions import IsAuthenticated +from rest_framework.response import Response +from rest_framework.views import APIView +from urllib.parse import urlencode, urlparse, urlunparse, parse_qs + +from aegis.forms import UserRegistrationForm, UserLoginForm +# from aegis.services.auth_services import register_user + + +@method_decorator(never_cache, name='dispatch') +class LoginView(FormView): + template_name = "auth/login.html" + form_class = UserLoginForm + success_url = reverse_lazy('home') + # success_url = reverse_lazy("aegis:dashboard") + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + context["next"] = self.request.GET.get("next", "") or self.request.POST.get("next", "") + return context + + def get(self, request, *args, **kwargs): + form = self.form_class() + context = self.get_context_data(form=form) + return self.render_to_response(context) + + def post(self, request, *args, **kwargs): + next_url = request.POST.get("next") or request.GET.get("next", "") + + if not next_url: + return HttpResponseRedirect(self.success_url) + + form = self.form_class(request.POST) + + if form.is_valid(): + username = form.cleaned_data["username"] + password = form.cleaned_data["password"] + # service_name = form.cleaned_data["service_name"] + + login_url = f"{settings.INTERNAL_GK_URL}api/login/" + + try: + response = requests.post( + login_url, + data={"username": username, "password": password} + ) + except requests.RequestException as e: + form.add_error(None, f"Could not connect to Gatekeeper: {str(e)}") + return self.render_to_response(self.get_context_data(form=form)) + + if response.status_code == status.HTTP_200_OK: + data = response.json() + access_token = data["access"] + refresh_token = data["refresh"] + + # Determine the redirect URL + if next_url == "FarmCalendar": + next_url = settings.AVAILABLE_SERVICES.get(next_url, {}).get('post_auth') + elif next_url == "IrrigationManagement": + next_url = settings.AVAILABLE_SERVICES.get(next_url, {}).get('post_auth') + elif not next_url: + next_url = self.success_url + + # Parse and update the URL with the access token + url_parts = list(urlparse(next_url)) + query = parse_qs(url_parts[4]) # Parse the existing query string + + query["access_token"] = access_token + query["refresh_token"] = refresh_token + url_parts[4] = urlencode(query, doseq=True) + + # Final redirect URL with tokens + redirect_url = urlunparse(url_parts) + + return HttpResponseRedirect(redirect_url) + + else: + form.add_error(None, "Invalid credentials") + + return self.render_to_response(self.get_context_data(form=form)) + + +# @method_decorator(never_cache, name='dispatch') +# class RegisterView(FormView): +# template_name = "auth/register.html" +# form_class = UserRegistrationForm +# success_url = reverse_lazy("login") +# +# def get_context_data(self, **kwargs): +# context = super().get_context_data(**kwargs) +# context["next"] = self.request.GET.get("next", "") or self.request.POST.get("next", "") +# return context +# +# def get(self, request, *args, **kwargs): +# form = self.form_class() +# context = self.get_context_data(form=form) +# return self.render_to_response(context) +# +# def post(self, request, *args, **kwargs): +# next_url = request.POST.get("next") or request.GET.get("next", "") +# form = self.form_class(request.POST) +# +# if form.is_valid(): +# try: +# # Register the user +# register_user( +# username=form.cleaned_data["username"], +# email=form.cleaned_data["email"], +# password=form.cleaned_data["password"], +# first_name=form.cleaned_data["first_name"], +# last_name=form.cleaned_data["last_name"], +# # service_name=form.cleaned_data["service_name"], +# ) +# +# if next_url: +# redirect_url = f"{reverse_lazy('login')}?next={next_url}" +# else: +# redirect_url = reverse_lazy("login") +# +# return HttpResponseRedirect(redirect_url) +# +# except forms.ValidationError as e: +# form.add_error(None, str(e)) +# except Exception as e: +# form.add_error(None, f"An unexpected error occurred: {str(e)}") +# +# return self.render_to_response(self.get_context_data(form=form)) + + +class WhoAmIView(APIView): + permission_classes = [IsAuthenticated] + def get(self, request): + return Response({"user": str(request.user)}, status=200) diff --git a/aegis/views/context_processors.py b/aegis/views/context_processors.py new file mode 100644 index 0000000..f116580 --- /dev/null +++ b/aegis/views/context_processors.py @@ -0,0 +1,22 @@ +from aegis.models import AdminMenuMaster +from django.conf import settings + + +def greeting(): + context_data = { + 'greeting': 'Hello, world!', + } + return context_data + + +def get_admin_menu(): + admin_menu = AdminMenuMaster.objects.filter(status=1, deleted=0).order_by('menu_order') + + context_data = { + 'admin_menu': admin_menu + } + return context_data + + +def session_cookie_age(request): + return {'session_cookie_age': settings.SESSION_COOKIE_AGE} diff --git a/aegis/views/home_view.py b/aegis/views/home_view.py new file mode 100644 index 0000000..05abc31 --- /dev/null +++ b/aegis/views/home_view.py @@ -0,0 +1,11 @@ +from django.views.generic import TemplateView + + +class HomeView(TemplateView): + template_name = "index.html" + permission_menu = '' + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + return context + diff --git a/aegis/views/mixins.py b/aegis/views/mixins.py new file mode 100644 index 0000000..8e4f7f6 --- /dev/null +++ b/aegis/views/mixins.py @@ -0,0 +1,155 @@ +from django.views.generic.base import ContextMixin +from django.contrib.auth.models import Permission +from django.shortcuts import redirect +from django.contrib.auth.mixins import UserPassesTestMixin +from django.core.exceptions import ObjectDoesNotExist + +from aegis.models import CustomPermissions, GroupCustomPermissions, PermissionMaster, AdminMenuMaster +from .context_processors import get_admin_menu + + +# Inherits from UserPassesTestMixin to provide a basic framework for permission handling +class CustomPermissionRequiredMixin(UserPassesTestMixin): + permission_menu = '' # Placeholder for the menu that needs permission + + # Override test_func method to define custom logic for permission + def test_func(self): + # If no specific permission is required, return True + if not self.permission_menu: + return True + + # Automatically permit superusers and staff members + if self.request.user.is_superuser: #or self.request.user.is_staff + return True + + if not self.request.user.is_authenticated: # Check if the user is authenticated + return False + + try: + # Get the AdminMenuMaster instance for the relevant menu + menu = AdminMenuMaster.objects.get(menu_route=self.permission_menu) + # Try fetching the associated permission from PermissionMaster model + permission_master = PermissionMaster.objects.get(menu=menu, action='view') + except ObjectDoesNotExist: + # If either menu or permission doesn't exist, deny access + return False + + # Check if the user has the permission + has_permission = CustomPermissions.objects.filter( + user=self.request.user, permission_name=permission_master + ).exists() + + # Check if any of the user's groups have the custom permission (from GroupCustomPermissions model) + has_group_permission = GroupCustomPermissions.objects.filter( + group__in=self.request.user.groups.all(), permission_names=permission_master + ).exists() + + # If either individual or group permission exists, grant access + return has_permission or has_group_permission + + # Redirect to 'backend:dashboard' if the user doesn't have the required permission + def handle_no_permission(self): + return redirect('backend:dashboard') + + +# Inherits from ContextMixin to add extra context data to views +class AdminMenuMixin(ContextMixin): + + # Retrieves permissions for a given user + def get_permissions(self, user): + if user.is_authenticated: + permissions = {} + + # Model-level permissions + user_permissions = user.user_permissions.all() + group_permissions = Permission.objects.filter(group__in=user.groups.all()).distinct() + + # Convert Django permissions into a dictionary + for perm in user_permissions: + permissions[perm.codename] = True + for perm in group_permissions: + permissions[perm.codename] = True + + # Custom user permissions + custom_user_permissions = CustomPermissions.objects.filter(user=user, status=True) + for perm in custom_user_permissions: + permissions[str(perm.permission_name)] = True # Ensure the name is formatted as a string + + # Custom group permissions + custom_group_permissions = GroupCustomPermissions.objects.filter(group__in=user.groups.all(), status=True) + for group_perm in custom_group_permissions: + for perm in group_perm.permission_names.all(): + permissions[str(perm)] = True + + # Handle virtual permissions + if PermissionMaster.objects.filter(is_virtual=True).exists(): + virtual_permissions = PermissionMaster.objects.filter(is_virtual=True) + for perm in virtual_permissions: + for action in ['add', 'view', 'edit', 'delete']: + permissions[f'{perm.menu.menu_route}_{action}'] = True + + return {'permissions': permissions} + else: + return {'permissions': {}} + + # Retrieves admin menu items + def get_admin_menu(self): + context = get_admin_menu() + return context + + # Adds additional context data for rendering templates + def can_add(self): + permission_key = f"{self.permission_menu}_add" + permissions = self.get_permissions(self.request.user)['permissions'] + return permissions.get(permission_key, False) + + def can_edit(self): + permission_key = f"{self.permission_menu}_edit" + permissions = self.get_permissions(self.request.user)['permissions'] + return permissions.get(permission_key, False) + + def can_delete(self): + permission_key = f"{self.permission_menu}_delete" + permissions = self.get_permissions(self.request.user)['permissions'] + return permissions.get(permission_key, False) + + def can_view(self): + permission_key = f"{self.permission_menu}_view" + permissions = self.get_permissions(self.request.user)['permissions'] + return permissions.get(permission_key, False) + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + context.update(self.get_admin_menu()) + permissions_context = self.get_permissions(self.request.user) + context.update(permissions_context) + # Update context with specific permissions + context['add_permission'] = self.can_add() + context['edit_permission'] = self.can_edit() + context['delete_permission'] = self.can_delete() + context['view_permission'] = self.can_view() + return context + + +# Inherits from UserPassesTestMixin to check if the user passes a given test, typically a permissions check +class PermissionRequiredMixin(UserPassesTestMixin): + permission_required = None # Placeholder for the required permission. This will be set in the view. + + # Override test_func to specify the permission logic + def test_func(self): + user = self.request.user + + # Allow superusers by default + if user.is_superuser: + return True + + # Check if a specific permission is required and if the user has it + if self.permission_required and user.has_perm(self.permission_required): + return True + + # Default to denying access + return False + + # Handle cases where the user doesn't have the required permission + def handle_no_permission(self): + return redirect('backend:dashboard') diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..7ba038a --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,21 @@ +services: + web: + image: ghcr.io/openagri-eu/openagri-gatekeeper:latest + container_name: django_gatekeeper + restart: no + build: . + env_file: + - .env + volumes: + - .:/var/www + - asset_volume:/var/www/assets + - media_volume:/var/www/media + - logs_volume:/var/www/logs + ports: + - "8001:8001" + +volumes: + asset_volume: + media_volume: + logs_volume: + diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 0000000..07b54e6 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# Exit script on error +set -e + +# Run initial_setup file +echo "Running initial setup" +python3 manage.py initial_setup + +# Start the Django app with waitress +echo "Starting Django server with Waitress..." +exec python3 run_waitress.py diff --git a/gatekeeper/api_utils.py b/gatekeeper/api_utils.py new file mode 100644 index 0000000..8d09704 --- /dev/null +++ b/gatekeeper/api_utils.py @@ -0,0 +1,99 @@ +import requests +import json + +class APIUtils: + BASE_URL = "http://127.0.0.1:8001" + + @staticmethod + def login(username, password): + """ + Logs in a user by obtaining JWT tokens. + + Parameters: + username (str): The username for login. + password (str): The password for login. + + Returns: + dict: A dictionary containing success, tokens, or error message. + """ + url = f"{APIUtils.BASE_URL}/api/login/" + headers = { + "Content-Type": "application/json" + } + payload = { + "username": username, + "password": password + } + + try: + response = requests.post(url, headers=headers, data=json.dumps(payload)) + + if response.status_code == 200: + return { + "success": True, + "access": response.json().get("access"), + "refresh": response.json().get("refresh") + } + elif response.status_code == 400: + return { + "success": False, + "error": response.json() + } + elif response.status_code == 401: + return { + "success": False, + "error": response.json().get("detail", "Unauthorized access.") + } + else: + return { + "success": False, + "error": f"Unexpected status code: {response.status_code}" + } + except requests.exceptions.RequestException as e: + return { + "success": False, + "error": f"Request error: {str(e)}" + } + + @staticmethod + def logout(refresh_token): + """ + Logs out a user by blacklisting the refresh token. + + Parameters: + refresh_token (str): The JWT refresh token to blacklist. + + Returns: + dict: A dictionary containing success message or error details. + """ + url = f"{APIUtils.BASE_URL}/api/logout/" + headers = { + "Content-Type": "application/json" + } + payload = { + "refresh": refresh_token + } + + try: + response = requests.post(url, headers=headers, data=json.dumps(payload)) + + if response.status_code == 200: + return { + "success": True, + "message": response.json().get("success", "Logged out successfully") + } + elif response.status_code == 400: + return { + "success": False, + "error": response.json().get("error", "Invalid or missing refresh token.") + } + else: + return { + "success": False, + "error": f"Unexpected status code: {response.status_code}" + } + except requests.exceptions.RequestException as e: + return { + "success": False, + "error": f"Request error: {str(e)}" + } diff --git a/gatekeeper/common.py b/gatekeeper/common.py new file mode 100644 index 0000000..7ec3295 --- /dev/null +++ b/gatekeeper/common.py @@ -0,0 +1,5 @@ +from django.shortcuts import redirect + + +def custom_page_not_found_view(request, exception): + return redirect('login') diff --git a/gatekeeper/custom_middleware/ForceAppendSlashMiddleware.py b/gatekeeper/custom_middleware/ForceAppendSlashMiddleware.py new file mode 100644 index 0000000..1b045c3 --- /dev/null +++ b/gatekeeper/custom_middleware/ForceAppendSlashMiddleware.py @@ -0,0 +1,17 @@ +from django.shortcuts import redirect +from django.utils.deprecation import MiddlewareMixin + + +class ForceAppendSlashMiddleware(MiddlewareMixin): + def process_request(self, request): + """ + Redirect requests without a trailing slash to the same URL with a trailing slash. + Avoids modifying static/media files. + """ + if request.path.startswith(('/static/', '/media/')): + return None # Don't modify static file requests + + if not request.path.endswith('/') and '.' not in request.path.split('/')[-1]: + return redirect(request.path + '/', permanent=True) # Redirect with trailing slash + + return None diff --git a/gatekeeper/custom_middleware/RequestLoggingMiddleware.py b/gatekeeper/custom_middleware/RequestLoggingMiddleware.py new file mode 100644 index 0000000..6ea77ca --- /dev/null +++ b/gatekeeper/custom_middleware/RequestLoggingMiddleware.py @@ -0,0 +1,42 @@ +from aegis.models import RequestLog + + +class RequestLoggingMiddleware: + def __init__(self, get_response): + self.get_response = get_response + + def process_request(self, request): + # Don't log requests for static files + if request.path.startswith("/assets/"): + return None # Bypass static file requests + + # This method should log the body before any other processing consumes it + body = request.body.decode('utf-8') if request.body else '' + request.logged_body = body # Store it on request if needed later + + def __call__(self, request): + # Don't log requests for static files + if request.path.startswith("/assets/"): + return self.get_response(request) # Bypass logging + + # Access the stored body + body = getattr(request, 'logged_body', '') + + # Ensure user_agent is never None + user_agent = request.META.get('HTTP_USER_AGENT', 'unknown') + + # Log request data + response = self.get_response(request) + + RequestLog.objects.create( + user=getattr(request, 'user', None) if getattr(request, 'user', + None) and request.user.is_authenticated else None, + ip_address=request.META.get('REMOTE_ADDR'), + user_agent=user_agent, + path=request.path, + query_string=request.META.get('QUERY_STRING'), + body=body, + method=request.method, + response_status=response.status_code + ) + return response diff --git a/gatekeeper/custom_middleware/__init__.py b/gatekeeper/custom_middleware/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/gatekeeper/env_helpers.py b/gatekeeper/env_helpers.py new file mode 100644 index 0000000..1fba485 --- /dev/null +++ b/gatekeeper/env_helpers.py @@ -0,0 +1,9 @@ +import os +from django.core.exceptions import ImproperlyConfigured + + +def get_env_var(var_name): + try: + return os.environ[var_name] + except KeyError: + raise ImproperlyConfigured(f'"{var_name}" was not set as an env variable.') diff --git a/gatekeeper/forms.py b/gatekeeper/forms.py new file mode 100644 index 0000000..49325eb --- /dev/null +++ b/gatekeeper/forms.py @@ -0,0 +1,53 @@ +from django import forms +from django.contrib.auth.forms import AuthenticationForm, UserCreationForm +from crispy_forms.helper import FormHelper +from crispy_forms.layout import Submit + +from aegis.models import DefaultAuthUserExtend + + +class RegisterForm(UserCreationForm): + email = forms.EmailField(required=True) + + class Meta: + model = DefaultAuthUserExtend + fields = ["username", "email", "password1", "password2"] + + def __init__(self, *args, **kwargs): + super(RegisterForm, self).__init__(*args, **kwargs) + self.helper = FormHelper() + self.helper.form_method = 'post' + self.helper.add_input(Submit('submit', 'Register')) + + def clean_email(self): + email = self.cleaned_data.get('email') + if DefaultAuthUserExtend.objects.filter(email=email).exists(): + raise forms.ValidationError("This email is already registered.") + return email + + +class LoginForm(AuthenticationForm): + next = forms.CharField(widget=forms.HiddenInput(), required=False) + + def __init__(self, *args, **kwargs): + super(LoginForm, self).__init__(*args, **kwargs) + self.helper = FormHelper() + self.helper.form_method = 'post' + self.helper.add_input(Submit('submit', 'Login')) + + +class PasswordResetForm(forms.Form): + email = forms.EmailField() + new_password1 = forms.CharField(widget=forms.PasswordInput) + new_password2 = forms.CharField(widget=forms.PasswordInput) + + def clean(self): + cleaned_data = super().clean() + password1 = cleaned_data.get("new_password1") + password2 = cleaned_data.get("new_password2") + + if password1 and password2 and password1 != password2: + raise forms.ValidationError("Passwords do not match.") + + return cleaned_data + diff --git a/gatekeeper/middleware.py b/gatekeeper/middleware.py new file mode 100644 index 0000000..52d2327 --- /dev/null +++ b/gatekeeper/middleware.py @@ -0,0 +1,29 @@ +# middleware.py + +from django.http import JsonResponse +from django.shortcuts import redirect +from urllib.parse import urlencode + +from rest_framework_simplejwt.tokens import AccessToken + + +def jwt_middleware(get_response): + def middleware(request): + access_token = request.GET.get('access_token') + next_param = request.GET.get('next') + + # Check for access_token presence + if not access_token: + if next_param: + login_url = f"http://127.0.0.1:8001/login/?{urlencode({'next': next_param})}" + else: + login_url = '/login' + return redirect(login_url) + + try: + AccessToken(access_token) + except Exception as e: + return JsonResponse({"error": "Invalid or expired token"}, status=401) + + return get_response(request) + return middleware diff --git a/gatekeeper/settings.py b/gatekeeper/settings.py index 03b183e..7a5efa8 100644 --- a/gatekeeper/settings.py +++ b/gatekeeper/settings.py @@ -1,26 +1,152 @@ +import dj_database_url import os +import re -from pathlib import Path +from datetime import timedelta from dotenv import load_dotenv +from pathlib import Path -load_dotenv() +from django.contrib.messages import constants as messages +from .env_helpers import get_env_var + +load_dotenv() # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent - -# Quick-start development settings - unsuitable for production -# See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/ +# Define the log directory +LOG_DIR = os.path.join(BASE_DIR, 'logs') +if not os.path.exists(LOG_DIR): + os.makedirs(LOG_DIR) # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = 'django-insecure-6s%ry4k3qqh0(tu8=3z35+vy7mh86_6u-1ce@by0fb5wqx_-^n' +SECRET_KEY = get_env_var('DJANGO_SECRET_KEY') -# SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True +JWT_SIGNING_KEY = get_env_var('JWT_SIGNING_KEY') +JWT_ALG = os.environ.get('JWT_ALG', "HS256") +JWT_ACCESS_TOKEN_MINUTES = int(os.getenv("JWT_ACCESS_TOKEN_MINUTES", "60")) +JWT_REFRESH_TOKEN_DAYS = int(os.getenv("JWT_REFRESH_TOKEN_DAYS", "30")) -ALLOWED_HOSTS = [] +# geting from env var from now, but in the future this infos should +# come with the service registration post request +AVAILABLE_SERVICES = { + 'FarmCalendar': + { + 'api': os.getenv('FARM_CALENDAR_API', 'http://127.0.0.1:8002/api/'), + 'post_auth': os.getenv('FARM_CALENDAR_POST_AUTH', 'http://127.0.0.1:8002/post_auth/') + }, + 'IrrigationManagement': + { + 'api': os.getenv('IRM_API', 'http://127.0.0.1:5173/api/'), + 'post_auth': os.getenv('IRM_POST_AUTH', 'http://127.0.0.1:5173/post_auth/') + } +} +INTERNAL_GK_URL = os.getenv('INTERNAL_GK_URL', 'http://gatekeeper:8001/') + +# Default DEBUG to False +DEBUG = os.getenv('DJANGO_DEBUG', 'False') == 'True' +# DEBUG = 'DJANGO_DEBUG' in os.environ and os.getenv('DJANGO_DEBUG', '').strip().lower() in ('true', '1', 't') + +ALLOWED_HOSTS = ['localhost', '127.0.0.1', '[::1]'] +EXTRA_ALLOWED_HOSTS = os.environ.get('EXTRA_ALLOWED_HOSTS', '') + +if EXTRA_ALLOWED_HOSTS: + EXTRA_ALLOWED_HOSTS = [host.strip() for host in EXTRA_ALLOWED_HOSTS.split(',') if host.strip()] + ALLOWED_HOSTS.extend(EXTRA_ALLOWED_HOSTS) + +ALLOWED_HOSTS = list(dict.fromkeys(ALLOWED_HOSTS)) + +def generate_csrf_trusted_origins(base_domains): + origins = [] + dev_ports = ["8001", "8002", "8003", "8004", "8005", "8006"] + for base in base_domains: + base = base.strip() + if not base: + continue + + # Normalise '.example.com' -> 'example.com' + if base.startswith('.'): + base = base[1:] + + if base in ("localhost", "127.0.0.1", "[::1]"): + # Local dev: accept http/https and common ports + origins.append(f"http://{base}") + origins.append(f"https://{base}") + for port in dev_ports: + origins.append(f"http://{base}:{port}") + else: + # Public base: allow exact and wildcard subdomains + origins.append(f"https://{base}") + origins.append(f"https://*.{base}") + + # De-duplicate while keeping order + seen = set() + deduped = [] + for o in origins: + if o not in seen: + seen.add(o) + deduped.append(o) + return deduped + + +_extra_hosts_raw = os.getenv("EXTRA_ALLOWED_HOSTS", "") +_extra_hosts = [h.strip() for h in _extra_hosts_raw.split(",") if h.strip()] + +BASE_DOMAINS = ["localhost", "127.0.0.1", "[::1]"] +for h in _extra_hosts: + if h.startswith("."): + BASE_DOMAINS.append(h.lstrip(".")) # ".example.com" -> "example.com" + elif h.count(".") == 1 and not h.startswith("."): + BASE_DOMAINS.append(h) # treat bare base as a base + +BASE_DOMAINS = list(dict.fromkeys(BASE_DOMAINS)) + +# CSRF: build once, from BASE_DOMAINS (includes wildcard for subdomains) +CSRF_TRUSTED_ORIGINS = generate_csrf_trusted_origins(BASE_DOMAINS) + +# Behind Traefik at proxy: trust forwarded scheme/host for CSRF/redirects +SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') +USE_X_FORWARDED_HOST = True + +# Secure cookies +CSRF_COOKIE_SECURE = not DEBUG +SESSION_COOKIE_SECURE = not DEBUG + +# Scope CORS to API paths +CORS_URLS_REGEX = r"^/api/.*$" + +# CORS: allow base domain and any subdomain for each BASE_DOMAIN; plus localhost +CORS_ALLOWED_ORIGIN_REGEXES = [] +for base in BASE_DOMAINS: + d = base.lstrip(".").strip() + if not d: + continue + + if d in ("localhost", "127.0.0.1", "[::1]"): + # Local dev, http/https with optional port + CORS_ALLOWED_ORIGIN_REGEXES.extend([ + r"^http://localhost(?::\d+)?$", + r"^http://127\.0\.0\.1(?::\d+)?$", + r"^https://localhost(?::\d+)?$", + r"^https://127\.0\.0\.1(?::\d+)?$", + ]) + else: + # Allow base and any depth of subdomains over https + CORS_ALLOWED_ORIGIN_REGEXES.append( + rf"^https://([a-z0-9-]+\.)*{re.escape(d)}$" + ) + +# De-duplicate (preserve order) +CORS_ALLOWED_ORIGIN_REGEXES = list(dict.fromkeys(CORS_ALLOWED_ORIGIN_REGEXES)) + +CORS_ALLOW_CREDENTIALS = True + +CORS_ALLOW_HEADERS = ["authorization", "content-type", "x-csrftoken"] +CORS_ALLOW_METHODS = ["GET", "POST", "OPTIONS", "PUT", "PATCH", "DELETE"] + +APPEND_SLASH = True # Application definition DEFAULT_APPS = [ @@ -33,39 +159,50 @@ ] LOCAL_APPS = [ + # "aegis" "aegis.apps.AegisConfig", # The app that contains auth logic, configured using the app's AppConfig. ] THIRD_PARTY_APPS = [ - # allauth apps + "crispy_forms", + "crispy_bootstrap4", 'django.contrib.sites', - 'allauth', - 'allauth.account', - 'allauth.socialaccount', + 'rest_framework', + 'drf_yasg', + # 'oauth2_provider', + 'rest_framework_simplejwt.token_blacklist', + 'corsheaders' ] INSTALLED_APPS = DEFAULT_APPS + LOCAL_APPS + THIRD_PARTY_APPS - AUTHENTICATION_BACKENDS = ( 'django.contrib.auth.backends.ModelBackend', - 'allauth.account.auth_backends.AuthenticationBackend', ) SITE_ID = 1 +CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap4" +CRISPY_TEMPLATE_PACK = "bootstrap4" + +LOGIN_URL = "login/" +LOGIN_REDIRECT_URL = 'aegis/dashboard/' # Redirect to the login page +LOGOUT_REDIRECT_URL = 'login' # Redirect to the login page after logging out + MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', + 'corsheaders.middleware.CorsMiddleware', + "whitenoise.middleware.WhiteNoiseMiddleware", 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', - - 'allauth.account.middleware.AccountMiddleware', + 'gatekeeper.custom_middleware.ForceAppendSlashMiddleware.ForceAppendSlashMiddleware', + # 'gatekeeper.custom_middleware.RequestLoggingMiddleware.RequestLoggingMiddleware', ] ROOT_URLCONF = 'gatekeeper.urls' @@ -73,7 +210,7 @@ TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [], + "DIRS": [os.path.join(BASE_DIR, "templates")], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ @@ -82,30 +219,24 @@ 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], + # Controls whether the template system should be in debug mode. + "debug": True, }, }, ] WSGI_APPLICATION = 'gatekeeper.wsgi.application' -ACCOUNT_AUTHENTICATION_METHOD = 'email' -ACCOUNT_EMAIL_REQUIRED = True -ACCOUNT_USERNAME_REQUIRED = False -ACCOUNT_EMAIL_VERIFICATION = 'mandatory' - # Database # https://docs.djangoproject.com/en/4.2/ref/settings/#databases - DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.mysql', - 'NAME': os.getenv("MYSQL_DB"), - 'USER': os.getenv("MYSQL_USER"), - 'PASSWORD': os.getenv("MYSQL_PASS"), - 'HOST': os.getenv("MYSQL_HOST"), - 'PORT': os.getenv("MYSQL_PORT"), - }, + 'default': dj_database_url.config( + default=( + f'mysql://{os.getenv("DB_USER")}:{os.getenv("DB_PASS")}@' + f'{os.getenv("DB_HOST")}:{os.getenv("DB_PORT")}/{os.getenv("DB_NAME")}' + ) + ) } @@ -127,11 +258,22 @@ }, ] +# MESSAGE_TAGS setting maps Django's built-in message levels to CSS classes used by the front-end framework +# (e.g., Bootstrap). +# This allows messages from Django's messaging framework to be styled appropriately in the web interface. +MESSAGE_TAGS = { + messages.DEBUG: "alert-info", + messages.INFO: "alert-info", + messages.SUCCESS: "alert-success", + messages.WARNING: "alert-warning", + messages.ERROR: "alert-danger", +} + # Internationalization # https://docs.djangoproject.com/en/4.2/topics/i18n/ -LANGUAGE_CODE = 'en-us' +LANGUAGE_CODE = 'en-gb' TIME_ZONE = 'UTC' @@ -139,16 +281,136 @@ USE_TZ = True +# WhiteNoise requires STATICFILES_STORAGE +STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage" + +# STATIC_URL is the URL to use when referring to static files (like CSS, JavaScript, and images) in templates. +STATIC_URL = "/assets/" -# Static files (CSS, JavaScript, Images) -# https://docs.djangoproject.com/en/4.2/howto/static-files/ +# This setting defines the list of directories where Django will look for additional static files, in addition to +# each app's static folder. +# STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] +STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")] if DEBUG else [] -STATIC_URL = 'static/' +# STATIC_ROOT is the directory where these static files will be collected when you run collectstatic. +STATIC_ROOT = os.path.join(BASE_DIR, 'assets') + +AUTH_EXEMPT_PATHS = ["/assets/"] # Default primary key field type # https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field - DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' # Custom user model replacing the default Django user model. AUTH_USER_MODEL = 'aegis.DefaultAuthUserExtend' + +DJANGO_PORT = os.getenv('DJANGO_PORT', '8001') + + +# same with this data, also cames in the service announcement +# in the service registration endpoint +REVERSE_PROXY_MAPPING = { + 'FarmActivities': 'FarmCalendar', + 'FarmActivityTypes': 'FarmCalendar', + 'FarmAssets': 'FarmCalendar', + 'FarmPlants': 'FarmCalendar', + 'WeeklyWeatherForecast': 'WeatherService', +} + +SIMPLE_JWT = { + 'ACCESS_TOKEN_LIFETIME': timedelta(minutes=JWT_ACCESS_TOKEN_MINUTES), + 'REFRESH_TOKEN_LIFETIME': timedelta(days=JWT_REFRESH_TOKEN_DAYS), + 'ROTATE_REFRESH_TOKENS': False, + # 'BLACKLIST_AFTER_ROTATION': True, # Don't need this as refresh token rotation is false + 'UPDATE_LAST_LOGIN': True, + + 'ALGORITHM': JWT_ALG, + 'SIGNING_KEY': JWT_SIGNING_KEY, + 'VERIFYING_KEY': None, + 'AUDIENCE': None, + 'ISSUER': None, + 'JWK_URL': None, + 'LEEWAY': 0, + + 'AUTH_HEADER_TYPES': ('Bearer',), + 'AUTH_HEADER_NAME': 'HTTP_AUTHORIZATION', + 'USER_ID_FIELD': 'uuid', + 'USER_ID_CLAIM': 'user_id', + 'USER_AUTHENTICATION_RULE': 'rest_framework_simplejwt.authentication.default_user_authentication_rule', +} + +REST_FRAMEWORK = { + 'DEFAULT_AUTHENTICATION_CLASSES': ( + # 'rest_framework_simplejwt.authentication.JWTAuthentication', + 'aegis.authentication.JWTAuthenticationWithDenylist', + # 'oauth2_provider.contrib.rest_framework.OAuth2Authentication', + ), + 'DEFAULT_PERMISSION_CLASSES': ( + 'rest_framework.permissions.IsAuthenticated', + ), + 'DEFAULT_THROTTLE_CLASSES': [ + 'rest_framework.throttling.UserRateThrottle', + 'rest_framework.throttling.AnonRateThrottle' + ], + 'DEFAULT_THROTTLE_RATES': { + 'user': '10000/day', + 'anon': '100/hour' + } +} + +# OAUTH2_PROVIDER = { +# 'ACCESS_TOKEN_EXPIRE_SECONDS': 36000, +# 'REFRESH_TOKEN_EXPIRE_SECONDS': 864000, +# +# 'SCOPES': { +# 'read': 'Read scope', +# 'write': 'Write scope', +# 'groups': 'Access to your groups', +# } +# } + +LOGGING = { + 'version': 1, + 'disable_existing_loggers': False, + 'formatters': { + 'verbose': { + 'format': '{levelname} {asctime} {module} {message}', + 'style': '{', + }, + }, + 'handlers': { + 'file': { + 'level': 'DEBUG', + 'class': 'logging.FileHandler', + 'filename': os.path.join(LOG_DIR, 'django_tests.log'), + 'formatter': 'verbose', + }, + 'console': { + 'level': 'DEBUG', + 'class': 'logging.StreamHandler', + 'formatter': 'verbose', + }, + }, + 'loggers': { + 'django': { + 'handlers': ['file', 'console'], + 'level': 'INFO', + 'propagate': True, + }, + 'django.db.backends': { + 'handlers': ['file', 'console'], + 'level': 'WARNING', + 'propagate': False, + }, + 'aegis': { + 'handlers': ['file', 'console'], + 'level': 'INFO', + 'propagate': True, + }, + }, +} + +FARM_CALENDAR = os.getenv('FARM_CALENDAR') +IRM = os.getenv('IRM') + +GATEKEEPER_URL = os.getenv('GATEKEEPER_URL') diff --git a/gatekeeper/urls.py b/gatekeeper/urls.py index 200294c..ab63b0a 100644 --- a/gatekeeper/urls.py +++ b/gatekeeper/urls.py @@ -1,23 +1,66 @@ -""" -URL configuration for gatekeeper project. - -The `urlpatterns` list routes URLs to views. For more information please see: - https://docs.djangoproject.com/en/4.2/topics/http/urls/ -Examples: -Function views - 1. Add an import: from my_app import views - 2. Add a URL to urlpatterns: path('', views.home, name='home') -Class-based views - 1. Add an import: from other_app.views import Home - 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') -Including another URLconf - 1. Import the include() function: from django.urls import include, path - 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) -""" +# gatekeeper/urls.py + +from django.conf import settings +from django.conf.urls.static import static from django.contrib import admin -from django.urls import path, include +from django.db import connection +from django.http import HttpResponse, JsonResponse +from django.urls import path, include, re_path + +from rest_framework_simplejwt.views import TokenRefreshView + +from aegis.views import LoginView, WhoAmIView +from aegis.views.home_view import HomeView +from aegis.views.api.auth_views import LoginAPIView, LogoutAPIView, TokenValidationAPIView, MeAPIView #, RegisterAPIView +from aegis.views.api.service_registry_views import (ServiceDirectoryAPIView, RegisterServiceAPIView, + DeleteServiceAPIView, NewReverseProxyAPIView) +from .common import custom_page_not_found_view + +def robots_txt(request): + return HttpResponse("User-agent: *\nDisallow: /", content_type="text/plain") + +def health_check(request): + try: + # Check database connectivity + with connection.cursor() as cursor: + cursor.execute("SELECT 1") + return JsonResponse({"status": "ready"}, status=200) + except Exception as e: + return JsonResponse({"status": "error", "message": str(e)}, status=500) urlpatterns = [ + # path('o/', include('oauth2_provider.urls', namespace='oauth2_provider')), + + path('', HomeView.as_view(), name='home'), + path('admin/', admin.site.urls), - path('accounts/', include('allauth.urls')), + + path('login/', LoginView.as_view(), name='login'), + # path('register/', RegisterView.as_view(), name='register'), + + path('api/me/', MeAPIView.as_view(), name='api_me'), + path('api/login/', LoginAPIView.as_view(), name='api_login'), + path('api/logout/', LogoutAPIView.as_view(), name='api_logout'), + # path('api/register/', RegisterAPIView.as_view(), name='api_register'), + path('api/validate_token/', TokenValidationAPIView.as_view(), name='validate_token'), + path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'), + + path('api/register_service/', RegisterServiceAPIView.as_view(), name='register_service'), + path('api/service_directory/', ServiceDirectoryAPIView.as_view(), name='service_directory'), + path('api/delete_service/', DeleteServiceAPIView.as_view(), name='delete_service'), + + re_path(r'^api/proxy/(?P.*)$', NewReverseProxyAPIView.as_view(), name='new_reverse_proxy'), + + path('aegis/', include('aegis.urls', namespace='aegis')), + + path("healthz", health_check, name="health_check"), + path("robots.txt", robots_txt), + + path("api/whoami/", WhoAmIView.as_view(), name="whoami"), ] + +if settings.DEBUG: + urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) + urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + +handler404 = custom_page_not_found_view diff --git a/gatekeeper/views/AuthV.py b/gatekeeper/views/AuthV.py new file mode 100644 index 0000000..5974ea7 --- /dev/null +++ b/gatekeeper/views/AuthV.py @@ -0,0 +1,168 @@ +import jwt +import logging +import os +from datetime import datetime, timedelta +from urllib.parse import urlencode + +from django.views.generic import TemplateView +from django.conf import settings +from django.contrib.auth import login as auth_login +from django.views.decorators.cache import never_cache +from django.utils.decorators import method_decorator +from django.shortcuts import render, redirect +from django.urls import reverse, resolve, Resolver404 +from django.http import HttpResponseRedirect + +from gatekeeper.forms import LoginForm, RegisterForm, PasswordResetForm +from aegis.models import DefaultAuthUserExtend + +logger = logging.getLogger('aegis') + +# Secret keys for JWT encoding +ACCESS_TOKEN_SECRET = os.getenv('ACCESS_TOKEN_SECRET', 'default_access_token_secret') +REFRESH_TOKEN_SECRET = os.getenv('REFRESH_TOKEN_SECRET', 'default_refresh_token_secret') + +# Token expiration times +# ACCESS_TOKEN_EXPIRATION = timedelta(minutes=10080) +# REFRESH_TOKEN_EXPIRATION = timedelta(days=90) +JWT_EXPIRATION = timedelta(hours=1) + + +@method_decorator(never_cache, name='dispatch') +class LoginView(TemplateView): + template_name = "auth/login.html" + + def get(self, request, *args, **kwargs): + if request.user.is_authenticated: + next_url = request.session.get('next', '') + if next_url: + return redirect(next_url) + return redirect('aegis:dashboard') + + next_url = request.GET.get('next', '') + if next_url: + request.session['next'] = next_url + + logger.info("Login view accessed") + form = LoginForm(initial={'next': next_url}) + context = self.get_context_data(**kwargs) + context['form'] = form + return render(request, self.template_name, context) + + def post(self, request, *args, **kwargs): + form = LoginForm(request, data=request.POST) + next_url = request.session.get('next', '') + if form.is_valid(): + user = form.get_user() + auth_login(request, user) + + # Generate tokens + jwt_token = self.generate_token(user.id, settings.JWT_SIGNING_KEY, JWT_EXPIRATION) + + service_post_auth_url = settings.AVAILABLE_SERVICES.get(next_url, {}).get('post_auth') + # redirect to external service if it's + # registered with a post_auth url in the available services + if service_post_auth_url is not None: + query_params = {'auth_token': jwt_token} + encoded_params = urlencode(query_params) + redirect_url = f'{service_post_auth_url}?{encoded_params}' + response = HttpResponseRedirect(redirect_url) + else: + response = HttpResponseRedirect(next_url or reverse('aegis:dashboard')) + + # Set cookies + # response.set_cookie('access_token', access_token) + # response.set_cookie('refresh_token', refresh_token, httponly=True) + # response.set_cookie('jwt', jwt_token) + + # Clear the next URL from session after successful login + if next_url: + del request.session['next'] + return response + context = self.get_context_data(**kwargs) + context['form'] = form + context['next'] = next_url + return render(request, self.template_name, context) + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + return context + + def is_valid_url(self, url): + """ + Check if the URL is valid and can be resolved to a view. + """ + try: + resolve(url) + return True + except Resolver404: + return False + + def generate_token(self, user_id, secret, expiration): + """ + Generate a JWT token. + """ + payload = { + 'user_id': user_id, + 'exp': datetime.utcnow() + expiration, + 'iat': datetime.utcnow() + } + return jwt.encode(payload, secret, algorithm='HS256') + + +@method_decorator(never_cache, name='dispatch') +class RegisterView(TemplateView): + form_class = RegisterForm + template_name = 'auth/register.html' + + def get(self, request, *args, **kwargs): + form = self.form_class() + context = self.get_context_data(**kwargs) + context['form'] = form + return render(request, self.template_name, context) + + def post(self, request, *args, **kwargs): + form = self.form_class(request.POST) + if form.is_valid(): + user = form.save() + auth_login(request, user) + return redirect('home') # Redirect to a success page. + context = self.get_context_data(**kwargs) + context['form'] = form + return render(request, self.template_name, context) + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + return context + + +@method_decorator(never_cache, name='dispatch') +class PasswordResetView(TemplateView): + template_name = 'auth/password_reset.html' + form_class = PasswordResetForm + + def get(self, request, *args, **kwargs): + form = self.form_class() + context = self.get_context_data(**kwargs) + context['form'] = form + return render(request, self.template_name, context) + + def post(self, request, *args, **kwargs): + form = self.form_class(request.POST) + if form.is_valid(): + email = form.cleaned_data.get('email') + new_password = form.cleaned_data.get('new_password1') + try: + user = DefaultAuthUserExtend.objects.get(email=email) + user.set_password(new_password) + user.save() + logger.info("Password reset for user with email: {}".format(email)) + auth_login(request, user) + return redirect('home') + except DefaultAuthUserExtend.DoesNotExist: + form.add_error('email', 'Email address not found.') + + context = self.get_context_data(**kwargs) + context['form'] = form + return render(request, self.template_name, context) + diff --git a/gatekeeper/views/__init__.py b/gatekeeper/views/__init__.py new file mode 100644 index 0000000..75d1705 --- /dev/null +++ b/gatekeeper/views/__init__.py @@ -0,0 +1,2 @@ +from .AuthV import LoginView, RegisterView, PasswordResetView +# from .api_reverse_proxy import reverse_proxy diff --git a/gatekeeper/views/api_reverse_proxy.py b/gatekeeper/views/api_reverse_proxy.py new file mode 100644 index 0000000..86f90b5 --- /dev/null +++ b/gatekeeper/views/api_reverse_proxy.py @@ -0,0 +1,43 @@ +# from django.http import JsonResponse, HttpResponse +# from django.conf import settings +# from rest_framework.permissions import IsAuthenticated +# from rest_framework.decorators import api_view, permission_classes +# +# import requests +# +# @api_view(['GET', 'POST', 'PUT', 'DELETE']) +# @permission_classes([IsAuthenticated]) +# def reverse_proxy(request, path): +# +# provider_api = None +# for open_agri_entity, resource_provider_id in settings.REVERSE_PROXY_MAPPING.items(): +# if open_agri_entity in path: +# provider_api = settings.AVAILABLE_SERVICES.get(resource_provider_id, {}).get('api') +# if provider_api is None: +# return JsonResponse({'error': 'No service can provide this resource.'}, status=405) +# +# url = f"{provider_api}{path}" +# method = request.method +# +# # Forward the request headers and body +# headers = {key: value for key, value in request.headers.items() if key != 'Host'} +# data = request.body +# +# # Forward the request based on the HTTP method +# if method == 'POST': +# response = requests.post(url, headers=headers, data=data) +# elif method == 'GET': +# response = requests.get(url, headers=headers, params=request.GET) +# elif method == 'PUT': +# response = requests.put(url, headers=headers, data=data) +# elif method == 'DELETE': +# response = requests.delete(url, headers=headers, data=data) +# else: +# return JsonResponse({'error': 'Method not supported'}, status=405) +# +# # Create a Django response object with the same status code and content +# return HttpResponse( +# response.content, +# status=response.status_code, +# content_type=response.headers.get('Content-Type', 'application/json') +# ) diff --git a/gatekeeper/views/gateway_api_view.py b/gatekeeper/views/gateway_api_view.py new file mode 100644 index 0000000..623a3ca --- /dev/null +++ b/gatekeeper/views/gateway_api_view.py @@ -0,0 +1,96 @@ +# import logging +# import re +# import requests +# +# from django.http import JsonResponse, HttpResponse +# from rest_framework.permissions import IsAuthenticated +# from rest_framework.views import APIView +# +# from urllib.parse import urljoin +# +# from aegis.models import RegisteredService +# from aegis.utils.service_utils import match_endpoint, check_service_health +# +# logger = logging.getLogger(__name__) +# +# +# class GatewayAPIView(APIView): +# permission_classes = [IsAuthenticated] +# +# def get(self, request, path=None, *args, **kwargs): +# return self.handle_request(request, path, "GET") +# +# def post(self, request, path=None, *args, **kwargs): +# return self.handle_request(request, path, "POST") +# +# def handle_request(self, request, path, method): +# logger.info(f"Handling {method} request for path: {path}") +# +# # Step 1: Match registered service +# for service in RegisteredService.objects.filter(status=1): # Only check active services +# if match_endpoint(path, f"{service.service_name}/{service.version}/{service.endpoint}"): +# registered_service = service +# break +# else: +# return JsonResponse({"error": "Service not available or endpoint not registered."}, status=404) +# +# # Step 2: Validate service health +# base_url = registered_service.base_url.rstrip("/") +# logger.info(f"Base URL: {base_url}") +# +# if not check_service_health(base_url): +# logger.warning(f"Service health check failed for {base_url}") +# return JsonResponse( +# {"error": f"Service {registered_service.service_name} is temporarily unavailable."}, +# status=503 +# ) +# +# # Step 3: Construct backend URL +# backend_url = registered_service.service_url +# backend_url = self.construct_backend_url( +# registered_service.endpoint, path, base_url, registered_service.service_name, registered_service.version +# ) +# logger.info(f"Constructed backend URL: {backend_url}") +# headers = {"Authorization": request.headers.get("Authorization")} +# print("backend_url: ", backend_url) +# +# try: +# if method == "GET": +# response = requests.get(backend_url, headers=headers, params=request.GET, timeout=10) +# elif method == "POST": +# response = requests.post(backend_url, headers=headers, json=request.data, timeout=10) +# else: +# return JsonResponse({"error": f"Method {method} not supported."}, status=405) +# +# return HttpResponse( +# response.content, +# status=response.status_code, +# content_type=response.headers.get("Content-Type", "application/json") +# ) +# except requests.RequestException as e: +# return JsonResponse({"error": f"Failed to connect to the backend service: {str(e)}"}, status=502) +# +# def construct_backend_url(self, endpoint_template, path, base_url, service_name, version): +# """ +# Construct the backend URL by replacing placeholders in the registered endpoint +# with actual values from the incoming request path. +# """ +# # Split both the incoming path and registered endpoint into segments +# incoming_segments = path.strip("/").split("/") +# registered_segments = f"{service_name}/{version}/{endpoint_template}".strip("/").split("/") +# +# # Map placeholders to actual values +# replacement_map = {} +# for reg_seg, inc_seg in zip(registered_segments, incoming_segments): +# if reg_seg.startswith("{") and reg_seg.endswith("}"): +# key = reg_seg.strip("{}") +# replacement_map[key] = inc_seg +# +# # Replace placeholders in the endpoint with actual values +# for placeholder, value in replacement_map.items(): +# endpoint_template = endpoint_template.replace(f"{{{placeholder}}}", value) +# +# # Construct the full URL including service name and version +# final_endpoint = f"{service_name}/{version}/{endpoint_template.lstrip('/')}" +# return f"{base_url.rstrip('/')}/{final_endpoint.lstrip('/')}" +# diff --git a/manage.py b/manage.py old mode 100644 new mode 100755 diff --git a/mysql_docker/.env.sample b/mysql_docker/.env.sample new file mode 100644 index 0000000..13c8687 --- /dev/null +++ b/mysql_docker/.env.sample @@ -0,0 +1,9 @@ +MYSQL_DATABASE=gatekeeper +MYSQL_USER=gatekeeper_admin +MYSQL_HOST=localhost +MYSQL_PASSWORD=`~G0Q3,Ju# +MYSQL_ROOT_PASSWORD=`~G0Q3,Ju# +PMA_HOST=mysql +PMA_USER=gatekeeper_admin +PMA_PASSWORD=`~G0Q3,Ju# +COMPOSE_PROJECT_NAME=openagri \ No newline at end of file diff --git a/mysql_docker/Dockerfile b/mysql_docker/Dockerfile index 45ad817..711120e 100644 --- a/mysql_docker/Dockerfile +++ b/mysql_docker/Dockerfile @@ -2,7 +2,7 @@ FROM mysql:8.0 # Add a database ENV MYSQL_DATABASE=gatekeeper -ENV MYSQL_ROOT_PASSWORD= +ENV MYSQL_ROOT_PASSWORD=`~G0Q3,Ju# # Add the content of the sql-scripts/ directory to your image # All scripts in docker-entrypoint-initdb.d/ are automatically diff --git a/mysql_docker/docker-compose.yml b/mysql_docker/docker-compose.yml index a853d59..431e156 100644 --- a/mysql_docker/docker-compose.yml +++ b/mysql_docker/docker-compose.yml @@ -1,36 +1,44 @@ -version: '3.9' - services: - mysql_gatekeeper: + mysql: + image: mysql:8.0 build: . - restart: always - container_name: mysql_gatekeeper_container + restart: no + container_name: oa_gk_mysql_django env_file: - .env + environment: + MYSQL_DATABASE: gatekeeper + MYSQL_ROOT_PASSWORD: asdasdasd + MYSQL_USER: gatekeeper_admin + MYSQL_PASSWORD: asdasdasd ports: - - "3310:3306" + - "3312:3306" volumes: - - mysql_data_gatekeeper:/var/lib/mysql + - oa_gk_volume:/var/lib/mysql networks: - - shared_network_gatekeeper + - oa_network + command: + [ + "--character-set-server=utf8mb4", + "--collation-server=utf8mb4_unicode_ci" + ] phpmyadmin_gatekeeper: image: phpmyadmin/phpmyadmin - container_name: phpmyadmin_gatekeeper_container - restart: always + container_name: oa_gk_phpmyadmin_django + restart: no env_file: - .env ports: - - "8087:80" + - "8088:80" networks: - - shared_network_gatekeeper + - oa_network depends_on: - - mysql_gatekeeper + - mysql volumes: - mysql_data_gatekeeper: {} + oa_gk_volume: {} networks: - shared_network_gatekeeper: + oa_network: driver: bridge - external: true diff --git a/mysql_docker/sql_scripts/01_init.sql b/mysql_docker/sql_scripts/01_init.sql index 92e8a35..dc37bae 100644 --- a/mysql_docker/sql_scripts/01_init.sql +++ b/mysql_docker/sql_scripts/01_init.sql @@ -1,4 +1,4 @@ CREATE DATABASE IF NOT EXISTS gatekeeper; ALTER DATABASE gatekeeper CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -GRANT ALL PRIVILEGES ON gatekeeper.* TO 'gatekeeper_admin'@'%' IDENTIFIED BY '`~G0Q3,Ju#'; +GRANT ALL PRIVILEGES ON gatekeeper.* TO 'gatekeeper_admin'@'%' IDENTIFIED BY 'asdasdasd'; FLUSH PRIVILEGES; \ No newline at end of file diff --git a/nginx/certs/eufarmbooknew_cert.pem b/nginx/certs/eufarmbooknew_cert.pem new file mode 100644 index 0000000..aa665a2 --- /dev/null +++ b/nginx/certs/eufarmbooknew_cert.pem @@ -0,0 +1,36 @@ +-----BEGIN CERTIFICATE----- +MIIGPzCCBCegAwIBAgIUC1GxjOxk2sVGQze14yK8d5wz/NMwDQYJKoZIhvcNAQEL +BQAwga4xCzAJBgNVBAYTAk5MMRAwDgYDVQQIDAdMaW1idXJnMRMwEQYDVQQHDApN +YWFzdHJpY2h0MR4wHAYDVQQKDBVNYWFzdHJpY2h0IFVuaXZlcnNpdHkxETAPBgNV +BAsMCElEUy1EQUNTMRUwEwYDVQQDDAxQcmFuYXYgQmFwYXQxLjAsBgkqhkiG9w0B +CQEWH3AuYmFwYXRAbWFhc3RyaWNodHVuaXZlcnNpdHkubmwwHhcNMjMwNDE5MTQz +MTM2WhcNMjQwNDE4MTQzMTM2WjCBrjELMAkGA1UEBhMCTkwxEDAOBgNVBAgMB0xp +bWJ1cmcxEzARBgNVBAcMCk1hYXN0cmljaHQxHjAcBgNVBAoMFU1hYXN0cmljaHQg +VW5pdmVyc2l0eTERMA8GA1UECwwISURTLURBQ1MxFTATBgNVBAMMDFByYW5hdiBC +YXBhdDEuMCwGCSqGSIb3DQEJARYfcC5iYXBhdEBtYWFzdHJpY2h0dW5pdmVyc2l0 +eS5ubDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOKwhc196xLUmMya +ge3m0FDDIVB7BO6n0zLMKHklC2KGpO45WQc3yoXarbHYQhsXmF4pvx7uu8dgOima +DArX0HY+3QwRGafRpGrbKsOwMLZNYCRXzRs631ZcWzOh9qW7UTBRm3mzlNJcbV0i +H6yMVlmOUTx3hmJKhLPc3GyDWH6LiU99zOs2vgE2bAhkcqPcPVu4hII0/Pp0R6np +4ahzHkvoBWg9Q8u0kIW1dh1aRKCz86wfocWR2/v38qWLLBDN/HR9JtLNG3W3mvLj +S6+qhJ94f8e8JAE1fP6xlyt0QEBx92ZRsyMF8iaoQXL2jPzsMLfcftWnnJGaTNh9 +bYjyQ/q3tt1OrkObsaZjpct/c+JZ1zrYaFAeReha6m3+BdkjTBVjOVyxtJSEH0tz +9Zc0ifSYiE8yKtBWrxIiI28yvALdCgPDTgQlBGHEBrr5m6Tdzc7Tse3Njxb6I0XG +2FFBbeke5WTVzy3p0Y9p/EAv9AEpkhWF2OlDzX4l/SHK34hl0o+BoOPSw/vLjf2H +cfl6X5JempkXMLE3c5E4C4AfFZqS91V0+5PhpzbubF+4cQw27fI9GC2BszpKAVgh +RPsC/EFrISOdYMCsArb8mTPdA1o/40qCxmubwpUxmyfRgiJtwIlwLpmmETZBrD36 +X1ddBsKcUsny/xclROxPQvZ61P7zAgMBAAGjUzBRMB0GA1UdDgQWBBTVrsPA3Wti +ezFJ0lPa34hhgOe8xTAfBgNVHSMEGDAWgBTVrsPA3WtiezFJ0lPa34hhgOe8xTAP +BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQCzD1C3696UN16GgLpe +WAIIWC99DvqEc4cxqc6FzoZxtYDCORHmCTs0U9WDtWasDh9/tJo2hsTyXs5cmvKM +ViUj8BwV558LzCqzootECaBfIIb3kCt6wAxYo/bSNKAUosII1XngeJOUAmx+LxHW +0hP9uFKS72ilPixiYbNso1srxU+LdA20s0oPB6siR3azJ9NEfCxiPXc+w4XLWQWM +EWx7dme3u8xeiuj0z5NFhH+U+g0bQ95JcxpEODA5CO+jm/u5sAGx2hHOeXpnqD9S +X3WokHc8V5da1qPn1lhWaZL8GGun1gfg7+O4eTvI4wDJYl+1EG2YF2mu58sCGGVP +CY4xOCnAMllv+RTeIrO6rPA6nWDdGYUVsmcFoERWUW08hgNI4fXFWcTcT8C8Sih/ +7ko3rPNtkijOVvN3eKYXytzQ0PLSFjBkoU6bNU2waNaEohopayJ6s6/yb+KLYnmg +PrvhtPX6HwUspZ1W5xi7c72SNrIvEmMZGLqVKK/1dJy609GpyN8u9OZf1pJpKd0Q +e6K6lw1pWgpKdk2eCKJ/DWgxDa8i7Fuf9fEuLQDTMui3bSKEIUUHhzj7dNlh26rk +O/ZAKB2UpgXvcwfr4/GOHp7uYLkKOdLPPDAyl6gGk4WKbaBI/31VJEQjEYs6T+DK +k+la/3JmZMIALLTOQcol1YNTJg== +-----END CERTIFICATE----- diff --git a/nginx/certs/eufarmbooknew_key.pem b/nginx/certs/eufarmbooknew_key.pem new file mode 100644 index 0000000..a3ef2fb --- /dev/null +++ b/nginx/certs/eufarmbooknew_key.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +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 +2j6amNYcH4t73QMDymoVMjw9SF+q +-----END PRIVATE KEY----- diff --git a/nginx/default.conf b/nginx/default.conf new file mode 100644 index 0000000..171f488 --- /dev/null +++ b/nginx/default.conf @@ -0,0 +1,29 @@ +server { + listen 80; + server_name localhost; + + location / { + proxy_pass http://web:9000; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-CSRFToken $cookie_csrftoken; + } + + location /assets/ { + alias /usr/share/nginx/html/assets/; + expires 1d; + add_header Cache-Control "public, max-age=86400"; + access_log /var/log/nginx/access.log; + error_log /var/log/nginx/error.log; + } + + location /media/ { + alias /usr/share/nginx/html/media/; + expires 1d; + add_header Cache-Control "public, max-age=86400"; + access_log /var/log/nginx/access.log; + error_log /var/log/nginx/error.log; + } +} diff --git a/requirements.txt b/requirements.txt index 3aacff7..ffaae52 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,41 @@ -Django==5.0.4 -django-allauth==0.61.1 +asgiref==3.8.1 +certifi==2024.12.14 +cffi==1.17.1 +charset-normalizer==3.4.0 +crispy-bootstrap4==2024.10 +cryptography==44.0.0 +dj-database-url==2.3.0 +Django==5.1.4 +django-cors-headers==4.7.0 +django-crispy-forms==2.3 +django-oauth-toolkit==3.0.1 +django-simple-history==3.7.0 +djangorestframework==3.15.2 +djangorestframework_simplejwt==5.4.0 +drf-yasg==1.21.8 +idna==3.10 +inflection==0.5.1 +jwcrypto==1.5.6 +mysqlclient==2.2.7 +numpy==2.2.0 +oauthlib==3.2.2 +packaging==24.2 +pandas==2.2.3 +psycopg2==2.9.10 +pycparser==2.22 +PyJWT==2.10.1 +python-dateutil==2.9.0.post0 python-dotenv==1.0.1 -mysqlclient==2.2.4 -django-simple-history==3.5.0 \ No newline at end of file +pytz==2024.2 +PyYAML==6.0.2 +requests==2.32.3 +requests-mock==1.12.1 +setuptools==75.8.0 +six==1.17.0 +sqlparse==0.5.3 +typing_extensions==4.12.2 +tzdata==2024.2 +uritemplate==4.1.1 +urllib3==2.2.3 +waitress==3.0.2 +whitenoise==6.8.2 diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..b99a8ad --- /dev/null +++ b/run.sh @@ -0,0 +1,2 @@ +#!/bin/bash +python manage.py runserver 0.0.0.0:8001 diff --git a/run_waitress.py b/run_waitress.py new file mode 100644 index 0000000..7d54ecf --- /dev/null +++ b/run_waitress.py @@ -0,0 +1,18 @@ +import logging +import warnings +import os + +from waitress import serve +from gatekeeper.wsgi import application + +host = os.getenv('APP_HOST', '0.0.0.0') +port = int(os.getenv('APP_PORT', '8001')) + +logging.basicConfig(filename='logs/waitress.log', level=logging.INFO) + +warnings.filterwarnings("ignore") + +# Print the binding information for confirmation +print(f"Serving Django application on http://{host}:{port}") + +serve(application, host=host, port=port) diff --git a/static/css/app.css b/static/css/app.css new file mode 100644 index 0000000..58d6bb7 --- /dev/null +++ b/static/css/app.css @@ -0,0 +1,5202 @@ +@import url(https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@300;400;500;600;700&display=swap); + body[data-layout-mode=dark] { + background-color: #191e22; + color: #ced4da; +} +body[data-layout-mode=dark] .h1, body[data-layout-mode=dark] .h2, body[data-layout-mode=dark] .h3, body[data-layout-mode=dark] .h4, body[data-layout-mode=dark] .h5, body[data-layout-mode=dark] .h6, body[data-layout-mode=dark] h1, body[data-layout-mode=dark] h2, body[data-layout-mode=dark] h3, body[data-layout-mode=dark] h4, body[data-layout-mode=dark] h5, body[data-layout-mode=dark] h6 { + color: #ced4da; +} +#page-topbar { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1002; + background-color: #fff; + border-bottom: 1px solid #e9e9ef; + -webkit-box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08); + box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08); +} +.navbar-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-pack: justify; + -webkit-box-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin: 0 auto; + height: 70px; + padding: 0 24px 0 0; +} +.navbar-header .dropdown .show.header-item { + background-color: #f8f9fa; +} +.navbar-brand-box { + padding: 0 1.5rem; + width: 250px; + background: #fff; + border-right: 1px solid transparent; +} +.logo { + line-height: 69px; + color: inherit!important; +} +.logo .logo-sm { + display: none; +} +.logo-txt { + font-weight: 700; + font-size: 18px; + vertical-align: middle; + margin-left: 5px; + text-transform: uppercase; +} +.logo-light { + display: none; +} +body:not([data-sidebar-size=sm]) #vertical-menu-btn { + margin-left: -52px; + margin-right: 20px; +} +@media (max-width: 991.98px) { + body:not([data-sidebar-size=sm]) #vertical-menu-btn { + margin-left: 0; + } +} +.app-search { + padding: calc(30px / 2) 0; + position: relative; +} +.app-search .form-control { + border: none; + height: 40px; + padding-left: 17px; + padding-right: 50px; + background-color: #f3f3f9; + -webkit-box-shadow: none; + box-shadow: none; +} +.app-search .btn { + position: absolute; + right: 3px; + top: 3px; + height: 34px; + padding: 0 10px; +} +.layout-mode-light { + display: none; +} +body[data-layout-mode=dark] .layout-mode-dark { + display: none; +} +body[data-layout-mode=dark] .layout-mode-light { + display: inline-block; +} +.megamenu-list li { + position: relative; + padding: 5px 0; +} +.megamenu-list li a { + color: #495057; +} +@media (max-width:992px) { + .navbar-brand-box { + width: auto; +} +.logo span.logo-lg { + display: none; +} +.logo span.logo-sm { + display: inline-block; +} +}.page-content { + padding: calc(70px + 24px) calc(24px / 2) 60px calc(24px / 2); +} +.header-item { + height: 70px; + -webkit-box-shadow: none!important; + box-shadow: none!important; + color: #555b6d; + border: 0; + border-radius: 0; +} +.header-item:hover { + color: #555b6d; +} +.header-profile-user { + height: 36px; + width: 36px; + background-color: #74788d; + padding: 3px; +} +.noti-icon i { + font-size: 22px; + color: #555b6d; +} +.noti-icon .badge { + position: absolute; + top: 12px; + right: 4px; +} +.notification-item .d-flex { + padding: .75rem 1rem; +} +.notification-item .d-flex:hover { + background-color: #f8f9fa; +} +.dropdown-icon-item { + display: block; + border-radius: 3px; + line-height: 34px; + text-align: center; + padding: 15px 0 9px; + display: block; + color: #74788d; +} +.dropdown-icon-item img { + height: 24px; +} +.dropdown-icon-item span { + display: block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.dropdown-icon-item:hover { + background-color: #f8f9fa; +} +.fullscreen-enable [data-toggle=fullscreen] .bx-fullscreen::before { + content: "\ea3f"} +body[data-topbar=dark] #page-topbar { + background-color: #1c84ee; + border-color: #1c84ee; + -webkit-box-shadow: 0 .2rem .5rem rgba(18, 38, 63, .3); + box-shadow: 0 .2rem .5rem rgba(18, 38, 63, .3); +} +body[data-topbar=dark] .navbar-brand-box { + background-color: #1c84ee; + border-color: #1c84ee; +} +body[data-topbar=dark] .navbar-brand-box .logo { + color: #fff!important; +} +body[data-topbar=dark] .navbar-header .dropdown .show.header-item { + background-color: rgba(255, 255, 255, .05); +} +body[data-topbar=dark] .navbar-header .waves-effect .waves-ripple { + background: rgba(255, 255, 255, .4); +} +body[data-topbar=dark] .header-item { + color: #e9ecef; +} +body[data-topbar=dark] .header-item:hover { + color: #e9ecef; +} +body[data-topbar=dark] .header-item.border-end, body[data-topbar=dark] .header-item.border-start { + border-color: rgba(255, 255, 255, .1)!important; +} +body[data-topbar=dark] .header-item.bg-soft-light { + background-color: rgba(255, 255, 255, .04)!important; +} +body[data-topbar=dark] .header-profile-user { + background-color: rgba(255, 255, 255, .25); +} +body[data-topbar=dark] .noti-icon i { + color: #e9ecef; +} +body[data-topbar=dark] .logo-dark { + display: none; +} +body[data-topbar=dark] .logo-light { + display: block; +} +body[data-topbar=dark] .app-search .form-control { + background-color: rgba(243, 243, 249, .1); + color: #fff; +} +body[data-topbar=dark] .app-search input.form-control::-webkit-input-placeholder, body[data-topbar=dark] .app-search span { + color: rgba(255, 255, 255, .5); +} +@media (max-width:600px) { + .navbar-header .dropdown { + position: static; +} +.navbar-header .dropdown .dropdown-menu { + left: 10px!important; + right: 10px!important; +} +}@media (max-width:380px) { + .navbar-brand-box { + display: none; +} +}body[data-layout=horizontal] #page-topbar { + -webkit-box-shadow: none; + box-shadow: none; +} +body[data-layout=horizontal] .navbar-brand-box { + width: auto; + border: 0; + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} +@media (min-width:992px) { + body[data-layout=horizontal] .navbar-brand-box { + padding-left: 0; + margin-right: 10px; +} +}body[data-layout=horizontal] .page-content { + margin-top: 70px; + padding: calc(55px + 24px) calc(24px / 2) 60px calc(24px / 2); +} +@media (min-width:992px) { + body[data-layout=horizontal] .navbar-header { + padding-left: 24px; + padding-right: 24px; +} +}body[data-layout=horizontal][data-sidebar=dark] .navbar-brand-box { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} +@media (max-width:992px) { + body[data-layout=horizontal] .page-content { + margin-top: 15px; +} +}body[data-layout-mode=dark] .header-item.border-end, body[data-layout-mode=dark] .header-item.border-start { + border-color: rgba(255, 255, 255, .1)!important; +} +body[data-layout-mode=dark] .header-item.bg-soft-light { + background-color: rgba(255, 255, 255, .04)!important; +} +body[data-layout-mode=dark] #page-topbar { + background-color: #282f36; + border-color: #282f36; +} +body[data-layout-mode=dark] .app-search .form-control { + color: #adb5bd; + background-color: #2f373f; + border: 1px solid #2f373f; +} +body[data-layout-mode=dark] .notification-item .d-flex:hover { + background-color: #2d343c; +} +body[data-layout-mode=dark] .dropdown-icon-item { + color: #adb5bd; +} +body[data-layout-mode=dark] .dropdown-icon-item:hover { + background-color: #30373f; +} +@media (min-width:992px) { + body[data-layout-mode=dark][data-sidebar=light][data-topbar=light] .navbar-brand-box .logo { + color: #2b3940!important; +} +body[data-layout-mode=dark][data-sidebar=light][data-topbar=light] #vertical-menu-btn { + color: #2b3940; +} +}body[data-layout-mode=dark][data-topbar=light] .navbar-brand-box { + background: #fff; + border-right: none; + -webkit-box-shadow: none; + box-shadow: none; +} +body[data-layout-mode=dark][data-topbar=light] .navbar-brand-box .logo { + color: #2b3940!important; +} +body[data-layout-mode=dark][data-topbar=light] .logo-light { + display: none; +} +body[data-layout-mode=dark][data-topbar=light] .logo-dark { + display: block; +} +body[data-layout-mode=dark][data-topbar=light] #vertical-menu-btn { + color: #2b3940!important; +} +body[data-layout-mode=dark][data-topbar=light] .header-item { + color: #555b6d; +} +body[data-layout-mode=dark][data-topbar=light] .header-item:hover { + color: #555b6d; +} +body[data-layout-mode=dark][data-topbar=light] .header-item.border-end, body[data-layout-mode=dark][data-topbar=light] .header-item.border-start { + border-color: rgba(43, 57, 64, .1)!important; +} +body[data-layout-mode=dark][data-topbar=light] .header-item.bg-soft-light { + background-color: rgba(43, 57, 64, .04)!important; +} +body[data-layout-mode=dark][data-topbar=light] #page-topbar { + background-color: #fff; + border-color: #f6f6f6; +} +body[data-layout-mode=dark][data-topbar=light] .dropdown-icon-item { + color: #adb5bd; +} +body[data-layout-mode=dark][data-topbar=light] .dropdown-icon-item:hover { + background-color: #f6f6f6; +} +body[data-layout-mode=dark][data-topbar=light] .app-search .form-control { + color: #adb5bd; + background-color: #efeff3; + border: 1px solid #f6f6f6; +} +body[data-layout-mode=dark][data-topbar=light] .header-profile-user { + background-color: #74788d; +} +body[data-layout-mode=dark][data-topbar=light] .noti-icon i { + color: #555b6d; +} +body[data-layout-mode=dark][data-topbar=light] .notification-item .d-flex:hover { + background-color: #f8f9fa; +} +.page-title-box { + padding-bottom: 24px; +} +.page-title-box .breadcrumb { + background-color: transparent; + padding: 0; +} +.footer { + bottom: 0; + padding: 20px calc(24px / 2); + position: absolute; + right: 0; + color: #74788d; + left: 250px; + height: 60px; + background-color: #fff; + border-top: 1px solid #e9e9ef; +} +@media (max-width:991.98px) { + .footer { + left: 0; +} +}body[data-sidebar-size=sm] .footer { + left: 70px; +} +@media (max-width:991.98px) { + body[data-sidebar-size=sm] .footer { + left: 0; +} +}body[data-layout=horizontal] .footer { + left: 0!important; +} +body[data-layout-mode=dark] .footer { + background-color: #242a30; + color: #adb5bd; + border-color: #293037; +} +.right-bar { + background-color: #fff; + -webkit-box-shadow: 0 0 24px 0 rgba(0, 0, 0, .06), 0 1px 0 0 rgba(0, 0, 0, .02); + box-shadow: 0 0 24px 0 rgba(0, 0, 0, .06), 0 1px 0 0 rgba(0, 0, 0, .02); + display: block; + position: fixed; + -webkit-transition: all .2s ease-out; + transition: all .2s ease-out; + width: 300px; + z-index: 9999; + float: right!important; + right: -310px; + top: 0; + bottom: 0; +} +.right-bar .right-bar-toggle { + background-color: #394c55; + height: 24px; + width: 24px; + line-height: 24px; + display: block; + color: #e9e9ef; + text-align: center; + border-radius: 50%} +.right-bar .right-bar-toggle:hover { + background-color: #3f545f; +} +.rightbar-overlay { + background-color: rgba(43, 57, 64, .55); + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + display: none; + z-index: 9998; + -webkit-transition: all .2s ease-out; + transition: all .2s ease-out; +} +.right-bar-enabled .right-bar { + right: 0; +} +.right-bar-enabled .rightbar-overlay { + display: block; +} +@media (max-width:767.98px) { + .right-bar { + overflow: auto; +} +.right-bar .slimscroll-menu { + height: auto!important; +} +}body[data-layout-mode=dark] .right-bar { + background-color: #242a30; +} +.metismenu { + margin: 0; +} +.metismenu li { + display: block; + width: 100%} +.metismenu .mm-collapse { + display: none; +} +.metismenu .mm-collapse:not(.mm-show) { + display: none; +} +.metismenu .mm-collapse.mm-show { + display: block; +} +.metismenu .mm-collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-timing-function: ease; + transition-timing-function: ease; + -webkit-transition-duration: .35s; + transition-duration: .35s; + -webkit-transition-property: height, visibility; + transition-property: height, visibility; +} +.vertical-menu { + width: 250px; + z-index: 1001; + background: #fff; + bottom: 0; + margin-top: 0; + position: fixed; + top: 70px; + border-right: 1px solid transparent; + -webkit-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .1); + box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .1); +} +.main-content { + margin-left: 250px; + overflow: hidden; +} +.main-content .content { + padding: 0 15px 10px 15px; + margin-top: 70px; +} +#sidebar-menu { + padding: 10px 0 30px 0; +} +#sidebar-menu .mm-active>.has-arrow:after { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); +} +#sidebar-menu .has-arrow:after { + content: "\f0142"; + font-family: "Material Design Icons"; + display: block; + float: right; + -webkit-transition: -webkit-transform .2s; + transition: -webkit-transform .2s; + transition: transform .2s; + transition: transform .2s, -webkit-transform .2s; + font-size: 1.1rem; + margin-right: -5px; + margin-top: -2px; +} +#sidebar-menu ul li a { + display: block; + padding: .675rem 1.5rem; + color: #545a6d; + position: relative; + font-size: .845rem; + -webkit-transition: all .4s; + transition: all .4s; +} +#sidebar-menu ul li a i { + display: inline-block; + min-width: 1.75rem; + padding-bottom: .125em; + font-size: 1.25rem; + line-height: 1.40625rem; + vertical-align: middle; + color: #545a6d; + -webkit-transition: all .4s; + transition: all .4s; +} +#sidebar-menu ul li a svg { + height: 18px; + width: 18px; + color: #545a6d; + margin-right: 10px; + margin-top: -3px; +} +#sidebar-menu ul li a:hover { + color: #1c84ee; +} +#sidebar-menu ul li a:hover i { + color: #1c84ee; +} +#sidebar-menu ul li a:hover svg { + color: #1c84ee; +} +#sidebar-menu ul li .badge { + margin-top: 4px; +} +#sidebar-menu ul li ul.sub-menu { + padding: 0; +} +#sidebar-menu ul li ul.sub-menu li a { + padding: .425rem 1.5rem .425rem 3.5rem; + font-size: .825rem; + color: #545a6d; +} +#sidebar-menu ul li ul.sub-menu li a:hover { + color: #1c84ee; +} +#sidebar-menu ul li ul.sub-menu li ul.sub-menu { + padding: 0; +} +#sidebar-menu ul li ul.sub-menu li ul.sub-menu li a { + padding: .4rem 1.5rem .4rem 4.5rem; + font-size: 13px; +} +.menu-title { + padding: 12px 20px!important; + pointer-events: none; + cursor: default; + font-size: 12px; + color: #545a6d; + font-weight: 500; +} +.mm-active>a { + color: #1c84ee!important; +} +.mm-active>a i { + color: #1c84ee!important; +} +.mm-active>a svg { + color: #1c84ee!important; +} +.mm-active .active { + color: #1c84ee!important; +} +.mm-active .active i { + color: #1c84ee!important; +} +.mm-active .active svg { + color: #1c84ee!important; +} +.mm-active>i { + color: #1c84ee!important; +} +.sidebar-alert { + background-color: rgba(28, 132, 238, .1)!important; +} +.sidebar-alert .alertcard-title { + color: #1c84ee; +} +@media (max-width:992px) { + .vertical-menu { + display: none; +} +.main-content { + margin-left: 0!important; +} +body.sidebar-enable .vertical-menu { + display: block; +} +}body[data-sidebar-size=sm] { + min-height: 1000px; +} +body[data-sidebar-size=sm] .main-content { + margin-left: 70px; +} +body[data-sidebar-size=sm] .navbar-brand-box { + width: 70px!important; +} +body[data-sidebar-size=sm] .logo span.logo-lg { + display: none; +} +body[data-sidebar-size=sm] .logo span.logo-sm { + display: block; +} +body[data-sidebar-size=sm] .vertical-menu { + position: absolute; + width: 70px!important; + z-index: 5; +} +body[data-sidebar-size=sm] .vertical-menu .simplebar-content-wrapper, body[data-sidebar-size=sm] .vertical-menu .simplebar-mask { + overflow: visible!important; +} +body[data-sidebar-size=sm] .vertical-menu .simplebar-scrollbar { + display: none!important; +} +body[data-sidebar-size=sm] .vertical-menu .simplebar-offset { + bottom: 0!important; +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu .badge, body[data-sidebar-size=sm] .vertical-menu #sidebar-menu .menu-title, body[data-sidebar-size=sm] .vertical-menu #sidebar-menu .sidebar-alert { + display: none!important; +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu .nav.collapse { + height: inherit!important; +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li { + position: relative; + white-space: nowrap; +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li>a { + padding: 15px 20px; + -webkit-transition: none; + transition: none; +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li>a:active, body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li>a:focus, body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li>a:hover { + color: #1c84ee; +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li>a i { + font-size: 1.45rem; + margin-left: 4px; +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li>a svg { + height: 18px; + width: 18px; + margin-left: 6px; +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li>a span { + display: none; + padding-left: 25px; +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li>a.has-arrow:after { + display: none; +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a { + position: relative; + width: calc(190px + 70px); + color: #1c84ee; + background-color: #f5f5f5; + -webkit-transition: none; + transition: none; +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a i { + color: #1c84ee; +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a svg { + color: #1c84ee; +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a span { + display: inline; +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>ul { + display: block; + left: 70px; + position: absolute; + width: 190px; + height: auto!important; + -webkit-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .1); + box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .1); +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>ul ul { + -webkit-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .1); + box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .1); +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>ul a { + -webkit-box-shadow: none; + box-shadow: none; + padding: 8px 20px; + position: relative; + width: 190px; + z-index: 6; + color: #545a6d; +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>ul a:hover { + color: #1c84ee; +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul ul { + padding: 5px 0; + z-index: 9999; + display: none; + background-color: #fff; +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul ul li:hover>ul { + display: block; + left: 190px; + height: auto!important; + margin-top: -36px; + position: absolute; + width: 190px; + padding: 5px 0; +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul ul li>a span.pull-right { + position: absolute; + right: 20px; + top: 12px; + -webkit-transform: rotate(270deg); + transform: rotate(270deg); +} +body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul ul li.active a { + color: #f8f9fa; +} +body[data-sidebar-size=sm] #sidebar-menu .mm-active>.has-arrow:after { + -webkit-transform: rotate(0); + transform: rotate(0); +} +body[data-sidebar=dark] .navbar-brand-box { + background: #242a30; + -webkit-box-shadow: 0 3px 1px #242a30; + box-shadow: 0 3px 1px #242a30; + border-color: #242a30; +} +body[data-sidebar=dark] .navbar-brand-box .logo { + color: #fff!important; +} +body[data-sidebar=dark] .logo-dark { + display: none; +} +body[data-sidebar=dark] .logo-light { + display: block; +} +body[data-sidebar=dark] .vertical-menu { + background: #242a30; + border-color: #242a30; +} +@media (min-width:992px) { + body[data-sidebar=dark] #vertical-menu-btn { + color: #e9ecef; +} +}body[data-sidebar=dark] #sidebar-menu ul li a { + color: #99a4b1; +} +body[data-sidebar=dark] #sidebar-menu ul li a i { + color: #858d98; +} +body[data-sidebar=dark] #sidebar-menu ul li a svg { + color: #858d98; +} +body[data-sidebar=dark] #sidebar-menu ul li a:hover { + color: #fff; +} +body[data-sidebar=dark] #sidebar-menu ul li a:hover i { + color: #fff; +} +body[data-sidebar=dark] #sidebar-menu ul li a:hover svg { + color: #fff; +} +body[data-sidebar=dark] #sidebar-menu ul li ul.sub-menu li a { + color: #858d98; +} +body[data-sidebar=dark] #sidebar-menu ul li ul.sub-menu li a:hover { + color: #fff; +} +body[data-sidebar=dark][data-sidebar-size=sm][data-topbar=dark] #vertical-menu-btn { + color: #e9ecef; +} +body[data-sidebar=dark][data-sidebar-size=sm] #vertical-menu-btn { + color: #555b6d; +} +body[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a { + background: #282f36; + color: #fff; +} +body[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a i { + color: #fff; +} +body[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a svg { + color: #fff; +} +body[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>ul a { + color: #858d98; +} +body[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>ul a:hover { + color: #fff; +} +body[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul ul { + background-color: #242a30; +} +body[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu ul li.mm-active .active { + color: #fff!important; +} +body[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu ul li.mm-active .active i { + color: #fff!important; +} +body[data-sidebar=dark] .mm-active { + color: #fff!important; +} +body[data-sidebar=dark] .mm-active>a { + color: #fff!important; +} +body[data-sidebar=dark] .mm-active>a i { + color: #fff!important; +} +body[data-sidebar=dark] .mm-active>a svg { + color: #fff!important; +} +body[data-sidebar=dark] .mm-active>i { + color: #fff!important; +} +body[data-sidebar=dark] .mm-active .active { + color: #fff!important; +} +body[data-sidebar=dark] .mm-active .active i { + color: #fff!important; +} +body[data-sidebar=dark] .mm-active .active svg { + color: #fff!important; +} +body[data-sidebar=dark] .menu-title { + color: #858d98; +} +body[data-sidebar=dark][data-sidebar-size=md] #sidebar-menu ul li.menu-title { + background-color: #282f36; +} +body[data-layout=horizontal] .main-content { + margin-left: 0!important; +} +body[data-sidebar-size=md] .navbar-brand-box { + width: 160px; +} +@media (max-width:991.98px) { + body[data-sidebar-size=md] .navbar-brand-box { + width: auto; +} +}body[data-sidebar-size=md] .vertical-menu { + width: 160px; + text-align: center; +} +body[data-sidebar-size=md] .vertical-menu .badge, body[data-sidebar-size=md] .vertical-menu .has-arrow:after, body[data-sidebar-size=md] .vertical-menu .sidebar-alert { + display: none!important; +} +body[data-sidebar-size=md] .main-content { + margin-left: 160px; +} +body[data-sidebar-size=md] .footer { + left: 160px; +} +@media (max-width:991.98px) { + body[data-sidebar-size=md] .footer { + left: 0; +} +}body[data-sidebar-size=md] #sidebar-menu ul li a svg { + display: block; + margin: 0 auto 4px; +} +body[data-sidebar-size=md] #sidebar-menu ul li ul.sub-menu li a { + padding-left: 1.5rem; +} +body[data-sidebar-size=md] #sidebar-menu ul li ul.sub-menu li ul.sub-menu li a { + padding-left: 1.5rem; +} +body[data-sidebar-size=md][data-sidebar-size=sm] .main-content { + margin-left: 70px; +} +body[data-sidebar-size=md][data-sidebar-size=sm] .vertical-menu #sidebar-menu { + text-align: left; +} +body[data-sidebar-size=md][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li>a svg { + display: inline-block; +} +body[data-sidebar-size=md][data-sidebar-size=sm] .footer { + left: 70px; +} +body[data-sidebar=brand] .vertical-menu { + background-color: #1c84ee; +} +body[data-sidebar=brand] .navbar-brand-box { + background-color: #1c84ee; + -webkit-box-shadow: 0 1px 0 #1c84ee; + box-shadow: 0 1px 0 #1c84ee; +} +body[data-sidebar=brand] .navbar-brand-box .logo-dark { + display: none; +} +body[data-sidebar=brand] .navbar-brand-box .logo-light { + display: block; +} +body[data-sidebar=brand] .navbar-brand-box .logo { + color: #fff!important; +} +body[data-sidebar=brand] .mm-active { + color: #fff!important; +} +body[data-sidebar=brand] .mm-active>a { + color: #fff!important; +} +body[data-sidebar=brand] .mm-active>a i { + color: #fff!important; +} +body[data-sidebar=brand] .mm-active>a svg { + color: #fff!important; +} +body[data-sidebar=brand] .mm-active .active { + color: #fff!important; +} +body[data-sidebar=brand] .mm-active .active svg { + color: #fff!important; +} +@media (min-width:992px) { + body[data-sidebar=brand] #vertical-menu-btn { + color: #e9ecef; +} +}body[data-sidebar=brand] #sidebar-menu ul li.menu-title { + color: rgba(255, 255, 255, .6); +} +body[data-sidebar=brand] #sidebar-menu ul li a { + color: rgba(255, 255, 255, .6); +} +body[data-sidebar=brand] #sidebar-menu ul li a i { + color: rgba(255, 255, 255, .6); +} +body[data-sidebar=brand] #sidebar-menu ul li a svg { + color: rgba(255, 255, 255, .6); +} +body[data-sidebar=brand] #sidebar-menu ul li a.waves-effect .waves-ripple { + background: rgba(255, 255, 255, .1); +} +body[data-sidebar=brand] #sidebar-menu ul li a:hover { + color: #fff; +} +body[data-sidebar=brand] #sidebar-menu ul li a:hover i { + color: #fff; +} +body[data-sidebar=brand] #sidebar-menu ul li ul.sub-menu li a { + color: rgba(255, 255, 255, .5); +} +body[data-sidebar=brand] #sidebar-menu ul li ul.sub-menu li a:hover { + color: #fff; +} +body[data-sidebar=brand] .sidebar-alert { + background-color: rgba(255, 255, 255, .1); + color: rgba(255, 255, 255, .5); +} +body[data-sidebar=brand] .sidebar-alert .alertcard-title { + color: #fff; +} +body[data-sidebar=brand][data-sidebar-size=sm][data-topbar=dark] #vertical-menu-btn { + color: #e9ecef; +} +body[data-sidebar=brand][data-sidebar-size=sm] #vertical-menu-btn { + color: #555b6d; +} +body[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a { + background-color: #2589ef; + color: #fff; +} +body[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a i, body[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a svg { + color: #fff; +} +body[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu ul li.mm-active .active { + color: #fff!important; +} +body[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu ul li ul.sub-menu li a:hover { + color: #1c84ee; +} +body[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu ul li ul.sub-menu li.mm-active { + color: #1c84ee!important; +} +body[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu ul li ul.sub-menu li.mm-active>a { + color: #1c84ee!important; +} +body[data-layout-mode=dark][data-sidebar=brand] .navbar-brand-box, body[data-layout-mode=dark][data-sidebar=brand] .vertical-menu, body[data-layout-mode=dark][data-sidebar=dark] .navbar-brand-box, body[data-layout-mode=dark][data-sidebar=dark] .vertical-menu { + border-color: transparent; +} +body[data-layout-mode=dark][data-sidebar=light] .sidebar-alert { + background-color: rgba(28, 132, 238, .1); + color: #495057; +} +body[data-layout-mode=dark][data-sidebar=light] .sidebar-alert .alertcard-title { + color: #1c84ee; +} +[dir=rtl] #sidebar-menu .has-arrow:after { + content: "\f0141"} +.topnav { + background: #fff; + padding: 0 calc(24px / 2); + margin-top: 70px; + position: fixed; + left: 0; + right: 0; + z-index: 100; + -webkit-box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08); + box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08); +} +@media (min-width:992px) { + .topnav { + background: #fff; +} +}.topnav .topnav-menu { + margin: 0; + padding: 0; +} +.topnav .navbar-nav .nav-link { + font-size: 14.4px; + position: relative; + padding: 1rem 1.3rem; + color: #545a6d; +} +.topnav .navbar-nav .nav-link i { + font-size: 15px; +} +.topnav .navbar-nav .nav-link svg { + height: 16px; + width: 16px; + color: #545a6d; + margin-right: 7px; + margin-top: -3px; +} +.topnav .navbar-nav .nav-link:focus, .topnav .navbar-nav .nav-link:hover { + color: #1c84ee; + background-color: transparent; +} +.topnav .navbar-nav .nav-link:focus svg, .topnav .navbar-nav .nav-link:hover svg { + color: #1c84ee; +} +.topnav .navbar-nav .dropdown-item { + color: #545a6d; +} +.topnav .navbar-nav .dropdown-item.active, .topnav .navbar-nav .dropdown-item:hover { + color: #1c84ee; +} +.topnav .navbar-nav .nav-item .nav-link.active { + color: #1c84ee; +} +.topnav .navbar-nav .nav-item .nav-link.active svg { + color: #1c84ee; +} +.topnav .navbar-nav .dropdown.active>a { + color: #1c84ee; + background-color: transparent; +} +.topnav .navbar-nav .dropdown.active>a svg { + color: #1c84ee; +} +.topnav .menu-title { + padding: 12px 24px!important; +} +@media (max-width:991.98px) { + .topnav .menu-title { + padding: 12px 16px!important; +} +}@media (min-width:1200px) { + body[data-layout=horizontal] .container-fluid, body[data-layout=horizontal] .navbar-header { + max-width: 85%} +} +@media (min-width: 992px) { + .topnav .navbar-nav .nav-item:first-of-type .nav-link { + padding-left: 0; + } +} + +.topnav .dropdown-item { + padding: .5rem 1.5rem; + min-width: 180px; +} +.topnav .dropdown.mega-dropdown .mega-dropdown-menu { + left: 0; + right: auto; +} +.topnav .dropdown .dropdown-menu { + margin-top: 0; + border-radius: 0 0 .25rem .25rem; +} +.topnav .dropdown .dropdown-menu .arrow-down::after { + right: 15px; + -webkit-transform: rotate(-135deg) translateY(-50%); + transform: rotate(-135deg) translateY(-50%); + position: absolute; +} +.topnav .dropdown .dropdown-menu .dropdown .dropdown-menu { + position: absolute; + top: 0!important; + left: 100%; + display: none; +} +.topnav .dropdown:hover>.dropdown-menu { + display: block; +} +.topnav .dropdown:hover>.dropdown-menu>.dropdown:hover>.dropdown-menu { + display: block; +} +.navbar-toggle { + display: none; +} +.arrow-down { + display: inline-block; +} +.arrow-down:after { + border-color: initial; + border-style: solid; + border-width: 0 0 1px 1px; + content: ""; + height: .4em; + display: inline-block; + right: 5px; + top: 50%; + margin-left: 10px; + -webkit-transform: rotate(-45deg) translateY(-50%); + transform: rotate(-45deg) translateY(-50%); + -webkit-transform-origin: top; + transform-origin: top; + -webkit-transition: all .3s ease-out; + transition: all .3s ease-out; + width: .4em; +} +@media (max-width:1199.98px) { + .topnav-menu .navbar-nav li:last-of-type .dropdown .dropdown-menu { + right: 100%; + left: auto; +} +}@media (max-width:991.98px) { + .navbar-brand-box .logo-dark { + display: block; +} +.navbar-brand-box .logo-dark span.logo-sm { + display: block; +} +.navbar-brand-box .logo-light { + display: none; +} +.topnav { + max-height: 360px; + overflow-y: auto; + padding: 0; +} +.topnav .navbar-nav .nav-link { + padding: .75rem 1.1rem; +} +.topnav .dropdown .dropdown-menu { + background-color: transparent; + border: none; + -webkit-box-shadow: none; + box-shadow: none; + padding-left: 24px; +} +.topnav .dropdown .dropdown-menu.dropdown-mega-menu-xl { + width: auto; +} +.topnav .dropdown .dropdown-menu.dropdown-mega-menu-xl .row { + margin: 0; +} +.topnav .dropdown .dropdown-item { + position: relative; + background-color: transparent; +} +.topnav .dropdown .dropdown-item.active, .topnav .dropdown .dropdown-item:active { + color: #1c84ee; +} +.topnav .arrow-down::after { + right: 15px; + position: absolute; +} +}body[data-layout=horizontal][data-topbar=colored] #page-topbar { + background-color: #1c84ee; + -webkit-box-shadow: none; + box-shadow: none; +} +body[data-layout=horizontal][data-topbar=colored] .logo-dark { + display: none; +} +body[data-layout=horizontal][data-topbar=colored] .logo-light { + display: block; +} +body[data-layout=horizontal][data-topbar=colored] .app-search .form-control { + background-color: rgba(243, 243, 249, .07); + color: #fff; +} +body[data-layout=horizontal][data-topbar=colored] .app-search input.form-control::-webkit-input-placeholder, body[data-layout=horizontal][data-topbar=colored] .app-search span { + color: rgba(255, 255, 255, .5); +} +body[data-layout=horizontal][data-topbar=colored] .header-item { + color: #e9ecef; +} +body[data-layout=horizontal][data-topbar=colored] .header-item:hover { + color: #e9ecef; +} +body[data-layout=horizontal][data-topbar=colored] .navbar-header .dropdown .show.header-item { + background-color: rgba(255, 255, 255, .1); +} +body[data-layout=horizontal][data-topbar=colored] .navbar-header .waves-effect .waves-ripple { + background: rgba(255, 255, 255, .4); +} +body[data-layout=horizontal][data-topbar=colored] .noti-icon i { + color: #e9ecef; +} +@media (min-width:992px) { + body[data-layout=horizontal][data-topbar=colored] .topnav { + background-color: #1c84ee; +} +body[data-layout=horizontal][data-topbar=colored] .topnav .navbar-nav .nav-link { + color: rgba(255, 255, 255, .6); +} +body[data-layout=horizontal][data-topbar=colored] .topnav .navbar-nav .nav-link:focus, body[data-layout=horizontal][data-topbar=colored] .topnav .navbar-nav .nav-link:hover { + color: rgba(255, 255, 255, .9); +} +body[data-layout=horizontal][data-topbar=colored] .topnav .navbar-nav>.dropdown.active>a { + color: rgba(255, 255, 255, .9)!important; +} +}body[data-layout-mode=dark] .topnav { + background-color: #232a30; +} +body[data-layout-mode=dark] .topnav .navbar-nav .nav-link { + color: #99a4b1; +} +body[data-layout-mode=dark] .topnav .navbar-nav .nav-link svg { + height: 16px; + width: 16px; + color: #99a4b1; + fill: rgba(153, 164, 177, .2); + margin-right: 7px; + margin-top: -3px; +} +body[data-layout-mode=dark] .topnav .navbar-nav .nav-link:focus, body[data-layout-mode=dark] .topnav .navbar-nav .nav-link:hover { + color: #fff; + background-color: transparent; +} +body[data-layout-mode=dark] .topnav .navbar-nav .nav-link:focus svg, body[data-layout-mode=dark] .topnav .navbar-nav .nav-link:hover svg { + color: #fff; + fill: rgba(255, 255, 255, .2); +} +body[data-layout-mode=dark] .topnav .navbar-nav .dropdown-item { + color: #99a4b1; +} +body[data-layout-mode=dark] .topnav .navbar-nav .dropdown-item.active, body[data-layout-mode=dark] .topnav .navbar-nav .dropdown-item:hover { + color: #fff; +} +body[data-layout-mode=dark] .topnav .navbar-nav .nav-item .nav-link.active { + color: #fff; +} +body[data-layout-mode=dark] .topnav .navbar-nav .dropdown.active>a { + color: #fff; + background-color: transparent; +} +body[data-layout-mode=dark] .topnav .navbar-nav .dropdown.active>a svg { + color: #fff; + fill: rgba(255, 255, 255, .2); +} +body[data-layout-mode=dark] .topnav .menu-title { + color: rgba(153, 164, 177, .6); +} +body[data-layout-size=boxed] { + background-color: #f0f0f0; +} +body[data-layout-size=boxed] #layout-wrapper { + background-color: #f4f5f8; + max-width: 1300px; + margin: 0 auto; + -webkit-box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08); + box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08); + min-height: 100vh; +} +body[data-layout-size=boxed] #page-topbar { + max-width: 1300px; + margin: 0 auto; +} +body[data-layout-size=boxed] .footer { + margin: 0 auto; + max-width: calc(1300px - 250px); +} +@media (min-width:992px) { + body[data-layout-size=boxed][data-sidebar-size=sm] #layout-wrapper { + min-height: 1200px; +} +}body[data-layout-size=boxed][data-sidebar-size=sm] .footer { + max-width: calc(1300px - 70px); +} +body[data-layout-size=boxed][data-sidebar-size=md] .footer { + max-width: calc(1300px - 160px); +} +body[data-layout=horizontal][data-layout-size=boxed] #layout-wrapper, body[data-layout=horizontal][data-layout-size=boxed] #page-topbar, body[data-layout=horizontal][data-layout-size=boxed] .footer { + max-width: 100%} +body[data-layout=horizontal][data-layout-size=boxed] .container-fluid, body[data-layout=horizontal][data-layout-size=boxed] .navbar-header { + max-width: 1300px; +} +@media (min-width:992px) { + body[data-layout-scrollable=true] #page-topbar, body[data-layout-scrollable=true] .vertical-menu { + position: absolute; +} +}@media (min-width:992px) { + body[data-layout-scrollable=true][data-layout=horizontal] #page-topbar, body[data-layout-scrollable=true][data-layout=horizontal] .topnav { + position: absolute; +} +}body[data-layout-mode=dark][data-layout-size=boxed] { + background-color: #2d343c; +} +body[data-layout-mode=dark][data-layout-size=boxed] #layout-wrapper { + background-color: #191e22; +} +/*! + * Waves v0.7.6 + * http://fian.my.id/Waves + * + * Copyright 2014-2018 Alfiana E. Sibuea and other contributors + * Released under the MIT license + * https://github.com/fians/Waves/blob/master/LICENSE */.waves-effect { + position: relative; + cursor: pointer; + display: inline-block; + overflow: hidden; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-tap-highlight-color: transparent; +} +.waves-effect .waves-ripple { + position: absolute; + border-radius: 50%; + width: 100px; + height: 100px; + margin-top: -50px; + margin-left: -50px; + opacity: 0; + background: rgba(0, 0, 0, .2); + background: radial-gradient(rgba(0, 0, 0, .2) 0, rgba(0, 0, 0, .3) 40%, rgba(0, 0, 0, .4) 50%, rgba(0, 0, 0, .5) 60%, rgba(255, 255, 255, 0) 70%); + -webkit-transition: all .5s ease-out; + transition: all .5s ease-out; + -webkit-transition-property: -webkit-transform, opacity; + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + -webkit-transform: scale(0) translate(0, 0); + transform: scale(0) translate(0, 0); + pointer-events: none; +} +.waves-effect.waves-light .waves-ripple { + background: rgba(255, 255, 255, .4); + background: radial-gradient(rgba(255, 255, 255, .2) 0, rgba(255, 255, 255, .3) 40%, rgba(255, 255, 255, .4) 50%, rgba(255, 255, 255, .5) 60%, rgba(255, 255, 255, 0) 70%); +} +.waves-effect.waves-classic .waves-ripple { + background: rgba(0, 0, 0, .2); +} +.waves-effect.waves-classic.waves-light .waves-ripple { + background: rgba(255, 255, 255, .4); +} +.waves-notransition { + -webkit-transition: none!important; + transition: none!important; +} +.waves-button, .waves-circle { + -webkit-transform: translateZ(0); + -ms-transform: translateZ(0); + transform: translateZ(0); + -webkit-mask-image: -webkit-radial-gradient(circle, #fff 100%, #000 100%); + mask-image: radial-gradient(circle, #fff 100%, #000 100%); +} +.waves-button, .waves-circle { + -webkit-transform: translateZ(0); + -ms-transform: translateZ(0); + transform: translateZ(0); + -webkit-mask-image: -webkit-radial-gradient(circle, #fff 100%, #000 100%); + mask-image: radial-gradient(circle, #fff 100%, #000 100%); +} + + +.waves-button, .waves-button-input, .waves-button:hover, .waves-button:visited { + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + border: none; + outline: 0; + color: inherit; + background-color: rgba(0, 0, 0, 0); + font-size: 1em; + line-height: 1em; + text-align: center; + text-decoration: none; + z-index: 1; +} +.waves-button { + padding: .85em 1.1em; + border-radius: .2em; +} +.waves-button-input { + margin: 0; + padding: .85em 1.1em; +} +.waves-input-wrapper { + border-radius: .2em; + vertical-align: bottom; +} +.waves-input-wrapper.waves-button { + padding: 0; +} +.waves-input-wrapper .waves-button-input { + position: relative; + top: 0; + left: 0; + z-index: 1; +} +.waves-circle { + text-align: center; + width: 2.5em; + height: 2.5em; + line-height: 2.5em; + border-radius: 50%} +.waves-float { + -webkit-mask-image: none; + -webkit-box-shadow: 0 1px 1.5px 1px rgba(0, 0, 0, .12); + box-shadow: 0 1px 1.5px 1px rgba(0, 0, 0, .12); + -webkit-transition: all .3s; + transition: all .3s; +} +.waves-float:active { + -webkit-box-shadow: 0 8px 20px 1px rgba(0, 0, 0, .3); + box-shadow: 0 8px 20px 1px rgba(0, 0, 0, .3); +} +.waves-block { + display: block; +} +.waves-effect.waves-light .waves-ripple { + background-color: rgba(255, 255, 255, .4); +} +.waves-effect.waves-primary .waves-ripple { + background-color: rgba(28, 132, 238, .4); +} +.waves-effect.waves-success .waves-ripple { + background-color: rgba(52, 195, 143, .4); +} +.waves-effect.waves-info .waves-ripple { + background-color: rgba(22, 218, 241, .4); +} +.waves-effect.waves-warning .waves-ripple { + background-color: rgba(255, 204, 90, .4); +} +.waves-effect.waves-danger .waves-ripple { + background-color: rgba(239, 103, 103, .4); +} +body[data-layout-mode=dark] .accordion-button { + border-color: #30373f; + color: #ced4da; +} +body[data-layout-mode=dark] .accordion-button:not(.collapsed) { + background-color: rgba(28, 132, 238, .2); + color: #1c84ee; +} +body[data-layout-mode=dark] .accordion-item { + border-color: #30373f; +} +body[data-layout-mode=dark] .accordion-collapse { + border-color: #30373f; +} +.avatar-xs { + height: 1rem; + width: 1rem; +} +.avatar-sm { + height: 2rem; + width: 2rem; +} +.avatar-md { + height: 3rem; + width: 3rem; +} +.avatar-lg { + height: 4rem; + width: 4rem; +} +.avatar-xl { + height: 5rem; + width: 5rem; +} +.avatar-xxl { + height: 7.5rem; + width: 7.5rem; +} +.avatar-title { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + background-color: #1c84ee; + color: #fff; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + font-weight: 500; + height: 100%; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + width: 100%} +.avatar-group { + padding-left: 12px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} +.avatar-group .avatar-group-item { + margin-left: -12px; + border: 2px solid #fff; + border-radius: 50%; + -webkit-transition: all .2s; + transition: all .2s; +} +.avatar-group .avatar-group-item:hover { + position: relative; + -webkit-transform: translateY(-2px); + transform: translateY(-2px); +} +.font-size-10 { + font-size: 10px!important; +} +.font-size-11 { + font-size: 11px!important; +} +.font-size-12 { + font-size: 12px!important; +} +.font-size-13 { + font-size: 13px!important; +} +.font-size-14 { + font-size: 14px!important; +} +.font-size-15 { + font-size: 15px!important; +} +.font-size-16 { + font-size: 16px!important; +} +.font-size-17 { + font-size: 17px!important; +} +.font-size-18 { + font-size: 18px!important; +} +.font-size-20 { + font-size: 20px!important; +} +.font-size-22 { + font-size: 22px!important; +} +.font-size-24 { + font-size: 24px!important; +} +.fw-medium { + font-weight: 500; +} +.fw-semibold { + font-weight: 600; +} +.icon-xs { + height: 14px; + width: 14px; +} +.icon-sm { + height: 16px; + width: 16px; +} +.icon-md { + height: 18px; + width: 18px; +} +.icon-lg { + height: 20px; + width: 20px; +} +.icon-xl { + height: 22px; + width: 22px; +} +.card-h-100 { + height: calc(100% - 24px); +} +.social-list-item { + height: 2rem; + width: 2rem; + line-height: calc(2rem - 4px); + display: block; + border: 2px solid #adb5bd; + border-radius: 50%; + color: #adb5bd; + text-align: center; + -webkit-transition: all .4s; + transition: all .4s; +} +.social-list-item:hover { + color: #74788d; + background-color: #e9e9ef; +} +.w-xs { + min-width: 80px; +} +.w-sm { + min-width: 95px; +} +.w-md { + min-width: 110px; +} +.w-lg { + min-width: 140px; +} +.w-xl { + min-width: 160px; +} +.bg-overlay { + position: absolute; + height: 100%; + width: 100%; + right: 0; + bottom: 0; + left: 0; + top: 0; + opacity: .7; + background-color: #000; +} +.bg-overlay-gradient { + background: -webkit-gradient(linear, left top, left bottom, color-stop(30%, rgba(43, 57, 64, .5)), to(#2b3940)); + background: linear-gradient(to bottom, rgba(43, 57, 64, .5) 30%, #2b3940 100%); + position: absolute; + height: 100%; + width: 100%; + right: 0; + bottom: 0; + left: 0; + top: 0; + opacity: .7; +} +.alert-dismissible .btn-close { + font-size: 10px; + padding: 1.05rem 1.25rem; + background: transparent url("data:image/svg+xml, %3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat; +} +body[data-layout-mode=dark] .btn-close { + background: transparent 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 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat; +} +body[data-layout-mode=dark] .border-light { + border-color: #30373f!important; +} +body[data-layout-mode=dark] .border-bottom { + border-bottom: 1px solid #30373f!important; +} +body[data-layout-mode=dark] .border, body[data-layout-mode=dark] .border-top, body[data-layout-mode=dark] .list-group-item { + border-color: #30373f!important; +} +body[data-layout-mode=dark] .border-primary { + border-color: #1c84ee!important; +} +body[data-layout-mode=dark] .border-secondary { + border-color: #74788d!important; +} +body[data-layout-mode=dark] .border-success { + border-color: #34c38f!important; +} +body[data-layout-mode=dark] .border-info { + border-color: #16daf1!important; +} +body[data-layout-mode=dark] .border-warning { + border-color: #ffcc5a!important; +} +body[data-layout-mode=dark] .border-danger { + border-color: #ef6767!important; +} +body[data-layout-mode=dark] .border-pink { + border-color: #e83e8c!important; +} +body[data-layout-mode=dark] .border-light { + border-color: #f6f6f6!important; +} +body[data-layout-mode=dark] .border-dark { + border-color: #2b3940!important; +} +body[data-layout-mode=dark] .text-dark { + color: #e9e9ef!important; +} +body[data-layout-mode=dark] .text-muted { + color: #858d98!important; +} +body[data-layout-mode=dark] .text-body { + color: #adb5bd!important; +} +body[data-layout-mode=dark] .list-group-item { + background-color: #242a30; + color: #adb5bd; +} +body[data-layout-mode=dark] .img-thumbnail { + background-color: #293037; + border-color: #30373f; +} +body[data-layout-mode=dark] .popover-header { + color: #242a30; +} +.btn-group-vertical label { + margin-bottom: 0; +} +.btn-group label { + margin-bottom: 0; +} +body[data-layout-mode=dark] .modal-footer, body[data-layout-mode=dark] .modal-header { + border-color: #30373f; +} +[type=email]::-webkit-input-placeholder, [type=number]::-webkit-input-placeholder, [type=tel]::-webkit-input-placeholder, [type=url]::-webkit-input-placeholder { + text-align: left; +} +[type=email]::-moz-placeholder, [type=number]::-moz-placeholder, [type=tel]::-moz-placeholder, [type=url]::-moz-placeholder { + text-align: left; +} +[type=email]:-ms-input-placeholder, [type=number]:-ms-input-placeholder, [type=tel]:-ms-input-placeholder, [type=url]:-ms-input-placeholder { + text-align: left; +} +[type=email]::-ms-input-placeholder, [type=number]::-ms-input-placeholder, [type=tel]::-ms-input-placeholder, [type=url]::-ms-input-placeholder { + text-align: left; +} +[type=email]::placeholder, [type=number]::placeholder, [type=tel]::placeholder, [type=url]::placeholder { + text-align: left; +} +.form-check { + position: relative; + text-align: left; +} +.form-check-right { + padding-left: 0; + display: inline-block; + padding-right: 1.5em; +} +.form-check-right .form-check-input { + float: right; + margin-left: 0; + margin-right: -1.5em; +} +.form-check-right .form-check-label { + display: block; +} +.form-checkbox-outline .form-check-input { + border-width: 2px; + background-color: #fff; +} +.form-checkbox-outline .form-check-input:active { + -webkit-filter: none; + filter: none; +} +.form-checkbox-outline .form-check-input:checked { + background-color: #fff!important; +} +.form-checkbox-outline .form-check-input:checked[type=checkbox] { + background-image: none; +} +.form-checkbox-outline .form-check-input:checked:after { + position: absolute; + content: "\f012c"; + font-family: "Material Design Icons"; + top: -4px!important; + left: 1px; + font-size: 16px; + color: #2b3940; +} +.form-radio-outline .form-check-input { + background-color: #fff; + position: relative; +} +.form-radio-outline .form-check-input:active { + -webkit-filter: none; + filter: none; +} +.form-radio-outline .form-check-input:checked { + background-color: #fff!important; +} +.form-radio-outline .form-check-input:checked[type=checkbox] { + background-image: none; +} +.form-radio-outline .form-check-input:checked:after { + position: absolute; + content: ""; + top: 3px!important; + left: 3px; + width: 5px; + height: 5px; + border-radius: 50%} +.form-check-primary .form-check-input:checked { + background-color: #1c84ee; + border-color: #1c84ee; +} +.form-radio-primary .form-check-input:checked { + border-color: #1c84ee; + background-color: #1c84ee; +} +.form-radio-primary .form-check-input:checked:after { + background-color: #1c84ee; +} +.form-check-secondary .form-check-input:checked { + background-color: #74788d; + border-color: #74788d; +} +.form-radio-secondary .form-check-input:checked { + border-color: #74788d; + background-color: #74788d; +} +.form-radio-secondary .form-check-input:checked:after { + background-color: #74788d; +} +.form-check-success .form-check-input:checked { + background-color: #34c38f; + border-color: #34c38f; +} +.form-radio-success .form-check-input:checked { + border-color: #34c38f; + background-color: #34c38f; +} +.form-radio-success .form-check-input:checked:after { + background-color: #34c38f; +} +.form-check-info .form-check-input:checked { + background-color: #16daf1; + border-color: #16daf1; +} +.form-radio-info .form-check-input:checked { + border-color: #16daf1; + background-color: #16daf1; +} +.form-radio-info .form-check-input:checked:after { + background-color: #16daf1; +} +.form-check-warning .form-check-input:checked { + background-color: #ffcc5a; + border-color: #ffcc5a; +} +.form-radio-warning .form-check-input:checked { + border-color: #ffcc5a; + background-color: #ffcc5a; +} +.form-radio-warning .form-check-input:checked:after { + background-color: #ffcc5a; +} +.form-check-danger .form-check-input:checked { + background-color: #ef6767; + border-color: #ef6767; +} +.form-radio-danger .form-check-input:checked { + border-color: #ef6767; + background-color: #ef6767; +} +.form-radio-danger .form-check-input:checked:after { + background-color: #ef6767; +} +.form-check-pink .form-check-input:checked { + background-color: #e83e8c; + border-color: #e83e8c; +} +.form-radio-pink .form-check-input:checked { + border-color: #e83e8c; + background-color: #e83e8c; +} +.form-radio-pink .form-check-input:checked:after { + background-color: #e83e8c; +} +.form-check-light .form-check-input:checked { + background-color: #f6f6f6; + border-color: #f6f6f6; +} +.form-radio-light .form-check-input:checked { + border-color: #f6f6f6; + background-color: #f6f6f6; +} +.form-radio-light .form-check-input:checked:after { + background-color: #f6f6f6; +} +.form-check-dark .form-check-input:checked { + background-color: #2b3940; + border-color: #2b3940; +} +.form-radio-dark .form-check-input:checked { + border-color: #2b3940; + background-color: #2b3940; +} +.form-radio-dark .form-check-input:checked:after { + background-color: #2b3940; +} +.form-check, .form-check-input, .form-check-label { + cursor: pointer; + margin-bottom: 0; +} +.form-switch-md { + font-size: 20px; + min-height: 26px; + line-height: 26px; +} +.form-switch-md .form-check-label { + font-size: .8125rem; + vertical-align: middle; +} +.form-switch-lg { + font-size: 26px; + min-height: 36px; + line-height: 36px; +} +.form-switch-lg .form-check-label { + font-size: .8125rem; + vertical-align: middle; +} +.input-group-text { + margin-bottom: 0; +} +body[data-layout-mode=dark] .form-control { + color: #adb5bd; + background-color: #282f36; + border: 1px solid #30373f; +} +body[data-layout-mode=dark] .form-select { + color: #adb5bd; + background-color: #293037; + border: 1px solid #30373f; + background-image: url("data:image/svg+xml, %3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23e9e9ef' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); +} +body[data-layout-mode=dark] .form-check-input { + background-color: #30373f; + border-color: rgba(255, 255, 255, .25); +} +body[data-layout-mode=dark] .form-check-input:checked { + background-color: #1c84ee; + border-color: #1c84ee; +} +body[data-layout-mode=dark] .form-switch .form-check-input { + background-image: 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"); +} +body[data-layout-mode=dark] .input-group-text { + background-color: #30373f; + border-color: #30373f; + color: #ced4da; +} +body[data-layout-mode=dark] .form-control::-webkit-file-upload-button { + background-color: #30373f; + color: #ced4da; +} +body[data-layout-mode=dark] .form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { + background-color: #30373f; +} +body[data-layout-mode=dark] .form-range::-webkit-slider-runnable-track { + background-color: #30373f!important; +} +body[data-layout-mode=dark] .form-range::-moz-range-track { + background-color: #30373f!important; +} +.widget-box-1-icon { + position: absolute; + right: -25px; + bottom: -25px; + font-size: 6rem; + opacity: .1; +} +.widget-carousel .carousel-indicators { + margin: 0 auto; + position: relative; +} +.dash-widget { + width: 85px; +} +.activity-border:before { + content: ""; + position: absolute; + height: 80px; + border-left: 2px dashed #ced4da; + top: 40px; + left: 2px; +} +.activity-wid { + margin-left: 16px; +} +.activity-wid .activity-list { + position: relative; + padding: 0 0 20px 45px; +} +.activity-wid .activity-list .activity-icon { + position: absolute; + left: -20px; + top: -3px; + z-index: 2; + background: #fff; +} +.activity-wid .activity-list .activity-icon img { + border: 5px solid #fff; +} +.activity-wid .activity-list .activity-icon span { + border: 5px solid #fff; +} +.activity-wid .activity-list:last-child { + padding-bottom: 0; +} +body[data-layout-mode=dark] .activity-wid .activity-list .activity-icon { + background: #242a30; +} +body[data-layout-mode=dark] .activity-wid .activity-list .activity-icon img, body[data-layout-mode=dark] .activity-wid .activity-list .activity-icon span { + border-color: #242a30; +} +body[data-layout-mode=dark] .activity-border:before { + border-color: #30373f; +} +body[data-layout-mode=dark] .toast, body[data-layout-mode=dark] .toast-header { + background-color: rgba(48, 55, 63, .85); + color: #858d98; +} +body[data-layout-mode=dark] .toast-header { + color: #adb5bd; +} +.grid-example { + background-color: rgba(28, 132, 238, .05); + border-radius: 5px; + font-weight: 500; + padding: 10px 20px; + font-size: .8rem; +} +.bs-example-modal { + position: relative; + top: auto; + right: auto; + bottom: auto; + left: auto; + z-index: 1; + display: block; +} +[dir=rtl] .modal-open { + padding-left: 0!important; +} +.icon-demo-content { + color: #adb5bd; +} +.icon-demo-content i, .icon-demo-content svg { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + width: 40px; + height: 40px; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + font-size: 20px; + color: #74788d; + -webkit-transition: all .4s; + transition: all .4s; + border: 1px solid #e9e9ef; + border-radius: 50%; + margin-right: 16px; + vertical-align: middle; +} +.icon-demo-content svg { + padding: 10px; +} +.icon-demo-content .col-lg-4 { + margin-top: 24px; +} +.icon-demo-content .col-lg-4:hover i, .icon-demo-content .col-lg-4:hover svg { + background-color: rgba(28, 132, 238, .2); + color: #1c84ee; +} +.grid-structure .grid-container { + background-color: #f8f9fa; + margin-top: 10px; + font-size: .8rem; + font-weight: 500; + padding: 10px 20px; +} +.card-radio { + background-color: #fff; + border: 2px solid #e9e9ef; + border-radius: .25rem; + padding: 1rem; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.card-radio:hover { + cursor: pointer; +} +.card-radio-label { + display: block; +} +.card-radio-input { + display: none; +} +.card-radio-input:checked+.card-radio { + border-color: #1c84ee!important; +} +.spin-left:before { + -webkit-animation: spin-left 2s infinite linear; + animation: spin-left 2s infinite linear; +} +.spin-right:before { + -webkit-animation: spin-right 2s infinite linear; + animation: spin-right 2s infinite linear; +} +@-webkit-keyframes spin-left { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); +} +100% { + -webkit-transform: rotate(-359deg); + transform: rotate(-359deg); +} +}@keyframes spin-left { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); +} +100% { + -webkit-transform: rotate(-359deg); + transform: rotate(-359deg); +} +}@-webkit-keyframes spin-right { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); +} +100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); +} +}@keyframes spin-right { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); +} +100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); +} +}body[data-layout-mode=dark] .grid-example, body[data-layout-mode=dark] .grid-structure .grid-container { + background-color: #293037; +} +body[data-layout-mode=dark] .icon-demo-content { + color: #858d98; +} +body[data-layout-mode=dark] .icon-demo-content i { + border-color: #30373f; + color: #858d98; +} +body[data-layout-mode=dark] .glightbox-clean .gslide-description { + background-color: #30373f; +} +body[data-layout-mode=dark] .glightbox-clean .gslide-title { + color: #ced4da; +} +.popover, .tooltip { + z-index: 9; +} +@media print { + .footer, .navbar-header, .page-title-box, .right-bar, .vertical-menu { + display: none!important; +} +.card-body, .main-content, .page-content, .right-bar, body { + padding: 0; + margin: 0; +} +.card { + border: 0; +} +}[data-simplebar] { + position: relative; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + -ms-flex-line-pack: start; + align-content: flex-start; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; +} +.simplebar-wrapper { + overflow: hidden; + width: inherit; + height: inherit; + max-width: inherit; + max-height: inherit; +} +.simplebar-mask { + direction: inherit; + position: absolute; + overflow: hidden; + padding: 0; + margin: 0; + left: 0; + top: 0; + bottom: 0; + right: 0; + width: auto!important; + height: auto!important; + z-index: 0; +} +.simplebar-offset { + direction: inherit!important; + -webkit-box-sizing: inherit!important; + box-sizing: inherit!important; + resize: none!important; + position: absolute; + top: 0; + left: 0!important; + bottom: 0; + right: 0!important; + padding: 0; + margin: 0; + -webkit-overflow-scrolling: touch; +} +.simplebar-content-wrapper { + direction: inherit; + -webkit-box-sizing: border-box!important; + box-sizing: border-box!important; + position: relative; + display: block; + height: 100%; + width: auto; + visibility: visible; + overflow: auto; + max-width: 100%; + max-height: 100%; + scrollbar-width: none; + padding: 0!important; +} +.simplebar-content-wrapper::-webkit-scrollbar, .simplebar-hide-scrollbar::-webkit-scrollbar { + display: none; +} +.simplebar-content:after, .simplebar-content:before { + content: " "; + display: table; +} +.simplebar-placeholder { + max-height: 100%; + max-width: 100%; + width: 100%; + pointer-events: none; +} +.simplebar-height-auto-observer-wrapper { + -webkit-box-sizing: inherit!important; + box-sizing: inherit!important; + height: 100%; + width: 100%; + max-width: 1px; + position: relative; + float: left; + max-height: 1px; + overflow: hidden; + z-index: -1; + padding: 0; + margin: 0; + pointer-events: none; + -webkit-box-flex: inherit; + -ms-flex-positive: inherit; + flex-grow: inherit; + -ms-flex-negative: 0; + flex-shrink: 0; + -ms-flex-preferred-size: 0; + flex-basis: 0; +} +.simplebar-height-auto-observer { + -webkit-box-sizing: inherit; + box-sizing: inherit; + display: block; + opacity: 0; + position: absolute; + top: 0; + left: 0; + height: 1000%; + width: 1000%; + min-height: 1px; + min-width: 1px; + overflow: hidden; + pointer-events: none; + z-index: -1; +} +.simplebar-track { + z-index: 1; + position: absolute; + right: 0; + bottom: 0; + pointer-events: none; + overflow: hidden; +} +[data-simplebar].simplebar-dragging .simplebar-content { + pointer-events: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-user-select: none; +} +[data-simplebar].simplebar-dragging .simplebar-track { + pointer-events: all; +} +.simplebar-scrollbar { + position: absolute; + right: 2px; + width: 6px; + min-height: 10px; +} +.simplebar-scrollbar:before { + position: absolute; + content: ""; + background: #a2adb7; + border-radius: 7px; + left: 0; + right: 0; + opacity: 0; + -webkit-transition: opacity .2s linear; + transition: opacity .2s linear; +} +.simplebar-scrollbar.simplebar-visible:before { + opacity: .5; + -webkit-transition: opacity 0s linear; + transition: opacity 0s linear; +} +.simplebar-track.simplebar-vertical { + top: 0; + width: 11px; +} +.simplebar-track.simplebar-vertical .simplebar-scrollbar:before { + top: 2px; + bottom: 2px; +} +.simplebar-track.simplebar-horizontal { + left: 0; + height: 11px; +} +.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before { + height: 100%; + left: 2px; + right: 2px; +} +.simplebar-track.simplebar-horizontal .simplebar-scrollbar { + right: auto; + left: 0; + top: 2px; + height: 7px; + min-height: 0; + min-width: 10px; + width: auto; +} +[data-simplebar-direction=rtl] .simplebar-track.simplebar-vertical { + right: auto; + left: 0; +} +.hs-dummy-scrollbar-size { + direction: rtl; + position: fixed; + opacity: 0; + visibility: hidden; + height: 500px; + width: 500px; + overflow-y: hidden; + overflow-x: scroll; +} +.simplebar-hide-scrollbar { + position: fixed; + left: 0; + visibility: hidden; + overflow-y: scroll; + scrollbar-width: none; +} +.custom-scroll { + height: 100%} +.bootstrap-touchspin.input-group>.input-group-prepend>.btn, .bootstrap-touchspin.input-group>.input-group-prepend>.input-group-text { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.bootstrap-touchspin.input-group>.input-group-append>.btn, .bootstrap-touchspin.input-group>.input-group-append>.input-group-text { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.bootstrap-touchspin .input-group-btn-vertical { + right: 0; +} +.bootstrap-touchspin .input-group-btn-vertical .btn { + right: 0!important; + left: 100%!important; +} +.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-up { + border-top-right-radius: 4px!important; + border-bottom-right-radius: 0!important; + border-top-left-radius: 0!important; + border-bottom-left-radius: 0!important; +} +.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-down { + border-top-right-radius: 0!important; + border-bottom-right-radius: 4px!important; + border-top-left-radius: 0!important; + border-bottom-left-radius: 0!important; +} +.fc td, .fc th { + border: 1px solid #e9e9ef; +} +.fc .fc-toolbar h2 { + font-size: 16px; + line-height: 30px; + text-transform: uppercase; +} +@media (max-width:767.98px) { + .fc .fc-toolbar .fc-center, .fc .fc-toolbar .fc-left, .fc .fc-toolbar .fc-right { + float: none; + display: block; + text-align: center; + clear: both; + margin: 10px 0; +} +.fc .fc-toolbar>*>* { + float: none; +} +.fc .fc-toolbar .fc-today-button { + display: none; +} +}.fc .fc-toolbar .btn { + text-transform: capitalize; +} +.fc th.fc-widget-header { + background: #f6f6f6; + color: #495057; + line-height: 20px; + padding: 10px 0; + text-transform: uppercase; + font-weight: 700; +} +.fc-unthemed .fc-content, .fc-unthemed .fc-divider, .fc-unthemed .fc-list-heading td, .fc-unthemed .fc-list-view, .fc-unthemed .fc-popover, .fc-unthemed .fc-row, .fc-unthemed tbody, .fc-unthemed td, .fc-unthemed th, .fc-unthemed thead { + border-color: #f6f6f6; +} +.fc-unthemed td.fc-today { + background: #efeff3; +} +.fc-button { + background: #fff; + border-color: #e9e9ef; + color: #495057; + text-transform: capitalize; + -webkit-box-shadow: none; + box-shadow: none; + padding: 6px 12px!important; + height: auto!important; +} +.fc-state-active, .fc-state-disabled, .fc-state-down { + background-color: #1c84ee; + color: #fff; + text-shadow: none; +} +.fc-event { + border-radius: 2px; + border: none; + cursor: move; + font-size: .8125rem; + margin: 5px 7px; + padding: 5px 5px; + text-align: center; +} +.fc-event, .fc-event-dot { + background-color: #1c84ee; +} +.fc-event .fc-content { + color: #fff; +} +#external-events .external-event { + text-align: left; + padding: 8px 16px; +} +.fc-day-grid-event.fc-h-event.fc-event.fc-start.fc-end.bg-dark .fc-content { + color: #f6f6f6; +} +[dir=rtl] .fc-header-toolbar { + direction: ltr!important; +} +[dir=rtl] .fc-toolbar>*>:not(:first-child) { + margin-left: .75em; +} +@media (max-width:575.98px) { + .fc-toolbar { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} +}#session-timeout-dialog .close { + display: none; +} +#session-timeout-dialog .countdown-holder { + color: #ef6767; + font-weight: 500; +} +#session-timeout-dialog .btn-default { + background-color: #fff; + color: #ef6767; + -webkit-box-shadow: none; + box-shadow: none; +} +.noUi-connect { + background: #1c84ee; +} +.noUi-handle { + background: #fff; +} +.noUi-horizontal { + height: 8px; +} +.noUi-horizontal .noUi-handle { + height: 20px; + width: 20px; + border-radius: 50%; + right: -10px; + top: -7px; +} +.noUi-horizontal .noUi-handle::after, .noUi-horizontal .noUi-handle::before { + display: none; +} +.noUi-horizontal .noUi-handle:focus { + outline: 0; +} +.noUi-connects, .noUi-touch-area { + cursor: pointer; +} +.noUi-pips-horizontal { + height: 50px; +} +.noUi-vertical { + width: 8px; +} +.noUi-vertical .noUi-handle { + height: 20px; + width: 20px; + right: -7px; + top: -12px; + border-radius: 50%} +.noUi-vertical .noUi-handle::after, .noUi-vertical .noUi-handle::before { + display: none; +} +.noUi-vertical .noUi-handle:focus { + outline: 0; +} +.noUi-vertical .noUi-origin { + top: 0; +} +.noUi-value { + font-size: 12px; +} +.noUi-marker-horizontal.noUi-marker-large { + height: 6px; +} +.noUi-marker-horizontal.noUi-marker { + display: none; +} +.noUi-target { + background-color: #f6f6f6; + border-color: #f6f6f6; +} +.noUi-touch-area:focus { + outline: 0; +} +#blue, #green, #red { + margin: 10px; + display: inline-block; + height: 200px; +} +#colorpicker { + height: 240px; + width: 310px; + margin: 0 auto; + padding: 10px; + border: 1px solid #e9e9ef; +} +#result { + margin: 60px 26px; + height: 100px; + width: 100px; + display: inline-block; + vertical-align: top; + border: 1px solid #e9e9ef; + -webkit-box-shadow: 0 0 3px; + box-shadow: 0 0 3px; + border-radius: 7px; +} +#red .noUi-connect { + background: #ef6767; +} +#green .noUi-connect { + background: #34c38f; +} +#blue .noUi-connect { + background: #1c84ee; +} +.form-control.keyboard { + max-width: 340px!important; +} +#input-number, #input-select { + padding: 7px; + margin: 15px 5px 5px; + width: 70px; +} +.example-val { + font-size: 12px; + color: #74788d; + display: block; + margin: 15px 0; +} +.example-val:before { + content: "Value: "; + font-size: 12px; + font-weight: 600; +} +.noUi-tooltip { + display: none; +} +.noUi-active .noUi-tooltip { + display: block; +} +.c-1-color { + background: #ef6767; +} +.c-2-color { + background: #ffcc5a; +} +.c-3-color { + background: #34c38f; +} +.c-4-color { + background: #1c84ee; +} +.c-5-color { + background: #6f42c1; +} +#slider-toggle { + height: 50px; +} +#slider-toggle.off .noUi-handle { + border-color: #ef6767; +} +body[data-layout-mode=dark] .noUi-target { + background-color: #30373f; + border-color: #30373f; + -webkit-box-shadow: inset 0 1px 1px #30373f, 0 3px 6px -5px #30373f; + box-shadow: inset 0 1px 1px #30373f, 0 3px 6px -5px #30373f; +} +body[data-layout-mode=dark] .example-val { + color: #858d98; +} +.swal2-container .swal2-title { + font-size: 22px; + font-weight: 500; +} +.swal2-modal { + font-size: 14px; +} +.swal2-icon.swal2-question { + border-color: #16daf1; + color: #16daf1; +} +.swal2-icon.swal2-success [class^=swal2-success-line] { + background-color: #34c38f; +} +.swal2-icon.swal2-success .swal2-success-ring { + border-color: rgba(52, 195, 143, .3); +} +.swal2-icon.swal2-warning { + border-color: #ffcc5a; + color: #ffcc5a; +} +.swal2-styled:focus { + -webkit-box-shadow: none; + box-shadow: none; +} +.swal2-progress-steps .swal2-progress-step { + background: #1c84ee; +} +.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step { + background: #1c84ee; +} +.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step, .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line { + background: rgba(28, 132, 238, .3); +} +.swal2-progress-steps .swal2-progress-step-line { + background: #1c84ee; +} +.swal2-loader { + border-color: #1c84ee transparent #1c84ee transparent; +} +body[data-layout-mode=dark] .swal2-popup { + background-color: #30373f!important; +} +body[data-layout-mode=dark] .swal2-content { + color: #adb5bd; +} +body[data-layout-mode=dark] .swal2-html-container { + color: #858d98; +} +.alertify .ajs-header { + font-weight: 500; +} +.alertify .ajs-dialog { + -webkit-box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08); + box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08); + background-color: #fff; +} +.alertify .ajs-dialog .ajs-footer, .alertify .ajs-dialog .ajs-header { + background-color: #fff; +} +.alertify .ajs-footer .ajs-buttons .ajs-button { + font-weight: 500; +} +.alertify .ajs-footer .ajs-buttons .ajs-button.ajs-ok { + color: #1c84ee; +} +.alertify .ajs-footer .ajs-buttons.ajs-primary { + text-align: right; +} +.alertify .ajs-body .ajs-content .ajs-input:focus-visible { + outline: 0; +} +.alertify .ajs-commands { + right: 4px; + left: auto; + margin: -14px 0 0 24px; +} +.alertify-notifier .ajs-message { + background-color: #1c84ee; + border-color: #1c84ee; + color: #fff; + text-shadow: none!important; +} +.alertify-notifier .ajs-message.ajs-success { + background-color: #34c38f; + border-color: #34c38f; +} +.alertify-notifier .ajs-message.ajs-error { + background-color: #ef6767; + border-color: #ef6767; +} +.alertify-notifier .ajs-message.ajs-warning { + background-color: #ffcc5a; + border-color: #ffcc5a; +} +.alertify-notifier.ajs-right { + right: 10px; + left: auto; +} +.alertify-notifier.ajs-right .ajs-message { + right: -320px; + left: auto; +} +.alertify-notifier.ajs-right .ajs-message.ajs-visible { + right: 290px; + left: auto; +} +.alertify-notifier.ajs-left { + left: 10px; + right: auto; +} +.alertify-notifier.ajs-left .ajs-message { + left: -300px; + right: auto; +} +.alertify-notifier.ajs-left .ajs-message.ajs-visible { + left: 0; + right: auto; +} +body[data-layout-mode=dark] .alertify .ajs-dialog { + background-color: #242a30; +} +body[data-layout-mode=dark] .alertify .ajs-footer, body[data-layout-mode=dark] .alertify .ajs-header { + color: #ced4da; + background-color: #242a30; + border-color: #30373f; +} +body[data-layout-mode=dark] .alertify .ajs-body { + color: #adb5bd; +} +body[data-layout-mode=dark] .alertify .ajs-body .ajs-content .ajs-input { + color: #adb5bd; + background-color: #282f36; + border: 1px solid #30373f; +} +body[data-layout-mode=dark] .alertify .ajs-footer .ajs-buttons .ajs-button { + color: #adb5bd; +} +body[data-layout-mode=dark] .alertify .ajs-footer .ajs-buttons .ajs-button.ajs-ok { + color: #1c84ee; +} +.pristine-error { + margin-top: 2px; + color: #ef6767; +} +.has-success .form-control { + border-color: #34c38f; +} +.has-danger .form-control { + border-color: #ef6767; +} +.choices__inner { + padding: .25rem 2.5rem .25rem .5rem; + background-color: #fff; + vertical-align: middle; + border-radius: .25rem; + border: 1px solid #e9e9ef!important; + min-height: 38px; +} +.choices__list--dropdown { + border: 1px solid #e9e9ef!important; + -webkit-box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08); + box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08); +} +.choices[data-type*=select-one] .choices__inner { + padding-bottom: .25rem; +} +.choices[data-type*=select-one] .choices__button { + right: 0; + left: auto; + margin-right: 25px; + margin-left: 0; +} +.choices[data-type*=select-one]:after { + border-color: #2b3940 transparent transparent; + right: 11.5px; + left: auto; +} +.choices[data-type*=select-one].is-open:after { + border-color: transparent transparent #2b3940; +} +.choices__input { + background-color: #fff; + margin-bottom: 0; +} +/*.choices__list--multiple {*/ +/* display: -webkit-inline-box;*/ +/* display: -ms-inline-flexbox;*/ +/* display: inline-flex;*/ +/* -ms-flex-wrap: wrap;*/ +/* flex-wrap: wrap;*/ +/*}*/ +.choices__list--multiple { + display: -webkit-inline-flex; /* Newer WebKit browsers */ + display: -ms-inline-flexbox; /* Older IE versions */ + display: inline-flex; /* Standard property */ + -ms-flex-wrap: wrap; /* Older IE versions */ + flex-wrap: wrap; /* Standard property */ +} + +.choices__list--multiple .choices__item { + background-color: #1c84ee; + border-color: #1c84ee; + margin-bottom: 0; + margin-right: 7px; + font-weight: 400; +} +.choices__list--multiple .choices__item.is-highlighted { + background-color: #1c84ee; + border: 1px solid #1c84ee; +} +.choices.is-disabled .choices__inner, .choices.is-disabled .choices__input { + background-color: #f6f6f6; +} +.is-disabled .choices__list--multiple .choices__item { + background-color: #74788d; + border-color: #74788d; +} +.choices[data-type*=select-multiple] .choices__button, .choices[data-type*=text] .choices__button { + border-left: 1px solid rgba(255, 255, 255, .5); + margin: 0 -4px 0 8px; + border-right: 0; +} +body[data-layout-mode=dark] .choices__list--dropdown { + border: 1px solid #30373f!important; +} +body[data-layout-mode=dark] .choices__heading { + border: 1px solid #30373f; +} +body[data-layout-mode=dark] .choices__inner { + color: #adb5bd; + background-color: #282f36; + border: 1px solid #30373f!important; +} +body[data-layout-mode=dark] .choices__input { + background-color: #282f36; + color: #adb5bd; +} +body[data-layout-mode=dark] .choices[data-type*=select-one]:after { + border-color: #adb5bd transparent transparent; +} +body[data-layout-mode=dark] .choices[data-type*=select-one].is-open:after { + border-color: transparent transparent #adb5bd; +} +body[data-layout-mode=dark] .choices[data-type*=select-one] .choices__input { + background-color: #282f36; + border: 1px solid #30373f; + color: #adb5bd; +} +body[data-layout-mode=dark] .choices__list--dropdown { + background-color: #282f36; + border-color: #30373f; +} +body[data-layout-mode=dark] .choices__list--dropdown .choices__item--selectable.is-highlighted { + background-color: #30373f; +} +body[data-layout-mode=dark] .choices.is-disabled .choices__inner, body[data-layout-mode=dark] .choices.is-disabled .choices__input { + background-color: #282f36; +} +input[switch] { + display: none; +} +input[switch]+label { + font-size: 1em; + line-height: 1; + width: 56px; + height: 24px; + background-color: #ced4da; + background-image: none; + border-radius: 2rem; + padding: .16667rem; + cursor: pointer; + display: inline-block; + text-align: center; + position: relative; + font-weight: 500; + -webkit-transition: all .1s ease-in-out; + transition: all .1s ease-in-out; +} +input[switch]+label:before { + color: #2b3940; + content: attr(data-off-label); + display: block; + font-family: inherit; + font-weight: 500; + font-size: 12px; + line-height: 21px; + position: absolute; + right: 1px; + margin: 3px; + top: -2px; + text-align: center; + min-width: 1.66667rem; + overflow: hidden; + -webkit-transition: all .1s ease-in-out; + transition: all .1s ease-in-out; +} +input[switch]+label:after { + content: ""; + position: absolute; + left: 3px; + background-color: #e9e9ef; + -webkit-box-shadow: none; + box-shadow: none; + border-radius: 2rem; + height: 20px; + width: 20px; + top: 2px; + -webkit-transition: all .1s ease-in-out; + transition: all .1s ease-in-out; +} +input[switch]:checked+label { + background-color: #1c84ee; +} +input[switch]:checked+label { + background-color: #1c84ee; +} +input[switch]:checked+label:before { + color: #fff; + content: attr(data-on-label); + right: auto; + left: 3px; +} +input[switch]:checked+label:after { + left: 33px; + background-color: #e9e9ef; +} +input[switch=bool]+label { + background-color: #ef6767; +} +input[switch=bool]+label:before, input[switch=bool]:checked+label:before, input[switch=default]:checked+label:before { + color: #fff; +} +input[switch=bool]:checked+label { + background-color: #34c38f; +} +input[switch=default]:checked+label { + background-color: #a2a2a2; +} +input[switch=primary]:checked+label { + background-color: #1c84ee; +} +input[switch=success]:checked+label { + background-color: #34c38f; +} +input[switch=info]:checked+label { + background-color: #16daf1; +} +input[switch=warning]:checked+label { + background-color: #ffcc5a; +} +input[switch=danger]:checked+label { + background-color: #ef6767; +} +input[switch=dark]:checked+label { + background-color: #2b3940; +} +input[switch=dark]:checked+label:before { + color: #f6f6f6; +} +.square-switch { + margin-right: 7px; +} +.square-switch input[switch]+label, .square-switch input[switch]+label:after { + border-radius: 4px; +} +.pcr-app { + background: #fff; +} +.pcr-app[data-theme=classic] .pcr-selection .pcr-color-preview { + margin-right: .75em; + margin-left: 0; +} +.pcr-app[data-theme=classic] .pcr-selection .pcr-color-chooser, .pcr-app[data-theme=classic] .pcr-selection .pcr-color-opacity { + margin-left: .75em; + margin-right: 0; +} +body[data-layout-mode=dark] .pcr-app { + background-color: #30373f; +} +.flatpickr-input[readonly] { + background-color: #fff; +} +.flatpickr-months, .flatpickr-weekdays { + background-color: #1c84ee; +} +span.flatpickr-weekday { + color: #fff; + font-weight: 500; +} +.flatpickr-current-month .flatpickr-monthDropdown-months:hover { + background-color: transparent!important; +} +.flatpickr-am-pm:focus, .flatpickr-am-pm:hover, .numInput:focus, .numInput:hover, .numInputWrapper:focus, .numInputWrapper:hover { + background-color: transparent!important; +} +.flatpickr-weekdays { + height: 36px!important; + border-bottom: 1px solid #e9e9ef; +} +.flatpickr-day { + color: #2b3940!important; +} +.flatpickr-day:focus, .flatpickr-day:hover { + background-color: rgba(246, 246, 246, .7)!important; +} +.flatpickr-day.today { + border-color: #1c84ee!important; + background-color: rgba(28, 132, 238, .1); +} +.flatpickr-day.today:focus, .flatpickr-day.today:hover { + color: #2b3940!important; + background-color: rgba(28, 132, 238, .15)!important; +} +.flatpickr-day.selected { + background-color: #1c84ee!important; + border-color: #1c84ee!important; + color: #fff!important; +} +.flatpickr-day.flatpickr-disabled, .flatpickr-day.flatpickr-disabled:hover, .flatpickr-day.nextMonthDay, .flatpickr-day.notAllowed, .flatpickr-day.notAllowed.nextMonthDay, .flatpickr-day.notAllowed.prevMonthDay, .flatpickr-day.prevMonthDay { + color: rgba(43, 57, 64, .3)!important; +} +.flatpickr-day.inRange, .flatpickr-day.nextMonthDay.inRange, .flatpickr-day.nextMonthDay.today.inRange, .flatpickr-day.nextMonthDay:focus, .flatpickr-day.nextMonthDay:hover, .flatpickr-day.prevMonthDay.inRange, .flatpickr-day.prevMonthDay.today.inRange, .flatpickr-day.prevMonthDay:focus, .flatpickr-day.prevMonthDay:hover, .flatpickr-day.today.inRange, .flatpickr-day:focus, .flatpickr-day:hover { + background-color: #f6f6f6; + border-color: #f6f6f6; +} +.flatpickr-day.inRange { + -webkit-box-shadow: -5px 0 0 #f6f6f6, 5px 0 0 #f6f6f6; + box-shadow: -5px 0 0 #f6f6f6, 5px 0 0 #f6f6f6; +} +.flatpickr-months .flatpickr-month, .flatpickr-months .flatpickr-next-month, .flatpickr-months .flatpickr-prev-month { + color: rgba(255, 255, 255, .9)!important; + fill: rgba(255, 255, 255, .9)!important; +} +.flatpickr-monthDropdown-month { + color: rgba(0, 0, 0, .8); +} +.flatpickr-current-month input.cur-year[disabled], .flatpickr-current-month input.cur-year[disabled]:hover { + color: rgba(255, 255, 255, .9)!important; +} +.flatpickr-time .flatpickr-am-pm, .flatpickr-time .flatpickr-time-separator, .flatpickr-time input { + color: #2b3940!important; +} +.flatpickr-calendar { + background-color: #fff!important; + -webkit-box-shadow: 1px 0 0 #e9e9ef, -1px 0 0 #e9e9ef, 0 1px 0 #e9e9ef, 0 -1px 0 #e9e9ef, 0 3px 13px rgba(0, 0, 0, .08)!important; + box-shadow: 1px 0 0 #e9e9ef, -1px 0 0 #e9e9ef, 0 1px 0 #e9e9ef, 0 -1px 0 #e9e9ef, 0 3px 13px rgba(0, 0, 0, .08)!important; +} +.flatpickr-calendar.hasTime .flatpickr-time { + border-top: 1px solid #e9e9ef!important; +} +.flatpickr-months { + border-radius: 5px 5px 0 0; +} +.flatpickr-months .flatpickr-next-month:hover svg, .flatpickr-months .flatpickr-prev-month:hover svg { + fill: rgba(255, 255, 255, .9)!important; +} +body[data-layout-mode=dark] .flatpickr-calendar { + background-color: #293037!important; + -webkit-box-shadow: 1px 0 0 #30373f, -1px 0 0 #30373f, 0 1px 0 #30373f, 0 -1px 0 #30373f, 0 3px 13px rgba(0, 0, 0, .08)!important; + box-shadow: 1px 0 0 #30373f, -1px 0 0 #30373f, 0 1px 0 #30373f, 0 -1px 0 #30373f, 0 3px 13px rgba(0, 0, 0, .08)!important; +} +body[data-layout-mode=dark] .flatpickr-calendar.hasTime .flatpickr-time { + border-top: 1px solid #30373f!important; +} +body[data-layout-mode=dark] .flatpickr-weekdays { + border-color: #30373f; +} +body[data-layout-mode=dark] .flatpickr-day { + color: #adb5bd!important; +} +body[data-layout-mode=dark] .flatpickr-day:focus, body[data-layout-mode=dark] .flatpickr-day:hover { + background-color: rgba(48, 55, 63, .7)!important; +} +body[data-layout-mode=dark] .flatpickr-day.today:focus, body[data-layout-mode=dark] .flatpickr-day.today:hover { + color: #adb5bd!important; +} +body[data-layout-mode=dark] .flatpickr-day.inRange, body[data-layout-mode=dark] .flatpickr-day.nextMonthDay.inRange, body[data-layout-mode=dark] .flatpickr-day.nextMonthDay.today.inRange, body[data-layout-mode=dark] .flatpickr-day.nextMonthDay:focus, body[data-layout-mode=dark] .flatpickr-day.nextMonthDay:hover, body[data-layout-mode=dark] .flatpickr-day.prevMonthDay.inRange, body[data-layout-mode=dark] .flatpickr-day.prevMonthDay.today.inRange, body[data-layout-mode=dark] .flatpickr-day.prevMonthDay:focus, body[data-layout-mode=dark] .flatpickr-day.prevMonthDay:hover, body[data-layout-mode=dark] .flatpickr-day.today.inRange, body[data-layout-mode=dark] .flatpickr-day:focus, body[data-layout-mode=dark] .flatpickr-day:hover { + background-color: #30373f; + border-color: #30373f; +} +body[data-layout-mode=dark] .flatpickr-day.selected { + background-color: #1c84ee!important; + border-color: #1c84ee!important; + color: #fff!important; +} +body[data-layout-mode=dark] .flatpickr-day.flatpickr-disabled, body[data-layout-mode=dark] .flatpickr-day.flatpickr-disabled:hover, body[data-layout-mode=dark] .flatpickr-day.nextMonthDay, body[data-layout-mode=dark] .flatpickr-day.notAllowed, body[data-layout-mode=dark] .flatpickr-day.notAllowed.nextMonthDay, body[data-layout-mode=dark] .flatpickr-day.notAllowed.prevMonthDay, body[data-layout-mode=dark] .flatpickr-day.prevMonthDay { + color: rgba(173, 181, 189, .3)!important; +} +body[data-layout-mode=dark] .flatpickr-day.inRange { + -webkit-box-shadow: -5px 0 0 #30373f, 5px 0 0 #30373f; + box-shadow: -5px 0 0 #30373f, 5px 0 0 #30373f; +} +body[data-layout-mode=dark] .flatpickr-time .flatpickr-am-pm, body[data-layout-mode=dark] .flatpickr-time .flatpickr-time-separator, body[data-layout-mode=dark] .flatpickr-time input { + color: #adb5bd!important; +} +body[data-layout-mode=dark] .flatpickr-time .numInputWrapper span.arrowUp:after { + border-bottom-color: #adb5bd; +} +body[data-layout-mode=dark] .flatpickr-time .numInputWrapper span.arrowDown:after { + border-top-color: #adb5bd; +} +.ck.ck-toolbar { + background-color: rgba(246, 246, 246, .75)!important; + border: 1px solid #ced4da!important; +} +.ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items { + -ms-flex-wrap: wrap!important; + flex-wrap: wrap!important; +} +.ck.ck-toolbar .ck.ck-toolbar__separator { + background: 0 0!important; +} +.ck.ck-editor__main>.ck-editor__editable { + border-top: 0!important; + background-color: #fff!important; + border-color: #ced4da!important; + -webkit-box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08)!important; + box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08)!important; +} +.ck.ck-dropdown__panel, .ck.ck-list { + background: #fff!important; + border: 1px solid #e9e9ef!important; + -webkit-box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08)!important; + box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08)!important; +} +.ck.ck-reset_all, .ck.ck-reset_all * { + color: #495057!important; +} +.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne, .ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se { + left: 0; + right: auto!important; +} +.ck.ck-editor__editable_inline[dir=rtl] { + text-align: left!important; +} +.ck-editor__editable { + min-height: 245px!important; +} +.ck.ck-button.ck-on:not(.ck-disabled):active, .ck.ck-button.ck-on:not(.ck-disabled):hover, a.ck.ck-button.ck-on:not(.ck-disabled):active, a.ck.ck-button.ck-on:not(.ck-disabled):hover { + background: #f6f6f6!important; + -webkit-box-shadow: none!important; + box-shadow: none!important; +} +.ck.ck-button:active, .ck.ck-button:focus, a.ck.ck-button:active, a.ck.ck-button:focus { + background: #f6f6f6!important; + border-color: #f6f6f6!important; +} +.ck.ck-tooltip .ck-tooltip__text { + background: #2b3940!important; + color: #f6f6f6!important; +} +.ck.ck-button:not(.ck-disabled):hover, .ck.ck-toolbar .ck.ck-button.ck-on, a.ck.ck-button.ck-on, a.ck.ck-button:not(.ck-disabled):hover { + background: rgba(246, 246, 246, .75)!important; +} +.ck.ck-list__item .ck-button .ck-button__label { + font-family: "Be Vietnam Pro", sans-serif; +} +.tox-tinymce { + border: 1px solid #ced4da!important; +} +.tox .tox-collection__item { + color: #495057!important; +} +.tox .tox-collection--toolbar.tox-collection--toolbar-lg.tox-selected-menu, .tox .tox-menu.tox-collection.tox-collection--list.tox-selected-menu, .tox .tox-swatches-menu.tox-selected-menu { + -webkit-box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075)!important; + box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075)!important; + -webkit-animation-name: DropDownSlide!important; + animation-name: DropDownSlide!important; + -webkit-animation-duration: .3s!important; + animation-duration: .3s!important; + -webkit-animation-fill-mode: both!important; + animation-fill-mode: both!important; + margin: 0!important; + position: absolute!important; + z-index: 1000!important; + padding: .5rem 0!important; + background-color: #fff!important; + border: 1px solid #e9e9ef!important; + border-radius: .25rem!important; +} +.tox .tox-collection--list .tox-collection__group { + border-color: #e9e9ef!important; +} +.tox .tox-collection--list .tox-collection__item--active { + color: #343a40!important; + background-color: #f8f9fa!important; +} +.tox .tox-collection__group-heading { + color: #343a40!important; + background-color: #f8f9fa!important; +} +.tox .tox-statusbar { + border-top: 1px solid #f6f6f6!important; +} +.tox .tox-edit-area__iframe, .tox .tox-menubar, .tox .tox-statusbar { + background-color: #fff!important; + background: 0 0!important; +} +.tox .tox-mbtn { + color: #495057!important; +} +.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active) { + background-color: #f6f6f6!important; +} +.tox .tox-tbtn:hover { + background-color: #f6f6f6!important; +} +.tox .tox-toolbar, .tox .tox-toolbar__overflow, .tox .tox-toolbar__primary { + background: #f6f6f6!important; +} +.tox .tox-toolbar__primary { + border-top-color: #f6f6f6!important; +} +.tox .tox-tbtn { + color: #495057!important; +} +.tox .tox-tbtn svg { + fill: #495057!important; +} +.tox .tox-edit-area__iframe { + background-color: #fff!important; +} +.tox .tox-statusbar a, .tox .tox-statusbar__path-item, .tox .tox-statusbar__wordcount { + color: #495057!important; +} +.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type) { + border-right: 1px solid #e9e9e9!important; +} +.tox .tox-collection--toolbar .tox-collection__item--active { + background-color: #f6f6f6!important; +} +body[data-layout-mode=dark] .ck.ck-toolbar { + background-color: #30373f!important; + border-color: #30373f!important; +} +body[data-layout-mode=dark] .ck.ck-dropdown__panel, body[data-layout-mode=dark] .ck.ck-list { + background-color: #293037!important; + border-color: #293037!important; + -webkit-box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08)!important; + box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08)!important; +} +body[data-layout-mode=dark] .ck.ck-editor__main>.ck-editor__editable { + background-color: #242a30!important; + border-color: #30373f!important; +} +body[data-layout-mode=dark] .ck.ck-icon :not([fill]) { + fill: #adb5bd!important; +} +body[data-layout-mode=dark] .ck.ck-reset_all, body[data-layout-mode=dark] .ck.ck-reset_all * { + color: #858d98!important; +} +body[data-layout-mode=dark] .ck .ck-input-text, body[data-layout-mode=dark] .ck .ck-label, body[data-layout-mode=dark] .ck .ck-link-form { + background-color: #293037!important; +} +body[data-layout-mode=dark] .ck.ck-button:active, body[data-layout-mode=dark] .ck.ck-button:focus, body[data-layout-mode=dark] a.ck.ck-button:active, body[data-layout-mode=dark] a.ck.ck-button:focus { + border-color: #30373f!important; +} +body[data-layout-mode=dark] .ck.ck-button:not(.ck-disabled):hover, body[data-layout-mode=dark] .ck.ck-toolbar .ck.ck-button.ck-on, body[data-layout-mode=dark] a.ck.ck-button.ck-on, body[data-layout-mode=dark] a.ck.ck-button:not(.ck-disabled):hover { + background: rgba(133, 141, 152, .2)!important; +} +body[data-layout-mode=dark] .tox-tinymce { + border: 1px solid #30373f!important; +} +body[data-layout-mode=dark] .tox .tox-statusbar { + border-top: 1px solid #30373f!important; +} +body[data-layout-mode=dark] .tox .tox-toolbar, body[data-layout-mode=dark] .tox .tox-toolbar__overflow, body[data-layout-mode=dark] .tox .tox-toolbar__primary { + background: #2f373f!important; + border-top: #2f373f!important; +} +body[data-layout-mode=dark] .tox .tox-mbtn { + color: #495057!important; +} +body[data-layout-mode=dark] .tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active) { + background-color: transparent!important; +} +body[data-layout-mode=dark] .tox .tox-tbtn:hover { + background: 0 0!important; +} +body[data-layout-mode=dark] .tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type) { + border-right: 1px solid #2f373f!important; +} +body[data-layout-mode=dark] .tox-edit-area__iframe, body[data-layout-mode=dark] .tox-menubar, body[data-layout-mode=dark] .tox-statusbar { + background-color: #242a30!important; + background: 0 0!important; +} +[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items { + -webkit-box-orient: horizontal; + -webkit-box-direction: reverse; + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; +} +.dropzone { + min-height: 230px; + border: 2px dashed #ced4da; + background: #fff; + border-radius: 6px; +} +.dropzone .dz-message { + font-size: 24px; + width: 100%} +body[data-layout-mode=dark] .dropzone { + background: #262d33; + border-color: #30373f; +} +.twitter-bs-wizard .twitter-bs-wizard-nav .step-icon { + display: inline-block; + width: 56px; + height: 56px; + line-height: 56px; + border: 1px solid rgba(28, 132, 238, .2); + color: #1c84ee; + text-align: center; + border-radius: 50%; + position: relative; + z-index: 1; + font-size: 20px; +} +@media (max-width:575.98px) { + .twitter-bs-wizard .twitter-bs-wizard-nav .step-icon { + width: 40px; + height: 40px; + line-height: 38px; +} +}.twitter-bs-wizard .twitter-bs-wizard-nav .step-title { + margin-left: 6px; +} +.twitter-bs-wizard .twitter-bs-wizard-nav .nav-item:last-child .nav-link::after { + display: none; +} +.twitter-bs-wizard .twitter-bs-wizard-nav .nav-item .nav-link.done .step-icon { + background-color: #1c84ee; + color: #fff; +} +.twitter-bs-wizard .twitter-bs-wizard-nav .nav-item .nav-link.done .uil:before { + content: "\e9c3"} +.twitter-bs-wizard .twitter-bs-wizard-nav .nav-link { + font-size: 14px; + position: relative; +} +@media (max-width:575.98px) { + .twitter-bs-wizard .twitter-bs-wizard-nav .nav-link { + padding: .5rem; +} +}.twitter-bs-wizard .twitter-bs-wizard-nav .nav-link::after { + content: ""; + position: absolute; + width: 75%; + height: 2px; + background-color: #e9e9ef; + left: 62%; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} +@media (max-width:575.98px) { + .twitter-bs-wizard .twitter-bs-wizard-nav .nav-link::after { + display: none; +} +}.twitter-bs-wizard .twitter-bs-wizard-nav .nav-link.active { + color: #495057; + background-color: transparent; +} +.twitter-bs-wizard .twitter-bs-wizard-nav .nav-link.active .step-icon { + background-color: rgba(28, 132, 238, .2); + color: #1c84ee; + border-color: rgba(28, 132, 238, .2); +} +.twitter-bs-wizard .twitter-bs-wizard-pager-link { + padding-top: 24px; + padding-left: 0; + list-style: none; + margin-bottom: 0; +} +.twitter-bs-wizard .twitter-bs-wizard-pager-link li { + display: inline-block; +} +.twitter-bs-wizard .twitter-bs-wizard-pager-link li.next { + float: right; +} +.twitter-bs-wizard-tab-content { + padding-top: 24px; + min-height: 262px; +} +body[data-layout-mode=dark] .twitter-bs-wizard .twitter-bs-wizard-nav .nav-link::after { + background-color: #30373f; +} +div.dataTables_wrapper div.dataTables_filter { + text-align: right; +} +@media (max-width:767px) { + div.dataTables_wrapper div.dataTables_filter { + text-align: center; +} +}div.dataTables_wrapper div.dataTables_filter input { + margin-left: .5em; + margin-right: 0; +} +.table.dataTable.dtr-inline.collapsed>tbody>tr>td, table.dataTable.dtr-inline.collapsed>tbody>tr>td { + position: relative; +} +.table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control, table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control { + padding-left: 30px; +} +.table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control:before, table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control:before { + top: 50%; + left: 5px; + height: 14px; + width: 14px; + margin-top: -9px; + display: block; + position: absolute; + color: #fff; + border: 2px solid #fff; + border-radius: 14px; + -webkit-box-sizing: content-box; + box-sizing: content-box; + text-align: center; + text-indent: 0!important; + line-height: 14px; + content: "+"; + background-color: #1c84ee; +} +.table.dataTable>thead>tr>td:not(.sorting_disabled), .table.dataTable>thead>tr>th:not(.sorting_disabled), table.dataTable>thead>tr>td:not(.sorting_disabled), table.dataTable>thead>tr>th:not(.sorting_disabled) { + padding-right: 30px; + padding-left: 12px; +} +.table.dataTable>thead .sorting::before, .table.dataTable>thead .sorting_asc::before, .table.dataTable>thead .sorting_asc_disabled::before, .table.dataTable>thead .sorting_desc::before, .table.dataTable>thead .sorting_desc_disabled::before, table.dataTable>thead .sorting::before, table.dataTable>thead .sorting_asc::before, table.dataTable>thead .sorting_asc_disabled::before, table.dataTable>thead .sorting_desc::before, table.dataTable>thead .sorting_desc_disabled::before { + right: 1em; + left: auto; +} +.table.dataTable>thead .sorting::after, .table.dataTable>thead .sorting_asc::after, .table.dataTable>thead .sorting_asc_disabled::after, .table.dataTable>thead .sorting_desc::after, .table.dataTable>thead .sorting_desc_disabled::after, table.dataTable>thead .sorting::after, table.dataTable>thead .sorting_asc::after, table.dataTable>thead .sorting_asc_disabled::after, table.dataTable>thead .sorting_desc::after, table.dataTable>thead .sorting_desc_disabled::after { + right: .5em; + left: auto; +} +.select2-container .select2-selection--single { + background-color: #fff; + border: 1px solid #ced4da; + height: 38px; +} +.select2-container .select2-selection--single:focus { + outline: 0; +} +.select2-container .select2-selection--single .select2-selection__rendered { + line-height: 36px; + padding-left: 12px; + color: #495057; +} +.select2-container .select2-selection--single .select2-selection__arrow { + height: 34px; + width: 34px; + right: 3px; +} +.select2-container .select2-selection--single .select2-selection__arrow b { + border-color: #adb5bd transparent transparent transparent; + border-width: 6px 6px 0 6px; +} +.select2-container .select2-selection--single .select2-selection__placeholder { + color: #495057; +} +[dir=rtl] .select2-selection__rendered { + text-align: end; +} +.select2-container--open .select2-selection--single .select2-selection__arrow b { + border-color: transparent transparent #adb5bd transparent!important; + border-width: 0 6px 6px 6px!important; +} +.select2-container--default .select2-search--dropdown { + padding: 10px; + background-color: #fff; +} +.select2-container--default .select2-search--dropdown .select2-search__field { + border: 1px solid #ced4da; + background-color: #fff; + color: #74788d; + outline: 0; +} +.select2-container--default .select2-results__option--highlighted[aria-selected] { + background-color: #1c84ee; +} +.select2-container--default .select2-results__option[aria-selected=true] { + background-color: #f8f9fa; + color: #2b3940; +} +.select2-container--default .select2-results__option[aria-selected=true]:hover { + background-color: #1c84ee; + color: #fff; +} +.select2-results__option { + padding: 6px 12px; +} +.select2-dropdown { + border: 1px solid #e9e9ef; + background-color: #fff; + -webkit-box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08); + box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08); +} +.select2-search input { + border: 1px solid #f6f6f6; +} +.select2-container .select2-selection--multiple { + min-height: 38px; + background-color: #fff; + border: 1px solid #ced4da!important; +} +.select2-container .select2-selection--multiple .select2-selection__rendered { + padding: 2px 10px; +} +.select2-container .select2-selection--multiple .select2-search__field { + border: 0; + color: #495057; +} +.select2-container .select2-selection--multiple .select2-search__field::-webkit-input-placeholder { + color: #495057; +} +.select2-container .select2-selection--multiple .select2-search__field::-moz-placeholder { + color: #495057; +} +.select2-container .select2-selection--multiple .select2-search__field:-ms-input-placeholder { + color: #495057; +} +.select2-container .select2-selection--multiple .select2-search__field::-ms-input-placeholder { + color: #495057; +} +.select2-container .select2-selection--multiple .select2-search__field::placeholder { + color: #495057; +} +.select2-container .select2-selection--multiple .select2-selection__choice { + background-color: #e9e9ef; + border: 1px solid #f6f6f6; + border-radius: 1px; + padding: 0 7px; +} +.select2-container--default.select2-container--focus .select2-selection--multiple { + border-color: #ced4da; +} +.select2-container--default .select2-results__group { + font-weight: 600; +} +.select2-result-repository__avatar { + float: left; + width: 60px; + margin-right: 10px; +} +.select2-result-repository__avatar img { + width: 100%; + height: auto; + border-radius: 2px; +} +.select2-result-repository__statistics { + margin-top: 7px; +} +.select2-result-repository__forks, .select2-result-repository__stargazers, .select2-result-repository__watchers { + display: inline-block; + font-size: 11px; + margin-right: 1em; + color: #adb5bd; +} +.select2-result-repository__forks .fa, .select2-result-repository__stargazers .fa, .select2-result-repository__watchers .fa { + margin-right: 4px; +} +.select2-result-repository__forks .fa.fa-flash::before, .select2-result-repository__stargazers .fa.fa-flash::before, .select2-result-repository__watchers .fa.fa-flash::before { + content: "\f0e7"; + font-family: "Font Awesome 5 Free"} +.select2-results__option--highlighted .select2-result-repository__forks, .select2-results__option--highlighted .select2-result-repository__stargazers, .select2-results__option--highlighted .select2-result-repository__watchers { + color: rgba(255, 255, 255, .8); +} +.select2-result-repository__meta { + overflow: hidden; +} +.img-flag { + margin-right: 7px; + height: 15px; + width: 18px; +} +body[data-layout-mode=dark] .select2-container .select2-selection--multiple { + background-color: #282f36; + color: #adb5bd; + border: 1px solid #30373f!important; +} +body[data-layout-mode=dark] .select2-container .select2-selection--multiple .select2-search__field { + background-color: #293037; + border-color: #30373f; +} +body[data-layout-mode=dark] .select2-container .select2-selection--multiple .select2-search__field::-webkit-input-placeholder { + color: #adb5bd; +} +body[data-layout-mode=dark] .select2-container .select2-selection--multiple .select2-search__field::-moz-placeholder { + color: #adb5bd; +} +body[data-layout-mode=dark] .select2-container .select2-selection--multiple .select2-search__field:-ms-input-placeholder { + color: #adb5bd; +} +body[data-layout-mode=dark] .select2-container .select2-selection--multiple .select2-search__field::-ms-input-placeholder { + color: #adb5bd; +} +body[data-layout-mode=dark] .select2-container .select2-selection--multiple .select2-search__field::placeholder { + color: #adb5bd; +} +body[data-layout-mode=dark] .select2-container .select2-selection--single { + background-color: #282f36; + border: 1px solid #30373f; +} +body[data-layout-mode=dark] .select2-container .select2-selection--single .select2-selection__rendered { + color: #adb5bd; +} +body[data-layout-mode=dark] .select2-container .select2-dropdown { + background-color: #293037; + border-color: #30373f; + color: #adb5bd; +} +body[data-layout-mode=dark] .select2-container--default .select2-search--dropdown { + background-color: #293037; + border-color: #30373f; +} +body[data-layout-mode=dark] .select2-container--default .select2-search--dropdown .select2-search__field { + background-color: #293037; + border-color: #30373f; +} +body[data-layout-mode=dark] .select2-container--default .select2-results__option[aria-selected=true] { + background-color: #2f373f; + color: #adb5bd; +} +.table-rep-plugin .btn-toolbar { + display: block; +} +.table-rep-plugin .table-responsive { + border: none!important; +} +.table-rep-plugin .btn-group .btn-default { + background-color: #74788d; + color: #f6f6f6; + border: 1px solid #74788d; +} +.table-rep-plugin .btn-group .btn-default.btn-primary { + background-color: #1c84ee; + border-color: #1c84ee; + color: #fff; + -webkit-box-shadow: 0 0 0 2px rgba(28, 132, 238, .5); + box-shadow: 0 0 0 2px rgba(28, 132, 238, .5); +} +.table-rep-plugin .btn-group.pull-right { + float: right; +} +.table-rep-plugin .btn-group.pull-right .dropdown-menu { + right: 0; + -webkit-transform: none!important; + transform: none!important; + top: 100%!important; +} +.table-rep-plugin tbody th { + font-size: 14px; + font-weight: 400; +} +.table-rep-plugin .checkbox-row { + padding-left: 40px; + color: #495057!important; +} +.table-rep-plugin .checkbox-row:hover { + background-color: #efeff3!important; +} +.table-rep-plugin .checkbox-row label { + display: inline-block; + padding-left: 5px; + position: relative; +} +.table-rep-plugin .checkbox-row label::before { + -o-transition: .3s ease-in-out; + -webkit-transition: .3s ease-in-out; + background-color: #fff; + border-radius: 3px; + border: 1px solid #f6f6f6; + content: ""; + display: inline-block; + height: 17px; + left: 0; + margin-left: -20px; + position: absolute; + transition: .3s ease-in-out; + width: 17px; + outline: 0!important; +} +.table-rep-plugin .checkbox-row label::after { + color: #e9e9ef; + display: inline-block; + font-size: 11px; + height: 16px; + left: 0; + margin-left: -20px; + padding-left: 3px; + padding-top: 1px; + position: absolute; + top: -1px; + width: 16px; +} +.table-rep-plugin .checkbox-row input[type=checkbox] { + cursor: pointer; + opacity: 0; + z-index: 1; + outline: 0!important; +} +.table-rep-plugin .checkbox-row input[type=checkbox]:disabled+label { + opacity: .65; +} +.table-rep-plugin .checkbox-row input[type=checkbox]:focus+label::before { + outline-offset: -2px; + outline: 0; +} +.table-rep-plugin .checkbox-row input[type=checkbox]:checked+label::after { + content: "\f00c"; + font-family: "Font Awesome 5 Free"; + font-weight: 900; +} +.table-rep-plugin .checkbox-row input[type=checkbox]:disabled+label::before { + background-color: #f8f9fa; + cursor: not-allowed; +} +.table-rep-plugin .checkbox-row input[type=checkbox]:checked+label::before { + background-color: #1c84ee; + border-color: #1c84ee; +} +.table-rep-plugin .checkbox-row input[type=checkbox]:checked+label::after { + color: #fff; +} +.table-rep-plugin .fixed-solution .sticky-table-header { + top: 70px!important; + background-color: #1c84ee; +} +.table-rep-plugin .fixed-solution .sticky-table-header table { + color: #fff; +} +.table-rep-plugin .sticky-table-header, .table-rep-plugin table.focus-on tbody tr.focused td, .table-rep-plugin table.focus-on tbody tr.focused th { + background: #1c84ee; + border-color: #1c84ee; + color: #fff; +} +.table-rep-plugin .sticky-table-header table, .table-rep-plugin table.focus-on tbody tr.focused td table, .table-rep-plugin table.focus-on tbody tr.focused th table { + color: #fff; +} +@media (min-width:992px) { + body[data-layout=horizontal] .fixed-solution .sticky-table-header { + top: 120px!important; +} +}.table-edits input, .table-edits select { + height: calc(1.5em + .5rem + 2px); + padding: .25rem .5rem; + border: 1px solid #ced4da; + background-color: #fff; + color: #495057; + border-radius: .25rem; +} +.table-edits input:focus, .table-edits select:focus { + outline: 0; + border-color: #b9bfc4; +} +body[data-layout-mode=dark] .table-edits input, body[data-layout-mode=dark] .table-edits select { + color: #adb5bd; + background-color: #282f36; + border: 1px solid #30373f; +} +body[data-layout-mode=dark] .table-edits input:focus, body[data-layout-mode=dark] .table-edits select:focus { + border-color: #30373f; +} +.apex-charts { + min-height: 10px!important; +} +.apex-charts text { + font-family: var(--bs-font-sans-serif)!important; + fill: #adb5bd; +} +.apex-charts .apexcharts-canvas { + margin: 0 auto; +} +.apexcharts-tooltip-text, .apexcharts-tooltip-title { + font-family: var(--bs-font-sans-serif)!important; +} +.apexcharts-legend-series { + font-weight: 500; +} +.apexcharts-gridline { + pointer-events: none; + stroke: #f8f9fa; +} +.apexcharts-legend-text { + color: #74788d!important; + font-family: var(--bs-font-sans-serif)!important; + font-size: 13px!important; +} +.apexcharts-pie-label { + fill: #fff!important; +} +.apexcharts-xaxis text, .apexcharts-yaxis text { + font-family: var(--bs-font-sans-serif)!important; + fill: #adb5bd; +} +body[data-layout-mode=dark] .apexcharts-gridline { + stroke: #293037; +} +body[data-layout-mode=dark] .apexcharts-tooltip.apexcharts-theme-light { + background-color: #242a30; + border-color: #293037; +} +body[data-layout-mode=dark] .apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title { + background-color: #30373f; + border-color: #363d46; +} +body[data-layout-mode=dark] .apexcharts-legend-text { + color: #adb5bd!important; +} +body[data-layout-mode=dark] .apexcharts-grid-row+line, body[data-layout-mode=dark] .apexcharts-yaxis-texts-g.apexcharts-xaxis-inversed-texts-g+line { + stroke: #363d46; +} +body[data-layout-mode=dark] .apexcharts-heatmap-rect, body[data-layout-mode=dark] .apexcharts-pie-area, body[data-layout-mode=dark] .apexcharts-treemap-rect, body[data-layout-mode=dark] .apexcharts-xaxis line { + stroke: #363d46; +} +body[data-layout-mode=dark] .apexcharts-radialbar-track.apexcharts-track path { + stroke: #363d46; +} +body[data-layout-mode=dark] .apexcharts-radar-series.apexcharts-plot-series line, body[data-layout-mode=dark] .apexcharts-radar-series.apexcharts-plot-series polygon { + fill: #30373f; + stroke: #363d46; +} +body[data-layout-mode=dark] .apexcharts-pie circle { + stroke: #363d46; +} +.e-charts { + height: 350px; +} +.jqstooltip { + -webkit-box-sizing: content-box; + box-sizing: content-box; + width: auto!important; + height: auto!important; + background-color: #343a40!important; + -webkit-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .1); + box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .1); + padding: 5px 10px!important; + border-radius: 3px; + border-color: #2b3940!important; +} +.jqsfield { + color: #e9e9ef!important; + font-size: 12px!important; + line-height: 18px!important; + font-family: var(--bs-font-sans-serif)!important; + font-weight: 500!important; +} +body[data-layout-mode=dark] .jqstooltip { + background-color: #e9e9ef!important; + border-color: #e9e9ef!important; +} +body[data-layout-mode=dark] .jqsfield { + color: #30373f!important; +} +.gmaps, .gmaps-panaroma { + height: 300px!important; + background: #f8f9fa; + border-radius: 3px; +} +.gmaps-overlay { + display: block; + text-align: center; + color: #fff; + font-size: 16px; + line-height: 40px; + background: #1c84ee; + border-radius: 4px; + padding: 10px 20px; +} +.gmaps-overlay_arrow { + left: 50%; + margin-left: -16px; + width: 0; + height: 0; + position: absolute; +} +.gmaps-overlay_arrow.above { + bottom: -15px; + border-left: 16px solid transparent; + border-right: 16px solid transparent; + border-top: 16px solid #1c84ee; +} +.gmaps-overlay_arrow.below { + top: -15px; + border-left: 16px solid transparent; + border-right: 16px solid transparent; + border-bottom: 16px solid #1c84ee; +} +.jvectormap-label { + border: none; + background: #343a40; + color: #f8f9fa; + font-family: var(--bs-font-sans-serif); + font-size: .8125rem; + padding: 5px 8px; +} +body[data-layout-mode=dark] .jvectormap-label { + background: #e9e9ef; + color: #242a30; +} +.leaflet-map { + height: 300px; +} +.leaflet-map.leaflet-container { + z-index: 1; +} +.auth-bg { + background-image: url(../images/auth-bg.jpg); + background-position: center; + background-size: cover; + background-repeat: no-repeat; +} +.auth-bg .bg-overlay { + background: -webkit-gradient(linear, left top, left bottom, color-stop(30%, rgba(43, 57, 64, .5)), to(#2b3940)); + background: linear-gradient(to bottom, rgba(43, 57, 64, .5) 30%, #2b3940 100%); + opacity: 1; +} +@media (min-width:768px) { + .auth-bg { + height: 100vh; +} +}.auth-pass-inputgroup input[type=text]+.btn .mdi-eye-outline:before { + content: "\f06d1"} +.form-floating-custom { + position: relative; +} +.form-floating-custom>label { + left: 48px; + margin-top: 3px; +} +.form-floating-custom>.form-control, .form-floating-custom>.form-select { + padding-left: 60px; +} +.form-floating-custom .form-floating-icon { + position: absolute; + top: 0; + height: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + width: 56px; + color: #74788d; +} +.form-floating-custom .form-floating-icon svg { + width: 20px; + height: 20px; +} +.auth-full-page-content { + min-height: 100vh; + background-color: #fff; +} +.auth-logo .logo-txt { + color: #2b3940; + font-size: 20px; +} +.auth-pass-inputgroup input[type=input]+.btn .mdi-eye-outline:before { + content: "\f06d1"} +.bg-bubbles { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; +} +.bg-bubbles li { + position: absolute; + list-style: none; + display: block; + width: 40px; + height: 40px; + border-radius: 30px; + background-color: rgba(255, 255, 255, .1); + top: -50px; + -webkit-animation: square 20s infinite; + animation: square 20s infinite; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; +} +.bg-bubbles li:nth-child(1) { + left: 10%} +.bg-bubbles li:nth-child(2) { + left: 20%; + width: 120px; + height: 120px; + -webkit-animation-delay: 2s; + animation-delay: 2s; + -webkit-animation-duration: 17s; + animation-duration: 17s; +} +.bg-bubbles li:nth-child(3) { + left: 25%; + -webkit-animation-delay: 4s; + animation-delay: 4s; +} +.bg-bubbles li:nth-child(4) { + left: 40%; + width: 80px; + height: 80px; + -webkit-animation-duration: 22s; + animation-duration: 22s; +} +.bg-bubbles li:nth-child(5) { + left: 70%; + width: 90px; + height: 90px; +} +.bg-bubbles li:nth-child(6) { + left: 70%; + width: 120px; + height: 120px; + -webkit-animation-delay: 3s; + animation-delay: 3s; +} +.bg-bubbles li:nth-child(7) { + left: 32%; + width: 150px; + height: 150px; + -webkit-animation-delay: 7s; + animation-delay: 7s; +} +.bg-bubbles li:nth-child(8) { + left: 55%; + width: 80px; + height: 80px; + -webkit-animation-delay: 15s; + animation-delay: 15s; + -webkit-animation-duration: 40s; + animation-duration: 40s; +} +.bg-bubbles li:nth-child(9) { + left: 25%; + width: 50px; + height: 50px; + -webkit-animation-delay: 2s; + animation-delay: 2s; + -webkit-animation-duration: 40s; + animation-duration: 40s; +} +.bg-bubbles li:nth-child(10) { + left: 90%; + width: 140px; + height: 140px; + -webkit-animation-delay: 11s; + animation-delay: 11s; +} +@-webkit-keyframes square { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); +} +100% { + -webkit-transform: translateY(1000px) rotate(600deg); + transform: translateY(1000px) rotate(600deg); +} +}@keyframes square { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); +} +100% { + -webkit-transform: translateY(1000px) rotate(600deg); + transform: translateY(1000px) rotate(600deg); +} +}body[data-layout-mode=dark] .form-floating-custom .form-floating-icon { + color: #858d98; +} +body[data-layout-mode=dark] .auth-logo .logo-txt { + color: #fff; +} +body[data-layout-mode=dark] .auth-full-page-content { + background-color: #242a30; +} +.email-leftbar { + width: 236px; + float: left; + padding: 20px; + border-radius: 5px; +} +.email-rightbar { + margin-left: 260px; +} +.chat-user-box p.user-title { + color: #2b3940; + font-weight: 500; +} +.chat-user-box p { + font-size: 12px; +} +@media (max-width:767px) { + .email-leftbar { + float: none; + width: 100%} +.email-rightbar { + margin: 0; +} +}.mail-list a { + display: block; + color: #74788d; + line-height: 24px; + padding: 8px 5px; +} +.mail-list a.active { + color: #ef6767; + font-weight: 500; +} +.message-list { + display: block; + padding-left: 0; +} +.message-list li { + position: relative; + display: block; + height: 50px; + line-height: 50px; + cursor: default; + -webkit-transition-duration: .3s; + transition-duration: .3s; +} +.message-list li a { + color: #74788d; +} +.message-list li:hover { + background: #f6f6f6; + -webkit-transition-duration: 50ms; + transition-duration: 50ms; +} +.message-list li .col-mail { + float: left; + position: relative; +} +.message-list li .col-mail-1 { + width: 320px; +} +.message-list li .col-mail-1 .checkbox-wrapper-mail, .message-list li .col-mail-1 .dot, .message-list li .col-mail-1 .star-toggle { + display: block; + float: left; +} +.message-list li .col-mail-1 .dot { + border: 4px solid transparent; + border-radius: 100px; + margin: 22px 26px 0; + height: 0; + width: 0; + line-height: 0; + font-size: 0; +} +.message-list li .col-mail-1 .checkbox-wrapper-mail { + margin: 15px 10px 0 20px; +} +.message-list li .col-mail-1 .star-toggle { + margin-top: 18px; + margin-left: 5px; +} +.message-list li .col-mail-1 .title { + position: absolute; + top: 0; + left: 110px; + right: 0; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + margin-bottom: 0; +} +.message-list li .col-mail-2 { + position: absolute; + top: 0; + left: 320px; + right: 0; + bottom: 0; +} +.message-list li .col-mail-2 .date, .message-list li .col-mail-2 .subject { + position: absolute; + top: 0; +} +.message-list li .col-mail-2 .subject { + left: 0; + right: 200px; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} +.message-list li .col-mail-2 .date { + right: 0; + width: 170px; + padding-left: 80px; +} +.message-list li.active, .message-list li.active:hover { + -webkit-box-shadow: inset 3px 0 0 #1c84ee; + box-shadow: inset 3px 0 0 #1c84ee; +} +.message-list li.unread { + background-color: #f6f6f6; + font-weight: 500; + color: #212b31; +} +.message-list li.unread a { + color: #212b31; + font-weight: 500; +} +.message-list .checkbox-wrapper-mail { + cursor: pointer; + height: 20px; + width: 20px; + position: relative; + display: inline-block; + -webkit-box-shadow: inset 0 0 0 1px #ced4da; + box-shadow: inset 0 0 0 1px #ced4da; + border-radius: 1px; +} +.message-list .checkbox-wrapper-mail input { + opacity: 0; + cursor: pointer; +} +.message-list .checkbox-wrapper-mail input:checked~label { + opacity: 1; +} +.message-list .checkbox-wrapper-mail label { + position: absolute; + height: 20px; + width: 20px; + left: 0; + cursor: pointer; + opacity: 0; + margin-bottom: 0; + -webkit-transition-duration: 50ms; + transition-duration: 50ms; + top: 0; +} +.message-list .checkbox-wrapper-mail label:before { + content: "\f012c"; + font-family: "Material Design Icons"; + top: 0; + height: 20px; + color: #212b31; + width: 20px; + position: absolute; + margin-top: -16px; + left: 4px; + font-size: 13px; +} +@media (max-width:575.98px) { + .message-list li .col-mail-1 { + width: 200px; +} +}.email-editor .ck-editor__editable_inline { + min-height: 200px!important; +} +body[data-layout-mode=dark] .mail-list a { + color: #858d98; +} +body[data-layout-mode=dark] .mail-list a.active { + color: #ef6767; +} +body[data-layout-mode=dark] .chat-user-box p.user-title { + color: #adb5bd; +} +body[data-layout-mode=dark] .message-list li a { + color: #858d98; +} +body[data-layout-mode=dark] .message-list li:hover { + background: #293037; +} +body[data-layout-mode=dark] .message-list li.unread { + background: #293037; + color: #adb5bd; +} +body[data-layout-mode=dark] .message-list .checkbox-wrapper-mail { + -webkit-box-shadow: inset 0 0 0 1px #858d98; + box-shadow: inset 0 0 0 1px #858d98; +} +body[data-layout-mode=dark] .message-list .checkbox-wrapper-mail label::before { + color: #adb5bd; +} +@media (min-width:992px) { + .chat-leftsidebar { + min-width: 260px; +} +}@media (min-width:1200px) { + .chat-leftsidebar { + min-width: 380px; +} +}.chat-leftsidebar .chat-leftsidebar-nav .nav .nav-link.active { + background-color: #1c84ee; + color: #fff; +} +.search-box .form-control { + padding-left: 40px; +} +.search-box .search-icon { + font-size: 16px; + position: absolute; + left: 13px; + top: 0; + height: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +.chat-noti-dropdown.active:before { + content: ""; + position: absolute; + width: 8px; + height: 8px; + background-color: #ef6767; + border-radius: 50%; + right: 0; +} +.chat-noti-dropdown .btn { + padding: 6px; + -webkit-box-shadow: none; + box-shadow: none; + font-size: 20px; +} +.chat-message-list { + height: calc(100vh - 346px); +} +@media (min-width:992px) { + .chat-message-list { + height: calc(100vh - 406px); +} +}.chat-list { + margin: 0; +} +.chat-list li.active a { + background-color: rgba(28, 132, 238, .075); + border-color: transparent; +} +.chat-list li a { + display: block; + padding: 14px 16px; + color: #74788d; + -webkit-transition: all .4s; + transition: all .4s; + border-top: 1px solid #e9e9ef; + position: relative; +} +.chat-list li a:hover { + background-color: rgba(28, 132, 238, .075); + border-color: transparent; +} +.chat-list li .user-img { + position: relative; +} +.chat-list li .user-img .user-status { + width: 10px; + height: 10px; + background-color: #adb5bd; + border-radius: 50%; + border: 2px solid #fff; + position: absolute; + left: 0; + bottom: 0; +} +.chat-list li .user-img.online .user-status { + background-color: #34c38f; +} +.chat-list li .user-img.away .user-status { + background-color: #ffcc5a; +} +.chat-list li.unread a { + font-weight: 600; + color: #2b3940; +} +.chat-list li .unread-message { + position: absolute; + display: inline-block; + right: 16px; + top: 33px; +} +.contact-list { + font-size: 12px; + text-transform: uppercase; + color: #74788d; + font-weight: 600; + margin-bottom: 7px; +} +.user-chat-nav .dropdown .nav-btn { + height: 36px; + width: 36px; + line-height: 36px; + -webkit-box-shadow: none; + box-shadow: none; + padding: 0; + font-size: 18px; +} +.chat-conversation li { + clear: both; +} +.chat-conversation .chat-day-title { + position: relative; + text-align: center; + margin-bottom: 24px; + border: none; +} +.chat-conversation .chat-day-title .title { + background-color: #fff; + position: relative; + z-index: 1; + padding: 6px 24px; +} +.chat-conversation .chat-day-title:before { + content: ""; + position: absolute; + width: 100%; + height: 1px; + left: 0; + right: 0; + background-color: #e9e9ef; + top: 10px; +} +.chat-conversation .chat-day-title .badge { + font-size: 12px; +} +.chat-conversation .conversation-list { + margin-bottom: 24px; + position: relative; + max-width: 85%} +.chat-conversation .conversation-list .ctext-wrap { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-bottom: 10px; +} +.chat-conversation .conversation-list .ctext-wrap-content { + padding: 12px 20px; + background-color: #1c84ee; + border-radius: 8px; + color: #fff; + position: relative; + margin-left: 16px; +} +.chat-conversation .conversation-list .ctext-wrap-content:before { + content: ""; + position: absolute; + border: 5px solid transparent; + border-right-color: #1c84ee; + border-top-color: #1c84ee; + left: -10px; + top: 10px; +} +.chat-conversation .conversation-list .ctext-wrap-content .conversation-name .time { + font-size: 10px; + position: absolute; + right: -58px; + bottom: 0; + color: #74788d; + font-weight: 400; + opacity: 0; + -webkit-transition: all .4s; + transition: all .4s; +} +.chat-conversation .conversation-list .ctext-wrap-content .conversation-name .user-name { + color: rgba(255, 255, 255, .5); +} +.chat-conversation .conversation-list .ctext-wrap-content:hover .time { + opacity: 1; +} +.chat-conversation .conversation-list .dropdown .dropdown-toggle { + font-size: 18px; + padding: 4px; + color: #74788d; +} +@media (max-width:575.98px) { + .chat-conversation .conversation-list .dropdown .dropdown-toggle { + display: none; +} +}.chat-conversation .conversation-list .message-img { + border-radius: .2rem; + position: relative; +} +.chat-conversation .conversation-list .message-img .message-img-list { + position: relative; +} +.chat-conversation .conversation-list .message-img img { + max-width: 120px; +} +.chat-conversation .right .conversation-list { + float: right; + text-align: right; +} +.chat-conversation .right .conversation-list .ctext-wrap .ctext-wrap-content { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; + background-color: rgba(246, 246, 246, .5); + text-align: right; + border-radius: 8px; + margin-left: 0; + margin-right: 16px; + color: #2b3940; +} +.chat-conversation .right .conversation-list .ctext-wrap .ctext-wrap-content:before { + border: 5px solid transparent; + border-top-color: rgba(246, 246, 246, .5); + border-left-color: rgba(246, 246, 246, .5); + left: auto; + right: -10px; +} +.chat-conversation .right .conversation-list .ctext-wrap .conversation-name { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; +} +.chat-conversation .right .conversation-list .ctext-wrap .conversation-name .time, .chat-conversation .right .conversation-list .ctext-wrap .conversation-name .user-name { + color: #74788d; +} +.chat-conversation .right .conversation-list .ctext-wrap .conversation-name .time { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + margin-left: 0; + margin-right: 8px; + position: absolute; + left: -58px; + right: auto; +} +.chat-conversation .right .conversation-list .ctext-wrap .conversation-name .user-name { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; +} +.chat-conversation .right .conversation-list .dropdown { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; +} +@media (max-width:575.98px) { + .chat-send { + min-width: auto; +} +}body[data-layout=horizontal] .chat-message-list { + height: calc(100vh - 346px); +} +@media (min-width:992px) { + body[data-layout=horizontal] .chat-message-list { + height: calc(100vh - 476px); +} +}body[data-layout=horizontal] .chat-conversation { + height: calc(100vh - 300px); +} +@media (min-width:992px) { + body[data-layout=horizontal] .chat-conversation { + height: calc(100vh - 420px); +} +}body[data-layout-mode=dark] .chat-leftsidebar .chat-leftsidebar-nav .nav .nav-link.active { + background-color: #242a30; +} +body[data-layout-mode=dark] .chat-list li a { + color: #858d98; + border-color: #30373f; +} +body[data-layout-mode=dark] .chat-list li .user-img .user-status { + border-color: #30373f; +} +body[data-layout-mode=dark] .chat-list li.unread a { + color: #adb5bd; +} +body[data-layout-mode=dark] .chat-conversation .chat-day-title .title { + background-color: #242a30; +} +body[data-layout-mode=dark] .chat-conversation .chat-day-title::before { + background-color: #30373f; +} +body[data-layout-mode=dark] .chat-conversation .right .conversation-list .ctext-wrap .ctext-wrap-content { + background-color: rgba(48, 55, 63, .5); + color: #adb5bd; +} +body[data-layout-mode=dark] .chat-conversation .right .conversation-list .ctext-wrap .ctext-wrap-content::before { + border-top-color: rgba(48, 55, 63, .5); + border-left-color: rgba(48, 55, 63, .5); +} +body[data-layout-mode=dark] .chat-conversation .right .conversation-list .ctext-wrap .conversation-name .time, body[data-layout-mode=dark] .chat-conversation .right .conversation-list .ctext-wrap .conversation-name .user-name { + color: #858d98; +} +.slide-bg { + height: 100vh; + background-position: center; + background-size: cover; + background-repeat: no-repeat; +} +.coming-content { + position: absolute; + top: 0; + z-index: 1; + left: 0; + width: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +.coming-content .app-search { + max-width: 340px; +} +.preview-thumbsnav { + position: absolute; + bottom: 14px; + z-index: 9; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + max-width: 120px; +} +.preview-thumbsnav .nav-img { + cursor: pointer; + padding: 3px; + background-color: rgba(255, 255, 255, .1); + border: 1px solid rgba(255, 255, 255, .1); +} +@media (max-width:575.98px) { + .preview-thumbsnav .nav-img { + display: none; +} +}.preview-thumbsnav .swiper-slide-thumb-active .nav-img { + background-color: #fff; + border: 1px solid #fff; +} +.coming-box { + width: 25%} +.coming-box:last-of-type .count-num::after { + display: none; +} +.counter-number { + font-size: 32px; + font-weight: 600; + text-align: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + gap: 24px; +} +@media (max-width:575.98px) { + .counter-number { + font-size: 18px; +} +}.counter-number .count-title { + position: relative; + bottom: -120px; + font-size: 16px; + font-weight: 500; + display: block; + padding-bottom: 6px; + color: rgba(255, 255, 255, .5); +} +@media (max-width:575.98px) { + .counter-number .count-title { + bottom: -95px; + font-size: 14px; +} +}.count-num { + background-color: rgba(255, 255, 255, .1); + padding: 16px 8px; + position: relative; + border-radius: 4px; + color: #fff; +} +.count-num::after { + content: ":"; + font-size: 20px; + position: absolute; + right: -16px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + color: #fff; +} +body[data-layout-mode=dark] .count-num { + background-color: #30373f; +} +body[data-layout-mode=dark] .preview-thumbsnav .swiper-slide-thumb-active .nav-img { + background-color: #30373f; + border-color: #30373f; +} +.search-box .form-control { + border-radius: 30px; + padding-left: 40px; +} +.search-box .search-icon { + font-size: 16px; + position: absolute; + left: 13px; + top: 0; + line-height: 38px; +} +.product-list li a { + display: block; + padding: 4px 0; + color: #495057; +} +.product-view-nav.nav-pills .nav-item { + margin-left: 4px; +} +.product-view-nav.nav-pills .nav-link { + width: 36px; + height: 36px; + font-size: 16px; + padding: 0; + line-height: 36px; + text-align: center; + border-radius: 50%} +.product-ribbon { + position: absolute; + right: 0; + top: 0; +} +.product-detai-imgs .nav .nav-link { + margin: 7px 0; +} +.product-detai-imgs .nav .nav-link.active { + background-color: #f6f6f6; +} +.product-color a { + display: inline-block; + text-align: center; + color: #495057; +} +.product-color a .product-color-item { + margin: 7px; +} +.product-color a.active, .product-color a:hover { + color: #1c84ee; +} +.product-color a.active .product-color-item, .product-color a:hover .product-color-item { + border-color: #1c84ee!important; +} +.visa-card .visa-logo { + line-height: .5; +} +.visa-card .visa-pattern { + position: absolute; + font-size: 385px; + color: rgba(255, 255, 255, .05); + line-height: .4; + right: 0; + bottom: 0; +} +.checkout-tabs .nav-pills .nav-link { + margin-bottom: 24px; + text-align: center; + background-color: #fff; + -webkit-box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08); + box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08); +} +.checkout-tabs .nav-pills .nav-link.active { + background-color: #1c84ee; +} +.checkout-tabs .nav-pills .nav-link .check-nav-icon { + font-size: 36px; +} +body[data-layout-mode=dark] .product-detai-imgs .nav .nav-link.active { + background-color: #30373f; +} +body[data-layout-mode=dark] .product-list li a { + color: #e9e9ef; +} +body[data-layout-mode=dark] .checkout-tabs .nav-pills .nav-link { + background-color: #30373f; +} +body[data-layout-mode=dark] .checkout-tabs .nav-pills .nav-link.active { + background-color: #1c84ee; +} +.timeline { + position: relative; + width: 100%; + padding: 30px 0; +} +@media (max-width:767.98px) { + .timeline { + padding: 0; +} +}.timeline .timeline-end, .timeline .timeline-start, .timeline .timeline-year { + position: relative; + width: 100%; + text-align: center; + z-index: 1; +} +.timeline .timeline-end p, .timeline .timeline-start p, .timeline .timeline-year p { + display: inline-block; + width: 80px; + height: 80px; + margin: 0; + padding: 30px 0; + text-align: center; + background-color: #1c84ee; + border-radius: 100px; + color: #fff; + text-transform: uppercase; +} +.timeline .timeline-year { + margin: 30px 0; +} +.timeline .timeline-continue { + position: relative; + width: 100%; + padding: 60px 0; +} +.timeline .timeline-continue:after { + position: absolute; + content: ""; + width: 1px; + height: 100%; + top: 0; + left: 50%; + margin-left: -1px; + background: #1c84ee; +} +.timeline .timeline-icon { + margin: 42px 10px 0 10px; +} +.timeline .timeline-left { + text-align: right; +} +.timeline .timeline-left .timeline-icon { + text-align: left; +} +.timeline .timeline-right { + text-align: left; +} +.timeline .timeline-right .timeline-icon { + text-align: right; +} +.timeline .timeline-icon::after { + content: ""; + display: block; + position: absolute; + width: 14px; + height: 14px; + top: 45px; + background: #1c84ee; + border-radius: 15px; + z-index: 1; +} +@media (min-width:768px) { + .timeline .event-content { + padding-right: 24px; +} +.timeline .timeline-text { + margin-right: 40px; +} +}.timeline .timeline-left .timeline-icon::after { + left: -7px; +} +@media (min-width:768px) { + .timeline .timeline-left .event-content { + padding-right: 0; + padding-left: 24px; +} +.timeline .timeline-left .timeline-text { + margin-right: 0; + margin-left: 40px; +} +.timeline .timeline-left .event-img { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; +} +}.timeline .timeline-right .timeline-icon::after { + right: -7px; +} +.timeline .timeline-box { + position: relative; + display: inline-block; + margin: 15px; + padding: 20px; + background-color: #fff; + -webkit-box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08); + box-shadow: 0 .25rem .75rem rgba(18, 38, 63, .08); + border-radius: 6px; +} +.timeline .timeline-box::after { + content: ""; + position: absolute; + width: 16px; + height: 16px; + top: 26px; + background-color: #fff; + border: 1px solid #f6f6f6; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + margin: 0 auto; +} +.timeline .timeline-launch { + position: relative; + display: inline-block; + margin: 15px; + padding: 20px; + border: 1px solid #e9e9ef; + border-radius: 6px; + width: 100%; + margin: 15px 0; + padding: 0; + border: none; + text-align: center; + background: 0 0; +} +.timeline-date { + right: 20px; +} +@media (max-width:767.98px) { + .timeline-date { + left: -70px; + right: auto; +} +}.timeline-left .timeline-date { + left: 20px; +} +@media (max-width:767.98px) { + .timeline-left .timeline-date { + left: -70px; + right: auto; +} +}.timeline .timeline-date { + width: 54px; + height: 80px; + display: inline-block; + padding: 8px; + -webkit-clip-path: polygon(0 0, 100% 0, 100% 80%, 50% 100%, 0 80%); + clip-path: polygon(0 0, 100% 0, 100% 80%, 50% 100%, 0 80%); + top: -10px; + position: absolute; + z-index: 1; +} +@media (max-width:767.98px) { + .timeline .timeline-date { + top: 0; +} +}.timeline .timeline-right .timeline-box::after { + border-color: transparent transparent #f6f6f6 #f6f6f6; + left: -8px; + right: 100%} +.timeline .timeline-left .timeline-box::after { + border-color: #f6f6f6 #f6f6f6 transparent transparent; + right: -8px; +} +.timeline .timeline-launch .timeline-box::after { + top: -8px; + left: 32px; + border-color: #f6f6f6 transparent transparent #f6f6f6; +} +@media (min-width:768px) { + .timeline .timeline-launch .timeline-box::after { + left: 50%; + -webkit-transform: rotate(45deg) translateX(-50%); + transform: rotate(45deg) translateX(-50%); + top: -2px; +} +}.timeline .timeline-launch .timeline-text { + width: 100%} +@media (max-width:767px) { + .timeline .timeline-continue::after { + left: 40px; +} +.timeline .timeline-end, .timeline .timeline-start, .timeline .timeline-year { + text-align: left; +} +.timeline .row.timeline-left { + text-align: left; +} +.timeline .row.timeline-left .timeline-icon { + text-align: left; +} +.timeline .row.timeline-right { + text-align: left; +} +.timeline .row.timeline-right .timeline-icon { + text-align: left; +} +.timeline .timeline-launch { + text-align: left; + margin-bottom: 0; +} +.timeline .row.timeline-left .timeline-icon::after { + left: 43px; +} +.timeline .row.timeline-right .timeline-icon::after { + left: 43px; +} +.timeline .timeline-box { + margin-left: 82px; + margin-right: 0; +} +.timeline .row.timeline-right .timeline-icon { + margin-left: 55px; +} +.timeline .row.timeline-left .timeline-icon { + margin-left: 55px; +} +.timeline .timeline-launch .timeline-box { + margin-left: 0; + margin-bottom: 0; +} +.timeline .row.timeline-left .timeline-box::after { + left: -8px; + border-color: transparent transparent #f6f6f6 #f6f6f6; + right: auto; +} +}body[data-layout-mode=dark] .timeline .timeline-box { + border-color: #30373f; + background-color: #242a30; +} +body[data-layout-mode=dark] .timeline .timeline-box:after { + background-color: #242a30; +} +body[data-layout-mode=dark] .timeline .timeline-left .timeline-box:after { + border-color: #30373f #30373f transparent transparent; +} +body[data-layout-mode=dark] .timeline .timeline-right .timeline-box:after { + border-color: transparent transparent #30373f #30373f; +} +body[data-layout-mode=dark] .timeline .timeline-launch .timeline-box::after { + border-color: #30373f transparent transparent #30373f; +} +.profile-user { + background-image: url(../images/profile_default_bg.jpg); + background-position: center; + background-size: cover; + background-repeat: no-repeat; + margin: -24px -24px 23px -24px; + padding: 140px 0; + position: relative; +} +.profile-user:after { + background: -webkit-gradient(linear, left top, left bottom, color-stop(30%, rgba(43, 57, 64, .5)), to(#2b3940)); + background: linear-gradient(to bottom, rgba(43, 57, 64, .5) 30%, #2b3940 100%); + position: absolute; + height: 100%; + width: 100%; + right: 0; + bottom: 0; + left: 0; + top: 0; + opacity: .5; + content: ""} +.profile-content { + position: relative; + margin-top: -60px; +} +.maintenance-cog-icon .cog-icon { + position: relative; + bottom: 24px; + right: 14px; +} +.pricing-badge { + position: absolute; + top: 0; + z-index: 9; + right: 0; + width: 100%; + display: block; + font-size: 15px; + padding: 0; + overflow: hidden; + height: 100px; +} +.pricing-badge .badge { + float: right; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + right: -67px; + top: 17px; + position: relative; + text-align: center; + width: 200px; + font-size: 13px; + margin: 0; + padding: 7px 10px; + font-weight: 500; + color: #1c84ee; + background: #fff; +} +.pricing-tab-box .nav-link { + padding: 16px 20px; + border: 1px solid #e9e9ef; + background: #fff; +} +.pricing-tab-box .nav-link.active { + border: 1px solid #1c84ee; + padding: 16px 20px; + background: #fff; +} +.pricing-tab-box .nav-link.active i { + color: #1c84ee; +} +.pricing-tab-box .nav-link.active i:before { + content: "\e9a8"} +.pricing-tab-box .nav-link.active h1 { + color: #1c84ee; +} +.pricing-table-bg { + background: #fff; +} +body[data-layout-mode=dark] .pricing-tab-box .nav-link { + border-color: #30373f; + background: #242a30; +} +body[data-layout-mode=dark] .pricing-tab-box .nav-link.active { + border-color: #1c84ee; + background: #242a30; +} +body[data-layout-mode=dark] .pricing-table-bg { + background: #242a30; +} +.error-title { + text-transform: uppercase; + background: repeating-linear-gradient(45deg, #1c84ee, #1c84ee 20px, #34c38f 40px, #34c38f 10px); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + font-size: 12rem; + line-height: .8; + position: relative; +} +/*# sourceMappingURL=app.min.css.map */ diff --git a/static/css/app.min.css b/static/css/app.min.css new file mode 100644 index 0000000..1ea1f5b --- /dev/null +++ b/static/css/app.min.css @@ -0,0 +1,8 @@ +@import url(https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@300;400;500;600;700&display=swap);body[data-layout-mode=dark]{background-color:#191e22;color:#ced4da}body[data-layout-mode=dark] .h1,body[data-layout-mode=dark] .h2,body[data-layout-mode=dark] .h3,body[data-layout-mode=dark] .h4,body[data-layout-mode=dark] .h5,body[data-layout-mode=dark] .h6,body[data-layout-mode=dark] h1,body[data-layout-mode=dark] h2,body[data-layout-mode=dark] h3,body[data-layout-mode=dark] h4,body[data-layout-mode=dark] h5,body[data-layout-mode=dark] h6{color:#ced4da}#page-topbar{position:fixed;top:0;right:0;left:0;z-index:1002;background-color:#fff;border-bottom:1px solid #e9e9ef;-webkit-box-shadow:0 .25rem .75rem rgba(18,38,63,.08);box-shadow:0 .25rem .75rem rgba(18,38,63,.08)}.navbar-header{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:0 auto;height:70px;padding:0 24px 0 0}.navbar-header .dropdown .show.header-item{background-color:#f8f9fa}.navbar-brand-box{padding:0 1.5rem;width:250px;background:#fff;border-right:1px solid transparent}.logo{line-height:69px;color:inherit!important}.logo .logo-sm{display:none}.logo-txt{font-weight:700;font-size:18px;vertical-align:middle;margin-left:5px;text-transform:uppercase}.logo-light{display:none}body:not([data-sidebar-size=sm]) #vertical-menu-btn{margin-left:-52px;margin-right:20px}@media (max-width:991.98px){body:not([data-sidebar-size=sm]) #vertical-menu-btn{margin-left:0}}.app-search{padding:calc(30px / 2) 0;position:relative}.app-search .form-control{border:none;height:40px;padding-left:17px;padding-right:50px;background-color:#f3f3f9;-webkit-box-shadow:none;box-shadow:none}.app-search .btn{position:absolute;right:3px;top:3px;height:34px;padding:0 10px}.layout-mode-light{display:none}body[data-layout-mode=dark] .layout-mode-dark{display:none}body[data-layout-mode=dark] .layout-mode-light{display:inline-block}.megamenu-list li{position:relative;padding:5px 0}.megamenu-list li a{color:#495057}@media (max-width:992px){.navbar-brand-box{width:auto}.logo span.logo-lg{display:none}.logo span.logo-sm{display:inline-block}}.page-content{padding:calc(70px + 24px) calc(24px / 2) 60px calc(24px / 2)}.header-item{height:70px;-webkit-box-shadow:none!important;box-shadow:none!important;color:#555b6d;border:0;border-radius:0}.header-item:hover{color:#555b6d}.header-profile-user{height:36px;width:36px;background-color:#74788d;padding:3px}.noti-icon i{font-size:22px;color:#555b6d}.noti-icon .badge{position:absolute;top:12px;right:4px}.notification-item .d-flex{padding:.75rem 1rem}.notification-item .d-flex:hover{background-color:#f8f9fa}.dropdown-icon-item{display:block;border-radius:3px;line-height:34px;text-align:center;padding:15px 0 9px;display:block;color:#74788d}.dropdown-icon-item img{height:24px}.dropdown-icon-item span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-icon-item:hover{background-color:#f8f9fa}.fullscreen-enable [data-toggle=fullscreen] .bx-fullscreen::before{content:"\ea3f"}body[data-topbar=dark] #page-topbar{background-color:#1c84ee;border-color:#1c84ee;-webkit-box-shadow:0 .2rem .5rem rgba(18,38,63,.3);box-shadow:0 .2rem .5rem rgba(18,38,63,.3)}body[data-topbar=dark] .navbar-brand-box{background-color:#1c84ee;border-color:#1c84ee}body[data-topbar=dark] .navbar-brand-box .logo{color:#fff!important}body[data-topbar=dark] .navbar-header .dropdown .show.header-item{background-color:rgba(255,255,255,.05)}body[data-topbar=dark] .navbar-header .waves-effect .waves-ripple{background:rgba(255,255,255,.4)}body[data-topbar=dark] .header-item{color:#e9ecef}body[data-topbar=dark] .header-item:hover{color:#e9ecef}body[data-topbar=dark] .header-item.border-end,body[data-topbar=dark] .header-item.border-start{border-color:rgba(255,255,255,.1)!important}body[data-topbar=dark] .header-item.bg-soft-light{background-color:rgba(255,255,255,.04)!important}body[data-topbar=dark] .header-profile-user{background-color:rgba(255,255,255,.25)}body[data-topbar=dark] .noti-icon i{color:#e9ecef}body[data-topbar=dark] .logo-dark{display:none}body[data-topbar=dark] .logo-light{display:block}body[data-topbar=dark] .app-search .form-control{background-color:rgba(243,243,249,.1);color:#fff}body[data-topbar=dark] .app-search input.form-control::-webkit-input-placeholder,body[data-topbar=dark] .app-search span{color:rgba(255,255,255,.5)}@media (max-width:600px){.navbar-header .dropdown{position:static}.navbar-header .dropdown .dropdown-menu{left:10px!important;right:10px!important}}@media (max-width:380px){.navbar-brand-box{display:none}}body[data-layout=horizontal] #page-topbar{-webkit-box-shadow:none;box-shadow:none}body[data-layout=horizontal] .navbar-brand-box{width:auto;border:0;background-color:transparent;-webkit-box-shadow:none;box-shadow:none}@media (min-width:992px){body[data-layout=horizontal] .navbar-brand-box{padding-left:0;margin-right:10px}}body[data-layout=horizontal] .page-content{margin-top:70px;padding:calc(55px + 24px) calc(24px / 2) 60px calc(24px / 2)}@media (min-width:992px){body[data-layout=horizontal] .navbar-header{padding-left:24px;padding-right:24px}}body[data-layout=horizontal][data-sidebar=dark] .navbar-brand-box{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}@media (max-width:992px){body[data-layout=horizontal] .page-content{margin-top:15px}}body[data-layout-mode=dark] .header-item.border-end,body[data-layout-mode=dark] .header-item.border-start{border-color:rgba(255,255,255,.1)!important}body[data-layout-mode=dark] .header-item.bg-soft-light{background-color:rgba(255,255,255,.04)!important}body[data-layout-mode=dark] #page-topbar{background-color:#282f36;border-color:#282f36}body[data-layout-mode=dark] .app-search .form-control{color:#adb5bd;background-color:#2f373f;border:1px solid #2f373f}body[data-layout-mode=dark] .notification-item .d-flex:hover{background-color:#2d343c}body[data-layout-mode=dark] .dropdown-icon-item{color:#adb5bd}body[data-layout-mode=dark] .dropdown-icon-item:hover{background-color:#30373f}@media (min-width:992px){body[data-layout-mode=dark][data-sidebar=light][data-topbar=light] .navbar-brand-box .logo{color:#2b3940!important}body[data-layout-mode=dark][data-sidebar=light][data-topbar=light] #vertical-menu-btn{color:#2b3940}}body[data-layout-mode=dark][data-topbar=light] .navbar-brand-box{background:#fff;border-right:none;-webkit-box-shadow:none;box-shadow:none}body[data-layout-mode=dark][data-topbar=light] .navbar-brand-box .logo{color:#2b3940!important}body[data-layout-mode=dark][data-topbar=light] .logo-light{display:none}body[data-layout-mode=dark][data-topbar=light] .logo-dark{display:block}body[data-layout-mode=dark][data-topbar=light] #vertical-menu-btn{color:#2b3940!important}body[data-layout-mode=dark][data-topbar=light] .header-item{color:#555b6d}body[data-layout-mode=dark][data-topbar=light] .header-item:hover{color:#555b6d}body[data-layout-mode=dark][data-topbar=light] .header-item.border-end,body[data-layout-mode=dark][data-topbar=light] .header-item.border-start{border-color:rgba(43,57,64,.1)!important}body[data-layout-mode=dark][data-topbar=light] .header-item.bg-soft-light{background-color:rgba(43,57,64,.04)!important}body[data-layout-mode=dark][data-topbar=light] #page-topbar{background-color:#fff;border-color:#f6f6f6}body[data-layout-mode=dark][data-topbar=light] .dropdown-icon-item{color:#adb5bd}body[data-layout-mode=dark][data-topbar=light] .dropdown-icon-item:hover{background-color:#f6f6f6}body[data-layout-mode=dark][data-topbar=light] .app-search .form-control{color:#adb5bd;background-color:#efeff3;border:1px solid #f6f6f6}body[data-layout-mode=dark][data-topbar=light] .header-profile-user{background-color:#74788d}body[data-layout-mode=dark][data-topbar=light] .noti-icon i{color:#555b6d}body[data-layout-mode=dark][data-topbar=light] .notification-item .d-flex:hover{background-color:#f8f9fa}.page-title-box{padding-bottom:24px}.page-title-box .breadcrumb{background-color:transparent;padding:0}.footer{bottom:0;padding:20px calc(24px / 2);position:absolute;right:0;color:#74788d;left:250px;height:60px;background-color:#fff;border-top:1px solid #e9e9ef}@media (max-width:991.98px){.footer{left:0}}body[data-sidebar-size=sm] .footer{left:70px}@media (max-width:991.98px){body[data-sidebar-size=sm] .footer{left:0}}body[data-layout=horizontal] .footer{left:0!important}body[data-layout-mode=dark] .footer{background-color:#242a30;color:#adb5bd;border-color:#293037}.right-bar{background-color:#fff;-webkit-box-shadow:0 0 24px 0 rgba(0,0,0,.06),0 1px 0 0 rgba(0,0,0,.02);box-shadow:0 0 24px 0 rgba(0,0,0,.06),0 1px 0 0 rgba(0,0,0,.02);display:block;position:fixed;-webkit-transition:all .2s ease-out;transition:all .2s ease-out;width:300px;z-index:9999;float:right!important;right:-310px;top:0;bottom:0}.right-bar .right-bar-toggle{background-color:#394c55;height:24px;width:24px;line-height:24px;display:block;color:#e9e9ef;text-align:center;border-radius:50%}.right-bar .right-bar-toggle:hover{background-color:#3f545f}.rightbar-overlay{background-color:rgba(43,57,64,.55);position:absolute;left:0;right:0;top:0;bottom:0;display:none;z-index:9998;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.right-bar-enabled .right-bar{right:0}.right-bar-enabled .rightbar-overlay{display:block}@media (max-width:767.98px){.right-bar{overflow:auto}.right-bar .slimscroll-menu{height:auto!important}}body[data-layout-mode=dark] .right-bar{background-color:#242a30}.metismenu{margin:0}.metismenu li{display:block;width:100%}.metismenu .mm-collapse{display:none}.metismenu .mm-collapse:not(.mm-show){display:none}.metismenu .mm-collapse.mm-show{display:block}.metismenu .mm-collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;transition-property:height,visibility}.vertical-menu{width:250px;z-index:1001;background:#fff;bottom:0;margin-top:0;position:fixed;top:70px;border-right:1px solid transparent;-webkit-box-shadow:0 .5rem 1rem rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.1)}.main-content{margin-left:250px;overflow:hidden}.main-content .content{padding:0 15px 10px 15px;margin-top:70px}#sidebar-menu{padding:10px 0 30px 0}#sidebar-menu .mm-active>.has-arrow:after{-webkit-transform:rotate(90deg);transform:rotate(90deg)}#sidebar-menu .has-arrow:after{content:"\f0142";font-family:"Material Design Icons";display:block;float:right;-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s;font-size:1.1rem;margin-right:-5px;margin-top:-2px}#sidebar-menu ul li a{display:block;padding:.675rem 1.5rem;color:#545a6d;position:relative;font-size:.845rem;-webkit-transition:all .4s;transition:all .4s}#sidebar-menu ul li a i{display:inline-block;min-width:1.75rem;padding-bottom:.125em;font-size:1.25rem;line-height:1.40625rem;vertical-align:middle;color:#545a6d;-webkit-transition:all .4s;transition:all .4s}#sidebar-menu ul li a svg{height:18px;width:18px;color:#545a6d;margin-right:10px;margin-top:-3px}#sidebar-menu ul li a:hover{color:#1c84ee}#sidebar-menu ul li a:hover i{color:#1c84ee}#sidebar-menu ul li a:hover svg{color:#1c84ee}#sidebar-menu ul li .badge{margin-top:4px}#sidebar-menu ul li ul.sub-menu{padding:0}#sidebar-menu ul li ul.sub-menu li a{padding:.425rem 1.5rem .425rem 3.5rem;font-size:.825rem;color:#545a6d}#sidebar-menu ul li ul.sub-menu li a:hover{color:#1c84ee}#sidebar-menu ul li ul.sub-menu li ul.sub-menu{padding:0}#sidebar-menu ul li ul.sub-menu li ul.sub-menu li a{padding:.4rem 1.5rem .4rem 4.5rem;font-size:13px}.menu-title{padding:12px 20px!important;pointer-events:none;cursor:default;font-size:12px;color:#545a6d;font-weight:500}.mm-active>a{color:#1c84ee!important}.mm-active>a i{color:#1c84ee!important}.mm-active>a svg{color:#1c84ee!important}.mm-active .active{color:#1c84ee!important}.mm-active .active i{color:#1c84ee!important}.mm-active .active svg{color:#1c84ee!important}.mm-active>i{color:#1c84ee!important}.sidebar-alert{background-color:rgba(28,132,238,.1)!important}.sidebar-alert .alertcard-title{color:#1c84ee}@media (max-width:992px){.vertical-menu{display:none}.main-content{margin-left:0!important}body.sidebar-enable .vertical-menu{display:block}}body[data-sidebar-size=sm]{min-height:1000px}body[data-sidebar-size=sm] .main-content{margin-left:70px}body[data-sidebar-size=sm] .navbar-brand-box{width:70px!important}body[data-sidebar-size=sm] .logo span.logo-lg{display:none}body[data-sidebar-size=sm] .logo span.logo-sm{display:block}body[data-sidebar-size=sm] .vertical-menu{position:absolute;width:70px!important;z-index:5}body[data-sidebar-size=sm] .vertical-menu .simplebar-content-wrapper,body[data-sidebar-size=sm] .vertical-menu .simplebar-mask{overflow:visible!important}body[data-sidebar-size=sm] .vertical-menu .simplebar-scrollbar{display:none!important}body[data-sidebar-size=sm] .vertical-menu .simplebar-offset{bottom:0!important}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu .badge,body[data-sidebar-size=sm] .vertical-menu #sidebar-menu .menu-title,body[data-sidebar-size=sm] .vertical-menu #sidebar-menu .sidebar-alert{display:none!important}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu .nav.collapse{height:inherit!important}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li{position:relative;white-space:nowrap}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li>a{padding:15px 20px;-webkit-transition:none;transition:none}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li>a:active,body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li>a:focus,body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li>a:hover{color:#1c84ee}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li>a i{font-size:1.45rem;margin-left:4px}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li>a svg{height:18px;width:18px;margin-left:6px}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li>a span{display:none;padding-left:25px}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li>a.has-arrow:after{display:none}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a{position:relative;width:calc(190px + 70px);color:#1c84ee;background-color:#f5f5f5;-webkit-transition:none;transition:none}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a i{color:#1c84ee}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a svg{color:#1c84ee}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a span{display:inline}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>ul{display:block;left:70px;position:absolute;width:190px;height:auto!important;-webkit-box-shadow:0 .5rem 1rem rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.1)}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>ul ul{-webkit-box-shadow:0 .5rem 1rem rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.1)}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>ul a{-webkit-box-shadow:none;box-shadow:none;padding:8px 20px;position:relative;width:190px;z-index:6;color:#545a6d}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>ul a:hover{color:#1c84ee}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul ul{padding:5px 0;z-index:9999;display:none;background-color:#fff}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul ul li:hover>ul{display:block;left:190px;height:auto!important;margin-top:-36px;position:absolute;width:190px;padding:5px 0}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul ul li>a span.pull-right{position:absolute;right:20px;top:12px;-webkit-transform:rotate(270deg);transform:rotate(270deg)}body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul ul li.active a{color:#f8f9fa}body[data-sidebar-size=sm] #sidebar-menu .mm-active>.has-arrow:after{-webkit-transform:rotate(0);transform:rotate(0)}body[data-sidebar=dark] .navbar-brand-box{background:#242a30;-webkit-box-shadow:0 3px 1px #242a30;box-shadow:0 3px 1px #242a30;border-color:#242a30}body[data-sidebar=dark] .navbar-brand-box .logo{color:#fff!important}body[data-sidebar=dark] .logo-dark{display:none}body[data-sidebar=dark] .logo-light{display:block}body[data-sidebar=dark] .vertical-menu{background:#242a30;border-color:#242a30}@media (min-width:992px){body[data-sidebar=dark] #vertical-menu-btn{color:#e9ecef}}body[data-sidebar=dark] #sidebar-menu ul li a{color:#99a4b1}body[data-sidebar=dark] #sidebar-menu ul li a i{color:#858d98}body[data-sidebar=dark] #sidebar-menu ul li a svg{color:#858d98}body[data-sidebar=dark] #sidebar-menu ul li a:hover{color:#fff}body[data-sidebar=dark] #sidebar-menu ul li a:hover i{color:#fff}body[data-sidebar=dark] #sidebar-menu ul li a:hover svg{color:#fff}body[data-sidebar=dark] #sidebar-menu ul li ul.sub-menu li a{color:#858d98}body[data-sidebar=dark] #sidebar-menu ul li ul.sub-menu li a:hover{color:#fff}body[data-sidebar=dark][data-sidebar-size=sm][data-topbar=dark] #vertical-menu-btn{color:#e9ecef}body[data-sidebar=dark][data-sidebar-size=sm] #vertical-menu-btn{color:#555b6d}body[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a{background:#282f36;color:#fff}body[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a i{color:#fff}body[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a svg{color:#fff}body[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>ul a{color:#858d98}body[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>ul a:hover{color:#fff}body[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul ul{background-color:#242a30}body[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu ul li.mm-active .active{color:#fff!important}body[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu ul li.mm-active .active i{color:#fff!important}body[data-sidebar=dark] .mm-active{color:#fff!important}body[data-sidebar=dark] .mm-active>a{color:#fff!important}body[data-sidebar=dark] .mm-active>a i{color:#fff!important}body[data-sidebar=dark] .mm-active>a svg{color:#fff!important}body[data-sidebar=dark] .mm-active>i{color:#fff!important}body[data-sidebar=dark] .mm-active .active{color:#fff!important}body[data-sidebar=dark] .mm-active .active i{color:#fff!important}body[data-sidebar=dark] .mm-active .active svg{color:#fff!important}body[data-sidebar=dark] .menu-title{color:#858d98}body[data-sidebar=dark][data-sidebar-size=md] #sidebar-menu ul li.menu-title{background-color:#282f36}body[data-layout=horizontal] .main-content{margin-left:0!important}body[data-sidebar-size=md] .navbar-brand-box{width:160px}@media (max-width:991.98px){body[data-sidebar-size=md] .navbar-brand-box{width:auto}}body[data-sidebar-size=md] .vertical-menu{width:160px;text-align:center}body[data-sidebar-size=md] .vertical-menu .badge,body[data-sidebar-size=md] .vertical-menu .has-arrow:after,body[data-sidebar-size=md] .vertical-menu .sidebar-alert{display:none!important}body[data-sidebar-size=md] .main-content{margin-left:160px}body[data-sidebar-size=md] .footer{left:160px}@media (max-width:991.98px){body[data-sidebar-size=md] .footer{left:0}}body[data-sidebar-size=md] #sidebar-menu ul li a svg{display:block;margin:0 auto 4px}body[data-sidebar-size=md] #sidebar-menu ul li ul.sub-menu li a{padding-left:1.5rem}body[data-sidebar-size=md] #sidebar-menu ul li ul.sub-menu li ul.sub-menu li a{padding-left:1.5rem}body[data-sidebar-size=md][data-sidebar-size=sm] .main-content{margin-left:70px}body[data-sidebar-size=md][data-sidebar-size=sm] .vertical-menu #sidebar-menu{text-align:left}body[data-sidebar-size=md][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li>a svg{display:inline-block}body[data-sidebar-size=md][data-sidebar-size=sm] .footer{left:70px}body[data-sidebar=brand] .vertical-menu{background-color:#1c84ee}body[data-sidebar=brand] .navbar-brand-box{background-color:#1c84ee;-webkit-box-shadow:0 1px 0 #1c84ee;box-shadow:0 1px 0 #1c84ee}body[data-sidebar=brand] .navbar-brand-box .logo-dark{display:none}body[data-sidebar=brand] .navbar-brand-box .logo-light{display:block}body[data-sidebar=brand] .navbar-brand-box .logo{color:#fff!important}body[data-sidebar=brand] .mm-active{color:#fff!important}body[data-sidebar=brand] .mm-active>a{color:#fff!important}body[data-sidebar=brand] .mm-active>a i{color:#fff!important}body[data-sidebar=brand] .mm-active>a svg{color:#fff!important}body[data-sidebar=brand] .mm-active .active{color:#fff!important}body[data-sidebar=brand] .mm-active .active svg{color:#fff!important}@media (min-width:992px){body[data-sidebar=brand] #vertical-menu-btn{color:#e9ecef}}body[data-sidebar=brand] #sidebar-menu ul li.menu-title{color:rgba(255,255,255,.6)}body[data-sidebar=brand] #sidebar-menu ul li a{color:rgba(255,255,255,.6)}body[data-sidebar=brand] #sidebar-menu ul li a i{color:rgba(255,255,255,.6)}body[data-sidebar=brand] #sidebar-menu ul li a svg{color:rgba(255,255,255,.6)}body[data-sidebar=brand] #sidebar-menu ul li a.waves-effect .waves-ripple{background:rgba(255,255,255,.1)}body[data-sidebar=brand] #sidebar-menu ul li a:hover{color:#fff}body[data-sidebar=brand] #sidebar-menu ul li a:hover i{color:#fff}body[data-sidebar=brand] #sidebar-menu ul li ul.sub-menu li a{color:rgba(255,255,255,.5)}body[data-sidebar=brand] #sidebar-menu ul li ul.sub-menu li a:hover{color:#fff}body[data-sidebar=brand] .sidebar-alert{background-color:rgba(255,255,255,.1);color:rgba(255,255,255,.5)}body[data-sidebar=brand] .sidebar-alert .alertcard-title{color:#fff}body[data-sidebar=brand][data-sidebar-size=sm][data-topbar=dark] #vertical-menu-btn{color:#e9ecef}body[data-sidebar=brand][data-sidebar-size=sm] #vertical-menu-btn{color:#555b6d}body[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a{background-color:#2589ef;color:#fff}body[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a i,body[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a svg{color:#fff}body[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu ul li.mm-active .active{color:#fff!important}body[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu ul li ul.sub-menu li a:hover{color:#1c84ee}body[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu ul li ul.sub-menu li.mm-active{color:#1c84ee!important}body[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu ul li ul.sub-menu li.mm-active>a{color:#1c84ee!important}body[data-layout-mode=dark][data-sidebar=brand] .navbar-brand-box,body[data-layout-mode=dark][data-sidebar=brand] .vertical-menu,body[data-layout-mode=dark][data-sidebar=dark] .navbar-brand-box,body[data-layout-mode=dark][data-sidebar=dark] .vertical-menu{border-color:transparent}body[data-layout-mode=dark][data-sidebar=light] .sidebar-alert{background-color:rgba(28,132,238,.1);color:#495057}body[data-layout-mode=dark][data-sidebar=light] .sidebar-alert .alertcard-title{color:#1c84ee}[dir=rtl] #sidebar-menu .has-arrow:after{content:"\f0141"}.topnav{background:#fff;padding:0 calc(24px / 2);margin-top:70px;position:fixed;left:0;right:0;z-index:100;-webkit-box-shadow:0 .25rem .75rem rgba(18,38,63,.08);box-shadow:0 .25rem .75rem rgba(18,38,63,.08)}@media (min-width:992px){.topnav{background:#fff}}.topnav .topnav-menu{margin:0;padding:0}.topnav .navbar-nav .nav-link{font-size:14.4px;position:relative;padding:1rem 1.3rem;color:#545a6d}.topnav .navbar-nav .nav-link i{font-size:15px}.topnav .navbar-nav .nav-link svg{height:16px;width:16px;color:#545a6d;margin-right:7px;margin-top:-3px}.topnav .navbar-nav .nav-link:focus,.topnav .navbar-nav .nav-link:hover{color:#1c84ee;background-color:transparent}.topnav .navbar-nav .nav-link:focus svg,.topnav .navbar-nav .nav-link:hover svg{color:#1c84ee}.topnav .navbar-nav .dropdown-item{color:#545a6d}.topnav .navbar-nav .dropdown-item.active,.topnav .navbar-nav .dropdown-item:hover{color:#1c84ee}.topnav .navbar-nav .nav-item .nav-link.active{color:#1c84ee}.topnav .navbar-nav .nav-item .nav-link.active svg{color:#1c84ee}.topnav .navbar-nav .dropdown.active>a{color:#1c84ee;background-color:transparent}.topnav .navbar-nav .dropdown.active>a svg{color:#1c84ee}.topnav .menu-title{padding:12px 24px!important}@media (max-width:991.98px){.topnav .menu-title{padding:12px 16px!important}}@media (min-width:1200px){body[data-layout=horizontal] .container-fluid,body[data-layout=horizontal] .navbar-header{max-width:85%}}@media (min-width:992px){.topnav .navbar-nav .nav-item:first-of-type .nav-link{padding-left:0}.topnav .dropdown-item{padding:.5rem 1.5rem;min-width:180px}.topnav .dropdown.mega-dropdown .mega-dropdown-menu{left:0;right:auto}.topnav .dropdown .dropdown-menu{margin-top:0;border-radius:0 0 .25rem .25rem}.topnav .dropdown .dropdown-menu .arrow-down::after{right:15px;-webkit-transform:rotate(-135deg) translateY(-50%);transform:rotate(-135deg) translateY(-50%);position:absolute}.topnav .dropdown .dropdown-menu .dropdown .dropdown-menu{position:absolute;top:0!important;left:100%;display:none}.topnav .dropdown:hover>.dropdown-menu{display:block}.topnav .dropdown:hover>.dropdown-menu>.dropdown:hover>.dropdown-menu{display:block}.navbar-toggle{display:none}}.arrow-down{display:inline-block}.arrow-down:after{border-color:initial;border-style:solid;border-width:0 0 1px 1px;content:"";height:.4em;display:inline-block;right:5px;top:50%;margin-left:10px;-webkit-transform:rotate(-45deg) translateY(-50%);transform:rotate(-45deg) translateY(-50%);-webkit-transform-origin:top;transform-origin:top;-webkit-transition:all .3s ease-out;transition:all .3s ease-out;width:.4em}@media (max-width:1199.98px){.topnav-menu .navbar-nav li:last-of-type .dropdown .dropdown-menu{right:100%;left:auto}}@media (max-width:991.98px){.navbar-brand-box .logo-dark{display:block}.navbar-brand-box .logo-dark span.logo-sm{display:block}.navbar-brand-box .logo-light{display:none}.topnav{max-height:360px;overflow-y:auto;padding:0}.topnav .navbar-nav .nav-link{padding:.75rem 1.1rem}.topnav .dropdown .dropdown-menu{background-color:transparent;border:none;-webkit-box-shadow:none;box-shadow:none;padding-left:24px}.topnav .dropdown .dropdown-menu.dropdown-mega-menu-xl{width:auto}.topnav .dropdown .dropdown-menu.dropdown-mega-menu-xl .row{margin:0}.topnav .dropdown .dropdown-item{position:relative;background-color:transparent}.topnav .dropdown .dropdown-item.active,.topnav .dropdown .dropdown-item:active{color:#1c84ee}.topnav .arrow-down::after{right:15px;position:absolute}}body[data-layout=horizontal][data-topbar=colored] #page-topbar{background-color:#1c84ee;-webkit-box-shadow:none;box-shadow:none}body[data-layout=horizontal][data-topbar=colored] .logo-dark{display:none}body[data-layout=horizontal][data-topbar=colored] .logo-light{display:block}body[data-layout=horizontal][data-topbar=colored] .app-search .form-control{background-color:rgba(243,243,249,.07);color:#fff}body[data-layout=horizontal][data-topbar=colored] .app-search input.form-control::-webkit-input-placeholder,body[data-layout=horizontal][data-topbar=colored] .app-search span{color:rgba(255,255,255,.5)}body[data-layout=horizontal][data-topbar=colored] .header-item{color:#e9ecef}body[data-layout=horizontal][data-topbar=colored] .header-item:hover{color:#e9ecef}body[data-layout=horizontal][data-topbar=colored] .navbar-header .dropdown .show.header-item{background-color:rgba(255,255,255,.1)}body[data-layout=horizontal][data-topbar=colored] .navbar-header .waves-effect .waves-ripple{background:rgba(255,255,255,.4)}body[data-layout=horizontal][data-topbar=colored] .noti-icon i{color:#e9ecef}@media (min-width:992px){body[data-layout=horizontal][data-topbar=colored] .topnav{background-color:#1c84ee}body[data-layout=horizontal][data-topbar=colored] .topnav .navbar-nav .nav-link{color:rgba(255,255,255,.6)}body[data-layout=horizontal][data-topbar=colored] .topnav .navbar-nav .nav-link:focus,body[data-layout=horizontal][data-topbar=colored] .topnav .navbar-nav .nav-link:hover{color:rgba(255,255,255,.9)}body[data-layout=horizontal][data-topbar=colored] .topnav .navbar-nav>.dropdown.active>a{color:rgba(255,255,255,.9)!important}}body[data-layout-mode=dark] .topnav{background-color:#232a30}body[data-layout-mode=dark] .topnav .navbar-nav .nav-link{color:#99a4b1}body[data-layout-mode=dark] .topnav .navbar-nav .nav-link svg{height:16px;width:16px;color:#99a4b1;fill:rgba(153,164,177,.2);margin-right:7px;margin-top:-3px}body[data-layout-mode=dark] .topnav .navbar-nav .nav-link:focus,body[data-layout-mode=dark] .topnav .navbar-nav .nav-link:hover{color:#fff;background-color:transparent}body[data-layout-mode=dark] .topnav .navbar-nav .nav-link:focus svg,body[data-layout-mode=dark] .topnav .navbar-nav .nav-link:hover svg{color:#fff;fill:rgba(255,255,255,.2)}body[data-layout-mode=dark] .topnav .navbar-nav .dropdown-item{color:#99a4b1}body[data-layout-mode=dark] .topnav .navbar-nav .dropdown-item.active,body[data-layout-mode=dark] .topnav .navbar-nav .dropdown-item:hover{color:#fff}body[data-layout-mode=dark] .topnav .navbar-nav .nav-item .nav-link.active{color:#fff}body[data-layout-mode=dark] .topnav .navbar-nav .dropdown.active>a{color:#fff;background-color:transparent}body[data-layout-mode=dark] .topnav .navbar-nav .dropdown.active>a svg{color:#fff;fill:rgba(255,255,255,.2)}body[data-layout-mode=dark] .topnav .menu-title{color:rgba(153,164,177,.6)}body[data-layout-size=boxed]{background-color:#f0f0f0}body[data-layout-size=boxed] #layout-wrapper{background-color:#f4f5f8;max-width:1300px;margin:0 auto;-webkit-box-shadow:0 .25rem .75rem rgba(18,38,63,.08);box-shadow:0 .25rem .75rem rgba(18,38,63,.08);min-height:100vh}body[data-layout-size=boxed] #page-topbar{max-width:1300px;margin:0 auto}body[data-layout-size=boxed] .footer{margin:0 auto;max-width:calc(1300px - 250px)}@media (min-width:992px){body[data-layout-size=boxed][data-sidebar-size=sm] #layout-wrapper{min-height:1200px}}body[data-layout-size=boxed][data-sidebar-size=sm] .footer{max-width:calc(1300px - 70px)}body[data-layout-size=boxed][data-sidebar-size=md] .footer{max-width:calc(1300px - 160px)}body[data-layout=horizontal][data-layout-size=boxed] #layout-wrapper,body[data-layout=horizontal][data-layout-size=boxed] #page-topbar,body[data-layout=horizontal][data-layout-size=boxed] .footer{max-width:100%}body[data-layout=horizontal][data-layout-size=boxed] .container-fluid,body[data-layout=horizontal][data-layout-size=boxed] .navbar-header{max-width:1300px}@media (min-width:992px){body[data-layout-scrollable=true] #page-topbar,body[data-layout-scrollable=true] .vertical-menu{position:absolute}}@media (min-width:992px){body[data-layout-scrollable=true][data-layout=horizontal] #page-topbar,body[data-layout-scrollable=true][data-layout=horizontal] .topnav{position:absolute}}body[data-layout-mode=dark][data-layout-size=boxed]{background-color:#2d343c}body[data-layout-mode=dark][data-layout-size=boxed] #layout-wrapper{background-color:#191e22}/*! + * Waves v0.7.6 + * http://fian.my.id/Waves + * + * Copyright 2014-2018 Alfiana E. Sibuea and other contributors + * Released under the MIT license + * https://github.com/fians/Waves/blob/master/LICENSE */.waves-effect{position:relative;cursor:pointer;display:inline-block;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.waves-effect .waves-ripple{position:absolute;border-radius:50%;width:100px;height:100px;margin-top:-50px;margin-left:-50px;opacity:0;background:rgba(0,0,0,.2);background:radial-gradient(rgba(0,0,0,.2) 0,rgba(0,0,0,.3) 40%,rgba(0,0,0,.4) 50%,rgba(0,0,0,.5) 60%,rgba(255,255,255,0) 70%);-webkit-transition:all .5s ease-out;transition:all .5s ease-out;-webkit-transition-property:-webkit-transform,opacity;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transform:scale(0) translate(0,0);transform:scale(0) translate(0,0);pointer-events:none}.waves-effect.waves-light .waves-ripple{background:rgba(255,255,255,.4);background:radial-gradient(rgba(255,255,255,.2) 0,rgba(255,255,255,.3) 40%,rgba(255,255,255,.4) 50%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0) 70%)}.waves-effect.waves-classic .waves-ripple{background:rgba(0,0,0,.2)}.waves-effect.waves-classic.waves-light .waves-ripple{background:rgba(255,255,255,.4)}.waves-notransition{-webkit-transition:none!important;transition:none!important}.waves-button,.waves-circle{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 100%)}.waves-button,.waves-button-input,.waves-button:hover,.waves-button:visited{white-space:nowrap;vertical-align:middle;cursor:pointer;border:none;outline:0;color:inherit;background-color:rgba(0,0,0,0);font-size:1em;line-height:1em;text-align:center;text-decoration:none;z-index:1}.waves-button{padding:.85em 1.1em;border-radius:.2em}.waves-button-input{margin:0;padding:.85em 1.1em}.waves-input-wrapper{border-radius:.2em;vertical-align:bottom}.waves-input-wrapper.waves-button{padding:0}.waves-input-wrapper .waves-button-input{position:relative;top:0;left:0;z-index:1}.waves-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%}.waves-float{-webkit-mask-image:none;-webkit-box-shadow:0 1px 1.5px 1px rgba(0,0,0,.12);box-shadow:0 1px 1.5px 1px rgba(0,0,0,.12);-webkit-transition:all .3s;transition:all .3s}.waves-float:active{-webkit-box-shadow:0 8px 20px 1px rgba(0,0,0,.3);box-shadow:0 8px 20px 1px rgba(0,0,0,.3)}.waves-block{display:block}.waves-effect.waves-light .waves-ripple{background-color:rgba(255,255,255,.4)}.waves-effect.waves-primary .waves-ripple{background-color:rgba(28,132,238,.4)}.waves-effect.waves-success .waves-ripple{background-color:rgba(52,195,143,.4)}.waves-effect.waves-info .waves-ripple{background-color:rgba(22,218,241,.4)}.waves-effect.waves-warning .waves-ripple{background-color:rgba(255,204,90,.4)}.waves-effect.waves-danger .waves-ripple{background-color:rgba(239,103,103,.4)}body[data-layout-mode=dark] .accordion-button{border-color:#30373f;color:#ced4da}body[data-layout-mode=dark] .accordion-button:not(.collapsed){background-color:rgba(28,132,238,.2);color:#1c84ee}body[data-layout-mode=dark] .accordion-item{border-color:#30373f}body[data-layout-mode=dark] .accordion-collapse{border-color:#30373f}.avatar-xs{height:1rem;width:1rem}.avatar-sm{height:2rem;width:2rem}.avatar-md{height:3rem;width:3rem}.avatar-lg{height:4rem;width:4rem}.avatar-xl{height:5rem;width:5rem}.avatar-xxl{height:7.5rem;width:7.5rem}.avatar-title{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#1c84ee;color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:500;height:100%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100%}.avatar-group{padding-left:12px;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.avatar-group .avatar-group-item{margin-left:-12px;border:2px solid #fff;border-radius:50%;-webkit-transition:all .2s;transition:all .2s}.avatar-group .avatar-group-item:hover{position:relative;-webkit-transform:translateY(-2px);transform:translateY(-2px)}.font-size-10{font-size:10px!important}.font-size-11{font-size:11px!important}.font-size-12{font-size:12px!important}.font-size-13{font-size:13px!important}.font-size-14{font-size:14px!important}.font-size-15{font-size:15px!important}.font-size-16{font-size:16px!important}.font-size-17{font-size:17px!important}.font-size-18{font-size:18px!important}.font-size-20{font-size:20px!important}.font-size-22{font-size:22px!important}.font-size-24{font-size:24px!important}.fw-medium{font-weight:500}.fw-semibold{font-weight:600}.icon-xs{height:14px;width:14px}.icon-sm{height:16px;width:16px}.icon-md{height:18px;width:18px}.icon-lg{height:20px;width:20px}.icon-xl{height:22px;width:22px}.card-h-100{height:calc(100% - 24px)}.social-list-item{height:2rem;width:2rem;line-height:calc(2rem - 4px);display:block;border:2px solid #adb5bd;border-radius:50%;color:#adb5bd;text-align:center;-webkit-transition:all .4s;transition:all .4s}.social-list-item:hover{color:#74788d;background-color:#e9e9ef}.w-xs{min-width:80px}.w-sm{min-width:95px}.w-md{min-width:110px}.w-lg{min-width:140px}.w-xl{min-width:160px}.bg-overlay{position:absolute;height:100%;width:100%;right:0;bottom:0;left:0;top:0;opacity:.7;background-color:#000}.bg-overlay-gradient{background:-webkit-gradient(linear,left top,left bottom,color-stop(30%,rgba(43,57,64,.5)),to(#2b3940));background:linear-gradient(to bottom,rgba(43,57,64,.5) 30%,#2b3940 100%);position:absolute;height:100%;width:100%;right:0;bottom:0;left:0;top:0;opacity:.7}.alert-dismissible .btn-close{font-size:10px;padding:1.05rem 1.25rem;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat}body[data-layout-mode=dark] .btn-close{background:transparent 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 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat}body[data-layout-mode=dark] .border-light{border-color:#30373f!important}body[data-layout-mode=dark] .border-bottom{border-bottom:1px solid #30373f!important}body[data-layout-mode=dark] .border,body[data-layout-mode=dark] .border-top,body[data-layout-mode=dark] .list-group-item{border-color:#30373f!important}body[data-layout-mode=dark] .border-primary{border-color:#1c84ee!important}body[data-layout-mode=dark] .border-secondary{border-color:#74788d!important}body[data-layout-mode=dark] .border-success{border-color:#34c38f!important}body[data-layout-mode=dark] .border-info{border-color:#16daf1!important}body[data-layout-mode=dark] .border-warning{border-color:#ffcc5a!important}body[data-layout-mode=dark] .border-danger{border-color:#ef6767!important}body[data-layout-mode=dark] .border-pink{border-color:#e83e8c!important}body[data-layout-mode=dark] .border-light{border-color:#f6f6f6!important}body[data-layout-mode=dark] .border-dark{border-color:#2b3940!important}body[data-layout-mode=dark] .text-dark{color:#e9e9ef!important}body[data-layout-mode=dark] .text-muted{color:#858d98!important}body[data-layout-mode=dark] .text-body{color:#adb5bd!important}body[data-layout-mode=dark] .list-group-item{background-color:#242a30;color:#adb5bd}body[data-layout-mode=dark] .img-thumbnail{background-color:#293037;border-color:#30373f}body[data-layout-mode=dark] .popover-header{color:#242a30}.btn-group-vertical label{margin-bottom:0}.btn-group label{margin-bottom:0}body[data-layout-mode=dark] .modal-footer,body[data-layout-mode=dark] .modal-header{border-color:#30373f}[type=email]::-webkit-input-placeholder,[type=number]::-webkit-input-placeholder,[type=tel]::-webkit-input-placeholder,[type=url]::-webkit-input-placeholder{text-align:left}[type=email]::-moz-placeholder,[type=number]::-moz-placeholder,[type=tel]::-moz-placeholder,[type=url]::-moz-placeholder{text-align:left}[type=email]:-ms-input-placeholder,[type=number]:-ms-input-placeholder,[type=tel]:-ms-input-placeholder,[type=url]:-ms-input-placeholder{text-align:left}[type=email]::-ms-input-placeholder,[type=number]::-ms-input-placeholder,[type=tel]::-ms-input-placeholder,[type=url]::-ms-input-placeholder{text-align:left}[type=email]::placeholder,[type=number]::placeholder,[type=tel]::placeholder,[type=url]::placeholder{text-align:left}.form-check{position:relative;text-align:left}.form-check-right{padding-left:0;display:inline-block;padding-right:1.5em}.form-check-right .form-check-input{float:right;margin-left:0;margin-right:-1.5em}.form-check-right .form-check-label{display:block}.form-checkbox-outline .form-check-input{border-width:2px;background-color:#fff}.form-checkbox-outline .form-check-input:active{-webkit-filter:none;filter:none}.form-checkbox-outline .form-check-input:checked{background-color:#fff!important}.form-checkbox-outline .form-check-input:checked[type=checkbox]{background-image:none}.form-checkbox-outline .form-check-input:checked:after{position:absolute;content:"\f012c";font-family:"Material Design Icons";top:-4px!important;left:1px;font-size:16px;color:#2b3940}.form-radio-outline .form-check-input{background-color:#fff;position:relative}.form-radio-outline .form-check-input:active{-webkit-filter:none;filter:none}.form-radio-outline .form-check-input:checked{background-color:#fff!important}.form-radio-outline .form-check-input:checked[type=checkbox]{background-image:none}.form-radio-outline .form-check-input:checked:after{position:absolute;content:"";top:3px!important;left:3px;width:5px;height:5px;border-radius:50%}.form-check-primary .form-check-input:checked{background-color:#1c84ee;border-color:#1c84ee}.form-radio-primary .form-check-input:checked{border-color:#1c84ee;background-color:#1c84ee}.form-radio-primary .form-check-input:checked:after{background-color:#1c84ee}.form-check-secondary .form-check-input:checked{background-color:#74788d;border-color:#74788d}.form-radio-secondary .form-check-input:checked{border-color:#74788d;background-color:#74788d}.form-radio-secondary .form-check-input:checked:after{background-color:#74788d}.form-check-success .form-check-input:checked{background-color:#34c38f;border-color:#34c38f}.form-radio-success .form-check-input:checked{border-color:#34c38f;background-color:#34c38f}.form-radio-success .form-check-input:checked:after{background-color:#34c38f}.form-check-info .form-check-input:checked{background-color:#16daf1;border-color:#16daf1}.form-radio-info .form-check-input:checked{border-color:#16daf1;background-color:#16daf1}.form-radio-info .form-check-input:checked:after{background-color:#16daf1}.form-check-warning .form-check-input:checked{background-color:#ffcc5a;border-color:#ffcc5a}.form-radio-warning .form-check-input:checked{border-color:#ffcc5a;background-color:#ffcc5a}.form-radio-warning .form-check-input:checked:after{background-color:#ffcc5a}.form-check-danger .form-check-input:checked{background-color:#ef6767;border-color:#ef6767}.form-radio-danger .form-check-input:checked{border-color:#ef6767;background-color:#ef6767}.form-radio-danger .form-check-input:checked:after{background-color:#ef6767}.form-check-pink .form-check-input:checked{background-color:#e83e8c;border-color:#e83e8c}.form-radio-pink .form-check-input:checked{border-color:#e83e8c;background-color:#e83e8c}.form-radio-pink .form-check-input:checked:after{background-color:#e83e8c}.form-check-light .form-check-input:checked{background-color:#f6f6f6;border-color:#f6f6f6}.form-radio-light .form-check-input:checked{border-color:#f6f6f6;background-color:#f6f6f6}.form-radio-light .form-check-input:checked:after{background-color:#f6f6f6}.form-check-dark .form-check-input:checked{background-color:#2b3940;border-color:#2b3940}.form-radio-dark .form-check-input:checked{border-color:#2b3940;background-color:#2b3940}.form-radio-dark .form-check-input:checked:after{background-color:#2b3940}.form-check,.form-check-input,.form-check-label{cursor:pointer;margin-bottom:0}.form-switch-md{font-size:20px;min-height:26px;line-height:26px}.form-switch-md .form-check-label{font-size:.8125rem;vertical-align:middle}.form-switch-lg{font-size:26px;min-height:36px;line-height:36px}.form-switch-lg .form-check-label{font-size:.8125rem;vertical-align:middle}.input-group-text{margin-bottom:0}body[data-layout-mode=dark] .form-control{color:#adb5bd;background-color:#282f36;border:1px solid #30373f}body[data-layout-mode=dark] .form-select{color:#adb5bd;background-color:#293037;border:1px solid #30373f;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23e9e9ef' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e")}body[data-layout-mode=dark] .form-check-input{background-color:#30373f;border-color:rgba(255,255,255,.25)}body[data-layout-mode=dark] .form-check-input:checked{background-color:#1c84ee;border-color:#1c84ee}body[data-layout-mode=dark] .form-switch .form-check-input{background-image: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")}body[data-layout-mode=dark] .input-group-text{background-color:#30373f;border-color:#30373f;color:#ced4da}body[data-layout-mode=dark] .form-control::-webkit-file-upload-button{background-color:#30373f;color:#ced4da}body[data-layout-mode=dark] .form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#30373f}body[data-layout-mode=dark] .form-range::-webkit-slider-runnable-track{background-color:#30373f!important}body[data-layout-mode=dark] .form-range::-moz-range-track{background-color:#30373f!important}.widget-box-1-icon{position:absolute;right:-25px;bottom:-25px;font-size:6rem;opacity:.1}.widget-carousel .carousel-indicators{margin:0 auto;position:relative}.dash-widget{width:85px}.activity-border:before{content:"";position:absolute;height:80px;border-left:2px dashed #ced4da;top:40px;left:2px}.activity-wid{margin-left:16px}.activity-wid .activity-list{position:relative;padding:0 0 20px 45px}.activity-wid .activity-list .activity-icon{position:absolute;left:-20px;top:-3px;z-index:2;background:#fff}.activity-wid .activity-list .activity-icon img{border:5px solid #fff}.activity-wid .activity-list .activity-icon span{border:5px solid #fff}.activity-wid .activity-list:last-child{padding-bottom:0}body[data-layout-mode=dark] .activity-wid .activity-list .activity-icon{background:#242a30}body[data-layout-mode=dark] .activity-wid .activity-list .activity-icon img,body[data-layout-mode=dark] .activity-wid .activity-list .activity-icon span{border-color:#242a30}body[data-layout-mode=dark] .activity-border:before{border-color:#30373f}body[data-layout-mode=dark] .toast,body[data-layout-mode=dark] .toast-header{background-color:rgba(48,55,63,.85);color:#858d98}body[data-layout-mode=dark] .toast-header{color:#adb5bd}.grid-example{background-color:rgba(28,132,238,.05);border-radius:5px;font-weight:500;padding:10px 20px;font-size:.8rem}.bs-example-modal{position:relative;top:auto;right:auto;bottom:auto;left:auto;z-index:1;display:block}[dir=rtl] .modal-open{padding-left:0!important}.icon-demo-content{color:#adb5bd}.icon-demo-content i,.icon-demo-content svg{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;width:40px;height:40px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:20px;color:#74788d;-webkit-transition:all .4s;transition:all .4s;border:1px solid #e9e9ef;border-radius:50%;margin-right:16px;vertical-align:middle}.icon-demo-content svg{padding:10px}.icon-demo-content .col-lg-4{margin-top:24px}.icon-demo-content .col-lg-4:hover i,.icon-demo-content .col-lg-4:hover svg{background-color:rgba(28,132,238,.2);color:#1c84ee}.grid-structure .grid-container{background-color:#f8f9fa;margin-top:10px;font-size:.8rem;font-weight:500;padding:10px 20px}.card-radio{background-color:#fff;border:2px solid #e9e9ef;border-radius:.25rem;padding:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-radio:hover{cursor:pointer}.card-radio-label{display:block}.card-radio-input{display:none}.card-radio-input:checked+.card-radio{border-color:#1c84ee!important}.spin-left:before{-webkit-animation:spin-left 2s infinite linear;animation:spin-left 2s infinite linear}.spin-right:before{-webkit-animation:spin-right 2s infinite linear;animation:spin-right 2s infinite linear}@-webkit-keyframes spin-left{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}}@keyframes spin-left{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}}@-webkit-keyframes spin-right{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin-right{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}body[data-layout-mode=dark] .grid-example,body[data-layout-mode=dark] .grid-structure .grid-container{background-color:#293037}body[data-layout-mode=dark] .icon-demo-content{color:#858d98}body[data-layout-mode=dark] .icon-demo-content i{border-color:#30373f;color:#858d98}body[data-layout-mode=dark] .glightbox-clean .gslide-description{background-color:#30373f}body[data-layout-mode=dark] .glightbox-clean .gslide-title{color:#ced4da}.popover,.tooltip{z-index:9}@media print{.footer,.navbar-header,.page-title-box,.right-bar,.vertical-menu{display:none!important}.card-body,.main-content,.page-content,.right-bar,body{padding:0;margin:0}.card{border:0}}[data-simplebar]{position:relative;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-line-pack:start;align-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.simplebar-wrapper{overflow:hidden;width:inherit;height:inherit;max-width:inherit;max-height:inherit}.simplebar-mask{direction:inherit;position:absolute;overflow:hidden;padding:0;margin:0;left:0;top:0;bottom:0;right:0;width:auto!important;height:auto!important;z-index:0}.simplebar-offset{direction:inherit!important;-webkit-box-sizing:inherit!important;box-sizing:inherit!important;resize:none!important;position:absolute;top:0;left:0!important;bottom:0;right:0!important;padding:0;margin:0;-webkit-overflow-scrolling:touch}.simplebar-content-wrapper{direction:inherit;-webkit-box-sizing:border-box!important;box-sizing:border-box!important;position:relative;display:block;height:100%;width:auto;visibility:visible;overflow:auto;max-width:100%;max-height:100%;scrollbar-width:none;padding:0!important}.simplebar-content-wrapper::-webkit-scrollbar,.simplebar-hide-scrollbar::-webkit-scrollbar{display:none}.simplebar-content:after,.simplebar-content:before{content:" ";display:table}.simplebar-placeholder{max-height:100%;max-width:100%;width:100%;pointer-events:none}.simplebar-height-auto-observer-wrapper{-webkit-box-sizing:inherit!important;box-sizing:inherit!important;height:100%;width:100%;max-width:1px;position:relative;float:left;max-height:1px;overflow:hidden;z-index:-1;padding:0;margin:0;pointer-events:none;-webkit-box-flex:inherit;-ms-flex-positive:inherit;flex-grow:inherit;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:0;flex-basis:0}.simplebar-height-auto-observer{-webkit-box-sizing:inherit;box-sizing:inherit;display:block;opacity:0;position:absolute;top:0;left:0;height:1000%;width:1000%;min-height:1px;min-width:1px;overflow:hidden;pointer-events:none;z-index:-1}.simplebar-track{z-index:1;position:absolute;right:0;bottom:0;pointer-events:none;overflow:hidden}[data-simplebar].simplebar-dragging .simplebar-content{pointer-events:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}[data-simplebar].simplebar-dragging .simplebar-track{pointer-events:all}.simplebar-scrollbar{position:absolute;right:2px;width:6px;min-height:10px}.simplebar-scrollbar:before{position:absolute;content:"";background:#a2adb7;border-radius:7px;left:0;right:0;opacity:0;-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.simplebar-scrollbar.simplebar-visible:before{opacity:.5;-webkit-transition:opacity 0s linear;transition:opacity 0s linear}.simplebar-track.simplebar-vertical{top:0;width:11px}.simplebar-track.simplebar-vertical .simplebar-scrollbar:before{top:2px;bottom:2px}.simplebar-track.simplebar-horizontal{left:0;height:11px}.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before{height:100%;left:2px;right:2px}.simplebar-track.simplebar-horizontal .simplebar-scrollbar{right:auto;left:0;top:2px;height:7px;min-height:0;min-width:10px;width:auto}[data-simplebar-direction=rtl] .simplebar-track.simplebar-vertical{right:auto;left:0}.hs-dummy-scrollbar-size{direction:rtl;position:fixed;opacity:0;visibility:hidden;height:500px;width:500px;overflow-y:hidden;overflow-x:scroll}.simplebar-hide-scrollbar{position:fixed;left:0;visibility:hidden;overflow-y:scroll;scrollbar-width:none}.custom-scroll{height:100%}.bootstrap-touchspin.input-group>.input-group-prepend>.btn,.bootstrap-touchspin.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.bootstrap-touchspin.input-group>.input-group-append>.btn,.bootstrap-touchspin.input-group>.input-group-append>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.bootstrap-touchspin .input-group-btn-vertical{right:0}.bootstrap-touchspin .input-group-btn-vertical .btn{right:0!important;left:100%!important}.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-up{border-top-right-radius:4px!important;border-bottom-right-radius:0!important;border-top-left-radius:0!important;border-bottom-left-radius:0!important}.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-down{border-top-right-radius:0!important;border-bottom-right-radius:4px!important;border-top-left-radius:0!important;border-bottom-left-radius:0!important}.fc td,.fc th{border:1px solid #e9e9ef}.fc .fc-toolbar h2{font-size:16px;line-height:30px;text-transform:uppercase}@media (max-width:767.98px){.fc .fc-toolbar .fc-center,.fc .fc-toolbar .fc-left,.fc .fc-toolbar .fc-right{float:none;display:block;text-align:center;clear:both;margin:10px 0}.fc .fc-toolbar>*>*{float:none}.fc .fc-toolbar .fc-today-button{display:none}}.fc .fc-toolbar .btn{text-transform:capitalize}.fc th.fc-widget-header{background:#f6f6f6;color:#495057;line-height:20px;padding:10px 0;text-transform:uppercase;font-weight:700}.fc-unthemed .fc-content,.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading td,.fc-unthemed .fc-list-view,.fc-unthemed .fc-popover,.fc-unthemed .fc-row,.fc-unthemed tbody,.fc-unthemed td,.fc-unthemed th,.fc-unthemed thead{border-color:#f6f6f6}.fc-unthemed td.fc-today{background:#efeff3}.fc-button{background:#fff;border-color:#e9e9ef;color:#495057;text-transform:capitalize;-webkit-box-shadow:none;box-shadow:none;padding:6px 12px!important;height:auto!important}.fc-state-active,.fc-state-disabled,.fc-state-down{background-color:#1c84ee;color:#fff;text-shadow:none}.fc-event{border-radius:2px;border:none;cursor:move;font-size:.8125rem;margin:5px 7px;padding:5px 5px;text-align:center}.fc-event,.fc-event-dot{background-color:#1c84ee}.fc-event .fc-content{color:#fff}#external-events .external-event{text-align:left;padding:8px 16px}.fc-day-grid-event.fc-h-event.fc-event.fc-start.fc-end.bg-dark .fc-content{color:#f6f6f6}[dir=rtl] .fc-header-toolbar{direction:ltr!important}[dir=rtl] .fc-toolbar>*>:not(:first-child){margin-left:.75em}@media (max-width:575.98px){.fc-toolbar{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}#session-timeout-dialog .close{display:none}#session-timeout-dialog .countdown-holder{color:#ef6767;font-weight:500}#session-timeout-dialog .btn-default{background-color:#fff;color:#ef6767;-webkit-box-shadow:none;box-shadow:none}.noUi-connect{background:#1c84ee}.noUi-handle{background:#fff}.noUi-horizontal{height:8px}.noUi-horizontal .noUi-handle{height:20px;width:20px;border-radius:50%;right:-10px;top:-7px}.noUi-horizontal .noUi-handle::after,.noUi-horizontal .noUi-handle::before{display:none}.noUi-horizontal .noUi-handle:focus{outline:0}.noUi-connects,.noUi-touch-area{cursor:pointer}.noUi-pips-horizontal{height:50px}.noUi-vertical{width:8px}.noUi-vertical .noUi-handle{height:20px;width:20px;right:-7px;top:-12px;border-radius:50%}.noUi-vertical .noUi-handle::after,.noUi-vertical .noUi-handle::before{display:none}.noUi-vertical .noUi-handle:focus{outline:0}.noUi-vertical .noUi-origin{top:0}.noUi-value{font-size:12px}.noUi-marker-horizontal.noUi-marker-large{height:6px}.noUi-marker-horizontal.noUi-marker{display:none}.noUi-target{background-color:#f6f6f6;border-color:#f6f6f6}.noUi-touch-area:focus{outline:0}#blue,#green,#red{margin:10px;display:inline-block;height:200px}#colorpicker{height:240px;width:310px;margin:0 auto;padding:10px;border:1px solid #e9e9ef}#result{margin:60px 26px;height:100px;width:100px;display:inline-block;vertical-align:top;border:1px solid #e9e9ef;-webkit-box-shadow:0 0 3px;box-shadow:0 0 3px;border-radius:7px}#red .noUi-connect{background:#ef6767}#green .noUi-connect{background:#34c38f}#blue .noUi-connect{background:#1c84ee}.form-control.keyboard{max-width:340px!important}#input-number,#input-select{padding:7px;margin:15px 5px 5px;width:70px}.example-val{font-size:12px;color:#74788d;display:block;margin:15px 0}.example-val:before{content:"Value: ";font-size:12px;font-weight:600}.noUi-tooltip{display:none}.noUi-active .noUi-tooltip{display:block}.c-1-color{background:#ef6767}.c-2-color{background:#ffcc5a}.c-3-color{background:#34c38f}.c-4-color{background:#1c84ee}.c-5-color{background:#6f42c1}#slider-toggle{height:50px}#slider-toggle.off .noUi-handle{border-color:#ef6767}body[data-layout-mode=dark] .noUi-target{background-color:#30373f;border-color:#30373f;-webkit-box-shadow:inset 0 1px 1px #30373f,0 3px 6px -5px #30373f;box-shadow:inset 0 1px 1px #30373f,0 3px 6px -5px #30373f}body[data-layout-mode=dark] .example-val{color:#858d98}.swal2-container .swal2-title{font-size:22px;font-weight:500}.swal2-modal{font-size:14px}.swal2-icon.swal2-question{border-color:#16daf1;color:#16daf1}.swal2-icon.swal2-success [class^=swal2-success-line]{background-color:#34c38f}.swal2-icon.swal2-success .swal2-success-ring{border-color:rgba(52,195,143,.3)}.swal2-icon.swal2-warning{border-color:#ffcc5a;color:#ffcc5a}.swal2-styled:focus{-webkit-box-shadow:none;box-shadow:none}.swal2-progress-steps .swal2-progress-step{background:#1c84ee}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#1c84ee}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step,.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:rgba(28,132,238,.3)}.swal2-progress-steps .swal2-progress-step-line{background:#1c84ee}.swal2-loader{border-color:#1c84ee transparent #1c84ee transparent}body[data-layout-mode=dark] .swal2-popup{background-color:#30373f!important}body[data-layout-mode=dark] .swal2-content{color:#adb5bd}body[data-layout-mode=dark] .swal2-html-container{color:#858d98}.alertify .ajs-header{font-weight:500}.alertify .ajs-dialog{-webkit-box-shadow:0 .25rem .75rem rgba(18,38,63,.08);box-shadow:0 .25rem .75rem rgba(18,38,63,.08);background-color:#fff}.alertify .ajs-dialog .ajs-footer,.alertify .ajs-dialog .ajs-header{background-color:#fff}.alertify .ajs-footer .ajs-buttons .ajs-button{font-weight:500}.alertify .ajs-footer .ajs-buttons .ajs-button.ajs-ok{color:#1c84ee}.alertify .ajs-footer .ajs-buttons.ajs-primary{text-align:right}.alertify .ajs-body .ajs-content .ajs-input:focus-visible{outline:0}.alertify .ajs-commands{right:4px;left:auto;margin:-14px 0 0 24px}.alertify-notifier .ajs-message{background-color:#1c84ee;border-color:#1c84ee;color:#fff;text-shadow:none!important}.alertify-notifier .ajs-message.ajs-success{background-color:#34c38f;border-color:#34c38f}.alertify-notifier .ajs-message.ajs-error{background-color:#ef6767;border-color:#ef6767}.alertify-notifier .ajs-message.ajs-warning{background-color:#ffcc5a;border-color:#ffcc5a}.alertify-notifier.ajs-right{right:10px;left:auto}.alertify-notifier.ajs-right .ajs-message{right:-320px;left:auto}.alertify-notifier.ajs-right .ajs-message.ajs-visible{right:290px;left:auto}.alertify-notifier.ajs-left{left:10px;right:auto}.alertify-notifier.ajs-left .ajs-message{left:-300px;right:auto}.alertify-notifier.ajs-left .ajs-message.ajs-visible{left:0;right:auto}body[data-layout-mode=dark] .alertify .ajs-dialog{background-color:#242a30}body[data-layout-mode=dark] .alertify .ajs-footer,body[data-layout-mode=dark] .alertify .ajs-header{color:#ced4da;background-color:#242a30;border-color:#30373f}body[data-layout-mode=dark] .alertify .ajs-body{color:#adb5bd}body[data-layout-mode=dark] .alertify .ajs-body .ajs-content .ajs-input{color:#adb5bd;background-color:#282f36;border:1px solid #30373f}body[data-layout-mode=dark] .alertify .ajs-footer .ajs-buttons .ajs-button{color:#adb5bd}body[data-layout-mode=dark] .alertify .ajs-footer .ajs-buttons .ajs-button.ajs-ok{color:#1c84ee}.pristine-error{margin-top:2px;color:#ef6767}.has-success .form-control{border-color:#34c38f}.has-danger .form-control{border-color:#ef6767}.choices__inner{padding:.25rem 2.5rem .25rem .5rem;background-color:#fff;vertical-align:middle;border-radius:.25rem;border:1px solid #e9e9ef!important;min-height:38px}.choices__list--dropdown{border:1px solid #e9e9ef!important;-webkit-box-shadow:0 .25rem .75rem rgba(18,38,63,.08);box-shadow:0 .25rem .75rem rgba(18,38,63,.08)}.choices[data-type*=select-one] .choices__inner{padding-bottom:.25rem}.choices[data-type*=select-one] .choices__button{right:0;left:auto;margin-right:25px;margin-left:0}.choices[data-type*=select-one]:after{border-color:#2b3940 transparent transparent;right:11.5px;left:auto}.choices[data-type*=select-one].is-open:after{border-color:transparent transparent #2b3940}.choices__input{background-color:#fff;margin-bottom:0}.choices__list--multiple{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.choices__list--multiple .choices__item{background-color:#1c84ee;border-color:#1c84ee;margin-bottom:0;margin-right:7px;font-weight:400}.choices__list--multiple .choices__item.is-highlighted{background-color:#1c84ee;border:1px solid #1c84ee}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#f6f6f6}.is-disabled .choices__list--multiple .choices__item{background-color:#74788d;border-color:#74788d}.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button{border-left:1px solid rgba(255,255,255,.5);margin:0 -4px 0 8px;border-right:0}body[data-layout-mode=dark] .choices__list--dropdown{border:1px solid #30373f!important}body[data-layout-mode=dark] .choices__heading{border:1px solid #30373f}body[data-layout-mode=dark] .choices__inner{color:#adb5bd;background-color:#282f36;border:1px solid #30373f!important}body[data-layout-mode=dark] .choices__input{background-color:#282f36;color:#adb5bd}body[data-layout-mode=dark] .choices[data-type*=select-one]:after{border-color:#adb5bd transparent transparent}body[data-layout-mode=dark] .choices[data-type*=select-one].is-open:after{border-color:transparent transparent #adb5bd}body[data-layout-mode=dark] .choices[data-type*=select-one] .choices__input{background-color:#282f36;border:1px solid #30373f;color:#adb5bd}body[data-layout-mode=dark] .choices__list--dropdown{background-color:#282f36;border-color:#30373f}body[data-layout-mode=dark] .choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#30373f}body[data-layout-mode=dark] .choices.is-disabled .choices__inner,body[data-layout-mode=dark] .choices.is-disabled .choices__input{background-color:#282f36}input[switch]{display:none}input[switch]+label{font-size:1em;line-height:1;width:56px;height:24px;background-color:#ced4da;background-image:none;border-radius:2rem;padding:.16667rem;cursor:pointer;display:inline-block;text-align:center;position:relative;font-weight:500;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}input[switch]+label:before{color:#2b3940;content:attr(data-off-label);display:block;font-family:inherit;font-weight:500;font-size:12px;line-height:21px;position:absolute;right:1px;margin:3px;top:-2px;text-align:center;min-width:1.66667rem;overflow:hidden;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}input[switch]+label:after{content:"";position:absolute;left:3px;background-color:#e9e9ef;-webkit-box-shadow:none;box-shadow:none;border-radius:2rem;height:20px;width:20px;top:2px;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}input[switch]:checked+label{background-color:#1c84ee}input[switch]:checked+label{background-color:#1c84ee}input[switch]:checked+label:before{color:#fff;content:attr(data-on-label);right:auto;left:3px}input[switch]:checked+label:after{left:33px;background-color:#e9e9ef}input[switch=bool]+label{background-color:#ef6767}input[switch=bool]+label:before,input[switch=bool]:checked+label:before,input[switch=default]:checked+label:before{color:#fff}input[switch=bool]:checked+label{background-color:#34c38f}input[switch=default]:checked+label{background-color:#a2a2a2}input[switch=primary]:checked+label{background-color:#1c84ee}input[switch=success]:checked+label{background-color:#34c38f}input[switch=info]:checked+label{background-color:#16daf1}input[switch=warning]:checked+label{background-color:#ffcc5a}input[switch=danger]:checked+label{background-color:#ef6767}input[switch=dark]:checked+label{background-color:#2b3940}input[switch=dark]:checked+label:before{color:#f6f6f6}.square-switch{margin-right:7px}.square-switch input[switch]+label,.square-switch input[switch]+label:after{border-radius:4px}.pcr-app{background:#fff}.pcr-app[data-theme=classic] .pcr-selection .pcr-color-preview{margin-right:.75em;margin-left:0}.pcr-app[data-theme=classic] .pcr-selection .pcr-color-chooser,.pcr-app[data-theme=classic] .pcr-selection .pcr-color-opacity{margin-left:.75em;margin-right:0}body[data-layout-mode=dark] .pcr-app{background-color:#30373f}.flatpickr-input[readonly]{background-color:#fff}.flatpickr-months,.flatpickr-weekdays{background-color:#1c84ee}span.flatpickr-weekday{color:#fff;font-weight:500}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background-color:transparent!important}.flatpickr-am-pm:focus,.flatpickr-am-pm:hover,.numInput:focus,.numInput:hover,.numInputWrapper:focus,.numInputWrapper:hover{background-color:transparent!important}.flatpickr-weekdays{height:36px!important;border-bottom:1px solid #e9e9ef}.flatpickr-day{color:#2b3940!important}.flatpickr-day:focus,.flatpickr-day:hover{background-color:rgba(246,246,246,.7)!important}.flatpickr-day.today{border-color:#1c84ee!important;background-color:rgba(28,132,238,.1)}.flatpickr-day.today:focus,.flatpickr-day.today:hover{color:#2b3940!important;background-color:rgba(28,132,238,.15)!important}.flatpickr-day.selected{background-color:#1c84ee!important;border-color:#1c84ee!important;color:#fff!important}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{color:rgba(43,57,64,.3)!important}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:focus,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:focus,.flatpickr-day:hover{background-color:#f6f6f6;border-color:#f6f6f6}.flatpickr-day.inRange{-webkit-box-shadow:-5px 0 0 #f6f6f6,5px 0 0 #f6f6f6;box-shadow:-5px 0 0 #f6f6f6,5px 0 0 #f6f6f6}.flatpickr-months .flatpickr-month,.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{color:rgba(255,255,255,.9)!important;fill:rgba(255,255,255,.9)!important}.flatpickr-monthDropdown-month{color:rgba(0,0,0,.8)}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{color:rgba(255,255,255,.9)!important}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator,.flatpickr-time input{color:#2b3940!important}.flatpickr-calendar{background-color:#fff!important;-webkit-box-shadow:1px 0 0 #e9e9ef,-1px 0 0 #e9e9ef,0 1px 0 #e9e9ef,0 -1px 0 #e9e9ef,0 3px 13px rgba(0,0,0,.08)!important;box-shadow:1px 0 0 #e9e9ef,-1px 0 0 #e9e9ef,0 1px 0 #e9e9ef,0 -1px 0 #e9e9ef,0 3px 13px rgba(0,0,0,.08)!important}.flatpickr-calendar.hasTime .flatpickr-time{border-top:1px solid #e9e9ef!important}.flatpickr-months{border-radius:5px 5px 0 0}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:rgba(255,255,255,.9)!important}body[data-layout-mode=dark] .flatpickr-calendar{background-color:#293037!important;-webkit-box-shadow:1px 0 0 #30373f,-1px 0 0 #30373f,0 1px 0 #30373f,0 -1px 0 #30373f,0 3px 13px rgba(0,0,0,.08)!important;box-shadow:1px 0 0 #30373f,-1px 0 0 #30373f,0 1px 0 #30373f,0 -1px 0 #30373f,0 3px 13px rgba(0,0,0,.08)!important}body[data-layout-mode=dark] .flatpickr-calendar.hasTime .flatpickr-time{border-top:1px solid #30373f!important}body[data-layout-mode=dark] .flatpickr-weekdays{border-color:#30373f}body[data-layout-mode=dark] .flatpickr-day{color:#adb5bd!important}body[data-layout-mode=dark] .flatpickr-day:focus,body[data-layout-mode=dark] .flatpickr-day:hover{background-color:rgba(48,55,63,.7)!important}body[data-layout-mode=dark] .flatpickr-day.today:focus,body[data-layout-mode=dark] .flatpickr-day.today:hover{color:#adb5bd!important}body[data-layout-mode=dark] .flatpickr-day.inRange,body[data-layout-mode=dark] .flatpickr-day.nextMonthDay.inRange,body[data-layout-mode=dark] .flatpickr-day.nextMonthDay.today.inRange,body[data-layout-mode=dark] .flatpickr-day.nextMonthDay:focus,body[data-layout-mode=dark] .flatpickr-day.nextMonthDay:hover,body[data-layout-mode=dark] .flatpickr-day.prevMonthDay.inRange,body[data-layout-mode=dark] .flatpickr-day.prevMonthDay.today.inRange,body[data-layout-mode=dark] .flatpickr-day.prevMonthDay:focus,body[data-layout-mode=dark] .flatpickr-day.prevMonthDay:hover,body[data-layout-mode=dark] .flatpickr-day.today.inRange,body[data-layout-mode=dark] .flatpickr-day:focus,body[data-layout-mode=dark] .flatpickr-day:hover{background-color:#30373f;border-color:#30373f}body[data-layout-mode=dark] .flatpickr-day.selected{background-color:#1c84ee!important;border-color:#1c84ee!important;color:#fff!important}body[data-layout-mode=dark] .flatpickr-day.flatpickr-disabled,body[data-layout-mode=dark] .flatpickr-day.flatpickr-disabled:hover,body[data-layout-mode=dark] .flatpickr-day.nextMonthDay,body[data-layout-mode=dark] .flatpickr-day.notAllowed,body[data-layout-mode=dark] .flatpickr-day.notAllowed.nextMonthDay,body[data-layout-mode=dark] .flatpickr-day.notAllowed.prevMonthDay,body[data-layout-mode=dark] .flatpickr-day.prevMonthDay{color:rgba(173,181,189,.3)!important}body[data-layout-mode=dark] .flatpickr-day.inRange{-webkit-box-shadow:-5px 0 0 #30373f,5px 0 0 #30373f;box-shadow:-5px 0 0 #30373f,5px 0 0 #30373f}body[data-layout-mode=dark] .flatpickr-time .flatpickr-am-pm,body[data-layout-mode=dark] .flatpickr-time .flatpickr-time-separator,body[data-layout-mode=dark] .flatpickr-time input{color:#adb5bd!important}body[data-layout-mode=dark] .flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#adb5bd}body[data-layout-mode=dark] .flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#adb5bd}.ck.ck-toolbar{background-color:rgba(246,246,246,.75)!important;border:1px solid #ced4da!important}.ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.ck.ck-toolbar .ck.ck-toolbar__separator{background:0 0!important}.ck.ck-editor__main>.ck-editor__editable{border-top:0!important;background-color:#fff!important;border-color:#ced4da!important;-webkit-box-shadow:0 .25rem .75rem rgba(18,38,63,.08)!important;box-shadow:0 .25rem .75rem rgba(18,38,63,.08)!important}.ck.ck-dropdown__panel,.ck.ck-list{background:#fff!important;border:1px solid #e9e9ef!important;-webkit-box-shadow:0 .25rem .75rem rgba(18,38,63,.08)!important;box-shadow:0 .25rem .75rem rgba(18,38,63,.08)!important}.ck.ck-reset_all,.ck.ck-reset_all *{color:#495057!important}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se{left:0;right:auto!important}.ck.ck-editor__editable_inline[dir=rtl]{text-align:left!important}.ck-editor__editable{min-height:245px!important}.ck.ck-button.ck-on:not(.ck-disabled):active,.ck.ck-button.ck-on:not(.ck-disabled):hover,a.ck.ck-button.ck-on:not(.ck-disabled):active,a.ck.ck-button.ck-on:not(.ck-disabled):hover{background:#f6f6f6!important;-webkit-box-shadow:none!important;box-shadow:none!important}.ck.ck-button:active,.ck.ck-button:focus,a.ck.ck-button:active,a.ck.ck-button:focus{background:#f6f6f6!important;border-color:#f6f6f6!important}.ck.ck-tooltip .ck-tooltip__text{background:#2b3940!important;color:#f6f6f6!important}.ck.ck-button:not(.ck-disabled):hover,.ck.ck-toolbar .ck.ck-button.ck-on,a.ck.ck-button.ck-on,a.ck.ck-button:not(.ck-disabled):hover{background:rgba(246,246,246,.75)!important}.ck.ck-list__item .ck-button .ck-button__label{font-family:"Be Vietnam Pro",sans-serif}.tox-tinymce{border:1px solid #ced4da!important}.tox .tox-collection__item{color:#495057!important}.tox .tox-collection--toolbar.tox-collection--toolbar-lg.tox-selected-menu,.tox .tox-menu.tox-collection.tox-collection--list.tox-selected-menu,.tox .tox-swatches-menu.tox-selected-menu{-webkit-box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important;box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important;-webkit-animation-name:DropDownSlide!important;animation-name:DropDownSlide!important;-webkit-animation-duration:.3s!important;animation-duration:.3s!important;-webkit-animation-fill-mode:both!important;animation-fill-mode:both!important;margin:0!important;position:absolute!important;z-index:1000!important;padding:.5rem 0!important;background-color:#fff!important;border:1px solid #e9e9ef!important;border-radius:.25rem!important}.tox .tox-collection--list .tox-collection__group{border-color:#e9e9ef!important}.tox .tox-collection--list .tox-collection__item--active{color:#343a40!important;background-color:#f8f9fa!important}.tox .tox-collection__group-heading{color:#343a40!important;background-color:#f8f9fa!important}.tox .tox-statusbar{border-top:1px solid #f6f6f6!important}.tox .tox-edit-area__iframe,.tox .tox-menubar,.tox .tox-statusbar{background-color:#fff!important;background:0 0!important}.tox .tox-mbtn{color:#495057!important}.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active){background-color:#f6f6f6!important}.tox .tox-tbtn:hover{background-color:#f6f6f6!important}.tox .tox-toolbar,.tox .tox-toolbar__overflow,.tox .tox-toolbar__primary{background:#f6f6f6!important}.tox .tox-toolbar__primary{border-top-color:#f6f6f6!important}.tox .tox-tbtn{color:#495057!important}.tox .tox-tbtn svg{fill:#495057!important}.tox .tox-edit-area__iframe{background-color:#fff!important}.tox .tox-statusbar a,.tox .tox-statusbar__path-item,.tox .tox-statusbar__wordcount{color:#495057!important}.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type){border-right:1px solid #e9e9e9!important}.tox .tox-collection--toolbar .tox-collection__item--active{background-color:#f6f6f6!important}body[data-layout-mode=dark] .ck.ck-toolbar{background-color:#30373f!important;border-color:#30373f!important}body[data-layout-mode=dark] .ck.ck-dropdown__panel,body[data-layout-mode=dark] .ck.ck-list{background-color:#293037!important;border-color:#293037!important;-webkit-box-shadow:0 .25rem .75rem rgba(18,38,63,.08)!important;box-shadow:0 .25rem .75rem rgba(18,38,63,.08)!important}body[data-layout-mode=dark] .ck.ck-editor__main>.ck-editor__editable{background-color:#242a30!important;border-color:#30373f!important}body[data-layout-mode=dark] .ck.ck-icon :not([fill]){fill:#adb5bd!important}body[data-layout-mode=dark] .ck.ck-reset_all,body[data-layout-mode=dark] .ck.ck-reset_all *{color:#858d98!important}body[data-layout-mode=dark] .ck .ck-input-text,body[data-layout-mode=dark] .ck .ck-label,body[data-layout-mode=dark] .ck .ck-link-form{background-color:#293037!important}body[data-layout-mode=dark] .ck.ck-button:active,body[data-layout-mode=dark] .ck.ck-button:focus,body[data-layout-mode=dark] a.ck.ck-button:active,body[data-layout-mode=dark] a.ck.ck-button:focus{border-color:#30373f!important}body[data-layout-mode=dark] .ck.ck-button:not(.ck-disabled):hover,body[data-layout-mode=dark] .ck.ck-toolbar .ck.ck-button.ck-on,body[data-layout-mode=dark] a.ck.ck-button.ck-on,body[data-layout-mode=dark] a.ck.ck-button:not(.ck-disabled):hover{background:rgba(133,141,152,.2)!important}body[data-layout-mode=dark] .tox-tinymce{border:1px solid #30373f!important}body[data-layout-mode=dark] .tox .tox-statusbar{border-top:1px solid #30373f!important}body[data-layout-mode=dark] .tox .tox-toolbar,body[data-layout-mode=dark] .tox .tox-toolbar__overflow,body[data-layout-mode=dark] .tox .tox-toolbar__primary{background:#2f373f!important;border-top:#2f373f!important}body[data-layout-mode=dark] .tox .tox-mbtn{color:#495057!important}body[data-layout-mode=dark] .tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active){background-color:transparent!important}body[data-layout-mode=dark] .tox .tox-tbtn:hover{background:0 0!important}body[data-layout-mode=dark] .tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type){border-right:1px solid #2f373f!important}body[data-layout-mode=dark] .tox-edit-area__iframe,body[data-layout-mode=dark] .tox-menubar,body[data-layout-mode=dark] .tox-statusbar{background-color:#242a30!important;background:0 0!important}[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.dropzone{min-height:230px;border:2px dashed #ced4da;background:#fff;border-radius:6px}.dropzone .dz-message{font-size:24px;width:100%}body[data-layout-mode=dark] .dropzone{background:#262d33;border-color:#30373f}.twitter-bs-wizard .twitter-bs-wizard-nav .step-icon{display:inline-block;width:56px;height:56px;line-height:56px;border:1px solid rgba(28,132,238,.2);color:#1c84ee;text-align:center;border-radius:50%;position:relative;z-index:1;font-size:20px}@media (max-width:575.98px){.twitter-bs-wizard .twitter-bs-wizard-nav .step-icon{width:40px;height:40px;line-height:38px}}.twitter-bs-wizard .twitter-bs-wizard-nav .step-title{margin-left:6px}.twitter-bs-wizard .twitter-bs-wizard-nav .nav-item:last-child .nav-link::after{display:none}.twitter-bs-wizard .twitter-bs-wizard-nav .nav-item .nav-link.done .step-icon{background-color:#1c84ee;color:#fff}.twitter-bs-wizard .twitter-bs-wizard-nav .nav-item .nav-link.done .uil:before{content:"\e9c3"}.twitter-bs-wizard .twitter-bs-wizard-nav .nav-link{font-size:14px;position:relative}@media (max-width:575.98px){.twitter-bs-wizard .twitter-bs-wizard-nav .nav-link{padding:.5rem}}.twitter-bs-wizard .twitter-bs-wizard-nav .nav-link::after{content:"";position:absolute;width:75%;height:2px;background-color:#e9e9ef;left:62%;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}@media (max-width:575.98px){.twitter-bs-wizard .twitter-bs-wizard-nav .nav-link::after{display:none}}.twitter-bs-wizard .twitter-bs-wizard-nav .nav-link.active{color:#495057;background-color:transparent}.twitter-bs-wizard .twitter-bs-wizard-nav .nav-link.active .step-icon{background-color:rgba(28,132,238,.2);color:#1c84ee;border-color:rgba(28,132,238,.2)}.twitter-bs-wizard .twitter-bs-wizard-pager-link{padding-top:24px;padding-left:0;list-style:none;margin-bottom:0}.twitter-bs-wizard .twitter-bs-wizard-pager-link li{display:inline-block}.twitter-bs-wizard .twitter-bs-wizard-pager-link li.next{float:right}.twitter-bs-wizard-tab-content{padding-top:24px;min-height:262px}body[data-layout-mode=dark] .twitter-bs-wizard .twitter-bs-wizard-nav .nav-link::after{background-color:#30373f}div.dataTables_wrapper div.dataTables_filter{text-align:right}@media (max-width:767px){div.dataTables_wrapper div.dataTables_filter{text-align:center}}div.dataTables_wrapper div.dataTables_filter input{margin-left:.5em;margin-right:0}.table.dataTable.dtr-inline.collapsed>tbody>tr>td,table.dataTable.dtr-inline.collapsed>tbody>tr>td{position:relative}.table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control{padding-left:30px}.table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control:before{top:50%;left:5px;height:14px;width:14px;margin-top:-9px;display:block;position:absolute;color:#fff;border:2px solid #fff;border-radius:14px;-webkit-box-sizing:content-box;box-sizing:content-box;text-align:center;text-indent:0!important;line-height:14px;content:"+";background-color:#1c84ee}.table.dataTable>thead>tr>td:not(.sorting_disabled),.table.dataTable>thead>tr>th:not(.sorting_disabled),table.dataTable>thead>tr>td:not(.sorting_disabled),table.dataTable>thead>tr>th:not(.sorting_disabled){padding-right:30px;padding-left:12px}.table.dataTable>thead .sorting::before,.table.dataTable>thead .sorting_asc::before,.table.dataTable>thead .sorting_asc_disabled::before,.table.dataTable>thead .sorting_desc::before,.table.dataTable>thead .sorting_desc_disabled::before,table.dataTable>thead .sorting::before,table.dataTable>thead .sorting_asc::before,table.dataTable>thead .sorting_asc_disabled::before,table.dataTable>thead .sorting_desc::before,table.dataTable>thead .sorting_desc_disabled::before{right:1em;left:auto}.table.dataTable>thead .sorting::after,.table.dataTable>thead .sorting_asc::after,.table.dataTable>thead .sorting_asc_disabled::after,.table.dataTable>thead .sorting_desc::after,.table.dataTable>thead .sorting_desc_disabled::after,table.dataTable>thead .sorting::after,table.dataTable>thead .sorting_asc::after,table.dataTable>thead .sorting_asc_disabled::after,table.dataTable>thead .sorting_desc::after,table.dataTable>thead .sorting_desc_disabled::after{right:.5em;left:auto}.select2-container .select2-selection--single{background-color:#fff;border:1px solid #ced4da;height:38px}.select2-container .select2-selection--single:focus{outline:0}.select2-container .select2-selection--single .select2-selection__rendered{line-height:36px;padding-left:12px;color:#495057}.select2-container .select2-selection--single .select2-selection__arrow{height:34px;width:34px;right:3px}.select2-container .select2-selection--single .select2-selection__arrow b{border-color:#adb5bd transparent transparent transparent;border-width:6px 6px 0 6px}.select2-container .select2-selection--single .select2-selection__placeholder{color:#495057}[dir=rtl] .select2-selection__rendered{text-align:end}.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #adb5bd transparent!important;border-width:0 6px 6px 6px!important}.select2-container--default .select2-search--dropdown{padding:10px;background-color:#fff}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #ced4da;background-color:#fff;color:#74788d;outline:0}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#1c84ee}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#f8f9fa;color:#2b3940}.select2-container--default .select2-results__option[aria-selected=true]:hover{background-color:#1c84ee;color:#fff}.select2-results__option{padding:6px 12px}.select2-dropdown{border:1px solid #e9e9ef;background-color:#fff;-webkit-box-shadow:0 .25rem .75rem rgba(18,38,63,.08);box-shadow:0 .25rem .75rem rgba(18,38,63,.08)}.select2-search input{border:1px solid #f6f6f6}.select2-container .select2-selection--multiple{min-height:38px;background-color:#fff;border:1px solid #ced4da!important}.select2-container .select2-selection--multiple .select2-selection__rendered{padding:2px 10px}.select2-container .select2-selection--multiple .select2-search__field{border:0;color:#495057}.select2-container .select2-selection--multiple .select2-search__field::-webkit-input-placeholder{color:#495057}.select2-container .select2-selection--multiple .select2-search__field::-moz-placeholder{color:#495057}.select2-container .select2-selection--multiple .select2-search__field:-ms-input-placeholder{color:#495057}.select2-container .select2-selection--multiple .select2-search__field::-ms-input-placeholder{color:#495057}.select2-container .select2-selection--multiple .select2-search__field::placeholder{color:#495057}.select2-container .select2-selection--multiple .select2-selection__choice{background-color:#e9e9ef;border:1px solid #f6f6f6;border-radius:1px;padding:0 7px}.select2-container--default.select2-container--focus .select2-selection--multiple{border-color:#ced4da}.select2-container--default .select2-results__group{font-weight:600}.select2-result-repository__avatar{float:left;width:60px;margin-right:10px}.select2-result-repository__avatar img{width:100%;height:auto;border-radius:2px}.select2-result-repository__statistics{margin-top:7px}.select2-result-repository__forks,.select2-result-repository__stargazers,.select2-result-repository__watchers{display:inline-block;font-size:11px;margin-right:1em;color:#adb5bd}.select2-result-repository__forks .fa,.select2-result-repository__stargazers .fa,.select2-result-repository__watchers .fa{margin-right:4px}.select2-result-repository__forks .fa.fa-flash::before,.select2-result-repository__stargazers .fa.fa-flash::before,.select2-result-repository__watchers .fa.fa-flash::before{content:"\f0e7";font-family:"Font Awesome 5 Free"}.select2-results__option--highlighted .select2-result-repository__forks,.select2-results__option--highlighted .select2-result-repository__stargazers,.select2-results__option--highlighted .select2-result-repository__watchers{color:rgba(255,255,255,.8)}.select2-result-repository__meta{overflow:hidden}.img-flag{margin-right:7px;height:15px;width:18px}body[data-layout-mode=dark] .select2-container .select2-selection--multiple{background-color:#282f36;color:#adb5bd;border:1px solid #30373f!important}body[data-layout-mode=dark] .select2-container .select2-selection--multiple .select2-search__field{background-color:#293037;border-color:#30373f}body[data-layout-mode=dark] .select2-container .select2-selection--multiple .select2-search__field::-webkit-input-placeholder{color:#adb5bd}body[data-layout-mode=dark] .select2-container .select2-selection--multiple .select2-search__field::-moz-placeholder{color:#adb5bd}body[data-layout-mode=dark] .select2-container .select2-selection--multiple .select2-search__field:-ms-input-placeholder{color:#adb5bd}body[data-layout-mode=dark] .select2-container .select2-selection--multiple .select2-search__field::-ms-input-placeholder{color:#adb5bd}body[data-layout-mode=dark] .select2-container .select2-selection--multiple .select2-search__field::placeholder{color:#adb5bd}body[data-layout-mode=dark] .select2-container .select2-selection--single{background-color:#282f36;border:1px solid #30373f}body[data-layout-mode=dark] .select2-container .select2-selection--single .select2-selection__rendered{color:#adb5bd}body[data-layout-mode=dark] .select2-container .select2-dropdown{background-color:#293037;border-color:#30373f;color:#adb5bd}body[data-layout-mode=dark] .select2-container--default .select2-search--dropdown{background-color:#293037;border-color:#30373f}body[data-layout-mode=dark] .select2-container--default .select2-search--dropdown .select2-search__field{background-color:#293037;border-color:#30373f}body[data-layout-mode=dark] .select2-container--default .select2-results__option[aria-selected=true]{background-color:#2f373f;color:#adb5bd}.table-rep-plugin .btn-toolbar{display:block}.table-rep-plugin .table-responsive{border:none!important}.table-rep-plugin .btn-group .btn-default{background-color:#74788d;color:#f6f6f6;border:1px solid #74788d}.table-rep-plugin .btn-group .btn-default.btn-primary{background-color:#1c84ee;border-color:#1c84ee;color:#fff;-webkit-box-shadow:0 0 0 2px rgba(28,132,238,.5);box-shadow:0 0 0 2px rgba(28,132,238,.5)}.table-rep-plugin .btn-group.pull-right{float:right}.table-rep-plugin .btn-group.pull-right .dropdown-menu{right:0;-webkit-transform:none!important;transform:none!important;top:100%!important}.table-rep-plugin tbody th{font-size:14px;font-weight:400}.table-rep-plugin .checkbox-row{padding-left:40px;color:#495057!important}.table-rep-plugin .checkbox-row:hover{background-color:#efeff3!important}.table-rep-plugin .checkbox-row label{display:inline-block;padding-left:5px;position:relative}.table-rep-plugin .checkbox-row label::before{-o-transition:.3s ease-in-out;-webkit-transition:.3s ease-in-out;background-color:#fff;border-radius:3px;border:1px solid #f6f6f6;content:"";display:inline-block;height:17px;left:0;margin-left:-20px;position:absolute;transition:.3s ease-in-out;width:17px;outline:0!important}.table-rep-plugin .checkbox-row label::after{color:#e9e9ef;display:inline-block;font-size:11px;height:16px;left:0;margin-left:-20px;padding-left:3px;padding-top:1px;position:absolute;top:-1px;width:16px}.table-rep-plugin .checkbox-row input[type=checkbox]{cursor:pointer;opacity:0;z-index:1;outline:0!important}.table-rep-plugin .checkbox-row input[type=checkbox]:disabled+label{opacity:.65}.table-rep-plugin .checkbox-row input[type=checkbox]:focus+label::before{outline-offset:-2px;outline:0}.table-rep-plugin .checkbox-row input[type=checkbox]:checked+label::after{content:"\f00c";font-family:"Font Awesome 5 Free";font-weight:900}.table-rep-plugin .checkbox-row input[type=checkbox]:disabled+label::before{background-color:#f8f9fa;cursor:not-allowed}.table-rep-plugin .checkbox-row input[type=checkbox]:checked+label::before{background-color:#1c84ee;border-color:#1c84ee}.table-rep-plugin .checkbox-row input[type=checkbox]:checked+label::after{color:#fff}.table-rep-plugin .fixed-solution .sticky-table-header{top:70px!important;background-color:#1c84ee}.table-rep-plugin .fixed-solution .sticky-table-header table{color:#fff}.table-rep-plugin .sticky-table-header,.table-rep-plugin table.focus-on tbody tr.focused td,.table-rep-plugin table.focus-on tbody tr.focused th{background:#1c84ee;border-color:#1c84ee;color:#fff}.table-rep-plugin .sticky-table-header table,.table-rep-plugin table.focus-on tbody tr.focused td table,.table-rep-plugin table.focus-on tbody tr.focused th table{color:#fff}@media (min-width:992px){body[data-layout=horizontal] .fixed-solution .sticky-table-header{top:120px!important}}.table-edits input,.table-edits select{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;border:1px solid #ced4da;background-color:#fff;color:#495057;border-radius:.25rem}.table-edits input:focus,.table-edits select:focus{outline:0;border-color:#b9bfc4}body[data-layout-mode=dark] .table-edits input,body[data-layout-mode=dark] .table-edits select{color:#adb5bd;background-color:#282f36;border:1px solid #30373f}body[data-layout-mode=dark] .table-edits input:focus,body[data-layout-mode=dark] .table-edits select:focus{border-color:#30373f}.apex-charts{min-height:10px!important}.apex-charts text{font-family:var(--bs-font-sans-serif)!important;fill:#adb5bd}.apex-charts .apexcharts-canvas{margin:0 auto}.apexcharts-tooltip-text,.apexcharts-tooltip-title{font-family:var(--bs-font-sans-serif)!important}.apexcharts-legend-series{font-weight:500}.apexcharts-gridline{pointer-events:none;stroke:#f8f9fa}.apexcharts-legend-text{color:#74788d!important;font-family:var(--bs-font-sans-serif)!important;font-size:13px!important}.apexcharts-pie-label{fill:#fff!important}.apexcharts-xaxis text,.apexcharts-yaxis text{font-family:var(--bs-font-sans-serif)!important;fill:#adb5bd}body[data-layout-mode=dark] .apexcharts-gridline{stroke:#293037}body[data-layout-mode=dark] .apexcharts-tooltip.apexcharts-theme-light{background-color:#242a30;border-color:#293037}body[data-layout-mode=dark] .apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title{background-color:#30373f;border-color:#363d46}body[data-layout-mode=dark] .apexcharts-legend-text{color:#adb5bd!important}body[data-layout-mode=dark] .apexcharts-grid-row+line,body[data-layout-mode=dark] .apexcharts-yaxis-texts-g.apexcharts-xaxis-inversed-texts-g+line{stroke:#363d46}body[data-layout-mode=dark] .apexcharts-heatmap-rect,body[data-layout-mode=dark] .apexcharts-pie-area,body[data-layout-mode=dark] .apexcharts-treemap-rect,body[data-layout-mode=dark] .apexcharts-xaxis line{stroke:#363d46}body[data-layout-mode=dark] .apexcharts-radialbar-track.apexcharts-track path{stroke:#363d46}body[data-layout-mode=dark] .apexcharts-radar-series.apexcharts-plot-series line,body[data-layout-mode=dark] .apexcharts-radar-series.apexcharts-plot-series polygon{fill:#30373f;stroke:#363d46}body[data-layout-mode=dark] .apexcharts-pie circle{stroke:#363d46}.e-charts{height:350px}.jqstooltip{-webkit-box-sizing:content-box;box-sizing:content-box;width:auto!important;height:auto!important;background-color:#343a40!important;-webkit-box-shadow:0 .5rem 1rem rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.1);padding:5px 10px!important;border-radius:3px;border-color:#2b3940!important}.jqsfield{color:#e9e9ef!important;font-size:12px!important;line-height:18px!important;font-family:var(--bs-font-sans-serif)!important;font-weight:500!important}body[data-layout-mode=dark] .jqstooltip{background-color:#e9e9ef!important;border-color:#e9e9ef!important}body[data-layout-mode=dark] .jqsfield{color:#30373f!important}.gmaps,.gmaps-panaroma{height:300px!important;background:#f8f9fa;border-radius:3px}.gmaps-overlay{display:block;text-align:center;color:#fff;font-size:16px;line-height:40px;background:#1c84ee;border-radius:4px;padding:10px 20px}.gmaps-overlay_arrow{left:50%;margin-left:-16px;width:0;height:0;position:absolute}.gmaps-overlay_arrow.above{bottom:-15px;border-left:16px solid transparent;border-right:16px solid transparent;border-top:16px solid #1c84ee}.gmaps-overlay_arrow.below{top:-15px;border-left:16px solid transparent;border-right:16px solid transparent;border-bottom:16px solid #1c84ee}.jvectormap-label{border:none;background:#343a40;color:#f8f9fa;font-family:var(--bs-font-sans-serif);font-size:.8125rem;padding:5px 8px}body[data-layout-mode=dark] .jvectormap-label{background:#e9e9ef;color:#242a30}.leaflet-map{height:300px}.leaflet-map.leaflet-container{z-index:1}.auth-bg{background-image:url(../images/auth-bg.jpg);background-position:center;background-size:cover;background-repeat:no-repeat}.auth-bg .bg-overlay{background:-webkit-gradient(linear,left top,left bottom,color-stop(30%,rgba(43,57,64,.5)),to(#2b3940));background:linear-gradient(to bottom,rgba(43,57,64,.5) 30%,#2b3940 100%);opacity:1}@media (min-width:768px){.auth-bg{height:100vh}}.auth-pass-inputgroup input[type=text]+.btn .mdi-eye-outline:before{content:"\f06d1"}.form-floating-custom{position:relative}.form-floating-custom>label{left:48px;margin-top:3px}.form-floating-custom>.form-control,.form-floating-custom>.form-select{padding-left:60px}.form-floating-custom .form-floating-icon{position:absolute;top:0;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:56px;color:#74788d}.form-floating-custom .form-floating-icon svg{width:20px;height:20px}.auth-full-page-content{min-height:100vh;background-color:#fff}.auth-logo .logo-txt{color:#2b3940;font-size:20px}.auth-pass-inputgroup input[type=input]+.btn .mdi-eye-outline:before{content:"\f06d1"}.bg-bubbles{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}.bg-bubbles li{position:absolute;list-style:none;display:block;width:40px;height:40px;border-radius:30px;background-color:rgba(255,255,255,.1);top:-50px;-webkit-animation:square 20s infinite;animation:square 20s infinite;-webkit-transition-timing-function:linear;transition-timing-function:linear}.bg-bubbles li:nth-child(1){left:10%}.bg-bubbles li:nth-child(2){left:20%;width:120px;height:120px;-webkit-animation-delay:2s;animation-delay:2s;-webkit-animation-duration:17s;animation-duration:17s}.bg-bubbles li:nth-child(3){left:25%;-webkit-animation-delay:4s;animation-delay:4s}.bg-bubbles li:nth-child(4){left:40%;width:80px;height:80px;-webkit-animation-duration:22s;animation-duration:22s}.bg-bubbles li:nth-child(5){left:70%;width:90px;height:90px}.bg-bubbles li:nth-child(6){left:70%;width:120px;height:120px;-webkit-animation-delay:3s;animation-delay:3s}.bg-bubbles li:nth-child(7){left:32%;width:150px;height:150px;-webkit-animation-delay:7s;animation-delay:7s}.bg-bubbles li:nth-child(8){left:55%;width:80px;height:80px;-webkit-animation-delay:15s;animation-delay:15s;-webkit-animation-duration:40s;animation-duration:40s}.bg-bubbles li:nth-child(9){left:25%;width:50px;height:50px;-webkit-animation-delay:2s;animation-delay:2s;-webkit-animation-duration:40s;animation-duration:40s}.bg-bubbles li:nth-child(10){left:90%;width:140px;height:140px;-webkit-animation-delay:11s;animation-delay:11s}@-webkit-keyframes square{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{-webkit-transform:translateY(1000px) rotate(600deg);transform:translateY(1000px) rotate(600deg)}}@keyframes square{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{-webkit-transform:translateY(1000px) rotate(600deg);transform:translateY(1000px) rotate(600deg)}}body[data-layout-mode=dark] .form-floating-custom .form-floating-icon{color:#858d98}body[data-layout-mode=dark] .auth-logo .logo-txt{color:#fff}body[data-layout-mode=dark] .auth-full-page-content{background-color:#242a30}.email-leftbar{width:236px;float:left;padding:20px;border-radius:5px}.email-rightbar{margin-left:260px}.chat-user-box p.user-title{color:#2b3940;font-weight:500}.chat-user-box p{font-size:12px}@media (max-width:767px){.email-leftbar{float:none;width:100%}.email-rightbar{margin:0}}.mail-list a{display:block;color:#74788d;line-height:24px;padding:8px 5px}.mail-list a.active{color:#ef6767;font-weight:500}.message-list{display:block;padding-left:0}.message-list li{position:relative;display:block;height:50px;line-height:50px;cursor:default;-webkit-transition-duration:.3s;transition-duration:.3s}.message-list li a{color:#74788d}.message-list li:hover{background:#f6f6f6;-webkit-transition-duration:50ms;transition-duration:50ms}.message-list li .col-mail{float:left;position:relative}.message-list li .col-mail-1{width:320px}.message-list li .col-mail-1 .checkbox-wrapper-mail,.message-list li .col-mail-1 .dot,.message-list li .col-mail-1 .star-toggle{display:block;float:left}.message-list li .col-mail-1 .dot{border:4px solid transparent;border-radius:100px;margin:22px 26px 0;height:0;width:0;line-height:0;font-size:0}.message-list li .col-mail-1 .checkbox-wrapper-mail{margin:15px 10px 0 20px}.message-list li .col-mail-1 .star-toggle{margin-top:18px;margin-left:5px}.message-list li .col-mail-1 .title{position:absolute;top:0;left:110px;right:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;margin-bottom:0}.message-list li .col-mail-2{position:absolute;top:0;left:320px;right:0;bottom:0}.message-list li .col-mail-2 .date,.message-list li .col-mail-2 .subject{position:absolute;top:0}.message-list li .col-mail-2 .subject{left:0;right:200px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.message-list li .col-mail-2 .date{right:0;width:170px;padding-left:80px}.message-list li.active,.message-list li.active:hover{-webkit-box-shadow:inset 3px 0 0 #1c84ee;box-shadow:inset 3px 0 0 #1c84ee}.message-list li.unread{background-color:#f6f6f6;font-weight:500;color:#212b31}.message-list li.unread a{color:#212b31;font-weight:500}.message-list .checkbox-wrapper-mail{cursor:pointer;height:20px;width:20px;position:relative;display:inline-block;-webkit-box-shadow:inset 0 0 0 1px #ced4da;box-shadow:inset 0 0 0 1px #ced4da;border-radius:1px}.message-list .checkbox-wrapper-mail input{opacity:0;cursor:pointer}.message-list .checkbox-wrapper-mail input:checked~label{opacity:1}.message-list .checkbox-wrapper-mail label{position:absolute;height:20px;width:20px;left:0;cursor:pointer;opacity:0;margin-bottom:0;-webkit-transition-duration:50ms;transition-duration:50ms;top:0}.message-list .checkbox-wrapper-mail label:before{content:"\f012c";font-family:"Material Design Icons";top:0;height:20px;color:#212b31;width:20px;position:absolute;margin-top:-16px;left:4px;font-size:13px}@media (max-width:575.98px){.message-list li .col-mail-1{width:200px}}.email-editor .ck-editor__editable_inline{min-height:200px!important}body[data-layout-mode=dark] .mail-list a{color:#858d98}body[data-layout-mode=dark] .mail-list a.active{color:#ef6767}body[data-layout-mode=dark] .chat-user-box p.user-title{color:#adb5bd}body[data-layout-mode=dark] .message-list li a{color:#858d98}body[data-layout-mode=dark] .message-list li:hover{background:#293037}body[data-layout-mode=dark] .message-list li.unread{background:#293037;color:#adb5bd}body[data-layout-mode=dark] .message-list .checkbox-wrapper-mail{-webkit-box-shadow:inset 0 0 0 1px #858d98;box-shadow:inset 0 0 0 1px #858d98}body[data-layout-mode=dark] .message-list .checkbox-wrapper-mail label::before{color:#adb5bd}@media (min-width:992px){.chat-leftsidebar{min-width:260px}}@media (min-width:1200px){.chat-leftsidebar{min-width:380px}}.chat-leftsidebar .chat-leftsidebar-nav .nav .nav-link.active{background-color:#1c84ee;color:#fff}.search-box .form-control{padding-left:40px}.search-box .search-icon{font-size:16px;position:absolute;left:13px;top:0;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.chat-noti-dropdown.active:before{content:"";position:absolute;width:8px;height:8px;background-color:#ef6767;border-radius:50%;right:0}.chat-noti-dropdown .btn{padding:6px;-webkit-box-shadow:none;box-shadow:none;font-size:20px}.chat-message-list{height:calc(100vh - 346px)}@media (min-width:992px){.chat-message-list{height:calc(100vh - 406px)}}.chat-list{margin:0}.chat-list li.active a{background-color:rgba(28,132,238,.075);border-color:transparent}.chat-list li a{display:block;padding:14px 16px;color:#74788d;-webkit-transition:all .4s;transition:all .4s;border-top:1px solid #e9e9ef;position:relative}.chat-list li a:hover{background-color:rgba(28,132,238,.075);border-color:transparent}.chat-list li .user-img{position:relative}.chat-list li .user-img .user-status{width:10px;height:10px;background-color:#adb5bd;border-radius:50%;border:2px solid #fff;position:absolute;left:0;bottom:0}.chat-list li .user-img.online .user-status{background-color:#34c38f}.chat-list li .user-img.away .user-status{background-color:#ffcc5a}.chat-list li.unread a{font-weight:600;color:#2b3940}.chat-list li .unread-message{position:absolute;display:inline-block;right:16px;top:33px}.contact-list{font-size:12px;text-transform:uppercase;color:#74788d;font-weight:600;margin-bottom:7px}.user-chat-nav .dropdown .nav-btn{height:36px;width:36px;line-height:36px;-webkit-box-shadow:none;box-shadow:none;padding:0;font-size:18px}.chat-conversation li{clear:both}.chat-conversation .chat-day-title{position:relative;text-align:center;margin-bottom:24px;border:none}.chat-conversation .chat-day-title .title{background-color:#fff;position:relative;z-index:1;padding:6px 24px}.chat-conversation .chat-day-title:before{content:"";position:absolute;width:100%;height:1px;left:0;right:0;background-color:#e9e9ef;top:10px}.chat-conversation .chat-day-title .badge{font-size:12px}.chat-conversation .conversation-list{margin-bottom:24px;position:relative;max-width:85%}.chat-conversation .conversation-list .ctext-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:10px}.chat-conversation .conversation-list .ctext-wrap-content{padding:12px 20px;background-color:#1c84ee;border-radius:8px;color:#fff;position:relative;margin-left:16px}.chat-conversation .conversation-list .ctext-wrap-content:before{content:"";position:absolute;border:5px solid transparent;border-right-color:#1c84ee;border-top-color:#1c84ee;left:-10px;top:10px}.chat-conversation .conversation-list .ctext-wrap-content .conversation-name .time{font-size:10px;position:absolute;right:-58px;bottom:0;color:#74788d;font-weight:400;opacity:0;-webkit-transition:all .4s;transition:all .4s}.chat-conversation .conversation-list .ctext-wrap-content .conversation-name .user-name{color:rgba(255,255,255,.5)}.chat-conversation .conversation-list .ctext-wrap-content:hover .time{opacity:1}.chat-conversation .conversation-list .dropdown .dropdown-toggle{font-size:18px;padding:4px;color:#74788d}@media (max-width:575.98px){.chat-conversation .conversation-list .dropdown .dropdown-toggle{display:none}}.chat-conversation .conversation-list .message-img{border-radius:.2rem;position:relative}.chat-conversation .conversation-list .message-img .message-img-list{position:relative}.chat-conversation .conversation-list .message-img img{max-width:120px}.chat-conversation .right .conversation-list{float:right;text-align:right}.chat-conversation .right .conversation-list .ctext-wrap .ctext-wrap-content{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2;background-color:rgba(246,246,246,.5);text-align:right;border-radius:8px;margin-left:0;margin-right:16px;color:#2b3940}.chat-conversation .right .conversation-list .ctext-wrap .ctext-wrap-content:before{border:5px solid transparent;border-top-color:rgba(246,246,246,.5);border-left-color:rgba(246,246,246,.5);left:auto;right:-10px}.chat-conversation .right .conversation-list .ctext-wrap .conversation-name{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.chat-conversation .right .conversation-list .ctext-wrap .conversation-name .time,.chat-conversation .right .conversation-list .ctext-wrap .conversation-name .user-name{color:#74788d}.chat-conversation .right .conversation-list .ctext-wrap .conversation-name .time{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1;margin-left:0;margin-right:8px;position:absolute;left:-58px;right:auto}.chat-conversation .right .conversation-list .ctext-wrap .conversation-name .user-name{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.chat-conversation .right .conversation-list .dropdown{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}@media (max-width:575.98px){.chat-send{min-width:auto}}body[data-layout=horizontal] .chat-message-list{height:calc(100vh - 346px)}@media (min-width:992px){body[data-layout=horizontal] .chat-message-list{height:calc(100vh - 476px)}}body[data-layout=horizontal] .chat-conversation{height:calc(100vh - 300px)}@media (min-width:992px){body[data-layout=horizontal] .chat-conversation{height:calc(100vh - 420px)}}body[data-layout-mode=dark] .chat-leftsidebar .chat-leftsidebar-nav .nav .nav-link.active{background-color:#242a30}body[data-layout-mode=dark] .chat-list li a{color:#858d98;border-color:#30373f}body[data-layout-mode=dark] .chat-list li .user-img .user-status{border-color:#30373f}body[data-layout-mode=dark] .chat-list li.unread a{color:#adb5bd}body[data-layout-mode=dark] .chat-conversation .chat-day-title .title{background-color:#242a30}body[data-layout-mode=dark] .chat-conversation .chat-day-title::before{background-color:#30373f}body[data-layout-mode=dark] .chat-conversation .right .conversation-list .ctext-wrap .ctext-wrap-content{background-color:rgba(48,55,63,.5);color:#adb5bd}body[data-layout-mode=dark] .chat-conversation .right .conversation-list .ctext-wrap .ctext-wrap-content::before{border-top-color:rgba(48,55,63,.5);border-left-color:rgba(48,55,63,.5)}body[data-layout-mode=dark] .chat-conversation .right .conversation-list .ctext-wrap .conversation-name .time,body[data-layout-mode=dark] .chat-conversation .right .conversation-list .ctext-wrap .conversation-name .user-name{color:#858d98}.slide-bg{height:100vh;background-position:center;background-size:cover;background-repeat:no-repeat}.coming-content{position:absolute;top:0;z-index:1;left:0;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.coming-content .app-search{max-width:340px}.preview-thumbsnav{position:absolute;bottom:14px;z-index:9;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);max-width:120px}.preview-thumbsnav .nav-img{cursor:pointer;padding:3px;background-color:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1)}@media (max-width:575.98px){.preview-thumbsnav .nav-img{display:none}}.preview-thumbsnav .swiper-slide-thumb-active .nav-img{background-color:#fff;border:1px solid #fff}.coming-box{width:25%}.coming-box:last-of-type .count-num::after{display:none}.counter-number{font-size:32px;font-weight:600;text-align:center;display:-webkit-box;display:-ms-flexbox;display:flex;gap:24px}@media (max-width:575.98px){.counter-number{font-size:18px}}.counter-number .count-title{position:relative;bottom:-120px;font-size:16px;font-weight:500;display:block;padding-bottom:6px;color:rgba(255,255,255,.5)}@media (max-width:575.98px){.counter-number .count-title{bottom:-95px;font-size:14px}}.count-num{background-color:rgba(255,255,255,.1);padding:16px 8px;position:relative;border-radius:4px;color:#fff}.count-num::after{content:":";font-size:20px;position:absolute;right:-16px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);color:#fff}body[data-layout-mode=dark] .count-num{background-color:#30373f}body[data-layout-mode=dark] .preview-thumbsnav .swiper-slide-thumb-active .nav-img{background-color:#30373f;border-color:#30373f}.search-box .form-control{border-radius:30px;padding-left:40px}.search-box .search-icon{font-size:16px;position:absolute;left:13px;top:0;line-height:38px}.product-list li a{display:block;padding:4px 0;color:#495057}.product-view-nav.nav-pills .nav-item{margin-left:4px}.product-view-nav.nav-pills .nav-link{width:36px;height:36px;font-size:16px;padding:0;line-height:36px;text-align:center;border-radius:50%}.product-ribbon{position:absolute;right:0;top:0}.product-detai-imgs .nav .nav-link{margin:7px 0}.product-detai-imgs .nav .nav-link.active{background-color:#f6f6f6}.product-color a{display:inline-block;text-align:center;color:#495057}.product-color a .product-color-item{margin:7px}.product-color a.active,.product-color a:hover{color:#1c84ee}.product-color a.active .product-color-item,.product-color a:hover .product-color-item{border-color:#1c84ee!important}.visa-card .visa-logo{line-height:.5}.visa-card .visa-pattern{position:absolute;font-size:385px;color:rgba(255,255,255,.05);line-height:.4;right:0;bottom:0}.checkout-tabs .nav-pills .nav-link{margin-bottom:24px;text-align:center;background-color:#fff;-webkit-box-shadow:0 .25rem .75rem rgba(18,38,63,.08);box-shadow:0 .25rem .75rem rgba(18,38,63,.08)}.checkout-tabs .nav-pills .nav-link.active{background-color:#1c84ee}.checkout-tabs .nav-pills .nav-link .check-nav-icon{font-size:36px}body[data-layout-mode=dark] .product-detai-imgs .nav .nav-link.active{background-color:#30373f}body[data-layout-mode=dark] .product-list li a{color:#e9e9ef}body[data-layout-mode=dark] .checkout-tabs .nav-pills .nav-link{background-color:#30373f}body[data-layout-mode=dark] .checkout-tabs .nav-pills .nav-link.active{background-color:#1c84ee}.timeline{position:relative;width:100%;padding:30px 0}@media (max-width:767.98px){.timeline{padding:0}}.timeline .timeline-end,.timeline .timeline-start,.timeline .timeline-year{position:relative;width:100%;text-align:center;z-index:1}.timeline .timeline-end p,.timeline .timeline-start p,.timeline .timeline-year p{display:inline-block;width:80px;height:80px;margin:0;padding:30px 0;text-align:center;background-color:#1c84ee;border-radius:100px;color:#fff;text-transform:uppercase}.timeline .timeline-year{margin:30px 0}.timeline .timeline-continue{position:relative;width:100%;padding:60px 0}.timeline .timeline-continue:after{position:absolute;content:"";width:1px;height:100%;top:0;left:50%;margin-left:-1px;background:#1c84ee}.timeline .timeline-icon{margin:42px 10px 0 10px}.timeline .timeline-left{text-align:right}.timeline .timeline-left .timeline-icon{text-align:left}.timeline .timeline-right{text-align:left}.timeline .timeline-right .timeline-icon{text-align:right}.timeline .timeline-icon::after{content:"";display:block;position:absolute;width:14px;height:14px;top:45px;background:#1c84ee;border-radius:15px;z-index:1}@media (min-width:768px){.timeline .event-content{padding-right:24px}.timeline .timeline-text{margin-right:40px}}.timeline .timeline-left .timeline-icon::after{left:-7px}@media (min-width:768px){.timeline .timeline-left .event-content{padding-right:0;padding-left:24px}.timeline .timeline-left .timeline-text{margin-right:0;margin-left:40px}.timeline .timeline-left .event-img{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}}.timeline .timeline-right .timeline-icon::after{right:-7px}.timeline .timeline-box{position:relative;display:inline-block;margin:15px;padding:20px;background-color:#fff;-webkit-box-shadow:0 .25rem .75rem rgba(18,38,63,.08);box-shadow:0 .25rem .75rem rgba(18,38,63,.08);border-radius:6px}.timeline .timeline-box::after{content:"";position:absolute;width:16px;height:16px;top:26px;background-color:#fff;border:1px solid #f6f6f6;-webkit-transform:rotate(45deg);transform:rotate(45deg);margin:0 auto}.timeline .timeline-launch{position:relative;display:inline-block;margin:15px;padding:20px;border:1px solid #e9e9ef;border-radius:6px;width:100%;margin:15px 0;padding:0;border:none;text-align:center;background:0 0}.timeline-date{right:20px}@media (max-width:767.98px){.timeline-date{left:-70px;right:auto}}.timeline-left .timeline-date{left:20px}@media (max-width:767.98px){.timeline-left .timeline-date{left:-70px;right:auto}}.timeline .timeline-date{width:54px;height:80px;display:inline-block;padding:8px;-webkit-clip-path:polygon(0 0,100% 0,100% 80%,50% 100%,0 80%);clip-path:polygon(0 0,100% 0,100% 80%,50% 100%,0 80%);top:-10px;position:absolute;z-index:1}@media (max-width:767.98px){.timeline .timeline-date{top:0}}.timeline .timeline-right .timeline-box::after{border-color:transparent transparent #f6f6f6 #f6f6f6;left:-8px;right:100%}.timeline .timeline-left .timeline-box::after{border-color:#f6f6f6 #f6f6f6 transparent transparent;right:-8px}.timeline .timeline-launch .timeline-box::after{top:-8px;left:32px;border-color:#f6f6f6 transparent transparent #f6f6f6}@media (min-width:768px){.timeline .timeline-launch .timeline-box::after{left:50%;-webkit-transform:rotate(45deg) translateX(-50%);transform:rotate(45deg) translateX(-50%);top:-2px}}.timeline .timeline-launch .timeline-text{width:100%}@media (max-width:767px){.timeline .timeline-continue::after{left:40px}.timeline .timeline-end,.timeline .timeline-start,.timeline .timeline-year{text-align:left}.timeline .row.timeline-left{text-align:left}.timeline .row.timeline-left .timeline-icon{text-align:left}.timeline .row.timeline-right{text-align:left}.timeline .row.timeline-right .timeline-icon{text-align:left}.timeline .timeline-launch{text-align:left;margin-bottom:0}.timeline .row.timeline-left .timeline-icon::after{left:43px}.timeline .row.timeline-right .timeline-icon::after{left:43px}.timeline .timeline-box{margin-left:82px;margin-right:0}.timeline .row.timeline-right .timeline-icon{margin-left:55px}.timeline .row.timeline-left .timeline-icon{margin-left:55px}.timeline .timeline-launch .timeline-box{margin-left:0;margin-bottom:0}.timeline .row.timeline-left .timeline-box::after{left:-8px;border-color:transparent transparent #f6f6f6 #f6f6f6;right:auto}}body[data-layout-mode=dark] .timeline .timeline-box{border-color:#30373f;background-color:#242a30}body[data-layout-mode=dark] .timeline .timeline-box:after{background-color:#242a30}body[data-layout-mode=dark] .timeline .timeline-left .timeline-box:after{border-color:#30373f #30373f transparent transparent}body[data-layout-mode=dark] .timeline .timeline-right .timeline-box:after{border-color:transparent transparent #30373f #30373f}body[data-layout-mode=dark] .timeline .timeline-launch .timeline-box::after{border-color:#30373f transparent transparent #30373f}.profile-user{background-image:url(../images/profile_default_bg.jpg);background-position:center;background-size:cover;background-repeat:no-repeat;margin:-24px -24px 23px -24px;padding:140px 0;position:relative}.profile-user:after{background:-webkit-gradient(linear,left top,left bottom,color-stop(30%,rgba(43,57,64,.5)),to(#2b3940));background:linear-gradient(to bottom,rgba(43,57,64,.5) 30%,#2b3940 100%);position:absolute;height:100%;width:100%;right:0;bottom:0;left:0;top:0;opacity:.5;content:""}.profile-content{position:relative;margin-top:-60px}.maintenance-cog-icon .cog-icon{position:relative;bottom:24px;right:14px}.pricing-badge{position:absolute;top:0;z-index:9;right:0;width:100%;display:block;font-size:15px;padding:0;overflow:hidden;height:100px}.pricing-badge .badge{float:right;-webkit-transform:rotate(45deg);transform:rotate(45deg);right:-67px;top:17px;position:relative;text-align:center;width:200px;font-size:13px;margin:0;padding:7px 10px;font-weight:500;color:#1c84ee;background:#fff}.pricing-tab-box .nav-link{padding:16px 20px;border:1px solid #e9e9ef;background:#fff}.pricing-tab-box .nav-link.active{border:1px solid #1c84ee;padding:16px 20px;background:#fff}.pricing-tab-box .nav-link.active i{color:#1c84ee}.pricing-tab-box .nav-link.active i:before{content:"\e9a8"}.pricing-tab-box .nav-link.active h1{color:#1c84ee}.pricing-table-bg{background:#fff}body[data-layout-mode=dark] .pricing-tab-box .nav-link{border-color:#30373f;background:#242a30}body[data-layout-mode=dark] .pricing-tab-box .nav-link.active{border-color:#1c84ee;background:#242a30}body[data-layout-mode=dark] .pricing-table-bg{background:#242a30}.error-title{text-transform:uppercase;background:repeating-linear-gradient(45deg,#1c84ee,#1c84ee 20px,#34c38f 40px,#34c38f 10px);-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-size:12rem;line-height:.8;position:relative} +/*# sourceMappingURL=app.min.css.map */ diff --git a/static/css/app.min.css.map b/static/css/app.min.css.map new file mode 100644 index 0000000..5b1309e --- /dev/null +++ b/static/css/app.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["custom/fonts/_fonts.scss","custom/structure/_general.scss","app.css","custom/structure/_topbar.scss","custom/structure/_page-head.scss","custom/structure/_footer.scss","custom/structure/_right-sidebar.scss","../../node_modules/bootstrap/scss/mixins/_breakpoints.scss","custom/structure/_vertical.scss","custom/structure/_horizontal-nav.scss","custom/structure/_layouts.scss","custom/components/_waves.scss","custom/components/_accordion.scss","custom/components/_avatar.scss","custom/components/_helper.scss","custom/components/_modals.scss","custom/components/_forms.scss","custom/components/_widgets.scss","custom/components/_toasts.scss","custom/components/_demos.scss","custom/components/_print.scss","custom/plugins/_custom-scrollbar.scss","custom/plugins/_bootstrap-touchspin.scss","custom/plugins/_calendar.scss","custom/plugins/_session-timeout.scss","custom/plugins/_range-slider.scss","custom/plugins/_sweatalert2.scss","custom/plugins/_alertify.scss","custom/plugins/_pristinejs.scss","custom/plugins/_choices.scss","custom/plugins/_switch.scss","custom/plugins/_colorpicker.scss","custom/plugins/_datepicker.scss","custom/plugins/_form-editors.scss","custom/plugins/_form-upload.scss","custom/plugins/_form-wizard.scss","custom/plugins/_datatable.scss","custom/plugins/_select2.scss","custom/plugins/_responsive-table.scss","custom/plugins/_table-editable.scss","custom/plugins/_apexcharts.scss","custom/plugins/_echarts.scss","custom/plugins/_sparkline-chart.scss","custom/plugins/_google-map.scss","custom/plugins/_vector-maps.scss","custom/plugins/_leaflet-maps.scss","custom/pages/_authentication.scss","custom/pages/_email.scss","custom/pages/_chat.scss","custom/pages/_coming-soon.scss","custom/pages/_ecommerce.scss","custom/pages/_timeline.scss","custom/pages/_profile.scss","custom/pages/_extras-pages.scss"],"names":[],"mappings":"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","file":"app.min.css","sourcesContent":["//\r\n// Google font - Work Sans\r\n//\r\n\r\n@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@300;400;500;600;700&display=swap');","\r\nbody[data-layout-mode=\"dark\"] {\r\n background-color: $gray-dark-100;\r\n color: $gray-dark-600;\r\n\r\n .h1,.h2,.h3,.h4,.h5,.h6,\r\n h1,h2,h3,h4,h5,h6 {\r\n color: $gray-dark-600;\r\n }\r\n}","\n@import url(\"https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@300;400;500;600;700&display=swap\");\nbody[data-layout-mode=dark] {\n background-color: #191e22;\n color: #ced4da;\n}\nbody[data-layout-mode=dark] .h1, body[data-layout-mode=dark] .h2, body[data-layout-mode=dark] .h3, body[data-layout-mode=dark] .h4, body[data-layout-mode=dark] .h5, body[data-layout-mode=dark] .h6,\nbody[data-layout-mode=dark] h1, body[data-layout-mode=dark] h2, body[data-layout-mode=dark] h3, body[data-layout-mode=dark] h4, body[data-layout-mode=dark] h5, body[data-layout-mode=dark] h6 {\n color: #ced4da;\n}\n\n#page-topbar {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1002;\n background-color: #ffffff;\n border-bottom: 1px solid #e9e9ef;\n box-shadow: 0 0.25rem 0.75rem rgba(18, 38, 63, 0.08);\n}\n\n.navbar-header {\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n align-items: center;\n margin: 0 auto;\n height: 70px;\n padding: 0 24px 0 0;\n}\n.navbar-header .dropdown .show.header-item {\n background-color: #f8f9fa;\n}\n\n.navbar-brand-box {\n padding: 0 1.5rem;\n width: 250px;\n background: #ffffff;\n border-right: 1px solid transparent;\n}\n\n.logo {\n line-height: 69px;\n color: inherit !important;\n}\n.logo .logo-sm {\n display: none;\n}\n\n.logo-txt {\n font-weight: 700;\n font-size: 18px;\n vertical-align: middle;\n margin-left: 5px;\n text-transform: uppercase;\n}\n\n.logo-light {\n display: none;\n}\n\nbody:not([data-sidebar-size=sm]) #vertical-menu-btn {\n margin-left: -52px;\n margin-right: 20px;\n}\n@media (max-width: 991.98px) {\n body:not([data-sidebar-size=sm]) #vertical-menu-btn {\n margin-left: 0;\n }\n}\n\n/* Search */\n.app-search {\n padding: calc(30px / 2) 0;\n position: relative;\n}\n.app-search .form-control {\n border: none;\n height: 40px;\n padding-left: 17px;\n padding-right: 50px;\n background-color: #f3f3f9;\n box-shadow: none;\n}\n.app-search .btn {\n position: absolute;\n right: 3px;\n top: 3px;\n height: 34px;\n padding: 0 10px;\n}\n\n.layout-mode-light {\n display: none;\n}\n\nbody[data-layout-mode=dark] .layout-mode-dark {\n display: none;\n}\nbody[data-layout-mode=dark] .layout-mode-light {\n display: inline-block;\n}\n\n.megamenu-list li {\n position: relative;\n padding: 5px 0px;\n}\n.megamenu-list li a {\n color: #495057;\n}\n\n@media (max-width: 992px) {\n .navbar-brand-box {\n width: auto;\n }\n\n .logo span.logo-lg {\n display: none;\n }\n .logo span.logo-sm {\n display: inline-block;\n }\n}\n.page-content {\n padding: calc(70px + 24px) calc(24px / 2) 60px calc(24px / 2);\n}\n\n.header-item {\n height: 70px;\n box-shadow: none !important;\n color: #555b6d;\n border: 0;\n border-radius: 0px;\n}\n.header-item:hover {\n color: #555b6d;\n}\n\n.header-profile-user {\n height: 36px;\n width: 36px;\n background-color: #74788d;\n padding: 3px;\n}\n\n.noti-icon i {\n font-size: 22px;\n color: #555b6d;\n}\n.noti-icon .badge {\n position: absolute;\n top: 12px;\n right: 4px;\n}\n\n.notification-item .d-flex {\n padding: 0.75rem 1rem;\n}\n.notification-item .d-flex:hover {\n background-color: #f8f9fa;\n}\n\n.dropdown-icon-item {\n display: block;\n border-radius: 3px;\n line-height: 34px;\n text-align: center;\n padding: 15px 0 9px;\n display: block;\n color: #74788d;\n}\n.dropdown-icon-item img {\n height: 24px;\n}\n.dropdown-icon-item span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.dropdown-icon-item:hover {\n background-color: #f8f9fa;\n}\n\n.fullscreen-enable [data-toggle=fullscreen] .bx-fullscreen::before {\n content: \"\\ea3f\";\n}\n\nbody[data-topbar=dark] #page-topbar {\n background-color: #1c84ee;\n border-color: #1c84ee;\n box-shadow: 0 0.2rem 0.5rem rgba(18, 38, 63, 0.3);\n}\nbody[data-topbar=dark] .navbar-brand-box {\n background-color: #1c84ee;\n border-color: #1c84ee;\n}\nbody[data-topbar=dark] .navbar-brand-box .logo {\n color: #fff !important;\n}\nbody[data-topbar=dark] .navbar-header .dropdown .show.header-item {\n background-color: rgba(255, 255, 255, 0.05);\n}\nbody[data-topbar=dark] .navbar-header .waves-effect .waves-ripple {\n background: rgba(255, 255, 255, 0.4);\n}\nbody[data-topbar=dark] .header-item {\n color: #e9ecef;\n}\nbody[data-topbar=dark] .header-item:hover {\n color: #e9ecef;\n}\nbody[data-topbar=dark] .header-item.border-start, body[data-topbar=dark] .header-item.border-end {\n border-color: rgba(255, 255, 255, 0.1) !important;\n}\nbody[data-topbar=dark] .header-item.bg-soft-light {\n background-color: rgba(255, 255, 255, 0.04) !important;\n}\nbody[data-topbar=dark] .header-profile-user {\n background-color: rgba(255, 255, 255, 0.25);\n}\nbody[data-topbar=dark] .noti-icon i {\n color: #e9ecef;\n}\nbody[data-topbar=dark] .logo-dark {\n display: none;\n}\nbody[data-topbar=dark] .logo-light {\n display: block;\n}\nbody[data-topbar=dark] .app-search .form-control {\n background-color: rgba(243, 243, 249, 0.1);\n color: #fff;\n}\nbody[data-topbar=dark] .app-search span,\nbody[data-topbar=dark] .app-search input.form-control::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n\n@media (max-width: 600px) {\n .navbar-header .dropdown {\n position: static;\n }\n .navbar-header .dropdown .dropdown-menu {\n left: 10px !important;\n right: 10px !important;\n }\n}\n@media (max-width: 380px) {\n .navbar-brand-box {\n display: none;\n }\n}\nbody[data-layout=horizontal] #page-topbar {\n box-shadow: none;\n}\nbody[data-layout=horizontal] .navbar-brand-box {\n width: auto;\n border: 0;\n background-color: transparent;\n box-shadow: none;\n}\n@media (min-width: 992px) {\n body[data-layout=horizontal] .navbar-brand-box {\n padding-left: 0;\n margin-right: 10px;\n }\n}\nbody[data-layout=horizontal] .page-content {\n margin-top: 70px;\n padding: calc(55px + 24px) calc(24px / 2) 60px calc(24px / 2);\n}\n@media (min-width: 992px) {\n body[data-layout=horizontal] .navbar-header {\n padding-left: 24px;\n padding-right: 24px;\n }\n}\nbody[data-layout=horizontal][data-sidebar=dark] .navbar-brand-box {\n background-color: transparent;\n box-shadow: none;\n}\n\n@media (max-width: 992px) {\n body[data-layout=horizontal] .page-content {\n margin-top: 15px;\n }\n}\nbody[data-layout-mode=dark] .header-item.border-start, body[data-layout-mode=dark] .header-item.border-end {\n border-color: rgba(255, 255, 255, 0.1) !important;\n}\nbody[data-layout-mode=dark] .header-item.bg-soft-light {\n background-color: rgba(255, 255, 255, 0.04) !important;\n}\nbody[data-layout-mode=dark] #page-topbar {\n background-color: #282f36;\n border-color: #282f36;\n}\nbody[data-layout-mode=dark] .app-search .form-control {\n color: #adb5bd;\n background-color: #2f373f;\n border: 1px solid #2f373f;\n}\nbody[data-layout-mode=dark] .notification-item .d-flex:hover {\n background-color: #2d343c;\n}\nbody[data-layout-mode=dark] .dropdown-icon-item {\n color: #adb5bd;\n}\nbody[data-layout-mode=dark] .dropdown-icon-item:hover {\n background-color: #30373f;\n}\n@media (min-width: 992px) {\n body[data-layout-mode=dark][data-sidebar=light][data-topbar=light] .navbar-brand-box .logo {\n color: #2b3940 !important;\n }\n body[data-layout-mode=dark][data-sidebar=light][data-topbar=light] #vertical-menu-btn {\n color: #2b3940;\n }\n}\n\nbody[data-layout-mode=dark][data-topbar=light] .navbar-brand-box {\n background: #ffffff;\n border-right: none;\n box-shadow: none;\n}\nbody[data-layout-mode=dark][data-topbar=light] .navbar-brand-box .logo {\n color: #2b3940 !important;\n}\nbody[data-layout-mode=dark][data-topbar=light] .logo-light {\n display: none;\n}\nbody[data-layout-mode=dark][data-topbar=light] .logo-dark {\n display: block;\n}\nbody[data-layout-mode=dark][data-topbar=light] #vertical-menu-btn {\n color: #2b3940 !important;\n}\nbody[data-layout-mode=dark][data-topbar=light] .header-item {\n color: #555b6d;\n}\nbody[data-layout-mode=dark][data-topbar=light] .header-item:hover {\n color: #555b6d;\n}\nbody[data-layout-mode=dark][data-topbar=light] .header-item.border-start, body[data-layout-mode=dark][data-topbar=light] .header-item.border-end {\n border-color: rgba(43, 57, 64, 0.1) !important;\n}\nbody[data-layout-mode=dark][data-topbar=light] .header-item.bg-soft-light {\n background-color: rgba(43, 57, 64, 0.04) !important;\n}\nbody[data-layout-mode=dark][data-topbar=light] #page-topbar {\n background-color: #ffffff;\n border-color: #f6f6f6;\n}\nbody[data-layout-mode=dark][data-topbar=light] .dropdown-icon-item {\n color: #adb5bd;\n}\nbody[data-layout-mode=dark][data-topbar=light] .dropdown-icon-item:hover {\n background-color: #f6f6f6;\n}\nbody[data-layout-mode=dark][data-topbar=light] .app-search .form-control {\n color: #adb5bd;\n background-color: #efeff3;\n border: 1px solid #f6f6f6;\n}\nbody[data-layout-mode=dark][data-topbar=light] .header-profile-user {\n background-color: #74788d;\n}\nbody[data-layout-mode=dark][data-topbar=light] .noti-icon i {\n color: #555b6d;\n}\nbody[data-layout-mode=dark][data-topbar=light] .notification-item .d-flex:hover {\n background-color: #f8f9fa;\n}\n\n.page-title-box {\n padding-bottom: 24px;\n}\n.page-title-box .breadcrumb {\n background-color: transparent;\n padding: 0;\n}\n\n.footer {\n bottom: 0;\n padding: 20px calc(24px / 2);\n position: absolute;\n right: 0;\n color: #74788d;\n left: 250px;\n height: 60px;\n background-color: #ffffff;\n border-top: 1px solid #e9e9ef;\n}\n@media (max-width: 991.98px) {\n .footer {\n left: 0;\n }\n}\n\nbody[data-sidebar-size=sm] .footer {\n left: 70px;\n}\n@media (max-width: 991.98px) {\n body[data-sidebar-size=sm] .footer {\n left: 0;\n }\n}\n\nbody[data-layout=horizontal] .footer {\n left: 0 !important;\n}\n\nbody[data-layout-mode=dark] .footer {\n background-color: #242a30;\n color: #adb5bd;\n border-color: #293037;\n}\n\n.right-bar {\n background-color: #fff;\n box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02);\n display: block;\n position: fixed;\n transition: all 200ms ease-out;\n width: 300px;\n z-index: 9999;\n float: right !important;\n right: -310px;\n top: 0;\n bottom: 0;\n}\n.right-bar .right-bar-toggle {\n background-color: #394c55;\n height: 24px;\n width: 24px;\n line-height: 24px;\n display: block;\n color: #e9e9ef;\n text-align: center;\n border-radius: 50%;\n}\n.right-bar .right-bar-toggle:hover {\n background-color: #3f545f;\n}\n\n.rightbar-overlay {\n background-color: rgba(43, 57, 64, 0.55);\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n display: none;\n z-index: 9998;\n transition: all 0.2s ease-out;\n}\n\n.right-bar-enabled .right-bar {\n right: 0;\n}\n.right-bar-enabled .rightbar-overlay {\n display: block;\n}\n\n@media (max-width: 767.98px) {\n .right-bar {\n overflow: auto;\n }\n .right-bar .slimscroll-menu {\n height: auto !important;\n }\n}\nbody[data-layout-mode=dark] .right-bar {\n background-color: #242a30;\n}\n\n.metismenu {\n margin: 0;\n}\n.metismenu li {\n display: block;\n width: 100%;\n}\n.metismenu .mm-collapse {\n display: none;\n}\n.metismenu .mm-collapse:not(.mm-show) {\n display: none;\n}\n.metismenu .mm-collapse.mm-show {\n display: block;\n}\n.metismenu .mm-collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition-timing-function: ease;\n transition-duration: 0.35s;\n transition-property: height, visibility;\n}\n\n.vertical-menu {\n width: 250px;\n z-index: 1001;\n background: #ffffff;\n bottom: 0;\n margin-top: 0;\n position: fixed;\n top: 70px;\n border-right: 1px solid transparent;\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);\n}\n\n.main-content {\n margin-left: 250px;\n overflow: hidden;\n}\n.main-content .content {\n padding: 0 15px 10px 15px;\n margin-top: 70px;\n}\n\n#sidebar-menu {\n padding: 10px 0 30px 0;\n}\n#sidebar-menu .mm-active > .has-arrow:after {\n transform: rotate(90deg);\n}\n#sidebar-menu .has-arrow:after {\n content: \"\\f0142\";\n font-family: \"Material Design Icons\";\n display: block;\n float: right;\n transition: transform 0.2s;\n font-size: 1.1rem;\n margin-right: -5px;\n margin-top: -2px;\n}\n#sidebar-menu ul li a {\n display: block;\n padding: 0.675rem 1.5rem;\n color: #545a6d;\n position: relative;\n font-size: 0.845rem;\n transition: all 0.4s;\n}\n#sidebar-menu ul li a i {\n display: inline-block;\n min-width: 1.75rem;\n padding-bottom: 0.125em;\n font-size: 1.25rem;\n line-height: 1.40625rem;\n vertical-align: middle;\n color: #545a6d;\n transition: all 0.4s;\n}\n#sidebar-menu ul li a svg {\n height: 18px;\n width: 18px;\n color: #545a6d;\n margin-right: 10px;\n margin-top: -3px;\n}\n#sidebar-menu ul li a:hover {\n color: #1c84ee;\n}\n#sidebar-menu ul li a:hover i {\n color: #1c84ee;\n}\n#sidebar-menu ul li a:hover svg {\n color: #1c84ee;\n}\n#sidebar-menu ul li .badge {\n margin-top: 4px;\n}\n#sidebar-menu ul li ul.sub-menu {\n padding: 0;\n}\n#sidebar-menu ul li ul.sub-menu li a {\n padding: 0.425rem 1.5rem 0.425rem 3.5rem;\n font-size: 0.825rem;\n color: #545a6d;\n}\n#sidebar-menu ul li ul.sub-menu li a:hover {\n color: #1c84ee;\n}\n#sidebar-menu ul li ul.sub-menu li ul.sub-menu {\n padding: 0;\n}\n#sidebar-menu ul li ul.sub-menu li ul.sub-menu li a {\n padding: 0.4rem 1.5rem 0.4rem 4.5rem;\n font-size: 13px;\n}\n\n.menu-title {\n padding: 12px 20px !important;\n pointer-events: none;\n cursor: default;\n font-size: 12px;\n color: #545a6d;\n font-weight: 500;\n}\n\n.mm-active > a {\n color: #1c84ee !important;\n}\n.mm-active > a i {\n color: #1c84ee !important;\n}\n.mm-active > a svg {\n color: #1c84ee !important;\n}\n.mm-active .active {\n color: #1c84ee !important;\n}\n.mm-active .active i {\n color: #1c84ee !important;\n}\n.mm-active .active svg {\n color: #1c84ee !important;\n}\n.mm-active > i {\n color: #1c84ee !important;\n}\n\n.sidebar-alert {\n background-color: rgba(28, 132, 238, 0.1) !important;\n}\n.sidebar-alert .alertcard-title {\n color: #1c84ee;\n}\n\n@media (max-width: 992px) {\n .vertical-menu {\n display: none;\n }\n\n .main-content {\n margin-left: 0 !important;\n }\n\n body.sidebar-enable .vertical-menu {\n display: block;\n }\n}\nbody[data-sidebar-size=sm] {\n min-height: 1000px;\n}\nbody[data-sidebar-size=sm] .main-content {\n margin-left: 70px;\n}\nbody[data-sidebar-size=sm] .navbar-brand-box {\n width: 70px !important;\n}\nbody[data-sidebar-size=sm] .logo span.logo-lg {\n display: none;\n}\nbody[data-sidebar-size=sm] .logo span.logo-sm {\n display: block;\n}\nbody[data-sidebar-size=sm] .vertical-menu {\n position: absolute;\n width: 70px !important;\n z-index: 5;\n}\nbody[data-sidebar-size=sm] .vertical-menu .simplebar-mask,\nbody[data-sidebar-size=sm] .vertical-menu .simplebar-content-wrapper {\n overflow: visible !important;\n}\nbody[data-sidebar-size=sm] .vertical-menu .simplebar-scrollbar {\n display: none !important;\n}\nbody[data-sidebar-size=sm] .vertical-menu .simplebar-offset {\n bottom: 0 !important;\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu .menu-title,\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu .badge,\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu .sidebar-alert {\n display: none !important;\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu .nav.collapse {\n height: inherit !important;\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li {\n position: relative;\n white-space: nowrap;\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li > a {\n padding: 15px 20px;\n transition: none;\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li > a:hover, body[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li > a:active, body[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li > a:focus {\n color: #1c84ee;\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li > a i {\n font-size: 1.45rem;\n margin-left: 4px;\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li > a svg {\n height: 18px;\n width: 18px;\n margin-left: 6px;\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li > a span {\n display: none;\n padding-left: 25px;\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li > a.has-arrow:after {\n display: none;\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li:hover > a {\n position: relative;\n width: calc(190px + 70px);\n color: #1c84ee;\n background-color: whitesmoke;\n transition: none;\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li:hover > a i {\n color: #1c84ee;\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li:hover > a svg {\n color: #1c84ee;\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li:hover > a span {\n display: inline;\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li:hover > ul {\n display: block;\n left: 70px;\n position: absolute;\n width: 190px;\n height: auto !important;\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li:hover > ul ul {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li:hover > ul a {\n box-shadow: none;\n padding: 8px 20px;\n position: relative;\n width: 190px;\n z-index: 6;\n color: #545a6d;\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li:hover > ul a:hover {\n color: #1c84ee;\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul ul {\n padding: 5px 0;\n z-index: 9999;\n display: none;\n background-color: #fff;\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul ul li:hover > ul {\n display: block;\n left: 190px;\n height: auto !important;\n margin-top: -36px;\n position: absolute;\n width: 190px;\n padding: 5px 0;\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul ul li > a span.pull-right {\n position: absolute;\n right: 20px;\n top: 12px;\n transform: rotate(270deg);\n}\nbody[data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul ul li.active a {\n color: #f8f9fa;\n}\nbody[data-sidebar-size=sm] #sidebar-menu .mm-active > .has-arrow:after {\n transform: rotate(0deg);\n}\n\nbody[data-sidebar=dark] .navbar-brand-box {\n background: #242a30;\n box-shadow: 0px 3px 1px #242a30;\n border-color: #242a30;\n}\nbody[data-sidebar=dark] .navbar-brand-box .logo {\n color: #fff !important;\n}\nbody[data-sidebar=dark] .logo-dark {\n display: none;\n}\nbody[data-sidebar=dark] .logo-light {\n display: block;\n}\nbody[data-sidebar=dark] .vertical-menu {\n background: #242a30;\n border-color: #242a30;\n}\n@media (min-width: 992px) {\n body[data-sidebar=dark] #vertical-menu-btn {\n color: #e9ecef;\n }\n}\nbody[data-sidebar=dark] #sidebar-menu ul li a {\n color: #99a4b1;\n}\nbody[data-sidebar=dark] #sidebar-menu ul li a i {\n color: #858d98;\n}\nbody[data-sidebar=dark] #sidebar-menu ul li a svg {\n color: #858d98;\n}\nbody[data-sidebar=dark] #sidebar-menu ul li a:hover {\n color: #ffffff;\n}\nbody[data-sidebar=dark] #sidebar-menu ul li a:hover i {\n color: #ffffff;\n}\nbody[data-sidebar=dark] #sidebar-menu ul li a:hover svg {\n color: #ffffff;\n}\nbody[data-sidebar=dark] #sidebar-menu ul li ul.sub-menu li a {\n color: #858d98;\n}\nbody[data-sidebar=dark] #sidebar-menu ul li ul.sub-menu li a:hover {\n color: #ffffff;\n}\nbody[data-sidebar=dark][data-sidebar-size=sm][data-topbar=dark] #vertical-menu-btn {\n color: #e9ecef;\n}\nbody[data-sidebar=dark][data-sidebar-size=sm] #vertical-menu-btn {\n color: #555b6d;\n}\nbody[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li:hover > a {\n background: #282f36;\n color: #ffffff;\n}\nbody[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li:hover > a i {\n color: #ffffff;\n}\nbody[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li:hover > a svg {\n color: #ffffff;\n}\nbody[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li:hover > ul a {\n color: #858d98;\n}\nbody[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li:hover > ul a:hover {\n color: #ffffff;\n}\nbody[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul ul {\n background-color: #242a30;\n}\nbody[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu ul li.mm-active .active {\n color: #ffffff !important;\n}\nbody[data-sidebar=dark][data-sidebar-size=sm] .vertical-menu #sidebar-menu ul li.mm-active .active i {\n color: #ffffff !important;\n}\nbody[data-sidebar=dark] .mm-active {\n color: #ffffff !important;\n}\nbody[data-sidebar=dark] .mm-active > a {\n color: #ffffff !important;\n}\nbody[data-sidebar=dark] .mm-active > a i {\n color: #ffffff !important;\n}\nbody[data-sidebar=dark] .mm-active > a svg {\n color: #ffffff !important;\n}\nbody[data-sidebar=dark] .mm-active > i {\n color: #ffffff !important;\n}\nbody[data-sidebar=dark] .mm-active .active {\n color: #ffffff !important;\n}\nbody[data-sidebar=dark] .mm-active .active i {\n color: #ffffff !important;\n}\nbody[data-sidebar=dark] .mm-active .active svg {\n color: #ffffff !important;\n}\nbody[data-sidebar=dark] .menu-title {\n color: #858d98;\n}\nbody[data-sidebar=dark][data-sidebar-size=md] #sidebar-menu ul li.menu-title {\n background-color: #282f36;\n}\n\nbody[data-layout=horizontal] .main-content {\n margin-left: 0 !important;\n}\n\nbody[data-sidebar-size=md] .navbar-brand-box {\n width: 160px;\n}\n@media (max-width: 991.98px) {\n body[data-sidebar-size=md] .navbar-brand-box {\n width: auto;\n }\n}\nbody[data-sidebar-size=md] .vertical-menu {\n width: 160px;\n text-align: center;\n}\nbody[data-sidebar-size=md] .vertical-menu .has-arrow:after,\nbody[data-sidebar-size=md] .vertical-menu .badge,\nbody[data-sidebar-size=md] .vertical-menu .sidebar-alert {\n display: none !important;\n}\nbody[data-sidebar-size=md] .main-content {\n margin-left: 160px;\n}\nbody[data-sidebar-size=md] .footer {\n left: 160px;\n}\n@media (max-width: 991.98px) {\n body[data-sidebar-size=md] .footer {\n left: 0;\n }\n}\nbody[data-sidebar-size=md] #sidebar-menu ul li a svg {\n display: block;\n margin: 0 auto 4px;\n}\nbody[data-sidebar-size=md] #sidebar-menu ul li ul.sub-menu li a {\n padding-left: 1.5rem;\n}\nbody[data-sidebar-size=md] #sidebar-menu ul li ul.sub-menu li ul.sub-menu li a {\n padding-left: 1.5rem;\n}\nbody[data-sidebar-size=md][data-sidebar-size=sm] .main-content {\n margin-left: 70px;\n}\nbody[data-sidebar-size=md][data-sidebar-size=sm] .vertical-menu #sidebar-menu {\n text-align: left;\n}\nbody[data-sidebar-size=md][data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li > a svg {\n display: inline-block;\n}\nbody[data-sidebar-size=md][data-sidebar-size=sm] .footer {\n left: 70px;\n}\n\nbody[data-sidebar=brand] .vertical-menu {\n background-color: #1c84ee;\n}\nbody[data-sidebar=brand] .navbar-brand-box {\n background-color: #1c84ee;\n box-shadow: 0px 1px 0px #1c84ee;\n}\nbody[data-sidebar=brand] .navbar-brand-box .logo-dark {\n display: none;\n}\nbody[data-sidebar=brand] .navbar-brand-box .logo-light {\n display: block;\n}\nbody[data-sidebar=brand] .navbar-brand-box .logo {\n color: #fff !important;\n}\nbody[data-sidebar=brand] .mm-active {\n color: #fff !important;\n}\nbody[data-sidebar=brand] .mm-active > a {\n color: #fff !important;\n}\nbody[data-sidebar=brand] .mm-active > a i {\n color: #fff !important;\n}\nbody[data-sidebar=brand] .mm-active > a svg {\n color: #fff !important;\n}\nbody[data-sidebar=brand] .mm-active .active {\n color: #fff !important;\n}\nbody[data-sidebar=brand] .mm-active .active svg {\n color: #fff !important;\n}\n@media (min-width: 992px) {\n body[data-sidebar=brand] #vertical-menu-btn {\n color: #e9ecef;\n }\n}\nbody[data-sidebar=brand] #sidebar-menu ul li.menu-title {\n color: rgba(255, 255, 255, 0.6);\n}\nbody[data-sidebar=brand] #sidebar-menu ul li a {\n color: rgba(255, 255, 255, 0.6);\n}\nbody[data-sidebar=brand] #sidebar-menu ul li a i {\n color: rgba(255, 255, 255, 0.6);\n}\nbody[data-sidebar=brand] #sidebar-menu ul li a svg {\n color: rgba(255, 255, 255, 0.6);\n}\nbody[data-sidebar=brand] #sidebar-menu ul li a.waves-effect .waves-ripple {\n background: rgba(255, 255, 255, 0.1);\n}\nbody[data-sidebar=brand] #sidebar-menu ul li a:hover {\n color: #fff;\n}\nbody[data-sidebar=brand] #sidebar-menu ul li a:hover i {\n color: #fff;\n}\nbody[data-sidebar=brand] #sidebar-menu ul li ul.sub-menu li a {\n color: rgba(255, 255, 255, 0.5);\n}\nbody[data-sidebar=brand] #sidebar-menu ul li ul.sub-menu li a:hover {\n color: #fff;\n}\nbody[data-sidebar=brand] .sidebar-alert {\n background-color: rgba(255, 255, 255, 0.1);\n color: rgba(255, 255, 255, 0.5);\n}\nbody[data-sidebar=brand] .sidebar-alert .alertcard-title {\n color: #fff;\n}\nbody[data-sidebar=brand][data-sidebar-size=sm][data-topbar=dark] #vertical-menu-btn {\n color: #e9ecef;\n}\nbody[data-sidebar=brand][data-sidebar-size=sm] #vertical-menu-btn {\n color: #555b6d;\n}\nbody[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li:hover > a {\n background-color: #2589ef;\n color: #fff;\n}\nbody[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li:hover > a i, body[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu > ul > li:hover > a svg {\n color: #fff;\n}\nbody[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu ul li.mm-active .active {\n color: #fff !important;\n}\nbody[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu ul li ul.sub-menu li a:hover {\n color: #1c84ee;\n}\nbody[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu ul li ul.sub-menu li.mm-active {\n color: #1c84ee !important;\n}\nbody[data-sidebar=brand][data-sidebar-size=sm] .vertical-menu #sidebar-menu ul li ul.sub-menu li.mm-active > a {\n color: #1c84ee !important;\n}\n\nbody[data-layout-mode=dark][data-sidebar=dark] .vertical-menu,\nbody[data-layout-mode=dark][data-sidebar=dark] .navbar-brand-box, body[data-layout-mode=dark][data-sidebar=brand] .vertical-menu,\nbody[data-layout-mode=dark][data-sidebar=brand] .navbar-brand-box {\n border-color: transparent;\n}\nbody[data-layout-mode=dark][data-sidebar=light] .sidebar-alert {\n background-color: rgba(28, 132, 238, 0.1);\n color: #495057;\n}\nbody[data-layout-mode=dark][data-sidebar=light] .sidebar-alert .alertcard-title {\n color: #1c84ee;\n}\n\n[dir=rtl] #sidebar-menu .has-arrow:after {\n content: \"\\f0141\";\n}\n\n.topnav {\n background: #ffffff;\n padding: 0 calc(24px / 2);\n margin-top: 70px;\n position: fixed;\n left: 0;\n right: 0;\n z-index: 100;\n box-shadow: 0 0.25rem 0.75rem rgba(18, 38, 63, 0.08);\n}\n@media (min-width: 992px) {\n .topnav {\n background: #ffffff;\n }\n}\n.topnav .topnav-menu {\n margin: 0;\n padding: 0;\n}\n.topnav .navbar-nav .nav-link {\n font-size: 14.4px;\n position: relative;\n padding: 1rem 1.3rem;\n color: #545a6d;\n}\n.topnav .navbar-nav .nav-link i {\n font-size: 15px;\n}\n.topnav .navbar-nav .nav-link svg {\n height: 16px;\n width: 16px;\n color: #545a6d;\n margin-right: 7px;\n margin-top: -3px;\n}\n.topnav .navbar-nav .nav-link:focus, .topnav .navbar-nav .nav-link:hover {\n color: #1c84ee;\n background-color: transparent;\n}\n.topnav .navbar-nav .nav-link:focus svg, .topnav .navbar-nav .nav-link:hover svg {\n color: #1c84ee;\n}\n.topnav .navbar-nav .dropdown-item {\n color: #545a6d;\n}\n.topnav .navbar-nav .dropdown-item.active, .topnav .navbar-nav .dropdown-item:hover {\n color: #1c84ee;\n}\n.topnav .navbar-nav .nav-item .nav-link.active {\n color: #1c84ee;\n}\n.topnav .navbar-nav .nav-item .nav-link.active svg {\n color: #1c84ee;\n}\n.topnav .navbar-nav .dropdown.active > a {\n color: #1c84ee;\n background-color: transparent;\n}\n.topnav .navbar-nav .dropdown.active > a svg {\n color: #1c84ee;\n}\n.topnav .menu-title {\n padding: 12px 24px !important;\n}\n@media (max-width: 991.98px) {\n .topnav .menu-title {\n padding: 12px 16px !important;\n }\n}\n\n@media (min-width: 1200px) {\n body[data-layout=horizontal] .container-fluid,\nbody[data-layout=horizontal] .navbar-header {\n max-width: 85%;\n }\n}\n@media (min-width: 992px) {\n .topnav .navbar-nav .nav-item:first-of-type .nav-link {\n padding-left: 0;\n }\n .topnav .dropdown-item {\n padding: 0.5rem 1.5rem;\n min-width: 180px;\n }\n .topnav .dropdown.mega-dropdown .mega-dropdown-menu {\n left: 0px;\n right: auto;\n }\n .topnav .dropdown .dropdown-menu {\n margin-top: 0;\n border-radius: 0 0 0.25rem 0.25rem;\n }\n .topnav .dropdown .dropdown-menu .arrow-down::after {\n right: 15px;\n transform: rotate(-135deg) translateY(-50%);\n position: absolute;\n }\n .topnav .dropdown .dropdown-menu .dropdown .dropdown-menu {\n position: absolute;\n top: 0 !important;\n left: 100%;\n display: none;\n }\n .topnav .dropdown:hover > .dropdown-menu {\n display: block;\n }\n .topnav .dropdown:hover > .dropdown-menu > .dropdown:hover > .dropdown-menu {\n display: block;\n }\n\n .navbar-toggle {\n display: none;\n }\n}\n.arrow-down {\n display: inline-block;\n}\n.arrow-down:after {\n border-color: initial;\n border-style: solid;\n border-width: 0 0 1px 1px;\n content: \"\";\n height: 0.4em;\n display: inline-block;\n right: 5px;\n top: 50%;\n margin-left: 10px;\n transform: rotate(-45deg) translateY(-50%);\n transform-origin: top;\n transition: all 0.3s ease-out;\n width: 0.4em;\n}\n\n@media (max-width: 1199.98px) {\n .topnav-menu .navbar-nav li:last-of-type .dropdown .dropdown-menu {\n right: 100%;\n left: auto;\n }\n}\n@media (max-width: 991.98px) {\n .navbar-brand-box .logo-dark {\n display: block;\n }\n .navbar-brand-box .logo-dark span.logo-sm {\n display: block;\n }\n .navbar-brand-box .logo-light {\n display: none;\n }\n\n .topnav {\n max-height: 360px;\n overflow-y: auto;\n padding: 0;\n }\n .topnav .navbar-nav .nav-link {\n padding: 0.75rem 1.1rem;\n }\n .topnav .dropdown .dropdown-menu {\n background-color: transparent;\n border: none;\n box-shadow: none;\n padding-left: 24px;\n }\n .topnav .dropdown .dropdown-menu.dropdown-mega-menu-xl {\n width: auto;\n }\n .topnav .dropdown .dropdown-menu.dropdown-mega-menu-xl .row {\n margin: 0px;\n }\n .topnav .dropdown .dropdown-item {\n position: relative;\n background-color: transparent;\n }\n .topnav .dropdown .dropdown-item.active, .topnav .dropdown .dropdown-item:active {\n color: #1c84ee;\n }\n .topnav .arrow-down::after {\n right: 15px;\n position: absolute;\n }\n}\nbody[data-layout=horizontal][data-topbar=colored] #page-topbar {\n background-color: #1c84ee;\n box-shadow: none;\n}\nbody[data-layout=horizontal][data-topbar=colored] .logo-dark {\n display: none;\n}\nbody[data-layout=horizontal][data-topbar=colored] .logo-light {\n display: block;\n}\nbody[data-layout=horizontal][data-topbar=colored] .app-search .form-control {\n background-color: rgba(243, 243, 249, 0.07);\n color: #fff;\n}\nbody[data-layout=horizontal][data-topbar=colored] .app-search span,\nbody[data-layout=horizontal][data-topbar=colored] .app-search input.form-control::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\nbody[data-layout=horizontal][data-topbar=colored] .header-item {\n color: #e9ecef;\n}\nbody[data-layout=horizontal][data-topbar=colored] .header-item:hover {\n color: #e9ecef;\n}\nbody[data-layout=horizontal][data-topbar=colored] .navbar-header .dropdown .show.header-item {\n background-color: rgba(255, 255, 255, 0.1);\n}\nbody[data-layout=horizontal][data-topbar=colored] .navbar-header .waves-effect .waves-ripple {\n background: rgba(255, 255, 255, 0.4);\n}\nbody[data-layout=horizontal][data-topbar=colored] .noti-icon i {\n color: #e9ecef;\n}\n@media (min-width: 992px) {\n body[data-layout=horizontal][data-topbar=colored] .topnav {\n background-color: #1c84ee;\n }\n body[data-layout=horizontal][data-topbar=colored] .topnav .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.6);\n }\n body[data-layout=horizontal][data-topbar=colored] .topnav .navbar-nav .nav-link:focus, body[data-layout=horizontal][data-topbar=colored] .topnav .navbar-nav .nav-link:hover {\n color: rgba(255, 255, 255, 0.9);\n }\n body[data-layout=horizontal][data-topbar=colored] .topnav .navbar-nav > .dropdown.active > a {\n color: rgba(255, 255, 255, 0.9) !important;\n }\n}\n\nbody[data-layout-mode=dark] .topnav {\n background-color: #232a30;\n}\nbody[data-layout-mode=dark] .topnav .navbar-nav .nav-link {\n color: #99a4b1;\n}\nbody[data-layout-mode=dark] .topnav .navbar-nav .nav-link svg {\n height: 16px;\n width: 16px;\n color: #99a4b1;\n fill: rgba(153, 164, 177, 0.2);\n margin-right: 7px;\n margin-top: -3px;\n}\nbody[data-layout-mode=dark] .topnav .navbar-nav .nav-link:focus, body[data-layout-mode=dark] .topnav .navbar-nav .nav-link:hover {\n color: #fff;\n background-color: transparent;\n}\nbody[data-layout-mode=dark] .topnav .navbar-nav .nav-link:focus svg, body[data-layout-mode=dark] .topnav .navbar-nav .nav-link:hover svg {\n color: #fff;\n fill: rgba(255, 255, 255, 0.2);\n}\nbody[data-layout-mode=dark] .topnav .navbar-nav .dropdown-item {\n color: #99a4b1;\n}\nbody[data-layout-mode=dark] .topnav .navbar-nav .dropdown-item.active, body[data-layout-mode=dark] .topnav .navbar-nav .dropdown-item:hover {\n color: #fff;\n}\nbody[data-layout-mode=dark] .topnav .navbar-nav .nav-item .nav-link.active {\n color: #fff;\n}\nbody[data-layout-mode=dark] .topnav .navbar-nav .dropdown.active > a {\n color: #fff;\n background-color: transparent;\n}\nbody[data-layout-mode=dark] .topnav .navbar-nav .dropdown.active > a svg {\n color: #fff;\n fill: rgba(255, 255, 255, 0.2);\n}\nbody[data-layout-mode=dark] .topnav .menu-title {\n color: rgba(153, 164, 177, 0.6);\n}\n\nbody[data-layout-size=boxed] {\n background-color: #f0f0f0;\n}\nbody[data-layout-size=boxed] #layout-wrapper {\n background-color: #f4f5f8;\n max-width: 1300px;\n margin: 0 auto;\n box-shadow: 0 0.25rem 0.75rem rgba(18, 38, 63, 0.08);\n min-height: 100vh;\n}\nbody[data-layout-size=boxed] #page-topbar {\n max-width: 1300px;\n margin: 0 auto;\n}\nbody[data-layout-size=boxed] .footer {\n margin: 0 auto;\n max-width: calc(1300px - 250px);\n}\n@media (min-width: 992px) {\n body[data-layout-size=boxed][data-sidebar-size=sm] #layout-wrapper {\n min-height: 1200px;\n }\n}\nbody[data-layout-size=boxed][data-sidebar-size=sm] .footer {\n max-width: calc(1300px - 70px);\n}\nbody[data-layout-size=boxed][data-sidebar-size=md] .footer {\n max-width: calc(1300px - 160px);\n}\n\nbody[data-layout=horizontal][data-layout-size=boxed] #page-topbar, body[data-layout=horizontal][data-layout-size=boxed] #layout-wrapper, body[data-layout=horizontal][data-layout-size=boxed] .footer {\n max-width: 100%;\n}\nbody[data-layout=horizontal][data-layout-size=boxed] .container-fluid, body[data-layout=horizontal][data-layout-size=boxed] .navbar-header {\n max-width: 1300px;\n}\n\n@media (min-width: 992px) {\n body[data-layout-scrollable=true] #page-topbar, body[data-layout-scrollable=true] .vertical-menu {\n position: absolute;\n }\n}\n@media (min-width: 992px) {\n body[data-layout-scrollable=true][data-layout=horizontal] #page-topbar, body[data-layout-scrollable=true][data-layout=horizontal] .topnav {\n position: absolute;\n }\n}\n\nbody[data-layout-mode=dark][data-layout-size=boxed] {\n background-color: #2d343c;\n}\nbody[data-layout-mode=dark][data-layout-size=boxed] #layout-wrapper {\n background-color: #191e22;\n}\n\n/*!\n * Waves v0.7.6\n * http://fian.my.id/Waves \n * \n * Copyright 2014-2018 Alfiana E. Sibuea and other contributors \n * Released under the MIT license \n * https://github.com/fians/Waves/blob/master/LICENSE */\n.waves-effect {\n position: relative;\n cursor: pointer;\n display: inline-block;\n overflow: hidden;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n}\n\n.waves-effect .waves-ripple {\n position: absolute;\n border-radius: 50%;\n width: 100px;\n height: 100px;\n margin-top: -50px;\n margin-left: -50px;\n opacity: 0;\n background: rgba(0, 0, 0, 0.2);\n background: -webkit-radial-gradient(rgba(0, 0, 0, 0.2) 0, rgba(0, 0, 0, 0.3) 40%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\n background: -o-radial-gradient(rgba(0, 0, 0, 0.2) 0, rgba(0, 0, 0, 0.3) 40%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\n background: -moz-radial-gradient(rgba(0, 0, 0, 0.2) 0, rgba(0, 0, 0, 0.3) 40%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\n background: radial-gradient(rgba(0, 0, 0, 0.2) 0, rgba(0, 0, 0, 0.3) 40%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\n -webkit-transition: all 0.5s ease-out;\n -moz-transition: all 0.5s ease-out;\n -o-transition: all 0.5s ease-out;\n transition: all 0.5s ease-out;\n -webkit-transition-property: -webkit-transform, opacity;\n -moz-transition-property: -moz-transform, opacity;\n -o-transition-property: -o-transform, opacity;\n transition-property: transform, opacity;\n -webkit-transform: scale(0) translate(0, 0);\n -moz-transform: scale(0) translate(0, 0);\n -ms-transform: scale(0) translate(0, 0);\n -o-transform: scale(0) translate(0, 0);\n transform: scale(0) translate(0, 0);\n pointer-events: none;\n}\n\n.waves-effect.waves-light .waves-ripple {\n background: rgba(255, 255, 255, 0.4);\n background: -webkit-radial-gradient(rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.3) 40%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\n background: -o-radial-gradient(rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.3) 40%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\n background: -moz-radial-gradient(rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.3) 40%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\n background: radial-gradient(rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.3) 40%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\n}\n\n.waves-effect.waves-classic .waves-ripple {\n background: rgba(0, 0, 0, 0.2);\n}\n\n.waves-effect.waves-classic.waves-light .waves-ripple {\n background: rgba(255, 255, 255, 0.4);\n}\n\n.waves-notransition {\n -webkit-transition: none !important;\n -moz-transition: none !important;\n -o-transition: none !important;\n transition: none !important;\n}\n\n.waves-button,\n.waves-circle {\n -webkit-transform: translateZ(0);\n -moz-transform: translateZ(0);\n -ms-transform: translateZ(0);\n -o-transform: translateZ(0);\n transform: translateZ(0);\n -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);\n}\n\n.waves-button,\n.waves-button:hover,\n.waves-button:visited,\n.waves-button-input {\n white-space: nowrap;\n vertical-align: middle;\n cursor: pointer;\n border: none;\n outline: none;\n color: inherit;\n background-color: rgba(0, 0, 0, 0);\n font-size: 1em;\n line-height: 1em;\n text-align: center;\n text-decoration: none;\n z-index: 1;\n}\n\n.waves-button {\n padding: 0.85em 1.1em;\n border-radius: 0.2em;\n}\n\n.waves-button-input {\n margin: 0;\n padding: 0.85em 1.1em;\n}\n\n.waves-input-wrapper {\n border-radius: 0.2em;\n vertical-align: bottom;\n}\n\n.waves-input-wrapper.waves-button {\n padding: 0;\n}\n\n.waves-input-wrapper .waves-button-input {\n position: relative;\n top: 0;\n left: 0;\n z-index: 1;\n}\n\n.waves-circle {\n text-align: center;\n width: 2.5em;\n height: 2.5em;\n line-height: 2.5em;\n border-radius: 50%;\n}\n\n.waves-float {\n -webkit-mask-image: none;\n -webkit-box-shadow: 0px 1px 1.5px 1px rgba(0, 0, 0, 0.12);\n box-shadow: 0px 1px 1.5px 1px rgba(0, 0, 0, 0.12);\n -webkit-transition: all 300ms;\n -moz-transition: all 300ms;\n -o-transition: all 300ms;\n transition: all 300ms;\n}\n\n.waves-float:active {\n -webkit-box-shadow: 0px 8px 20px 1px rgba(0, 0, 0, 0.3);\n box-shadow: 0px 8px 20px 1px rgba(0, 0, 0, 0.3);\n}\n\n.waves-block {\n display: block;\n}\n\n.waves-effect.waves-light .waves-ripple {\n background-color: rgba(255, 255, 255, 0.4);\n}\n\n.waves-effect.waves-primary .waves-ripple {\n background-color: rgba(28, 132, 238, 0.4);\n}\n\n.waves-effect.waves-success .waves-ripple {\n background-color: rgba(52, 195, 143, 0.4);\n}\n\n.waves-effect.waves-info .waves-ripple {\n background-color: rgba(22, 218, 241, 0.4);\n}\n\n.waves-effect.waves-warning .waves-ripple {\n background-color: rgba(255, 204, 90, 0.4);\n}\n\n.waves-effect.waves-danger .waves-ripple {\n background-color: rgba(239, 103, 103, 0.4);\n}\n\nbody[data-layout-mode=dark] .accordion-button {\n border-color: #30373f;\n color: #ced4da;\n}\nbody[data-layout-mode=dark] .accordion-button:not(.collapsed) {\n background-color: rgba(28, 132, 238, 0.2);\n color: #1c84ee;\n}\nbody[data-layout-mode=dark] .accordion-item {\n border-color: #30373f;\n}\nbody[data-layout-mode=dark] .accordion-collapse {\n border-color: #30373f;\n}\n\n.avatar-xs {\n height: 1rem;\n width: 1rem;\n}\n\n.avatar-sm {\n height: 2rem;\n width: 2rem;\n}\n\n.avatar-md {\n height: 3rem;\n width: 3rem;\n}\n\n.avatar-lg {\n height: 4rem;\n width: 4rem;\n}\n\n.avatar-xl {\n height: 5rem;\n width: 5rem;\n}\n\n.avatar-xxl {\n height: 7.5rem;\n width: 7.5rem;\n}\n\n.avatar-title {\n align-items: center;\n background-color: #1c84ee;\n color: #fff;\n display: flex;\n font-weight: 500;\n height: 100%;\n justify-content: center;\n width: 100%;\n}\n\n.avatar-group {\n padding-left: 12px;\n display: flex;\n flex-wrap: wrap;\n}\n.avatar-group .avatar-group-item {\n margin-left: -12px;\n border: 2px solid #fff;\n border-radius: 50%;\n transition: all 0.2s;\n}\n.avatar-group .avatar-group-item:hover {\n position: relative;\n transform: translateY(-2px);\n}\n\n.font-size-10 {\n font-size: 10px !important;\n}\n\n.font-size-11 {\n font-size: 11px !important;\n}\n\n.font-size-12 {\n font-size: 12px !important;\n}\n\n.font-size-13 {\n font-size: 13px !important;\n}\n\n.font-size-14 {\n font-size: 14px !important;\n}\n\n.font-size-15 {\n font-size: 15px !important;\n}\n\n.font-size-16 {\n font-size: 16px !important;\n}\n\n.font-size-17 {\n font-size: 17px !important;\n}\n\n.font-size-18 {\n font-size: 18px !important;\n}\n\n.font-size-20 {\n font-size: 20px !important;\n}\n\n.font-size-22 {\n font-size: 22px !important;\n}\n\n.font-size-24 {\n font-size: 24px !important;\n}\n\n.fw-medium {\n font-weight: 500;\n}\n\n.fw-semibold {\n font-weight: 600;\n}\n\n.icon-xs {\n height: 14px;\n width: 14px;\n}\n\n.icon-sm {\n height: 16px;\n width: 16px;\n}\n\n.icon-md {\n height: 18px;\n width: 18px;\n}\n\n.icon-lg {\n height: 20px;\n width: 20px;\n}\n\n.icon-xl {\n height: 22px;\n width: 22px;\n}\n\n.card-h-100 {\n height: calc(100% - 24px);\n}\n\n.social-list-item {\n height: 2rem;\n width: 2rem;\n line-height: calc(2rem - 4px);\n display: block;\n border: 2px solid #adb5bd;\n border-radius: 50%;\n color: #adb5bd;\n text-align: center;\n transition: all 0.4s;\n}\n.social-list-item:hover {\n color: #74788d;\n background-color: #e9e9ef;\n}\n\n.w-xs {\n min-width: 80px;\n}\n\n.w-sm {\n min-width: 95px;\n}\n\n.w-md {\n min-width: 110px;\n}\n\n.w-lg {\n min-width: 140px;\n}\n\n.w-xl {\n min-width: 160px;\n}\n\n.bg-overlay {\n position: absolute;\n height: 100%;\n width: 100%;\n right: 0;\n bottom: 0;\n left: 0;\n top: 0;\n opacity: 0.7;\n background-color: #000;\n}\n\n.bg-overlay-gradient {\n background: linear-gradient(to bottom, rgba(43, 57, 64, 0.5) 30%, #2b3940 100%);\n position: absolute;\n height: 100%;\n width: 100%;\n right: 0;\n bottom: 0;\n left: 0;\n top: 0;\n opacity: 0.7;\n}\n\n.alert-dismissible .btn-close {\n font-size: 10px;\n padding: 1.05rem 1.25rem;\n background: transparent url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e\") center/1em auto no-repeat;\n}\n\nbody[data-layout-mode=dark] .btn-close {\n background: transparent 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 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e\") center/1em auto no-repeat;\n}\nbody[data-layout-mode=dark] .border-light {\n border-color: #30373f !important;\n}\nbody[data-layout-mode=dark] .border-bottom {\n border-bottom: 1px solid #30373f !important;\n}\nbody[data-layout-mode=dark] .border-top,\nbody[data-layout-mode=dark] .border,\nbody[data-layout-mode=dark] .list-group-item {\n border-color: #30373f !important;\n}\nbody[data-layout-mode=dark] .border-primary {\n border-color: #1c84ee !important;\n}\nbody[data-layout-mode=dark] .border-secondary {\n border-color: #74788d !important;\n}\nbody[data-layout-mode=dark] .border-success {\n border-color: #34c38f !important;\n}\nbody[data-layout-mode=dark] .border-info {\n border-color: #16daf1 !important;\n}\nbody[data-layout-mode=dark] .border-warning {\n border-color: #ffcc5a !important;\n}\nbody[data-layout-mode=dark] .border-danger {\n border-color: #ef6767 !important;\n}\nbody[data-layout-mode=dark] .border-pink {\n border-color: #e83e8c !important;\n}\nbody[data-layout-mode=dark] .border-light {\n border-color: #f6f6f6 !important;\n}\nbody[data-layout-mode=dark] .border-dark {\n border-color: #2b3940 !important;\n}\nbody[data-layout-mode=dark] .text-dark {\n color: #e9e9ef !important;\n}\nbody[data-layout-mode=dark] .text-muted {\n color: #858d98 !important;\n}\nbody[data-layout-mode=dark] .text-body {\n color: #adb5bd !important;\n}\nbody[data-layout-mode=dark] .list-group-item {\n background-color: #242a30;\n color: #adb5bd;\n}\nbody[data-layout-mode=dark] .img-thumbnail {\n background-color: #293037;\n border-color: #30373f;\n}\nbody[data-layout-mode=dark] .popover-header {\n color: #242a30;\n}\n\n.btn-group-vertical label {\n margin-bottom: 0;\n}\n\n.btn-group label {\n margin-bottom: 0;\n}\n\nbody[data-layout-mode=dark] .modal-header, body[data-layout-mode=dark] .modal-footer {\n border-color: #30373f;\n}\n\n[type=tel]::placeholder,\n[type=url]::placeholder,\n[type=email]::placeholder,\n[type=number]::placeholder {\n text-align: left;\n}\n\n.form-check {\n position: relative;\n text-align: left;\n}\n\n.form-check-right {\n padding-left: 0;\n display: inline-block;\n padding-right: 1.5em;\n}\n.form-check-right .form-check-input {\n float: right;\n margin-left: 0;\n margin-right: -1.5em;\n}\n.form-check-right .form-check-label {\n display: block;\n}\n\n.form-checkbox-outline .form-check-input {\n border-width: 2px;\n background-color: #fff;\n}\n.form-checkbox-outline .form-check-input:active {\n filter: none;\n}\n.form-checkbox-outline .form-check-input:checked {\n background-color: #fff !important;\n}\n.form-checkbox-outline .form-check-input:checked[type=checkbox] {\n background-image: none;\n}\n.form-checkbox-outline .form-check-input:checked:after {\n position: absolute;\n content: \"\\f012c\";\n font-family: \"Material Design Icons\";\n top: -4px !important;\n left: 1px;\n /*rtl: -4px */\n font-size: 16px;\n color: #2b3940;\n}\n\n.form-radio-outline .form-check-input {\n background-color: #fff;\n position: relative;\n}\n.form-radio-outline .form-check-input:active {\n filter: none;\n}\n.form-radio-outline .form-check-input:checked {\n background-color: #fff !important;\n}\n.form-radio-outline .form-check-input:checked[type=checkbox] {\n background-image: none;\n}\n.form-radio-outline .form-check-input:checked:after {\n position: absolute;\n content: \"\";\n top: 3px !important;\n left: 3px;\n width: 5px;\n height: 5px;\n border-radius: 50%;\n}\n\n.form-check-primary .form-check-input:checked {\n background-color: #1c84ee;\n border-color: #1c84ee;\n}\n\n.form-radio-primary .form-check-input:checked {\n border-color: #1c84ee;\n background-color: #1c84ee;\n}\n.form-radio-primary .form-check-input:checked:after {\n background-color: #1c84ee;\n}\n\n.form-check-secondary .form-check-input:checked {\n background-color: #74788d;\n border-color: #74788d;\n}\n\n.form-radio-secondary .form-check-input:checked {\n border-color: #74788d;\n background-color: #74788d;\n}\n.form-radio-secondary .form-check-input:checked:after {\n background-color: #74788d;\n}\n\n.form-check-success .form-check-input:checked {\n background-color: #34c38f;\n border-color: #34c38f;\n}\n\n.form-radio-success .form-check-input:checked {\n border-color: #34c38f;\n background-color: #34c38f;\n}\n.form-radio-success .form-check-input:checked:after {\n background-color: #34c38f;\n}\n\n.form-check-info .form-check-input:checked {\n background-color: #16daf1;\n border-color: #16daf1;\n}\n\n.form-radio-info .form-check-input:checked {\n border-color: #16daf1;\n background-color: #16daf1;\n}\n.form-radio-info .form-check-input:checked:after {\n background-color: #16daf1;\n}\n\n.form-check-warning .form-check-input:checked {\n background-color: #ffcc5a;\n border-color: #ffcc5a;\n}\n\n.form-radio-warning .form-check-input:checked {\n border-color: #ffcc5a;\n background-color: #ffcc5a;\n}\n.form-radio-warning .form-check-input:checked:after {\n background-color: #ffcc5a;\n}\n\n.form-check-danger .form-check-input:checked {\n background-color: #ef6767;\n border-color: #ef6767;\n}\n\n.form-radio-danger .form-check-input:checked {\n border-color: #ef6767;\n background-color: #ef6767;\n}\n.form-radio-danger .form-check-input:checked:after {\n background-color: #ef6767;\n}\n\n.form-check-pink .form-check-input:checked {\n background-color: #e83e8c;\n border-color: #e83e8c;\n}\n\n.form-radio-pink .form-check-input:checked {\n border-color: #e83e8c;\n background-color: #e83e8c;\n}\n.form-radio-pink .form-check-input:checked:after {\n background-color: #e83e8c;\n}\n\n.form-check-light .form-check-input:checked {\n background-color: #f6f6f6;\n border-color: #f6f6f6;\n}\n\n.form-radio-light .form-check-input:checked {\n border-color: #f6f6f6;\n background-color: #f6f6f6;\n}\n.form-radio-light .form-check-input:checked:after {\n background-color: #f6f6f6;\n}\n\n.form-check-dark .form-check-input:checked {\n background-color: #2b3940;\n border-color: #2b3940;\n}\n\n.form-radio-dark .form-check-input:checked {\n border-color: #2b3940;\n background-color: #2b3940;\n}\n.form-radio-dark .form-check-input:checked:after {\n background-color: #2b3940;\n}\n\n.form-check,\n.form-check-input,\n.form-check-label {\n cursor: pointer;\n margin-bottom: 0;\n}\n\n.form-switch-md {\n font-size: 20px;\n min-height: 26px;\n line-height: 26px;\n}\n.form-switch-md .form-check-label {\n font-size: 0.8125rem;\n vertical-align: middle;\n}\n\n.form-switch-lg {\n font-size: 26px;\n min-height: 36px;\n line-height: 36px;\n}\n.form-switch-lg .form-check-label {\n font-size: 0.8125rem;\n vertical-align: middle;\n}\n\n.input-group-text {\n margin-bottom: 0px;\n}\n\nbody[data-layout-mode=dark] .form-control {\n color: #adb5bd;\n background-color: #282f36;\n border: 1px solid #30373f;\n}\n\nbody[data-layout-mode=dark] .form-select {\n color: #adb5bd;\n background-color: #293037;\n border: 1px solid #30373f;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23e9e9ef' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e\");\n}\nbody[data-layout-mode=dark] .form-check-input {\n background-color: #30373f;\n border-color: rgba(255, 255, 255, 0.25);\n}\nbody[data-layout-mode=dark] .form-check-input:checked {\n background-color: #1c84ee;\n border-color: #1c84ee;\n}\nbody[data-layout-mode=dark] .form-switch .form-check-input {\n background-image: 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\");\n}\nbody[data-layout-mode=dark] .input-group-text {\n background-color: #30373f;\n border-color: #30373f;\n color: #ced4da;\n}\nbody[data-layout-mode=dark] .form-control::-webkit-file-upload-button {\n background-color: #30373f;\n color: #ced4da;\n}\nbody[data-layout-mode=dark] .form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button {\n background-color: #30373f;\n}\nbody[data-layout-mode=dark] .form-range::-webkit-slider-runnable-track {\n background-color: #30373f !important;\n}\nbody[data-layout-mode=dark] .form-range::-moz-range-track {\n background-color: #30373f !important;\n}\n\n.widget-box-1-icon {\n position: absolute;\n right: -25px;\n bottom: -25px;\n font-size: 6rem;\n opacity: 0.1;\n}\n\n.widget-carousel .carousel-indicators {\n margin: 0px auto;\n position: relative;\n}\n\n.dash-widget {\n width: 85px;\n}\n\n.activity-border:before {\n content: \"\";\n position: absolute;\n height: 80px;\n border-left: 2px dashed #ced4da;\n top: 40px;\n left: 2px;\n}\n\n.activity-wid {\n margin-left: 16px;\n}\n.activity-wid .activity-list {\n position: relative;\n padding: 0 0 20px 45px;\n}\n.activity-wid .activity-list .activity-icon {\n position: absolute;\n left: -20px;\n top: -3px;\n z-index: 2;\n background: #fff;\n}\n.activity-wid .activity-list .activity-icon img {\n border: 5px solid #fff;\n}\n.activity-wid .activity-list .activity-icon span {\n border: 5px solid #fff;\n}\n.activity-wid .activity-list:last-child {\n padding-bottom: 0px;\n}\n\nbody[data-layout-mode=dark] .activity-wid .activity-list .activity-icon {\n background: #242a30;\n}\nbody[data-layout-mode=dark] .activity-wid .activity-list .activity-icon img, body[data-layout-mode=dark] .activity-wid .activity-list .activity-icon span {\n border-color: #242a30;\n}\nbody[data-layout-mode=dark] .activity-border:before {\n border-color: #30373f;\n}\n\nbody[data-layout-mode=dark] .toast, body[data-layout-mode=dark] .toast-header {\n background-color: rgba(48, 55, 63, 0.85);\n color: #858d98;\n}\nbody[data-layout-mode=dark] .toast-header {\n color: #adb5bd;\n}\n\n.grid-example {\n background-color: rgba(28, 132, 238, 0.05);\n border-radius: 5px;\n font-weight: 500;\n padding: 10px 20px;\n font-size: 0.8rem;\n}\n\n.bs-example-modal {\n position: relative;\n top: auto;\n right: auto;\n bottom: auto;\n left: auto;\n z-index: 1;\n display: block;\n}\n\n[dir=rtl] .modal-open {\n padding-left: 0px !important;\n}\n\n.icon-demo-content {\n color: #adb5bd;\n}\n.icon-demo-content i, .icon-demo-content svg {\n display: inline-flex;\n width: 40px;\n height: 40px;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n color: #74788d;\n transition: all 0.4s;\n border: 1px solid #e9e9ef;\n border-radius: 50%;\n margin-right: 16px;\n vertical-align: middle;\n}\n.icon-demo-content svg {\n padding: 10px;\n}\n.icon-demo-content .col-lg-4 {\n margin-top: 24px;\n}\n.icon-demo-content .col-lg-4:hover i, .icon-demo-content .col-lg-4:hover svg {\n background-color: rgba(28, 132, 238, 0.2);\n color: #1c84ee;\n}\n\n.grid-structure .grid-container {\n background-color: #f8f9fa;\n margin-top: 10px;\n font-size: 0.8rem;\n font-weight: 500;\n padding: 10px 20px;\n}\n\n.card-radio {\n background-color: #fff;\n border: 2px solid #e9e9ef;\n border-radius: 0.25rem;\n padding: 1rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.card-radio:hover {\n cursor: pointer;\n}\n\n.card-radio-label {\n display: block;\n}\n\n.card-radio-input {\n display: none;\n}\n.card-radio-input:checked + .card-radio {\n border-color: #1c84ee !important;\n}\n\n.spin-left:before {\n animation: spin-left 2s infinite linear;\n}\n\n.spin-right:before {\n animation: spin-right 2s infinite linear;\n}\n\n@keyframes spin-left {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(-359deg);\n }\n}\n@keyframes spin-right {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\nbody[data-layout-mode=dark] .grid-structure .grid-container, body[data-layout-mode=dark] .grid-example {\n background-color: #293037;\n}\nbody[data-layout-mode=dark] .icon-demo-content {\n color: #858d98;\n}\nbody[data-layout-mode=dark] .icon-demo-content i {\n border-color: #30373f;\n color: #858d98;\n}\nbody[data-layout-mode=dark] .glightbox-clean .gslide-description {\n background-color: #30373f;\n}\nbody[data-layout-mode=dark] .glightbox-clean .gslide-title {\n color: #ced4da;\n}\n\n.tooltip, .popover {\n z-index: 9;\n}\n\n@media print {\n .vertical-menu,\n.right-bar,\n.page-title-box,\n.navbar-header,\n.footer {\n display: none !important;\n }\n\n .card-body,\n.main-content,\n.right-bar,\n.page-content,\nbody {\n padding: 0;\n margin: 0;\n }\n\n .card {\n border: 0;\n }\n}\n[data-simplebar] {\n position: relative;\n flex-direction: column;\n flex-wrap: wrap;\n justify-content: flex-start;\n align-content: flex-start;\n align-items: flex-start;\n}\n\n.simplebar-wrapper {\n overflow: hidden;\n width: inherit;\n height: inherit;\n max-width: inherit;\n max-height: inherit;\n}\n\n.simplebar-mask {\n direction: inherit;\n position: absolute;\n overflow: hidden;\n padding: 0;\n margin: 0;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n width: auto !important;\n height: auto !important;\n z-index: 0;\n}\n\n.simplebar-offset {\n direction: inherit !important;\n box-sizing: inherit !important;\n resize: none !important;\n position: absolute;\n top: 0;\n left: 0 !important;\n bottom: 0;\n right: 0 !important;\n padding: 0;\n margin: 0;\n -webkit-overflow-scrolling: touch;\n}\n\n.simplebar-content-wrapper {\n direction: inherit;\n box-sizing: border-box !important;\n position: relative;\n display: block;\n height: 100%;\n /* Required for horizontal native scrollbar to not appear if parent is taller than natural height */\n width: auto;\n visibility: visible;\n overflow: auto;\n /* Scroll on this element otherwise element can't have a padding applied properly */\n max-width: 100%;\n /* Not required for horizontal scroll to trigger */\n max-height: 100%;\n /* Needed for vertical scroll to trigger */\n scrollbar-width: none;\n padding: 0px !important;\n}\n\n.simplebar-content-wrapper::-webkit-scrollbar,\n.simplebar-hide-scrollbar::-webkit-scrollbar {\n display: none;\n}\n\n.simplebar-content:before,\n.simplebar-content:after {\n content: \" \";\n display: table;\n}\n\n.simplebar-placeholder {\n max-height: 100%;\n max-width: 100%;\n width: 100%;\n pointer-events: none;\n}\n\n.simplebar-height-auto-observer-wrapper {\n box-sizing: inherit !important;\n height: 100%;\n width: 100%;\n max-width: 1px;\n position: relative;\n float: left;\n max-height: 1px;\n overflow: hidden;\n z-index: -1;\n padding: 0;\n margin: 0;\n pointer-events: none;\n flex-grow: inherit;\n flex-shrink: 0;\n flex-basis: 0;\n}\n\n.simplebar-height-auto-observer {\n box-sizing: inherit;\n display: block;\n opacity: 0;\n position: absolute;\n top: 0;\n left: 0;\n height: 1000%;\n width: 1000%;\n min-height: 1px;\n min-width: 1px;\n overflow: hidden;\n pointer-events: none;\n z-index: -1;\n}\n\n.simplebar-track {\n z-index: 1;\n position: absolute;\n right: 0;\n bottom: 0;\n pointer-events: none;\n overflow: hidden;\n}\n\n[data-simplebar].simplebar-dragging .simplebar-content {\n pointer-events: none;\n user-select: none;\n -webkit-user-select: none;\n}\n\n[data-simplebar].simplebar-dragging .simplebar-track {\n pointer-events: all;\n}\n\n.simplebar-scrollbar {\n position: absolute;\n right: 2px;\n width: 6px;\n min-height: 10px;\n}\n\n.simplebar-scrollbar:before {\n position: absolute;\n content: \"\";\n background: #a2adb7;\n border-radius: 7px;\n left: 0;\n right: 0;\n opacity: 0;\n transition: opacity 0.2s linear;\n}\n\n.simplebar-scrollbar.simplebar-visible:before {\n /* When hovered, remove all transitions from drag handle */\n opacity: 0.5;\n transition: opacity 0s linear;\n}\n\n.simplebar-track.simplebar-vertical {\n top: 0;\n width: 11px;\n}\n\n.simplebar-track.simplebar-vertical .simplebar-scrollbar:before {\n top: 2px;\n bottom: 2px;\n}\n\n.simplebar-track.simplebar-horizontal {\n left: 0;\n height: 11px;\n}\n\n.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before {\n height: 100%;\n left: 2px;\n right: 2px;\n}\n\n.simplebar-track.simplebar-horizontal .simplebar-scrollbar {\n right: auto;\n left: 0;\n top: 2px;\n height: 7px;\n min-height: 0;\n min-width: 10px;\n width: auto;\n}\n\n/* Rtl support */\n[data-simplebar-direction=rtl] .simplebar-track.simplebar-vertical {\n right: auto;\n left: 0;\n}\n\n.hs-dummy-scrollbar-size {\n direction: rtl;\n position: fixed;\n opacity: 0;\n visibility: hidden;\n height: 500px;\n width: 500px;\n overflow-y: hidden;\n overflow-x: scroll;\n}\n\n.simplebar-hide-scrollbar {\n position: fixed;\n left: 0;\n visibility: hidden;\n overflow-y: scroll;\n scrollbar-width: none;\n}\n\n.custom-scroll {\n height: 100%;\n}\n\n.bootstrap-touchspin.input-group > .input-group-prepend > .btn, .bootstrap-touchspin.input-group > .input-group-prepend > .input-group-text {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.bootstrap-touchspin.input-group > .input-group-append > .btn, .bootstrap-touchspin.input-group > .input-group-append > .input-group-text {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.bootstrap-touchspin .input-group-btn-vertical {\n right: 0;\n}\n.bootstrap-touchspin .input-group-btn-vertical .btn {\n right: 0 !important;\n left: 100% !important;\n}\n.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-up {\n border-top-right-radius: 4px !important;\n border-bottom-right-radius: 0 !important;\n border-top-left-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n}\n.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-down {\n border-top-right-radius: 0 !important;\n border-bottom-right-radius: 4px !important;\n border-top-left-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n}\n\n/* ==============\n Calendar\n===================*/\n.fc td, .fc th {\n border: 1px solid #e9e9ef;\n}\n\n.fc .fc-toolbar h2 {\n font-size: 16px;\n line-height: 30px;\n text-transform: uppercase;\n}\n@media (max-width: 767.98px) {\n .fc .fc-toolbar .fc-left,\n.fc .fc-toolbar .fc-right,\n.fc .fc-toolbar .fc-center {\n float: none;\n display: block;\n text-align: center;\n clear: both;\n margin: 10px 0;\n }\n .fc .fc-toolbar > * > * {\n float: none;\n }\n .fc .fc-toolbar .fc-today-button {\n display: none;\n }\n}\n.fc .fc-toolbar .btn {\n text-transform: capitalize;\n}\n\n.fc th.fc-widget-header {\n background: #f6f6f6;\n color: #495057;\n line-height: 20px;\n padding: 10px 0;\n text-transform: uppercase;\n font-weight: 700;\n}\n\n.fc-unthemed .fc-content,\n.fc-unthemed .fc-divider,\n.fc-unthemed .fc-list-heading td,\n.fc-unthemed .fc-list-view,\n.fc-unthemed .fc-popover,\n.fc-unthemed .fc-row,\n.fc-unthemed tbody,\n.fc-unthemed td,\n.fc-unthemed th,\n.fc-unthemed thead {\n border-color: #f6f6f6;\n}\n.fc-unthemed td.fc-today {\n background: #efeff3;\n}\n\n.fc-button {\n background: #fff;\n border-color: #e9e9ef;\n color: #495057;\n text-transform: capitalize;\n box-shadow: none;\n padding: 6px 12px !important;\n height: auto !important;\n}\n\n.fc-state-down,\n.fc-state-active,\n.fc-state-disabled {\n background-color: #1c84ee;\n color: #fff;\n text-shadow: none;\n}\n\n.fc-event {\n border-radius: 2px;\n border: none;\n cursor: move;\n font-size: 0.8125rem;\n margin: 5px 7px;\n padding: 5px 5px;\n text-align: center;\n}\n\n.fc-event,\n.fc-event-dot {\n background-color: #1c84ee;\n}\n\n.fc-event .fc-content {\n color: #fff;\n}\n\n#external-events .external-event {\n text-align: left;\n padding: 8px 16px;\n}\n\n.fc-day-grid-event.fc-h-event.fc-event.fc-start.fc-end.bg-dark .fc-content {\n color: #f6f6f6;\n}\n\n[dir=rtl] .fc-header-toolbar {\n direction: ltr !important;\n}\n[dir=rtl] .fc-toolbar > * > :not(:first-child) {\n margin-left: 0.75em;\n}\n\n@media (max-width: 575.98px) {\n .fc-toolbar {\n flex-direction: column;\n }\n}\n\n#session-timeout-dialog .close {\n display: none;\n}\n#session-timeout-dialog .countdown-holder {\n color: #ef6767;\n font-weight: 500;\n}\n#session-timeout-dialog .btn-default {\n background-color: #fff;\n color: #ef6767;\n box-shadow: none;\n}\n\n.noUi-connect {\n background: #1c84ee;\n}\n\n.noUi-handle {\n background: #fff;\n}\n\n.noUi-horizontal {\n height: 8px;\n}\n.noUi-horizontal .noUi-handle {\n height: 20px;\n width: 20px;\n border-radius: 50%;\n right: -10px;\n top: -7px;\n}\n.noUi-horizontal .noUi-handle::before, .noUi-horizontal .noUi-handle::after {\n display: none;\n}\n.noUi-horizontal .noUi-handle:focus {\n outline: 0;\n}\n\n.noUi-connects, .noUi-touch-area {\n cursor: pointer;\n}\n\n.noUi-pips-horizontal {\n height: 50px;\n}\n\n.noUi-vertical {\n width: 8px;\n}\n.noUi-vertical .noUi-handle {\n height: 20px;\n width: 20px;\n right: -7px;\n top: -12px;\n border-radius: 50%;\n}\n.noUi-vertical .noUi-handle::before, .noUi-vertical .noUi-handle::after {\n display: none;\n}\n.noUi-vertical .noUi-handle:focus {\n outline: 0;\n}\n.noUi-vertical .noUi-origin {\n top: 0;\n}\n\n.noUi-value {\n font-size: 12px;\n}\n\n.noUi-marker-horizontal.noUi-marker-large {\n height: 6px;\n}\n.noUi-marker-horizontal.noUi-marker {\n display: none;\n}\n\n.noUi-target {\n background-color: #f6f6f6;\n border-color: #f6f6f6;\n}\n\n.noUi-touch-area:focus {\n outline: 0;\n}\n\n#red,\n#green,\n#blue {\n margin: 10px;\n display: inline-block;\n height: 200px;\n}\n\n#colorpicker {\n height: 240px;\n width: 310px;\n margin: 0 auto;\n padding: 10px;\n border: 1px solid #e9e9ef;\n}\n\n#result {\n margin: 60px 26px;\n height: 100px;\n width: 100px;\n display: inline-block;\n vertical-align: top;\n border: 1px solid #e9e9ef;\n box-shadow: 0 0 3px;\n border-radius: 7px;\n}\n\n#red .noUi-connect {\n background: #ef6767;\n}\n\n#green .noUi-connect {\n background: #34c38f;\n}\n\n#blue .noUi-connect {\n background: #1c84ee;\n}\n\n.form-control.keyboard {\n max-width: 340px !important;\n}\n\n#input-select,\n#input-number {\n padding: 7px;\n margin: 15px 5px 5px;\n width: 70px;\n}\n\n.example-val {\n font-size: 12px;\n color: #74788d;\n display: block;\n margin: 15px 0;\n}\n.example-val:before {\n content: \"Value: \";\n font-size: 12px;\n font-weight: 600;\n}\n\n.noUi-tooltip {\n display: none;\n}\n\n.noUi-active .noUi-tooltip {\n display: block;\n}\n\n.c-1-color {\n background: #ef6767;\n}\n\n.c-2-color {\n background: #ffcc5a;\n}\n\n.c-3-color {\n background: #34c38f;\n}\n\n.c-4-color {\n background: #1c84ee;\n}\n\n.c-5-color {\n background: #6f42c1;\n}\n\n#slider-toggle {\n height: 50px;\n}\n#slider-toggle.off .noUi-handle {\n border-color: #ef6767;\n}\n\nbody[data-layout-mode=dark] .noUi-target {\n background-color: #30373f;\n border-color: #30373f;\n box-shadow: inset 0 1px 1px #30373f, 0 3px 6px -5px #30373f;\n}\nbody[data-layout-mode=dark] .example-val {\n color: #858d98;\n}\n\n.swal2-container .swal2-title {\n font-size: 22px;\n font-weight: 500;\n}\n\n.swal2-modal {\n font-size: 14px;\n}\n\n.swal2-icon.swal2-question {\n border-color: #16daf1;\n color: #16daf1;\n}\n.swal2-icon.swal2-success [class^=swal2-success-line] {\n background-color: #34c38f;\n}\n.swal2-icon.swal2-success .swal2-success-ring {\n border-color: rgba(52, 195, 143, 0.3);\n}\n.swal2-icon.swal2-warning {\n border-color: #ffcc5a;\n color: #ffcc5a;\n}\n\n.swal2-styled:focus {\n box-shadow: none;\n}\n\n.swal2-progress-steps .swal2-progress-step {\n background: #1c84ee;\n}\n.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step {\n background: #1c84ee;\n}\n.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step, .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step-line {\n background: rgba(28, 132, 238, 0.3);\n}\n.swal2-progress-steps .swal2-progress-step-line {\n background: #1c84ee;\n}\n\n.swal2-loader {\n border-color: #1c84ee transparent #1c84ee transparent;\n}\n\nbody[data-layout-mode=dark] .swal2-popup {\n background-color: #30373f !important;\n}\nbody[data-layout-mode=dark] .swal2-content {\n color: #adb5bd;\n}\nbody[data-layout-mode=dark] .swal2-html-container {\n color: #858d98;\n}\n\n.alertify .ajs-header {\n font-weight: 500;\n}\n.alertify .ajs-dialog {\n box-shadow: 0 0.25rem 0.75rem rgba(18, 38, 63, 0.08);\n background-color: #fff;\n}\n.alertify .ajs-dialog .ajs-header, .alertify .ajs-dialog .ajs-footer {\n background-color: #fff;\n}\n.alertify .ajs-footer .ajs-buttons .ajs-button {\n font-weight: 500;\n}\n.alertify .ajs-footer .ajs-buttons .ajs-button.ajs-ok {\n color: #1c84ee;\n}\n.alertify .ajs-footer .ajs-buttons.ajs-primary {\n text-align: right;\n}\n.alertify .ajs-body .ajs-content .ajs-input:focus-visible {\n outline: none;\n}\n.alertify .ajs-commands {\n right: 4px;\n left: auto;\n margin: -14px 0 0 24px;\n}\n\n.alertify-notifier .ajs-message {\n background-color: #1c84ee;\n border-color: #1c84ee;\n color: #fff;\n text-shadow: none !important;\n}\n.alertify-notifier .ajs-message.ajs-success {\n background-color: #34c38f;\n border-color: #34c38f;\n}\n.alertify-notifier .ajs-message.ajs-error {\n background-color: #ef6767;\n border-color: #ef6767;\n}\n.alertify-notifier .ajs-message.ajs-warning {\n background-color: #ffcc5a;\n border-color: #ffcc5a;\n}\n.alertify-notifier.ajs-right {\n right: 10px;\n left: auto;\n}\n.alertify-notifier.ajs-right .ajs-message {\n right: -320px;\n left: auto;\n}\n.alertify-notifier.ajs-right .ajs-message.ajs-visible {\n right: 290px;\n left: auto;\n}\n.alertify-notifier.ajs-left {\n left: 10px;\n right: auto;\n}\n.alertify-notifier.ajs-left .ajs-message {\n left: -300px;\n right: auto;\n}\n.alertify-notifier.ajs-left .ajs-message.ajs-visible {\n left: 0;\n right: auto;\n}\n\nbody[data-layout-mode=dark] .alertify .ajs-dialog {\n background-color: #242a30;\n}\nbody[data-layout-mode=dark] .alertify .ajs-header, body[data-layout-mode=dark] .alertify .ajs-footer {\n color: #ced4da;\n background-color: #242a30;\n border-color: #30373f;\n}\nbody[data-layout-mode=dark] .alertify .ajs-body {\n color: #adb5bd;\n}\nbody[data-layout-mode=dark] .alertify .ajs-body .ajs-content .ajs-input {\n color: #adb5bd;\n background-color: #282f36;\n border: 1px solid #30373f;\n}\nbody[data-layout-mode=dark] .alertify .ajs-footer .ajs-buttons .ajs-button {\n color: #adb5bd;\n}\nbody[data-layout-mode=dark] .alertify .ajs-footer .ajs-buttons .ajs-button.ajs-ok {\n color: #1c84ee;\n}\n\n.pristine-error {\n margin-top: 2px;\n color: #ef6767;\n}\n\n.has-success .form-control {\n border-color: #34c38f;\n}\n\n.has-danger .form-control {\n border-color: #ef6767;\n}\n\n.choices__inner {\n padding: 0.25rem 2.5rem 0.25rem 0.5rem;\n background-color: #fff;\n vertical-align: middle;\n border-radius: 0.25rem;\n border: 1px solid #e9e9ef !important;\n min-height: 38px;\n}\n\n.choices__list--dropdown {\n border: 1px solid #e9e9ef !important;\n box-shadow: 0 0.25rem 0.75rem rgba(18, 38, 63, 0.08);\n}\n\n.choices[data-type*=select-one] .choices__inner {\n padding-bottom: 0.25rem;\n}\n.choices[data-type*=select-one] .choices__button {\n right: 0;\n left: auto;\n margin-right: 25px;\n margin-left: 0;\n}\n.choices[data-type*=select-one]:after {\n border-color: #2b3940 transparent transparent;\n right: 11.5px;\n left: auto;\n}\n.choices[data-type*=select-one].is-open:after {\n border-color: transparent transparent #2b3940;\n}\n\n.choices__input {\n background-color: #fff;\n margin-bottom: 0;\n}\n\n.choices__list--multiple {\n display: inline-flex;\n flex-wrap: wrap;\n}\n.choices__list--multiple .choices__item {\n background-color: #1c84ee;\n border-color: #1c84ee;\n margin-bottom: 0;\n margin-right: 7px;\n font-weight: 400;\n}\n.choices__list--multiple .choices__item.is-highlighted {\n background-color: #1c84ee;\n border: 1px solid #1c84ee;\n}\n\n.choices.is-disabled .choices__inner,\n.choices.is-disabled .choices__input {\n background-color: #f6f6f6;\n}\n\n.is-disabled .choices__list--multiple .choices__item {\n background-color: #74788d;\n border-color: #74788d;\n}\n\n.choices[data-type*=select-multiple] .choices__button,\n.choices[data-type*=text] .choices__button {\n border-left: 1px solid rgba(255, 255, 255, 0.5);\n margin: 0 -4px 0 8px;\n border-right: 0;\n}\n\nbody[data-layout-mode=dark] .choices__list--dropdown {\n border: 1px solid #30373f !important;\n}\nbody[data-layout-mode=dark] .choices__heading {\n border: 1px solid #30373f;\n}\nbody[data-layout-mode=dark] .choices__inner {\n color: #adb5bd;\n background-color: #282f36;\n border: 1px solid #30373f !important;\n}\nbody[data-layout-mode=dark] .choices__input {\n background-color: #282f36;\n color: #adb5bd;\n}\nbody[data-layout-mode=dark] .choices[data-type*=select-one]:after {\n border-color: #adb5bd transparent transparent;\n}\nbody[data-layout-mode=dark] .choices[data-type*=select-one].is-open:after {\n border-color: transparent transparent #adb5bd;\n}\nbody[data-layout-mode=dark] .choices[data-type*=select-one] .choices__input {\n background-color: #282f36;\n border: 1px solid #30373f;\n color: #adb5bd;\n}\nbody[data-layout-mode=dark] .choices__list--dropdown {\n background-color: #282f36;\n border-color: #30373f;\n}\nbody[data-layout-mode=dark] .choices__list--dropdown .choices__item--selectable.is-highlighted {\n background-color: #30373f;\n}\nbody[data-layout-mode=dark] .choices.is-disabled .choices__inner,\nbody[data-layout-mode=dark] .choices.is-disabled .choices__input {\n background-color: #282f36;\n}\n\n/* CSS Switch */\ninput[switch] {\n display: none;\n}\ninput[switch] + label {\n font-size: 1em;\n line-height: 1;\n width: 56px;\n height: 24px;\n background-color: #ced4da;\n background-image: none;\n border-radius: 2rem;\n padding: 0.16667rem;\n cursor: pointer;\n display: inline-block;\n text-align: center;\n position: relative;\n font-weight: 500;\n transition: all 0.1s ease-in-out;\n}\ninput[switch] + label:before {\n color: #2b3940;\n content: attr(data-off-label);\n display: block;\n font-family: inherit;\n font-weight: 500;\n font-size: 12px;\n line-height: 21px;\n position: absolute;\n right: 1px;\n margin: 3px;\n top: -2px;\n text-align: center;\n min-width: 1.66667rem;\n overflow: hidden;\n transition: all 0.1s ease-in-out;\n}\ninput[switch] + label:after {\n content: \"\";\n position: absolute;\n left: 3px;\n background-color: #e9e9ef;\n box-shadow: none;\n border-radius: 2rem;\n height: 20px;\n width: 20px;\n top: 2px;\n transition: all 0.1s ease-in-out;\n}\ninput[switch]:checked + label {\n background-color: #1c84ee;\n}\n\ninput[switch]:checked + label {\n background-color: #1c84ee;\n}\ninput[switch]:checked + label:before {\n color: #fff;\n content: attr(data-on-label);\n right: auto;\n left: 3px;\n}\ninput[switch]:checked + label:after {\n left: 33px;\n background-color: #e9e9ef;\n}\n\ninput[switch=bool] + label {\n background-color: #ef6767;\n}\n\ninput[switch=bool] + label:before, input[switch=bool]:checked + label:before,\ninput[switch=default]:checked + label:before {\n color: #fff;\n}\n\ninput[switch=bool]:checked + label {\n background-color: #34c38f;\n}\n\ninput[switch=default]:checked + label {\n background-color: #a2a2a2;\n}\n\ninput[switch=primary]:checked + label {\n background-color: #1c84ee;\n}\n\ninput[switch=success]:checked + label {\n background-color: #34c38f;\n}\n\ninput[switch=info]:checked + label {\n background-color: #16daf1;\n}\n\ninput[switch=warning]:checked + label {\n background-color: #ffcc5a;\n}\n\ninput[switch=danger]:checked + label {\n background-color: #ef6767;\n}\n\ninput[switch=dark]:checked + label {\n background-color: #2b3940;\n}\ninput[switch=dark]:checked + label:before {\n color: #f6f6f6;\n}\n\n.square-switch {\n margin-right: 7px;\n}\n.square-switch input[switch] + label, .square-switch input[switch] + label:after {\n border-radius: 4px;\n}\n\n.pcr-app {\n background: #fff;\n}\n\n.pcr-app[data-theme=classic] .pcr-selection .pcr-color-preview {\n margin-right: 0.75em;\n margin-left: 0;\n}\n.pcr-app[data-theme=classic] .pcr-selection .pcr-color-chooser, .pcr-app[data-theme=classic] .pcr-selection .pcr-color-opacity {\n margin-left: 0.75em;\n margin-right: 0;\n}\n\nbody[data-layout-mode=dark] .pcr-app {\n background-color: #30373f;\n}\n\n.flatpickr-input[readonly] {\n background-color: #fff;\n}\n\n.flatpickr-months,\n.flatpickr-weekdays {\n background-color: #1c84ee;\n}\n\nspan.flatpickr-weekday {\n color: #fff;\n font-weight: 500;\n}\n\n.flatpickr-current-month .flatpickr-monthDropdown-months:hover {\n background-color: transparent !important;\n}\n\n.flatpickr-am-pm:focus, .flatpickr-am-pm:hover,\n.numInput:focus,\n.numInput:hover,\n.numInputWrapper:focus,\n.numInputWrapper:hover {\n background-color: transparent !important;\n}\n\n.flatpickr-weekdays {\n height: 36px !important;\n border-bottom: 1px solid #e9e9ef;\n}\n\n.flatpickr-day {\n color: #2b3940 !important;\n}\n.flatpickr-day:hover, .flatpickr-day:focus {\n background-color: rgba(246, 246, 246, 0.7) !important;\n}\n.flatpickr-day.today {\n border-color: #1c84ee !important;\n background-color: rgba(28, 132, 238, 0.1);\n}\n.flatpickr-day.today:hover, .flatpickr-day.today:focus {\n color: #2b3940 !important;\n background-color: rgba(28, 132, 238, 0.15) !important;\n}\n.flatpickr-day.selected {\n background-color: #1c84ee !important;\n border-color: #1c84ee !important;\n color: #fff !important;\n}\n.flatpickr-day.flatpickr-disabled, .flatpickr-day.flatpickr-disabled:hover, .flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay, .flatpickr-day.notAllowed, .flatpickr-day.notAllowed.prevMonthDay, .flatpickr-day.notAllowed.nextMonthDay {\n color: rgba(43, 57, 64, 0.3) !important;\n}\n.flatpickr-day.inRange, .flatpickr-day.prevMonthDay.inRange, .flatpickr-day.nextMonthDay.inRange, .flatpickr-day.today.inRange, .flatpickr-day.prevMonthDay.today.inRange, .flatpickr-day.nextMonthDay.today.inRange, .flatpickr-day:hover, .flatpickr-day.prevMonthDay:hover, .flatpickr-day.nextMonthDay:hover, .flatpickr-day:focus, .flatpickr-day.prevMonthDay:focus, .flatpickr-day.nextMonthDay:focus {\n background-color: #f6f6f6;\n border-color: #f6f6f6;\n}\n.flatpickr-day.inRange {\n box-shadow: -5px 0 0 #f6f6f6, 5px 0 0 #f6f6f6;\n}\n\n.flatpickr-months .flatpickr-prev-month,\n.flatpickr-months .flatpickr-next-month,\n.flatpickr-months .flatpickr-month {\n color: rgba(255, 255, 255, 0.9) !important;\n fill: rgba(255, 255, 255, 0.9) !important;\n}\n\n.flatpickr-monthDropdown-month {\n color: rgba(0, 0, 0, 0.8);\n}\n\n.flatpickr-current-month input.cur-year[disabled], .flatpickr-current-month input.cur-year[disabled]:hover {\n color: rgba(255, 255, 255, 0.9) !important;\n}\n\n.flatpickr-time input,\n.flatpickr-time .flatpickr-time-separator,\n.flatpickr-time .flatpickr-am-pm {\n color: #2b3940 !important;\n}\n\n.flatpickr-calendar {\n background-color: #fff !important;\n box-shadow: 1px 0 0 #e9e9ef, -1px 0 0 #e9e9ef, 0 1px 0 #e9e9ef, 0 -1px 0 #e9e9ef, 0 3px 13px rgba(0, 0, 0, 0.08) !important;\n}\n.flatpickr-calendar.hasTime .flatpickr-time {\n border-top: 1px solid #e9e9ef !important;\n}\n\n.flatpickr-months {\n border-radius: 5px 5px 0px 0px;\n}\n.flatpickr-months .flatpickr-prev-month:hover svg,\n.flatpickr-months .flatpickr-next-month:hover svg {\n fill: rgba(255, 255, 255, 0.9) !important;\n}\n\nbody[data-layout-mode=dark] .flatpickr-calendar {\n background-color: #293037 !important;\n box-shadow: 1px 0 0 #30373f, -1px 0 0 #30373f, 0 1px 0 #30373f, 0 -1px 0 #30373f, 0 3px 13px rgba(0, 0, 0, 0.08) !important;\n}\nbody[data-layout-mode=dark] .flatpickr-calendar.hasTime .flatpickr-time {\n border-top: 1px solid #30373f !important;\n}\nbody[data-layout-mode=dark] .flatpickr-weekdays {\n border-color: #30373f;\n}\nbody[data-layout-mode=dark] .flatpickr-day {\n color: #adb5bd !important;\n}\nbody[data-layout-mode=dark] .flatpickr-day:hover, body[data-layout-mode=dark] .flatpickr-day:focus {\n background-color: rgba(48, 55, 63, 0.7) !important;\n}\nbody[data-layout-mode=dark] .flatpickr-day.today:hover, body[data-layout-mode=dark] .flatpickr-day.today:focus {\n color: #adb5bd !important;\n}\nbody[data-layout-mode=dark] .flatpickr-day.inRange, body[data-layout-mode=dark] .flatpickr-day.prevMonthDay.inRange, body[data-layout-mode=dark] .flatpickr-day.nextMonthDay.inRange, body[data-layout-mode=dark] .flatpickr-day.today.inRange, body[data-layout-mode=dark] .flatpickr-day.prevMonthDay.today.inRange, body[data-layout-mode=dark] .flatpickr-day.nextMonthDay.today.inRange, body[data-layout-mode=dark] .flatpickr-day:hover, body[data-layout-mode=dark] .flatpickr-day.prevMonthDay:hover, body[data-layout-mode=dark] .flatpickr-day.nextMonthDay:hover, body[data-layout-mode=dark] .flatpickr-day:focus, body[data-layout-mode=dark] .flatpickr-day.prevMonthDay:focus, body[data-layout-mode=dark] .flatpickr-day.nextMonthDay:focus {\n background-color: #30373f;\n border-color: #30373f;\n}\nbody[data-layout-mode=dark] .flatpickr-day.selected {\n background-color: #1c84ee !important;\n border-color: #1c84ee !important;\n color: #fff !important;\n}\nbody[data-layout-mode=dark] .flatpickr-day.flatpickr-disabled, body[data-layout-mode=dark] .flatpickr-day.flatpickr-disabled:hover, body[data-layout-mode=dark] .flatpickr-day.prevMonthDay, body[data-layout-mode=dark] .flatpickr-day.nextMonthDay, body[data-layout-mode=dark] .flatpickr-day.notAllowed, body[data-layout-mode=dark] .flatpickr-day.notAllowed.prevMonthDay, body[data-layout-mode=dark] .flatpickr-day.notAllowed.nextMonthDay {\n color: rgba(173, 181, 189, 0.3) !important;\n}\nbody[data-layout-mode=dark] .flatpickr-day.inRange {\n box-shadow: -5px 0 0 #30373f, 5px 0 0 #30373f;\n}\nbody[data-layout-mode=dark] .flatpickr-time input,\nbody[data-layout-mode=dark] .flatpickr-time .flatpickr-time-separator,\nbody[data-layout-mode=dark] .flatpickr-time .flatpickr-am-pm {\n color: #adb5bd !important;\n}\nbody[data-layout-mode=dark] .flatpickr-time .numInputWrapper span.arrowUp:after {\n border-bottom-color: #adb5bd;\n}\nbody[data-layout-mode=dark] .flatpickr-time .numInputWrapper span.arrowDown:after {\n border-top-color: #adb5bd;\n}\n\n.ck.ck-toolbar {\n background-color: rgba(246, 246, 246, 0.75) !important;\n border: 1px solid #ced4da !important;\n}\n.ck.ck-toolbar.ck-toolbar_grouping > .ck-toolbar__items {\n flex-wrap: wrap !important;\n}\n.ck.ck-toolbar .ck.ck-toolbar__separator {\n background: transparent !important;\n}\n.ck.ck-editor__main > .ck-editor__editable {\n border-top: 0 !important;\n background-color: #fff !important;\n border-color: #ced4da !important;\n box-shadow: 0 0.25rem 0.75rem rgba(18, 38, 63, 0.08) !important;\n}\n.ck.ck-dropdown__panel, .ck.ck-list {\n background: #fff !important;\n border: 1px solid #e9e9ef !important;\n box-shadow: 0 0.25rem 0.75rem rgba(18, 38, 63, 0.08) !important;\n}\n.ck.ck-reset_all, .ck.ck-reset_all * {\n color: #495057 !important;\n}\n.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne, .ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se {\n left: 0;\n right: auto !important;\n}\n.ck.ck-editor__editable_inline[dir=rtl] {\n text-align: left !important;\n}\n\n.ck-editor__editable {\n min-height: 245px !important;\n}\n\n.ck.ck-button.ck-on:not(.ck-disabled):hover, .ck.ck-button.ck-on:not(.ck-disabled):active,\na.ck.ck-button.ck-on:not(.ck-disabled):hover,\na.ck.ck-button.ck-on:not(.ck-disabled):active {\n background: #f6f6f6 !important;\n box-shadow: none !important;\n}\n.ck.ck-button:focus, .ck.ck-button:active,\na.ck.ck-button:focus,\na.ck.ck-button:active {\n background: #f6f6f6 !important;\n border-color: #f6f6f6 !important;\n}\n\n.ck.ck-tooltip .ck-tooltip__text {\n background: #2b3940 !important;\n color: #f6f6f6 !important;\n}\n\n.ck.ck-toolbar .ck.ck-button.ck-on,\na.ck.ck-button.ck-on,\n.ck.ck-button:not(.ck-disabled):hover,\na.ck.ck-button:not(.ck-disabled):hover {\n background: rgba(246, 246, 246, 0.75) !important;\n}\n\n.ck.ck-list__item .ck-button .ck-button__label {\n font-family: \"Be Vietnam Pro\", sans-serif;\n}\n\n.tox-tinymce {\n border: 1px solid #ced4da !important;\n}\n\n.tox .tox-collection__item {\n color: #495057 !important;\n}\n.tox .tox-menu.tox-collection.tox-collection--list.tox-selected-menu,\n.tox .tox-collection--toolbar.tox-collection--toolbar-lg.tox-selected-menu,\n.tox .tox-swatches-menu.tox-selected-menu {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n animation-name: DropDownSlide !important;\n animation-duration: 0.3s !important;\n animation-fill-mode: both !important;\n margin: 0 !important;\n position: absolute !important;\n z-index: 1000 !important;\n padding: 0.5rem 0 !important;\n background-color: #fff !important;\n border: 1px solid #e9e9ef !important;\n border-radius: 0.25rem !important;\n}\n.tox .tox-collection--list .tox-collection__group {\n border-color: #e9e9ef !important;\n}\n.tox .tox-collection--list .tox-collection__item--active {\n color: #343a40 !important;\n background-color: #f8f9fa !important;\n}\n.tox .tox-collection__group-heading {\n color: #343a40 !important;\n background-color: #f8f9fa !important;\n}\n.tox .tox-statusbar {\n border-top: 1px solid #f6f6f6 !important;\n}\n.tox .tox-menubar,\n.tox .tox-edit-area__iframe,\n.tox .tox-statusbar {\n background-color: #fff !important;\n background: none !important;\n}\n.tox .tox-mbtn {\n color: #495057 !important;\n}\n.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active) {\n background-color: #f6f6f6 !important;\n}\n.tox .tox-tbtn:hover {\n background-color: #f6f6f6 !important;\n}\n.tox .tox-toolbar,\n.tox .tox-toolbar__overflow,\n.tox .tox-toolbar__primary {\n background: #f6f6f6 !important;\n}\n.tox .tox-toolbar__primary {\n border-top-color: #f6f6f6 !important;\n}\n.tox .tox-tbtn {\n color: #495057 !important;\n}\n.tox .tox-tbtn svg {\n fill: #495057 !important;\n}\n.tox .tox-edit-area__iframe {\n background-color: #fff !important;\n}\n.tox .tox-statusbar a,\n.tox .tox-statusbar__path-item,\n.tox .tox-statusbar__wordcount {\n color: #495057 !important;\n}\n.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type) {\n border-right: 1px solid #e9e9e9 !important;\n}\n.tox .tox-collection--toolbar .tox-collection__item--active {\n background-color: #f6f6f6 !important;\n}\n\nbody[data-layout-mode=dark] .ck.ck-toolbar {\n background-color: #30373f !important;\n border-color: #30373f !important;\n}\nbody[data-layout-mode=dark] .ck.ck-dropdown__panel, body[data-layout-mode=dark] .ck.ck-list {\n background-color: #293037 !important;\n border-color: #293037 !important;\n box-shadow: 0 0.25rem 0.75rem rgba(18, 38, 63, 0.08) !important;\n}\nbody[data-layout-mode=dark] .ck.ck-editor__main > .ck-editor__editable {\n background-color: #242a30 !important;\n border-color: #30373f !important;\n}\nbody[data-layout-mode=dark] .ck.ck-icon :not([fill]) {\n fill: #adb5bd !important;\n}\nbody[data-layout-mode=dark] .ck.ck-reset_all, body[data-layout-mode=dark] .ck.ck-reset_all * {\n color: #858d98 !important;\n}\nbody[data-layout-mode=dark] .ck .ck-link-form,\nbody[data-layout-mode=dark] .ck .ck-input-text,\nbody[data-layout-mode=dark] .ck .ck-label {\n background-color: #293037 !important;\n}\nbody[data-layout-mode=dark] .ck.ck-button:focus, body[data-layout-mode=dark] .ck.ck-button:active,\nbody[data-layout-mode=dark] a.ck.ck-button:focus,\nbody[data-layout-mode=dark] a.ck.ck-button:active {\n border-color: #30373f !important;\n}\nbody[data-layout-mode=dark] .ck.ck-toolbar .ck.ck-button.ck-on,\nbody[data-layout-mode=dark] a.ck.ck-button.ck-on,\nbody[data-layout-mode=dark] .ck.ck-button:not(.ck-disabled):hover,\nbody[data-layout-mode=dark] a.ck.ck-button:not(.ck-disabled):hover {\n background: rgba(133, 141, 152, 0.2) !important;\n}\nbody[data-layout-mode=dark] .tox-tinymce {\n border: 1px solid #30373f !important;\n}\nbody[data-layout-mode=dark] .tox .tox-statusbar {\n border-top: 1px solid #30373f !important;\n}\nbody[data-layout-mode=dark] .tox .tox-toolbar,\nbody[data-layout-mode=dark] .tox .tox-toolbar__overflow,\nbody[data-layout-mode=dark] .tox .tox-toolbar__primary {\n background: #2f373f !important;\n border-top: #2f373f !important;\n}\nbody[data-layout-mode=dark] .tox .tox-mbtn {\n color: #495057 !important;\n}\nbody[data-layout-mode=dark] .tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active) {\n background-color: transparent !important;\n}\nbody[data-layout-mode=dark] .tox .tox-tbtn:hover {\n background: transparent !important;\n}\nbody[data-layout-mode=dark] .tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type) {\n border-right: 1px solid #2f373f !important;\n}\nbody[data-layout-mode=dark] .tox-menubar,\nbody[data-layout-mode=dark] .tox-edit-area__iframe,\nbody[data-layout-mode=dark] .tox-statusbar {\n background-color: #242a30 !important;\n background: none !important;\n}\n\n[dir=rtl] .ck.ck-toolbar > .ck-toolbar__items {\n flex-direction: row-reverse;\n}\n\n/* Dropzone */\n.dropzone {\n min-height: 230px;\n border: 2px dashed #ced4da;\n background: #fff;\n border-radius: 6px;\n}\n.dropzone .dz-message {\n font-size: 24px;\n width: 100%;\n}\n\nbody[data-layout-mode=dark] .dropzone {\n background: #262d33;\n border-color: #30373f;\n}\n\n.twitter-bs-wizard .twitter-bs-wizard-nav .step-icon {\n display: inline-block;\n width: 56px;\n height: 56px;\n line-height: 56px;\n border: 1px solid rgba(28, 132, 238, 0.2);\n color: #1c84ee;\n text-align: center;\n border-radius: 50%;\n position: relative;\n z-index: 1;\n font-size: 20px;\n}\n@media (max-width: 575.98px) {\n .twitter-bs-wizard .twitter-bs-wizard-nav .step-icon {\n width: 40px;\n height: 40px;\n line-height: 38px;\n }\n}\n.twitter-bs-wizard .twitter-bs-wizard-nav .step-title {\n margin-left: 6px;\n}\n.twitter-bs-wizard .twitter-bs-wizard-nav .nav-item:last-child .nav-link::after {\n display: none;\n}\n.twitter-bs-wizard .twitter-bs-wizard-nav .nav-item .nav-link.done .step-icon {\n background-color: #1c84ee;\n color: #fff;\n}\n.twitter-bs-wizard .twitter-bs-wizard-nav .nav-item .nav-link.done .uil:before {\n content: \"\\e9c3\";\n}\n.twitter-bs-wizard .twitter-bs-wizard-nav .nav-link {\n font-size: 14px;\n position: relative;\n}\n@media (max-width: 575.98px) {\n .twitter-bs-wizard .twitter-bs-wizard-nav .nav-link {\n padding: 0.5rem;\n }\n}\n.twitter-bs-wizard .twitter-bs-wizard-nav .nav-link::after {\n content: \"\";\n position: absolute;\n width: 75%;\n height: 2px;\n background-color: #e9e9ef;\n left: 62%;\n top: 50%;\n transform: translateY(-50%);\n}\n@media (max-width: 575.98px) {\n .twitter-bs-wizard .twitter-bs-wizard-nav .nav-link::after {\n display: none;\n }\n}\n.twitter-bs-wizard .twitter-bs-wizard-nav .nav-link.active {\n color: #495057;\n background-color: transparent;\n}\n.twitter-bs-wizard .twitter-bs-wizard-nav .nav-link.active .step-icon {\n background-color: rgba(28, 132, 238, 0.2);\n color: #1c84ee;\n border-color: rgba(28, 132, 238, 0.2);\n}\n.twitter-bs-wizard .twitter-bs-wizard-pager-link {\n padding-top: 24px;\n padding-left: 0;\n list-style: none;\n margin-bottom: 0;\n}\n.twitter-bs-wizard .twitter-bs-wizard-pager-link li {\n display: inline-block;\n}\n.twitter-bs-wizard .twitter-bs-wizard-pager-link li.next {\n float: right;\n}\n\n.twitter-bs-wizard-tab-content {\n padding-top: 24px;\n min-height: 262px;\n}\n\nbody[data-layout-mode=dark] .twitter-bs-wizard .twitter-bs-wizard-nav .nav-link::after {\n background-color: #30373f;\n}\n\n/* \nDatatable\n*/\ndiv.dataTables_wrapper div.dataTables_filter {\n text-align: right;\n}\n@media (max-width: 767px) {\n div.dataTables_wrapper div.dataTables_filter {\n text-align: center;\n }\n}\ndiv.dataTables_wrapper div.dataTables_filter input {\n margin-left: 0.5em;\n margin-right: 0;\n}\n\n.table.dataTable.dtr-inline.collapsed > tbody > tr > td, table.dataTable.dtr-inline.collapsed > tbody > tr > td {\n position: relative;\n}\n.table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control, table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control {\n padding-left: 30px;\n}\n.table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before, table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before {\n top: 50%;\n left: 5px;\n height: 14px;\n width: 14px;\n margin-top: -9px;\n display: block;\n position: absolute;\n color: #fff;\n border: 2px solid #fff;\n border-radius: 14px;\n box-sizing: content-box;\n text-align: center;\n text-indent: 0 !important;\n line-height: 14px;\n content: \"+\";\n background-color: #1c84ee;\n}\n.table.dataTable > thead > tr > th:not(.sorting_disabled), .table.dataTable > thead > tr > td:not(.sorting_disabled), table.dataTable > thead > tr > th:not(.sorting_disabled), table.dataTable > thead > tr > td:not(.sorting_disabled) {\n padding-right: 30px;\n padding-left: 12px;\n}\n.table.dataTable > thead .sorting::before,\n.table.dataTable > thead .sorting_asc::before,\n.table.dataTable > thead .sorting_desc::before,\n.table.dataTable > thead .sorting_asc_disabled::before,\n.table.dataTable > thead .sorting_desc_disabled::before, table.dataTable > thead .sorting::before,\ntable.dataTable > thead .sorting_asc::before,\ntable.dataTable > thead .sorting_desc::before,\ntable.dataTable > thead .sorting_asc_disabled::before,\ntable.dataTable > thead .sorting_desc_disabled::before {\n right: 1em;\n left: auto;\n}\n.table.dataTable > thead .sorting::after,\n.table.dataTable > thead .sorting_asc::after,\n.table.dataTable > thead .sorting_desc::after,\n.table.dataTable > thead .sorting_asc_disabled::after,\n.table.dataTable > thead .sorting_desc_disabled::after, table.dataTable > thead .sorting::after,\ntable.dataTable > thead .sorting_asc::after,\ntable.dataTable > thead .sorting_desc::after,\ntable.dataTable > thead .sorting_asc_disabled::after,\ntable.dataTable > thead .sorting_desc_disabled::after {\n right: 0.5em;\n left: auto;\n}\n\n.select2-container .select2-selection--single {\n background-color: #fff;\n border: 1px solid #ced4da;\n height: 38px;\n}\n.select2-container .select2-selection--single:focus {\n outline: none;\n}\n.select2-container .select2-selection--single .select2-selection__rendered {\n line-height: 36px;\n padding-left: 12px;\n color: #495057;\n}\n.select2-container .select2-selection--single .select2-selection__arrow {\n height: 34px;\n width: 34px;\n right: 3px;\n}\n.select2-container .select2-selection--single .select2-selection__arrow b {\n border-color: #adb5bd transparent transparent transparent;\n border-width: 6px 6px 0 6px;\n}\n.select2-container .select2-selection--single .select2-selection__placeholder {\n color: #495057;\n}\n\n[dir=rtl] .select2-selection__rendered {\n text-align: end;\n}\n\n.select2-container--open .select2-selection--single .select2-selection__arrow b {\n border-color: transparent transparent #adb5bd transparent !important;\n border-width: 0 6px 6px 6px !important;\n}\n\n.select2-container--default .select2-search--dropdown {\n padding: 10px;\n background-color: #fff;\n}\n.select2-container--default .select2-search--dropdown .select2-search__field {\n border: 1px solid #ced4da;\n background-color: #fff;\n color: #74788d;\n outline: none;\n}\n.select2-container--default .select2-results__option--highlighted[aria-selected] {\n background-color: #1c84ee;\n}\n.select2-container--default .select2-results__option[aria-selected=true] {\n background-color: #f8f9fa;\n color: #2b3940;\n}\n.select2-container--default .select2-results__option[aria-selected=true]:hover {\n background-color: #1c84ee;\n color: #fff;\n}\n\n.select2-results__option {\n padding: 6px 12px;\n}\n\n.select2-dropdown {\n border: 1px solid #e9e9ef;\n background-color: #fff;\n box-shadow: 0 0.25rem 0.75rem rgba(18, 38, 63, 0.08);\n}\n\n.select2-search input {\n border: 1px solid #f6f6f6;\n}\n\n.select2-container .select2-selection--multiple {\n min-height: 38px;\n background-color: #fff;\n border: 1px solid #ced4da !important;\n}\n.select2-container .select2-selection--multiple .select2-selection__rendered {\n padding: 2px 10px;\n}\n.select2-container .select2-selection--multiple .select2-search__field {\n border: 0;\n color: #495057;\n}\n.select2-container .select2-selection--multiple .select2-search__field::placeholder {\n color: #495057;\n}\n.select2-container .select2-selection--multiple .select2-selection__choice {\n background-color: #e9e9ef;\n border: 1px solid #f6f6f6;\n border-radius: 1px;\n padding: 0 7px;\n}\n\n.select2-container--default.select2-container--focus .select2-selection--multiple {\n border-color: #ced4da;\n}\n.select2-container--default .select2-results__group {\n font-weight: 600;\n}\n\n.select2-result-repository__avatar {\n float: left;\n width: 60px;\n margin-right: 10px;\n}\n.select2-result-repository__avatar img {\n width: 100%;\n height: auto;\n border-radius: 2px;\n}\n\n.select2-result-repository__statistics {\n margin-top: 7px;\n}\n\n.select2-result-repository__forks,\n.select2-result-repository__stargazers,\n.select2-result-repository__watchers {\n display: inline-block;\n font-size: 11px;\n margin-right: 1em;\n color: #adb5bd;\n}\n.select2-result-repository__forks .fa,\n.select2-result-repository__stargazers .fa,\n.select2-result-repository__watchers .fa {\n margin-right: 4px;\n}\n.select2-result-repository__forks .fa.fa-flash::before,\n.select2-result-repository__stargazers .fa.fa-flash::before,\n.select2-result-repository__watchers .fa.fa-flash::before {\n content: \"\\f0e7\";\n font-family: \"Font Awesome 5 Free\";\n}\n\n.select2-results__option--highlighted .select2-result-repository__forks,\n.select2-results__option--highlighted .select2-result-repository__stargazers,\n.select2-results__option--highlighted .select2-result-repository__watchers {\n color: rgba(255, 255, 255, 0.8);\n}\n\n.select2-result-repository__meta {\n overflow: hidden;\n}\n\n.img-flag {\n margin-right: 7px;\n height: 15px;\n width: 18px;\n}\n\nbody[data-layout-mode=dark] .select2-container .select2-selection--multiple {\n background-color: #282f36;\n color: #adb5bd;\n border: 1px solid #30373f !important;\n}\nbody[data-layout-mode=dark] .select2-container .select2-selection--multiple .select2-search__field {\n background-color: #293037;\n border-color: #30373f;\n}\nbody[data-layout-mode=dark] .select2-container .select2-selection--multiple .select2-search__field::placeholder {\n color: #adb5bd;\n}\nbody[data-layout-mode=dark] .select2-container .select2-selection--single {\n background-color: #282f36;\n border: 1px solid #30373f;\n}\nbody[data-layout-mode=dark] .select2-container .select2-selection--single .select2-selection__rendered {\n color: #adb5bd;\n}\nbody[data-layout-mode=dark] .select2-container .select2-dropdown {\n background-color: #293037;\n border-color: #30373f;\n color: #adb5bd;\n}\nbody[data-layout-mode=dark] .select2-container--default .select2-search--dropdown {\n background-color: #293037;\n border-color: #30373f;\n}\nbody[data-layout-mode=dark] .select2-container--default .select2-search--dropdown .select2-search__field {\n background-color: #293037;\n border-color: #30373f;\n}\nbody[data-layout-mode=dark] .select2-container--default .select2-results__option[aria-selected=true] {\n background-color: #2f373f;\n color: #adb5bd;\n}\n\n.table-rep-plugin .btn-toolbar {\n display: block;\n}\n.table-rep-plugin .table-responsive {\n border: none !important;\n}\n.table-rep-plugin .btn-group .btn-default {\n background-color: #74788d;\n color: #f6f6f6;\n border: 1px solid #74788d;\n}\n.table-rep-plugin .btn-group .btn-default.btn-primary {\n background-color: #1c84ee;\n border-color: #1c84ee;\n color: #fff;\n box-shadow: 0 0 0 2px rgba(28, 132, 238, 0.5);\n}\n.table-rep-plugin .btn-group.pull-right {\n float: right;\n}\n.table-rep-plugin .btn-group.pull-right .dropdown-menu {\n right: 0;\n transform: none !important;\n top: 100% !important;\n}\n.table-rep-plugin tbody th {\n font-size: 14px;\n font-weight: normal;\n}\n.table-rep-plugin .checkbox-row {\n padding-left: 40px;\n color: #495057 !important;\n}\n.table-rep-plugin .checkbox-row:hover {\n background-color: #efeff3 !important;\n}\n.table-rep-plugin .checkbox-row label {\n display: inline-block;\n padding-left: 5px;\n position: relative;\n}\n.table-rep-plugin .checkbox-row label::before {\n -o-transition: 0.3s ease-in-out;\n -webkit-transition: 0.3s ease-in-out;\n background-color: #fff;\n border-radius: 3px;\n border: 1px solid #f6f6f6;\n content: \"\";\n display: inline-block;\n height: 17px;\n left: 0;\n margin-left: -20px;\n position: absolute;\n transition: 0.3s ease-in-out;\n width: 17px;\n outline: none !important;\n}\n.table-rep-plugin .checkbox-row label::after {\n color: #e9e9ef;\n display: inline-block;\n font-size: 11px;\n height: 16px;\n left: 0;\n margin-left: -20px;\n padding-left: 3px;\n padding-top: 1px;\n position: absolute;\n top: -1px;\n width: 16px;\n}\n.table-rep-plugin .checkbox-row input[type=checkbox] {\n cursor: pointer;\n opacity: 0;\n z-index: 1;\n outline: none !important;\n}\n.table-rep-plugin .checkbox-row input[type=checkbox]:disabled + label {\n opacity: 0.65;\n}\n.table-rep-plugin .checkbox-row input[type=checkbox]:focus + label::before {\n outline-offset: -2px;\n outline: none;\n}\n.table-rep-plugin .checkbox-row input[type=checkbox]:checked + label::after {\n content: \"\\f00c\";\n font-family: \"Font Awesome 5 Free\";\n font-weight: 900;\n}\n.table-rep-plugin .checkbox-row input[type=checkbox]:disabled + label::before {\n background-color: #f8f9fa;\n cursor: not-allowed;\n}\n.table-rep-plugin .checkbox-row input[type=checkbox]:checked + label::before {\n background-color: #1c84ee;\n border-color: #1c84ee;\n}\n.table-rep-plugin .checkbox-row input[type=checkbox]:checked + label::after {\n color: #fff;\n}\n.table-rep-plugin .fixed-solution .sticky-table-header {\n top: 70px !important;\n background-color: #1c84ee;\n}\n.table-rep-plugin .fixed-solution .sticky-table-header table {\n color: #fff;\n}\n.table-rep-plugin table.focus-on tbody tr.focused th,\n.table-rep-plugin table.focus-on tbody tr.focused td,\n.table-rep-plugin .sticky-table-header {\n background: #1c84ee;\n border-color: #1c84ee;\n color: #fff;\n}\n.table-rep-plugin table.focus-on tbody tr.focused th table,\n.table-rep-plugin table.focus-on tbody tr.focused td table,\n.table-rep-plugin .sticky-table-header table {\n color: #fff;\n}\n\n@media (min-width: 992px) {\n body[data-layout=horizontal] .fixed-solution .sticky-table-header {\n top: 120px !important;\n }\n}\n\n.table-edits input, .table-edits select {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n border: 1px solid #ced4da;\n background-color: #fff;\n color: #495057;\n border-radius: 0.25rem;\n}\n.table-edits input:focus, .table-edits select:focus {\n outline: none;\n border-color: #b9bfc4;\n}\n\nbody[data-layout-mode=dark] .table-edits input, body[data-layout-mode=dark] .table-edits select {\n color: #adb5bd;\n background-color: #282f36;\n border: 1px solid #30373f;\n}\nbody[data-layout-mode=dark] .table-edits input:focus, body[data-layout-mode=dark] .table-edits select:focus {\n border-color: #30373f;\n}\n\n.apex-charts {\n min-height: 10px !important;\n}\n.apex-charts text {\n font-family: var(--bs-font-sans-serif) !important;\n fill: #adb5bd;\n}\n.apex-charts .apexcharts-canvas {\n margin: 0 auto;\n}\n\n.apexcharts-tooltip-title,\n.apexcharts-tooltip-text {\n font-family: var(--bs-font-sans-serif) !important;\n}\n\n.apexcharts-legend-series {\n font-weight: 500;\n}\n\n.apexcharts-gridline {\n pointer-events: none;\n stroke: #f8f9fa;\n}\n\n.apexcharts-legend-text {\n color: #74788d !important;\n font-family: var(--bs-font-sans-serif) !important;\n font-size: 13px !important;\n}\n\n.apexcharts-pie-label {\n fill: #fff !important;\n}\n\n.apexcharts-yaxis text,\n.apexcharts-xaxis text {\n font-family: var(--bs-font-sans-serif) !important;\n fill: #adb5bd;\n}\n\nbody[data-layout-mode=dark] .apexcharts-gridline {\n stroke: #293037;\n}\nbody[data-layout-mode=dark] .apexcharts-tooltip.apexcharts-theme-light {\n background-color: #242a30;\n border-color: #293037;\n}\nbody[data-layout-mode=dark] .apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\n background-color: #30373f;\n border-color: #363d46;\n}\nbody[data-layout-mode=dark] .apexcharts-legend-text {\n color: #adb5bd !important;\n}\nbody[data-layout-mode=dark] .apexcharts-yaxis-texts-g.apexcharts-xaxis-inversed-texts-g + line,\nbody[data-layout-mode=dark] .apexcharts-grid-row + line {\n stroke: #363d46;\n}\nbody[data-layout-mode=dark] .apexcharts-xaxis line,\nbody[data-layout-mode=dark] .apexcharts-treemap-rect,\nbody[data-layout-mode=dark] .apexcharts-heatmap-rect,\nbody[data-layout-mode=dark] .apexcharts-pie-area {\n stroke: #363d46;\n}\nbody[data-layout-mode=dark] .apexcharts-radialbar-track.apexcharts-track path {\n stroke: #363d46;\n}\nbody[data-layout-mode=dark] .apexcharts-radar-series.apexcharts-plot-series polygon,\nbody[data-layout-mode=dark] .apexcharts-radar-series.apexcharts-plot-series line {\n fill: #30373f;\n stroke: #363d46;\n}\nbody[data-layout-mode=dark] .apexcharts-pie circle {\n stroke: #363d46;\n}\n\n.e-charts {\n height: 350px;\n}\n\n.jqstooltip {\n box-sizing: content-box;\n width: auto !important;\n height: auto !important;\n background-color: #343a40 !important;\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);\n padding: 5px 10px !important;\n border-radius: 3px;\n border-color: #2b3940 !important;\n}\n\n.jqsfield {\n color: #e9e9ef !important;\n font-size: 12px !important;\n line-height: 18px !important;\n font-family: var(--bs-font-sans-serif) !important;\n font-weight: 500 !important;\n}\n\nbody[data-layout-mode=dark] .jqstooltip {\n background-color: #e9e9ef !important;\n border-color: #e9e9ef !important;\n}\nbody[data-layout-mode=dark] .jqsfield {\n color: #30373f !important;\n}\n\n.gmaps, .gmaps-panaroma {\n height: 300px !important;\n background: #f8f9fa;\n border-radius: 3px;\n}\n\n.gmaps-overlay {\n display: block;\n text-align: center;\n color: #fff;\n font-size: 16px;\n line-height: 40px;\n background: #1c84ee;\n border-radius: 4px;\n padding: 10px 20px;\n}\n\n.gmaps-overlay_arrow {\n left: 50%;\n margin-left: -16px;\n width: 0;\n height: 0;\n position: absolute;\n}\n.gmaps-overlay_arrow.above {\n bottom: -15px;\n border-left: 16px solid transparent;\n border-right: 16px solid transparent;\n border-top: 16px solid #1c84ee;\n}\n.gmaps-overlay_arrow.below {\n top: -15px;\n border-left: 16px solid transparent;\n border-right: 16px solid transparent;\n border-bottom: 16px solid #1c84ee;\n}\n\n.jvectormap-label {\n border: none;\n background: #343a40;\n color: #f8f9fa;\n font-family: var(--bs-font-sans-serif);\n font-size: 0.8125rem;\n padding: 5px 8px;\n}\n\nbody[data-layout-mode=dark] .jvectormap-label {\n background: #e9e9ef;\n color: #242a30;\n}\n\n.leaflet-map {\n height: 300px;\n}\n.leaflet-map.leaflet-container {\n z-index: 1;\n}\n\n.auth-bg {\n background-image: url(\"../images/auth-bg.jpg\");\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n}\n.auth-bg .bg-overlay {\n background: linear-gradient(to bottom, rgba(43, 57, 64, 0.5) 30%, #2b3940 100%);\n opacity: 1;\n}\n@media (min-width: 768px) {\n .auth-bg {\n height: 100vh;\n }\n}\n\n.auth-pass-inputgroup input[type=text] + .btn .mdi-eye-outline:before {\n content: \"\\f06d1\";\n}\n\n.form-floating-custom {\n position: relative;\n}\n.form-floating-custom > label {\n left: 48px;\n margin-top: 3px;\n}\n.form-floating-custom > .form-control, .form-floating-custom > .form-select {\n padding-left: 60px;\n}\n.form-floating-custom .form-floating-icon {\n position: absolute;\n top: 0;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 56px;\n color: #74788d;\n}\n.form-floating-custom .form-floating-icon svg {\n width: 20px;\n height: 20px;\n}\n\n.auth-full-page-content {\n min-height: 100vh;\n background-color: #fff;\n}\n\n.auth-logo .logo-txt {\n color: #2b3940;\n font-size: 20px;\n}\n\n.auth-pass-inputgroup input[type=input] + .btn .mdi-eye-outline:before {\n content: \"\\f06d1\";\n}\n\n.bg-bubbles {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n.bg-bubbles li {\n position: absolute;\n list-style: none;\n display: block;\n width: 40px;\n height: 40px;\n border-radius: 30px;\n background-color: rgba(255, 255, 255, 0.1);\n top: -50px;\n animation: square 20s infinite;\n transition-timing-function: linear;\n}\n.bg-bubbles li:nth-child(1) {\n left: 10%;\n}\n.bg-bubbles li:nth-child(2) {\n left: 20%;\n width: 120px;\n height: 120px;\n animation-delay: 2s;\n animation-duration: 17s;\n}\n.bg-bubbles li:nth-child(3) {\n left: 25%;\n animation-delay: 4s;\n}\n.bg-bubbles li:nth-child(4) {\n left: 40%;\n width: 80px;\n height: 80px;\n animation-duration: 22s;\n}\n.bg-bubbles li:nth-child(5) {\n left: 70%;\n width: 90px;\n height: 90px;\n}\n.bg-bubbles li:nth-child(6) {\n left: 70%;\n width: 120px;\n height: 120px;\n animation-delay: 3s;\n}\n.bg-bubbles li:nth-child(7) {\n left: 32%;\n width: 150px;\n height: 150px;\n animation-delay: 7s;\n}\n.bg-bubbles li:nth-child(8) {\n left: 55%;\n width: 80px;\n height: 80px;\n animation-delay: 15s;\n animation-duration: 40s;\n}\n.bg-bubbles li:nth-child(9) {\n left: 25%;\n width: 50px;\n height: 50px;\n animation-delay: 2s;\n animation-duration: 40s;\n}\n.bg-bubbles li:nth-child(10) {\n left: 90%;\n width: 140px;\n height: 140px;\n animation-delay: 11s;\n}\n\n@keyframes square {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(1000px) rotate(600deg);\n }\n}\nbody[data-layout-mode=dark] .form-floating-custom .form-floating-icon {\n color: #858d98;\n}\nbody[data-layout-mode=dark] .auth-logo .logo-txt {\n color: #fff;\n}\nbody[data-layout-mode=dark] .auth-full-page-content {\n background-color: #242a30;\n}\n\n/* ==============\n Email\n===================*/\n.email-leftbar {\n width: 236px;\n float: left;\n padding: 20px;\n border-radius: 5px;\n}\n\n.email-rightbar {\n margin-left: 260px;\n}\n\n.chat-user-box p.user-title {\n color: #2b3940;\n font-weight: 500;\n}\n.chat-user-box p {\n font-size: 12px;\n}\n\n@media (max-width: 767px) {\n .email-leftbar {\n float: none;\n width: 100%;\n }\n\n .email-rightbar {\n margin: 0;\n }\n}\n.mail-list a {\n display: block;\n color: #74788d;\n line-height: 24px;\n padding: 8px 5px;\n}\n.mail-list a.active {\n color: #ef6767;\n font-weight: 500;\n}\n\n.message-list {\n display: block;\n padding-left: 0;\n}\n.message-list li {\n position: relative;\n display: block;\n height: 50px;\n line-height: 50px;\n cursor: default;\n transition-duration: 0.3s;\n}\n.message-list li a {\n color: #74788d;\n}\n.message-list li:hover {\n background: #f6f6f6;\n transition-duration: 0.05s;\n}\n.message-list li .col-mail {\n float: left;\n position: relative;\n}\n.message-list li .col-mail-1 {\n width: 320px;\n}\n.message-list li .col-mail-1 .star-toggle,\n.message-list li .col-mail-1 .checkbox-wrapper-mail,\n.message-list li .col-mail-1 .dot {\n display: block;\n float: left;\n}\n.message-list li .col-mail-1 .dot {\n border: 4px solid transparent;\n border-radius: 100px;\n margin: 22px 26px 0;\n height: 0;\n width: 0;\n line-height: 0;\n font-size: 0;\n}\n.message-list li .col-mail-1 .checkbox-wrapper-mail {\n margin: 15px 10px 0 20px;\n}\n.message-list li .col-mail-1 .star-toggle {\n margin-top: 18px;\n margin-left: 5px;\n}\n.message-list li .col-mail-1 .title {\n position: absolute;\n top: 0;\n left: 110px;\n right: 0;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n margin-bottom: 0;\n}\n.message-list li .col-mail-2 {\n position: absolute;\n top: 0;\n left: 320px;\n right: 0;\n bottom: 0;\n}\n.message-list li .col-mail-2 .subject,\n.message-list li .col-mail-2 .date {\n position: absolute;\n top: 0;\n}\n.message-list li .col-mail-2 .subject {\n left: 0;\n right: 200px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n.message-list li .col-mail-2 .date {\n right: 0;\n width: 170px;\n padding-left: 80px;\n}\n.message-list li.active, .message-list li.active:hover {\n box-shadow: inset 3px 0 0 #1c84ee;\n}\n.message-list li.unread {\n background-color: #f6f6f6;\n font-weight: 500;\n color: #212b31;\n}\n.message-list li.unread a {\n color: #212b31;\n font-weight: 500;\n}\n.message-list .checkbox-wrapper-mail {\n cursor: pointer;\n height: 20px;\n width: 20px;\n position: relative;\n display: inline-block;\n box-shadow: inset 0 0 0 1px #ced4da;\n border-radius: 1px;\n}\n.message-list .checkbox-wrapper-mail input {\n opacity: 0;\n cursor: pointer;\n}\n.message-list .checkbox-wrapper-mail input:checked ~ label {\n opacity: 1;\n}\n.message-list .checkbox-wrapper-mail label {\n position: absolute;\n height: 20px;\n width: 20px;\n left: 0;\n cursor: pointer;\n opacity: 0;\n margin-bottom: 0;\n transition-duration: 0.05s;\n top: 0;\n}\n.message-list .checkbox-wrapper-mail label:before {\n content: \"\\f012c\";\n font-family: \"Material Design Icons\";\n top: 0;\n height: 20px;\n color: #212b31;\n width: 20px;\n position: absolute;\n margin-top: -16px;\n left: 4px;\n font-size: 13px;\n}\n\n@media (max-width: 575.98px) {\n .message-list li .col-mail-1 {\n width: 200px;\n }\n}\n.email-editor .ck-editor__editable_inline {\n min-height: 200px !important;\n}\n\nbody[data-layout-mode=dark] .mail-list a {\n color: #858d98;\n}\nbody[data-layout-mode=dark] .mail-list a.active {\n color: #ef6767;\n}\nbody[data-layout-mode=dark] .chat-user-box p.user-title {\n color: #adb5bd;\n}\nbody[data-layout-mode=dark] .message-list li a {\n color: #858d98;\n}\nbody[data-layout-mode=dark] .message-list li:hover {\n background: #293037;\n}\nbody[data-layout-mode=dark] .message-list li.unread {\n background: #293037;\n color: #adb5bd;\n}\nbody[data-layout-mode=dark] .message-list .checkbox-wrapper-mail {\n box-shadow: inset 0 0 0 1px #858d98;\n}\nbody[data-layout-mode=dark] .message-list .checkbox-wrapper-mail label::before {\n color: #adb5bd;\n}\n\n@media (min-width: 992px) {\n .chat-leftsidebar {\n min-width: 260px;\n }\n}\n@media (min-width: 1200px) {\n .chat-leftsidebar {\n min-width: 380px;\n }\n}\n.chat-leftsidebar .chat-leftsidebar-nav .nav .nav-link.active {\n background-color: #1c84ee;\n color: #fff;\n}\n\n.search-box .form-control {\n padding-left: 40px;\n}\n.search-box .search-icon {\n font-size: 16px;\n position: absolute;\n left: 13px;\n top: 0;\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.chat-noti-dropdown.active:before {\n content: \"\";\n position: absolute;\n width: 8px;\n height: 8px;\n background-color: #ef6767;\n border-radius: 50%;\n right: 0;\n}\n.chat-noti-dropdown .btn {\n padding: 6px;\n box-shadow: none;\n font-size: 20px;\n}\n\n.chat-message-list {\n height: calc(100vh - 346px);\n}\n@media (min-width: 992px) {\n .chat-message-list {\n height: calc(100vh - 406px);\n }\n}\n\n.chat-list {\n margin: 0;\n}\n.chat-list li.active a {\n background-color: rgba(28, 132, 238, 0.075);\n border-color: transparent;\n}\n.chat-list li a {\n display: block;\n padding: 14px 16px;\n color: #74788d;\n transition: all 0.4s;\n border-top: 1px solid #e9e9ef;\n position: relative;\n}\n.chat-list li a:hover {\n background-color: rgba(28, 132, 238, 0.075);\n border-color: transparent;\n}\n.chat-list li .user-img {\n position: relative;\n}\n.chat-list li .user-img .user-status {\n width: 10px;\n height: 10px;\n background-color: #adb5bd;\n border-radius: 50%;\n border: 2px solid #fff;\n position: absolute;\n left: 0;\n bottom: 0;\n}\n.chat-list li .user-img.online .user-status {\n background-color: #34c38f;\n}\n.chat-list li .user-img.away .user-status {\n background-color: #ffcc5a;\n}\n.chat-list li.unread a {\n font-weight: 600;\n color: #2b3940;\n}\n.chat-list li .unread-message {\n position: absolute;\n display: inline-block;\n right: 16px;\n top: 33px;\n}\n\n.contact-list {\n font-size: 12px;\n text-transform: uppercase;\n color: #74788d;\n font-weight: 600;\n margin-bottom: 7px;\n}\n\n.user-chat-nav .dropdown .nav-btn {\n height: 36px;\n width: 36px;\n line-height: 36px;\n box-shadow: none;\n padding: 0;\n font-size: 18px;\n}\n\n.chat-conversation li {\n clear: both;\n}\n.chat-conversation .chat-day-title {\n position: relative;\n text-align: center;\n margin-bottom: 24px;\n border: none;\n}\n.chat-conversation .chat-day-title .title {\n background-color: #fff;\n position: relative;\n z-index: 1;\n padding: 6px 24px;\n}\n.chat-conversation .chat-day-title:before {\n content: \"\";\n position: absolute;\n width: 100%;\n height: 1px;\n left: 0;\n right: 0;\n background-color: #e9e9ef;\n top: 10px;\n}\n.chat-conversation .chat-day-title .badge {\n font-size: 12px;\n}\n.chat-conversation .conversation-list {\n margin-bottom: 24px;\n position: relative;\n max-width: 85%;\n}\n.chat-conversation .conversation-list .ctext-wrap {\n display: flex;\n margin-bottom: 10px;\n}\n.chat-conversation .conversation-list .ctext-wrap-content {\n padding: 12px 20px;\n background-color: #1c84ee;\n border-radius: 8px;\n color: #fff;\n position: relative;\n margin-left: 16px;\n}\n.chat-conversation .conversation-list .ctext-wrap-content:before {\n content: \"\";\n position: absolute;\n border: 5px solid transparent;\n border-right-color: #1c84ee;\n border-top-color: #1c84ee;\n left: -10px;\n top: 10px;\n}\n.chat-conversation .conversation-list .ctext-wrap-content .conversation-name .time {\n font-size: 10px;\n position: absolute;\n right: -58px;\n bottom: 0;\n color: #74788d;\n font-weight: 400;\n opacity: 0;\n transition: all 0.4s;\n}\n.chat-conversation .conversation-list .ctext-wrap-content .conversation-name .user-name {\n color: rgba(255, 255, 255, 0.5);\n}\n.chat-conversation .conversation-list .ctext-wrap-content:hover .time {\n opacity: 1;\n}\n.chat-conversation .conversation-list .dropdown .dropdown-toggle {\n font-size: 18px;\n padding: 4px;\n color: #74788d;\n}\n@media (max-width: 575.98px) {\n .chat-conversation .conversation-list .dropdown .dropdown-toggle {\n display: none;\n }\n}\n.chat-conversation .conversation-list .message-img {\n border-radius: 0.2rem;\n position: relative;\n}\n.chat-conversation .conversation-list .message-img .message-img-list {\n position: relative;\n}\n.chat-conversation .conversation-list .message-img img {\n max-width: 120px;\n}\n.chat-conversation .right .conversation-list {\n float: right;\n text-align: right;\n}\n.chat-conversation .right .conversation-list .ctext-wrap .ctext-wrap-content {\n order: 2;\n background-color: rgba(246, 246, 246, 0.5);\n text-align: right;\n border-radius: 8px;\n margin-left: 0;\n margin-right: 16px;\n color: #2b3940;\n}\n.chat-conversation .right .conversation-list .ctext-wrap .ctext-wrap-content:before {\n border: 5px solid transparent;\n border-top-color: rgba(246, 246, 246, 0.5);\n border-left-color: rgba(246, 246, 246, 0.5);\n left: auto;\n right: -10px;\n}\n.chat-conversation .right .conversation-list .ctext-wrap .conversation-name {\n justify-content: flex-end;\n}\n.chat-conversation .right .conversation-list .ctext-wrap .conversation-name .user-name, .chat-conversation .right .conversation-list .ctext-wrap .conversation-name .time {\n color: #74788d;\n}\n.chat-conversation .right .conversation-list .ctext-wrap .conversation-name .time {\n order: 1;\n margin-left: 0;\n margin-right: 8px;\n position: absolute;\n left: -58px;\n right: auto;\n}\n.chat-conversation .right .conversation-list .ctext-wrap .conversation-name .user-name {\n order: 2;\n}\n.chat-conversation .right .conversation-list .dropdown {\n order: 1;\n}\n\n@media (max-width: 575.98px) {\n .chat-send {\n min-width: auto;\n }\n}\n\nbody[data-layout=horizontal] .chat-message-list {\n height: calc(100vh - 346px);\n}\n@media (min-width: 992px) {\n body[data-layout=horizontal] .chat-message-list {\n height: calc(100vh - 476px);\n }\n}\nbody[data-layout=horizontal] .chat-conversation {\n height: calc(100vh - 300px);\n}\n@media (min-width: 992px) {\n body[data-layout=horizontal] .chat-conversation {\n height: calc(100vh - 420px);\n }\n}\n\nbody[data-layout-mode=dark] .chat-leftsidebar .chat-leftsidebar-nav .nav .nav-link.active {\n background-color: #242a30;\n}\nbody[data-layout-mode=dark] .chat-list li a {\n color: #858d98;\n border-color: #30373f;\n}\nbody[data-layout-mode=dark] .chat-list li .user-img .user-status {\n border-color: #30373f;\n}\nbody[data-layout-mode=dark] .chat-list li.unread a {\n color: #adb5bd;\n}\nbody[data-layout-mode=dark] .chat-conversation .chat-day-title .title {\n background-color: #242a30;\n}\nbody[data-layout-mode=dark] .chat-conversation .chat-day-title::before {\n background-color: #30373f;\n}\nbody[data-layout-mode=dark] .chat-conversation .right .conversation-list .ctext-wrap .ctext-wrap-content {\n background-color: rgba(48, 55, 63, 0.5);\n color: #adb5bd;\n}\nbody[data-layout-mode=dark] .chat-conversation .right .conversation-list .ctext-wrap .ctext-wrap-content::before {\n border-top-color: rgba(48, 55, 63, 0.5);\n border-left-color: rgba(48, 55, 63, 0.5);\n}\nbody[data-layout-mode=dark] .chat-conversation .right .conversation-list .ctext-wrap .conversation-name .time, body[data-layout-mode=dark] .chat-conversation .right .conversation-list .ctext-wrap .conversation-name .user-name {\n color: #858d98;\n}\n\n.slide-bg {\n height: 100vh;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n}\n\n.coming-content {\n position: absolute;\n top: 0;\n z-index: 1;\n left: 0;\n width: 100%;\n display: flex;\n align-items: center;\n}\n.coming-content .app-search {\n max-width: 340px;\n}\n\n.preview-thumbsnav {\n position: absolute;\n bottom: 14px;\n z-index: 9;\n left: 50%;\n transform: translateX(-50%);\n max-width: 120px;\n}\n.preview-thumbsnav .nav-img {\n cursor: pointer;\n padding: 3px;\n background-color: rgba(255, 255, 255, 0.1);\n border: 1px solid rgba(255, 255, 255, 0.1);\n}\n@media (max-width: 575.98px) {\n .preview-thumbsnav .nav-img {\n display: none;\n }\n}\n.preview-thumbsnav .swiper-slide-thumb-active .nav-img {\n background-color: #fff;\n border: 1px solid #fff;\n}\n\n.coming-box {\n width: 25%;\n}\n.coming-box:last-of-type .count-num::after {\n display: none;\n}\n\n.counter-number {\n font-size: 32px;\n font-weight: 600;\n text-align: center;\n display: flex;\n gap: 24px;\n}\n@media (max-width: 575.98px) {\n .counter-number {\n font-size: 18px;\n }\n}\n.counter-number .count-title {\n position: relative;\n bottom: -120px;\n font-size: 16px;\n font-weight: 500;\n display: block;\n padding-bottom: 6px;\n color: rgba(255, 255, 255, 0.5);\n}\n@media (max-width: 575.98px) {\n .counter-number .count-title {\n bottom: -95px;\n font-size: 14px;\n }\n}\n\n.count-num {\n background-color: rgba(255, 255, 255, 0.1);\n padding: 16px 8px;\n position: relative;\n border-radius: 4px;\n color: #fff;\n}\n.count-num::after {\n content: \":\";\n font-size: 20px;\n position: absolute;\n right: -16px;\n top: 50%;\n transform: translateY(-50%);\n color: #fff;\n}\n\nbody[data-layout-mode=dark] .count-num {\n background-color: #30373f;\n}\nbody[data-layout-mode=dark] .preview-thumbsnav .swiper-slide-thumb-active .nav-img {\n background-color: #30373f;\n border-color: #30373f;\n}\n\n.search-box .form-control {\n border-radius: 30px;\n padding-left: 40px;\n}\n.search-box .search-icon {\n font-size: 16px;\n position: absolute;\n left: 13px;\n top: 0;\n line-height: 38px;\n}\n\n.product-list li a {\n display: block;\n padding: 4px 0px;\n color: #495057;\n}\n\n.product-view-nav.nav-pills .nav-item {\n margin-left: 4px;\n}\n.product-view-nav.nav-pills .nav-link {\n width: 36px;\n height: 36px;\n font-size: 16px;\n padding: 0;\n line-height: 36px;\n text-align: center;\n border-radius: 50%;\n}\n\n.product-ribbon {\n position: absolute;\n right: 0px;\n top: 0px;\n}\n\n.product-detai-imgs .nav .nav-link {\n margin: 7px 0px;\n}\n.product-detai-imgs .nav .nav-link.active {\n background-color: #f6f6f6;\n}\n\n.product-color a {\n display: inline-block;\n text-align: center;\n color: #495057;\n}\n.product-color a .product-color-item {\n margin: 7px;\n}\n.product-color a.active, .product-color a:hover {\n color: #1c84ee;\n}\n.product-color a.active .product-color-item, .product-color a:hover .product-color-item {\n border-color: #1c84ee !important;\n}\n\n.visa-card .visa-logo {\n line-height: 0.5;\n}\n.visa-card .visa-pattern {\n position: absolute;\n font-size: 385px;\n color: rgba(255, 255, 255, 0.05);\n line-height: 0.4;\n right: 0px;\n bottom: 0px;\n}\n\n.checkout-tabs .nav-pills .nav-link {\n margin-bottom: 24px;\n text-align: center;\n background-color: #fff;\n box-shadow: 0 0.25rem 0.75rem rgba(18, 38, 63, 0.08);\n}\n.checkout-tabs .nav-pills .nav-link.active {\n background-color: #1c84ee;\n}\n.checkout-tabs .nav-pills .nav-link .check-nav-icon {\n font-size: 36px;\n}\n\nbody[data-layout-mode=dark] .product-detai-imgs .nav .nav-link.active {\n background-color: #30373f;\n}\nbody[data-layout-mode=dark] .product-list li a {\n color: #e9e9ef;\n}\nbody[data-layout-mode=dark] .checkout-tabs .nav-pills .nav-link {\n background-color: #30373f;\n}\nbody[data-layout-mode=dark] .checkout-tabs .nav-pills .nav-link.active {\n background-color: #1c84ee;\n}\n\n/************** vertical timeline **************/\n.timeline {\n position: relative;\n width: 100%;\n padding: 30px 0;\n}\n@media (max-width: 767.98px) {\n .timeline {\n padding: 0;\n }\n}\n.timeline .timeline-end,\n.timeline .timeline-start,\n.timeline .timeline-year {\n position: relative;\n width: 100%;\n text-align: center;\n z-index: 1;\n}\n.timeline .timeline-end p,\n.timeline .timeline-start p,\n.timeline .timeline-year p {\n display: inline-block;\n width: 80px;\n height: 80px;\n margin: 0;\n padding: 30px 0;\n text-align: center;\n background-color: #1c84ee;\n border-radius: 100px;\n color: #fff;\n text-transform: uppercase;\n}\n.timeline .timeline-year {\n margin: 30px 0;\n}\n.timeline .timeline-continue {\n position: relative;\n width: 100%;\n padding: 60px 0;\n}\n.timeline .timeline-continue:after {\n position: absolute;\n content: \"\";\n width: 1px;\n height: 100%;\n top: 0;\n left: 50%;\n margin-left: -1px;\n background: #1c84ee;\n}\n.timeline .timeline-icon {\n margin: 42px 10px 0 10px;\n}\n.timeline .timeline-left {\n text-align: right;\n}\n.timeline .timeline-left .timeline-icon {\n text-align: left;\n}\n.timeline .timeline-right {\n text-align: left;\n}\n.timeline .timeline-right .timeline-icon {\n text-align: right;\n}\n.timeline .timeline-icon::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 14px;\n height: 14px;\n top: 45px;\n background: #1c84ee;\n border-radius: 15px;\n z-index: 1;\n}\n@media (min-width: 768px) {\n .timeline .event-content {\n padding-right: 24px;\n }\n .timeline .timeline-text {\n margin-right: 40px;\n }\n}\n.timeline .timeline-left .timeline-icon::after {\n left: -7px;\n}\n@media (min-width: 768px) {\n .timeline .timeline-left .event-content {\n padding-right: 0;\n padding-left: 24px;\n }\n .timeline .timeline-left .timeline-text {\n margin-right: 0px;\n margin-left: 40px;\n }\n .timeline .timeline-left .event-img {\n justify-content: flex-end;\n }\n}\n.timeline .timeline-right .timeline-icon::after {\n right: -7px;\n}\n.timeline .timeline-box {\n position: relative;\n display: inline-block;\n margin: 15px;\n padding: 20px;\n background-color: #fff;\n box-shadow: 0 0.25rem 0.75rem rgba(18, 38, 63, 0.08);\n border-radius: 6px;\n}\n.timeline .timeline-box::after {\n content: \"\";\n position: absolute;\n width: 16px;\n height: 16px;\n top: 26px;\n background-color: #fff;\n border: 1px solid #f6f6f6;\n transform: rotate(45deg);\n margin: 0px auto;\n}\n.timeline .timeline-launch {\n position: relative;\n display: inline-block;\n margin: 15px;\n padding: 20px;\n border: 1px solid #e9e9ef;\n border-radius: 6px;\n width: 100%;\n margin: 15px 0;\n padding: 0;\n border: none;\n text-align: center;\n background: transparent;\n}\n\n.timeline-date {\n right: 20px;\n}\n@media (max-width: 767.98px) {\n .timeline-date {\n left: -70px;\n right: auto;\n }\n}\n\n.timeline-left .timeline-date {\n left: 20px;\n}\n@media (max-width: 767.98px) {\n .timeline-left .timeline-date {\n left: -70px;\n right: auto;\n }\n}\n\n.timeline .timeline-date {\n width: 54px;\n height: 80px;\n display: inline-block;\n padding: 8px;\n clip-path: polygon(0 0, 100% 0, 100% 80%, 50% 100%, 0 80%);\n top: -10px;\n position: absolute;\n z-index: 1;\n}\n@media (max-width: 767.98px) {\n .timeline .timeline-date {\n top: 0px;\n }\n}\n.timeline .timeline-right .timeline-box::after {\n border-color: transparent transparent #f6f6f6 #f6f6f6;\n left: -8px;\n right: 100%;\n}\n.timeline .timeline-left .timeline-box::after {\n border-color: #f6f6f6 #f6f6f6 transparent transparent;\n right: -8px;\n}\n.timeline .timeline-launch .timeline-box::after {\n top: -8px;\n left: 32px;\n border-color: #f6f6f6 transparent transparent #f6f6f6;\n}\n@media (min-width: 768px) {\n .timeline .timeline-launch .timeline-box::after {\n left: 50%;\n transform: rotate(45deg) translateX(-50%);\n top: -2px;\n }\n}\n.timeline .timeline-launch .timeline-text {\n width: 100%;\n}\n\n@media (max-width: 767px) {\n .timeline .timeline-continue::after {\n left: 40px;\n }\n\n .timeline .timeline-end,\n.timeline .timeline-start,\n.timeline .timeline-year {\n text-align: left;\n }\n .timeline .row.timeline-left {\n text-align: left;\n }\n .timeline .row.timeline-left .timeline-icon {\n text-align: left;\n }\n .timeline .row.timeline-right {\n text-align: left;\n }\n .timeline .row.timeline-right .timeline-icon {\n text-align: left;\n }\n .timeline .timeline-launch {\n text-align: left;\n margin-bottom: 0;\n }\n\n .timeline .row.timeline-left .timeline-icon::after {\n left: 43px;\n }\n .timeline .row.timeline-right .timeline-icon::after {\n left: 43px;\n }\n\n .timeline .timeline-box {\n margin-left: 82px;\n margin-right: 0;\n }\n .timeline .row.timeline-right .timeline-icon {\n margin-left: 55px;\n }\n .timeline .row.timeline-left .timeline-icon {\n margin-left: 55px;\n }\n .timeline .timeline-launch .timeline-box {\n margin-left: 0;\n margin-bottom: 0;\n }\n .timeline .row.timeline-left .timeline-box::after {\n left: -8px;\n border-color: transparent transparent #f6f6f6 #f6f6f6;\n right: auto;\n }\n}\nbody[data-layout-mode=dark] .timeline .timeline-box {\n border-color: #30373f;\n background-color: #242a30;\n}\nbody[data-layout-mode=dark] .timeline .timeline-box:after {\n background-color: #242a30;\n}\nbody[data-layout-mode=dark] .timeline .timeline-left .timeline-box:after {\n border-color: #30373f #30373f transparent transparent;\n}\nbody[data-layout-mode=dark] .timeline .timeline-right .timeline-box:after {\n border-color: transparent transparent #30373f #30373f;\n}\nbody[data-layout-mode=dark] .timeline .timeline-launch .timeline-box::after {\n border-color: #30373f transparent transparent #30373f;\n}\n\n.profile-user {\n background-image: url(../images/profile_default_bg.jpg);\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n margin: -24px -24px 23px -24px;\n padding: 140px 0px;\n position: relative;\n}\n.profile-user:after {\n background: linear-gradient(to bottom, rgba(43, 57, 64, 0.5) 30%, #2b3940 100%);\n position: absolute;\n height: 100%;\n width: 100%;\n right: 0;\n bottom: 0;\n left: 0;\n top: 0;\n opacity: 0.5;\n content: \"\";\n}\n\n.profile-content {\n position: relative;\n margin-top: -60px;\n}\n\n/*********************\n Maintenance\n**********************/\n.maintenance-cog-icon .cog-icon {\n position: relative;\n bottom: 24px;\n right: 14px;\n}\n\n.pricing-badge {\n position: absolute;\n top: 0;\n z-index: 9;\n right: 0;\n width: 100%;\n display: block;\n font-size: 15px;\n padding: 0;\n overflow: hidden;\n height: 100px;\n}\n.pricing-badge .badge {\n float: right;\n transform: rotate(45deg);\n right: -67px;\n top: 17px;\n position: relative;\n text-align: center;\n width: 200px;\n font-size: 13px;\n margin: 0;\n padding: 7px 10px;\n font-weight: 500;\n color: #1c84ee;\n background: #fff;\n}\n\n.pricing-tab-box .nav-link {\n padding: 16px 20px;\n border: 1px solid #e9e9ef;\n background: #fff;\n}\n.pricing-tab-box .nav-link.active {\n border: 1px solid #1c84ee;\n padding: 16px 20px;\n background: #fff;\n}\n.pricing-tab-box .nav-link.active i {\n color: #1c84ee;\n}\n.pricing-tab-box .nav-link.active i:before {\n content: \"\\e9a8\";\n}\n.pricing-tab-box .nav-link.active h1 {\n color: #1c84ee;\n}\n\n.pricing-table-bg {\n background: #fff;\n}\n\nbody[data-layout-mode=dark] .pricing-tab-box .nav-link {\n border-color: #30373f;\n background: #242a30;\n}\nbody[data-layout-mode=dark] .pricing-tab-box .nav-link.active {\n border-color: #1c84ee;\n background: #242a30;\n}\nbody[data-layout-mode=dark] .pricing-table-bg {\n background: #242a30;\n}\n\n.error-title {\n text-transform: uppercase;\n background: repeating-linear-gradient(45deg, #1c84ee, #1c84ee 20px, #34c38f 40px, #34c38f 10px);\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n font-size: 12rem;\n line-height: 0.8;\n position: relative;\n}","// \r\n// _header.scss\r\n// \r\n\r\n#page-topbar {\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n left: 0;\r\n z-index: 1002;\r\n background-color: $header-bg;\r\n border-bottom: 1px solid $border-color;\r\n box-shadow: $header-box-shadow;\r\n}\r\n\r\n.navbar-header {\r\n display: flex;\r\n -ms-flex-pack: justify;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin: 0 auto;\r\n height: $header-height;\r\n padding: 0 $grid-gutter-width 0 0;\r\n\r\n .dropdown .show {\r\n &.header-item {\r\n background-color: $gray-100;\r\n }\r\n }\r\n}\r\n\r\n.navbar-brand-box {\r\n padding: 0 1.5rem;\r\n width: $navbar-brand-box-width;\r\n background: $sidebar-bg;\r\n border-right: 1px solid $sidebar-border-color;\r\n}\r\n\r\n.logo {\r\n line-height: 69px;\r\n color: inherit !important;\r\n\r\n .logo-sm {\r\n display: none;\r\n }\r\n}\r\n\r\n.logo-txt {\r\n font-weight: 700;\r\n font-size: 18px;\r\n vertical-align: middle;\r\n margin-left: 5px;\r\n text-transform: uppercase;\r\n}\r\n\r\n.logo-light {\r\n display: none;\r\n}\r\n\r\n\r\nbody:not([data-sidebar-size=\"sm\"]) {\r\n #vertical-menu-btn {\r\n margin-left: -52px;\r\n margin-right: 20px;\r\n @media (max-width: 991.98px){\r\n margin-left: 0;\r\n }\r\n }\r\n}\r\n\r\n/* Search */\r\n\r\n.app-search {\r\n padding: calc(#{$header-height - 40px} / 2) 0;\r\n position: relative;\r\n\r\n .form-control {\r\n border: none;\r\n height: 40px;\r\n padding-left: 17px;\r\n padding-right: 50px;\r\n background-color: $topbar-search-bg;\r\n box-shadow: none;\r\n }\r\n .btn {\r\n position: absolute;\r\n right: 3px;\r\n top: 3px;\r\n height: 34px;\r\n padding: 0 10px;\r\n }\r\n}\r\n\r\n.layout-mode-light {\r\n display: none;\r\n}\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n .layout-mode-dark {\r\n display: none;\r\n }\r\n .layout-mode-light {\r\n display: inline-block;\r\n }\r\n}\r\n\r\n// Mega menu\r\n\r\n.megamenu-list {\r\n li{\r\n position: relative;\r\n padding: 5px 0px;\r\n a{\r\n color: $dropdown-color;\r\n }\r\n }\r\n}\r\n\r\n@media (max-width: 992px) {\r\n .navbar-brand-box {\r\n width: auto;\r\n }\r\n\r\n .logo {\r\n\r\n span.logo-lg {\r\n display: none;\r\n }\r\n\r\n span.logo-sm {\r\n display: inline-block;\r\n }\r\n }\r\n}\r\n\r\n.page-content {\r\n padding: calc(#{$header-height} + #{$grid-gutter-width}) calc(#{$grid-gutter-width} / 2) $footer-height calc(#{$grid-gutter-width} / 2);\r\n}\r\n\r\n.header-item {\r\n height: $header-height;\r\n box-shadow: none !important;\r\n color: $header-item-color;\r\n border: 0;\r\n border-radius: 0px;\r\n\r\n &:hover {\r\n color: $header-item-color;\r\n }\r\n}\r\n\r\n.header-profile-user {\r\n height: 36px;\r\n width: 36px;\r\n background-color: $gray-600;\r\n padding: 3px;\r\n}\r\n\r\n.noti-icon {\r\n i {\r\n font-size: 22px;\r\n color: $header-item-color;\r\n }\r\n\r\n .badge {\r\n position: absolute;\r\n top: 12px;\r\n right: 4px;\r\n }\r\n}\r\n\r\n.notification-item {\r\n .d-flex {\r\n padding: 0.75rem 1rem;\r\n\r\n &:hover {\r\n background-color: $gray-100;\r\n }\r\n }\r\n}\r\n\r\n// Dropdown with Icons\r\n.dropdown-icon-item {\r\n display: block;\r\n border-radius: 3px;\r\n line-height: 34px;\r\n text-align: center;\r\n padding: 15px 0 9px;\r\n display: block;\r\n color: $gray-600;\r\n\r\n img {\r\n height: 24px;\r\n }\r\n\r\n span {\r\n display: block;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n }\r\n\r\n &:hover {\r\n background-color: $gray-100;\r\n }\r\n}\r\n\r\n// Full Screen\r\n.fullscreen-enable {\r\n [data-toggle=\"fullscreen\"] {\r\n .bx-fullscreen::before {\r\n content: \"\\ea3f\";\r\n }\r\n }\r\n}\r\n\r\nbody[data-topbar=\"dark\"] {\r\n #page-topbar { \r\n background-color: $header-dark-bg;\r\n border-color: $header-dark-bg;\r\n box-shadow: $header-dark-box-shadow;\r\n }\r\n .navbar-brand-box { \r\n background-color: $header-dark-bg;\r\n border-color: $header-dark-bg;\r\n\r\n .logo{\r\n color: $white !important;\r\n }\r\n }\r\n .navbar-header {\r\n .dropdown .show {\r\n &.header-item {\r\n background-color: rgba($white, 0.05);\r\n }\r\n }\r\n\r\n .waves-effect .waves-ripple {\r\n background: rgba($white, 0.4);\r\n }\r\n }\r\n\r\n .header-item {\r\n color: $header-dark-item-color;\r\n \r\n &:hover {\r\n color: $header-dark-item-color;\r\n }\r\n\r\n &.border-start, &.border-end{\r\n border-color: rgba($white, 0.1) !important;\r\n }\r\n \r\n &.bg-soft-light{\r\n background-color: rgba($white, 0.04) !important;\r\n }\r\n }\r\n\r\n .header-profile-user {\r\n background-color: rgba($white, 0.25);\r\n }\r\n \r\n .noti-icon {\r\n i {\r\n color: $header-dark-item-color;\r\n }\r\n }\r\n\r\n .logo-dark {\r\n display: none;\r\n }\r\n\r\n .logo-light {\r\n display: block;\r\n }\r\n\r\n .app-search {\r\n \r\n .form-control {\r\n background-color: rgba($topbar-search-bg,0.1);\r\n color: $white;\r\n }\r\n span,\r\n input.form-control::-webkit-input-placeholder {\r\n color: rgba($white,0.5);\r\n }\r\n }\r\n}\r\n\r\n@media (max-width: 600px) {\r\n .navbar-header {\r\n .dropdown {\r\n position: static;\r\n\r\n .dropdown-menu {\r\n left: 10px !important;\r\n right: 10px !important;\r\n }\r\n }\r\n }\r\n}\r\n\r\n@media (max-width: 380px) {\r\n .navbar-brand-box {\r\n display: none;\r\n }\r\n}\r\n\r\nbody[data-layout=\"horizontal\"] {\r\n #page-topbar{\r\n box-shadow: none;\r\n }\r\n .navbar-brand-box {\r\n width: auto;\r\n border: 0;\r\n background-color: transparent;\r\n box-shadow: none;\r\n @media (min-width: 992px){\r\n padding-left: 0;\r\n margin-right: 10px;\r\n }\r\n }\r\n .page-content {\r\n margin-top: $header-height;\r\n padding: calc(55px + #{$grid-gutter-width}) calc(#{$grid-gutter-width} / 2) $footer-height calc(#{$grid-gutter-width} / 2);\r\n } \r\n\r\n .navbar-header{\r\n @media (min-width: 992px){\r\n padding-left: $grid-gutter-width;\r\n padding-right: $grid-gutter-width;\r\n }\r\n }\r\n\r\n &[data-sidebar=dark]{\r\n .navbar-brand-box {\r\n background-color: transparent;\r\n box-shadow: none;\r\n }\r\n }\r\n}\r\n\r\n@media (max-width: 992px) { \r\n body[data-layout=\"horizontal\"] {\r\n .page-content {\r\n margin-top: 15px;\r\n } \r\n }\r\n}\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n\r\n .header-item {\r\n\r\n &.border-start, &.border-end{\r\n border-color: rgba($white, 0.1) !important;\r\n }\r\n \r\n &.bg-soft-light{\r\n background-color: rgba($white, 0.04) !important;\r\n }\r\n }\r\n\r\n #page-topbar {\r\n background-color: lighten($gray-dark-200,2%);\r\n border-color: lighten($gray-dark-200,2%);\r\n }\r\n\r\n .app-search{\r\n // Form Control\r\n .form-control {\r\n color: $gray-dark-500;\r\n background-color: lighten($gray-dark-200,5%);\r\n border: 1px solid lighten($gray-dark-200,5%);\r\n }\r\n }\r\n \r\n .notification-item {\r\n .d-flex:hover {\r\n background-color: lighten($gray-dark-200,4%);\r\n }\r\n }\r\n\r\n // Dropdown with Icons\r\n .dropdown-icon-item {\r\n color: $gray-dark-500;\r\n\r\n &:hover {\r\n background-color: $gray-dark-300;\r\n }\r\n }\r\n\r\n &[data-sidebar=\"light\"]{\r\n @media (min-width: 992px) { \r\n &[data-topbar=\"light\"]{\r\n .navbar-brand-box{\r\n .logo{\r\n color: $dark !important;\r\n }\r\n }\r\n\r\n #vertical-menu-btn{\r\n color: $dark;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nbody[data-layout-mode=\"dark\"][data-topbar=\"light\"] {\r\n\r\n .navbar-brand-box {\r\n background: $header-bg;\r\n border-right: none;\r\n box-shadow: none;\r\n\r\n .logo{\r\n color: $dark !important;\r\n }\r\n }\r\n\r\n \r\n .logo-light {\r\n display: none;\r\n }\r\n\r\n .logo-dark {\r\n display: block;\r\n }\r\n\r\n #vertical-menu-btn {\r\n color: $dark !important;\r\n }\r\n\r\n .header-item {\r\n color: $header-item-color;\r\n\r\n &:hover {\r\n color: $header-item-color;\r\n }\r\n\r\n &.border-start, &.border-end{\r\n border-color: rgba($dark, 0.1) !important;\r\n }\r\n \r\n &.bg-soft-light{\r\n background-color: rgba($dark, 0.04) !important;\r\n }\r\n }\r\n\r\n\r\n #page-topbar {\r\n background-color: $header-bg;\r\n border-color: $gray-300;\r\n }\r\n\r\n // Dropdown with Icons\r\n .dropdown-icon-item {\r\n color: $gray-500;\r\n\r\n &:hover {\r\n background-color: $gray-300;\r\n }\r\n }\r\n\r\n .app-search{\r\n // Form Control\r\n .form-control {\r\n color: $gray-500;\r\n background-color: lighten($gray-200,2%);\r\n border: 1px solid $gray-300;\r\n }\r\n }\r\n\r\n .header-profile-user {\r\n background-color: $gray-600;\r\n }\r\n \r\n .noti-icon {\r\n i {\r\n color: $header-item-color;\r\n }\r\n }\r\n \r\n .notification-item {\r\n .d-flex {\r\n \r\n &:hover {\r\n background-color: $gray-100;\r\n }\r\n }\r\n }\r\n}","// \r\n// Page-title\r\n// \r\n\r\n.page-title-box {\r\n padding-bottom: $grid-gutter-width;\r\n\r\n .breadcrumb {\r\n background-color: transparent;\r\n padding: 0;\r\n }\r\n}","// \r\n// _footer.scss\r\n// \r\n\r\n.footer {\r\n bottom: 0;\r\n padding: 20px calc(#{$grid-gutter-width} / 2);\r\n position: absolute;\r\n right: 0;\r\n color: $footer-color;\r\n left: 250px;\r\n height: $footer-height;\r\n background-color: $footer-bg;\r\n border-top: 1px solid $border-color;\r\n\r\n @media (max-width: 991.98px) {\r\n left: 0;\r\n }\r\n}\r\n \r\n// Enlarge menu\r\nbody[data-sidebar-size=\"sm\"] {\r\n .footer {\r\n left: $sidebar-collapsed-width;\r\n\r\n @media (max-width: 991.98px) {\r\n left: 0;\r\n }\r\n }\r\n}\r\n\r\nbody[data-layout=\"horizontal\"] {\r\n .footer {\r\n left: 0 !important;\r\n } \r\n}\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n .footer {\r\n background-color: $gray-dark-200;\r\n color: $gray-dark-500;\r\n border-color: lighten($gray-dark-200,2.5%);\r\n }\r\n}","//\r\n// right-sidebar.scss\r\n//\r\n\r\n.right-bar {\r\n background-color: $card-bg;\r\n box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.06), 0 1px 0 0 rgba(0, 0, 0, 0.02);\r\n display: block;\r\n position: fixed;\r\n transition: all 200ms ease-out;\r\n width: $rightbar-width;\r\n z-index: 9999;\r\n float: right !important;\r\n right: -($rightbar-width + 10px);\r\n top: 0;\r\n bottom: 0;\r\n\r\n .right-bar-toggle {\r\n background-color: lighten($dark, 7%);\r\n height: 24px;\r\n width: 24px;\r\n line-height: 24px;\r\n display: block;\r\n color: $gray-200;\r\n text-align: center;\r\n border-radius: 50%;\r\n\r\n &:hover {\r\n background-color: lighten($dark, 10%);\r\n }\r\n }\r\n}\r\n\r\n// Rightbar overlay\r\n.rightbar-overlay {\r\n background-color: rgba($dark, 0.55);\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n top: 0;\r\n bottom: 0;\r\n display: none;\r\n z-index: 9998;\r\n transition: all .2s ease-out;\r\n}\r\n\r\n.right-bar-enabled {\r\n .right-bar {\r\n right: 0;\r\n }\r\n .rightbar-overlay {\r\n display: block;\r\n }\r\n}\r\n\r\n@include media-breakpoint-down(md) {\r\n .right-bar {\r\n overflow: auto;\r\n .slimscroll-menu {\r\n height: auto !important;\r\n }\r\n }\r\n}\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n .right-bar {\r\n background-color: $gray-dark-200;\r\n }\r\n}","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n }\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n","//\r\n// _menu.scss\r\n// \r\n\r\n.metismenu {\r\n margin: 0;\r\n\r\n li {\r\n display: block;\r\n width: 100%;\r\n }\r\n\r\n .mm-collapse {\r\n display: none;\r\n\r\n &:not(.mm-show) {\r\n display: none;\r\n }\r\n\r\n &.mm-show {\r\n display: block\r\n }\r\n }\r\n\r\n .mm-collapsing {\r\n position: relative;\r\n height: 0;\r\n overflow: hidden;\r\n transition-timing-function: ease;\r\n transition-duration: .35s;\r\n transition-property: height, visibility;\r\n }\r\n}\r\n\r\n\r\n.vertical-menu {\r\n width: $sidebar-width;\r\n z-index: 1001;\r\n background: $sidebar-bg;\r\n bottom: 0;\r\n margin-top: 0;\r\n position: fixed;\r\n top: $header-height;\r\n border-right: 1px solid $sidebar-border-color;\r\n box-shadow: $box-shadow-lg;\r\n}\r\n\r\n.main-content {\r\n margin-left: $sidebar-width;\r\n overflow: hidden;\r\n\r\n .content {\r\n padding: 0 15px 10px 15px;\r\n margin-top: $header-height;\r\n }\r\n}\r\n\r\n\r\n#sidebar-menu {\r\n padding: 10px 0 30px 0;\r\n\r\n .mm-active {\r\n >.has-arrow {\r\n &:after {\r\n transform: rotate(90deg);\r\n }\r\n }\r\n }\r\n\r\n .has-arrow {\r\n &:after {\r\n content: \"\\F0142\";\r\n font-family: 'Material Design Icons';\r\n display: block;\r\n float: right;\r\n transition: transform .2s;\r\n font-size: 1.1rem;\r\n margin-right: -5px;\r\n margin-top: -2px;\r\n }\r\n }\r\n\r\n ul {\r\n li {\r\n a {\r\n display: block;\r\n padding: .675rem 1.5rem;\r\n color: $sidebar-menu-item-color;\r\n position: relative;\r\n font-size: .845rem;\r\n transition: all .4s;\r\n\r\n i {\r\n display: inline-block;\r\n min-width: 1.75rem;\r\n padding-bottom: .125em;\r\n font-size: 1.25rem;\r\n line-height: 1.40625rem;\r\n vertical-align: middle;\r\n color: $sidebar-menu-item-icon-color;\r\n transition: all .4s;\r\n }\r\n\r\n svg {\r\n height: 18px;\r\n width: 18px;\r\n color: $sidebar-menu-item-icon-color;\r\n margin-right: 10px;\r\n margin-top: -3px;\r\n }\r\n\r\n &:hover {\r\n color: $sidebar-menu-item-hover-color;\r\n\r\n i {\r\n color: $sidebar-menu-item-hover-color;\r\n }\r\n\r\n svg {\r\n color: $sidebar-menu-item-hover-color;\r\n }\r\n }\r\n }\r\n\r\n .badge {\r\n margin-top: 4px;\r\n }\r\n\r\n ul.sub-menu {\r\n padding: 0;\r\n\r\n li {\r\n\r\n a {\r\n padding: .425rem 1.5rem .425rem 3.5rem;\r\n font-size: .825rem;\r\n color: $sidebar-menu-sub-item-color;\r\n\r\n &:hover {\r\n color: $sidebar-menu-item-hover-color;\r\n }\r\n }\r\n\r\n ul.sub-menu {\r\n padding: 0;\r\n\r\n li {\r\n a {\r\n padding: .4rem 1.5rem .4rem 4.5rem;\r\n font-size: 13px;\r\n\r\n \r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\n.menu-title {\r\n padding: 12px 20px !important;\r\n pointer-events: none;\r\n cursor: default;\r\n font-size: 12px;\r\n color: $sidebar-menu-item-icon-color;\r\n font-weight: $font-weight-medium;\r\n}\r\n\r\n.mm-active {\r\n\r\n > a{\r\n color: $sidebar-menu-item-active-color !important;\r\n i {\r\n color: $sidebar-menu-item-active-color !important;\r\n }\r\n\r\n svg {\r\n color: $sidebar-menu-item-active-color !important;\r\n }\r\n }\r\n .active {\r\n color: $sidebar-menu-item-active-color !important;\r\n\r\n i {\r\n color: $sidebar-menu-item-active-color !important;\r\n }\r\n \r\n svg {\r\n color: $sidebar-menu-item-active-color !important;\r\n }\r\n }\r\n > i {\r\n color: $sidebar-menu-item-active-color !important;\r\n }\r\n}\r\n\r\n.sidebar-alert {\r\n background-color: rgba($primary, 0.1) !important;\r\n\r\n .alertcard-title{\r\n color: $primary;\r\n }\r\n}\r\n\r\n@media (max-width: 992px) {\r\n .vertical-menu {\r\n display: none;\r\n }\r\n\r\n .main-content {\r\n margin-left: 0 !important;\r\n }\r\n\r\n body.sidebar-enable {\r\n .vertical-menu {\r\n display: block;\r\n }\r\n }\r\n}\r\n\r\n// Enlarge menu\r\nbody[data-sidebar-size=\"sm\"] {\r\n min-height: 1000px;\r\n\r\n .main-content {\r\n margin-left: $sidebar-collapsed-width;\r\n }\r\n\r\n .navbar-brand-box {\r\n width: $sidebar-collapsed-width !important;\r\n }\r\n\r\n .logo {\r\n span.logo-lg {\r\n display: none;\r\n }\r\n\r\n span.logo-sm {\r\n display: block;\r\n }\r\n }\r\n\r\n // Side menu\r\n .vertical-menu {\r\n position: absolute;\r\n width: $sidebar-collapsed-width !important;\r\n z-index: 5;\r\n\r\n .simplebar-mask,\r\n .simplebar-content-wrapper {\r\n overflow: visible !important;\r\n }\r\n\r\n .simplebar-scrollbar {\r\n display: none !important;\r\n }\r\n\r\n .simplebar-offset {\r\n bottom: 0 !important;\r\n }\r\n\r\n // Sidebar Menu\r\n #sidebar-menu {\r\n\r\n .menu-title,\r\n .badge,\r\n .sidebar-alert {\r\n display: none !important;\r\n }\r\n\r\n .nav.collapse {\r\n height: inherit !important;\r\n }\r\n\r\n > ul {\r\n > li {\r\n position: relative;\r\n white-space: nowrap;\r\n\r\n > a {\r\n padding: 15px 20px;\r\n transition: none;\r\n \r\n &:hover,\r\n &:active,\r\n &:focus {\r\n color: $sidebar-menu-item-hover-color;\r\n }\r\n\r\n i {\r\n font-size: 1.45rem;\r\n margin-left: 4px;\r\n }\r\n\r\n svg {\r\n height: 18px;\r\n width: 18px;\r\n margin-left: 6px;\r\n }\r\n\r\n span {\r\n display: none;\r\n padding-left: 25px;\r\n }\r\n\r\n &.has-arrow {\r\n &:after {\r\n display: none;\r\n }\r\n }\r\n }\r\n\r\n &:hover {\r\n > a {\r\n position: relative;\r\n width: calc(190px + #{$sidebar-collapsed-width});\r\n color: $primary;\r\n background-color: darken($sidebar-bg, 4%);\r\n transition: none;\r\n\r\n i{\r\n color: $primary;\r\n }\r\n\r\n svg {\r\n color: $sidebar-menu-item-active-color;\r\n }\r\n\r\n span {\r\n display: inline;\r\n }\r\n }\r\n\r\n >ul {\r\n display: block;\r\n left: $sidebar-collapsed-width;\r\n position: absolute;\r\n width: 190px;\r\n height: auto !important;\r\n box-shadow: $box-shadow-lg;\r\n\r\n ul {\r\n box-shadow: $box-shadow-lg;\r\n }\r\n\r\n a {\r\n box-shadow: none;\r\n padding: 8px 20px;\r\n position: relative;\r\n width: 190px;\r\n z-index: 6;\r\n color: $sidebar-menu-sub-item-color;\r\n\r\n &:hover {\r\n color: $sidebar-menu-item-hover-color;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n ul {\r\n padding: 5px 0;\r\n z-index: 9999;\r\n display: none;\r\n background-color: $white;\r\n\r\n li {\r\n &:hover {\r\n >ul {\r\n display: block;\r\n left: 190px;\r\n height: auto !important;\r\n margin-top: -36px;\r\n position: absolute;\r\n width: 190px;\r\n padding: 5px 0;\r\n }\r\n }\r\n\r\n >a {\r\n span.pull-right {\r\n position: absolute;\r\n right: 20px;\r\n top: 12px;\r\n transform: rotate(270deg);\r\n }\r\n }\r\n }\r\n\r\n li.active {\r\n a {\r\n color: $gray-100;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n #sidebar-menu {\r\n .mm-active>.has-arrow:after{\r\n transform: rotate(0deg);\r\n }\r\n }\r\n}\r\n\r\n\r\nbody[data-sidebar=\"dark\"] {\r\n\r\n .navbar-brand-box {\r\n background: $sidebar-dark-bg;\r\n box-shadow: 0px 3px 1px $sidebar-dark-bg;\r\n border-color: $sidebar-dark-bg;\r\n\r\n .logo{\r\n color: $white !important;\r\n }\r\n }\r\n\r\n .logo-dark {\r\n display: none;\r\n }\r\n\r\n .logo-light {\r\n display: block;\r\n }\r\n\r\n .vertical-menu {\r\n background: $sidebar-dark-bg;\r\n border-color: $sidebar-dark-bg;\r\n }\r\n\r\n #vertical-menu-btn{\r\n @media (min-width: 992px) {\r\n color :$header-dark-item-color;\r\n }\r\n }\r\n\r\n #sidebar-menu {\r\n ul {\r\n li {\r\n a {\r\n color: $sidebar-dark-menu-item-color;\r\n\r\n i {\r\n color: $sidebar-dark-menu-item-icon-color;\r\n }\r\n\r\n svg {\r\n color: $sidebar-dark-menu-item-icon-color;\r\n }\r\n \r\n &:hover {\r\n color: $sidebar-dark-menu-item-hover-color;\r\n\r\n i {\r\n color: $sidebar-dark-menu-item-hover-color;\r\n }\r\n\r\n svg {\r\n color: $sidebar-dark-menu-item-hover-color;\r\n }\r\n }\r\n }\r\n\r\n ul.sub-menu {\r\n li {\r\n\r\n a {\r\n color: $sidebar-dark-menu-sub-item-color;\r\n\r\n &:hover {\r\n color: $sidebar-dark-menu-item-hover-color;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n \r\n\r\n // Enlarge menu\r\n &[data-sidebar-size=\"sm\"] {\r\n\r\n &[data-topbar=\"dark\"]{\r\n #vertical-menu-btn{\r\n color :$header-dark-item-color;\r\n }\r\n }\r\n #vertical-menu-btn{\r\n color :$header-item-color;\r\n }\r\n // Side menu\r\n .vertical-menu {\r\n \r\n // Sidebar Menu\r\n #sidebar-menu {\r\n\r\n > ul {\r\n > li {\r\n \r\n &:hover {\r\n > a {\r\n background: lighten($sidebar-dark-bg, 2%);\r\n color: $sidebar-dark-menu-item-hover-color;\r\n i{\r\n color: $sidebar-dark-menu-item-hover-color;\r\n }\r\n\r\n svg {\r\n color: $sidebar-dark-menu-item-hover-color;\r\n }\r\n }\r\n\r\n >ul {\r\n a{\r\n color: $sidebar-dark-menu-sub-item-color;\r\n &:hover{\r\n color: $sidebar-dark-menu-item-hover-color;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n ul{\r\n background-color: $sidebar-dark-bg;\r\n }\r\n \r\n }\r\n\r\n ul{\r\n \r\n li{\r\n &.mm-active .active{\r\n color: $sidebar-dark-menu-item-active-color !important;\r\n i{\r\n color: $sidebar-dark-menu-item-active-color !important;\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n }\r\n }\r\n .mm-active {\r\n color: $sidebar-dark-menu-item-active-color !important;\r\n > a{\r\n color: $sidebar-dark-menu-item-active-color !important;\r\n i {\r\n color: $sidebar-dark-menu-item-active-color !important;\r\n }\r\n\r\n svg {\r\n color: $sidebar-dark-menu-item-active-color !important;\r\n }\r\n\r\n }\r\n > i {\r\n color: $sidebar-dark-menu-item-active-color !important;\r\n }\r\n .active {\r\n color: $sidebar-dark-menu-item-active-color !important;\r\n\r\n i {\r\n color: $sidebar-dark-menu-item-active-color !important;\r\n }\r\n\r\n svg {\r\n color: $sidebar-dark-menu-item-active-color !important;\r\n }\r\n }\r\n }\r\n\r\n .menu-title {\r\n color: $sidebar-dark-menu-item-icon-color;\r\n }\r\n\r\n &[data-sidebar-size=\"md\"] {\r\n #sidebar-menu {\r\n ul li {\r\n &.menu-title{\r\n background-color: lighten($sidebar-dark-bg, 2%);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\nbody[data-layout=\"horizontal\"] {\r\n .main-content {\r\n margin-left: 0 !important;\r\n }\r\n}\r\n\r\n// Compact Sidebar\r\n\r\nbody[data-sidebar-size=\"md\"] {\r\n .navbar-brand-box{\r\n width: $sidebar-width-sm;\r\n @media (max-width: 991.98px){\r\n width: auto;\r\n }\r\n }\r\n .vertical-menu{\r\n width: $sidebar-width-sm;\r\n text-align: center;\r\n\r\n .has-arrow:after,\r\n .badge,\r\n .sidebar-alert {\r\n display: none !important;\r\n }\r\n }\r\n .main-content {\r\n margin-left: $sidebar-width-sm;\r\n }\r\n .footer {\r\n left: $sidebar-width-sm;\r\n @media (max-width: 991.98px) {\r\n left: 0;\r\n }\r\n }\r\n\r\n #sidebar-menu {\r\n ul li {\r\n a{\r\n svg{\r\n display: block;\r\n margin: 0 auto 4px;\r\n }\r\n }\r\n ul.sub-menu {\r\n li {\r\n a{\r\n padding-left: 1.5rem;\r\n }\r\n\r\n ul.sub-menu li a {\r\n padding-left: 1.5rem;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n &[data-sidebar-size=\"sm\"] {\r\n .main-content {\r\n margin-left: $sidebar-collapsed-width;\r\n }\r\n .vertical-menu {\r\n #sidebar-menu{\r\n text-align: left;\r\n >ul{\r\n >li{\r\n >a {\r\n svg{\r\n display: inline-block;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n .footer {\r\n left: $sidebar-collapsed-width;\r\n }\r\n }\r\n}\r\n\r\n// colored sidebar\r\n\r\nbody[data-sidebar=\"brand\"] {\r\n .vertical-menu{\r\n background-color: $primary;\r\n }\r\n .navbar-brand-box{\r\n background-color: $primary;\r\n box-shadow: 0px 1px 0px $primary;\r\n .logo-dark{\r\n display: none;\r\n }\r\n .logo-light{\r\n display: block;\r\n }\r\n\r\n .logo{\r\n color: $white !important;\r\n }\r\n }\r\n\r\n .mm-active {\r\n color: $white !important;\r\n > a{\r\n color: $white !important;\r\n i {\r\n color: $white !important;\r\n }\r\n svg {\r\n color: $white !important;\r\n }\r\n }\r\n .active {\r\n color: $white !important;\r\n svg {\r\n color: $white !important;\r\n }\r\n }\r\n }\r\n\r\n #vertical-menu-btn{\r\n @media (min-width: 992px) {\r\n color:$header-dark-item-color;\r\n }\r\n }\r\n\r\n #sidebar-menu {\r\n ul {\r\n li {\r\n &.menu-title{\r\n color: rgba($white, 0.6);\r\n }\r\n\r\n a{\r\n color: rgba($white, 0.6);\r\n i{\r\n color: rgba($white, 0.6);\r\n }\r\n svg {\r\n color: rgba($white, 0.6);\r\n }\r\n &.waves-effect {\r\n .waves-ripple {\r\n background: rgba($white, 0.1);\r\n }\r\n }\r\n\r\n &:hover {\r\n color: $white;\r\n \r\n i {\r\n color: $white;\r\n }\r\n }\r\n }\r\n\r\n ul.sub-menu {\r\n li {\r\n a{\r\n color: rgba($white,.5);\r\n &:hover {\r\n color: $white;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n .sidebar-alert{\r\n background-color: rgba($white, 0.1);\r\n color: rgba($white, 0.5);\r\n .alertcard-title{\r\n color: $white;\r\n }\r\n }\r\n\r\n &[data-sidebar-size=\"sm\"] {\r\n &[data-topbar=\"dark\"]{\r\n #vertical-menu-btn{\r\n color :$header-dark-item-color;\r\n }\r\n }\r\n #vertical-menu-btn{\r\n color: $header-item-color;\r\n }\r\n .vertical-menu {\r\n #sidebar-menu{\r\n >ul{\r\n >li{\r\n &:hover>a{\r\n background-color: lighten($primary, 2%);\r\n color: $white;\r\n i, svg{\r\n color: $white;\r\n }\r\n }\r\n }\r\n }\r\n\r\n ul{\r\n li{\r\n &.mm-active {\r\n .active{\r\n color: $white !important;\r\n }\r\n }\r\n\r\n ul.sub-menu {\r\n li {\r\n a{\r\n &:hover {\r\n color: $sidebar-menu-item-active-color;\r\n }\r\n }\r\n &.mm-active {\r\n color: $sidebar-menu-item-active-color !important;\r\n > a{\r\n color: $sidebar-menu-item-active-color !important;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n// Dark Layout\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n &[data-sidebar=dark], &[data-sidebar=brand] {\r\n .vertical-menu,\r\n .navbar-brand-box {\r\n border-color: transparent\r\n }\r\n }\r\n\r\n &[data-sidebar=light]{\r\n .sidebar-alert {\r\n background-color: rgba($primary, 0.1);\r\n color: $body-color;\r\n \r\n .alertcard-title{\r\n color: $primary;\r\n }\r\n }\r\n }\r\n}\r\n\r\n// RTL\r\n[dir=\"rtl\"]{\r\n #sidebar-menu{\r\n .has-arrow:after{\r\n content: \"\\F0141\"\r\n }\r\n }\r\n}","// \r\n// _horizontal.scss\r\n// \r\n\r\n.topnav {\r\n background: $header-bg;\r\n padding: 0 calc(#{$grid-gutter-width} / 2);\r\n margin-top: $header-height;\r\n position: fixed;\r\n left: 0;\r\n right: 0;\r\n z-index: 100;\r\n box-shadow:$box-shadow;\r\n\r\n @media (min-width: 992px) {\r\n background: $topnav-bg;\r\n }\r\n \r\n \r\n .topnav-menu {\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n .navbar-nav {\r\n \r\n .nav-link {\r\n font-size: 14.4px;\r\n position: relative;\r\n padding: 1rem 1.3rem;\r\n color: $menu-item-color;\r\n i{\r\n font-size: 15px;\r\n }\r\n svg {\r\n height: 16px;\r\n width: 16px;\r\n color: $menu-item-color;\r\n margin-right: 7px;\r\n margin-top: -3px;\r\n }\r\n &:focus, &:hover{\r\n color: $menu-item-active-color;\r\n background-color: transparent;\r\n svg {\r\n color: $menu-item-active-color;\r\n }\r\n }\r\n }\r\n \r\n .dropdown-item{\r\n color: $menu-item-color;\r\n &.active, &:hover{\r\n color: $menu-item-active-color;\r\n }\r\n }\r\n \r\n .nav-item{\r\n .nav-link.active{\r\n color: $menu-item-active-color;\r\n svg {\r\n color: $menu-item-active-color;\r\n }\r\n }\r\n }\r\n\r\n .dropdown{\r\n &.active{\r\n >a {\r\n color: $menu-item-active-color;\r\n background-color: transparent;\r\n svg {\r\n color: $menu-item-active-color;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n .menu-title{\r\n padding: 12px 24px !important;\r\n @media (max-width: 991.98px) {\r\n padding: 12px 16px !important;\r\n }\r\n }\r\n}\r\n\r\n@include media-breakpoint-up(xl) {\r\n\r\n body[data-layout=\"horizontal\"] {\r\n .container-fluid,\r\n .navbar-header {\r\n max-width: 85%;\r\n }\r\n }\r\n}\r\n\r\n@include media-breakpoint-up(lg) {\r\n .topnav {\r\n .navbar-nav {\r\n .nav-item {\r\n &:first-of-type {\r\n .nav-link {\r\n padding-left: 0;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .dropdown-item {\r\n padding: .5rem 1.5rem;\r\n min-width: 180px;\r\n }\r\n\r\n .dropdown {\r\n &.mega-dropdown{\r\n // position: static;\r\n .mega-dropdown-menu{\r\n left: 0px;\r\n right: auto;\r\n }\r\n }\r\n .dropdown-menu {\r\n margin-top: 0;\r\n border-radius: 0 0 $dropdown-border-radius $dropdown-border-radius;\r\n\r\n .arrow-down {\r\n &::after {\r\n right: 15px;\r\n transform: rotate(-135deg) translateY(-50%);\r\n position: absolute;\r\n }\r\n }\r\n\r\n .dropdown {\r\n .dropdown-menu {\r\n position: absolute;\r\n top: 0 !important;\r\n left: 100%;\r\n display: none;\r\n }\r\n }\r\n }\r\n\r\n &:hover {\r\n >.dropdown-menu {\r\n display: block;\r\n }\r\n }\r\n }\r\n\r\n .dropdown:hover>.dropdown-menu>.dropdown:hover>.dropdown-menu {\r\n display: block\r\n }\r\n }\r\n\r\n .navbar-toggle {\r\n display: none;\r\n }\r\n}\r\n\r\n.arrow-down {\r\n display: inline-block;\r\n\r\n &:after {\r\n border-color: initial;\r\n border-style: solid;\r\n border-width: 0 0 1px 1px;\r\n content: \"\";\r\n height: .4em;\r\n display: inline-block;\r\n right: 5px;\r\n top: 50%;\r\n margin-left: 10px;\r\n transform: rotate(-45deg) translateY(-50%);\r\n transform-origin: top;\r\n transition: all .3s ease-out;\r\n width: .4em;\r\n }\r\n}\r\n\r\n\r\n@include media-breakpoint-down(xl) {\r\n .topnav-menu {\r\n .navbar-nav {\r\n li {\r\n &:last-of-type {\r\n .dropdown {\r\n .dropdown-menu {\r\n right: 100%;\r\n left: auto;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n@include media-breakpoint-down(lg) {\r\n\r\n .navbar-brand-box{\r\n .logo-dark {\r\n display: $display-block;\r\n span.logo-sm{\r\n display: $display-block;\r\n }\r\n }\r\n \r\n .logo-light {\r\n display: $display-none;\r\n }\r\n }\r\n \r\n .topnav {\r\n max-height: 360px;\r\n overflow-y: auto;\r\n padding: 0;\r\n .navbar-nav {\r\n .nav-link {\r\n padding: 0.75rem 1.1rem;\r\n }\r\n }\r\n\r\n .dropdown {\r\n .dropdown-menu {\r\n background-color: transparent;\r\n border: none;\r\n box-shadow: none;\r\n padding-left: 24px;\r\n &.dropdown-mega-menu-xl{\r\n width: auto;\r\n \r\n .row{\r\n margin: 0px;\r\n }\r\n }\r\n }\r\n\r\n .dropdown-item {\r\n position: relative;\r\n background-color: transparent;\r\n\r\n &.active,\r\n &:active {\r\n color: $primary;\r\n }\r\n }\r\n }\r\n\r\n .arrow-down {\r\n &::after {\r\n right: 15px;\r\n position: absolute;\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n// Colored Topbar \r\n\r\nbody[data-layout=\"horizontal\"][data-topbar=\"colored\"] {\r\n #page-topbar{\r\n background-color: $primary;\r\n box-shadow: none;\r\n }\r\n\r\n .logo-dark {\r\n display: none;\r\n }\r\n\r\n .logo-light {\r\n display: block;\r\n }\r\n\r\n .app-search {\r\n \r\n .form-control {\r\n background-color: rgba($topbar-search-bg,0.07);\r\n color: $white;\r\n }\r\n span,\r\n input.form-control::-webkit-input-placeholder {\r\n color: rgba($white,0.5);\r\n }\r\n }\r\n .header-item {\r\n color: $header-dark-item-color;\r\n \r\n &:hover {\r\n color: $header-dark-item-color;\r\n }\r\n }\r\n\r\n .navbar-header {\r\n .dropdown .show {\r\n &.header-item{\r\n background-color: rgba($white,0.1);\r\n }\r\n }\r\n\r\n .waves-effect .waves-ripple {\r\n background: rgba($white, 0.4);\r\n }\r\n }\r\n\r\n .noti-icon {\r\n i {\r\n color: $header-dark-item-color;\r\n }\r\n }\r\n\r\n @include media-breakpoint-up(lg) {\r\n .topnav{\r\n background-color: $primary;\r\n .navbar-nav {\r\n \r\n .nav-link {\r\n color: rgba($white, 0.6);\r\n \r\n &:focus, &:hover{\r\n color: rgba($white, 0.9);\r\n }\r\n }\r\n \r\n > .dropdown{\r\n &.active{\r\n >a {\r\n color: rgba($white, 0.9) !important;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n .topnav {\r\n background-color: $topnav-dark-bg;\r\n\r\n .navbar-nav{\r\n .nav-link{\r\n color: $menu-dark-item-color;\r\n\r\n svg {\r\n height: 16px;\r\n width: 16px;\r\n color: $menu-dark-item-color;\r\n fill: rgba($menu-dark-item-color,0.2);\r\n margin-right: 7px;\r\n margin-top: -3px;\r\n }\r\n\r\n &:focus, &:hover{\r\n color: $menu-dark-item-active-color;\r\n background-color: transparent;\r\n svg {\r\n color: $menu-dark-item-active-color;\r\n fill: rgba($menu-dark-item-active-color,0.2);\r\n }\r\n }\r\n }\r\n\r\n .dropdown-item{\r\n color: $menu-dark-item-color;\r\n &.active, &:hover{\r\n color: $menu-dark-item-active-color;\r\n }\r\n }\r\n\r\n .nav-item{\r\n .nav-link.active{\r\n color: $menu-dark-item-active-color;\r\n }\r\n }\r\n\r\n .dropdown{\r\n &.active{\r\n >a {\r\n color: $menu-dark-item-active-color;\r\n background-color: transparent;\r\n svg {\r\n color: $menu-dark-item-active-color;\r\n fill: rgba($menu-dark-item-active-color,0.2);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n .menu-title{\r\n color: rgba($menu-dark-item-color,0.6);\r\n }\r\n }\r\n}\r\n\r\n","// \r\n// _layouts.scss\r\n// \r\n\r\nbody[data-layout-size=\"boxed\"] {\r\n background-color: $boxed-body-bg;\r\n #layout-wrapper {\r\n background-color: $body-bg;\r\n max-width: $boxed-layout-width;\r\n margin: 0 auto;\r\n box-shadow: $box-shadow;\r\n min-height: 100vh;\r\n }\r\n\r\n #page-topbar {\r\n max-width: $boxed-layout-width;\r\n margin: 0 auto;\r\n }\r\n\r\n .footer {\r\n margin: 0 auto;\r\n max-width: calc(#{$boxed-layout-width} - #{$sidebar-width});\r\n }\r\n\r\n &[data-sidebar-size=\"sm\"] {\r\n @media (min-width: 992px) {\r\n #layout-wrapper {\r\n min-height: 1200px;\r\n }\r\n }\r\n\r\n .footer {\r\n max-width: calc(#{$boxed-layout-width} - #{$sidebar-collapsed-width});\r\n }\r\n }\r\n\r\n &[data-sidebar-size=\"md\"] {\r\n\r\n .footer {\r\n max-width: calc(#{$boxed-layout-width} - #{$sidebar-width-sm});\r\n }\r\n }\r\n}\r\n\r\n\r\n// Horizontal Boxed Layout\r\n\r\nbody[data-layout=\"horizontal\"][data-layout-size=\"boxed\"]{\r\n #page-topbar, #layout-wrapper, .footer {\r\n max-width: 100%;\r\n }\r\n .container-fluid, .navbar-header {\r\n max-width: $boxed-layout-width;\r\n }\r\n}\r\n\r\n// Scrollable layout\r\n\r\nbody[data-layout-scrollable=\"true\"] {\r\n @media (min-width: 992px) {\r\n #page-topbar, .vertical-menu{\r\n position: absolute;\r\n }\r\n }\r\n\r\n &[data-layout=\"horizontal\"]{\r\n @media (min-width: 992px) {\r\n #page-topbar, .topnav{\r\n position: absolute;\r\n }\r\n }\r\n }\r\n}\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n &[data-layout-size=\"boxed\"] {\r\n background-color: lighten($gray-dark-200, 4%);\r\n\r\n #layout-wrapper {\r\n background-color: $gray-dark-100;\r\n }\r\n }\r\n}\r\n\r\n","\r\n/*!\r\n * Waves v0.7.6\r\n * http://fian.my.id/Waves \r\n * \r\n * Copyright 2014-2018 Alfiana E. Sibuea and other contributors \r\n * Released under the MIT license \r\n * https://github.com/fians/Waves/blob/master/LICENSE */\r\n .waves-effect {\r\n position: relative;\r\n cursor: pointer;\r\n display: inline-block;\r\n overflow: hidden;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n -webkit-tap-highlight-color: transparent;\r\n }\r\n .waves-effect .waves-ripple {\r\n position: absolute;\r\n border-radius: 50%;\r\n width: 100px;\r\n height: 100px;\r\n margin-top: -50px;\r\n margin-left: -50px;\r\n opacity: 0;\r\n background: rgba(0, 0, 0, 0.2);\r\n background: -webkit-radial-gradient(rgba(0, 0, 0, 0.2) 0, rgba(0, 0, 0, 0.3) 40%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\r\n background: -o-radial-gradient(rgba(0, 0, 0, 0.2) 0, rgba(0, 0, 0, 0.3) 40%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\r\n background: -moz-radial-gradient(rgba(0, 0, 0, 0.2) 0, rgba(0, 0, 0, 0.3) 40%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\r\n background: radial-gradient(rgba(0, 0, 0, 0.2) 0, rgba(0, 0, 0, 0.3) 40%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\r\n -webkit-transition: all 0.5s ease-out;\r\n -moz-transition: all 0.5s ease-out;\r\n -o-transition: all 0.5s ease-out;\r\n transition: all 0.5s ease-out;\r\n -webkit-transition-property: -webkit-transform, opacity;\r\n -moz-transition-property: -moz-transform, opacity;\r\n -o-transition-property: -o-transform, opacity;\r\n transition-property: transform, opacity;\r\n -webkit-transform: scale(0) translate(0, 0);\r\n -moz-transform: scale(0) translate(0, 0);\r\n -ms-transform: scale(0) translate(0, 0);\r\n -o-transform: scale(0) translate(0, 0);\r\n transform: scale(0) translate(0, 0);\r\n pointer-events: none;\r\n }\r\n .waves-effect.waves-light .waves-ripple {\r\n background: rgba(255, 255, 255, 0.4);\r\n background: -webkit-radial-gradient(rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.3) 40%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\r\n background: -o-radial-gradient(rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.3) 40%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\r\n background: -moz-radial-gradient(rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.3) 40%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\r\n background: radial-gradient(rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.3) 40%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\r\n }\r\n .waves-effect.waves-classic .waves-ripple {\r\n background: rgba(0, 0, 0, 0.2);\r\n }\r\n .waves-effect.waves-classic.waves-light .waves-ripple {\r\n background: rgba(255, 255, 255, 0.4);\r\n }\r\n .waves-notransition {\r\n -webkit-transition: none !important;\r\n -moz-transition: none !important;\r\n -o-transition: none !important;\r\n transition: none !important;\r\n }\r\n .waves-button,\r\n .waves-circle {\r\n -webkit-transform: translateZ(0);\r\n -moz-transform: translateZ(0);\r\n -ms-transform: translateZ(0);\r\n -o-transform: translateZ(0);\r\n transform: translateZ(0);\r\n -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);\r\n }\r\n .waves-button,\r\n .waves-button:hover,\r\n .waves-button:visited,\r\n .waves-button-input {\r\n white-space: nowrap;\r\n vertical-align: middle;\r\n cursor: pointer;\r\n border: none;\r\n outline: none;\r\n color: inherit;\r\n background-color: rgba(0, 0, 0, 0);\r\n font-size: 1em;\r\n line-height: 1em;\r\n text-align: center;\r\n text-decoration: none;\r\n z-index: 1;\r\n }\r\n .waves-button {\r\n padding: 0.85em 1.1em;\r\n border-radius: 0.2em;\r\n }\r\n .waves-button-input {\r\n margin: 0;\r\n padding: 0.85em 1.1em;\r\n }\r\n .waves-input-wrapper {\r\n border-radius: 0.2em;\r\n vertical-align: bottom;\r\n }\r\n .waves-input-wrapper.waves-button {\r\n padding: 0;\r\n }\r\n .waves-input-wrapper .waves-button-input {\r\n position: relative;\r\n top: 0;\r\n left: 0;\r\n z-index: 1;\r\n }\r\n .waves-circle {\r\n text-align: center;\r\n width: 2.5em;\r\n height: 2.5em;\r\n line-height: 2.5em;\r\n border-radius: 50%;\r\n }\r\n .waves-float {\r\n -webkit-mask-image: none;\r\n -webkit-box-shadow: 0px 1px 1.5px 1px rgba(0, 0, 0, 0.12);\r\n box-shadow: 0px 1px 1.5px 1px rgba(0, 0, 0, 0.12);\r\n -webkit-transition: all 300ms;\r\n -moz-transition: all 300ms;\r\n -o-transition: all 300ms;\r\n transition: all 300ms;\r\n }\r\n .waves-float:active {\r\n -webkit-box-shadow: 0px 8px 20px 1px rgba(0, 0, 0, 0.3);\r\n box-shadow: 0px 8px 20px 1px rgba(0, 0, 0, 0.3);\r\n }\r\n .waves-block {\r\n display: block;\r\n }\r\n\r\n.waves-effect.waves-light {\r\n .waves-ripple {\r\n background-color: rgba($white, 0.4);\r\n }\r\n}\r\n\r\n.waves-effect.waves-primary {\r\n .waves-ripple {\r\n background-color: rgba($primary, 0.4);\r\n }\r\n}\r\n.waves-effect.waves-success {\r\n .waves-ripple {\r\n background-color: rgba($success, 0.4);\r\n }\r\n}\r\n.waves-effect.waves-info {\r\n .waves-ripple {\r\n background-color: rgba($info, 0.4);\r\n }\r\n}\r\n.waves-effect.waves-warning {\r\n .waves-ripple {\r\n background-color: rgba($warning, 0.4);\r\n }\r\n}\r\n.waves-effect.waves-danger {\r\n .waves-ripple {\r\n background-color: rgba($danger, 0.4);\r\n }\r\n}","//\n// accordion.scss\n//\n\nbody[data-layout-mode=\"dark\"] {\n\n // accordion\n\n .accordion-button{\n border-color: $gray-dark-300;\n color: $gray-dark-600;\n &:not(.collapsed){\n background-color: rgba($primary, 0.2);\n color: $primary;\n }\n }\n\n .accordion-item{\n border-color: $gray-dark-300;\n }\n \n .accordion-collapse{\n border-color: $gray-dark-300;\n }\n}","//\n// avatar.scss\n//\n\n.avatar-xs {\n height: 1rem;\n width: 1rem;\n}\n\n.avatar-sm {\n height: 2rem;\n width: 2rem;\n}\n\n.avatar-md {\n height: 3rem;\n width: 3rem;\n}\n\n.avatar-lg {\n height: 4rem;\n width: 4rem;\n}\n\n.avatar-xl {\n height: 5rem;\n width: 5rem;\n}\n\n.avatar-xxl {\n height: 7.5rem;\n width: 7.5rem;\n}\n\n.avatar-title {\n align-items: center;\n background-color: $primary;\n color: $white;\n display: flex;\n font-weight: $font-weight-medium;\n height: 100%;\n justify-content: center;\n width: 100%;\n}\n\n// avatar group\n.avatar-group {\n padding-left: 12px;\n display: flex;\n flex-wrap: wrap;\n .avatar-group-item {\n margin-left: -12px;\n border: 2px solid $card-bg;\n border-radius: 50%;\n transition: all 0.2s;\n &:hover{\n position: relative;\n transform: translateY(-2px);\n }\n }\n}","//\n// _helper.scss\n//\n\n.font-size-10 {\n font-size: 10px !important;\n}\n\n.font-size-11 {\n font-size: 11px !important;\n}\n\n.font-size-12 {\n font-size: 12px !important;\n}\n\n.font-size-13 {\n font-size: 13px !important;\n}\n\n.font-size-14 {\n font-size: 14px !important;\n}\n\n.font-size-15 {\n font-size: 15px !important;\n}\n\n.font-size-16 {\n font-size: 16px !important;\n}\n\n.font-size-17 {\n font-size: 17px !important;\n}\n\n.font-size-18 {\n font-size: 18px !important;\n}\n\n.font-size-20 {\n font-size: 20px !important;\n}\n\n.font-size-22 {\n font-size: 22px !important;\n}\n\n.font-size-24 {\n font-size: 24px !important;\n}\n\n// Font weight help class\n\n.fw-medium {\n font-weight: $font-weight-medium;\n}\n\n.fw-semibold {\n font-weight: $font-weight-semibold;\n}\n\n\n// Icons Sizes\n.icon-xs {\n height: 14px;\n width: 14px;\n}\n\n.icon-sm {\n height: 16px;\n width: 16px;\n}\n\n.icon-md {\n height: 18px;\n width: 18px;\n}\n\n.icon-lg {\n height: 20px;\n width: 20px;\n}\n\n.icon-xl {\n height: 22px;\n width: 22px;\n}\n\n\n// Card Height 100\n.card-h-100 {\n height: calc(100% - #{$grid-gutter-width});\n}\n\n\n// Social\n\n.social-list-item {\n height: 2rem;\n width: 2rem;\n line-height: calc(2rem - 4px);\n display: block;\n border: 2px solid $gray-500;\n border-radius: 50%;\n color: $gray-500;\n text-align: center;\n transition: all 0.4s;\n\n &:hover {\n color: $gray-600;\n background-color: $gray-200;\n }\n}\n\n.w-xs {\n min-width: 80px;\n}\n\n.w-sm {\n min-width: 95px;\n}\n\n.w-md {\n min-width: 110px;\n}\n\n.w-lg {\n min-width: 140px;\n}\n\n.w-xl {\n min-width: 160px;\n}\n\n// bg overlay\n.bg-overlay{\n position: absolute;\n height: 100%;\n width: 100%;\n right: 0;\n bottom: 0;\n left: 0;\n top: 0;\n opacity: 0.7;\n background-color: $black;\n}\n\n.bg-overlay-gradient{\n background: linear-gradient(to bottom, rgba($dark, 0.5) 30%, $dark 100%);\n position: absolute;\n height: 100%;\n width: 100%;\n right: 0;\n bottom: 0;\n left: 0;\n top: 0;\n opacity: 0.7;\n}\n\n\n\n// alert\n\n.alert-dismissible {\n .btn-close {\n font-size: 10px;\n padding: $alert-padding-y * 1.4 $alert-padding-x;\n background: transparent escape-svg($btn-close-bg) center / $btn-close-width auto no-repeat;\n }\n}\n\n\nbody[data-layout-mode=\"dark\"] {\n \n .btn-close {\n background: transparent escape-svg($btn-close-bg-dark) center / $btn-close-width auto no-repeat;\n }\n\n // border\n .border-light{\n border-color: $gray-dark-300 !important;\n }\n\n .border-bottom{\n border-bottom: 1px solid $gray-dark-300 !important;\n }\n\n .border-top,\n .border,\n .list-group-item {\n border-color: $gray-dark-300 !important;\n }\n\n @each $color, $value in $theme-colors {\n .border-#{$color} {\n border-color: $value !important;\n }\n }\n\n // text colors\n .text-dark{\n color: $gray-dark-800 !important;\n }\n\n .text-muted{\n color: $gray-dark-400 !important;\n }\n\n .text-body{\n color: $gray-dark-500 !important;\n }\n\n // List item\n .list-group-item {\n background-color: $gray-dark-200;\n color: $gray-dark-500;\n }\n\n // img thumbnail\n\n .img-thumbnail{\n background-color: lighten($gray-dark-200,2.5%);\n border-color: $gray-dark-300;\n }\n\n // popover-header\n .popover-header{\n color: $gray-dark-200;\n }\n\n}\n\n.btn-group-vertical{\n label{\n margin-bottom: 0;\n }\n}\n\n.btn-group{\n label{ margin-bottom:0}\n}","// \r\n// _modal.scss\r\n// \r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n // modal\r\n .modal-header, .modal-footer{\r\n border-color: $gray-dark-300;;\r\n }\r\n}","//\r\n// Forms.scss\r\n//\r\n\r\n[type=\"tel\"],\r\n[type=\"url\"],\r\n[type=\"email\"],\r\n[type=\"number\"] {\r\n &::placeholder {\r\n text-align: left /*rtl: right*/;\r\n }\r\n}\r\n\r\n.form-check {\r\n position: relative;\r\n text-align: left /*rtl: right*/;\r\n}\r\n\r\n// checkbox input right\r\n\r\n.form-check-right {\r\n padding-left: 0;\r\n display: inline-block;\r\n padding-right: $form-check-padding-start;\r\n .form-check-input {\r\n float: right;\r\n margin-left: 0;\r\n margin-right: $form-check-padding-start * -1;\r\n }\r\n\r\n .form-check-label {\r\n display: block;\r\n }\r\n}\r\n\r\n// checkbox\r\n\r\n.form-checkbox-outline {\r\n .form-check-input {\r\n border-width: 2px;\r\n background-color: $card-bg;\r\n\r\n &:active {\r\n filter: none;\r\n }\r\n\r\n &:checked {\r\n background-color: $card-bg !important;\r\n\r\n &[type=\"checkbox\"] {\r\n background-image: none;\r\n }\r\n\r\n &:after {\r\n position: absolute;\r\n content: \"\\F012C\";\r\n font-family: \"Material Design Icons\";\r\n top: -4px !important;\r\n left: 1px; /*rtl: -4px */\r\n font-size: 16px;\r\n color: $dark;\r\n }\r\n }\r\n }\r\n}\r\n\r\n// radio\r\n\r\n.form-radio-outline {\r\n .form-check-input {\r\n background-color: $card-bg;\r\n position: relative;\r\n\r\n &:active {\r\n filter: none;\r\n }\r\n\r\n &:checked {\r\n background-color: $card-bg !important;\r\n\r\n &[type=\"checkbox\"] {\r\n background-image: none;\r\n }\r\n\r\n &:after {\r\n position: absolute;\r\n content: \"\";\r\n top: 3px !important;\r\n left: 3px;\r\n width: 5px;\r\n height: 5px;\r\n border-radius: 50%;\r\n }\r\n }\r\n }\r\n}\r\n\r\n// checkbox color\r\n\r\n@each $color, $value in $theme-colors {\r\n .form-check-#{$color} {\r\n .form-check-input {\r\n &:checked {\r\n background-color: $value;\r\n border-color: $value;\r\n }\r\n }\r\n }\r\n\r\n .form-radio-#{$color} {\r\n .form-check-input {\r\n &:checked {\r\n border-color: $value;\r\n background-color: $value;\r\n &:after {\r\n background-color: $value;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.form-check,\r\n.form-check-input,\r\n.form-check-label {\r\n cursor: pointer;\r\n margin-bottom: 0;\r\n}\r\n\r\n// Switch sizes\r\n\r\n.form-switch-md {\r\n font-size: 20px;\r\n min-height: 26px;\r\n line-height: 26px;\r\n\r\n .form-check-label {\r\n font-size: $font-size-base;\r\n vertical-align: middle;\r\n }\r\n}\r\n\r\n.form-switch-lg {\r\n font-size: 26px;\r\n min-height: 36px;\r\n line-height: 36px;\r\n .form-check-label {\r\n font-size: $font-size-base;\r\n vertical-align: middle;\r\n }\r\n}\r\n\r\n.input-group-text {\r\n margin-bottom: 0px;\r\n}\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n // Form Control\r\n .form-control {\r\n color: $gray-dark-500;\r\n background-color: lighten($gray-dark-200, 2%);\r\n border: 1px solid $gray-dark-300;\r\n }\r\n}\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n // form-select\r\n .form-select {\r\n color: $gray-dark-500;\r\n background-color: lighten($gray-dark-200, 2.5%);\r\n border: 1px solid $gray-dark-300;\r\n background-image: escape-svg(\r\n url(\"data:image/svg+xml,\")\r\n );\r\n }\r\n\r\n // form-check\r\n\r\n .form-check-input {\r\n background-color: $gray-dark-300;\r\n border-color: rgba($white, 0.25);\r\n &:checked {\r\n background-color: $form-check-input-checked-bg-color;\r\n border-color: $form-check-input-checked-border-color;\r\n }\r\n }\r\n\r\n // form switch\r\n\r\n .form-switch {\r\n .form-check-input {\r\n background-image: escape-svg($form-switch-checked-bg-image);\r\n }\r\n }\r\n\r\n // input group\r\n .input-group-text {\r\n background-color: $gray-dark-300;\r\n border-color: $gray-dark-300;\r\n color: $gray-dark-600;\r\n }\r\n\r\n .form-control {\r\n &::-webkit-file-upload-button {\r\n background-color: $gray-dark-300;\r\n color: $gray-dark-600;\r\n }\r\n &:hover:not(:disabled):not([readonly])::-webkit-file-upload-button {\r\n background-color: $gray-dark-300;\r\n }\r\n }\r\n\r\n // form-range\r\n\r\n .form-range {\r\n &::-webkit-slider-runnable-track {\r\n background-color: $gray-dark-300 !important;\r\n }\r\n &::-moz-range-track {\r\n background-color: $gray-dark-300 !important;\r\n }\r\n }\r\n}\r\n","// \r\n// Widgets.scss\r\n// \r\n\r\n.widget-box-1-icon {\r\n position: absolute;\r\n right: -25px;\r\n bottom: -25px;\r\n font-size: 6rem;\r\n opacity: 0.1;\r\n}\r\n\r\n.widget-carousel{\r\n .carousel-indicators{\r\n margin: 0px auto;\r\n position: relative;\r\n }\r\n}\r\n\r\n.dash-widget{\r\n width: 85px;\r\n}\r\n\r\n// activity widget\r\n\r\n.activity-border {\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n height: 80px;\r\n border-left: 2px dashed $gray-400;\r\n top: 40px;\r\n left: 2px;\r\n }\r\n}\r\n\r\n.activity-wid {\r\n margin-left: 16px;\r\n\r\n .activity-list {\r\n position: relative;\r\n padding: 0 0 20px 45px;\r\n\r\n .activity-icon {\r\n position: absolute;\r\n left: -20px;\r\n top: -3px;\r\n z-index: 2;\r\n background: $card-bg;\r\n img {\r\n border: 5px solid $card-bg;\r\n }\r\n span {\r\n border: 5px solid $card-bg;\r\n }\r\n }\r\n &:last-child {\r\n padding-bottom: 0px;\r\n }\r\n }\r\n}\r\n\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n .activity-wid {\r\n .activity-list {\r\n .activity-icon {\r\n background: $gray-dark-200;\r\n img, span {\r\n border-color: $gray-dark-200;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .activity-border {\r\n &:before {\r\n border-color: $gray-dark-300;\r\n }\r\n }\r\n}","// \r\n// toasts.scss\r\n//\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n .toast, .toast-header{\r\n background-color: rgba($gray-dark-300, 0.85);\r\n color: $gray-dark-400;\r\n }\r\n\r\n .toast-header{\r\n color: $gray-dark-500;\r\n }\r\n}","// \r\n// _demos.scss\r\n// \r\n\r\n\r\n\r\n.grid-example{\r\n background-color: rgba($primary, 0.05);\r\n border-radius: 5px;\r\n font-weight: $font-weight-medium;\r\n padding: 10px 20px;\r\n font-size: .8rem;\r\n}\r\n\r\n// Modals\r\n\r\n.bs-example-modal {\r\n position: relative;\r\n top: auto;\r\n right: auto;\r\n bottom: auto;\r\n left: auto;\r\n z-index: 1;\r\n display: block;\r\n }\r\n\r\n[dir=\"rtl\"]{\r\n .modal-open{\r\n padding-left: 0px !important;\r\n }\r\n}\r\n\r\n// Icon demo ( Demo only )\r\n.icon-demo-content {\r\n color: $gray-500;\r\n \r\n i, svg{\r\n display: inline-flex;\r\n width: 40px;\r\n height: 40px;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 20px;\r\n color: $gray-600;\r\n transition: all 0.4s;\r\n border: 1px solid $border-color;\r\n border-radius: 50%;\r\n margin-right: 16px;\r\n vertical-align: middle;\r\n }\r\n\r\n svg {\r\n padding: 10px;\r\n }\r\n \r\n .col-lg-4 {\r\n margin-top: 24px;\r\n \r\n &:hover {\r\n i, svg{\r\n background-color: rgba($primary, 0.2);\r\n color: $primary;\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n// Grid\r\n\r\n.grid-structure {\r\n .grid-container {\r\n background-color: $gray-100;\r\n margin-top: 10px;\r\n font-size: .8rem;\r\n font-weight: $font-weight-medium;\r\n padding: 10px 20px;\r\n }\r\n}\r\n\r\n\r\n// card radio\r\n\r\n.card-radio{\r\n background-color: $card-bg;\r\n border: 2px solid $card-border-color;\r\n border-radius: $border-radius;\r\n padding: 1rem;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n\r\n &:hover{\r\n cursor: pointer;\r\n }\r\n}\r\n\r\n.card-radio-label{\r\n display: block;\r\n}\r\n\r\n\r\n.card-radio-input{\r\n display: none;\r\n &:checked + .card-radio {\r\n border-color: $primary !important;\r\n }\r\n}\r\n\r\n.spin-left:before {\r\n animation: spin-left 2s infinite linear;\r\n}\r\n\r\n.spin-right:before {\r\n animation: spin-right 2s infinite linear;\r\n}\r\n\r\n@keyframes spin-left {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 100% {\r\n transform: rotate(-359deg);\r\n }\r\n}\r\n\r\n\r\n@keyframes spin-right {\r\n 0% {\r\n -webkit-transform: rotate(0deg);\r\n transform: rotate(0deg);\r\n }\r\n 100% {\r\n -webkit-transform: rotate(359deg);\r\n transform: rotate(359deg);\r\n }\r\n}\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n \r\n // Grid\r\n .grid-structure .grid-container, .grid-example {\r\n background-color: lighten($gray-dark-200,2.5%);\r\n }\r\n\r\n .icon-demo-content{\r\n color: $gray-dark-400;\r\n i{\r\n border-color: $gray-dark-300;\r\n color: $gray-dark-400;\r\n }\r\n }\r\n\r\n \r\n // Lightbox \r\n\r\n .glightbox-clean {\r\n .gslide-description{\r\n background-color: $gray-dark-300;\r\n }\r\n\r\n .gslide-title{\r\n color: $gray-dark-600;\r\n }\r\n }\r\n}\r\n\r\n\r\n.tooltip, .popover{\r\n z-index: 9;\r\n}","// \r\n// print.scss\r\n//\r\n\r\n// Used invoice page\r\n@media print {\r\n .vertical-menu,\r\n .right-bar,\r\n .page-title-box,\r\n .navbar-header,\r\n .footer {\r\n display: none !important;\r\n }\r\n .card-body,\r\n .main-content,\r\n .right-bar,\r\n .page-content,\r\n body {\r\n padding: 0;\r\n margin: 0;\r\n }\r\n\r\n .card{\r\n border: 0;\r\n }\r\n}","[data-simplebar] {\n position: relative;\n flex-direction: column;\n flex-wrap: wrap;\n justify-content: flex-start;\n align-content: flex-start;\n align-items: flex-start;\n}\n\n.simplebar-wrapper {\n overflow: hidden;\n width: inherit;\n height: inherit;\n max-width: inherit;\n max-height: inherit;\n}\n\n.simplebar-mask {\n direction: inherit;\n position: absolute;\n overflow: hidden;\n padding: 0;\n margin: 0;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n width: auto !important;\n height: auto !important;\n z-index: 0;\n}\n\n.simplebar-offset {\n direction: inherit !important;\n box-sizing: inherit !important;\n resize: none !important;\n position: absolute;\n top: 0;\n left: 0 !important;\n bottom: 0;\n right: 0 !important;\n padding: 0;\n margin: 0;\n -webkit-overflow-scrolling: touch;\n}\n\n.simplebar-content-wrapper {\n direction: inherit;\n box-sizing: border-box !important;\n position: relative;\n display: block;\n height: 100%; /* Required for horizontal native scrollbar to not appear if parent is taller than natural height */\n width: auto;\n visibility: visible;\n overflow: auto; /* Scroll on this element otherwise element can't have a padding applied properly */\n max-width: 100%; /* Not required for horizontal scroll to trigger */\n max-height: 100%; /* Needed for vertical scroll to trigger */\n scrollbar-width: none;\n padding: 0px !important;\n}\n\n.simplebar-content-wrapper::-webkit-scrollbar,\n.simplebar-hide-scrollbar::-webkit-scrollbar {\n display: none;\n}\n\n.simplebar-content:before,\n.simplebar-content:after {\n content: ' ';\n display: table;\n}\n\n.simplebar-placeholder {\n max-height: 100%;\n max-width: 100%;\n width: 100%;\n pointer-events: none;\n}\n\n.simplebar-height-auto-observer-wrapper {\n box-sizing: inherit !important;\n height: 100%;\n width: 100%;\n max-width: 1px;\n position: relative;\n float: left;\n max-height: 1px;\n overflow: hidden;\n z-index: -1;\n padding: 0;\n margin: 0;\n pointer-events: none;\n flex-grow: inherit;\n flex-shrink: 0;\n flex-basis: 0;\n}\n\n.simplebar-height-auto-observer {\n box-sizing: inherit;\n display: block;\n opacity: 0;\n position: absolute;\n top: 0;\n left: 0;\n height: 1000%;\n width: 1000%;\n min-height: 1px;\n min-width: 1px;\n overflow: hidden;\n pointer-events: none;\n z-index: -1;\n}\n\n.simplebar-track {\n z-index: 1;\n position: absolute;\n right: 0;\n bottom: 0;\n pointer-events: none;\n overflow: hidden;\n}\n\n[data-simplebar].simplebar-dragging .simplebar-content {\n pointer-events: none;\n user-select: none;\n -webkit-user-select: none;\n}\n\n[data-simplebar].simplebar-dragging .simplebar-track {\n pointer-events: all;\n}\n\n.simplebar-scrollbar {\n position: absolute;\n right: 2px;\n width: 6px;\n min-height: 10px;\n}\n\n.simplebar-scrollbar:before {\n position: absolute;\n content: '';\n background: #a2adb7;\n border-radius: 7px;\n left: 0;\n right: 0;\n opacity: 0;\n transition: opacity 0.2s linear;\n}\n\n.simplebar-scrollbar.simplebar-visible:before {\n /* When hovered, remove all transitions from drag handle */\n opacity: 0.5;\n transition: opacity 0s linear;\n}\n\n.simplebar-track.simplebar-vertical {\n top: 0;\n width: 11px;\n}\n\n.simplebar-track.simplebar-vertical .simplebar-scrollbar:before {\n top: 2px;\n bottom: 2px;\n}\n\n.simplebar-track.simplebar-horizontal {\n left: 0;\n height: 11px;\n}\n\n.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before {\n height: 100%;\n left: 2px;\n right: 2px;\n}\n\n.simplebar-track.simplebar-horizontal .simplebar-scrollbar {\n right: auto;\n left: 0;\n top: 2px;\n height: 7px;\n min-height: 0;\n min-width: 10px;\n width: auto;\n}\n\n/* Rtl support */\n[data-simplebar-direction='rtl'] .simplebar-track.simplebar-vertical {\n right: auto;\n left: 0;\n}\n\n.hs-dummy-scrollbar-size {\n direction: rtl;\n position: fixed;\n opacity: 0;\n visibility: hidden;\n height: 500px;\n width: 500px;\n overflow-y: hidden;\n overflow-x: scroll;\n}\n\n.simplebar-hide-scrollbar {\n position: fixed;\n left: 0;\n visibility: hidden;\n overflow-y: scroll;\n scrollbar-width: none;\n}\n\n.custom-scroll {\n height: 100%;\n}","//\r\n// Bootstrap touchspin\r\n//\r\n\r\n.bootstrap-touchspin {\r\n &.input-group {\r\n &>.input-group-prepend {\r\n\r\n &>.btn,\r\n &>.input-group-text {\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\r\n }\r\n }\r\n }\r\n\r\n &.input-group {\r\n &>.input-group-append {\r\n\r\n &>.btn,\r\n &>.input-group-text {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n }\r\n }\r\n }\r\n\r\n .input-group-btn-vertical {\r\n right: 0;\r\n\r\n .btn {\r\n right: 0 !important;\r\n left: 100% !important;\r\n }\r\n\r\n .bootstrap-touchspin-up {\r\n border-top-right-radius: 4px !important;\r\n border-bottom-right-radius: 0 !important;\r\n border-top-left-radius: 0 !important;\r\n border-bottom-left-radius: 0 !important;\r\n }\r\n\r\n .bootstrap-touchspin-down {\r\n border-top-right-radius: 0 !important;\r\n border-bottom-right-radius: 4px !important;\r\n border-top-left-radius: 0 !important;\r\n border-bottom-left-radius: 0 !important;\r\n }\r\n }\r\n}","/* ==============\r\n Calendar\r\n===================*/\r\n\r\n\r\n.fc td, .fc th{\r\n border: $table-border-width solid $table-border-color;\r\n}\r\n\r\n\r\n\r\n.fc {\r\n .fc-toolbar {\r\n h2 {\r\n font-size: 16px;\r\n line-height: 30px;\r\n text-transform: uppercase;\r\n }\r\n\r\n @media (max-width: 767.98px) {\r\n\r\n .fc-left,\r\n .fc-right,\r\n .fc-center {\r\n float: none;\r\n display: block;\r\n text-align: center;\r\n clear: both;\r\n margin: 10px 0;\r\n }\r\n\r\n >*>* {\r\n float: none;\r\n }\r\n\r\n .fc-today-button {\r\n display: none;\r\n }\r\n }\r\n\r\n .btn {\r\n text-transform: capitalize;\r\n }\r\n\r\n }\r\n}\r\n\r\n.fc {\r\n th.fc-widget-header {\r\n background: $gray-300;\r\n color: $gray-700;\r\n line-height: 20px;\r\n padding: 10px 0;\r\n text-transform: uppercase;\r\n font-weight: $font-weight-bold;\r\n }\r\n}\r\n\r\n.fc-unthemed {\r\n\r\n .fc-content,\r\n .fc-divider,\r\n .fc-list-heading td,\r\n .fc-list-view,\r\n .fc-popover,\r\n .fc-row,\r\n tbody,\r\n td,\r\n th,\r\n thead {\r\n border-color: $gray-300;\r\n }\r\n\r\n td.fc-today {\r\n background: lighten($gray-200, 2%);\r\n }\r\n}\r\n\r\n.fc-button {\r\n background: $card-bg;\r\n border-color: $border-color;\r\n color: $gray-700;\r\n text-transform: capitalize;\r\n box-shadow: none;\r\n padding: 6px 12px !important;\r\n height: auto !important;\r\n}\r\n\r\n.fc-state-down,\r\n.fc-state-active,\r\n.fc-state-disabled {\r\n background-color: $primary;\r\n color: $white;\r\n text-shadow: none;\r\n}\r\n\r\n.fc-event {\r\n border-radius: 2px;\r\n border: none;\r\n cursor: move;\r\n font-size: 0.8125rem;\r\n margin: 5px 7px;\r\n padding: 5px 5px;\r\n text-align: center;\r\n}\r\n\r\n.fc-event,\r\n.fc-event-dot {\r\n background-color: $primary;\r\n}\r\n\r\n.fc-event .fc-content {\r\n color: $white;\r\n}\r\n\r\n#external-events {\r\n .external-event {\r\n text-align: left;\r\n padding: 8px 16px;\r\n }\r\n}\r\n\r\n\r\n.fc-day-grid-event.fc-h-event.fc-event.fc-start.fc-end.bg-dark {\r\n .fc-content{\r\n color: $light; \r\n }\r\n }\r\n \r\n\r\n// RTL\r\n[dir=\"rtl\"]{\r\n .fc-header-toolbar {\r\n direction: ltr !important;\r\n }\r\n\r\n .fc-toolbar>*>:not(:first-child) {\r\n margin-left: .75em;\r\n }\r\n}\r\n\r\n.fc-toolbar{\r\n @media (max-width: 575.98px) {\r\n flex-direction: column;\r\n }\r\n}","//\r\n// session-timeout.scss\r\n//\r\n\r\n#session-timeout-dialog {\r\n .close {\r\n display: none;\r\n }\r\n\r\n .countdown-holder {\r\n color: $danger;\r\n font-weight: $font-weight-medium;\r\n }\r\n\r\n .btn-default {\r\n background-color: $white;\r\n color: $danger;\r\n box-shadow: none;\r\n }\r\n}","//\r\n// Range slider\r\n//\r\n\r\n.noUi-connect {\r\n background: $primary;\r\n}\r\n\r\n.noUi-handle {\r\n background: $card-bg;\r\n}\r\n\r\n.noUi-horizontal {\r\n height: 8px;\r\n .noUi-handle {\r\n height: 20px;\r\n width: 20px;\r\n border-radius: 50%;\r\n right: -10px;\r\n top: -7px;\r\n\r\n &::before,\r\n &::after {\r\n display: none;\r\n }\r\n &:focus {\r\n outline: 0;\r\n } \r\n }\r\n}\r\n.noUi-connects, .noUi-touch-area {\r\n cursor: pointer;\r\n \r\n}\r\n.noUi-pips-horizontal {\r\n height: 50px;\r\n}\r\n\r\n.noUi-vertical {\r\n width: 8px;\r\n .noUi-handle {\r\n height: 20px;\r\n width: 20px;\r\n right: -7px;\r\n top: -12px;\r\n border-radius: 50%;\r\n &::before,\r\n &::after {\r\n display: none;\r\n }\r\n &:focus {\r\n outline: 0;\r\n }\r\n }\r\n .noUi-origin{\r\n top: 0;\r\n }\r\n}\r\n\r\n.noUi-value {\r\n font-size: 12px;\r\n}\r\n\r\n.noUi-marker-horizontal {\r\n &.noUi-marker-large {\r\n height: 6px;\r\n }\r\n\r\n &.noUi-marker {\r\n display: none;\r\n }\r\n}\r\n\r\n.noUi-target {\r\n background-color: $light;\r\n border-color: $light;\r\n}\r\n\r\n.noUi-touch-area {\r\n &:focus {\r\n outline: 0;\r\n }\r\n}\r\n\r\n// Colorpicker\r\n\r\n#red,\r\n#green,\r\n#blue {\r\n margin: 10px;\r\n display: inline-block;\r\n height: 200px;\r\n}\r\n\r\n#colorpicker {\r\n height: 240px;\r\n width: 310px;\r\n margin: 0 auto;\r\n padding: 10px;\r\n border: 1px solid $border-color;\r\n}\r\n\r\n#result {\r\n margin: 60px 26px;\r\n height: 100px;\r\n width: 100px;\r\n display: inline-block;\r\n vertical-align: top;\r\n border: 1px solid $border-color;\r\n box-shadow: 0 0 3px;\r\n border-radius: 7px;\r\n}\r\n\r\n#red {\r\n .noUi-connect {\r\n background: $danger;\r\n }\r\n}\r\n\r\n#green {\r\n .noUi-connect {\r\n background: $success;\r\n }\r\n}\r\n\r\n#blue {\r\n .noUi-connect {\r\n background: $primary;\r\n }\r\n}\r\n\r\n// Adding keyboard support\r\n\r\n.form-control {\r\n &.keyboard {\r\n max-width: 340px !important;\r\n }\r\n}\r\n\r\n// Using HTML5 input elements\r\n\r\n#input-select,\r\n#input-number {\r\n padding: 7px;\r\n margin: 15px 5px 5px;\r\n width: 70px;\r\n}\r\n\r\n// Non linear slider\r\n\r\n.example-val {\r\n font-size: 12px;\r\n color: $text-muted;\r\n display: block;\r\n margin: 15px 0;\r\n &:before {\r\n content: \"Value: \";\r\n font-size: 12px;\r\n font-weight: 600;\r\n }\r\n}\r\n\r\n// showing tooltips\r\n\r\n.noUi-tooltip {\r\n display: none;\r\n}\r\n.noUi-active .noUi-tooltip {\r\n display: block;\r\n}\r\n\r\n// Colored Connect Elements\r\n\r\n.c-1-color {\r\n background: $danger;\r\n}\r\n.c-2-color {\r\n background: $warning;\r\n}\r\n.c-3-color {\r\n background: $success;\r\n}\r\n.c-4-color {\r\n background: $primary;\r\n}\r\n.c-5-color {\r\n background: $purple;\r\n}\r\n\r\n// slider togle\r\n\r\n#slider-toggle {\r\n height: 50px;\r\n &.off {\r\n .noUi-handle {\r\n border-color: $danger;\r\n }\r\n }\r\n}\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n .noUi-target {\r\n background-color: $gray-dark-300;\r\n border-color: $gray-dark-300;\r\n box-shadow: inset 0 1px 1px $gray-dark-300, 0 3px 6px -5px $gray-dark-300;\r\n }\r\n\r\n .example-val {\r\n color: $gray-dark-400;\r\n }\r\n}\r\n","\r\n//\r\n// Sweetalert2\r\n//\r\n\r\n.swal2-container {\r\n .swal2-title{\r\n font-size: 22px;\r\n font-weight: $font-weight-medium;\r\n } \r\n}\r\n\r\n.swal2-modal{\r\n font-size: 14px;\r\n}\r\n\r\n.swal2-icon{\r\n &.swal2-question{\r\n border-color: $info;\r\n color: $info;\r\n }\r\n &.swal2-success {\r\n [class^=swal2-success-line]{\r\n background-color: $success;\r\n }\r\n\r\n .swal2-success-ring{\r\n border-color: rgba($success, 0.3);\r\n }\r\n }\r\n &.swal2-warning{\r\n border-color: $warning;\r\n color: $warning;\r\n }\r\n}\r\n\r\n.swal2-styled{\r\n &:focus{\r\n box-shadow: none;\r\n }\r\n}\r\n\r\n.swal2-progress-steps {\r\n .swal2-progress-step{\r\n background: $primary;\r\n &.swal2-active-progress-step{\r\n background: $primary;\r\n &~.swal2-progress-step, &~.swal2-progress-step-line{\r\n background: rgba($primary, 0.3);\r\n }\r\n }\r\n }\r\n\r\n .swal2-progress-step-line{\r\n background: $primary;\r\n }\r\n}\r\n\r\n.swal2-loader{\r\n border-color: $primary transparent $primary transparent;\r\n}\r\n\r\nbody[data-layout-mode=\"dark\"]{\r\n .swal2-popup{\r\n background-color: $gray-dark-300 !important;\r\n }\r\n .swal2-content{\r\n color: $gray-dark-500;\r\n }\r\n .swal2-html-container{\r\n color: $gray-dark-400;\r\n }\r\n}","\r\n//\r\n// alertify.scss\r\n//\r\n\r\n\r\n.alertify {\r\n .ajs-header{\r\n font-weight: $font-weight-medium;\r\n }\r\n .ajs-dialog{\r\n box-shadow: $box-shadow;\r\n background-color: $modal-content-bg;\r\n\r\n .ajs-header, .ajs-footer{\r\n background-color: $modal-content-bg;\r\n }\r\n }\r\n\r\n .ajs-footer {\r\n .ajs-buttons {\r\n .ajs-button{\r\n font-weight: $font-weight-medium;\r\n &.ajs-ok{\r\n color: $primary;\r\n }\r\n }\r\n\r\n &.ajs-primary{\r\n text-align: right;\r\n }\r\n }\r\n }\r\n\r\n .ajs-body .ajs-content .ajs-input:focus-visible{\r\n outline: none;\r\n }\r\n\r\n .ajs-commands{\r\n right: 4px;\r\n left: auto;\r\n margin: -14px 0 0 24px;\r\n }\r\n}\r\n\r\n\r\n.alertify-notifier {\r\n .ajs-message{\r\n background-color: $primary;\r\n border-color: $primary;\r\n color: $white;\r\n text-shadow: none !important;\r\n &.ajs-success{\r\n background-color: $success;\r\n border-color: $success;\r\n }\r\n &.ajs-error{\r\n background-color: $danger;\r\n border-color: $danger;\r\n }\r\n &.ajs-warning{\r\n background-color: $warning;\r\n border-color: $warning;\r\n }\r\n }\r\n\r\n\r\n &.ajs-right {\r\n right: 10px;\r\n left: auto;\r\n .ajs-message {\r\n right: -320px;\r\n left: auto;\r\n &.ajs-visible {\r\n right: 290px;\r\n left: auto;\r\n }\r\n }\r\n }\r\n\r\n &.ajs-left {\r\n left: 10px;\r\n right: auto;\r\n .ajs-message {\r\n left: -300px;\r\n right: auto;\r\n &.ajs-visible {\r\n left: 0;\r\n right: auto;\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n\r\n .alertify {\r\n .ajs-dialog{\r\n background-color: $gray-dark-200;\r\n }\r\n\r\n .ajs-header, .ajs-footer{\r\n color: $gray-dark-600;\r\n background-color: $gray-dark-200;\r\n border-color: $gray-dark-300;\r\n }\r\n\r\n .ajs-body{\r\n color: $gray-dark-500;\r\n .ajs-content{\r\n .ajs-input{\r\n color: $gray-dark-500;\r\n background-color: lighten($gray-dark-200, 2%);\r\n border: 1px solid $gray-dark-300;\r\n }\r\n }\r\n }\r\n\r\n .ajs-footer{\r\n .ajs-buttons .ajs-button{\r\n color: $gray-dark-500;\r\n &.ajs-ok{\r\n color: $primary;\r\n }\r\n }\r\n }\r\n }\r\n}","\r\n//\r\n// Pristine\r\n//\r\n\r\n.pristine-error {\r\n margin-top: 2px;\r\n color: $danger;\r\n}\r\n\r\n.has-success{\r\n .form-control {\r\n border-color: $success;\r\n }\r\n}\r\n\r\n.has-danger{\r\n .form-control {\r\n border-color: $danger;\r\n }\r\n}","//\r\n// choices\r\n//\r\n\r\n.choices__inner {\r\n padding: 0.25rem ($form-select-padding-x + $form-select-indicator-padding) 0.25rem 0.5rem;\r\n background-color: $form-select-bg;\r\n vertical-align: middle;\r\n border-radius: $form-select-border-radius;\r\n border: $form-select-border-width solid $dropdown-border-color !important;\r\n min-height: 38px;\r\n}\r\n\r\n.choices__list--dropdown{\r\n border: 1px solid $dropdown-border-color !important;\r\n box-shadow: $box-shadow;\r\n}\r\n\r\n.choices[data-type*=\"select-one\"] {\r\n .choices__inner {\r\n padding-bottom: 0.25rem;\r\n }\r\n .choices__button {\r\n right: 0;\r\n left: auto;\r\n margin-right: 25px;\r\n margin-left: 0;\r\n }\r\n\r\n &:after {\r\n border-color: $dark transparent transparent;\r\n right: 11.5px;\r\n left: auto;\r\n }\r\n\r\n &.is-open:after {\r\n border-color: transparent transparent $dark;\r\n }\r\n}\r\n\r\n.choices__input {\r\n background-color: $input-bg;\r\n margin-bottom: 0;\r\n}\r\n\r\n.choices__list--multiple {\r\n display: inline-flex;\r\n flex-wrap: wrap;\r\n .choices__item {\r\n background-color: $primary;\r\n border-color: $primary;\r\n margin-bottom: 0;\r\n margin-right: 7px;\r\n font-weight: $font-weight-normal;\r\n &.is-highlighted {\r\n background-color: $primary;\r\n border: 1px solid $primary;\r\n }\r\n }\r\n}\r\n\r\n.choices.is-disabled {\r\n .choices__inner,\r\n .choices__input {\r\n background-color: $light;\r\n }\r\n}\r\n\r\n.is-disabled .choices__list--multiple {\r\n .choices__item {\r\n background-color: $secondary;\r\n border-color: $secondary;\r\n }\r\n}\r\n\r\n.choices[data-type*=\"select-multiple\"],\r\n.choices[data-type*=\"text\"] {\r\n .choices__button {\r\n border-left: 1px solid rgba($white, 0.5);\r\n margin: 0 -4px 0 8px;\r\n border-right: 0;\r\n }\r\n}\r\n\r\n// Dark layout\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n .choices__list--dropdown{\r\n border: 1px solid $gray-dark-300 !important;\r\n }\r\n .choices__heading{\r\n border: 1px solid $gray-dark-300;\r\n }\r\n .choices__inner {\r\n color: $gray-dark-500;\r\n background-color: lighten($gray-dark-200, 2%);\r\n border: 1px solid $gray-dark-300 !important;\r\n }\r\n\r\n .choices__input {\r\n background-color: lighten($gray-dark-200, 2%);\r\n color: $gray-dark-500;\r\n }\r\n\r\n .choices[data-type*=\"select-one\"] {\r\n &:after {\r\n border-color: $gray-dark-500 transparent transparent;\r\n }\r\n\r\n &.is-open:after {\r\n border-color: transparent transparent $gray-dark-500;\r\n }\r\n\r\n .choices__input {\r\n background-color: lighten($gray-dark-200, 2%);\r\n border: 1px solid $gray-dark-300;\r\n color: $gray-dark-500;\r\n }\r\n }\r\n\r\n .choices__list--dropdown {\r\n background-color: lighten($gray-dark-200, 2%);\r\n border-color: $gray-dark-300;\r\n\r\n .choices__item--selectable {\r\n &.is-highlighted {\r\n background-color: $gray-dark-300;\r\n }\r\n }\r\n }\r\n\r\n .choices.is-disabled {\r\n .choices__inner,\r\n .choices__input {\r\n background-color: lighten($gray-dark-200, 2%);\r\n }\r\n }\r\n}\r\n","//\r\n// Sweetalert2\r\n//\r\n\r\n/* CSS Switch */\r\ninput[switch] {\r\n display: none;\r\n + label {\r\n font-size: 1em;\r\n line-height: 1;\r\n width: 56px;\r\n height: 24px;\r\n background-color: $gray-400;\r\n background-image: none;\r\n border-radius: 2rem;\r\n padding: 0.16667rem;\r\n cursor: pointer;\r\n display: inline-block;\r\n text-align: center;\r\n position: relative;\r\n font-weight: $font-weight-medium;\r\n transition: all 0.1s ease-in-out;\r\n &:before {\r\n color: $dark;\r\n content: attr(data-off-label);\r\n display: block;\r\n font-family: inherit;\r\n font-weight: 500;\r\n font-size: 12px;\r\n line-height: 21px;\r\n position: absolute;\r\n right: 1px;\r\n margin: 3px;\r\n top: -2px;\r\n text-align: center;\r\n min-width: 1.66667rem;\r\n overflow: hidden;\r\n transition: all 0.1s ease-in-out;\r\n }\r\n\r\n &:after {\r\n content: '';\r\n position: absolute;\r\n left: 3px;\r\n background-color: $gray-200;\r\n box-shadow: none;\r\n border-radius: 2rem;\r\n height: 20px;\r\n width: 20px;\r\n top: 2px;\r\n transition: all 0.1s ease-in-out;\r\n }\r\n }\r\n\r\n &:checked + label {\r\n background-color: $primary;\r\n }\r\n}\r\n\r\ninput[switch]:checked + label {\r\n background-color: $primary;\r\n &:before {\r\n color: $white;\r\n content: attr(data-on-label);\r\n right: auto;\r\n left: 3px;\r\n }\r\n\r\n &:after {\r\n left: 33px;\r\n background-color: $gray-200;\r\n }\r\n}\r\n\r\ninput[switch=\"bool\"] + label {\r\n background-color: $danger;\r\n}\r\ninput[switch=\"bool\"] + label:before,input[switch=\"bool\"]:checked + label:before,\r\ninput[switch=\"default\"]:checked + label:before{\r\n color: $white;\r\n}\r\n\r\ninput[switch=\"bool\"]:checked + label {\r\n background-color: $success;\r\n}\r\n\r\ninput[switch=\"default\"]:checked + label {\r\n background-color: #a2a2a2;\r\n}\r\n\r\ninput[switch=\"primary\"]:checked + label {\r\n background-color: $primary;\r\n}\r\n\r\ninput[switch=\"success\"]:checked + label {\r\n background-color: $success;\r\n}\r\n\r\ninput[switch=\"info\"]:checked + label {\r\n background-color: $info;\r\n}\r\n\r\ninput[switch=\"warning\"]:checked + label {\r\n background-color: $warning;\r\n}\r\n\r\ninput[switch=\"danger\"]:checked + label {\r\n background-color: $danger;\r\n}\r\n\r\ninput[switch=\"dark\"]:checked + label {\r\n background-color: $dark;\r\n &:before {\r\n color: $light;\r\n }\r\n}\r\n\r\n.square-switch{\r\n margin-right: 7px;\r\n input[switch]+label, input[switch]+label:after{\r\n border-radius: 4px;\r\n }\r\n}\r\n","\r\n//\r\n// colorpicker.scss\r\n//\r\n\r\n.pcr-app{\r\n background: $card-bg;\r\n}\r\n\r\n.pcr-app[data-theme=classic]{\r\n .pcr-selection {\r\n .pcr-color-preview{\r\n margin-right: .75em;\r\n margin-left: 0;\r\n }\r\n\r\n .pcr-color-chooser, .pcr-color-opacity{\r\n margin-left: .75em;\r\n margin-right: 0;\r\n }\r\n }\r\n}\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n .pcr-app{\r\n background-color: $gray-dark-300;\r\n }\r\n}","//\r\n// Datepicker\r\n//\r\n// flatpickr\r\n\r\n.flatpickr-input {\r\n &[readonly] {\r\n background-color: $input-bg;\r\n }\r\n}\r\n\r\n.flatpickr-months,\r\n.flatpickr-weekdays {\r\n background-color: $primary;\r\n}\r\n\r\nspan.flatpickr-weekday {\r\n color: $white;\r\n font-weight: $font-weight-medium;\r\n}\r\n\r\n.flatpickr-current-month {\r\n .flatpickr-monthDropdown-months {\r\n &:hover {\r\n background-color: transparent !important;\r\n }\r\n }\r\n}\r\n\r\n.flatpickr-am-pm,\r\n.numInput,\r\n.numInputWrapper {\r\n &:focus,\r\n &:hover {\r\n background-color: transparent !important;\r\n }\r\n}\r\n\r\n.flatpickr-weekdays {\r\n height: 36px !important;\r\n border-bottom: 1px solid $border-color;\r\n}\r\n\r\n.flatpickr-day {\r\n color: $dark !important;\r\n &:hover,\r\n &:focus {\r\n background-color: rgba($light, 0.7) !important;\r\n }\r\n &.today {\r\n border-color: $primary !important;\r\n background-color: rgba($primary, 0.1);\r\n &:hover,\r\n &:focus {\r\n color: $dark !important;\r\n background-color: rgba($primary, 0.15) !important;\r\n }\r\n }\r\n &.selected {\r\n background-color: $primary !important;\r\n border-color: $primary !important;\r\n color: $white !important;\r\n }\r\n\r\n &.flatpickr-disabled,\r\n &.flatpickr-disabled:hover,\r\n &.prevMonthDay,\r\n &.nextMonthDay,\r\n &.notAllowed,\r\n &.notAllowed.prevMonthDay,\r\n &.notAllowed.nextMonthDay {\r\n color: rgba($dark, 0.3) !important;\r\n }\r\n\r\n &.inRange,\r\n &.prevMonthDay.inRange,\r\n &.nextMonthDay.inRange,\r\n &.today.inRange,\r\n &.prevMonthDay.today.inRange,\r\n &.nextMonthDay.today.inRange,\r\n &:hover,\r\n &.prevMonthDay:hover,\r\n &.nextMonthDay:hover,\r\n &:focus,\r\n &.prevMonthDay:focus,\r\n &.nextMonthDay:focus {\r\n background-color: $light;\r\n border-color: $light;\r\n }\r\n &.inRange {\r\n box-shadow: -5px 0 0 $light, 5px 0 0 $light;\r\n }\r\n}\r\n\r\n.flatpickr-months {\r\n .flatpickr-prev-month,\r\n .flatpickr-next-month,\r\n .flatpickr-month {\r\n color: rgba($white, 0.9) !important;\r\n fill: rgba($white, 0.9) !important;\r\n }\r\n}\r\n\r\n.flatpickr-monthDropdown-month {\r\n color: rgba($black, 0.8);\r\n}\r\n.flatpickr-current-month {\r\n input.cur-year {\r\n &[disabled],\r\n &[disabled]:hover {\r\n color: rgba($white, 0.9) !important;\r\n }\r\n }\r\n}\r\n\r\n.flatpickr-time {\r\n input,\r\n .flatpickr-time-separator,\r\n .flatpickr-am-pm {\r\n color: $dark !important;\r\n }\r\n}\r\n\r\n.flatpickr-calendar {\r\n background-color: $dropdown-bg !important;\r\n box-shadow: 1px 0 0 $border-color, -1px 0 0 $border-color, 0 1px 0 $border-color, 0 -1px 0 $border-color,\r\n 0 3px 13px rgba(0, 0, 0, 0.08) !important;\r\n &.hasTime {\r\n .flatpickr-time {\r\n border-top: 1px solid $border-color !important;\r\n }\r\n }\r\n}\r\n\r\n.flatpickr-months {\r\n border-radius: 5px 5px 0px 0px;\r\n .flatpickr-prev-month,\r\n .flatpickr-next-month {\r\n &:hover {\r\n svg {\r\n fill: rgba($white, 0.9) !important;\r\n }\r\n }\r\n }\r\n}\r\n\r\n// Dark layout\r\nbody[data-layout-mode=\"dark\"] {\r\n .flatpickr-calendar {\r\n background-color: lighten($gray-dark-200, 2.5%) !important;\r\n box-shadow: 1px 0 0 $gray-dark-300, -1px 0 0 $gray-dark-300, 0 1px 0 $gray-dark-300, 0 -1px 0 $gray-dark-300,\r\n 0 3px 13px rgba(0, 0, 0, 0.08) !important;\r\n &.hasTime {\r\n .flatpickr-time {\r\n border-top: 1px solid $gray-dark-300 !important;\r\n }\r\n }\r\n }\r\n\r\n .flatpickr-weekdays {\r\n border-color: $gray-dark-300;\r\n }\r\n\r\n .flatpickr-day {\r\n color: $gray-dark-500 !important;\r\n &:hover,\r\n &:focus {\r\n background-color: rgba($gray-dark-300, 0.7) !important;\r\n }\r\n\r\n &.today {\r\n &:hover,\r\n &:focus {\r\n color: $gray-dark-500 !important;\r\n }\r\n }\r\n\r\n &.inRange,\r\n &.prevMonthDay.inRange,\r\n &.nextMonthDay.inRange,\r\n &.today.inRange,\r\n &.prevMonthDay.today.inRange,\r\n &.nextMonthDay.today.inRange,\r\n &:hover,\r\n &.prevMonthDay:hover,\r\n &.nextMonthDay:hover,\r\n &:focus,\r\n &.prevMonthDay:focus,\r\n &.nextMonthDay:focus {\r\n background-color: $gray-dark-300;\r\n border-color: $gray-dark-300;\r\n }\r\n\r\n &.selected {\r\n background-color: $primary !important;\r\n border-color: $primary !important;\r\n color: $white !important;\r\n }\r\n\r\n &.flatpickr-disabled,\r\n &.flatpickr-disabled:hover,\r\n &.prevMonthDay,\r\n &.nextMonthDay,\r\n &.notAllowed,\r\n &.notAllowed.prevMonthDay,\r\n &.notAllowed.nextMonthDay {\r\n color: rgba($gray-dark-500, 0.3) !important;\r\n }\r\n\r\n &.inRange {\r\n box-shadow: -5px 0 0 $gray-dark-300, 5px 0 0 $gray-dark-300;\r\n }\r\n }\r\n\r\n .flatpickr-time {\r\n input,\r\n .flatpickr-time-separator,\r\n .flatpickr-am-pm {\r\n color: $gray-dark-500 !important;\r\n }\r\n\r\n .numInputWrapper span {\r\n &.arrowUp:after {\r\n border-bottom-color: $gray-dark-500;\r\n }\r\n &.arrowDown:after {\r\n border-top-color: $gray-dark-500;\r\n }\r\n }\r\n }\r\n}\r\n","//\r\n// Form editors.scss\r\n//\r\n\r\n// CK Editor\r\n\r\n.ck {\r\n &.ck-toolbar {\r\n background-color: rgba($light, 0.75) !important;\r\n border: 1px solid $input-border-color !important;\r\n\r\n &.ck-toolbar_grouping > .ck-toolbar__items {\r\n flex-wrap: wrap !important;\r\n }\r\n\r\n .ck.ck-toolbar__separator {\r\n background: transparent !important;\r\n }\r\n }\r\n\r\n &.ck-editor__main > .ck-editor__editable {\r\n border-top: 0 !important;\r\n background-color: $card-bg !important;\r\n border-color: $input-border-color !important;\r\n box-shadow: $box-shadow !important;\r\n }\r\n\r\n &.ck-dropdown__panel,\r\n &.ck-list {\r\n background: $dropdown-bg !important;\r\n border: 1px solid $dropdown-border-color !important;\r\n box-shadow: $box-shadow !important;\r\n }\r\n\r\n &.ck-reset_all,\r\n &.ck-reset_all * {\r\n color: $body-color !important;\r\n }\r\n\r\n &.ck-dropdown {\r\n .ck-dropdown__panel {\r\n &.ck-dropdown__panel_ne,\r\n &.ck-dropdown__panel_se {\r\n left: 0;\r\n right: auto !important;\r\n }\r\n }\r\n }\r\n\r\n &.ck-editor__editable_inline {\r\n &[dir=\"rtl\"] {\r\n text-align: left !important;\r\n }\r\n }\r\n}\r\n\r\n.ck-editor__editable {\r\n min-height: 245px !important;\r\n}\r\n\r\n.ck,\r\na.ck {\r\n &.ck-button {\r\n &.ck-on:not(.ck-disabled) {\r\n &:hover,\r\n &:active {\r\n background: $light !important;\r\n box-shadow: none !important;\r\n }\r\n }\r\n\r\n &:focus,\r\n &:active {\r\n background: $light !important;\r\n border-color: $light !important;\r\n }\r\n }\r\n}\r\n\r\n.ck.ck-tooltip .ck-tooltip__text {\r\n background: $dark !important;\r\n color: $light !important;\r\n}\r\n\r\n.ck.ck-toolbar .ck.ck-button.ck-on,\r\na.ck.ck-button.ck-on,\r\n.ck.ck-button:not(.ck-disabled):hover,\r\na.ck.ck-button:not(.ck-disabled):hover {\r\n background: rgba($light, 0.75) !important;\r\n}\r\n\r\n.ck.ck-list__item .ck-button .ck-button__label{\r\n font-family: 'Be Vietnam Pro', sans-serif;\r\n}\r\n\r\n// Tinymce\r\n\r\n.tox-tinymce {\r\n border: 1px solid $input-border-color !important;\r\n }\r\n \r\n .tox {\r\n .tox-collection__item {\r\n color: $dropdown-link-color !important;\r\n }\r\n \r\n .tox-menu.tox-collection.tox-collection--list.tox-selected-menu,\r\n .tox-collection--toolbar.tox-collection--toolbar-lg.tox-selected-menu,\r\n .tox-swatches-menu.tox-selected-menu {\r\n box-shadow: $box-shadow-sm !important;\r\n animation-name: DropDownSlide !important;\r\n animation-duration: 0.3s !important;\r\n animation-fill-mode: both !important;\r\n margin: 0 !important;\r\n position: absolute !important;\r\n z-index: 1000 !important;\r\n padding: 0.5rem 0 !important;\r\n background-color: $dropdown-bg !important;\r\n border: $dropdown-border-width solid $dropdown-border-color !important;\r\n border-radius: 0.25rem !important;\r\n }\r\n \r\n .tox-collection--list .tox-collection__group {\r\n border-color: $border-color !important;\r\n }\r\n \r\n .tox-collection--list {\r\n .tox-collection__item--active {\r\n color: $dropdown-link-hover-color !important;\r\n background-color: $dropdown-link-hover-bg !important;\r\n }\r\n }\r\n \r\n .tox-collection__group-heading {\r\n color: $dropdown-link-hover-color !important;\r\n background-color: $dropdown-link-hover-bg !important;\r\n }\r\n \r\n .tox-statusbar {\r\n border-top: 1px solid $light !important;\r\n }\r\n \r\n .tox-menubar,\r\n .tox-edit-area__iframe,\r\n .tox-statusbar {\r\n background-color: $card-bg !important;\r\n background: none !important;\r\n }\r\n \r\n .tox-mbtn {\r\n color: $gray-700 !important;\r\n \r\n &:hover:not(:disabled):not(.tox-mbtn--active) {\r\n background-color: $light !important;\r\n }\r\n }\r\n \r\n .tox-tbtn {\r\n &:hover {\r\n background-color: $light !important;\r\n }\r\n }\r\n \r\n .tox-toolbar,\r\n .tox-toolbar__overflow,\r\n .tox-toolbar__primary {\r\n background: $light !important;\r\n }\r\n \r\n .tox-toolbar__primary {\r\n border-top-color: $light !important;\r\n }\r\n \r\n .tox-tbtn {\r\n color: $gray-700 !important;\r\n \r\n svg {\r\n fill: $gray-700 !important;\r\n }\r\n }\r\n \r\n .tox-edit-area__iframe {\r\n background-color: $card-bg !important;\r\n }\r\n \r\n .tox-statusbar a,\r\n .tox-statusbar__path-item,\r\n .tox-statusbar__wordcount {\r\n color: $gray-700 !important;\r\n }\r\n \r\n &:not([dir=\"rtl\"]) .tox-toolbar__group:not(:last-of-type) {\r\n border-right: 1px solid darken($light, 5%) !important;\r\n }\r\n \r\n .tox-collection--toolbar {\r\n .tox-collection__item--active {\r\n background-color: $gray-300 !important;\r\n }\r\n }\r\n }\r\n\r\n// Dark layout\r\nbody[data-layout-mode=\"dark\"] {\r\n .ck {\r\n &.ck-toolbar {\r\n background-color: $gray-dark-300 !important;\r\n border-color: $gray-dark-300 !important;\r\n }\r\n\r\n &.ck-dropdown__panel,\r\n &.ck-list {\r\n background-color: lighten($gray-dark-200, 2.5%) !important;\r\n border-color: lighten($gray-dark-200, 2.5%) !important;\r\n box-shadow: $box-shadow !important;\r\n }\r\n\r\n &.ck-editor__main > .ck-editor__editable {\r\n background-color: $gray-dark-200 !important;\r\n border-color: $gray-dark-300 !important;\r\n }\r\n\r\n &.ck-icon :not([fill]) {\r\n fill: $gray-dark-500 !important;\r\n }\r\n\r\n &.ck-reset_all,\r\n &.ck-reset_all * {\r\n color: $gray-dark-400 !important;\r\n }\r\n .ck-link-form,\r\n .ck-input-text,\r\n .ck-label {\r\n background-color: lighten($gray-dark-200, 2.5%) !important;\r\n }\r\n }\r\n\r\n .ck,\r\n a.ck {\r\n &.ck-button {\r\n &:focus,\r\n &:active {\r\n border-color: $gray-dark-300 !important;\r\n }\r\n }\r\n }\r\n\r\n .ck.ck-toolbar .ck.ck-button.ck-on,\r\n a.ck.ck-button.ck-on,\r\n .ck.ck-button:not(.ck-disabled):hover,\r\n a.ck.ck-button:not(.ck-disabled):hover {\r\n background: rgba($gray-dark-400, 0.2) !important;\r\n }\r\n\r\n // Tinymce\r\n\r\n .tox-tinymce {\r\n border: 1px solid $gray-dark-300 !important;\r\n }\r\n\r\n .tox {\r\n .tox-statusbar{\r\n border-top: 1px solid $gray-dark-300!important; \r\n }\r\n }\r\n\r\n .tox {\r\n .tox-toolbar,\r\n .tox-toolbar__overflow,\r\n .tox-toolbar__primary {\r\n background: lighten($gray-dark-200,5%) !important;\r\n border-top: lighten($gray-dark-200,5%) !important ;\r\n }\r\n\r\n .tox-mbtn {\r\n color: $gray-700 !important;\r\n \r\n &:hover:not(:disabled):not(.tox-mbtn--active) {\r\n background-color: transparent !important;\r\n }\r\n }\r\n\r\n \r\n .tox-tbtn{\r\n &:hover{\r\n background: transparent !important;\r\n }\r\n }\r\n\r\n &:not([dir=\"rtl\"]) .tox-toolbar__group:not(:last-of-type) {\r\n border-right: 1px solid lighten($gray-dark-200,5%) !important;\r\n }\r\n\r\n }\r\n \r\n\r\n .tox-menubar,\r\n .tox-edit-area__iframe,\r\n .tox-statusbar {\r\n background-color: $gray-dark-200 !important;\r\n background: none !important;\r\n }\r\n}\r\n\r\n[dir=\"rtl\"] {\r\n .ck.ck-toolbar > .ck-toolbar__items {\r\n flex-direction: row-reverse;\r\n }\r\n}\r\n","\r\n//\r\n// Form-Upload\r\n//\r\n\r\n/* Dropzone */\r\n.dropzone {\r\n min-height: 230px;\r\n border: 2px dashed $gray-400;\r\n background: $card-bg;\r\n border-radius: 6px;\r\n\r\n .dz-message {\r\n font-size: 24px;\r\n width: 100%;\r\n }\r\n}\r\n\r\n// Dark layout\r\nbody[data-layout-mode=\"dark\"] {\r\n .dropzone {\r\n background: lighten($gray-dark-200, 1%);\r\n border-color: $gray-dark-300;\r\n }\r\n}","//\r\n// Form Wizard\r\n//\r\n\r\n// twitter-bs-wizard\r\n\r\n.twitter-bs-wizard{\r\n .twitter-bs-wizard-nav{\r\n\r\n .step-icon{\r\n display: inline-block;\r\n width: 56px;\r\n height: 56px;\r\n line-height: 56px;\r\n border: 1px solid rgba($primary, 0.2);\r\n color: $primary;\r\n text-align: center;\r\n border-radius: 50%;\r\n position: relative;\r\n z-index: 1;\r\n font-size: 20px;\r\n\r\n @media (max-width: 575.98px) {\r\n width: 40px;\r\n height: 40px;\r\n line-height: 38px;\r\n }\r\n }\r\n\r\n .step-title{\r\n margin-left: 6px;\r\n }\r\n\r\n .nav-item{\r\n &:last-child{\r\n .nav-link{\r\n &::after{\r\n display: none;\r\n }\r\n }\r\n }\r\n\r\n .nav-link{\r\n &.done{\r\n .step-icon{\r\n background-color: $primary;\r\n color: $white;\r\n }\r\n .uil{\r\n &:before{\r\n content: \"\\e9c3\";\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n .nav-link{\r\n font-size: 14px;\r\n position: relative;\r\n @media (max-width: 575.98px) {\r\n padding: 0.5rem;\r\n }\r\n &::after{\r\n content: \"\";\r\n position: absolute;\r\n width: 75%;\r\n height: 2px;\r\n background-color: $border-color;\r\n left: 62%;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n @media (max-width: 575.98px) {\r\n display: none;\r\n }\r\n }\r\n &.active{\r\n color: $gray-700;\r\n background-color: transparent;\r\n\r\n .step-icon{\r\n background-color: rgba($primary, 0.2);\r\n color: $primary;\r\n border-color: rgba($primary, 0.2);\r\n }\r\n }\r\n }\r\n }\r\n \r\n .twitter-bs-wizard-pager-link{\r\n padding-top: 24px;\r\n padding-left: 0;\r\n list-style: none;\r\n margin-bottom: 0;\r\n li{\r\n display: inline-block;\r\n\r\n &.next{\r\n float: right;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.twitter-bs-wizard-tab-content{\r\n padding-top: 24px;\r\n min-height: 262px;\r\n}\r\n\r\n// Dark layout\r\nbody[data-layout-mode=\"dark\"] {\r\n .twitter-bs-wizard {\r\n .twitter-bs-wizard-nav {\r\n .nav-link::after{\r\n background-color: $gray-dark-300;\r\n }\r\n }\r\n }\r\n}","\r\n\r\n/* \r\nDatatable\r\n*/\r\n\r\n// datatable\r\n\r\ndiv.dataTables_wrapper {\r\n div.dataTables_filter{\r\n text-align: right;\r\n\r\n @media (max-width: 767px){\r\n text-align: center;\r\n }\r\n\r\n\r\n input{\r\n margin-left: 0.5em;\r\n margin-right: 0;\r\n }\r\n }\r\n}\r\n\r\n.table, table{\r\n &.dataTable{\r\n &.dtr-inline.collapsed>tbody>tr>td{\r\n position: relative;\r\n &.dtr-control{\r\n padding-left: 30px;\r\n &:before{\r\n top: 50%;\r\n left: 5px;\r\n height: 14px;\r\n width: 14px;\r\n margin-top: -9px;\r\n display: block;\r\n position: absolute;\r\n color: $white;\r\n border: 2px solid $white;\r\n border-radius: 14px;\r\n box-sizing: content-box;\r\n text-align: center;\r\n text-indent: 0 !important;\r\n line-height: 14px;\r\n content: '+';\r\n background-color: $primary;\r\n }\r\n }\r\n }\r\n\r\n >thead{\r\n >tr{\r\n >th, >td{\r\n &:not(.sorting_disabled){\r\n padding-right: 30px;\r\n padding-left: 12px;\r\n }\r\n }\r\n }\r\n\r\n .sorting, \r\n .sorting_asc, \r\n .sorting_desc, \r\n .sorting_asc_disabled, \r\n .sorting_desc_disabled{\r\n &::before{\r\n right: 1em;\r\n left: auto;\r\n }\r\n\r\n &::after{\r\n right: .5em;\r\n left: auto;\r\n }\r\n }\r\n }\r\n }\r\n}","//\r\n// Select 2\r\n//\r\n\r\n.select2-container {\r\n .select2-selection--single {\r\n background-color: $input-bg;\r\n border: 1px solid $input-border-color;\r\n height: 38px;\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n .select2-selection__rendered {\r\n line-height: 36px;\r\n padding-left: 12px;\r\n color: $input-color;\r\n }\r\n\r\n .select2-selection__arrow {\r\n height: 34px;\r\n width: 34px;\r\n right: 3px;\r\n\r\n b {\r\n border-color: $gray-500 transparent transparent transparent;\r\n border-width: 6px 6px 0 6px;\r\n }\r\n }\r\n\r\n .select2-selection__placeholder {\r\n color: $body-color;\r\n }\r\n }\r\n}\r\n\r\n[dir=\"rtl\"] {\r\n .select2-selection__rendered {\r\n text-align: end;\r\n }\r\n}\r\n\r\n.select2-container--open {\r\n .select2-selection--single {\r\n .select2-selection__arrow {\r\n b {\r\n border-color: transparent transparent $gray-500 transparent !important;\r\n border-width: 0 6px 6px 6px !important;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.select2-container--default {\r\n .select2-search--dropdown {\r\n padding: 10px;\r\n background-color: $dropdown-bg;\r\n\r\n .select2-search__field {\r\n border: 1px solid $input-border-color;\r\n background-color: $input-bg;\r\n color: $gray-600;\r\n outline: none;\r\n }\r\n }\r\n\r\n .select2-results__option--highlighted[aria-selected] {\r\n background-color: $primary;\r\n }\r\n\r\n .select2-results__option[aria-selected=\"true\"] {\r\n background-color: $dropdown-link-active-bg;\r\n color: $dropdown-link-active-color;\r\n\r\n &:hover {\r\n background-color: $primary;\r\n color: $white;\r\n }\r\n }\r\n}\r\n\r\n.select2-results__option {\r\n padding: 6px 12px;\r\n}\r\n\r\n.select2-dropdown {\r\n border: 1px solid $dropdown-border-color;\r\n background-color: $dropdown-bg;\r\n box-shadow: $box-shadow;\r\n}\r\n\r\n.select2-search {\r\n input {\r\n border: 1px solid $gray-300;\r\n }\r\n}\r\n\r\n.select2-container {\r\n .select2-selection--multiple {\r\n min-height: 38px;\r\n background-color: $input-bg;\r\n border: 1px solid $input-border-color !important;\r\n\r\n .select2-selection__rendered {\r\n padding: 2px 10px;\r\n }\r\n\r\n .select2-search__field {\r\n border: 0;\r\n color: $input-color;\r\n\r\n &::placeholder {\r\n color: $input-color;\r\n }\r\n }\r\n\r\n .select2-selection__choice {\r\n background-color: $gray-200;\r\n border: 1px solid $gray-300;\r\n border-radius: 1px;\r\n padding: 0 7px;\r\n }\r\n }\r\n}\r\n\r\n.select2-container--default {\r\n &.select2-container--focus {\r\n .select2-selection--multiple {\r\n border-color: $gray-400;\r\n }\r\n }\r\n\r\n .select2-results__group {\r\n font-weight: $font-weight-semibold;\r\n }\r\n}\r\n\r\n// ajax select\r\n\r\n.select2-result-repository__avatar {\r\n float: left;\r\n width: 60px;\r\n margin-right: 10px;\r\n\r\n img {\r\n width: 100%;\r\n height: auto;\r\n border-radius: 2px;\r\n }\r\n}\r\n\r\n.select2-result-repository__statistics {\r\n margin-top: 7px;\r\n}\r\n\r\n.select2-result-repository__forks,\r\n.select2-result-repository__stargazers,\r\n.select2-result-repository__watchers {\r\n display: inline-block;\r\n font-size: 11px;\r\n margin-right: 1em;\r\n color: $gray-500;\r\n\r\n .fa {\r\n margin-right: 4px;\r\n\r\n &.fa-flash {\r\n &::before {\r\n content: \"\\f0e7\";\r\n font-family: \"Font Awesome 5 Free\";\r\n }\r\n }\r\n }\r\n}\r\n\r\n.select2-results__option--highlighted {\r\n\r\n .select2-result-repository__forks,\r\n .select2-result-repository__stargazers,\r\n .select2-result-repository__watchers {\r\n color: rgba($white, 0.8);\r\n }\r\n}\r\n\r\n.select2-result-repository__meta {\r\n overflow: hidden;\r\n}\r\n\r\n// templating-select\r\n\r\n.img-flag {\r\n margin-right: 7px;\r\n height: 15px;\r\n width: 18px;\r\n}\r\n\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n .select2-container {\r\n .select2-selection--multiple {\r\n background-color: lighten($gray-dark-200, 2%);\r\n color: $gray-500;\r\n border: 1px solid $gray-dark-300 !important;\r\n\r\n .select2-search__field {\r\n background-color: lighten($gray-dark-200, 2.5%);\r\n border-color: $gray-dark-300;\r\n\r\n &::placeholder {\r\n color: $gray-500;\r\n }\r\n }\r\n }\r\n\r\n .select2-selection--single {\r\n background-color: lighten($gray-dark-200, 2%);\r\n border: 1px solid $gray-dark-300;\r\n\r\n .select2-selection__rendered {\r\n color: $gray-500;\r\n }\r\n }\r\n\r\n .select2-dropdown {\r\n background-color: lighten($gray-dark-200, 2.5%);\r\n border-color: $gray-dark-300;\r\n color: $gray-dark-500;\r\n }\r\n\r\n }\r\n\r\n .select2-container--default {\r\n .select2-search--dropdown {\r\n background-color: lighten($gray-dark-200, 2.5%);\r\n border-color: $gray-dark-300;\r\n\r\n .select2-search__field {\r\n background-color: lighten($gray-dark-200, 2.5%);\r\n border-color: $gray-dark-300;\r\n }\r\n }\r\n\r\n .select2-results__option[aria-selected=true] {\r\n background-color: lighten($gray-dark-200, 5%);\r\n color: $gray-500;\r\n }\r\n }\r\n}","//\r\n// Responsive Table\r\n//\r\n\r\n\r\n.table-rep-plugin {\r\n .btn-toolbar {\r\n display: block;\r\n }\r\n .table-responsive {\r\n border: none !important;\r\n }\r\n .btn-group {\r\n .btn-default {\r\n background-color: $secondary;\r\n color: $light;\r\n border: 1px solid $secondary;\r\n &.btn-primary {\r\n background-color: $primary;\r\n border-color: $primary;\r\n color: $white;\r\n box-shadow: 0 0 0 2px rgba($primary, 0.5);\r\n }\r\n }\r\n &.pull-right {\r\n float: right;\r\n .dropdown-menu {\r\n right: 0;\r\n transform: none !important;\r\n top: 100% !important;\r\n }\r\n }\r\n }\r\n tbody {\r\n th {\r\n font-size: 14px;\r\n font-weight: normal;\r\n }\r\n }\r\n\r\n .checkbox-row {\r\n padding-left: 40px;\r\n color: $dropdown-color !important;\r\n\r\n &:hover {\r\n background-color: lighten($gray-200, 2%) !important;\r\n }\r\n\r\n label {\r\n display: inline-block;\r\n padding-left: 5px;\r\n position: relative;\r\n &::before {\r\n -o-transition: 0.3s ease-in-out;\r\n -webkit-transition: 0.3s ease-in-out;\r\n background-color: $white;\r\n border-radius: 3px;\r\n border: 1px solid $gray-300;\r\n content: \"\";\r\n display: inline-block;\r\n height: 17px;\r\n left: 0;\r\n margin-left: -20px;\r\n position: absolute;\r\n transition: 0.3s ease-in-out;\r\n width: 17px;\r\n outline: none !important;\r\n }\r\n &::after {\r\n color: $gray-200;\r\n display: inline-block;\r\n font-size: 11px;\r\n height: 16px;\r\n left: 0;\r\n margin-left: -20px;\r\n padding-left: 3px;\r\n padding-top: 1px;\r\n position: absolute;\r\n top: -1px;\r\n width: 16px;\r\n }\r\n }\r\n input[type=\"checkbox\"] {\r\n cursor: pointer;\r\n opacity: 0;\r\n z-index: 1;\r\n outline: none !important;\r\n\r\n &:disabled + label {\r\n opacity: 0.65;\r\n }\r\n }\r\n input[type=\"checkbox\"]:focus + label {\r\n &::before {\r\n outline-offset: -2px;\r\n outline: none;\r\n }\r\n }\r\n input[type=\"checkbox\"]:checked + label {\r\n &::after {\r\n content: \"\\f00c\";\r\n font-family: \"Font Awesome 5 Free\";\r\n font-weight: 900;\r\n }\r\n }\r\n input[type=\"checkbox\"]:disabled + label {\r\n &::before {\r\n background-color: $gray-100;\r\n cursor: not-allowed;\r\n }\r\n }\r\n input[type=\"checkbox\"]:checked + label {\r\n &::before {\r\n background-color: $primary;\r\n border-color: $primary;\r\n }\r\n &::after {\r\n color: $white;\r\n }\r\n }\r\n }\r\n\r\n .fixed-solution {\r\n .sticky-table-header {\r\n top: $header-height !important;\r\n background-color: $primary;\r\n table {\r\n color: $white;\r\n }\r\n }\r\n }\r\n\r\n table.focus-on tbody tr.focused th,\r\n table.focus-on tbody tr.focused td,\r\n .sticky-table-header {\r\n background: $primary;\r\n border-color: $primary;\r\n color: $white;\r\n\r\n table {\r\n color: $white;\r\n }\r\n }\r\n}\r\n\r\nbody[data-layout=\"horizontal\"] {\r\n @media (min-width: 992px) {\r\n .fixed-solution {\r\n .sticky-table-header {\r\n top: $header-height + 50px !important;\r\n }\r\n }\r\n }\r\n}\r\n","\r\n//\r\n// Table editable\r\n//\r\n\r\n.table-edits{\r\n input, select{\r\n height: $input-height-sm;\r\n padding: $input-padding-y-sm $input-padding-x-sm;\r\n border: 1px solid $input-border-color;\r\n background-color: $input-bg;\r\n color: $input-color;\r\n border-radius: $input-border-radius;\r\n &:focus{\r\n outline: none;\r\n border-color: $input-focus-border-color;\r\n }\r\n }\r\n}\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n .table-edits{\r\n input, select{\r\n color: $gray-dark-500;\r\n background-color: lighten($gray-dark-200,2%);\r\n border: 1px solid $gray-dark-300;\r\n &:focus{\r\n border-color: $gray-dark-300;\r\n }\r\n }\r\n }\r\n}","\r\n//\r\n// apexcharts.scss\r\n//\r\n.apex-charts {\r\n min-height: 10px !important;\r\n text {\r\n font-family: $font-family-base !important;\r\n fill: $gray-500;\r\n }\r\n .apexcharts-canvas {\r\n margin: 0 auto;\r\n }\r\n}\r\n\r\n.apexcharts-tooltip-title,\r\n.apexcharts-tooltip-text {\r\n font-family: $font-family-base !important;\r\n}\r\n\r\n.apexcharts-legend-series {\r\n font-weight: $font-weight-medium;\r\n}\r\n\r\n.apexcharts-gridline {\r\n pointer-events: none;\r\n stroke: $apex-grid-color;\r\n}\r\n\r\n.apexcharts-legend-text {\r\n color: $gray-600 !important;\r\n font-family: $font-family-base !important;\r\n font-size: 13px !important;\r\n}\r\n\r\n.apexcharts-pie-label {\r\n fill: $white !important;\r\n}\r\n\r\n.apexcharts-yaxis,\r\n.apexcharts-xaxis {\r\n text {\r\n font-family: $font-family-base !important;\r\n fill: $gray-500;\r\n }\r\n}\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n\r\n .apexcharts-gridline {\r\n stroke: lighten($gray-dark-200,2.5%);\r\n }\r\n\r\n .apexcharts-tooltip.apexcharts-theme-light {\r\n background-color: $gray-dark-200;\r\n border-color: lighten($gray-dark-200,2.5%);\r\n\r\n .apexcharts-tooltip-title {\r\n background-color: $gray-dark-300;\r\n border-color: lighten($gray-dark-300,2.5%);\r\n }\r\n }\r\n\r\n .apexcharts-legend-text {\r\n color: $gray-dark-500 !important;\r\n }\r\n\r\n .apexcharts-yaxis-texts-g.apexcharts-xaxis-inversed-texts-g,\r\n .apexcharts-grid-row {\r\n + line {\r\n stroke: lighten($gray-dark-300,2.5%);\r\n }\r\n }\r\n\r\n .apexcharts-xaxis line,\r\n .apexcharts-treemap-rect,\r\n .apexcharts-heatmap-rect,\r\n .apexcharts-pie-area {\r\n stroke: lighten($gray-dark-300,2.5%);\r\n }\r\n\r\n .apexcharts-radialbar-track.apexcharts-track {\r\n path {\r\n stroke: lighten($gray-dark-300,2.5%);\r\n }\r\n }\r\n .apexcharts-radar-series.apexcharts-plot-series {\r\n polygon,\r\n line {\r\n fill: $gray-dark-300;\r\n stroke: lighten($gray-dark-300,2.5%);\r\n }\r\n }\r\n .apexcharts-pie {\r\n circle {\r\n stroke: lighten($gray-dark-300,2.5%);\r\n }\r\n }\r\n}","\r\n//\r\n// echarts.scss\r\n//\r\n\r\n.e-charts{\r\n height: 350px;\r\n}","//\r\n// sparkline.scss\r\n//\r\n\r\n.jqstooltip {\r\n box-sizing: content-box;\r\n width: auto !important;\r\n height: auto !important;\r\n background-color: $gray-800 !important;\r\n box-shadow: $box-shadow-lg;\r\n padding: 5px 10px !important;\r\n border-radius: 3px;\r\n border-color: $gray-900 !important;\r\n}\r\n\r\n.jqsfield {\r\n color: $gray-200 !important;\r\n font-size: 12px !important;\r\n line-height: 18px !important;\r\n font-family: $font-family-base !important;\r\n font-weight: $font-weight-medium !important;\r\n}\r\n\r\n// Dark Layout\r\nbody[data-layout-mode=\"dark\"] {\r\n .jqstooltip {\r\n background-color: $gray-dark-800 !important;\r\n border-color: $gray-dark-800 !important;\r\n }\r\n\r\n .jqsfield {\r\n color: $gray-dark-300 !important;\r\n }\r\n}\r\n","\r\n//\r\n// Google map\r\n//\r\n\r\n.gmaps, .gmaps-panaroma {\r\n height: 300px !important;\r\n background: $gray-100;\r\n border-radius: 3px;\r\n}\r\n\r\n.gmaps-overlay {\r\n display: block;\r\n text-align: center;\r\n color: $white;\r\n font-size: 16px;\r\n line-height: 40px;\r\n background: $primary;\r\n border-radius: 4px;\r\n padding: 10px 20px;\r\n}\r\n\r\n.gmaps-overlay_arrow {\r\n left: 50%;\r\n margin-left: -16px;\r\n width: 0;\r\n height: 0;\r\n position: absolute;\r\n &.above {\r\n bottom: -15px;\r\n border-left: 16px solid transparent;\r\n border-right: 16px solid transparent;\r\n border-top: 16px solid $primary;\r\n }\r\n &.below {\r\n top: -15px;\r\n border-left: 16px solid transparent;\r\n border-right: 16px solid transparent;\r\n border-bottom: 16px solid $primary;\r\n }\r\n \r\n}","//\r\n// vector-maps.scss\r\n//\r\n\r\n.jvectormap-label {\r\n border: none;\r\n background: $gray-800;\r\n color: $gray-100;\r\n font-family: $font-family-base;\r\n font-size: $font-size-base;\r\n padding: 5px 8px;\r\n}\r\n\r\n// Dark layout\r\nbody[data-layout-mode=\"dark\"] {\r\n .jvectormap-label {\r\n background: $gray-dark-800;\r\n color: $gray-dark-200;\r\n }\r\n}","//\r\n// leaflet-maps.scss\r\n//\r\n\r\n.leaflet-map {\r\n height: 300px;\r\n &.leaflet-container{\r\n z-index: 1;\r\n }\r\n}","// \r\n// authentication.scss\r\n//\r\n\r\n.auth-bg{\r\n background-image: url(\"../images/auth-bg.jpg\");\r\n background-position: center;\r\n background-size: cover;\r\n background-repeat: no-repeat;\r\n .bg-overlay{\r\n background: linear-gradient(to bottom, rgba($dark, 0.5) 30%, $dark 100%);\r\n opacity: 1;\r\n }\r\n @media (min-width: 768px){\r\n height: 100vh;\r\n }\r\n}\r\n\r\n// auth-pass-inputgroup\r\n.auth-pass-inputgroup{\r\n input[type=\"text\"] + .btn .mdi-eye-outline{\r\n &:before{\r\n content: \"\\F06D1\";\r\n }\r\n }\r\n}\r\n\r\n\r\n.form-floating-custom{\r\n position: relative;\r\n >label{\r\n left: 48px;\r\n margin-top: 3px;\r\n }\r\n >.form-control, >.form-select{\r\n padding-left: 60px;\r\n }\r\n .form-floating-icon{\r\n position: absolute;\r\n top: 0;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 56px;\r\n color: $text-muted;\r\n svg{\r\n width: 20px;\r\n height: 20px;\r\n }\r\n }\r\n}\r\n\r\n.auth-full-page-content{\r\n min-height: 100vh;\r\n background-color: $card-bg;\r\n}\r\n\r\n// auth 2\r\n\r\n.auth-logo{\r\n .logo-txt{\r\n color: $dark;\r\n font-size: 20px;\r\n }\r\n}\r\n\r\n// auth-pass-inputgroup\r\n\r\n.auth-pass-inputgroup{\r\n input[type=\"input\"] + .btn .mdi-eye-outline{\r\n &:before{\r\n content: \"\\F06D1\";\r\n }\r\n }\r\n}\r\n\r\n// for bubble effect\r\n.bg-bubbles {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n overflow: hidden;\r\n li {\r\n position: absolute;\r\n list-style: none;\r\n display: block;\r\n width: 40px;\r\n height: 40px;\r\n border-radius: 30px;\r\n background-color: rgba(255, 255, 255, 0.1);\r\n top: -50px;\r\n animation: square 20s infinite;\r\n transition-timing-function: linear;\r\n &:nth-child(1) {\r\n left: 10%;\r\n }\r\n &:nth-child(2) {\r\n left: 20%;\r\n width: 120px;\r\n height: 120px;\r\n animation-delay: 2s;\r\n animation-duration: 17s;\r\n }\r\n &:nth-child(3) {\r\n left: 25%;\r\n animation-delay: 4s;\r\n }\r\n &:nth-child(4) {\r\n left: 40%;\r\n width: 80px;\r\n height: 80px;\r\n animation-duration: 22s;\r\n }\r\n &:nth-child(5) {\r\n left: 70%;\r\n width: 90px;\r\n height: 90px;\r\n }\r\n &:nth-child(6) {\r\n left: 70%;\r\n width: 120px;\r\n height: 120px;\r\n animation-delay: 3s;\r\n }\r\n &:nth-child(7) {\r\n left: 32%;\r\n width: 150px;\r\n height: 150px;\r\n animation-delay: 7s;\r\n }\r\n &:nth-child(8) {\r\n left: 55%;\r\n width: 80px;\r\n height: 80px;\r\n animation-delay: 15s;\r\n animation-duration: 40s;\r\n }\r\n &:nth-child(9) {\r\n left: 25%;\r\n width: 50px;\r\n height: 50px;\r\n animation-delay: 2s;\r\n animation-duration: 40s;\r\n }\r\n &:nth-child(10) {\r\n left: 90%;\r\n width: 140px;\r\n height: 140px;\r\n animation-delay: 11s;\r\n }\r\n }\r\n}\r\n\r\n@keyframes square {\r\n 0% {\r\n transform: translateY(0);\r\n }\r\n 100% {\r\n transform: translateY(1000px) rotate(600deg);\r\n }\r\n}\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n .form-floating-custom{\r\n .form-floating-icon{\r\n color: $gray-dark-400;\r\n }\r\n }\r\n\r\n .auth-logo{\r\n .logo-txt{\r\n color: $white;\r\n }\r\n }\r\n\r\n .auth-full-page-content{\r\n background-color: $gray-dark-200;\r\n }\r\n}","/* ==============\r\n Email\r\n===================*/\r\n.email-leftbar {\r\n width: 236px;\r\n float: left;\r\n padding: 20px;\r\n border-radius: 5px;\r\n}\r\n\r\n.email-rightbar {\r\n margin-left: 260px;\r\n}\r\n\r\n.chat-user-box {\r\n p.user-title {\r\n color: $dark;\r\n font-weight: 500;\r\n }\r\n p {\r\n font-size: 12px;\r\n }\r\n}\r\n\r\n@media (max-width: 767px) {\r\n .email-leftbar {\r\n float: none;\r\n width: 100%;\r\n }\r\n .email-rightbar {\r\n margin: 0;\r\n }\r\n}\r\n\r\n\r\n.mail-list {\r\n a {\r\n display: block;\r\n color: $gray-600;\r\n line-height: 24px;\r\n padding: 8px 5px;\r\n &.active {\r\n color: $danger;\r\n font-weight: 500;\r\n }\r\n }\r\n}\r\n\r\n.message-list {\r\n display: block;\r\n padding-left: 0;\r\n\r\n li {\r\n position: relative;\r\n display: block;\r\n height: 50px;\r\n line-height: 50px;\r\n cursor: default;\r\n transition-duration: .3s;\r\n\r\n a{\r\n color: $gray-600;\r\n }\r\n\r\n &:hover {\r\n background: $gray-300;\r\n transition-duration: .05s;\r\n }\r\n\r\n .col-mail {\r\n float: left;\r\n position: relative;\r\n }\r\n\r\n .col-mail-1 {\r\n width: 320px;\r\n\r\n .star-toggle,\r\n .checkbox-wrapper-mail,\r\n .dot {\r\n display: block;\r\n float: left;\r\n }\r\n\r\n .dot {\r\n border: 4px solid transparent;\r\n border-radius: 100px;\r\n margin: 22px 26px 0;\r\n height: 0;\r\n width: 0;\r\n line-height: 0;\r\n font-size: 0;\r\n }\r\n\r\n .checkbox-wrapper-mail {\r\n margin: 15px 10px 0 20px;\r\n }\r\n\r\n .star-toggle {\r\n margin-top: 18px;\r\n margin-left: 5px;\r\n }\r\n\r\n .title {\r\n position: absolute;\r\n top: 0;\r\n left: 110px;\r\n right: 0;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n margin-bottom: 0;\r\n }\r\n }\r\n\r\n .col-mail-2 {\r\n position: absolute;\r\n top: 0;\r\n left: 320px;\r\n right: 0;\r\n bottom: 0;\r\n\r\n .subject,\r\n .date {\r\n position: absolute;\r\n top: 0;\r\n }\r\n\r\n .subject {\r\n left: 0;\r\n right: 200px;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n }\r\n\r\n .date {\r\n right: 0;\r\n width: 170px;\r\n padding-left: 80px;\r\n }\r\n }\r\n\r\n &.active,\r\n &.active:hover {\r\n box-shadow: inset 3px 0 0 $primary;\r\n }\r\n\r\n \r\n &.unread {\r\n background-color: $gray-300;\r\n font-weight: 500;\r\n color: darken($dark,5%);\r\n a{\r\n color: darken($dark,5%);\r\n font-weight: 500;\r\n }\r\n }\r\n }\r\n\r\n\r\n .checkbox-wrapper-mail {\r\n cursor: pointer;\r\n height: 20px;\r\n width: 20px;\r\n position: relative;\r\n display: inline-block;\r\n box-shadow: inset 0 0 0 1px $gray-400;\r\n border-radius: 1px;\r\n\r\n input {\r\n opacity: 0;\r\n cursor: pointer;\r\n }\r\n input:checked ~ label {\r\n opacity: 1;\r\n }\r\n\r\n label {\r\n position: absolute;\r\n height: 20px;\r\n width: 20px;\r\n left: 0;\r\n cursor: pointer;\r\n opacity: 0;\r\n margin-bottom: 0;\r\n transition-duration: .05s;\r\n top: 0;\r\n &:before {\r\n content: \"\\F012C\";\r\n font-family: \"Material Design Icons\";\r\n top: 0;\r\n height: 20px;\r\n color: darken($dark,5%);\r\n width: 20px;\r\n position: absolute;\r\n margin-top: -16px;\r\n left: 4px;\r\n font-size: 13px;\r\n }\r\n }\r\n }\r\n}\r\n\r\n@media (max-width: 575.98px) { \r\n .message-list li .col-mail-1 {\r\n width: 200px;\r\n }\r\n}\r\n\r\n.email-editor{\r\n .ck-editor__editable_inline{\r\n min-height: 200px !important;\r\n }\r\n}\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n .mail-list{\r\n a{\r\n color: $gray-dark-400;\r\n &.active {\r\n color: $danger;\r\n }\r\n }\r\n }\r\n\r\n .chat-user-box {\r\n p.user-title {\r\n color: $gray-dark-500;\r\n }\r\n }\r\n\r\n .message-list{\r\n li {\r\n a{\r\n color: $gray-dark-400;\r\n }\r\n\r\n &:hover{\r\n background: lighten($gray-dark-200, 2.5%);\r\n }\r\n\r\n &.unread{\r\n background: lighten($gray-dark-200, 2.5%);\r\n color: $gray-dark-500;\r\n }\r\n }\r\n\r\n .checkbox-wrapper-mail{\r\n box-shadow: inset 0 0 0 1px $gray-dark-400;\r\n\r\n label{\r\n &::before{\r\n color: $gray-dark-500;\r\n }\r\n }\r\n }\r\n }\r\n\r\n \r\n}","// \r\n// Chat.scss\r\n//\r\n\r\n// chat left sidebar\r\n\r\n.chat-leftsidebar{\r\n @media (min-width: 992px) {\r\n min-width: 260px;\r\n }\r\n\r\n @media (min-width: 1200px) {\r\n min-width: 380px;\r\n }\r\n\r\n .chat-leftsidebar-nav{\r\n .nav{\r\n .nav-link{\r\n &.active{\r\n background-color: $primary;\r\n color: $white;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n// search-box\r\n\r\n.search-box{\r\n .form-control{\r\n padding-left: 40px;\r\n }\r\n .search-icon{\r\n font-size: 16px; \r\n position: absolute;\r\n left: 13px;\r\n top: 0;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n }\r\n}\r\n\r\n\r\n.chat-noti-dropdown{\r\n &.active{\r\n &:before{\r\n content: \"\";\r\n position: absolute;\r\n width: 8px;\r\n height: 8px;\r\n background-color: $danger;\r\n border-radius: 50%;\r\n right: 0;\r\n }\r\n }\r\n\r\n .btn{\r\n padding: 6px;\r\n box-shadow: none;\r\n font-size: 20px;\r\n }\r\n}\r\n\r\n.chat-message-list{\r\n height: calc(100vh - 346px);\r\n @media (min-width: 992px){\r\n height: calc(100vh - 406px);\r\n }\r\n}\r\n\r\n\r\n\r\n.chat-list{\r\n margin: 0;\r\n li{\r\n &.active{\r\n a{\r\n background-color: rgba($primary, 0.075);\r\n border-color: transparent;\r\n }\r\n }\r\n a{\r\n display: block;\r\n padding: 14px 16px;\r\n color: $text-muted;\r\n transition: all 0.4s;\r\n border-top: 1px solid $border-color;\r\n position: relative;\r\n &:hover{\r\n background-color: rgba($primary, 0.075);\r\n border-color: transparent;\r\n }\r\n }\r\n\r\n .user-img{\r\n position: relative;\r\n\r\n .user-status{\r\n width: 10px;\r\n height: 10px;\r\n background-color: $gray-500;\r\n border-radius: 50%;\r\n border: 2px solid $card-bg;\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n }\r\n\r\n &.online{\r\n .user-status{\r\n background-color: $success;\r\n }\r\n }\r\n\r\n &.away{\r\n .user-status{\r\n background-color: $warning;\r\n }\r\n }\r\n }\r\n\r\n &.unread{\r\n a{\r\n font-weight: $font-weight-semibold;\r\n color: $dark;\r\n }\r\n }\r\n\r\n .unread-message {\r\n position: absolute;\r\n display: inline-block;\r\n right: 16px;\r\n top: 33px;\r\n }\r\n }\r\n}\r\n\r\n.contact-list{\r\n font-size: 12px;\r\n text-transform: uppercase;\r\n color: $text-muted;\r\n font-weight: $font-weight-semibold;\r\n margin-bottom: 7px;\r\n}\r\n\r\n// user chat nav\r\n\r\n.user-chat-nav{\r\n .dropdown{\r\n .nav-btn{\r\n height: 36px;\r\n width: 36px;\r\n line-height: 36px;\r\n box-shadow: none;\r\n padding: 0;\r\n font-size: 18px;\r\n }\r\n }\r\n}\r\n\r\n// chat conversation\r\n\r\n.chat-conversation{\r\n li{\r\n clear: both;\r\n }\r\n\r\n .chat-day-title{\r\n position: relative;\r\n text-align: center;\r\n margin-bottom: 24px;\r\n border: none;\r\n\r\n .title{\r\n background-color: $card-bg;\r\n position: relative;\r\n z-index: 1;\r\n padding: 6px 24px;\r\n }\r\n\r\n &:before{\r\n content: \"\";\r\n position: absolute;\r\n width: 100%;\r\n height: 1px;\r\n left: 0;\r\n right: 0;\r\n background-color: $border-color;\r\n top: 10px;\r\n }\r\n .badge{\r\n font-size: 12px;\r\n }\r\n }\r\n\r\n .conversation-list{\r\n margin-bottom: 24px;\r\n position: relative;\r\n max-width: 85%;\r\n\r\n .ctext-wrap {\r\n display: flex;\r\n margin-bottom: 10px;\r\n }\r\n\r\n .ctext-wrap-content {\r\n padding: 12px 20px;\r\n background-color: $primary;\r\n border-radius: 8px;\r\n color: $white;\r\n position: relative;\r\n margin-left: 16px;\r\n\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n border: 5px solid transparent;\r\n border-right-color: $primary;\r\n border-top-color: $primary;\r\n left: -10px;\r\n top: 10px;\r\n }\r\n\r\n .conversation-name {\r\n .time{\r\n font-size: 10px;\r\n position: absolute;\r\n right: -58px;\r\n bottom: 0;\r\n color: $text-muted;\r\n font-weight: $font-weight-normal;\r\n opacity: 0;\r\n transition: all .4s;\r\n }\r\n \r\n .user-name{\r\n color: rgba($white, 0.5); \r\n }\r\n \r\n }\r\n\r\n &:hover{\r\n .time{\r\n opacity: 1;\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n .dropdown {\r\n .dropdown-toggle {\r\n font-size: 18px;\r\n padding: 4px;\r\n color: $gray-600;\r\n\r\n @media (max-width: 575.98px) {\r\n display: none;\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n .message-img {\r\n border-radius: .2rem;\r\n position: relative;\r\n\r\n .message-img-list {\r\n position: relative;\r\n }\r\n\r\n img {\r\n max-width: 120px;\r\n }\r\n }\r\n\r\n}\r\n\r\n .right {\r\n .conversation-list {\r\n float: right;\r\n text-align: right;\r\n\r\n .ctext-wrap {\r\n\r\n .ctext-wrap-content {\r\n order: 2;\r\n background-color: rgba($light, 0.5);\r\n text-align: right;\r\n border-radius: 8px;\r\n margin-left: 0;\r\n margin-right: 16px;\r\n color: $dark;\r\n\r\n &:before {\r\n border: 5px solid transparent;\r\n border-top-color: rgba($light, 0.5);\r\n border-left-color: rgba($light, 0.5);\r\n left: auto;\r\n right: -10px;\r\n }\r\n }\r\n\r\n .conversation-name {\r\n justify-content: flex-end;\r\n .user-name, .time{\r\n color: $text-muted; \r\n }\r\n .time{\r\n order: 1;\r\n margin-left: 0;\r\n margin-right: 8px;\r\n position: absolute;\r\n left: -58px;\r\n right: auto;\r\n }\r\n\r\n .user-name{\r\n order: 2;\r\n }\r\n }\r\n }\r\n\r\n .dropdown {\r\n order: 1;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.chat-send{\r\n @media (max-width: 575.98px) {\r\n min-width: auto;\r\n }\r\n }\r\n\r\nbody[data-layout=\"horizontal\"]{\r\n .chat-message-list{\r\n height: calc(100vh - 346px);\r\n @media (min-width: 992px){\r\n height: calc(100vh - 476px);\r\n }\r\n }\r\n\r\n .chat-conversation{\r\n height: calc(100vh - 300px);\r\n @media (min-width: 992px){\r\n height: calc(100vh - 420px);\r\n }\r\n }\r\n}\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n\r\n .chat-leftsidebar{\r\n .chat-leftsidebar-nav {\r\n .nav .nav-link{\r\n &.active{\r\n background-color: $gray-dark-200;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .chat-list{\r\n li{\r\n a{\r\n color: $gray-dark-400;\r\n border-color: $gray-dark-300;\r\n }\r\n\r\n .user-img{\r\n .user-status{\r\n border-color: $gray-dark-300;\r\n }\r\n }\r\n\r\n &.unread{\r\n a{\r\n color: $gray-dark-500;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .chat-conversation{\r\n .chat-day-title {\r\n .title{\r\n background-color: $gray-dark-200;\r\n }\r\n\r\n &::before{\r\n background-color: $gray-dark-300;\r\n }\r\n }\r\n\r\n .right{\r\n .conversation-list {\r\n .ctext-wrap {\r\n .ctext-wrap-content{\r\n background-color: rgba($gray-dark-300, 0.5);\r\n color: $gray-dark-500;\r\n &::before{\r\n border-top-color: rgba($gray-dark-300, 0.5);\r\n border-left-color: rgba($gray-dark-300, 0.5);\r\n }\r\n }\r\n\r\n .conversation-name{\r\n .time, .user-name{\r\n color: $gray-dark-400;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","// \r\n// coming-soon.scss\r\n//\r\n\r\n.slide-bg{\r\n height: 100vh;\r\n background-position: center;\r\n background-size: cover;\r\n background-repeat: no-repeat;\r\n}\r\n\r\n.coming-content{\r\n position: absolute;\r\n top: 0;\r\n z-index: 1;\r\n left: 0;\r\n width: 100%;\r\n display: flex;\r\n align-items: center;\r\n\r\n .app-search{\r\n max-width: 340px;\r\n }\r\n}\r\n\r\n.preview-thumbsnav{\r\n position: absolute;\r\n bottom: 14px;\r\n z-index: 9;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n max-width: 120px;\r\n .nav-img{\r\n cursor: pointer;\r\n padding: 3px;\r\n background-color: rgba($white, 0.1);\r\n border: 1px solid rgba($white, 0.1);\r\n\r\n @media (max-width: 575.98px) {\r\n display: none;\r\n }\r\n }\r\n\r\n .swiper-slide-thumb-active{\r\n .nav-img{\r\n background-color: $white;\r\n border: 1px solid $white;\r\n }\r\n }\r\n}\r\n\r\n.coming-box {\r\n width: 25%;\r\n &:last-of-type{\r\n .count-num{\r\n &::after{\r\n display: none;\r\n }\r\n }\r\n }\r\n}\r\n\r\n// counter number\r\n\r\n.counter-number {\r\n font-size: 32px;\r\n font-weight: $font-weight-semibold;\r\n text-align: center;\r\n display: flex;\r\n gap: 24px;\r\n @media (max-width: 575.98px) {\r\n font-size: 18px;\r\n }\r\n .count-title {\r\n position: relative;\r\n bottom: -120px;\r\n @media (max-width: 575.98px) {\r\n bottom: -95px;\r\n font-size: 14px;\r\n }\r\n font-size: 16px;\r\n font-weight: $font-weight-medium;\r\n display: block;\r\n padding-bottom: 6px;\r\n color: rgba($white, 0.5);\r\n }\r\n}\r\n\r\n.count-num{\r\n background-color: rgba($white, 0.1);\r\n padding: 16px 8px;\r\n position: relative;\r\n border-radius: 4px;\r\n color: $white;\r\n\r\n &::after{\r\n content: \":\";\r\n font-size: 20px;\r\n position: absolute;\r\n right: -16px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: $white;\r\n }\r\n}\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n .count-num{\r\n background-color: $gray-dark-300;\r\n }\r\n\r\n .preview-thumbsnav .swiper-slide-thumb-active .nav-img{\r\n background-color: $gray-dark-300;\r\n border-color: $gray-dark-300;\r\n }\r\n}","// \r\n// ecommerce.scss\r\n//\r\n\r\n// product\r\n\r\n.search-box{\r\n .form-control{\r\n border-radius: 30px;\r\n padding-left: 40px;\r\n }\r\n .search-icon{\r\n font-size: 16px; \r\n position: absolute;\r\n left: 13px;\r\n top: 0;\r\n line-height: 38px;\r\n }\r\n}\r\n\r\n.product-list{\r\n li{\r\n a{\r\n display: block;\r\n padding: 4px 0px;\r\n color: $body-color;\r\n }\r\n }\r\n}\r\n\r\n.product-view-nav{\r\n &.nav-pills {\r\n .nav-item{\r\n margin-left: 4px;\r\n }\r\n .nav-link{\r\n width: 36px;\r\n height: 36px;\r\n font-size: 16px;\r\n padding: 0;\r\n line-height: 36px;\r\n text-align: center;\r\n border-radius: 50%;\r\n }\r\n }\r\n}\r\n\r\n.product-ribbon{\r\n position: absolute;\r\n right: 0px;\r\n top: 0px;\r\n}\r\n\r\n// Product Details\r\n\r\n.product-detai-imgs{\r\n .nav{\r\n .nav-link{\r\n margin: 7px 0px;\r\n\r\n &.active{\r\n background-color: $gray-300;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.product-color{\r\n a{\r\n display: inline-block;\r\n text-align: center;\r\n color: $body-color;\r\n .product-color-item{\r\n margin: 7px;\r\n }\r\n &.active, &:hover{\r\n color: $primary;\r\n .product-color-item{\r\n border-color: $primary !important;\r\n }\r\n }\r\n }\r\n}\r\n\r\n// ecommerce cart\r\n\r\n.visa-card{\r\n .visa-logo{\r\n line-height: 0.5;\r\n }\r\n\r\n .visa-pattern{\r\n position: absolute;\r\n font-size: 385px;\r\n color: rgba($white, 0.05);\r\n line-height: 0.4;\r\n right: 0px;\r\n bottom: 0px;\r\n }\r\n}\r\n\r\n\r\n// checkout\r\n\r\n.checkout-tabs{\r\n .nav-pills{\r\n .nav-link{\r\n margin-bottom: 24px;\r\n text-align: center;\r\n background-color: $card-bg;\r\n box-shadow: $box-shadow;\r\n\r\n &.active{\r\n background-color: $primary;\r\n }\r\n .check-nav-icon{\r\n font-size: 36px;\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n .product-detai-imgs{\r\n .nav{\r\n .nav-link{\r\n &.active{\r\n background-color: $gray-dark-300;\r\n }\r\n }\r\n }\r\n } \r\n\r\n .product-list{\r\n li{\r\n a{\r\n color: $gray-dark-800\r\n }\r\n }\r\n }\r\n \r\n \r\n .checkout-tabs{\r\n .nav-pills{\r\n .nav-link{\r\n background-color: $gray-dark-300;\r\n &.active{\r\n background-color: $primary;\r\n }\r\n }\r\n }\r\n }\r\n \r\n}","//\r\n// timeline.scss\r\n//\r\n\r\n\r\n/************** vertical timeline **************/\r\n\r\n.timeline {\r\n position: relative;\r\n width: 100%;\r\n padding: 30px 0;\r\n @media (max-width: 767.98px) {\r\n padding: 0;\r\n }\r\n .timeline-end,\r\n .timeline-start,\r\n .timeline-year {\r\n position: relative;\r\n width: 100%;\r\n text-align: center;\r\n z-index: 1;\r\n p {\r\n display: inline-block;\r\n width: 80px;\r\n height: 80px;\r\n margin: 0;\r\n padding: 30px 0;\r\n text-align: center;\r\n background-color: $primary;\r\n border-radius: 100px;\r\n color: $white;\r\n text-transform: uppercase;\r\n }\r\n }\r\n .timeline-year {\r\n margin: 30px 0;\r\n }\r\n .timeline-continue {\r\n position: relative;\r\n width: 100%;\r\n padding: 60px 0;\r\n &:after {\r\n position: absolute;\r\n content: \"\";\r\n width: 1px;\r\n height: 100%;\r\n top: 0;\r\n left: 50%;\r\n margin-left: -1px;\r\n background: $primary;\r\n }\r\n }\r\n .timeline-icon {\r\n margin: 42px 10px 0 10px;\r\n }\r\n .timeline-left {\r\n text-align: right;\r\n .timeline-icon {\r\n text-align: left;\r\n }\r\n }\r\n .timeline-right {\r\n .timeline-icon {\r\n text-align: right;\r\n }\r\n text-align: left;\r\n }\r\n .timeline-icon {\r\n &::after {\r\n content: \"\";\r\n display: block;\r\n position: absolute;\r\n width: 14px;\r\n height: 14px;\r\n top: 45px;\r\n background: $primary;\r\n border-radius: 15px;\r\n z-index: 1;\r\n }\r\n }\r\n\r\n @media (min-width: 768px) {\r\n .event-content{\r\n padding-right: 24px;\r\n }\r\n\r\n .timeline-text {\r\n margin-right: 40px;\r\n }\r\n }\r\n\r\n \r\n .timeline-left {\r\n .timeline-icon {\r\n &::after {\r\n left: -7px;\r\n }\r\n }\r\n @media (min-width: 768px) {\r\n .event-content{\r\n padding-right: 0;\r\n padding-left: 24px;\r\n }\r\n\r\n .timeline-text {\r\n margin-right: 0px;\r\n margin-left: 40px;\r\n }\r\n\r\n .event-img{\r\n justify-content: flex-end;\r\n }\r\n }\r\n }\r\n .timeline-right {\r\n .timeline-icon {\r\n &::after {\r\n right: -7px;\r\n }\r\n }\r\n }\r\n .timeline-box {\r\n position: relative;\r\n display: inline-block;\r\n margin: 15px;\r\n padding: 20px;\r\n background-color: $card-bg;\r\n box-shadow: $box-shadow;\r\n border-radius: 6px;\r\n &::after {\r\n content: \"\";\r\n position: absolute;\r\n width: 16px;\r\n height: 16px;\r\n top: 26px;\r\n background-color: $white;\r\n border: 1px solid $light;\r\n transform: rotate(45deg);\r\n margin: 0px auto;\r\n }\r\n }\r\n .timeline-launch {\r\n position: relative;\r\n display: inline-block;\r\n margin: 15px;\r\n padding: 20px;\r\n border: 1px solid $gray-200;\r\n border-radius: 6px;\r\n width: 100%;\r\n margin: 15px 0;\r\n padding: 0;\r\n border: none;\r\n text-align: center;\r\n background: transparent;\r\n }\r\n }\r\n \r\n \r\n .timeline-date {\r\n right: 20px;\r\n\r\n @media (max-width: 767.98px) {\r\n left: -70px;\r\n right: auto;\r\n }\r\n }\r\n \r\n .timeline-left {\r\n\r\n .timeline-date {\r\n left: 20px;\r\n @media (max-width: 767.98px) {\r\n left: -70px;\r\n right: auto;\r\n }\r\n }\r\n }\r\n \r\n .timeline {\r\n .timeline-date {\r\n width: 54px;\r\n height: 80px;\r\n display: inline-block;\r\n padding: 8px;\r\n clip-path: polygon(0 0, 100% 0, 100% 80%, 50% 100%, 0 80%);\r\n top: -10px;\r\n position: absolute;\r\n z-index: 1;\r\n @media (max-width: 767.98px) {\r\n top: 0px;\r\n }\r\n }\r\n .timeline-right {\r\n .timeline-box {\r\n &::after {\r\n border-color: transparent transparent $light $light;\r\n left: -8px;\r\n right: 100%;\r\n }\r\n }\r\n }\r\n .timeline-left {\r\n .timeline-box {\r\n &::after {\r\n border-color: $light $light transparent transparent;\r\n right: -8px;\r\n }\r\n }\r\n }\r\n .timeline-launch {\r\n .timeline-box {\r\n &::after {\r\n top: -8px;\r\n left: 32px;\r\n border-color: $light transparent transparent $light;\r\n @media (min-width: 768px) {\r\n left: 50%;\r\n transform: rotate(45deg) translateX(-50%);\r\n top: -2px;\r\n }\r\n }\r\n }\r\n .timeline-text {\r\n width: 100%;\r\n }\r\n }\r\n }\r\n \r\n \r\n \r\n \r\n@media (max-width: 767px) {\r\n .timeline .timeline-continue::after {\r\n left: 40px;\r\n }\r\n \r\n .timeline {\r\n .timeline-end,\r\n .timeline-start,\r\n .timeline-year {\r\n text-align: left;\r\n }\r\n .row.timeline-left {\r\n text-align: left;\r\n .timeline-icon {\r\n text-align: left;\r\n }\r\n }\r\n .row.timeline-right {\r\n .timeline-icon {\r\n text-align: left;\r\n }\r\n text-align: left;\r\n }\r\n .timeline-launch {\r\n text-align: left;\r\n margin-bottom: 0;\r\n }\r\n }\r\n \r\n .timeline {\r\n .row.timeline-left {\r\n .timeline-icon {\r\n &::after {\r\n left: 43px;\r\n }\r\n }\r\n }\r\n .row.timeline-right {\r\n .timeline-icon {\r\n &::after {\r\n left: 43px;\r\n }\r\n }\r\n }\r\n }\r\n \r\n .timeline {\r\n .timeline-box {\r\n margin-left: 82px;\r\n margin-right: 0;\r\n }\r\n .row.timeline-right {\r\n .timeline-icon {\r\n margin-left: 55px;\r\n }\r\n }\r\n .row.timeline-left {\r\n .timeline-icon {\r\n margin-left: 55px;\r\n }\r\n }\r\n .timeline-launch {\r\n .timeline-box {\r\n margin-left: 0;\r\n margin-bottom: 0;\r\n }\r\n }\r\n .row.timeline-left {\r\n .timeline-box {\r\n &::after {\r\n left: -8px;\r\n border-color: transparent transparent $light $light;\r\n right: auto;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nbody[data-layout-mode=\"dark\"] {\r\n .timeline{\r\n .timeline-box{\r\n border-color: $gray-dark-300;\r\n background-color: $gray-dark-200;\r\n &:after{\r\n background-color: $gray-dark-200;\r\n }\r\n }\r\n\r\n .timeline-left{\r\n .timeline-box{\r\n &:after{\r\n border-color: $gray-dark-300 $gray-dark-300 transparent transparent;\r\n }\r\n }\r\n }\r\n\r\n .timeline-right{\r\n .timeline-box{\r\n &:after{\r\n border-color: transparent transparent $gray-dark-300 $gray-dark-300;\r\n }\r\n }\r\n }\r\n\r\n .timeline-launch .timeline-box::after{\r\n border-color: $gray-dark-300 transparent transparent $gray-dark-300;\r\n }\r\n }\r\n}","// \r\n// profile.scss\r\n//\r\n\r\n\r\n.profile-user{\r\n background-image: url(../images/profile_default_bg.jpg);\r\n background-position: center;\r\n background-size: cover;\r\n background-repeat: no-repeat;\r\n margin: -24px -24px 23px -24px;\r\n padding: 140px 0px;\r\n position: relative;\r\n &:after{\r\n background: linear-gradient(to bottom, rgba($dark, 0.5) 30%, $dark 100%);\r\n position: absolute;\r\n height: 100%;\r\n width: 100%;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n top: 0;\r\n opacity: 0.5;\r\n content: \"\";\r\n\r\n }\r\n}\r\n\r\n.profile-content{\r\n position: relative;\r\n margin-top: -60px;\r\n}","// \r\n// Extras pages.scss\r\n//\r\n\r\n\r\n/*********************\r\n Maintenance\r\n**********************/ \r\n\r\n.maintenance-cog-icon{\r\n .cog-icon{\r\n position: relative;\r\n bottom: 24px;\r\n right: 14px; \r\n }\r\n}\r\n\r\n\r\n// pricing\r\n\r\n\r\n.pricing-badge {\r\n position: absolute;\r\n top: 0;\r\n z-index: 9;\r\n right: 0;\r\n width: 100%;\r\n display: block;\r\n font-size: 15px;\r\n padding: 0;\r\n overflow: hidden;\r\n height: 100px;\r\n .badge {\r\n float: right;\r\n transform: rotate(45deg);\r\n right: -67px;\r\n top: 17px;\r\n position: relative;\r\n text-align: center;\r\n width: 200px;\r\n font-size: 13px;\r\n margin: 0;\r\n padding: 7px 10px;\r\n font-weight: 500;\r\n color: $primary;\r\n background: $white;\r\n }\r\n}\r\n\r\n\r\n\r\n// PRICING TAB\r\n\r\n.pricing-tab-box{\r\n .nav-link{\r\n padding: 16px 20px;\r\n border: 1px solid $gray-200;\r\n background: $card-bg;\r\n &.active{\r\n border: 1px solid $primary;\r\n padding: 16px 20px;\r\n background: $card-bg;\r\n i{\r\n color: $primary;\r\n &:before{\r\n content: \"\\e9a8\";\r\n }\r\n }\r\n h1{\r\n color: $primary;\r\n }\r\n }\r\n \r\n }\r\n}\r\n\r\n.pricing-table-bg{\r\n background: $card-bg;\r\n}\r\n\r\nbody[data-layout-mode=dark]{\r\n .pricing-tab-box {\r\n .nav-link{\r\n border-color: $gray-dark-300;\r\n background: $gray-dark-200;\r\n\r\n\r\n &.active{\r\n border-color: $primary;\r\n background: $gray-dark-200;\r\n }\r\n }\r\n }\r\n\r\n .pricing-table-bg{\r\n background: $gray-dark-200;\r\n }\r\n}\r\n\r\n\r\n// Error PAge\r\n\r\n.error-title{\r\n text-transform: uppercase;\r\n background: repeating-linear-gradient(45deg, $primary, $primary 20px, $success 40px, $success 10px);\r\n -webkit-background-clip: text;\r\n -webkit-text-fill-color: transparent;\r\n font-size: 12rem;\r\n line-height: .8;\r\n position: relative;\r\n}\r\n"]} \ No newline at end of file diff --git a/static/css/bootstrap.css b/static/css/bootstrap.css new file mode 100644 index 0000000..95a799c --- /dev/null +++ b/static/css/bootstrap.css @@ -0,0 +1,14667 @@ +@charset "UTF-8"; +/*! + * Bootstrap v5.1.3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +:root { + --bs-blue: #1c84ee; + --bs-indigo: #564ab1; + --bs-purple: #6f42c1; + --bs-pink: #e83e8c; + --bs-red: #ef6767; + --bs-orange: #fa5f1c; + --bs-yellow: #ffcc5a; + --bs-green: #34c38f; + --bs-teal: #050505; + --bs-cyan: #16daf1; + --bs-white: #fff; + --bs-gray: #74788d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9e9ef; + --bs-gray-300: #f6f6f6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #74788d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #2b3940; + --bs-primary: #1c84ee; + --bs-secondary: #74788d; + --bs-success: #34c38f; + --bs-info: #16daf1; + --bs-warning: #ffcc5a; + --bs-danger: #ef6767; + --bs-pink: #e83e8c; + --bs-light: #f6f6f6; + --bs-dark: #2b3940; + --bs-primary-rgb: 28, 132, 238; + --bs-secondary-rgb: 116, 120, 141; + --bs-success-rgb: 52, 195, 143; + --bs-info-rgb: 22, 218, 241; + --bs-warning-rgb: 255, 204, 90; + --bs-danger-rgb: 239, 103, 103; + --bs-pink-rgb: 232, 62, 140; + --bs-light-rgb: 246, 246, 246; + --bs-dark-rgb: 43, 57, 64; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-body-color-rgb: 73, 80, 87; + --bs-body-bg-rgb: 244, 245, 248; + --bs-font-sans-serif: "Be Vietnam Pro", sans-serif; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: var(--bs-font-sans-serif); + --bs-body-font-size: 0.8125rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #495057; + --bs-body-bg: #f4f5f8; +} + +*, +*::before, +*::after { + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +@media (prefers-reduced-motion: no-preference) { + :root { + scroll-behavior: smooth; + } +} + +body { + margin: 0; + font-family: var(--bs-body-font-family); + font-size: var(--bs-body-font-size); + font-weight: var(--bs-body-font-weight); + line-height: var(--bs-body-line-height); + color: var(--bs-body-color); + text-align: var(--bs-body-text-align); + background-color: var(--bs-body-bg); + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +hr { + margin: 1rem 0; + color: inherit; + background-color: currentColor; + border: 0; + opacity: 0.2; +} + +hr:not([size]) { + height: 1px; +} + +h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 600; + line-height: 1.2; +} + +h1, .h1 { + font-size: calc(1.328125rem + 0.9375vw); +} +@media (min-width: 1200px) { + h1, .h1 { + font-size: 2.03125rem; + } +} + +h2, .h2 { + font-size: calc(1.2875rem + 0.45vw); +} +@media (min-width: 1200px) { + h2, .h2 { + font-size: 1.625rem; + } +} + +h3, .h3 { + font-size: calc(1.2671875rem + 0.20625vw); +} +@media (min-width: 1200px) { + h3, .h3 { + font-size: 1.421875rem; + } +} + +h4, .h4 { + font-size: 1.21875rem; +} + +h5, .h5 { + font-size: 1.015625rem; +} + +h6, .h6 { + font-size: 0.8125rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title], +abbr[data-bs-original-title] { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul { + padding-right: 2rem; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: 0.5rem; + margin-right: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small, .small { + font-size: 80%; +} + +mark, .mark { + padding: 0.2em; + background-color: #fcf8e3; +} + +sub, +sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +a { + color: #1c84ee; + text-decoration: none; +} +a:hover { + color: #166abe; + text-decoration: underline; +} + +a:not([href]):not([class]), a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} + +pre, +code, +kbd, +samp { + font-family: var(--bs-font-monospace); + font-size: 1em; + direction: ltr ; + unicode-bidi: bidi-override; +} + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 87.5%; + color: #2b3940; +} +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +code { + font-size: 87.5%; + color: #e83e8c; + word-wrap: break-word; +} +a > code { + color: inherit; +} + +kbd { + padding: 0.2rem 0.4rem; + font-size: 87.5%; + color: #fff; + background-color: #2b3940; + border-radius: 0.2rem; +} +kbd kbd { + padding: 0; + font-size: 1em; + font-weight: 700; +} + +figure { + margin: 0 0 1rem; +} + +img, +svg { + vertical-align: middle; +} + +table { + caption-side: bottom; + border-collapse: collapse; +} + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #74788d; + text-align: right; +} + +th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +thead, +tbody, +tfoot, +tr, +td, +th { + border-color: inherit; + border-style: solid; + border-width: 0; +} + +label { + display: inline-block; +} + +button { + border-radius: 0; +} + +button:focus:not(:focus-visible) { + outline: 0; +} + +input, +button, +select, +optgroup, +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]::-webkit-calendar-picker-indicator { + display: none; +} + +button, +[type=button], +[type=reset], +[type=submit] { + -webkit-appearance: button; +} +button:not(:disabled), +[type=button]:not(:disabled), +[type=reset]:not(:disabled), +[type=submit]: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: right; + width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: calc(1.275rem + 0.3vw); + line-height: inherit; +} +@media (min-width: 1200px) { + legend { + font-size: 1.5rem; + } +} +legend + * { + clear: right; +} + +::-webkit-datetime-edit-fields-wrapper, +::-webkit-datetime-edit-text, +::-webkit-datetime-edit-minute, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-year-field { + padding: 0; +} + +::-webkit-inner-spin-button { + height: auto; +} + +[type=search] { + outline-offset: -2px; + -webkit-appearance: textfield; +} + +[type="tel"], +[type="url"], +[type="email"], +[type="number"] { + direction: ltr; +} +::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-color-swatch-wrapper { + padding: 0; +} + +::file-selector-button { + font: inherit; +} + +::-webkit-file-upload-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.015625rem; + font-weight: 300; +} + +.display-1 { + font-size: calc(1.725rem + 5.7vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-1 { + font-size: 6rem; + } +} + +.display-2 { + font-size: calc(1.675rem + 5.1vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-2 { + font-size: 5.5rem; + } +} + +.display-3 { + font-size: calc(1.575rem + 3.9vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-3 { + font-size: 4.5rem; + } +} + +.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-right: 0; + list-style: none; +} + +.list-inline { + padding-right: 0; + list-style: none; +} + +.list-inline-item { + display: inline-block; +} +.list-inline-item:not(:last-child) { + margin-left: 0.5rem; +} + +.initialism { + font-size: 80%; + text-transform: uppercase; +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.015625rem; +} +.blockquote > :last-child { + margin-bottom: 0; +} + +.blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: 80%; + color: #74788d; +} +.blockquote-footer::before { + content: "— "; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: #f4f5f8; + border: 1px solid #ced4da; + border-radius: 0.25rem; + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 80%; + color: #74788d; +} + +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + width: 100%; + padding-left: var(--bs-gutter-x, 12px); + padding-right: var(--bs-gutter-x, 12px); + margin-left: auto; + margin-right: auto; +} + +@media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1320px; + } +} +.row { + --bs-gutter-x: 24px; + --bs-gutter-y: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); +} +.row > * { + -ms-flex-negative: 0; + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-left: calc(var(--bs-gutter-x) * 0.5); + padding-right: calc(var(--bs-gutter-x) * 0.5); + margin-top: var(--bs-gutter-y); +} + +.col { + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; +} + +.row-cols-auto > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; +} + +.row-cols-1 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; +} + +.row-cols-2 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; +} + +.row-cols-3 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.3333333333%; +} + +.row-cols-4 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; +} + +.row-cols-5 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 20%; +} + +.row-cols-6 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.6666666667%; +} + +.col-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; +} + +.col-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 8.33333333%; +} + +.col-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.66666667%; +} + +.col-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; +} + +.col-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.33333333%; +} + +.col-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 41.66666667%; +} + +.col-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; +} + +.col-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 58.33333333%; +} + +.col-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 66.66666667%; +} + +.col-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 75%; +} + +.col-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 83.33333333%; +} + +.col-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 91.66666667%; +} + +.col-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; +} + +.offset-1 { + margin-right: 8.33333333%; +} + +.offset-2 { + margin-right: 16.66666667%; +} + +.offset-3 { + margin-right: 25%; +} + +.offset-4 { + margin-right: 33.33333333%; +} + +.offset-5 { + margin-right: 41.66666667%; +} + +.offset-6 { + margin-right: 50%; +} + +.offset-7 { + margin-right: 58.33333333%; +} + +.offset-8 { + margin-right: 66.66666667%; +} + +.offset-9 { + margin-right: 75%; +} + +.offset-10 { + margin-right: 83.33333333%; +} + +.offset-11 { + margin-right: 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 { + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; + } + + .row-cols-sm-auto > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + } + + .row-cols-sm-1 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; + } + + .row-cols-sm-2 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; + } + + .row-cols-sm-3 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-sm-4 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; + } + + .row-cols-sm-5 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 20%; + } + + .row-cols-sm-6 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-sm-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + } + + .col-sm-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 8.33333333%; + } + + .col-sm-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.66666667%; + } + + .col-sm-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; + } + + .col-sm-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.33333333%; + } + + .col-sm-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 41.66666667%; + } + + .col-sm-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; + } + + .col-sm-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 58.33333333%; + } + + .col-sm-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 66.66666667%; + } + + .col-sm-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 75%; + } + + .col-sm-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 83.33333333%; + } + + .col-sm-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 91.66666667%; + } + + .col-sm-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; + } + + .offset-sm-0 { + margin-right: 0; + } + + .offset-sm-1 { + margin-right: 8.33333333%; + } + + .offset-sm-2 { + margin-right: 16.66666667%; + } + + .offset-sm-3 { + margin-right: 25%; + } + + .offset-sm-4 { + margin-right: 33.33333333%; + } + + .offset-sm-5 { + margin-right: 41.66666667%; + } + + .offset-sm-6 { + margin-right: 50%; + } + + .offset-sm-7 { + margin-right: 58.33333333%; + } + + .offset-sm-8 { + margin-right: 66.66666667%; + } + + .offset-sm-9 { + margin-right: 75%; + } + + .offset-sm-10 { + margin-right: 83.33333333%; + } + + .offset-sm-11 { + margin-right: 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 { + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; + } + + .row-cols-md-auto > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + } + + .row-cols-md-1 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; + } + + .row-cols-md-2 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; + } + + .row-cols-md-3 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-md-4 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; + } + + .row-cols-md-5 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 20%; + } + + .row-cols-md-6 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-md-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + } + + .col-md-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 8.33333333%; + } + + .col-md-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.66666667%; + } + + .col-md-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; + } + + .col-md-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.33333333%; + } + + .col-md-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 41.66666667%; + } + + .col-md-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; + } + + .col-md-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 58.33333333%; + } + + .col-md-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 66.66666667%; + } + + .col-md-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 75%; + } + + .col-md-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 83.33333333%; + } + + .col-md-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 91.66666667%; + } + + .col-md-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; + } + + .offset-md-0 { + margin-right: 0; + } + + .offset-md-1 { + margin-right: 8.33333333%; + } + + .offset-md-2 { + margin-right: 16.66666667%; + } + + .offset-md-3 { + margin-right: 25%; + } + + .offset-md-4 { + margin-right: 33.33333333%; + } + + .offset-md-5 { + margin-right: 41.66666667%; + } + + .offset-md-6 { + margin-right: 50%; + } + + .offset-md-7 { + margin-right: 58.33333333%; + } + + .offset-md-8 { + margin-right: 66.66666667%; + } + + .offset-md-9 { + margin-right: 75%; + } + + .offset-md-10 { + margin-right: 83.33333333%; + } + + .offset-md-11 { + margin-right: 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 { + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; + } + + .row-cols-lg-auto > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + } + + .row-cols-lg-1 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; + } + + .row-cols-lg-2 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; + } + + .row-cols-lg-3 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-lg-4 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; + } + + .row-cols-lg-5 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 20%; + } + + .row-cols-lg-6 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-lg-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + } + + .col-lg-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 8.33333333%; + } + + .col-lg-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.66666667%; + } + + .col-lg-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; + } + + .col-lg-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.33333333%; + } + + .col-lg-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 41.66666667%; + } + + .col-lg-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; + } + + .col-lg-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 58.33333333%; + } + + .col-lg-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 66.66666667%; + } + + .col-lg-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 75%; + } + + .col-lg-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 83.33333333%; + } + + .col-lg-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 91.66666667%; + } + + .col-lg-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; + } + + .offset-lg-0 { + margin-right: 0; + } + + .offset-lg-1 { + margin-right: 8.33333333%; + } + + .offset-lg-2 { + margin-right: 16.66666667%; + } + + .offset-lg-3 { + margin-right: 25%; + } + + .offset-lg-4 { + margin-right: 33.33333333%; + } + + .offset-lg-5 { + margin-right: 41.66666667%; + } + + .offset-lg-6 { + margin-right: 50%; + } + + .offset-lg-7 { + margin-right: 58.33333333%; + } + + .offset-lg-8 { + margin-right: 66.66666667%; + } + + .offset-lg-9 { + margin-right: 75%; + } + + .offset-lg-10 { + margin-right: 83.33333333%; + } + + .offset-lg-11 { + margin-right: 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 { + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; + } + + .row-cols-xl-auto > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + } + + .row-cols-xl-1 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; + } + + .row-cols-xl-2 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; + } + + .row-cols-xl-3 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-xl-4 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; + } + + .row-cols-xl-5 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 20%; + } + + .row-cols-xl-6 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-xl-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + } + + .col-xl-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 8.33333333%; + } + + .col-xl-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.66666667%; + } + + .col-xl-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; + } + + .col-xl-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.33333333%; + } + + .col-xl-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 41.66666667%; + } + + .col-xl-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; + } + + .col-xl-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 58.33333333%; + } + + .col-xl-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 66.66666667%; + } + + .col-xl-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 75%; + } + + .col-xl-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 83.33333333%; + } + + .col-xl-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 91.66666667%; + } + + .col-xl-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; + } + + .offset-xl-0 { + margin-right: 0; + } + + .offset-xl-1 { + margin-right: 8.33333333%; + } + + .offset-xl-2 { + margin-right: 16.66666667%; + } + + .offset-xl-3 { + margin-right: 25%; + } + + .offset-xl-4 { + margin-right: 33.33333333%; + } + + .offset-xl-5 { + margin-right: 41.66666667%; + } + + .offset-xl-6 { + margin-right: 50%; + } + + .offset-xl-7 { + margin-right: 58.33333333%; + } + + .offset-xl-8 { + margin-right: 66.66666667%; + } + + .offset-xl-9 { + margin-right: 75%; + } + + .offset-xl-10 { + margin-right: 83.33333333%; + } + + .offset-xl-11 { + margin-right: 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 { + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; + } + + .row-cols-xxl-auto > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + } + + .row-cols-xxl-1 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; + } + + .row-cols-xxl-2 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; + } + + .row-cols-xxl-3 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-xxl-4 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; + } + + .row-cols-xxl-5 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 20%; + } + + .row-cols-xxl-6 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-xxl-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + } + + .col-xxl-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 8.33333333%; + } + + .col-xxl-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.66666667%; + } + + .col-xxl-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; + } + + .col-xxl-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.33333333%; + } + + .col-xxl-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 41.66666667%; + } + + .col-xxl-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; + } + + .col-xxl-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 58.33333333%; + } + + .col-xxl-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 66.66666667%; + } + + .col-xxl-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 75%; + } + + .col-xxl-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 83.33333333%; + } + + .col-xxl-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 91.66666667%; + } + + .col-xxl-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; + } + + .offset-xxl-0 { + margin-right: 0; + } + + .offset-xxl-1 { + margin-right: 8.33333333%; + } + + .offset-xxl-2 { + margin-right: 16.66666667%; + } + + .offset-xxl-3 { + margin-right: 25%; + } + + .offset-xxl-4 { + margin-right: 33.33333333%; + } + + .offset-xxl-5 { + margin-right: 41.66666667%; + } + + .offset-xxl-6 { + margin-right: 50%; + } + + .offset-xxl-7 { + margin-right: 58.33333333%; + } + + .offset-xxl-8 { + margin-right: 66.66666667%; + } + + .offset-xxl-9 { + margin-right: 75%; + } + + .offset-xxl-10 { + margin-right: 83.33333333%; + } + + .offset-xxl-11 { + margin-right: 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-bg: transparent; + --bs-table-accent-bg: transparent; + --bs-table-striped-color: #495057; + --bs-table-striped-bg: #f8f9fa; + --bs-table-active-color: #495057; + --bs-table-active-bg: #f8f9fa; + --bs-table-hover-color: #495057; + --bs-table-hover-bg: #f8f9fa; + width: 100%; + margin-bottom: 1rem; + color: #495057; + vertical-align: top; + border-color: #e9e9ef; +} +.table > :not(caption) > * > * { + padding: 0.75rem 0.75rem; + background-color: var(--bs-table-bg); + border-bottom-width: 1px; + -webkit-box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); + box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); +} +.table > tbody { + vertical-align: inherit; +} +.table > thead { + vertical-align: bottom; +} +.table > :not(:first-child) { + border-top: 2px solid #e9e9ef; +} + +.caption-top { + caption-side: top; +} + +.table-sm > :not(caption) > * > * { + padding: 0.3rem 0.3rem; +} + +.table-bordered > :not(caption) > * { + border-width: 1px 0; +} +.table-bordered > :not(caption) > * > * { + border-width: 0 1px; +} + +.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-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} + +.table-active { + --bs-table-accent-bg: var(--bs-table-active-bg); + color: var(--bs-table-active-color); +} + +.table-hover > tbody > tr:hover > * { + --bs-table-accent-bg: var(--bs-table-hover-bg); + color: var(--bs-table-hover-color); +} + +.table-primary { + --bs-table-bg: #d2e6fc; + --bs-table-striped-bg: #c8dbef; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bdcfe3; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #c2d5e9; + --bs-table-hover-color: #fff; + color: #000; + border-color: #bdcfe3; +} + +.table-secondary { + --bs-table-bg: #e3e4e8; + --bs-table-striped-bg: #d8d9dc; + --bs-table-striped-color: #000; + --bs-table-active-bg: #cccdd1; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #d2d3d7; + --bs-table-hover-color: #fff; + color: #000; + border-color: #cccdd1; +} + +.table-success { + --bs-table-bg: #d6f3e9; + --bs-table-striped-bg: #cbe7dd; + --bs-table-striped-color: #000; + --bs-table-active-bg: #c1dbd2; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #c6e1d8; + --bs-table-hover-color: #000; + color: #000; + border-color: #c1dbd2; +} + +.table-info { + --bs-table-bg: #d0f8fc; + --bs-table-striped-bg: #c6ecef; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bbdfe3; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c0e5e9; + --bs-table-hover-color: #000; + color: #000; + border-color: #bbdfe3; +} + +.table-warning { + --bs-table-bg: #fff5de; + --bs-table-striped-bg: #f2e9d3; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e6ddc8; + --bs-table-active-color: #000; + --bs-table-hover-bg: #ece3cd; + --bs-table-hover-color: #000; + color: #000; + border-color: #e6ddc8; +} + +.table-danger { + --bs-table-bg: #fce1e1; + --bs-table-striped-bg: #efd6d6; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e3cbcb; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #e9d0d0; + --bs-table-hover-color: #fff; + color: #000; + border-color: #e3cbcb; +} + +.table-light { + --bs-table-bg: #f6f6f6; + --bs-table-striped-bg: #eaeaea; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dddddd; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e4e4e4; + --bs-table-hover-color: #000; + color: #000; + border-color: #dddddd; +} + +.table-dark { + --bs-table-bg: #2b3940; + --bs-table-striped-bg: #36434a; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #404d53; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #3b484e; + --bs-table-hover-color: #fff; + color: #fff; + border-color: #404d53; +} + +.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: 0.5rem; +} + +.col-form-label { + padding-top: calc(0.47rem + 1px); + padding-bottom: calc(0.47rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.015625rem; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.7109375rem; +} + +.form-text { + margin-top: 0.25rem; + font-size: 80%; + color: #74788d; +} + +.form-control { + display: block; + width: 100%; + padding: 0.47rem 0.75rem; + font-size: 0.8125rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: 0.25rem; + -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control { + -webkit-transition: none; + transition: none; + } +} +.form-control[type=file] { + overflow: hidden; +} +.form-control[type=file]:not(:disabled):not([readonly]) { + cursor: pointer; +} +.form-control:focus { + color: #495057; + background-color: #fff; + border-color: #b9bfc4; + outline: 0; + -webkit-box-shadow: none; + box-shadow: none; +} +.form-control::-webkit-date-and-time-value { + height: 1.5em; +} +.form-control::-webkit-input-placeholder { + color: #adb5bd; + opacity: 1; +} +.form-control::-moz-placeholder { + color: #adb5bd; + opacity: 1; +} +.form-control:-ms-input-placeholder { + color: #adb5bd; + opacity: 1; +} +.form-control::-ms-input-placeholder { + color: #adb5bd; + opacity: 1; +} +.form-control::placeholder { + color: #adb5bd; + opacity: 1; +} +.form-control:disabled, .form-control[readonly] { + background-color: #e9e9ef; + opacity: 1; +} +.form-control::file-selector-button { + padding: 0.47rem 0.75rem; + margin: -0.47rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: #495057; + background-color: #e9e9ef; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + 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; + 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, -webkit-box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control::file-selector-button { + -webkit-transition: none; + transition: none; + } +} +.form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: #dddde3; +} +.form-control::-webkit-file-upload-button { + padding: 0.47rem 0.75rem; + margin: -0.47rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: #495057; + background-color: #e9e9ef; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + 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; + 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, -webkit-box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control::-webkit-file-upload-button { + -webkit-transition: none; + transition: none; + } +} +.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { + background-color: #dddde3; +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.47rem 0; + margin-bottom: 0; + line-height: 1.5; + color: #495057; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} +.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { + padding-left: 0; + padding-right: 0; +} + +.form-control-sm { + min-height: calc(1.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.7109375rem; + border-radius: 0.2rem; +} +.form-control-sm::file-selector-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} +.form-control-sm::-webkit-file-upload-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} + +.form-control-lg { + min-height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.015625rem; + border-radius: 0.4rem; +} +.form-control-lg::file-selector-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} +.form-control-lg::-webkit-file-upload-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} + +textarea.form-control { + min-height: calc(1.5em + 0.94rem + 2px); +} +textarea.form-control-sm { + min-height: calc(1.5em + 0.5rem + 2px); +} +textarea.form-control-lg { + min-height: calc(1.5em + 1rem + 2px); +} + +.form-control-color { + width: 3rem; + height: auto; + padding: 0.47rem; +} +.form-control-color:not(:disabled):not([readonly]) { + cursor: pointer; +} +.form-control-color::-moz-color-swatch { + height: 1.5em; + border-radius: 0.25rem; +} +.form-control-color::-webkit-color-swatch { + height: 1.5em; + border-radius: 0.25rem; +} + +.form-select { + display: block; + width: 100%; + padding: 0.47rem 0.75rem 0.47rem 1.75rem; + -moz-padding-start: calc(0.75rem - 3px); + font-size: 0.8125rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: left 0.75rem center; + background-size: 16px 12px; + border: 1px solid #ced4da; + border-radius: 0.25rem; + -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .form-select { + -webkit-transition: none; + transition: none; + } +} +.form-select:focus { + border-color: #b9bfc4; + outline: 0; + -webkit-box-shadow: 0 0 0 0.15rem rgba(28, 132, 238, 0.25); + box-shadow: 0 0 0 0.15rem rgba(28, 132, 238, 0.25); +} +.form-select[multiple], .form-select[size]:not([size="1"]) { + padding-left: 0.75rem; + background-image: none; +} +.form-select:disabled { + color: #74788d; + background-color: #e9e9ef; +} +.form-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057; +} + +.form-select-sm { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-right: 0.5rem; + font-size: 0.7109375rem; + border-radius: 0.2rem; +} + +.form-select-lg { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-right: 1rem; + font-size: 1.015625rem; + border-radius: 0.4rem; +} + +.form-check { + display: block; + min-height: 1.21875rem; + padding-right: 1.5em; + margin-bottom: 0.125rem; +} +.form-check .form-check-input { + float: right; + margin-right: -1.5em; +} + +.form-check-input { + width: 1em; + height: 1em; + margin-top: 0.25em; + vertical-align: top; + background-color: #fff; + background-repeat: no-repeat; + background-position: center; + background-size: contain; + border: 1px solid rgba(0, 0, 0, 0.25); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + -webkit-print-color-adjust: exact; + color-adjust: exact; + -webkit-transition: background-color 0.15s ease-in-out, background-position 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, background-position 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, background-position 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, background-position 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-check-input { + -webkit-transition: none; + transition: none; + } +} +.form-check-input[type=checkbox] { + border-radius: 0.25em; +} +.form-check-input[type=radio] { + border-radius: 50%; +} +.form-check-input:active { + -webkit-filter: brightness(90%); + filter: brightness(90%); +} +.form-check-input:focus { + border-color: #b9bfc4; + outline: 0; + -webkit-box-shadow: 0 0 0 0.15rem rgba(28, 132, 238, 0.25); + box-shadow: 0 0 0 0.15rem rgba(28, 132, 238, 0.25); +} +.form-check-input:checked { + background-color: #1c84ee; + border-color: #1c84ee; +} +.form-check-input:checked[type=checkbox] { + background-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 10l3 3l6-6'/%3e%3c/svg%3e"); +} +.form-check-input:checked[type=radio] { + background-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: #1c84ee; + border-color: #1c84ee; + background-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; + -webkit-filter: none; + filter: none; + opacity: 0.5; +} +.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { + opacity: 0.5; +} + +.form-switch { + padding-right: 2.5em; +} +.form-switch .form-check-input { + width: 2em; + margin-right: -2.5em; + background-image: 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"); + background-position: right center; + border-radius: 2em; + -webkit-transition: background-position 0.15s ease-in-out; + transition: background-position 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-switch .form-check-input { + -webkit-transition: none; + transition: none; + } +} +.form-switch .form-check-input:focus { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23b9bfc4'/%3e%3c/svg%3e"); +} +.form-switch .form-check-input:checked { + background-position: left center; + background-image: 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-check-inline { + display: inline-block; + margin-left: 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; + -webkit-filter: none; + filter: none; + opacity: 0.65; +} + +.form-range { + width: 100%; + height: 1.3rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +.form-range:focus { + outline: 0; +} +.form-range:focus::-webkit-slider-thumb { + -webkit-box-shadow: 0 0 0 1px #f4f5f8, none; + box-shadow: 0 0 0 1px #f4f5f8, none; +} +.form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #f4f5f8, none; +} +.form-range::-moz-focus-outer { + border: 0; +} +.form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #1c84ee; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} +.form-range::-webkit-slider-thumb:active { + background-color: #bbdafa; +} +.form-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #f6f6f6; + border-color: transparent; + border-radius: 1rem; +} +.form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #1c84ee; + border: 0; + border-radius: 1rem; + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } +} +.form-range::-moz-range-thumb:active { + background-color: #bbdafa; +} +.form-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #f6f6f6; + border-color: transparent; + border-radius: 1rem; +} +.form-range:disabled { + pointer-events: none; +} +.form-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; +} +.form-range:disabled::-moz-range-thumb { + background-color: #adb5bd; +} + +.form-floating { + position: relative; +} +.form-floating > .form-control, +.form-floating > .form-select { + height: calc(3.5rem + 2px); + line-height: 1.25; +} +.form-floating > label { + position: absolute; + top: 0; + right: 0; + height: 100%; + padding: 1rem 0.75rem; + pointer-events: none; + border: 1px solid transparent; + -webkit-transform-origin: 100% 0; + transform-origin: 100% 0; + -webkit-transition: opacity 0.1s ease-in-out, -webkit-transform 0.1s ease-in-out; + transition: opacity 0.1s ease-in-out, -webkit-transform 0.1s ease-in-out; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out, -webkit-transform 0.1s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-floating > label { + -webkit-transition: none; + transition: none; + } +} +.form-floating > .form-control { + padding: 1rem 0.75rem; +} +.form-floating > .form-control::-webkit-input-placeholder { + color: transparent; +} +.form-floating > .form-control::-moz-placeholder { + color: transparent; +} +.form-floating > .form-control:-ms-input-placeholder { + color: transparent; +} +.form-floating > .form-control::-ms-input-placeholder { + color: transparent; +} +.form-floating > .form-control::placeholder { + color: transparent; +} +.form-floating > .form-control:not(:-moz-placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:not(:-ms-input-placeholder) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:-webkit-autofill { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-select { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(-0.15rem); +} +.form-floating > .form-control:not(:-ms-input-placeholder) ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(-0.15rem); +} +.form-floating > .form-control:focus ~ label, +.form-floating > .form-control:not(:placeholder-shown) ~ label, +.form-floating > .form-select ~ label { + opacity: 0.65; + -webkit-transform: scale(0.85) translateY(-0.5rem) translateX(-0.15rem); + transform: scale(0.85) translateY(-0.5rem) translateX(-0.15rem); +} +.form-floating > .form-control:-webkit-autofill ~ label { + opacity: 0.65; + -webkit-transform: scale(0.85) translateY(-0.5rem) translateX(-0.15rem); + transform: scale(0.85) translateY(-0.5rem) translateX(-0.15rem); +} + +.input-group { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + width: 100%; +} +.input-group > .form-control, +.input-group > .form-select { + position: relative; + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + width: 1%; + min-width: 0; +} +.input-group > .form-control:focus, +.input-group > .form-select:focus { + z-index: 3; +} +.input-group .btn { + position: relative; + z-index: 2; +} +.input-group .btn:focus { + z-index: 3; +} + +.input-group-text { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0.47rem 0.75rem; + font-size: 0.8125rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + white-space: nowrap; + background-color: #e9e9ef; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} + +.input-group-lg > .form-control, +.input-group-lg > .form-select, +.input-group-lg > .input-group-text, +.input-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.015625rem; + border-radius: 0.4rem; +} + +.input-group-sm > .form-control, +.input-group-sm > .form-select, +.input-group-sm > .input-group-text, +.input-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.7109375rem; + border-radius: 0.2rem; +} + +.input-group-lg > .form-select, +.input-group-sm > .form-select { + padding-left: 2.5rem; +} + +.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu), +.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu), +.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { + margin-right: -1px; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #34c38f; +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.4rem 0.7rem; + margin-top: 0.1rem; + font-size: 0.7109375rem; + line-height: 1.5; + color: #fff; + background-color: rgba(52, 195, 143, 0.9); + border-radius: 0.25rem; +} + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: #34c38f; + padding-left: calc(1.5em + 0.94rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2334c38f' d='M2.3 6.73L.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: left calc(0.375em + 0.235rem) center; + background-size: calc(0.75em + 0.47rem) calc(0.75em + 0.47rem); +} +.was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: #34c38f; + -webkit-box-shadow: 0 0 0 0.15rem rgba(52, 195, 143, 0.25); + box-shadow: 0 0 0 0.15rem rgba(52, 195, 143, 0.25); +} + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-left: calc(1.5em + 0.94rem); + background-position: top calc(0.375em + 0.235rem) left calc(0.375em + 0.235rem); +} + +.was-validated .form-select:valid, .form-select.is-valid { + border-color: #34c38f; +} +.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] { + padding-left: calc(0.75em + 3.205rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2334c38f' d='M2.3 6.73L.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-position: left 0.75rem center, center left 2.5rem; + background-size: 16px 12px, calc(0.75em + 0.47rem) calc(0.75em + 0.47rem); +} +.was-validated .form-select:valid:focus, .form-select.is-valid:focus { + border-color: #34c38f; + -webkit-box-shadow: 0 0 0 0.15rem rgba(52, 195, 143, 0.25); + box-shadow: 0 0 0 0.15rem rgba(52, 195, 143, 0.25); +} + +.was-validated .form-check-input:valid, .form-check-input.is-valid { + border-color: #34c38f; +} +.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked { + background-color: #34c38f; +} +.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(52, 195, 143, 0.25); + box-shadow: 0 0 0 0.15rem rgba(52, 195, 143, 0.25); +} +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: #34c38f; +} + +.form-check-inline .form-check-input ~ .valid-feedback { + margin-right: 0.5em; +} + +.was-validated .input-group .form-control:valid, .input-group .form-control.is-valid, +.was-validated .input-group .form-select:valid, +.input-group .form-select.is-valid { + z-index: 1; +} +.was-validated .input-group .form-control:valid:focus, .input-group .form-control.is-valid:focus, +.was-validated .input-group .form-select:valid:focus, +.input-group .form-select.is-valid:focus { + z-index: 3; +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #ef6767; +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.4rem 0.7rem; + margin-top: 0.1rem; + font-size: 0.7109375rem; + line-height: 1.5; + color: #fff; + background-color: rgba(239, 103, 103, 0.9); + border-radius: 0.25rem; +} + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: #ef6767; + padding-left: calc(1.5em + 0.94rem); + 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='%23ef6767'%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='%23ef6767' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: left calc(0.375em + 0.235rem) center; + background-size: calc(0.75em + 0.47rem) calc(0.75em + 0.47rem); +} +.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: #ef6767; + -webkit-box-shadow: 0 0 0 0.15rem rgba(239, 103, 103, 0.25); + box-shadow: 0 0 0 0.15rem rgba(239, 103, 103, 0.25); +} + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-left: calc(1.5em + 0.94rem); + background-position: top calc(0.375em + 0.235rem) left calc(0.375em + 0.235rem); +} + +.was-validated .form-select:invalid, .form-select.is-invalid { + border-color: #ef6767; +} +.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] { + padding-left: calc(0.75em + 3.205rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), 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='%23ef6767'%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='%23ef6767' stroke='none'/%3e%3c/svg%3e"); + background-position: left 0.75rem center, center left 2.5rem; + background-size: 16px 12px, calc(0.75em + 0.47rem) calc(0.75em + 0.47rem); +} +.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus { + border-color: #ef6767; + -webkit-box-shadow: 0 0 0 0.15rem rgba(239, 103, 103, 0.25); + box-shadow: 0 0 0 0.15rem rgba(239, 103, 103, 0.25); +} + +.was-validated .form-check-input:invalid, .form-check-input.is-invalid { + border-color: #ef6767; +} +.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked { + background-color: #ef6767; +} +.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(239, 103, 103, 0.25); + box-shadow: 0 0 0 0.15rem rgba(239, 103, 103, 0.25); +} +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: #ef6767; +} + +.form-check-inline .form-check-input ~ .invalid-feedback { + margin-right: 0.5em; +} + +.was-validated .input-group .form-control:invalid, .input-group .form-control.is-invalid, +.was-validated .input-group .form-select:invalid, +.input-group .form-select.is-invalid { + z-index: 2; +} +.was-validated .input-group .form-control:invalid:focus, .input-group .form-control.is-invalid:focus, +.was-validated .input-group .form-select:invalid:focus, +.input-group .form-select.is-invalid:focus { + z-index: 3; +} + +.btn { + display: inline-block; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 0.47rem 0.75rem; + font-size: 0.8125rem; + border-radius: 0.25rem; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + 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; + 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, -webkit-box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .btn { + -webkit-transition: none; + transition: none; + } +} +.btn:hover { + color: #495057; + text-decoration: none; +} +.btn-check:focus + .btn, .btn:focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.15rem rgba(28, 132, 238, 0.25); + box-shadow: 0 0 0 0.15rem rgba(28, 132, 238, 0.25); +} +.btn:disabled, .btn.disabled, fieldset:disabled .btn { + pointer-events: none; + opacity: 0.65; +} + +.btn-primary { + color: #fff; + background-color: #1c84ee; + border-color: #1c84ee; +} +.btn-primary:hover { + color: #fff; + background-color: #1870ca; + border-color: #166abe; +} +.btn-check:focus + .btn-primary, .btn-primary:focus { + color: #fff; + background-color: #1870ca; + border-color: #166abe; + -webkit-box-shadow: 0 0 0 0.15rem rgba(62, 150, 241, 0.5); + box-shadow: 0 0 0 0.15rem rgba(62, 150, 241, 0.5); +} +.btn-check:checked + .btn-primary, .btn-check:active + .btn-primary, .btn-primary:active, .btn-primary.active, .show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #166abe; + border-color: #1563b3; +} +.btn-check:checked + .btn-primary:focus, .btn-check:active + .btn-primary:focus, .btn-primary:active:focus, .btn-primary.active:focus, .show > .btn-primary.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(62, 150, 241, 0.5); + box-shadow: 0 0 0 0.15rem rgba(62, 150, 241, 0.5); +} +.btn-primary:disabled, .btn-primary.disabled { + color: #fff; + background-color: #1c84ee; + border-color: #1c84ee; +} + +.btn-secondary { + color: #fff; + background-color: #74788d; + border-color: #74788d; +} +.btn-secondary:hover { + color: #fff; + background-color: #636678; + border-color: #5d6071; +} +.btn-check:focus + .btn-secondary, .btn-secondary:focus { + color: #fff; + background-color: #636678; + border-color: #5d6071; + -webkit-box-shadow: 0 0 0 0.15rem rgba(137, 140, 158, 0.5); + box-shadow: 0 0 0 0.15rem rgba(137, 140, 158, 0.5); +} +.btn-check:checked + .btn-secondary, .btn-check:active + .btn-secondary, .btn-secondary:active, .btn-secondary.active, .show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #5d6071; + border-color: #575a6a; +} +.btn-check:checked + .btn-secondary:focus, .btn-check:active + .btn-secondary:focus, .btn-secondary:active:focus, .btn-secondary.active:focus, .show > .btn-secondary.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(137, 140, 158, 0.5); + box-shadow: 0 0 0 0.15rem rgba(137, 140, 158, 0.5); +} +.btn-secondary:disabled, .btn-secondary.disabled { + color: #fff; + background-color: #74788d; + border-color: #74788d; +} + +.btn-success { + color: #fff; + background-color: #34c38f; + border-color: #34c38f; +} +.btn-success:hover { + color: #fff; + background-color: #2ca67a; + border-color: #2a9c72; +} +.btn-check:focus + .btn-success, .btn-success:focus { + color: #fff; + background-color: #2ca67a; + border-color: #2a9c72; + -webkit-box-shadow: 0 0 0 0.15rem rgba(82, 204, 160, 0.5); + box-shadow: 0 0 0 0.15rem rgba(82, 204, 160, 0.5); +} +.btn-check:checked + .btn-success, .btn-check:active + .btn-success, .btn-success:active, .btn-success.active, .show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #2a9c72; + border-color: #27926b; +} +.btn-check:checked + .btn-success:focus, .btn-check:active + .btn-success:focus, .btn-success:active:focus, .btn-success.active:focus, .show > .btn-success.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(82, 204, 160, 0.5); + box-shadow: 0 0 0 0.15rem rgba(82, 204, 160, 0.5); +} +.btn-success:disabled, .btn-success.disabled { + color: #fff; + background-color: #34c38f; + border-color: #34c38f; +} + +.btn-info { + color: #fff; + background-color: #16daf1; + border-color: #16daf1; +} +.btn-info:hover { + color: #fff; + background-color: #13b9cd; + border-color: #12aec1; +} +.btn-check:focus + .btn-info, .btn-info:focus { + color: #fff; + background-color: #13b9cd; + border-color: #12aec1; + -webkit-box-shadow: 0 0 0 0.15rem rgba(57, 224, 243, 0.5); + box-shadow: 0 0 0 0.15rem rgba(57, 224, 243, 0.5); +} +.btn-check:checked + .btn-info, .btn-check:active + .btn-info, .btn-info:active, .btn-info.active, .show > .btn-info.dropdown-toggle { + color: #fff; + background-color: #12aec1; + border-color: #11a4b5; +} +.btn-check:checked + .btn-info:focus, .btn-check:active + .btn-info:focus, .btn-info:active:focus, .btn-info.active:focus, .show > .btn-info.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(57, 224, 243, 0.5); + box-shadow: 0 0 0 0.15rem rgba(57, 224, 243, 0.5); +} +.btn-info:disabled, .btn-info.disabled { + color: #fff; + background-color: #16daf1; + border-color: #16daf1; +} + +.btn-warning { + color: #fff; + background-color: #ffcc5a; + border-color: #ffcc5a; +} +.btn-warning:hover { + color: #fff; + background-color: #d9ad4d; + border-color: #cca348; +} +.btn-check:focus + .btn-warning, .btn-warning:focus { + color: #fff; + background-color: #d9ad4d; + border-color: #cca348; + -webkit-box-shadow: 0 0 0 0.15rem rgba(255, 212, 115, 0.5); + box-shadow: 0 0 0 0.15rem rgba(255, 212, 115, 0.5); +} +.btn-check:checked + .btn-warning, .btn-check:active + .btn-warning, .btn-warning:active, .btn-warning.active, .show > .btn-warning.dropdown-toggle { + color: #fff; + background-color: #cca348; + border-color: #bf9944; +} +.btn-check:checked + .btn-warning:focus, .btn-check:active + .btn-warning:focus, .btn-warning:active:focus, .btn-warning.active:focus, .show > .btn-warning.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(255, 212, 115, 0.5); + box-shadow: 0 0 0 0.15rem rgba(255, 212, 115, 0.5); +} +.btn-warning:disabled, .btn-warning.disabled { + color: #fff; + background-color: #ffcc5a; + border-color: #ffcc5a; +} + +.btn-danger { + color: #fff; + background-color: #ef6767; + border-color: #ef6767; +} +.btn-danger:hover { + color: #fff; + background-color: #cb5858; + border-color: #bf5252; +} +.btn-check:focus + .btn-danger, .btn-danger:focus { + color: #fff; + background-color: #cb5858; + border-color: #bf5252; + -webkit-box-shadow: 0 0 0 0.15rem rgba(241, 126, 126, 0.5); + box-shadow: 0 0 0 0.15rem rgba(241, 126, 126, 0.5); +} +.btn-check:checked + .btn-danger, .btn-check:active + .btn-danger, .btn-danger:active, .btn-danger.active, .show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #bf5252; + border-color: #b34d4d; +} +.btn-check:checked + .btn-danger:focus, .btn-check:active + .btn-danger:focus, .btn-danger:active:focus, .btn-danger.active:focus, .show > .btn-danger.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(241, 126, 126, 0.5); + box-shadow: 0 0 0 0.15rem rgba(241, 126, 126, 0.5); +} +.btn-danger:disabled, .btn-danger.disabled { + color: #fff; + background-color: #ef6767; + border-color: #ef6767; +} + +.btn-pink { + color: #fff; + background-color: #e83e8c; + border-color: #e83e8c; +} +.btn-pink:hover { + color: #fff; + background-color: #c53577; + border-color: #ba3270; +} +.btn-check:focus + .btn-pink, .btn-pink:focus { + color: #fff; + background-color: #c53577; + border-color: #ba3270; + -webkit-box-shadow: 0 0 0 0.15rem rgba(235, 91, 157, 0.5); + box-shadow: 0 0 0 0.15rem rgba(235, 91, 157, 0.5); +} +.btn-check:checked + .btn-pink, .btn-check:active + .btn-pink, .btn-pink:active, .btn-pink.active, .show > .btn-pink.dropdown-toggle { + color: #fff; + background-color: #ba3270; + border-color: #ae2f69; +} +.btn-check:checked + .btn-pink:focus, .btn-check:active + .btn-pink:focus, .btn-pink:active:focus, .btn-pink.active:focus, .show > .btn-pink.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(235, 91, 157, 0.5); + box-shadow: 0 0 0 0.15rem rgba(235, 91, 157, 0.5); +} +.btn-pink:disabled, .btn-pink.disabled { + color: #fff; + background-color: #e83e8c; + border-color: #e83e8c; +} + +.btn-light { + color: #000; + background-color: #f6f6f6; + border-color: #f6f6f6; +} +.btn-light:hover { + color: #000; + background-color: #f7f7f7; + border-color: #f7f7f7; +} +.btn-check:focus + .btn-light, .btn-light:focus { + color: #000; + background-color: #f7f7f7; + border-color: #f7f7f7; + -webkit-box-shadow: 0 0 0 0.15rem rgba(209, 209, 209, 0.5); + box-shadow: 0 0 0 0.15rem rgba(209, 209, 209, 0.5); +} +.btn-check:checked + .btn-light, .btn-check:active + .btn-light, .btn-light:active, .btn-light.active, .show > .btn-light.dropdown-toggle { + color: #000; + background-color: #f8f8f8; + border-color: #f7f7f7; +} +.btn-check:checked + .btn-light:focus, .btn-check:active + .btn-light:focus, .btn-light:active:focus, .btn-light.active:focus, .show > .btn-light.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(209, 209, 209, 0.5); + box-shadow: 0 0 0 0.15rem rgba(209, 209, 209, 0.5); +} +.btn-light:disabled, .btn-light.disabled { + color: #000; + background-color: #f6f6f6; + border-color: #f6f6f6; +} + +.btn-dark { + color: #fff; + background-color: #2b3940; + border-color: #2b3940; +} +.btn-dark:hover { + color: #fff; + background-color: #253036; + border-color: #222e33; +} +.btn-check:focus + .btn-dark, .btn-dark:focus { + color: #fff; + background-color: #253036; + border-color: #222e33; + -webkit-box-shadow: 0 0 0 0.15rem rgba(75, 87, 93, 0.5); + box-shadow: 0 0 0 0.15rem rgba(75, 87, 93, 0.5); +} +.btn-check:checked + .btn-dark, .btn-check:active + .btn-dark, .btn-dark:active, .btn-dark.active, .show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #222e33; + border-color: #202b30; +} +.btn-check:checked + .btn-dark:focus, .btn-check:active + .btn-dark:focus, .btn-dark:active:focus, .btn-dark.active:focus, .show > .btn-dark.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(75, 87, 93, 0.5); + box-shadow: 0 0 0 0.15rem rgba(75, 87, 93, 0.5); +} +.btn-dark:disabled, .btn-dark.disabled { + color: #fff; + background-color: #2b3940; + border-color: #2b3940; +} + +.btn-outline-primary { + color: #1c84ee; + border-color: #1c84ee; +} +.btn-outline-primary:hover { + color: #fff; + background-color: #1c84ee; + border-color: #1c84ee; +} +.btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(28, 132, 238, 0.5); + box-shadow: 0 0 0 0.15rem rgba(28, 132, 238, 0.5); +} +.btn-check:checked + .btn-outline-primary, .btn-check:active + .btn-outline-primary, .btn-outline-primary:active, .btn-outline-primary.active, .btn-outline-primary.dropdown-toggle.show { + color: #fff; + background-color: #1c84ee; + border-color: #1c84ee; +} +.btn-check:checked + .btn-outline-primary:focus, .btn-check:active + .btn-outline-primary:focus, .btn-outline-primary:active:focus, .btn-outline-primary.active:focus, .btn-outline-primary.dropdown-toggle.show:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(28, 132, 238, 0.5); + box-shadow: 0 0 0 0.15rem rgba(28, 132, 238, 0.5); +} +.btn-outline-primary:disabled, .btn-outline-primary.disabled { + color: #1c84ee; + background-color: transparent; +} + +.btn-outline-secondary { + color: #74788d; + border-color: #74788d; +} +.btn-outline-secondary:hover { + color: #fff; + background-color: #74788d; + border-color: #74788d; +} +.btn-check:focus + .btn-outline-secondary, .btn-outline-secondary:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(116, 120, 141, 0.5); + box-shadow: 0 0 0 0.15rem rgba(116, 120, 141, 0.5); +} +.btn-check:checked + .btn-outline-secondary, .btn-check:active + .btn-outline-secondary, .btn-outline-secondary:active, .btn-outline-secondary.active, .btn-outline-secondary.dropdown-toggle.show { + color: #fff; + background-color: #74788d; + border-color: #74788d; +} +.btn-check:checked + .btn-outline-secondary:focus, .btn-check:active + .btn-outline-secondary:focus, .btn-outline-secondary:active:focus, .btn-outline-secondary.active:focus, .btn-outline-secondary.dropdown-toggle.show:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(116, 120, 141, 0.5); + box-shadow: 0 0 0 0.15rem rgba(116, 120, 141, 0.5); +} +.btn-outline-secondary:disabled, .btn-outline-secondary.disabled { + color: #74788d; + background-color: transparent; +} + +.btn-outline-success { + color: #34c38f; + border-color: #34c38f; +} +.btn-outline-success:hover { + color: #fff; + background-color: #34c38f; + border-color: #34c38f; +} +.btn-check:focus + .btn-outline-success, .btn-outline-success:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(52, 195, 143, 0.5); + box-shadow: 0 0 0 0.15rem rgba(52, 195, 143, 0.5); +} +.btn-check:checked + .btn-outline-success, .btn-check:active + .btn-outline-success, .btn-outline-success:active, .btn-outline-success.active, .btn-outline-success.dropdown-toggle.show { + color: #fff; + background-color: #34c38f; + border-color: #34c38f; +} +.btn-check:checked + .btn-outline-success:focus, .btn-check:active + .btn-outline-success:focus, .btn-outline-success:active:focus, .btn-outline-success.active:focus, .btn-outline-success.dropdown-toggle.show:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(52, 195, 143, 0.5); + box-shadow: 0 0 0 0.15rem rgba(52, 195, 143, 0.5); +} +.btn-outline-success:disabled, .btn-outline-success.disabled { + color: #34c38f; + background-color: transparent; +} + +.btn-outline-info { + color: #16daf1; + border-color: #16daf1; +} +.btn-outline-info:hover { + color: #fff; + background-color: #16daf1; + border-color: #16daf1; +} +.btn-check:focus + .btn-outline-info, .btn-outline-info:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(22, 218, 241, 0.5); + box-shadow: 0 0 0 0.15rem rgba(22, 218, 241, 0.5); +} +.btn-check:checked + .btn-outline-info, .btn-check:active + .btn-outline-info, .btn-outline-info:active, .btn-outline-info.active, .btn-outline-info.dropdown-toggle.show { + color: #fff; + background-color: #16daf1; + border-color: #16daf1; +} +.btn-check:checked + .btn-outline-info:focus, .btn-check:active + .btn-outline-info:focus, .btn-outline-info:active:focus, .btn-outline-info.active:focus, .btn-outline-info.dropdown-toggle.show:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(22, 218, 241, 0.5); + box-shadow: 0 0 0 0.15rem rgba(22, 218, 241, 0.5); +} +.btn-outline-info:disabled, .btn-outline-info.disabled { + color: #16daf1; + background-color: transparent; +} + +.btn-outline-warning { + color: #ffcc5a; + border-color: #ffcc5a; +} +.btn-outline-warning:hover { + color: #fff; + background-color: #ffcc5a; + border-color: #ffcc5a; +} +.btn-check:focus + .btn-outline-warning, .btn-outline-warning:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(255, 204, 90, 0.5); + box-shadow: 0 0 0 0.15rem rgba(255, 204, 90, 0.5); +} +.btn-check:checked + .btn-outline-warning, .btn-check:active + .btn-outline-warning, .btn-outline-warning:active, .btn-outline-warning.active, .btn-outline-warning.dropdown-toggle.show { + color: #fff; + background-color: #ffcc5a; + border-color: #ffcc5a; +} +.btn-check:checked + .btn-outline-warning:focus, .btn-check:active + .btn-outline-warning:focus, .btn-outline-warning:active:focus, .btn-outline-warning.active:focus, .btn-outline-warning.dropdown-toggle.show:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(255, 204, 90, 0.5); + box-shadow: 0 0 0 0.15rem rgba(255, 204, 90, 0.5); +} +.btn-outline-warning:disabled, .btn-outline-warning.disabled { + color: #ffcc5a; + background-color: transparent; +} + +.btn-outline-danger { + color: #ef6767; + border-color: #ef6767; +} +.btn-outline-danger:hover { + color: #fff; + background-color: #ef6767; + border-color: #ef6767; +} +.btn-check:focus + .btn-outline-danger, .btn-outline-danger:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(239, 103, 103, 0.5); + box-shadow: 0 0 0 0.15rem rgba(239, 103, 103, 0.5); +} +.btn-check:checked + .btn-outline-danger, .btn-check:active + .btn-outline-danger, .btn-outline-danger:active, .btn-outline-danger.active, .btn-outline-danger.dropdown-toggle.show { + color: #fff; + background-color: #ef6767; + border-color: #ef6767; +} +.btn-check:checked + .btn-outline-danger:focus, .btn-check:active + .btn-outline-danger:focus, .btn-outline-danger:active:focus, .btn-outline-danger.active:focus, .btn-outline-danger.dropdown-toggle.show:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(239, 103, 103, 0.5); + box-shadow: 0 0 0 0.15rem rgba(239, 103, 103, 0.5); +} +.btn-outline-danger:disabled, .btn-outline-danger.disabled { + color: #ef6767; + background-color: transparent; +} + +.btn-outline-pink { + color: #e83e8c; + border-color: #e83e8c; +} +.btn-outline-pink:hover { + color: #fff; + background-color: #e83e8c; + border-color: #e83e8c; +} +.btn-check:focus + .btn-outline-pink, .btn-outline-pink:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(232, 62, 140, 0.5); + box-shadow: 0 0 0 0.15rem rgba(232, 62, 140, 0.5); +} +.btn-check:checked + .btn-outline-pink, .btn-check:active + .btn-outline-pink, .btn-outline-pink:active, .btn-outline-pink.active, .btn-outline-pink.dropdown-toggle.show { + color: #fff; + background-color: #e83e8c; + border-color: #e83e8c; +} +.btn-check:checked + .btn-outline-pink:focus, .btn-check:active + .btn-outline-pink:focus, .btn-outline-pink:active:focus, .btn-outline-pink.active:focus, .btn-outline-pink.dropdown-toggle.show:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(232, 62, 140, 0.5); + box-shadow: 0 0 0 0.15rem rgba(232, 62, 140, 0.5); +} +.btn-outline-pink:disabled, .btn-outline-pink.disabled { + color: #e83e8c; + background-color: transparent; +} + +.btn-outline-light { + color: #f6f6f6; + border-color: #f6f6f6; +} +.btn-outline-light:hover { + color: #000; + background-color: #f6f6f6; + border-color: #f6f6f6; +} +.btn-check:focus + .btn-outline-light, .btn-outline-light:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(246, 246, 246, 0.5); + box-shadow: 0 0 0 0.15rem rgba(246, 246, 246, 0.5); +} +.btn-check:checked + .btn-outline-light, .btn-check:active + .btn-outline-light, .btn-outline-light:active, .btn-outline-light.active, .btn-outline-light.dropdown-toggle.show { + color: #000; + background-color: #f6f6f6; + border-color: #f6f6f6; +} +.btn-check:checked + .btn-outline-light:focus, .btn-check:active + .btn-outline-light:focus, .btn-outline-light:active:focus, .btn-outline-light.active:focus, .btn-outline-light.dropdown-toggle.show:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(246, 246, 246, 0.5); + box-shadow: 0 0 0 0.15rem rgba(246, 246, 246, 0.5); +} +.btn-outline-light:disabled, .btn-outline-light.disabled { + color: #f6f6f6; + background-color: transparent; +} + +.btn-outline-dark { + color: #2b3940; + border-color: #2b3940; +} +.btn-outline-dark:hover { + color: #fff; + background-color: #2b3940; + border-color: #2b3940; +} +.btn-check:focus + .btn-outline-dark, .btn-outline-dark:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(43, 57, 64, 0.5); + box-shadow: 0 0 0 0.15rem rgba(43, 57, 64, 0.5); +} +.btn-check:checked + .btn-outline-dark, .btn-check:active + .btn-outline-dark, .btn-outline-dark:active, .btn-outline-dark.active, .btn-outline-dark.dropdown-toggle.show { + color: #fff; + background-color: #2b3940; + border-color: #2b3940; +} +.btn-check:checked + .btn-outline-dark:focus, .btn-check:active + .btn-outline-dark:focus, .btn-outline-dark:active:focus, .btn-outline-dark.active:focus, .btn-outline-dark.dropdown-toggle.show:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(43, 57, 64, 0.5); + box-shadow: 0 0 0 0.15rem rgba(43, 57, 64, 0.5); +} +.btn-outline-dark:disabled, .btn-outline-dark.disabled { + color: #2b3940; + background-color: transparent; +} + +.btn-link { + font-weight: 400; + color: #1c84ee; + text-decoration: none; +} +.btn-link:hover { + color: #166abe; + text-decoration: underline; +} +.btn-link:focus { + text-decoration: underline; +} +.btn-link:disabled, .btn-link.disabled { + color: #74788d; +} + +.btn-lg, .btn-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.015625rem; + border-radius: 0.4rem; +} + +.btn-sm, .btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.7109375rem; + border-radius: 0.2rem; +} + +.fade { + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +@media (prefers-reduced-motion: reduce) { + .fade { + -webkit-transition: none; + transition: none; + } +} +.fade:not(.show) { + opacity: 0; +} + +.collapse:not(.show) { + display: none; +} + +.collapsing { + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + transition: height 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing { + -webkit-transition: none; + transition: none; + } +} +.collapsing.collapse-horizontal { + width: 0; + height: auto; + -webkit-transition: width 0.35s ease; + transition: width 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing.collapse-horizontal { + -webkit-transition: none; + transition: none; + } +} + +.dropup, +.dropend, +.dropdown, +.dropstart { + position: relative; +} + +.dropdown-toggle { + white-space: nowrap; +} + +.dropdown-menu { + position: absolute; + z-index: 1000; + display: none; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0; + font-size: 0.8125rem; + color: #495057; + text-align: right; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #e9e9ef; + border-radius: 0.25rem; +} +.dropdown-menu[data-bs-popper] { + top: 100%; + right: 0; + margin-top: 0.125rem; +} + +.dropdown-menu-start { + --bs-position: start; +} +.dropdown-menu-start[data-bs-popper] { + left: auto; + right: 0; +} + +.dropdown-menu-end { + --bs-position: end; +} +.dropdown-menu-end[data-bs-popper] { + left: 0; + right: auto; +} + +@media (min-width: 576px) { + .dropdown-menu-sm-start { + --bs-position: start; + } + .dropdown-menu-sm-start[data-bs-popper] { + left: auto; + right: 0; + } + + .dropdown-menu-sm-end { + --bs-position: end; + } + .dropdown-menu-sm-end[data-bs-popper] { + left: 0; + right: auto; + } +} +@media (min-width: 768px) { + .dropdown-menu-md-start { + --bs-position: start; + } + .dropdown-menu-md-start[data-bs-popper] { + left: auto; + right: 0; + } + + .dropdown-menu-md-end { + --bs-position: end; + } + .dropdown-menu-md-end[data-bs-popper] { + left: 0; + right: auto; + } +} +@media (min-width: 992px) { + .dropdown-menu-lg-start { + --bs-position: start; + } + .dropdown-menu-lg-start[data-bs-popper] { + left: auto; + right: 0; + } + + .dropdown-menu-lg-end { + --bs-position: end; + } + .dropdown-menu-lg-end[data-bs-popper] { + left: 0; + right: auto; + } +} +@media (min-width: 1200px) { + .dropdown-menu-xl-start { + --bs-position: start; + } + .dropdown-menu-xl-start[data-bs-popper] { + left: auto; + right: 0; + } + + .dropdown-menu-xl-end { + --bs-position: end; + } + .dropdown-menu-xl-end[data-bs-popper] { + left: 0; + right: auto; + } +} +@media (min-width: 1400px) { + .dropdown-menu-xxl-start { + --bs-position: start; + } + .dropdown-menu-xxl-start[data-bs-popper] { + left: auto; + right: 0; + } + + .dropdown-menu-xxl-end { + --bs-position: end; + } + .dropdown-menu-xxl-end[data-bs-popper] { + left: 0; + right: auto; + } +} +.dropup .dropdown-menu[data-bs-popper] { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; +} +.dropend .dropdown-menu[data-bs-popper] { + top: 0; + left: auto; + right: 100%; + margin-top: 0; + margin-right: 0.125rem; +} +.dropend .dropdown-toggle::after { + vertical-align: 0; +} + +.dropstart .dropdown-menu[data-bs-popper] { + top: 0; + left: 100%; + right: auto; + margin-top: 0; + margin-left: 0.125rem; +} +.dropstart .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid #e9e9ef; +} + +.dropdown-item { + display: block; + width: 100%; + padding: 0.35rem 1rem; + clear: both; + font-weight: 400; + color: #495057; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0; +} +.dropdown-item:hover, .dropdown-item:focus { + color: #343a40; + text-decoration: none; + background-color: #f8f9fa; +} +.dropdown-item.active, .dropdown-item:active { + color: #2b3940; + text-decoration: none; + background-color: #f8f9fa; +} +.dropdown-item.disabled, .dropdown-item:disabled { + color: #74788d; + pointer-events: none; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: 0.5rem 1rem; + margin-bottom: 0; + font-size: 0.7109375rem; + color: #74788d; + white-space: nowrap; +} + +.dropdown-item-text { + display: block; + padding: 0.35rem 1rem; + color: #495057; +} + +.dropdown-menu-dark { + color: #f6f6f6; + background-color: #343a40; + border-color: #e9e9ef; +} +.dropdown-menu-dark .dropdown-item { + color: #f6f6f6; +} +.dropdown-menu-dark .dropdown-item:hover, .dropdown-menu-dark .dropdown-item:focus { + color: #fff; + background-color: rgba(255, 255, 255, 0.15); +} +.dropdown-menu-dark .dropdown-item.active, .dropdown-menu-dark .dropdown-item:active { + color: #2b3940; + background-color: #f8f9fa; +} +.dropdown-menu-dark .dropdown-item.disabled, .dropdown-menu-dark .dropdown-item:disabled { + color: #adb5bd; +} +.dropdown-menu-dark .dropdown-divider { + border-color: #e9e9ef; +} +.dropdown-menu-dark .dropdown-item-text { + color: #f6f6f6; +} +.dropdown-menu-dark .dropdown-header { + color: #adb5bd; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; +} +.btn-group > .btn-check:checked + .btn, +.btn-group > .btn-check:focus + .btn, +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn-check:checked + .btn, +.btn-group-vertical > .btn-check:focus + .btn, +.btn-group-vertical > .btn:hover, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} + +.btn-toolbar { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; +} +.btn-toolbar .input-group { + width: auto; +} + +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) { + margin-right: -1px; +} +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group > .btn:nth-child(n+3), +.btn-group > :not(.btn-check) + .btn, +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.dropdown-toggle-split { + padding-left: 0.5625rem; + padding-right: 0.5625rem; +} +.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after { + margin-right: 0; +} +.dropstart .dropdown-toggle-split::before { + margin-left: 0; +} + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-left: 0.375rem; + padding-right: 0.375rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-left: 0.75rem; + padding-right: 0.75rem; +} + +.btn-group-vertical { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + width: 100%; +} +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; +} +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group-vertical > .btn ~ .btn, +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.nav { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding-right: 0; + margin-bottom: 0; + list-style: none; +} + +.nav-link { + display: block; + padding: 0.5rem 1rem; + color: #495057; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .nav-link { + -webkit-transition: none; + transition: none; + } +} +.nav-link:hover, .nav-link:focus { + color: #166abe; + text-decoration: none; +} +.nav-link.disabled { + color: #74788d; + pointer-events: none; + cursor: default; +} + +.nav-tabs { + border-bottom: 1px solid #ced4da; +} +.nav-tabs .nav-link { + margin-bottom: -1px; + background: none; + border: 1px solid transparent; + border-top-right-radius: 0.25rem; + border-top-left-radius: 0.25rem; +} +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + border-color: #e9e9ef #e9e9ef #ced4da; + isolation: isolate; +} +.nav-tabs .nav-link.disabled { + color: #74788d; + background-color: transparent; + border-color: transparent; +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: #495057; + background-color: #fff; + border-color: #ced4da #ced4da #fff; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.nav-pills .nav-link { + background: none; + border: 0; + border-radius: 0.25rem; +} +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: #fff; + background-color: #1c84ee; +} + +.nav-fill > .nav-link, +.nav-fill .nav-item { + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + text-align: center; +} + +.nav-justified > .nav-link, +.nav-justified .nav-item { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + 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 { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +.navbar > .container, +.navbar > .container-fluid, +.navbar > .container-sm, +.navbar > .container-md, +.navbar > .container-lg, +.navbar > .container-xl, +.navbar > .container-xxl { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: inherit; + flex-wrap: inherit; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} +.navbar-brand { + padding-top: 0.34765625rem; + padding-bottom: 0.34765625rem; + margin-left: 1rem; + font-size: 1.015625rem; + white-space: nowrap; +} +.navbar-brand:hover, .navbar-brand:focus { + text-decoration: none; +} + +.navbar-nav { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + padding-right: 0; + margin-bottom: 0; + list-style: none; +} +.navbar-nav .nav-link { + padding-left: 0; + padding-right: 0; +} +.navbar-nav .dropdown-menu { + position: static; +} + +.navbar-text { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.navbar-collapse { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.015625rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0.25rem; + -webkit-transition: -webkit-box-shadow 0.15s ease-in-out; + transition: -webkit-box-shadow 0.15s ease-in-out; + transition: box-shadow 0.15s ease-in-out; + transition: box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .navbar-toggler { + -webkit-transition: none; + transition: none; + } +} +.navbar-toggler:hover { + text-decoration: none; +} +.navbar-toggler:focus { + text-decoration: none; + outline: 0; + -webkit-box-shadow: 0 0 0 0.15rem; + box-shadow: 0 0 0 0.15rem; +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + 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 { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-sm .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-sm .navbar-nav .nav-link { + padding-left: 0.5rem; + padding-right: 0.5rem; + } + .navbar-expand-sm .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-sm .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-sm .navbar-toggler { + display: none; + } + .navbar-expand-sm .offcanvas-header { + display: none; + } + .navbar-expand-sm .offcanvas { + position: inherit; + bottom: 0; + z-index: 1000; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + visibility: visible !important; + background-color: transparent; + border-left: 0; + border-right: 0; + -webkit-transition: none; + transition: none; + -webkit-transform: none; + transform: none; + } + .navbar-expand-sm .offcanvas-top, +.navbar-expand-sm .offcanvas-bottom { + height: auto; + border-top: 0; + border-bottom: 0; + } + .navbar-expand-sm .offcanvas-body { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +@media (min-width: 768px) { + .navbar-expand-md { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-md .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-md .navbar-nav .nav-link { + padding-left: 0.5rem; + padding-right: 0.5rem; + } + .navbar-expand-md .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-md .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-md .navbar-toggler { + display: none; + } + .navbar-expand-md .offcanvas-header { + display: none; + } + .navbar-expand-md .offcanvas { + position: inherit; + bottom: 0; + z-index: 1000; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + visibility: visible !important; + background-color: transparent; + border-left: 0; + border-right: 0; + -webkit-transition: none; + transition: none; + -webkit-transform: none; + transform: none; + } + .navbar-expand-md .offcanvas-top, +.navbar-expand-md .offcanvas-bottom { + height: auto; + border-top: 0; + border-bottom: 0; + } + .navbar-expand-md .offcanvas-body { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +@media (min-width: 992px) { + .navbar-expand-lg { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-lg .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-lg .navbar-nav .nav-link { + padding-left: 0.5rem; + padding-right: 0.5rem; + } + .navbar-expand-lg .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-lg .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-lg .navbar-toggler { + display: none; + } + .navbar-expand-lg .offcanvas-header { + display: none; + } + .navbar-expand-lg .offcanvas { + position: inherit; + bottom: 0; + z-index: 1000; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + visibility: visible !important; + background-color: transparent; + border-left: 0; + border-right: 0; + -webkit-transition: none; + transition: none; + -webkit-transform: none; + transform: none; + } + .navbar-expand-lg .offcanvas-top, +.navbar-expand-lg .offcanvas-bottom { + height: auto; + border-top: 0; + border-bottom: 0; + } + .navbar-expand-lg .offcanvas-body { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +@media (min-width: 1200px) { + .navbar-expand-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-xl .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xl .navbar-nav .nav-link { + padding-left: 0.5rem; + padding-right: 0.5rem; + } + .navbar-expand-xl .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-xl .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-xl .navbar-toggler { + display: none; + } + .navbar-expand-xl .offcanvas-header { + display: none; + } + .navbar-expand-xl .offcanvas { + position: inherit; + bottom: 0; + z-index: 1000; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + visibility: visible !important; + background-color: transparent; + border-left: 0; + border-right: 0; + -webkit-transition: none; + transition: none; + -webkit-transform: none; + transform: none; + } + .navbar-expand-xl .offcanvas-top, +.navbar-expand-xl .offcanvas-bottom { + height: auto; + border-top: 0; + border-bottom: 0; + } + .navbar-expand-xl .offcanvas-body { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +@media (min-width: 1400px) { + .navbar-expand-xxl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + } + .navbar-expand-xxl .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + .navbar-expand-xxl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xxl .navbar-nav .nav-link { + padding-left: 0.5rem; + padding-right: 0.5rem; + } + .navbar-expand-xxl .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-xxl .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; + } + .navbar-expand-xxl .navbar-toggler { + display: none; + } + .navbar-expand-xxl .offcanvas-header { + display: none; + } + .navbar-expand-xxl .offcanvas { + position: inherit; + bottom: 0; + z-index: 1000; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + visibility: visible !important; + background-color: transparent; + border-left: 0; + border-right: 0; + -webkit-transition: none; + transition: none; + -webkit-transform: none; + transform: none; + } + .navbar-expand-xxl .offcanvas-top, +.navbar-expand-xxl .offcanvas-bottom { + height: auto; + border-top: 0; + border-bottom: 0; + } + .navbar-expand-xxl .offcanvas-body { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +.navbar-expand { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; +} +.navbar-expand .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; +} +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} +.navbar-expand .navbar-nav .nav-link { + padding-left: 0.5rem; + padding-right: 0.5rem; +} +.navbar-expand .navbar-nav-scroll { + overflow: visible; +} +.navbar-expand .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto; +} +.navbar-expand .navbar-toggler { + display: none; +} +.navbar-expand .offcanvas-header { + display: none; +} +.navbar-expand .offcanvas { + position: inherit; + bottom: 0; + z-index: 1000; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + visibility: visible !important; + background-color: transparent; + border-left: 0; + border-right: 0; + -webkit-transition: none; + transition: none; + -webkit-transform: none; + transform: none; +} +.navbar-expand .offcanvas-top, +.navbar-expand .offcanvas-bottom { + height: auto; + border-top: 0; + border-bottom: 0; +} +.navbar-expand .offcanvas-body { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0; + padding: 0; + overflow-y: visible; +} + +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.55); +} +.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { + color: rgba(0, 0, 0, 0.7); +} +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3); +} +.navbar-light .navbar-nav .show > .nav-link, +.navbar-light .navbar-nav .nav-link.active { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.55); + border-color: rgba(0, 0, 0, 0.1); +} +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} +.navbar-light .navbar-text { + color: rgba(0, 0, 0, 0.55); +} +.navbar-light .navbar-text a, +.navbar-light .navbar-text a:hover, +.navbar-light .navbar-text a:focus { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-dark .navbar-brand { + color: #fff; +} +.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { + color: #fff; +} +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.55); +} +.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { + color: rgba(255, 255, 255, 0.75); +} +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25); +} +.navbar-dark .navbar-nav .show > .nav-link, +.navbar-dark .navbar-nav .nav-link.active { + color: #fff; +} +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.55); + border-color: rgba(255, 255, 255, 0.1); +} +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.55); +} +.navbar-dark .navbar-text a, +.navbar-dark .navbar-text a:hover, +.navbar-dark .navbar-text a:focus { + color: #fff; +} + +.card { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid #e9e9ef; + border-radius: 0.25rem; +} +.card > hr { + margin-left: 0; + margin-right: 0; +} +.card > .list-group { + border-top: inherit; + border-bottom: inherit; +} +.card > .list-group:first-child { + border-top-width: 0; + border-top-right-radius: calc(0.25rem - 1px); + border-top-left-radius: calc(0.25rem - 1px); +} +.card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-left-radius: calc(0.25rem - 1px); + border-bottom-right-radius: calc(0.25rem - 1px); +} +.card > .card-header + .list-group, +.card > .list-group + .card-footer { + border-top: 0; +} + +.card-body { + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + padding: 1.25rem 1.25rem; +} + +.card-title { + margin-bottom: 0.5rem; +} + +.card-subtitle { + margin-top: -0.25rem; + margin-bottom: 0; +} + +.card-text:last-child { + margin-bottom: 0; +} + +.card-link:hover { + text-decoration: none; +} +.card-link + .card-link { + margin-right: 1.25rem; +} + +.card-header { + padding: 1.25rem 1.25rem; + margin-bottom: 0; + background-color: #fff; + border-bottom: 1px solid #e9e9ef; +} +.card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; +} + +.card-footer { + padding: 1.25rem 1.25rem; + background-color: #fff; + border-top: 1px solid #e9e9ef; +} +.card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); +} + +.card-header-tabs { + margin-left: -0.625rem; + margin-bottom: -1.25rem; + margin-right: -0.625rem; + border-bottom: 0; +} + +.card-header-pills { + margin-left: -0.625rem; + margin-right: -0.625rem; +} + +.card-img-overlay { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + padding: 1rem; + border-radius: calc(0.25rem - 1px); +} + +.card-img, +.card-img-top, +.card-img-bottom { + width: 100%; +} + +.card-img, +.card-img-top { + border-top-right-radius: calc(0.25rem - 1px); + border-top-left-radius: calc(0.25rem - 1px); +} + +.card-img, +.card-img-bottom { + border-bottom-left-radius: calc(0.25rem - 1px); + border-bottom-right-radius: calc(0.25rem - 1px); +} + +.card-group > .card { + margin-bottom: 12px; +} +@media (min-width: 576px) { + .card-group { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + } + .card-group > .card { + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; + margin-bottom: 0; + } + .card-group > .card + .card { + margin-right: 0; + border-right: 0; + } + .card-group > .card:not(:last-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-top, +.card-group > .card:not(:last-child) .card-header { + border-top-left-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-bottom, +.card-group > .card:not(:last-child) .card-footer { + border-bottom-left-radius: 0; + } + .card-group > .card:not(:first-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-top, +.card-group > .card:not(:first-child) .card-header { + border-top-right-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-bottom, +.card-group > .card:not(:first-child) .card-footer { + border-bottom-right-radius: 0; + } +} + +.accordion-button { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + width: 100%; + padding: 1rem 1.25rem; + font-size: 0.8125rem; + color: #495057; + text-align: right; + background-color: transparent; + border: 0; + border-radius: 0; + overflow-anchor: none; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, border-radius 0.15s ease, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, border-radius 0.15s ease, -webkit-box-shadow 0.15s ease-in-out; + 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; + 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, -webkit-box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .accordion-button { + -webkit-transition: none; + transition: none; + } +} +.accordion-button:not(.collapsed) { + color: #1977d6; + background-color: #e8f3fd; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.125); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.125); +} +.accordion-button:not(.collapsed)::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%231977d6'%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"); + -webkit-transform: rotate(-180deg); + transform: rotate(-180deg); +} +.accordion-button::after { + -ms-flex-negative: 0; + flex-shrink: 0; + width: 16px; + height: 16px; + margin-right: auto; + content: ""; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23495057'%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"); + background-repeat: no-repeat; + background-size: 16px; + -webkit-transition: -webkit-transform 0.2s ease-in-out; + transition: -webkit-transform 0.2s ease-in-out; + transition: transform 0.2s ease-in-out; + transition: transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .accordion-button::after { + -webkit-transition: none; + transition: none; + } +} +.accordion-button:hover { + z-index: 2; +} +.accordion-button:focus { + z-index: 3; + border-color: #b9bfc4; + outline: 0; + -webkit-box-shadow: none; + box-shadow: none; +} + +.accordion-header { + margin-bottom: 0; +} + +.accordion-item { + background-color: transparent; + border: 1px solid rgba(0, 0, 0, 0.125); +} +.accordion-item:first-of-type { + border-top-right-radius: 0.25rem; + border-top-left-radius: 0.25rem; +} +.accordion-item:first-of-type .accordion-button { + border-top-right-radius: calc(0.25rem - 1px); + border-top-left-radius: calc(0.25rem - 1px); +} +.accordion-item:not(:first-of-type) { + border-top: 0; +} +.accordion-item:last-of-type { + border-bottom-left-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} +.accordion-item:last-of-type .accordion-button.collapsed { + border-bottom-left-radius: calc(0.25rem - 1px); + border-bottom-right-radius: calc(0.25rem - 1px); +} +.accordion-item:last-of-type .accordion-collapse { + border-bottom-left-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.accordion-body { + padding: 1rem 1.25rem; +} + +.accordion-flush .accordion-collapse { + border-width: 0; +} +.accordion-flush .accordion-item { + border-left: 0; + border-right: 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 { + border-radius: 0; +} + +.breadcrumb { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; +} + +.breadcrumb-item + .breadcrumb-item { + padding-right: 0.5rem; +} +.breadcrumb-item + .breadcrumb-item::before { + float: right; + padding-left: 0.5rem; + color: #74788d; + content: var(--bs-breadcrumb-divider, "\f0142") ; +} +.breadcrumb-item.active { + color: #74788d; +} + +.pagination { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding-right: 0; + list-style: none; +} + +.page-link { + position: relative; + display: block; + color: #74788d; + background-color: #fff; + border: 1px solid #ced4da; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + 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; + 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, -webkit-box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .page-link { + -webkit-transition: none; + transition: none; + } +} +.page-link:hover { + z-index: 2; + color: #166abe; + text-decoration: none; + background-color: #e9e9ef; + border-color: #ced4da; +} +.page-link:focus { + z-index: 3; + color: #166abe; + background-color: #e9e9ef; + outline: 0; + -webkit-box-shadow: 0 0 0 0.15rem rgba(28, 132, 238, 0.25); + box-shadow: 0 0 0 0.15rem rgba(28, 132, 238, 0.25); +} + +.page-item:not(:first-child) .page-link { + margin-right: -1px; +} +.page-item.active .page-link { + z-index: 3; + color: #fff; + background-color: #1c84ee; + border-color: #1c84ee; +} +.page-item.disabled .page-link { + color: #ced4da; + pointer-events: none; + background-color: #fff; + border-color: #ced4da; +} + +.page-link { + padding: 0.5rem 0.75rem; +} + +.page-item:first-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} +.page-item:last-child .page-link { + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.015625rem; +} +.pagination-lg .page-item:first-child .page-link { + border-top-right-radius: 0.4rem; + border-bottom-right-radius: 0.4rem; +} +.pagination-lg .page-item:last-child .page-link { + border-top-left-radius: 0.4rem; + border-bottom-left-radius: 0.4rem; +} + +.pagination-sm .page-link { + padding: 0.25rem 0.5rem; + font-size: 0.7109375rem; +} +.pagination-sm .page-item:first-child .page-link { + border-top-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem; +} +.pagination-sm .page-item:last-child .page-link { + border-top-left-radius: 0.2rem; + border-bottom-left-radius: 0.2rem; +} + +.badge { + display: inline-block; + padding: 0.25em 0.4em; + font-size: 75%; + font-weight: 500; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25rem; +} +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +.alert { + position: relative; + padding: 0.75rem 1.25rem; + margin-bottom: 1rem; + border: 1.5px solid transparent; + border-radius: 0.25rem; +} + +.alert-heading { + color: inherit; +} + +.alert-link { + font-weight: 500; +} + +.alert-dismissible { + padding-left: 3.75rem; +} +.alert-dismissible .btn-close { + position: absolute; + top: 0; + left: 0; + z-index: 2; + padding: 0.9375rem 1.25rem; +} + +.alert-primary { + color: #145ca7; + background-color: #bbdafa; + border-color: #a4cef8; +} +.alert-primary .alert-link { + color: #104a86; +} + +.alert-secondary { + color: #515463; + background-color: #d5d7dd; + border-color: #c7c9d1; +} +.alert-secondary .alert-link { + color: #41434f; +} + +.alert-success { + color: #248964; + background-color: #c2eddd; + border-color: #aee7d2; +} +.alert-success .alert-link { + color: #1d6e50; +} + +.alert-info { + color: #0f99a9; + background-color: #b9f4fb; + border-color: #a2f0f9; +} +.alert-info .alert-link { + color: #0c7a87; +} + +.alert-warning { + color: #b38f3f; + background-color: #fff0ce; + border-color: #ffebbd; +} +.alert-warning .alert-link { + color: #8f7232; +} + +.alert-danger { + color: #a74848; + background-color: #fad1d1; + border-color: #f9c2c2; +} +.alert-danger .alert-link { + color: #863a3a; +} + +.alert-pink { + color: #a22b62; + background-color: #f8c5dd; + border-color: #f6b2d1; +} +.alert-pink .alert-link { + color: #82224e; +} + +.alert-light { + color: #acacac; + background-color: #fcfcfc; + border-color: #fbfbfb; +} +.alert-light .alert-link { + color: #8a8a8a; +} + +.alert-dark { + color: #1e282d; + background-color: #bfc4c6; + border-color: #aab0b3; +} +.alert-dark .alert-link { + color: #182024; +} + +@-webkit-keyframes progress-bar-stripes { + 0% { + background-position-x: 0.625rem; + } +} + +@keyframes progress-bar-stripes { + 0% { + background-position-x: 0.625rem; + } +} +.progress { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + height: 0.625rem; + overflow: hidden; + font-size: 0.609375rem; + background-color: #f6f6f6; + border-radius: 0.25rem; +} + +.progress-bar { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + overflow: hidden; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #1c84ee; + -webkit-transition: width 0.6s ease; + transition: width 0.6s ease; +} +@media (prefers-reduced-motion: reduce) { + .progress-bar { + -webkit-transition: none; + transition: none; + } +} + +.progress-bar-striped { + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 0.625rem 0.625rem; +} + +.progress-bar-animated { + -webkit-animation: 1s linear infinite progress-bar-stripes; + animation: 1s linear infinite progress-bar-stripes; +} +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + -webkit-animation: none; + animation: none; + } +} + +.list-group { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + padding-right: 0; + margin-bottom: 0; + border-radius: 0.25rem; +} + +.list-group-numbered { + list-style-type: none; + counter-reset: section; +} +.list-group-numbered > li::before { + content: counters(section, ".") ". "; + counter-increment: section; +} + +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; +} +.list-group-item-action:hover, .list-group-item-action:focus { + z-index: 1; + color: #495057; + text-decoration: none; + background-color: #f8f9fa; +} +.list-group-item-action:active { + color: #495057; + background-color: #e9e9ef; +} + +.list-group-item { + position: relative; + display: block; + padding: 0.75rem 1.25rem; + color: #2b3940; + background-color: #fff; + border: 1px solid #e9e9ef; +} +.list-group-item:first-child { + border-top-right-radius: inherit; + border-top-left-radius: inherit; +} +.list-group-item:last-child { + border-bottom-left-radius: inherit; + border-bottom-right-radius: inherit; +} +.list-group-item.disabled, .list-group-item:disabled { + color: #74788d; + pointer-events: none; + background-color: #fff; +} +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: #1c84ee; + border-color: #1c84ee; +} +.list-group-item + .list-group-item { + border-top-width: 0; +} +.list-group-item + .list-group-item.active { + margin-top: -1px; + border-top-width: 1px; +} + +.list-group-horizontal { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; +} +.list-group-horizontal > .list-group-item:first-child { + border-bottom-right-radius: 0.25rem; + border-top-left-radius: 0; +} +.list-group-horizontal > .list-group-item:last-child { + border-top-left-radius: 0.25rem; + border-bottom-right-radius: 0; +} +.list-group-horizontal > .list-group-item.active { + margin-top: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: 1px; + border-right-width: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item.active { + margin-right: -1px; + border-right-width: 1px; +} + +@media (min-width: 576px) { + .list-group-horizontal-sm { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + .list-group-horizontal-sm > .list-group-item:first-child { + border-bottom-right-radius: 0.25rem; + border-top-left-radius: 0; + } + .list-group-horizontal-sm > .list-group-item:last-child { + border-top-left-radius: 0.25rem; + border-bottom-right-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: 1px; + border-right-width: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-right: -1px; + border-right-width: 1px; + } +} +@media (min-width: 768px) { + .list-group-horizontal-md { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + .list-group-horizontal-md > .list-group-item:first-child { + border-bottom-right-radius: 0.25rem; + border-top-left-radius: 0; + } + .list-group-horizontal-md > .list-group-item:last-child { + border-top-left-radius: 0.25rem; + border-bottom-right-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: 1px; + border-right-width: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-right: -1px; + border-right-width: 1px; + } +} +@media (min-width: 992px) { + .list-group-horizontal-lg { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + .list-group-horizontal-lg > .list-group-item:first-child { + border-bottom-right-radius: 0.25rem; + border-top-left-radius: 0; + } + .list-group-horizontal-lg > .list-group-item:last-child { + border-top-left-radius: 0.25rem; + border-bottom-right-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: 1px; + border-right-width: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-right: -1px; + border-right-width: 1px; + } +} +@media (min-width: 1200px) { + .list-group-horizontal-xl { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + .list-group-horizontal-xl > .list-group-item:first-child { + border-bottom-right-radius: 0.25rem; + border-top-left-radius: 0; + } + .list-group-horizontal-xl > .list-group-item:last-child { + border-top-left-radius: 0.25rem; + border-bottom-right-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: 1px; + border-right-width: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-right: -1px; + border-right-width: 1px; + } +} +@media (min-width: 1400px) { + .list-group-horizontal-xxl { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + .list-group-horizontal-xxl > .list-group-item:first-child { + border-bottom-right-radius: 0.25rem; + border-top-left-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item:last-child { + border-top-left-radius: 0.25rem; + border-bottom-right-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: 1px; + border-right-width: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-right: -1px; + border-right-width: 1px; + } +} +.list-group-flush { + border-radius: 0; +} +.list-group-flush > .list-group-item { + border-width: 0 0 1px; +} +.list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; +} + +.list-group-item-primary { + color: #114f8f; + background-color: #d2e6fc; +} +.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { + color: #114f8f; + background-color: #bdcfe3; +} +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #114f8f; + border-color: #114f8f; +} + +.list-group-item-secondary { + color: #464855; + background-color: #e3e4e8; +} +.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { + color: #464855; + background-color: #cccdd1; +} +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #464855; + border-color: #464855; +} + +.list-group-item-success { + color: #1f7556; + background-color: #d6f3e9; +} +.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { + color: #1f7556; + background-color: #c1dbd2; +} +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #1f7556; + border-color: #1f7556; +} + +.list-group-item-info { + color: #0d8391; + background-color: #d0f8fc; +} +.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { + color: #0d8391; + background-color: #bbdfe3; +} +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #0d8391; + border-color: #0d8391; +} + +.list-group-item-warning { + color: #997a36; + background-color: #fff5de; +} +.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { + color: #997a36; + background-color: #e6ddc8; +} +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #997a36; + border-color: #997a36; +} + +.list-group-item-danger { + color: #8f3e3e; + background-color: #fce1e1; +} +.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { + color: #8f3e3e; + background-color: #e3cbcb; +} +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #8f3e3e; + border-color: #8f3e3e; +} + +.list-group-item-pink { + color: #8b2554; + background-color: #fad8e8; +} +.list-group-item-pink.list-group-item-action:hover, .list-group-item-pink.list-group-item-action:focus { + color: #8b2554; + background-color: #e1c2d1; +} +.list-group-item-pink.list-group-item-action.active { + color: #fff; + background-color: #8b2554; + border-color: #8b2554; +} + +.list-group-item-light { + color: #949494; + background-color: #fdfdfd; +} +.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { + color: #949494; + background-color: #e4e4e4; +} +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #949494; + border-color: #949494; +} + +.list-group-item-dark { + color: #1a2226; + background-color: #d5d7d9; +} +.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { + color: #1a2226; + background-color: #c0c2c3; +} +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #1a2226; + border-color: #1a2226; +} + +.btn-close { + -webkit-box-sizing: content-box; + box-sizing: content-box; + width: 1em; + height: 1em; + padding: 0.25em 0.25em; + color: #000; + background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat; + border: 0; + border-radius: 0.25rem; + opacity: 0.5; +} +.btn-close:hover { + color: #000; + text-decoration: none; + opacity: 0.75; +} +.btn-close:focus { + outline: 0; + -webkit-box-shadow: none; + box-shadow: none; + opacity: 1; +} +.btn-close:disabled, .btn-close.disabled { + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + opacity: 0.25; +} + +.btn-close-white { + -webkit-filter: invert(1) grayscale(100%) brightness(200%); + filter: invert(1) grayscale(100%) brightness(200%); +} + +.toast { + width: 350px; + max-width: 100%; + font-size: 0.875rem; + pointer-events: auto; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + -webkit-box-shadow: 0 0.25rem 0.75rem rgba(18, 38, 63, 0.08); + box-shadow: 0 0.25rem 0.75rem rgba(18, 38, 63, 0.08); + border-radius: 0.25rem; +} +.toast.showing { + opacity: 0; +} +.toast:not(.show) { + display: none; +} + +.toast-container { + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + max-width: 100%; + pointer-events: none; +} +.toast-container > :not(:last-child) { + margin-bottom: 12px; +} + +.toast-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0.25rem 0.75rem; + color: #74788d; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + border-top-right-radius: calc(0.25rem - 1px); + border-top-left-radius: calc(0.25rem - 1px); +} +.toast-header .btn-close { + margin-left: -0.375rem; + margin-right: 0.75rem; +} + +.toast-body { + padding: 0.75rem; + word-wrap: break-word; +} + +.modal { + position: fixed; + top: 0; + right: 0; + z-index: 1055; + display: none; + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: auto; + outline: 0; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; +} +.modal.fade .modal-dialog { + -webkit-transition: -webkit-transform 0.3s ease-out; + transition: -webkit-transform 0.3s ease-out; + transition: transform 0.3s ease-out; + transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out; + -webkit-transform: translate(0, -50px); + transform: translate(0, -50px); +} +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + -webkit-transition: none; + transition: none; + } +} +.modal.show .modal-dialog { + -webkit-transform: none; + transform: none; +} +.modal.modal-static .modal-dialog { + -webkit-transform: scale(1.02); + transform: scale(1.02); +} + +.modal-dialog-scrollable { + height: calc(100% - 1rem); +} +.modal-dialog-scrollable .modal-content { + max-height: 100%; + overflow: hidden; +} +.modal-dialog-scrollable .modal-body { + overflow-y: auto; +} + +.modal-dialog-centered { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + min-height: calc(100% - 1rem); +} + +.modal-content { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #f6f6f6; + border-radius: 0.25rem; + outline: 0; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + z-index: 1050; + width: 100vw; + height: 100vh; + background-color: #000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop.show { + opacity: 0.5; +} + +.modal-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-negative: 0; + flex-shrink: 0; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 1rem 1rem; + border-bottom: 1px solid #e9e9ef; + border-top-right-radius: calc(0.25rem - 1px); + border-top-left-radius: calc(0.25rem - 1px); +} +.modal-header .btn-close { + padding: 0.5rem 0.5rem; + margin: -0.5rem auto -0.5rem -0.5rem; +} + +.modal-title { + margin-bottom: 0; + line-height: 1.5; +} + +.modal-body { + position: relative; + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + padding: 1rem; +} + +.modal-footer { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-negative: 0; + flex-shrink: 0; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + padding: 0.75rem; + border-top: 1px solid #e9e9ef; + border-bottom-left-radius: calc(0.25rem - 1px); + border-bottom-right-radius: calc(0.25rem - 1px); +} +.modal-footer > * { + margin: 0.25rem; +} + +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto; + } + + .modal-dialog-scrollable { + height: calc(100% - 3.5rem); + } + + .modal-dialog-centered { + min-height: calc(100% - 3.5rem); + } + + .modal-sm { + max-width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg, +.modal-xl { + max-width: 800px; + } +} +@media (min-width: 1200px) { + .modal-xl { + max-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-header { + border-radius: 0; +} +.modal-fullscreen .modal-body { + overflow-y: auto; +} +.modal-fullscreen .modal-footer { + border-radius: 0; +} + +@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-header { + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; + } +} +@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-header { + border-radius: 0; + } + .modal-fullscreen-md-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-md-down .modal-footer { + border-radius: 0; + } +} +@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-header { + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; + } +} +@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-header { + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; + } +} +@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-header { + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; + } +} +.tooltip { + position: absolute; + z-index: 1080; + display: block; + margin: 0; + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: right; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.7109375rem; + word-wrap: break-word; + opacity: 0; +} +.tooltip.show { + opacity: 0.9; +} +.tooltip .tooltip-arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} +.tooltip .tooltip-arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top, .bs-tooltip-auto[data-popper-placement^=top] { + padding: 0.4rem 0; +} +.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { + bottom: 0; +} +.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { + top: -1px; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} + +.bs-tooltip-end, .bs-tooltip-auto[data-popper-placement^=right] { + padding: 0 0.4rem; +} +.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { + left: -1px; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} + +.bs-tooltip-bottom, .bs-tooltip-auto[data-popper-placement^=bottom] { + padding: 0.4rem 0; +} +.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { + top: 0; +} +.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { + bottom: -1px; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} + +.bs-tooltip-start, .bs-tooltip-auto[data-popper-placement^=left] { + padding: 0 0.4rem; +} +.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { + right: -1px; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} + +.tooltip-inner { + max-width: 200px; + padding: 0.4rem 0.7rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; +} + +.popover { + position: absolute; + top: 0; + left: 0 ; + z-index: 1070; + display: block; + max-width: 276px; + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: right; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.7109375rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #e9e9ef; + border-radius: 0.4rem; +} +.popover .popover-arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; +} +.popover .popover-arrow::before, .popover .popover-arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { + bottom: calc(-0.5rem - 1px); +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { + bottom: 0; + border-width: 0.5rem 0.5rem 0; + border-top-color: #e9e9ef; +} +.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + bottom: 1px; + border-width: 0.5rem 0.5rem 0; + border-top-color: #fff; +} + +.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow { + right: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { + right: 0; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #e9e9ef; +} +.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + right: 1px; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #fff; +} + +.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { + top: calc(-0.5rem - 1px); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { + top: 0; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #e9e9ef; +} +.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + top: 1px; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #fff; +} +.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { + position: absolute; + top: 0; + right: 50%; + display: block; + width: 1rem; + margin-right: -0.5rem; + content: ""; + border-bottom: 1px solid whitesmoke; +} + +.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow { + left: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; +} +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { + left: 0; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #e9e9ef; +} +.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + left: 1px; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #fff; +} + +.popover-header { + padding: 0.5rem 1rem; + margin-bottom: 0; + font-size: 0.8125rem; + background-color: whitesmoke; + border-bottom: 1px solid #e9e9ef; + border-top-right-radius: calc(0.4rem - 1px); + border-top-left-radius: calc(0.4rem - 1px); +} +.popover-header:empty { + display: none; +} + +.popover-body { + padding: 1rem 1rem; + color: #495057; +} + +.carousel { + position: relative; +} + +.carousel.pointer-event { + -ms-touch-action: pan-y; + 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: right; + width: 100%; + margin-left: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-transition: -webkit-transform 0.6s ease-in-out; + transition: -webkit-transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .carousel-item { + -webkit-transition: none; + transition: none; + } +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} +.carousel-item-next:not(.carousel-item-start), +.active.carousel-item-end { + -webkit-transform: translateX(100%); + transform: translateX(100%); +} + +.carousel-item-prev:not(.carousel-item-end), +.active.carousel-item-start { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); +} +.carousel-fade .carousel-item { + opacity: 0; + -webkit-transition-property: opacity; + transition-property: opacity; + -webkit-transform: none; + transform: none; +} +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-start, +.carousel-fade .carousel-item-prev.carousel-item-end { + z-index: 1; + opacity: 1; +} +.carousel-fade .active.carousel-item-start, +.carousel-fade .active.carousel-item-end { + z-index: 0; + opacity: 0; + -webkit-transition: opacity 0s 0.6s; + transition: opacity 0s 0.6s; +} +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-start, +.carousel-fade .active.carousel-item-end { + -webkit-transition: none; + transition: none; + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + width: 15%; + padding: 0; + color: #fff; + text-align: center; + background: none; + border: 0; + opacity: 0.5; + -webkit-transition: opacity 0.15s ease; + transition: opacity 0.15s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, +.carousel-control-next { + -webkit-transition: none; + transition: none; + } +} +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.carousel-control-prev { + right: 0; +} + +.carousel-control-next { + left: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 2rem; + height: 2rem; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100%; +} +.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='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-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='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; + left: 0; + bottom: 0; + right: 0; + z-index: 2; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + padding: 0; + margin-left: 15%; + margin-bottom: 1rem; + margin-right: 15%; + list-style: none; +} +.carousel-indicators [data-bs-target] { + -webkit-box-sizing: content-box; + box-sizing: content-box; + -webkit-box-flex: 0; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + width: 30px; + height: 3px; + padding: 0; + margin-left: 3px; + margin-right: 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: 0.5; + -webkit-transition: opacity 0.6s ease; + transition: opacity 0.6s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-indicators [data-bs-target] { + -webkit-transition: none; + transition: none; + } +} +.carousel-indicators .active { + opacity: 1; +} + +.carousel-caption { + position: absolute; + left: 15%; + bottom: 1.25rem; + right: 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 { + -webkit-filter: invert(1) grayscale(100); + filter: invert(1) grayscale(100); +} +.carousel-dark .carousel-indicators [data-bs-target] { + background-color: #000; +} +.carousel-dark .carousel-caption { + color: #000; +} + +@-webkit-keyframes spinner-border { + to { + -webkit-transform: rotate(360deg) ; + transform: rotate(360deg) ; + } +} + +@keyframes spinner-border { + to { + -webkit-transform: rotate(360deg) ; + transform: rotate(360deg) ; + } +} +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: -0.125em; + border: 0.25em solid currentColor; + border-left-color: transparent; + border-radius: 50%; + -webkit-animation: 0.75s linear infinite spinner-border; + animation: 0.75s linear infinite spinner-border; +} + +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: 0.2em; +} + +@-webkit-keyframes spinner-grow { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + } + 50% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes spinner-grow { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + } + 50% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: -0.125em; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + -webkit-animation: 0.75s linear infinite spinner-grow; + animation: 0.75s linear infinite spinner-grow; +} + +.spinner-grow-sm { + width: 1rem; + height: 1rem; +} + +@media (prefers-reduced-motion: reduce) { + .spinner-border, +.spinner-grow { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; + } +} +.offcanvas { + position: fixed; + bottom: 0; + z-index: 1045; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + max-width: 100%; + visibility: hidden; + background-color: #fff; + background-clip: padding-box; + outline: 0; + -webkit-transition: -webkit-transform 0.3s ease-in-out; + transition: -webkit-transform 0.3s ease-in-out; + transition: transform 0.3s ease-in-out; + transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .offcanvas { + -webkit-transition: none; + transition: none; + } +} + +.offcanvas-backdrop { + position: fixed; + top: 0; + right: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} +.offcanvas-backdrop.fade { + opacity: 0; +} +.offcanvas-backdrop.show { + opacity: 0.5; +} + +.offcanvas-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 1rem 1rem; +} +.offcanvas-header .btn-close { + padding: 0.5rem 0.5rem; + margin-top: -0.5rem; + margin-left: -0.5rem; + margin-bottom: -0.5rem; +} + +.offcanvas-title { + margin-bottom: 0; + line-height: 1.5; +} + +.offcanvas-body { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + padding: 1rem 1rem; + overflow-y: auto; +} + +.offcanvas-start { + top: 0; + right: 0; + width: 400px; + border-left: 1px solid #f6f6f6; + -webkit-transform: translateX(100%); + transform: translateX(100%); +} + +.offcanvas-end { + top: 0; + left: 0; + width: 400px; + border-right: 1px solid #f6f6f6; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); +} + +.offcanvas-top { + top: 0; + left: 0; + right: 0; + height: 30vh; + max-height: 100%; + border-bottom: 1px solid #f6f6f6; + -webkit-transform: translateY(-100%); + transform: translateY(-100%); +} + +.offcanvas-bottom { + left: 0; + right: 0; + height: 30vh; + max-height: 100%; + border-top: 1px solid #f6f6f6; + -webkit-transform: translateY(100%); + transform: translateY(100%); +} + +.offcanvas.show { + -webkit-transform: none; + transform: none; +} + +.placeholder { + display: inline-block; + min-height: 1em; + vertical-align: middle; + cursor: wait; + background-color: currentColor; + opacity: 0.5; +} +.placeholder.btn::before { + display: inline-block; + content: ""; +} + +.placeholder-xs { + min-height: 0.6em; +} + +.placeholder-sm { + min-height: 0.8em; +} + +.placeholder-lg { + min-height: 1.2em; +} + +.placeholder-glow .placeholder { + -webkit-animation: placeholder-glow 2s ease-in-out infinite; + animation: placeholder-glow 2s ease-in-out infinite; +} + +@-webkit-keyframes placeholder-glow { + 50% { + opacity: 0.2; + } +} + +@keyframes placeholder-glow { + 50% { + opacity: 0.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%; + -webkit-animation: placeholder-wave 2s linear infinite; + animation: placeholder-wave 2s linear infinite; +} + +@-webkit-keyframes placeholder-wave { + 100% { + -webkit-mask-position: -200% 0%; + mask-position: -200% 0%; + } +} + +@keyframes placeholder-wave { + 100% { + -webkit-mask-position: -200% 0%; + mask-position: -200% 0%; + } +} +.clearfix::after { + display: block; + clear: both; + content: ""; +} + +.link-primary { + color: #1c84ee; +} +.link-primary:hover, .link-primary:focus { + color: #166abe; +} + +.link-secondary { + color: #74788d; +} +.link-secondary:hover, .link-secondary:focus { + color: #5d6071; +} + +.link-success { + color: #34c38f; +} +.link-success:hover, .link-success:focus { + color: #2a9c72; +} + +.link-info { + color: #16daf1; +} +.link-info:hover, .link-info:focus { + color: #12aec1; +} + +.link-warning { + color: #ffcc5a; +} +.link-warning:hover, .link-warning:focus { + color: #cca348; +} + +.link-danger { + color: #ef6767; +} +.link-danger:hover, .link-danger:focus { + color: #bf5252; +} + +.link-pink { + color: #e83e8c; +} +.link-pink:hover, .link-pink:focus { + color: #ba3270; +} + +.link-light { + color: #f6f6f6; +} +.link-light:hover, .link-light:focus { + color: #f8f8f8; +} + +.link-dark { + color: #2b3940; +} +.link-dark:hover, .link-dark:focus { + color: #222e33; +} + +.ratio { + position: relative; + width: 100%; +} +.ratio::before { + display: block; + padding-top: var(--bs-aspect-ratio); + content: ""; +} +.ratio > * { + position: absolute; + top: 0; + right: 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; + left: 0; + right: 0; + z-index: 1030; +} + +.fixed-bottom { + position: fixed; + left: 0; + bottom: 0; + right: 0; + z-index: 1030; +} + +.sticky-top { + position: sticky; + top: 0; + z-index: 1020; +} + +@media (min-width: 576px) { + .sticky-sm-top { + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 768px) { + .sticky-md-top { + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 992px) { + .sticky-lg-top { + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 1200px) { + .sticky-xl-top { + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 1400px) { + .sticky-xxl-top { + position: sticky; + top: 0; + z-index: 1020; + } +} +.hstack { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -ms-flex-item-align: stretch; + align-self: stretch; +} + +.vstack { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-item-align: stretch; + align-self: stretch; +} + +.visually-hidden, +.visually-hidden-focusable:not(:focus):not(:focus-within) { + position: absolute !important; + 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; +} + +.stretched-link::after { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + z-index: 1; + content: ""; +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.vr { + display: inline-block; + -ms-flex-item-align: stretch; + align-self: stretch; + width: 1px; + min-height: 1em; + background-color: currentColor; + opacity: 0.2; +} + +.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: right !important; +} + +.float-end { + float: left !important; +} + +.float-none { + float: none !important; +} + +.opacity-0 { + opacity: 0 !important; +} + +.opacity-25 { + opacity: 0.25 !important; +} + +.opacity-50 { + opacity: 0.5 !important; +} + +.opacity-75 { + opacity: 0.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; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-grid { + display: grid !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; +} + +.d-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; +} + +.d-none { + display: none !important; +} + +.shadow { + -webkit-box-shadow: 0 0.25rem 0.75rem rgba(18, 38, 63, 0.08) !important; + box-shadow: 0 0.25rem 0.75rem rgba(18, 38, 63, 0.08) !important; +} + +.shadow-sm { + -webkit-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} + +.shadow-lg { + -webkit-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1) !important; + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1) !important; +} + +.shadow-none { + -webkit-box-shadow: none !important; + box-shadow: none !important; +} + +.position-static { + position: static !important; +} + +.position-relative { + position: relative !important; +} + +.position-absolute { + position: absolute !important; +} + +.position-fixed { + position: fixed !important; +} + +.position-sticky { + 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 { + right: 0 !important; +} + +.start-50 { + right: 50% !important; +} + +.start-100 { + right: 100% !important; +} + +.end-0 { + left: 0 !important; +} + +.end-50 { + left: 50% !important; +} + +.end-100 { + left: 100% !important; +} + +.translate-middle { + -webkit-transform: translate(50%, -50%) !important; + transform: translate(50%, -50%) !important; +} + +.translate-middle-x { + -webkit-transform: translateX(50%) !important; + transform: translateX(50%) !important; +} + +.translate-middle-y { + -webkit-transform: translateY(-50%) !important; + transform: translateY(-50%) !important; +} + +.border { + border: 1px solid #e9e9ef !important; +} + +.border-0 { + border: 0 !important; +} + +.border-top { + border-top: 1px solid #e9e9ef !important; +} + +.border-top-0 { + border-top: 0 !important; +} + +.border-end { + border-left: 1px solid #e9e9ef !important; +} + +.border-end-0 { + border-left: 0 !important; +} + +.border-bottom { + border-bottom: 1px solid #e9e9ef !important; +} + +.border-bottom-0 { + border-bottom: 0 !important; +} + +.border-start { + border-right: 1px solid #e9e9ef !important; +} + +.border-start-0 { + border-right: 0 !important; +} + +.border-primary { + border-color: #1c84ee !important; +} + +.border-secondary { + border-color: #74788d !important; +} + +.border-success { + border-color: #34c38f !important; +} + +.border-info { + border-color: #16daf1 !important; +} + +.border-warning { + border-color: #ffcc5a !important; +} + +.border-danger { + border-color: #ef6767 !important; +} + +.border-pink { + border-color: #e83e8c !important; +} + +.border-light { + border-color: #f6f6f6 !important; +} + +.border-dark { + border-color: #2b3940 !important; +} + +.border-white { + border-color: #fff !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; +} + +.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 { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; +} + +.flex-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; +} + +.flex-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; +} + +.flex-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; +} + +.flex-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; +} + +.flex-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; +} + +.flex-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; +} + +.flex-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; +} + +.flex-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; +} + +.flex-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; +} + +.gap-0 { + gap: 0 !important; +} + +.gap-1 { + gap: 0.25rem !important; +} + +.gap-2 { + gap: 0.5rem !important; +} + +.gap-3 { + gap: 1rem !important; +} + +.gap-4 { + gap: 1.5rem !important; +} + +.gap-5 { + gap: 3rem !important; +} + +.justify-content-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; +} + +.justify-content-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; +} + +.justify-content-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; +} + +.justify-content-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; +} + +.justify-content-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; +} + +.justify-content-evenly { + -webkit-box-pack: space-evenly !important; + -ms-flex-pack: space-evenly !important; + justify-content: space-evenly !important; +} + +.align-items-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; +} + +.align-items-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; +} + +.align-items-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; +} + +.align-items-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; +} + +.align-items-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; +} + +.align-content-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; +} + +.align-content-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; +} + +.align-content-center { + -ms-flex-line-pack: center !important; + align-content: center !important; +} + +.align-content-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; +} + +.align-content-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; +} + +.align-content-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; +} + +.align-self-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; +} + +.align-self-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; +} + +.align-self-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; +} + +.align-self-center { + -ms-flex-item-align: center !important; + align-self: center !important; +} + +.align-self-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; +} + +.align-self-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; +} + +.order-first { + -webkit-box-ordinal-group: 0 !important; + -ms-flex-order: -1 !important; + order: -1 !important; +} + +.order-0 { + -webkit-box-ordinal-group: 1 !important; + -ms-flex-order: 0 !important; + order: 0 !important; +} + +.order-1 { + -webkit-box-ordinal-group: 2 !important; + -ms-flex-order: 1 !important; + order: 1 !important; +} + +.order-2 { + -webkit-box-ordinal-group: 3 !important; + -ms-flex-order: 2 !important; + order: 2 !important; +} + +.order-3 { + -webkit-box-ordinal-group: 4 !important; + -ms-flex-order: 3 !important; + order: 3 !important; +} + +.order-4 { + -webkit-box-ordinal-group: 5 !important; + -ms-flex-order: 4 !important; + order: 4 !important; +} + +.order-5 { + -webkit-box-ordinal-group: 6 !important; + -ms-flex-order: 5 !important; + order: 5 !important; +} + +.order-last { + -webkit-box-ordinal-group: 7 !important; + -ms-flex-order: 6 !important; + order: 6 !important; +} + +.m-0 { + margin: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.m-2 { + margin: 0.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-left: 0 !important; + margin-right: 0 !important; +} + +.mx-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; +} + +.mx-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; +} + +.mx-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; +} + +.mx-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; +} + +.mx-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; +} + +.mx-auto { + margin-left: auto !important; + margin-right: auto !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.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-left: 0 !important; +} + +.me-1 { + margin-left: 0.25rem !important; +} + +.me-2 { + margin-left: 0.5rem !important; +} + +.me-3 { + margin-left: 1rem !important; +} + +.me-4 { + margin-left: 1.5rem !important; +} + +.me-5 { + margin-left: 3rem !important; +} + +.me-auto { + margin-left: auto !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.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-right: 0 !important; +} + +.ms-1 { + margin-right: 0.25rem !important; +} + +.ms-2 { + margin-right: 0.5rem !important; +} + +.ms-3 { + margin-right: 1rem !important; +} + +.ms-4 { + margin-right: 1.5rem !important; +} + +.ms-5 { + margin-right: 3rem !important; +} + +.ms-auto { + margin-right: auto !important; +} + +.m-n1 { + margin: -0.25rem !important; +} + +.m-n2 { + margin: -0.5rem !important; +} + +.m-n3 { + margin: -1rem !important; +} + +.m-n4 { + margin: -1.5rem !important; +} + +.m-n5 { + margin: -3rem !important; +} + +.mx-n1 { + margin-left: -0.25rem !important; + margin-right: -0.25rem !important; +} + +.mx-n2 { + margin-left: -0.5rem !important; + margin-right: -0.5rem !important; +} + +.mx-n3 { + margin-left: -1rem !important; + margin-right: -1rem !important; +} + +.mx-n4 { + margin-left: -1.5rem !important; + margin-right: -1.5rem !important; +} + +.mx-n5 { + margin-left: -3rem !important; + margin-right: -3rem !important; +} + +.my-n1 { + margin-top: -0.25rem !important; + margin-bottom: -0.25rem !important; +} + +.my-n2 { + margin-top: -0.5rem !important; + margin-bottom: -0.5rem !important; +} + +.my-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important; +} + +.my-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important; +} + +.my-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important; +} + +.mt-n1 { + margin-top: -0.25rem !important; +} + +.mt-n2 { + margin-top: -0.5rem !important; +} + +.mt-n3 { + margin-top: -1rem !important; +} + +.mt-n4 { + margin-top: -1.5rem !important; +} + +.mt-n5 { + margin-top: -3rem !important; +} + +.me-n1 { + margin-left: -0.25rem !important; +} + +.me-n2 { + margin-left: -0.5rem !important; +} + +.me-n3 { + margin-left: -1rem !important; +} + +.me-n4 { + margin-left: -1.5rem !important; +} + +.me-n5 { + margin-left: -3rem !important; +} + +.mb-n1 { + margin-bottom: -0.25rem !important; +} + +.mb-n2 { + margin-bottom: -0.5rem !important; +} + +.mb-n3 { + margin-bottom: -1rem !important; +} + +.mb-n4 { + margin-bottom: -1.5rem !important; +} + +.mb-n5 { + margin-bottom: -3rem !important; +} + +.ms-n1 { + margin-right: -0.25rem !important; +} + +.ms-n2 { + margin-right: -0.5rem !important; +} + +.ms-n3 { + margin-right: -1rem !important; +} + +.ms-n4 { + margin-right: -1.5rem !important; +} + +.ms-n5 { + margin-right: -3rem !important; +} + +.p-0 { + padding: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.px-0 { + padding-left: 0 !important; + padding-right: 0 !important; +} + +.px-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; +} + +.px-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; +} + +.px-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; +} + +.px-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; +} + +.px-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pt-3 { + padding-top: 1rem !important; +} + +.pt-4 { + padding-top: 1.5rem !important; +} + +.pt-5 { + padding-top: 3rem !important; +} + +.pe-0 { + padding-left: 0 !important; +} + +.pe-1 { + padding-left: 0.25rem !important; +} + +.pe-2 { + padding-left: 0.5rem !important; +} + +.pe-3 { + padding-left: 1rem !important; +} + +.pe-4 { + padding-left: 1.5rem !important; +} + +.pe-5 { + padding-left: 3rem !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pb-3 { + padding-bottom: 1rem !important; +} + +.pb-4 { + padding-bottom: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 3rem !important; +} + +.ps-0 { + padding-right: 0 !important; +} + +.ps-1 { + padding-right: 0.25rem !important; +} + +.ps-2 { + padding-right: 0.5rem !important; +} + +.ps-3 { + padding-right: 1rem !important; +} + +.ps-4 { + padding-right: 1.5rem !important; +} + +.ps-5 { + padding-right: 3rem !important; +} + +.font-monospace { + font-family: var(--bs-font-monospace) !important; +} + +.fs-1 { + font-size: calc(1.328125rem + 0.9375vw) !important; +} + +.fs-2 { + font-size: calc(1.2875rem + 0.45vw) !important; +} + +.fs-3 { + font-size: calc(1.2671875rem + 0.20625vw) !important; +} + +.fs-4 { + font-size: 1.21875rem !important; +} + +.fs-5 { + font-size: 1.015625rem !important; +} + +.fs-6 { + font-size: 0.8125rem !important; +} + +.fst-italic { + font-style: italic !important; +} + +.fst-normal { + font-style: normal !important; +} + +.fw-light { + font-weight: 300 !important; +} + +.fw-lighter { + font-weight: lighter !important; +} + +.fw-normal { + font-weight: 400 !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: right !important; +} + +.text-end { + text-align: left !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-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-pink { + --bs-text-opacity: 1; + color: rgba(var(--bs-pink-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: #74788d !important; +} + +.text-black-50 { + --bs-text-opacity: 1; + color: rgba(0, 0, 0, 0.5) !important; +} + +.text-white-50 { + --bs-text-opacity: 1; + color: rgba(255, 255, 255, 0.5) !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; +} + +.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-pink { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-pink-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-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-gradient { + background-image: var(--bs-gradient) !important; +} + +.user-select-all { + -webkit-user-select: all !important; + -moz-user-select: all !important; + -ms-user-select: all !important; + user-select: all !important; +} + +.user-select-auto { + -webkit-user-select: auto !important; + -moz-user-select: auto !important; + -ms-user-select: auto !important; + user-select: auto !important; +} + +.user-select-none { + -webkit-user-select: none !important; + -moz-user-select: none !important; + -ms-user-select: none !important; + user-select: none !important; +} + +.pe-none { + pointer-events: none !important; +} + +.pe-auto { + pointer-events: auto !important; +} + +.rounded { + border-radius: 0.25rem !important; +} + +.rounded-0 { + border-radius: 0 !important; +} + +.rounded-1 { + border-radius: 0.2rem !important; +} + +.rounded-2 { + border-radius: 0.25rem !important; +} + +.rounded-3 { + border-radius: 0.4rem !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-pill { + border-radius: 50rem !important; +} + +.rounded-top { + border-top-right-radius: 0.25rem !important; + border-top-left-radius: 0.25rem !important; +} + +.rounded-end { + border-top-left-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-bottom { + border-bottom-left-radius: 0.25rem !important; + border-bottom-right-radius: 0.25rem !important; +} + +.rounded-start { + border-bottom-right-radius: 0.25rem !important; + border-top-right-radius: 0.25rem !important; +} + +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !important; +} + +@media (min-width: 576px) { + .float-sm-start { + float: right !important; + } + + .float-sm-end { + float: left !important; + } + + .float-sm-none { + float: 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-table { + display: table !important; + } + + .d-sm-table-row { + display: table-row !important; + } + + .d-sm-table-cell { + display: table-cell !important; + } + + .d-sm-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-sm-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } + + .d-sm-none { + display: none !important; + } + + .flex-sm-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + + .flex-sm-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .flex-sm-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .flex-sm-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .flex-sm-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .flex-sm-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + + .flex-sm-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + + .flex-sm-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + + .flex-sm-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + + .flex-sm-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .flex-sm-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .flex-sm-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .gap-sm-0 { + gap: 0 !important; + } + + .gap-sm-1 { + gap: 0.25rem !important; + } + + .gap-sm-2 { + gap: 0.5rem !important; + } + + .gap-sm-3 { + gap: 1rem !important; + } + + .gap-sm-4 { + gap: 1.5rem !important; + } + + .gap-sm-5 { + gap: 3rem !important; + } + + .justify-content-sm-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .justify-content-sm-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .justify-content-sm-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .justify-content-sm-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .justify-content-sm-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .justify-content-sm-evenly { + -webkit-box-pack: space-evenly !important; + -ms-flex-pack: space-evenly !important; + justify-content: space-evenly !important; + } + + .align-items-sm-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .align-items-sm-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .align-items-sm-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .align-items-sm-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .align-items-sm-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .align-content-sm-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .align-content-sm-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .align-content-sm-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .align-content-sm-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .align-content-sm-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .align-content-sm-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .align-self-sm-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .align-self-sm-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .align-self-sm-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .align-self-sm-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .align-self-sm-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .align-self-sm-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } + + .order-sm-first { + -webkit-box-ordinal-group: 0 !important; + -ms-flex-order: -1 !important; + order: -1 !important; + } + + .order-sm-0 { + -webkit-box-ordinal-group: 1 !important; + -ms-flex-order: 0 !important; + order: 0 !important; + } + + .order-sm-1 { + -webkit-box-ordinal-group: 2 !important; + -ms-flex-order: 1 !important; + order: 1 !important; + } + + .order-sm-2 { + -webkit-box-ordinal-group: 3 !important; + -ms-flex-order: 2 !important; + order: 2 !important; + } + + .order-sm-3 { + -webkit-box-ordinal-group: 4 !important; + -ms-flex-order: 3 !important; + order: 3 !important; + } + + .order-sm-4 { + -webkit-box-ordinal-group: 5 !important; + -ms-flex-order: 4 !important; + order: 4 !important; + } + + .order-sm-5 { + -webkit-box-ordinal-group: 6 !important; + -ms-flex-order: 5 !important; + order: 5 !important; + } + + .order-sm-last { + -webkit-box-ordinal-group: 7 !important; + -ms-flex-order: 6 !important; + order: 6 !important; + } + + .m-sm-0 { + margin: 0 !important; + } + + .m-sm-1 { + margin: 0.25rem !important; + } + + .m-sm-2 { + margin: 0.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-left: 0 !important; + margin-right: 0 !important; + } + + .mx-sm-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + + .mx-sm-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + + .mx-sm-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + + .mx-sm-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + + .mx-sm-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + + .mx-sm-auto { + margin-left: auto !important; + margin-right: auto !important; + } + + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-sm-2 { + margin-top: 0.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-left: 0 !important; + } + + .me-sm-1 { + margin-left: 0.25rem !important; + } + + .me-sm-2 { + margin-left: 0.5rem !important; + } + + .me-sm-3 { + margin-left: 1rem !important; + } + + .me-sm-4 { + margin-left: 1.5rem !important; + } + + .me-sm-5 { + margin-left: 3rem !important; + } + + .me-sm-auto { + margin-left: auto !important; + } + + .mb-sm-0 { + margin-bottom: 0 !important; + } + + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + + .mb-sm-2 { + margin-bottom: 0.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-right: 0 !important; + } + + .ms-sm-1 { + margin-right: 0.25rem !important; + } + + .ms-sm-2 { + margin-right: 0.5rem !important; + } + + .ms-sm-3 { + margin-right: 1rem !important; + } + + .ms-sm-4 { + margin-right: 1.5rem !important; + } + + .ms-sm-5 { + margin-right: 3rem !important; + } + + .ms-sm-auto { + margin-right: auto !important; + } + + .m-sm-n1 { + margin: -0.25rem !important; + } + + .m-sm-n2 { + margin: -0.5rem !important; + } + + .m-sm-n3 { + margin: -1rem !important; + } + + .m-sm-n4 { + margin: -1.5rem !important; + } + + .m-sm-n5 { + margin: -3rem !important; + } + + .mx-sm-n1 { + margin-left: -0.25rem !important; + margin-right: -0.25rem !important; + } + + .mx-sm-n2 { + margin-left: -0.5rem !important; + margin-right: -0.5rem !important; + } + + .mx-sm-n3 { + margin-left: -1rem !important; + margin-right: -1rem !important; + } + + .mx-sm-n4 { + margin-left: -1.5rem !important; + margin-right: -1.5rem !important; + } + + .mx-sm-n5 { + margin-left: -3rem !important; + margin-right: -3rem !important; + } + + .my-sm-n1 { + margin-top: -0.25rem !important; + margin-bottom: -0.25rem !important; + } + + .my-sm-n2 { + margin-top: -0.5rem !important; + margin-bottom: -0.5rem !important; + } + + .my-sm-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important; + } + + .my-sm-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important; + } + + .my-sm-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important; + } + + .mt-sm-n1 { + margin-top: -0.25rem !important; + } + + .mt-sm-n2 { + margin-top: -0.5rem !important; + } + + .mt-sm-n3 { + margin-top: -1rem !important; + } + + .mt-sm-n4 { + margin-top: -1.5rem !important; + } + + .mt-sm-n5 { + margin-top: -3rem !important; + } + + .me-sm-n1 { + margin-left: -0.25rem !important; + } + + .me-sm-n2 { + margin-left: -0.5rem !important; + } + + .me-sm-n3 { + margin-left: -1rem !important; + } + + .me-sm-n4 { + margin-left: -1.5rem !important; + } + + .me-sm-n5 { + margin-left: -3rem !important; + } + + .mb-sm-n1 { + margin-bottom: -0.25rem !important; + } + + .mb-sm-n2 { + margin-bottom: -0.5rem !important; + } + + .mb-sm-n3 { + margin-bottom: -1rem !important; + } + + .mb-sm-n4 { + margin-bottom: -1.5rem !important; + } + + .mb-sm-n5 { + margin-bottom: -3rem !important; + } + + .ms-sm-n1 { + margin-right: -0.25rem !important; + } + + .ms-sm-n2 { + margin-right: -0.5rem !important; + } + + .ms-sm-n3 { + margin-right: -1rem !important; + } + + .ms-sm-n4 { + margin-right: -1.5rem !important; + } + + .ms-sm-n5 { + margin-right: -3rem !important; + } + + .p-sm-0 { + padding: 0 !important; + } + + .p-sm-1 { + padding: 0.25rem !important; + } + + .p-sm-2 { + padding: 0.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-left: 0 !important; + padding-right: 0 !important; + } + + .px-sm-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + + .px-sm-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + + .px-sm-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + + .px-sm-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + + .px-sm-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-sm-2 { + padding-top: 0.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-left: 0 !important; + } + + .pe-sm-1 { + padding-left: 0.25rem !important; + } + + .pe-sm-2 { + padding-left: 0.5rem !important; + } + + .pe-sm-3 { + padding-left: 1rem !important; + } + + .pe-sm-4 { + padding-left: 1.5rem !important; + } + + .pe-sm-5 { + padding-left: 3rem !important; + } + + .pb-sm-0 { + padding-bottom: 0 !important; + } + + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + + .pb-sm-2 { + padding-bottom: 0.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-right: 0 !important; + } + + .ps-sm-1 { + padding-right: 0.25rem !important; + } + + .ps-sm-2 { + padding-right: 0.5rem !important; + } + + .ps-sm-3 { + padding-right: 1rem !important; + } + + .ps-sm-4 { + padding-right: 1.5rem !important; + } + + .ps-sm-5 { + padding-right: 3rem !important; + } + + .text-sm-start { + text-align: right !important; + } + + .text-sm-end { + text-align: left !important; + } + + .text-sm-center { + text-align: center !important; + } +} +@media (min-width: 768px) { + .float-md-start { + float: right !important; + } + + .float-md-end { + float: left !important; + } + + .float-md-none { + float: 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-table { + display: table !important; + } + + .d-md-table-row { + display: table-row !important; + } + + .d-md-table-cell { + display: table-cell !important; + } + + .d-md-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-md-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } + + .d-md-none { + display: none !important; + } + + .flex-md-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + + .flex-md-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .flex-md-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .flex-md-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .flex-md-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .flex-md-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + + .flex-md-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + + .flex-md-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + + .flex-md-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + + .flex-md-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .flex-md-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .flex-md-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .gap-md-0 { + gap: 0 !important; + } + + .gap-md-1 { + gap: 0.25rem !important; + } + + .gap-md-2 { + gap: 0.5rem !important; + } + + .gap-md-3 { + gap: 1rem !important; + } + + .gap-md-4 { + gap: 1.5rem !important; + } + + .gap-md-5 { + gap: 3rem !important; + } + + .justify-content-md-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .justify-content-md-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .justify-content-md-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .justify-content-md-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .justify-content-md-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .justify-content-md-evenly { + -webkit-box-pack: space-evenly !important; + -ms-flex-pack: space-evenly !important; + justify-content: space-evenly !important; + } + + .align-items-md-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .align-items-md-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .align-items-md-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .align-items-md-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .align-items-md-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .align-content-md-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .align-content-md-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .align-content-md-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .align-content-md-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .align-content-md-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .align-content-md-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .align-self-md-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .align-self-md-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .align-self-md-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .align-self-md-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .align-self-md-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .align-self-md-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } + + .order-md-first { + -webkit-box-ordinal-group: 0 !important; + -ms-flex-order: -1 !important; + order: -1 !important; + } + + .order-md-0 { + -webkit-box-ordinal-group: 1 !important; + -ms-flex-order: 0 !important; + order: 0 !important; + } + + .order-md-1 { + -webkit-box-ordinal-group: 2 !important; + -ms-flex-order: 1 !important; + order: 1 !important; + } + + .order-md-2 { + -webkit-box-ordinal-group: 3 !important; + -ms-flex-order: 2 !important; + order: 2 !important; + } + + .order-md-3 { + -webkit-box-ordinal-group: 4 !important; + -ms-flex-order: 3 !important; + order: 3 !important; + } + + .order-md-4 { + -webkit-box-ordinal-group: 5 !important; + -ms-flex-order: 4 !important; + order: 4 !important; + } + + .order-md-5 { + -webkit-box-ordinal-group: 6 !important; + -ms-flex-order: 5 !important; + order: 5 !important; + } + + .order-md-last { + -webkit-box-ordinal-group: 7 !important; + -ms-flex-order: 6 !important; + order: 6 !important; + } + + .m-md-0 { + margin: 0 !important; + } + + .m-md-1 { + margin: 0.25rem !important; + } + + .m-md-2 { + margin: 0.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-left: 0 !important; + margin-right: 0 !important; + } + + .mx-md-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + + .mx-md-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + + .mx-md-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + + .mx-md-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + + .mx-md-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + + .mx-md-auto { + margin-left: auto !important; + margin-right: auto !important; + } + + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-md-2 { + margin-top: 0.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-left: 0 !important; + } + + .me-md-1 { + margin-left: 0.25rem !important; + } + + .me-md-2 { + margin-left: 0.5rem !important; + } + + .me-md-3 { + margin-left: 1rem !important; + } + + .me-md-4 { + margin-left: 1.5rem !important; + } + + .me-md-5 { + margin-left: 3rem !important; + } + + .me-md-auto { + margin-left: auto !important; + } + + .mb-md-0 { + margin-bottom: 0 !important; + } + + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + + .mb-md-2 { + margin-bottom: 0.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-right: 0 !important; + } + + .ms-md-1 { + margin-right: 0.25rem !important; + } + + .ms-md-2 { + margin-right: 0.5rem !important; + } + + .ms-md-3 { + margin-right: 1rem !important; + } + + .ms-md-4 { + margin-right: 1.5rem !important; + } + + .ms-md-5 { + margin-right: 3rem !important; + } + + .ms-md-auto { + margin-right: auto !important; + } + + .m-md-n1 { + margin: -0.25rem !important; + } + + .m-md-n2 { + margin: -0.5rem !important; + } + + .m-md-n3 { + margin: -1rem !important; + } + + .m-md-n4 { + margin: -1.5rem !important; + } + + .m-md-n5 { + margin: -3rem !important; + } + + .mx-md-n1 { + margin-left: -0.25rem !important; + margin-right: -0.25rem !important; + } + + .mx-md-n2 { + margin-left: -0.5rem !important; + margin-right: -0.5rem !important; + } + + .mx-md-n3 { + margin-left: -1rem !important; + margin-right: -1rem !important; + } + + .mx-md-n4 { + margin-left: -1.5rem !important; + margin-right: -1.5rem !important; + } + + .mx-md-n5 { + margin-left: -3rem !important; + margin-right: -3rem !important; + } + + .my-md-n1 { + margin-top: -0.25rem !important; + margin-bottom: -0.25rem !important; + } + + .my-md-n2 { + margin-top: -0.5rem !important; + margin-bottom: -0.5rem !important; + } + + .my-md-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important; + } + + .my-md-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important; + } + + .my-md-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important; + } + + .mt-md-n1 { + margin-top: -0.25rem !important; + } + + .mt-md-n2 { + margin-top: -0.5rem !important; + } + + .mt-md-n3 { + margin-top: -1rem !important; + } + + .mt-md-n4 { + margin-top: -1.5rem !important; + } + + .mt-md-n5 { + margin-top: -3rem !important; + } + + .me-md-n1 { + margin-left: -0.25rem !important; + } + + .me-md-n2 { + margin-left: -0.5rem !important; + } + + .me-md-n3 { + margin-left: -1rem !important; + } + + .me-md-n4 { + margin-left: -1.5rem !important; + } + + .me-md-n5 { + margin-left: -3rem !important; + } + + .mb-md-n1 { + margin-bottom: -0.25rem !important; + } + + .mb-md-n2 { + margin-bottom: -0.5rem !important; + } + + .mb-md-n3 { + margin-bottom: -1rem !important; + } + + .mb-md-n4 { + margin-bottom: -1.5rem !important; + } + + .mb-md-n5 { + margin-bottom: -3rem !important; + } + + .ms-md-n1 { + margin-right: -0.25rem !important; + } + + .ms-md-n2 { + margin-right: -0.5rem !important; + } + + .ms-md-n3 { + margin-right: -1rem !important; + } + + .ms-md-n4 { + margin-right: -1.5rem !important; + } + + .ms-md-n5 { + margin-right: -3rem !important; + } + + .p-md-0 { + padding: 0 !important; + } + + .p-md-1 { + padding: 0.25rem !important; + } + + .p-md-2 { + padding: 0.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-left: 0 !important; + padding-right: 0 !important; + } + + .px-md-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + + .px-md-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + + .px-md-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + + .px-md-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + + .px-md-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-md-2 { + padding-top: 0.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-left: 0 !important; + } + + .pe-md-1 { + padding-left: 0.25rem !important; + } + + .pe-md-2 { + padding-left: 0.5rem !important; + } + + .pe-md-3 { + padding-left: 1rem !important; + } + + .pe-md-4 { + padding-left: 1.5rem !important; + } + + .pe-md-5 { + padding-left: 3rem !important; + } + + .pb-md-0 { + padding-bottom: 0 !important; + } + + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + + .pb-md-2 { + padding-bottom: 0.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-right: 0 !important; + } + + .ps-md-1 { + padding-right: 0.25rem !important; + } + + .ps-md-2 { + padding-right: 0.5rem !important; + } + + .ps-md-3 { + padding-right: 1rem !important; + } + + .ps-md-4 { + padding-right: 1.5rem !important; + } + + .ps-md-5 { + padding-right: 3rem !important; + } + + .text-md-start { + text-align: right !important; + } + + .text-md-end { + text-align: left !important; + } + + .text-md-center { + text-align: center !important; + } +} +@media (min-width: 992px) { + .float-lg-start { + float: right !important; + } + + .float-lg-end { + float: left !important; + } + + .float-lg-none { + float: 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-table { + display: table !important; + } + + .d-lg-table-row { + display: table-row !important; + } + + .d-lg-table-cell { + display: table-cell !important; + } + + .d-lg-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-lg-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } + + .d-lg-none { + display: none !important; + } + + .flex-lg-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + + .flex-lg-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .flex-lg-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .flex-lg-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .flex-lg-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .flex-lg-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + + .flex-lg-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + + .flex-lg-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + + .flex-lg-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + + .flex-lg-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .flex-lg-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .flex-lg-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .gap-lg-0 { + gap: 0 !important; + } + + .gap-lg-1 { + gap: 0.25rem !important; + } + + .gap-lg-2 { + gap: 0.5rem !important; + } + + .gap-lg-3 { + gap: 1rem !important; + } + + .gap-lg-4 { + gap: 1.5rem !important; + } + + .gap-lg-5 { + gap: 3rem !important; + } + + .justify-content-lg-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .justify-content-lg-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .justify-content-lg-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .justify-content-lg-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .justify-content-lg-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .justify-content-lg-evenly { + -webkit-box-pack: space-evenly !important; + -ms-flex-pack: space-evenly !important; + justify-content: space-evenly !important; + } + + .align-items-lg-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .align-items-lg-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .align-items-lg-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .align-items-lg-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .align-items-lg-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .align-content-lg-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .align-content-lg-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .align-content-lg-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .align-content-lg-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .align-content-lg-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .align-content-lg-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .align-self-lg-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .align-self-lg-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .align-self-lg-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .align-self-lg-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .align-self-lg-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .align-self-lg-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } + + .order-lg-first { + -webkit-box-ordinal-group: 0 !important; + -ms-flex-order: -1 !important; + order: -1 !important; + } + + .order-lg-0 { + -webkit-box-ordinal-group: 1 !important; + -ms-flex-order: 0 !important; + order: 0 !important; + } + + .order-lg-1 { + -webkit-box-ordinal-group: 2 !important; + -ms-flex-order: 1 !important; + order: 1 !important; + } + + .order-lg-2 { + -webkit-box-ordinal-group: 3 !important; + -ms-flex-order: 2 !important; + order: 2 !important; + } + + .order-lg-3 { + -webkit-box-ordinal-group: 4 !important; + -ms-flex-order: 3 !important; + order: 3 !important; + } + + .order-lg-4 { + -webkit-box-ordinal-group: 5 !important; + -ms-flex-order: 4 !important; + order: 4 !important; + } + + .order-lg-5 { + -webkit-box-ordinal-group: 6 !important; + -ms-flex-order: 5 !important; + order: 5 !important; + } + + .order-lg-last { + -webkit-box-ordinal-group: 7 !important; + -ms-flex-order: 6 !important; + order: 6 !important; + } + + .m-lg-0 { + margin: 0 !important; + } + + .m-lg-1 { + margin: 0.25rem !important; + } + + .m-lg-2 { + margin: 0.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-left: 0 !important; + margin-right: 0 !important; + } + + .mx-lg-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + + .mx-lg-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + + .mx-lg-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + + .mx-lg-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + + .mx-lg-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + + .mx-lg-auto { + margin-left: auto !important; + margin-right: auto !important; + } + + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-lg-2 { + margin-top: 0.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-left: 0 !important; + } + + .me-lg-1 { + margin-left: 0.25rem !important; + } + + .me-lg-2 { + margin-left: 0.5rem !important; + } + + .me-lg-3 { + margin-left: 1rem !important; + } + + .me-lg-4 { + margin-left: 1.5rem !important; + } + + .me-lg-5 { + margin-left: 3rem !important; + } + + .me-lg-auto { + margin-left: auto !important; + } + + .mb-lg-0 { + margin-bottom: 0 !important; + } + + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + + .mb-lg-2 { + margin-bottom: 0.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-right: 0 !important; + } + + .ms-lg-1 { + margin-right: 0.25rem !important; + } + + .ms-lg-2 { + margin-right: 0.5rem !important; + } + + .ms-lg-3 { + margin-right: 1rem !important; + } + + .ms-lg-4 { + margin-right: 1.5rem !important; + } + + .ms-lg-5 { + margin-right: 3rem !important; + } + + .ms-lg-auto { + margin-right: auto !important; + } + + .m-lg-n1 { + margin: -0.25rem !important; + } + + .m-lg-n2 { + margin: -0.5rem !important; + } + + .m-lg-n3 { + margin: -1rem !important; + } + + .m-lg-n4 { + margin: -1.5rem !important; + } + + .m-lg-n5 { + margin: -3rem !important; + } + + .mx-lg-n1 { + margin-left: -0.25rem !important; + margin-right: -0.25rem !important; + } + + .mx-lg-n2 { + margin-left: -0.5rem !important; + margin-right: -0.5rem !important; + } + + .mx-lg-n3 { + margin-left: -1rem !important; + margin-right: -1rem !important; + } + + .mx-lg-n4 { + margin-left: -1.5rem !important; + margin-right: -1.5rem !important; + } + + .mx-lg-n5 { + margin-left: -3rem !important; + margin-right: -3rem !important; + } + + .my-lg-n1 { + margin-top: -0.25rem !important; + margin-bottom: -0.25rem !important; + } + + .my-lg-n2 { + margin-top: -0.5rem !important; + margin-bottom: -0.5rem !important; + } + + .my-lg-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important; + } + + .my-lg-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important; + } + + .my-lg-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important; + } + + .mt-lg-n1 { + margin-top: -0.25rem !important; + } + + .mt-lg-n2 { + margin-top: -0.5rem !important; + } + + .mt-lg-n3 { + margin-top: -1rem !important; + } + + .mt-lg-n4 { + margin-top: -1.5rem !important; + } + + .mt-lg-n5 { + margin-top: -3rem !important; + } + + .me-lg-n1 { + margin-left: -0.25rem !important; + } + + .me-lg-n2 { + margin-left: -0.5rem !important; + } + + .me-lg-n3 { + margin-left: -1rem !important; + } + + .me-lg-n4 { + margin-left: -1.5rem !important; + } + + .me-lg-n5 { + margin-left: -3rem !important; + } + + .mb-lg-n1 { + margin-bottom: -0.25rem !important; + } + + .mb-lg-n2 { + margin-bottom: -0.5rem !important; + } + + .mb-lg-n3 { + margin-bottom: -1rem !important; + } + + .mb-lg-n4 { + margin-bottom: -1.5rem !important; + } + + .mb-lg-n5 { + margin-bottom: -3rem !important; + } + + .ms-lg-n1 { + margin-right: -0.25rem !important; + } + + .ms-lg-n2 { + margin-right: -0.5rem !important; + } + + .ms-lg-n3 { + margin-right: -1rem !important; + } + + .ms-lg-n4 { + margin-right: -1.5rem !important; + } + + .ms-lg-n5 { + margin-right: -3rem !important; + } + + .p-lg-0 { + padding: 0 !important; + } + + .p-lg-1 { + padding: 0.25rem !important; + } + + .p-lg-2 { + padding: 0.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-left: 0 !important; + padding-right: 0 !important; + } + + .px-lg-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + + .px-lg-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + + .px-lg-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + + .px-lg-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + + .px-lg-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-lg-2 { + padding-top: 0.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-left: 0 !important; + } + + .pe-lg-1 { + padding-left: 0.25rem !important; + } + + .pe-lg-2 { + padding-left: 0.5rem !important; + } + + .pe-lg-3 { + padding-left: 1rem !important; + } + + .pe-lg-4 { + padding-left: 1.5rem !important; + } + + .pe-lg-5 { + padding-left: 3rem !important; + } + + .pb-lg-0 { + padding-bottom: 0 !important; + } + + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + + .pb-lg-2 { + padding-bottom: 0.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-right: 0 !important; + } + + .ps-lg-1 { + padding-right: 0.25rem !important; + } + + .ps-lg-2 { + padding-right: 0.5rem !important; + } + + .ps-lg-3 { + padding-right: 1rem !important; + } + + .ps-lg-4 { + padding-right: 1.5rem !important; + } + + .ps-lg-5 { + padding-right: 3rem !important; + } + + .text-lg-start { + text-align: right !important; + } + + .text-lg-end { + text-align: left !important; + } + + .text-lg-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .float-xl-start { + float: right !important; + } + + .float-xl-end { + float: left !important; + } + + .float-xl-none { + float: 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-table { + display: table !important; + } + + .d-xl-table-row { + display: table-row !important; + } + + .d-xl-table-cell { + display: table-cell !important; + } + + .d-xl-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-xl-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } + + .d-xl-none { + display: none !important; + } + + .flex-xl-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + + .flex-xl-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .flex-xl-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .flex-xl-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .flex-xl-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .flex-xl-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + + .flex-xl-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + + .flex-xl-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + + .flex-xl-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + + .flex-xl-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .flex-xl-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .flex-xl-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .gap-xl-0 { + gap: 0 !important; + } + + .gap-xl-1 { + gap: 0.25rem !important; + } + + .gap-xl-2 { + gap: 0.5rem !important; + } + + .gap-xl-3 { + gap: 1rem !important; + } + + .gap-xl-4 { + gap: 1.5rem !important; + } + + .gap-xl-5 { + gap: 3rem !important; + } + + .justify-content-xl-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .justify-content-xl-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .justify-content-xl-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .justify-content-xl-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .justify-content-xl-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .justify-content-xl-evenly { + -webkit-box-pack: space-evenly !important; + -ms-flex-pack: space-evenly !important; + justify-content: space-evenly !important; + } + + .align-items-xl-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .align-items-xl-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .align-items-xl-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .align-items-xl-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .align-items-xl-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .align-content-xl-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .align-content-xl-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .align-content-xl-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .align-content-xl-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .align-content-xl-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .align-content-xl-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .align-self-xl-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .align-self-xl-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .align-self-xl-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .align-self-xl-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .align-self-xl-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .align-self-xl-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } + + .order-xl-first { + -webkit-box-ordinal-group: 0 !important; + -ms-flex-order: -1 !important; + order: -1 !important; + } + + .order-xl-0 { + -webkit-box-ordinal-group: 1 !important; + -ms-flex-order: 0 !important; + order: 0 !important; + } + + .order-xl-1 { + -webkit-box-ordinal-group: 2 !important; + -ms-flex-order: 1 !important; + order: 1 !important; + } + + .order-xl-2 { + -webkit-box-ordinal-group: 3 !important; + -ms-flex-order: 2 !important; + order: 2 !important; + } + + .order-xl-3 { + -webkit-box-ordinal-group: 4 !important; + -ms-flex-order: 3 !important; + order: 3 !important; + } + + .order-xl-4 { + -webkit-box-ordinal-group: 5 !important; + -ms-flex-order: 4 !important; + order: 4 !important; + } + + .order-xl-5 { + -webkit-box-ordinal-group: 6 !important; + -ms-flex-order: 5 !important; + order: 5 !important; + } + + .order-xl-last { + -webkit-box-ordinal-group: 7 !important; + -ms-flex-order: 6 !important; + order: 6 !important; + } + + .m-xl-0 { + margin: 0 !important; + } + + .m-xl-1 { + margin: 0.25rem !important; + } + + .m-xl-2 { + margin: 0.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-left: 0 !important; + margin-right: 0 !important; + } + + .mx-xl-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + + .mx-xl-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + + .mx-xl-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + + .mx-xl-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + + .mx-xl-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + + .mx-xl-auto { + margin-left: auto !important; + margin-right: auto !important; + } + + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-xl-2 { + margin-top: 0.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-left: 0 !important; + } + + .me-xl-1 { + margin-left: 0.25rem !important; + } + + .me-xl-2 { + margin-left: 0.5rem !important; + } + + .me-xl-3 { + margin-left: 1rem !important; + } + + .me-xl-4 { + margin-left: 1.5rem !important; + } + + .me-xl-5 { + margin-left: 3rem !important; + } + + .me-xl-auto { + margin-left: auto !important; + } + + .mb-xl-0 { + margin-bottom: 0 !important; + } + + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + + .mb-xl-2 { + margin-bottom: 0.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-right: 0 !important; + } + + .ms-xl-1 { + margin-right: 0.25rem !important; + } + + .ms-xl-2 { + margin-right: 0.5rem !important; + } + + .ms-xl-3 { + margin-right: 1rem !important; + } + + .ms-xl-4 { + margin-right: 1.5rem !important; + } + + .ms-xl-5 { + margin-right: 3rem !important; + } + + .ms-xl-auto { + margin-right: auto !important; + } + + .m-xl-n1 { + margin: -0.25rem !important; + } + + .m-xl-n2 { + margin: -0.5rem !important; + } + + .m-xl-n3 { + margin: -1rem !important; + } + + .m-xl-n4 { + margin: -1.5rem !important; + } + + .m-xl-n5 { + margin: -3rem !important; + } + + .mx-xl-n1 { + margin-left: -0.25rem !important; + margin-right: -0.25rem !important; + } + + .mx-xl-n2 { + margin-left: -0.5rem !important; + margin-right: -0.5rem !important; + } + + .mx-xl-n3 { + margin-left: -1rem !important; + margin-right: -1rem !important; + } + + .mx-xl-n4 { + margin-left: -1.5rem !important; + margin-right: -1.5rem !important; + } + + .mx-xl-n5 { + margin-left: -3rem !important; + margin-right: -3rem !important; + } + + .my-xl-n1 { + margin-top: -0.25rem !important; + margin-bottom: -0.25rem !important; + } + + .my-xl-n2 { + margin-top: -0.5rem !important; + margin-bottom: -0.5rem !important; + } + + .my-xl-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important; + } + + .my-xl-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important; + } + + .my-xl-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important; + } + + .mt-xl-n1 { + margin-top: -0.25rem !important; + } + + .mt-xl-n2 { + margin-top: -0.5rem !important; + } + + .mt-xl-n3 { + margin-top: -1rem !important; + } + + .mt-xl-n4 { + margin-top: -1.5rem !important; + } + + .mt-xl-n5 { + margin-top: -3rem !important; + } + + .me-xl-n1 { + margin-left: -0.25rem !important; + } + + .me-xl-n2 { + margin-left: -0.5rem !important; + } + + .me-xl-n3 { + margin-left: -1rem !important; + } + + .me-xl-n4 { + margin-left: -1.5rem !important; + } + + .me-xl-n5 { + margin-left: -3rem !important; + } + + .mb-xl-n1 { + margin-bottom: -0.25rem !important; + } + + .mb-xl-n2 { + margin-bottom: -0.5rem !important; + } + + .mb-xl-n3 { + margin-bottom: -1rem !important; + } + + .mb-xl-n4 { + margin-bottom: -1.5rem !important; + } + + .mb-xl-n5 { + margin-bottom: -3rem !important; + } + + .ms-xl-n1 { + margin-right: -0.25rem !important; + } + + .ms-xl-n2 { + margin-right: -0.5rem !important; + } + + .ms-xl-n3 { + margin-right: -1rem !important; + } + + .ms-xl-n4 { + margin-right: -1.5rem !important; + } + + .ms-xl-n5 { + margin-right: -3rem !important; + } + + .p-xl-0 { + padding: 0 !important; + } + + .p-xl-1 { + padding: 0.25rem !important; + } + + .p-xl-2 { + padding: 0.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-left: 0 !important; + padding-right: 0 !important; + } + + .px-xl-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + + .px-xl-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + + .px-xl-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + + .px-xl-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + + .px-xl-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-xl-2 { + padding-top: 0.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-left: 0 !important; + } + + .pe-xl-1 { + padding-left: 0.25rem !important; + } + + .pe-xl-2 { + padding-left: 0.5rem !important; + } + + .pe-xl-3 { + padding-left: 1rem !important; + } + + .pe-xl-4 { + padding-left: 1.5rem !important; + } + + .pe-xl-5 { + padding-left: 3rem !important; + } + + .pb-xl-0 { + padding-bottom: 0 !important; + } + + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + + .pb-xl-2 { + padding-bottom: 0.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-right: 0 !important; + } + + .ps-xl-1 { + padding-right: 0.25rem !important; + } + + .ps-xl-2 { + padding-right: 0.5rem !important; + } + + .ps-xl-3 { + padding-right: 1rem !important; + } + + .ps-xl-4 { + padding-right: 1.5rem !important; + } + + .ps-xl-5 { + padding-right: 3rem !important; + } + + .text-xl-start { + text-align: right !important; + } + + .text-xl-end { + text-align: left !important; + } + + .text-xl-center { + text-align: center !important; + } +} +@media (min-width: 1400px) { + .float-xxl-start { + float: right !important; + } + + .float-xxl-end { + float: left !important; + } + + .float-xxl-none { + float: 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-table { + display: table !important; + } + + .d-xxl-table-row { + display: table-row !important; + } + + .d-xxl-table-cell { + display: table-cell !important; + } + + .d-xxl-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-xxl-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } + + .d-xxl-none { + display: none !important; + } + + .flex-xxl-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + + .flex-xxl-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; + } + + .flex-xxl-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + } + + .flex-xxl-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + + .flex-xxl-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + + .flex-xxl-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + + .flex-xxl-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + + .flex-xxl-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + + .flex-xxl-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + + .flex-xxl-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + + .flex-xxl-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + + .flex-xxl-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + + .gap-xxl-0 { + gap: 0 !important; + } + + .gap-xxl-1 { + gap: 0.25rem !important; + } + + .gap-xxl-2 { + gap: 0.5rem !important; + } + + .gap-xxl-3 { + gap: 1rem !important; + } + + .gap-xxl-4 { + gap: 1.5rem !important; + } + + .gap-xxl-5 { + gap: 3rem !important; + } + + .justify-content-xxl-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + + .justify-content-xxl-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + + .justify-content-xxl-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + } + + .justify-content-xxl-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + + .justify-content-xxl-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + + .justify-content-xxl-evenly { + -webkit-box-pack: space-evenly !important; + -ms-flex-pack: space-evenly !important; + justify-content: space-evenly !important; + } + + .align-items-xxl-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; + } + + .align-items-xxl-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; + } + + .align-items-xxl-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + } + + .align-items-xxl-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + + .align-items-xxl-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + + .align-content-xxl-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + + .align-content-xxl-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + + .align-content-xxl-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + + .align-content-xxl-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + + .align-content-xxl-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + + .align-content-xxl-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + + .align-self-xxl-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + + .align-self-xxl-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + + .align-self-xxl-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + + .align-self-xxl-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + + .align-self-xxl-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + + .align-self-xxl-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } + + .order-xxl-first { + -webkit-box-ordinal-group: 0 !important; + -ms-flex-order: -1 !important; + order: -1 !important; + } + + .order-xxl-0 { + -webkit-box-ordinal-group: 1 !important; + -ms-flex-order: 0 !important; + order: 0 !important; + } + + .order-xxl-1 { + -webkit-box-ordinal-group: 2 !important; + -ms-flex-order: 1 !important; + order: 1 !important; + } + + .order-xxl-2 { + -webkit-box-ordinal-group: 3 !important; + -ms-flex-order: 2 !important; + order: 2 !important; + } + + .order-xxl-3 { + -webkit-box-ordinal-group: 4 !important; + -ms-flex-order: 3 !important; + order: 3 !important; + } + + .order-xxl-4 { + -webkit-box-ordinal-group: 5 !important; + -ms-flex-order: 4 !important; + order: 4 !important; + } + + .order-xxl-5 { + -webkit-box-ordinal-group: 6 !important; + -ms-flex-order: 5 !important; + order: 5 !important; + } + + .order-xxl-last { + -webkit-box-ordinal-group: 7 !important; + -ms-flex-order: 6 !important; + order: 6 !important; + } + + .m-xxl-0 { + margin: 0 !important; + } + + .m-xxl-1 { + margin: 0.25rem !important; + } + + .m-xxl-2 { + margin: 0.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-left: 0 !important; + margin-right: 0 !important; + } + + .mx-xxl-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + + .mx-xxl-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + + .mx-xxl-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + + .mx-xxl-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + + .mx-xxl-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + + .mx-xxl-auto { + margin-left: auto !important; + margin-right: auto !important; + } + + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + + .mt-xxl-2 { + margin-top: 0.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-left: 0 !important; + } + + .me-xxl-1 { + margin-left: 0.25rem !important; + } + + .me-xxl-2 { + margin-left: 0.5rem !important; + } + + .me-xxl-3 { + margin-left: 1rem !important; + } + + .me-xxl-4 { + margin-left: 1.5rem !important; + } + + .me-xxl-5 { + margin-left: 3rem !important; + } + + .me-xxl-auto { + margin-left: auto !important; + } + + .mb-xxl-0 { + margin-bottom: 0 !important; + } + + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + + .mb-xxl-2 { + margin-bottom: 0.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-right: 0 !important; + } + + .ms-xxl-1 { + margin-right: 0.25rem !important; + } + + .ms-xxl-2 { + margin-right: 0.5rem !important; + } + + .ms-xxl-3 { + margin-right: 1rem !important; + } + + .ms-xxl-4 { + margin-right: 1.5rem !important; + } + + .ms-xxl-5 { + margin-right: 3rem !important; + } + + .ms-xxl-auto { + margin-right: auto !important; + } + + .m-xxl-n1 { + margin: -0.25rem !important; + } + + .m-xxl-n2 { + margin: -0.5rem !important; + } + + .m-xxl-n3 { + margin: -1rem !important; + } + + .m-xxl-n4 { + margin: -1.5rem !important; + } + + .m-xxl-n5 { + margin: -3rem !important; + } + + .mx-xxl-n1 { + margin-left: -0.25rem !important; + margin-right: -0.25rem !important; + } + + .mx-xxl-n2 { + margin-left: -0.5rem !important; + margin-right: -0.5rem !important; + } + + .mx-xxl-n3 { + margin-left: -1rem !important; + margin-right: -1rem !important; + } + + .mx-xxl-n4 { + margin-left: -1.5rem !important; + margin-right: -1.5rem !important; + } + + .mx-xxl-n5 { + margin-left: -3rem !important; + margin-right: -3rem !important; + } + + .my-xxl-n1 { + margin-top: -0.25rem !important; + margin-bottom: -0.25rem !important; + } + + .my-xxl-n2 { + margin-top: -0.5rem !important; + margin-bottom: -0.5rem !important; + } + + .my-xxl-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important; + } + + .my-xxl-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important; + } + + .my-xxl-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important; + } + + .mt-xxl-n1 { + margin-top: -0.25rem !important; + } + + .mt-xxl-n2 { + margin-top: -0.5rem !important; + } + + .mt-xxl-n3 { + margin-top: -1rem !important; + } + + .mt-xxl-n4 { + margin-top: -1.5rem !important; + } + + .mt-xxl-n5 { + margin-top: -3rem !important; + } + + .me-xxl-n1 { + margin-left: -0.25rem !important; + } + + .me-xxl-n2 { + margin-left: -0.5rem !important; + } + + .me-xxl-n3 { + margin-left: -1rem !important; + } + + .me-xxl-n4 { + margin-left: -1.5rem !important; + } + + .me-xxl-n5 { + margin-left: -3rem !important; + } + + .mb-xxl-n1 { + margin-bottom: -0.25rem !important; + } + + .mb-xxl-n2 { + margin-bottom: -0.5rem !important; + } + + .mb-xxl-n3 { + margin-bottom: -1rem !important; + } + + .mb-xxl-n4 { + margin-bottom: -1.5rem !important; + } + + .mb-xxl-n5 { + margin-bottom: -3rem !important; + } + + .ms-xxl-n1 { + margin-right: -0.25rem !important; + } + + .ms-xxl-n2 { + margin-right: -0.5rem !important; + } + + .ms-xxl-n3 { + margin-right: -1rem !important; + } + + .ms-xxl-n4 { + margin-right: -1.5rem !important; + } + + .ms-xxl-n5 { + margin-right: -3rem !important; + } + + .p-xxl-0 { + padding: 0 !important; + } + + .p-xxl-1 { + padding: 0.25rem !important; + } + + .p-xxl-2 { + padding: 0.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-left: 0 !important; + padding-right: 0 !important; + } + + .px-xxl-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + + .px-xxl-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + + .px-xxl-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + + .px-xxl-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + + .px-xxl-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + + .pt-xxl-2 { + padding-top: 0.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-left: 0 !important; + } + + .pe-xxl-1 { + padding-left: 0.25rem !important; + } + + .pe-xxl-2 { + padding-left: 0.5rem !important; + } + + .pe-xxl-3 { + padding-left: 1rem !important; + } + + .pe-xxl-4 { + padding-left: 1.5rem !important; + } + + .pe-xxl-5 { + padding-left: 3rem !important; + } + + .pb-xxl-0 { + padding-bottom: 0 !important; + } + + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + + .pb-xxl-2 { + padding-bottom: 0.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-right: 0 !important; + } + + .ps-xxl-1 { + padding-right: 0.25rem !important; + } + + .ps-xxl-2 { + padding-right: 0.5rem !important; + } + + .ps-xxl-3 { + padding-right: 1rem !important; + } + + .ps-xxl-4 { + padding-right: 1.5rem !important; + } + + .ps-xxl-5 { + padding-right: 3rem !important; + } + + .text-xxl-start { + text-align: right !important; + } + + .text-xxl-end { + text-align: left !important; + } + + .text-xxl-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .fs-1 { + font-size: 2.03125rem !important; + } + + .fs-2 { + font-size: 1.625rem !important; + } + + .fs-3 { + font-size: 1.421875rem !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-table { + display: table !important; + } + + .d-print-table-row { + display: table-row !important; + } + + .d-print-table-cell { + display: table-cell !important; + } + + .d-print-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + } + + .d-print-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } + + .d-print-none { + display: none !important; + } +} +/* ============= + General +============= */ +html { + position: relative; + min-height: 100%; +} + +.h1, .h2, .h3, .h4, .h5, .h6, +h1, h2, h3, h4, h5, h6 { + color: #495057; +} + +a { + text-decoration: none !important; +} + +label { + margin-bottom: 0.5rem; + font-weight: 500; +} + +.blockquote { + padding: 10px 20px; + border-right: 4px solid #f6f6f6; +} + +.blockquote-reverse { + border-right: 0; + border-left: 4px solid #f6f6f6; + text-align: left; +} + +@media (min-width: 1200px) { + .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl { + max-width: 1140px; + } +} + +.row > * { + position: relative; +} + +body[data-layout-mode=dark] .blockquote { + border-color: #30373f; +} +body[data-layout-mode=dark] .blockquote-footer { + color: #858d98; +} + +.alert-outline { + background-color: #fff; +} + +.alert-label-icon { + position: relative; + padding-right: 60px; + border: 0; +} +.alert-label-icon .label-icon { + position: absolute; + width: 45px; + height: 100%; + right: 0; + top: 0; + background-color: rgba(255, 255, 255, 0.1); + border-left: 1px solid rgba(255, 255, 255, 0.1); + font-size: 16px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} +.alert-label-icon.label-arrow { + overflow: hidden; +} +.alert-label-icon.label-arrow .label-icon { + color: #fff; +} +.alert-label-icon.label-arrow .label-icon:after { + content: ""; + position: absolute; + border: 6px solid transparent; + left: -12px; +} + +.alert-border-left { + border-right: 3px solid; +} + +.alert-top-border { + background-color: #fff; + border-color: #e9e9ef; + border-top: 2px solid; + color: #495057; +} + +.alert-outline.alert-primary { + color: #1c84ee; +} + +.alert-border-left.alert-primary { + border-right-color: #1c84ee; +} + +.alert-top-border.alert-primary { + border-top-color: #1c84ee !important; +} + +.label-arrow.alert-primary .label-icon { + background-color: #1c84ee; +} +.label-arrow.alert-primary .label-icon:after { + border-right-color: #1c84ee !important; +} + +.alert-outline.alert-secondary { + color: #74788d; +} + +.alert-border-left.alert-secondary { + border-right-color: #74788d; +} + +.alert-top-border.alert-secondary { + border-top-color: #74788d !important; +} + +.label-arrow.alert-secondary .label-icon { + background-color: #74788d; +} +.label-arrow.alert-secondary .label-icon:after { + border-right-color: #74788d !important; +} + +.alert-outline.alert-success { + color: #34c38f; +} + +.alert-border-left.alert-success { + border-right-color: #34c38f; +} + +.alert-top-border.alert-success { + border-top-color: #34c38f !important; +} + +.label-arrow.alert-success .label-icon { + background-color: #34c38f; +} +.label-arrow.alert-success .label-icon:after { + border-right-color: #34c38f !important; +} + +.alert-outline.alert-info { + color: #16daf1; +} + +.alert-border-left.alert-info { + border-right-color: #16daf1; +} + +.alert-top-border.alert-info { + border-top-color: #16daf1 !important; +} + +.label-arrow.alert-info .label-icon { + background-color: #16daf1; +} +.label-arrow.alert-info .label-icon:after { + border-right-color: #16daf1 !important; +} + +.alert-outline.alert-warning { + color: #ffcc5a; +} + +.alert-border-left.alert-warning { + border-right-color: #ffcc5a; +} + +.alert-top-border.alert-warning { + border-top-color: #ffcc5a !important; +} + +.label-arrow.alert-warning .label-icon { + background-color: #ffcc5a; +} +.label-arrow.alert-warning .label-icon:after { + border-right-color: #ffcc5a !important; +} + +.alert-outline.alert-danger { + color: #ef6767; +} + +.alert-border-left.alert-danger { + border-right-color: #ef6767; +} + +.alert-top-border.alert-danger { + border-top-color: #ef6767 !important; +} + +.label-arrow.alert-danger .label-icon { + background-color: #ef6767; +} +.label-arrow.alert-danger .label-icon:after { + border-right-color: #ef6767 !important; +} + +.alert-outline.alert-pink { + color: #e83e8c; +} + +.alert-border-left.alert-pink { + border-right-color: #e83e8c; +} + +.alert-top-border.alert-pink { + border-top-color: #e83e8c !important; +} + +.label-arrow.alert-pink .label-icon { + background-color: #e83e8c; +} +.label-arrow.alert-pink .label-icon:after { + border-right-color: #e83e8c !important; +} + +.alert-outline.alert-light { + color: #f6f6f6; +} + +.alert-border-left.alert-light { + border-right-color: #f6f6f6; +} + +.alert-top-border.alert-light { + border-top-color: #f6f6f6 !important; +} + +.label-arrow.alert-light .label-icon { + background-color: #f6f6f6; +} +.label-arrow.alert-light .label-icon:after { + border-right-color: #f6f6f6 !important; +} + +.alert-outline.alert-dark { + color: #2b3940; +} + +.alert-border-left.alert-dark { + border-right-color: #2b3940; +} + +.alert-top-border.alert-dark { + border-top-color: #2b3940 !important; +} + +.label-arrow.alert-dark .label-icon { + background-color: #2b3940; +} +.label-arrow.alert-dark .label-icon:after { + border-right-color: #2b3940 !important; +} + +body[data-layout-mode=dark] .alert .btn-close { + background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat; +} +body[data-layout-mode=dark] .alert-outline { + background-color: #242a30; +} +body[data-layout-mode=dark] .alert-outline .btn-close { + background: transparent 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 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat; +} +body[data-layout-mode=dark] .alert-top-border { + background-color: #242a30; + border-color: #30373f; + color: #858d98; +} +body[data-layout-mode=dark] .alert-top-border .btn-close { + background: transparent 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 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat; +} + +.bg-soft-primary { + background-color: rgba(28, 132, 238, 0.25) !important; +} + +.bg-soft-secondary { + background-color: rgba(116, 120, 141, 0.25) !important; +} + +.bg-soft-success { + background-color: rgba(52, 195, 143, 0.25) !important; +} + +.bg-soft-info { + background-color: rgba(22, 218, 241, 0.25) !important; +} + +.bg-soft-warning { + background-color: rgba(255, 204, 90, 0.25) !important; +} + +.bg-soft-danger { + background-color: rgba(239, 103, 103, 0.25) !important; +} + +.bg-soft-pink { + background-color: rgba(232, 62, 140, 0.25) !important; +} + +.bg-soft-light { + background-color: rgba(246, 246, 246, 0.25) !important; +} + +.bg-soft-dark { + background-color: rgba(43, 57, 64, 0.25) !important; +} + +body[data-layout-mode=dark] .bg-light { + background-color: #30373f !important; +} +body[data-layout-mode=dark] .bg-dark { + background-color: #2f373f !important; +} +body[data-layout-mode=dark] .bg-soft-light { + background-color: rgba(48, 55, 63, 0.25) !important; +} + +.badge[href]:hover, .badge[href]:focus { + color: #fff; +} + +.badge.bg-primary[href]:hover, .badge.bg-primary[href]:focus { + background-color: #117ae4 !important; +} + +.badge.bg-light { + color: #495057; +} +.badge.bg-light[href]:hover, .badge.bg-light[href]:focus { + color: #495057; +} + +.badge-soft-primary { + color: #1c84ee; + background-color: rgba(28, 132, 238, 0.18); +} +.badge-soft-primary[href]:hover, .badge-soft-primary[href]:focus { + color: #1c84ee; + text-decoration: none; + background-color: rgba(28, 132, 238, 0.4); +} + +.badge.bg-secondary[href]:hover, .badge.bg-secondary[href]:focus { + background-color: #6b6e82 !important; +} + +.badge.bg-light { + color: #495057; +} +.badge.bg-light[href]:hover, .badge.bg-light[href]:focus { + color: #495057; +} + +.badge-soft-secondary { + color: #74788d; + background-color: rgba(116, 120, 141, 0.18); +} +.badge-soft-secondary[href]:hover, .badge-soft-secondary[href]:focus { + color: #74788d; + text-decoration: none; + background-color: rgba(116, 120, 141, 0.4); +} + +.badge.bg-success[href]:hover, .badge.bg-success[href]:focus { + background-color: #30b383 !important; +} + +.badge.bg-light { + color: #495057; +} +.badge.bg-light[href]:hover, .badge.bg-light[href]:focus { + color: #495057; +} + +.badge-soft-success { + color: #34c38f; + background-color: rgba(52, 195, 143, 0.18); +} +.badge-soft-success[href]:hover, .badge-soft-success[href]:focus { + color: #34c38f; + text-decoration: none; + background-color: rgba(52, 195, 143, 0.4); +} + +.badge.bg-info[href]:hover, .badge.bg-info[href]:focus { + background-color: #0ecee5 !important; +} + +.badge.bg-light { + color: #495057; +} +.badge.bg-light[href]:hover, .badge.bg-light[href]:focus { + color: #495057; +} + +.badge-soft-info { + color: #16daf1; + background-color: rgba(22, 218, 241, 0.18); +} +.badge-soft-info[href]:hover, .badge-soft-info[href]:focus { + color: #16daf1; + text-decoration: none; + background-color: rgba(22, 218, 241, 0.4); +} + +.badge.bg-warning[href]:hover, .badge.bg-warning[href]:focus { + background-color: #ffc646 !important; +} + +.badge.bg-light { + color: #495057; +} +.badge.bg-light[href]:hover, .badge.bg-light[href]:focus { + color: #495057; +} + +.badge-soft-warning { + color: #ffcc5a; + background-color: rgba(255, 204, 90, 0.18); +} +.badge-soft-warning[href]:hover, .badge-soft-warning[href]:focus { + color: #ffcc5a; + text-decoration: none; + background-color: rgba(255, 204, 90, 0.4); +} + +.badge.bg-danger[href]:hover, .badge.bg-danger[href]:focus { + background-color: #ed5555 !important; +} + +.badge.bg-light { + color: #495057; +} +.badge.bg-light[href]:hover, .badge.bg-light[href]:focus { + color: #495057; +} + +.badge-soft-danger { + color: #ef6767; + background-color: rgba(239, 103, 103, 0.18); +} +.badge-soft-danger[href]:hover, .badge-soft-danger[href]:focus { + color: #ef6767; + text-decoration: none; + background-color: rgba(239, 103, 103, 0.4); +} + +.badge.bg-pink[href]:hover, .badge.bg-pink[href]:focus { + background-color: #e62c81 !important; +} + +.badge.bg-light { + color: #495057; +} +.badge.bg-light[href]:hover, .badge.bg-light[href]:focus { + color: #495057; +} + +.badge-soft-pink { + color: #e83e8c; + background-color: rgba(232, 62, 140, 0.18); +} +.badge-soft-pink[href]:hover, .badge-soft-pink[href]:focus { + color: #e83e8c; + text-decoration: none; + background-color: rgba(232, 62, 140, 0.4); +} + +.badge.bg-light[href]:hover, .badge.bg-light[href]:focus { + background-color: #ececec !important; +} + +.badge.bg-light { + color: #495057; +} +.badge.bg-light[href]:hover, .badge.bg-light[href]:focus { + color: #495057; +} + +.badge-soft-light { + color: #f6f6f6; + background-color: rgba(246, 246, 246, 0.18); +} +.badge-soft-light[href]:hover, .badge-soft-light[href]:focus { + color: #f6f6f6; + text-decoration: none; + background-color: rgba(246, 246, 246, 0.4); +} + +.badge.bg-dark[href]:hover, .badge.bg-dark[href]:focus { + background-color: #232e34 !important; +} + +.badge.bg-light { + color: #495057; +} +.badge.bg-light[href]:hover, .badge.bg-light[href]:focus { + color: #495057; +} + +.badge-soft-dark { + color: #2b3940; + background-color: rgba(43, 57, 64, 0.18); +} +.badge-soft-dark[href]:hover, .badge-soft-dark[href]:focus { + color: #2b3940; + text-decoration: none; + background-color: rgba(43, 57, 64, 0.4); +} + +.rounded-pill { + padding-left: 0.6em; + padding-right: 0.6em; +} + +.badge.bg-dark { + color: #f6f6f6; +} + +body[data-layout-mode=dark] .badge-soft-dark { + color: #ced4da; + background-color: rgba(133, 141, 152, 0.18); +} +body[data-layout-mode=dark] .badge-soft-dark[href]:hover, body[data-layout-mode=dark] .badge-soft-dark[href]:focus { + color: #ced4da; + text-decoration: none; + background-color: rgba(133, 141, 152, 0.4); +} + +button, +a { + outline: none !important; +} + +.btn-outline-light { + color: #2b3940; +} + +.btn-soft-primary { + color: #1c84ee; + background-color: rgba(28, 132, 238, 0.1); + border-color: transparent; +} +.btn-soft-primary:hover, .btn-soft-primary:focus, .btn-soft-primary:active { + color: #fff; + background-color: #1c84ee; +} +.btn-soft-primary:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(28, 132, 238, 0.5); + box-shadow: 0 0 0 0.15rem rgba(28, 132, 238, 0.5); +} + +.btn-soft-secondary { + color: #74788d; + background-color: rgba(116, 120, 141, 0.1); + border-color: transparent; +} +.btn-soft-secondary:hover, .btn-soft-secondary:focus, .btn-soft-secondary:active { + color: #fff; + background-color: #74788d; +} +.btn-soft-secondary:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(116, 120, 141, 0.5); + box-shadow: 0 0 0 0.15rem rgba(116, 120, 141, 0.5); +} + +.btn-soft-success { + color: #34c38f; + background-color: rgba(52, 195, 143, 0.1); + border-color: transparent; +} +.btn-soft-success:hover, .btn-soft-success:focus, .btn-soft-success:active { + color: #fff; + background-color: #34c38f; +} +.btn-soft-success:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(52, 195, 143, 0.5); + box-shadow: 0 0 0 0.15rem rgba(52, 195, 143, 0.5); +} + +.btn-soft-info { + color: #16daf1; + background-color: rgba(22, 218, 241, 0.1); + border-color: transparent; +} +.btn-soft-info:hover, .btn-soft-info:focus, .btn-soft-info:active { + color: #fff; + background-color: #16daf1; +} +.btn-soft-info:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(22, 218, 241, 0.5); + box-shadow: 0 0 0 0.15rem rgba(22, 218, 241, 0.5); +} + +.btn-soft-warning { + color: #ffcc5a; + background-color: rgba(255, 204, 90, 0.1); + border-color: transparent; +} +.btn-soft-warning:hover, .btn-soft-warning:focus, .btn-soft-warning:active { + color: #fff; + background-color: #ffcc5a; +} +.btn-soft-warning:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(255, 204, 90, 0.5); + box-shadow: 0 0 0 0.15rem rgba(255, 204, 90, 0.5); +} + +.btn-soft-danger { + color: #ef6767; + background-color: rgba(239, 103, 103, 0.1); + border-color: transparent; +} +.btn-soft-danger:hover, .btn-soft-danger:focus, .btn-soft-danger:active { + color: #fff; + background-color: #ef6767; +} +.btn-soft-danger:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(239, 103, 103, 0.5); + box-shadow: 0 0 0 0.15rem rgba(239, 103, 103, 0.5); +} + +.btn-soft-pink { + color: #e83e8c; + background-color: rgba(232, 62, 140, 0.1); + border-color: transparent; +} +.btn-soft-pink:hover, .btn-soft-pink:focus, .btn-soft-pink:active { + color: #fff; + background-color: #e83e8c; +} +.btn-soft-pink:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(232, 62, 140, 0.5); + box-shadow: 0 0 0 0.15rem rgba(232, 62, 140, 0.5); +} + +.btn-soft-light { + color: #f6f6f6; + background-color: rgba(246, 246, 246, 0.1); + border-color: transparent; +} +.btn-soft-light:hover, .btn-soft-light:focus, .btn-soft-light:active { + color: #fff; + background-color: #f6f6f6; +} +.btn-soft-light:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(246, 246, 246, 0.5); + box-shadow: 0 0 0 0.15rem rgba(246, 246, 246, 0.5); +} + +.btn-soft-dark { + color: #2b3940; + background-color: rgba(43, 57, 64, 0.1); + border-color: transparent; +} +.btn-soft-dark:hover, .btn-soft-dark:focus, .btn-soft-dark:active { + color: #fff; + background-color: #2b3940; +} +.btn-soft-dark:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(43, 57, 64, 0.5); + box-shadow: 0 0 0 0.15rem rgba(43, 57, 64, 0.5); +} + +.btn-soft-light { + color: #2b3940; + background-color: rgba(246, 246, 246, 0.25); +} +.btn-soft-light:hover, .btn-soft-light:focus, .btn-soft-light:active { + color: #2b3940; +} + +.btn-primary.dropdown-toggle-split { + background-color: #3491f0; + border: none; +} + +.btn-secondary.dropdown-toggle-split { + background-color: #828698; + border: none; +} + +.btn-success.dropdown-toggle-split { + background-color: #44cd9b; + border: none; +} + +.btn-info.dropdown-toggle-split { + background-color: #2edef2; + border: none; +} + +.btn-warning.dropdown-toggle-split { + background-color: #ffd474; + border: none; +} + +.btn-danger.dropdown-toggle-split { + background-color: #f17e7e; + border: none; +} + +.btn-pink.dropdown-toggle-split { + background-color: #eb559a; + border: none; +} + +.btn-light.dropdown-toggle-split { + background-color: white; + border: none; +} + +.btn-dark.dropdown-toggle-split { + background-color: #35474f; + border: none; +} + +.btn-rounded { + border-radius: 30px; +} + +.btn-group-example .btn { + position: relative; +} +.btn-group-example .btn:first-child::before { + display: none; +} +.btn-group-example .btn:before { + content: "OR"; + position: absolute; + font-size: 10px; + width: 22px; + height: 22px; + line-height: 22px; + border-radius: 50%; + background-color: #74788d; + color: #f6f6f6; + right: -12px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + z-index: 1; +} + +.btn-label { + position: relative; + padding-right: 44px; + border: none; +} +.btn-label .label-icon { + position: absolute; + width: 32px; + height: 100%; + right: 0; + top: 0; + background-color: rgba(255, 255, 255, 0.15); + font-size: 16px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} +.btn-label.btn-light .label-icon { + background-color: rgba(43, 57, 64, 0.1); +} +.btn-label.btn-soft-light .label-icon { + background-color: rgba(43, 57, 64, 0.05); +} + +body[data-layout-mode=dark] .btn { + color: #f6f6f6; +} +body[data-layout-mode=dark] .btn-light { + color: #adb5bd; + background-color: #30373f; + border-color: #30373f !important; + -webkit-box-shadow: 0 2px 6px 0 rgba(48, 55, 63, 0.5); + box-shadow: 0 2px 6px 0 rgba(48, 55, 63, 0.5); +} +body[data-layout-mode=dark] .btn-outline-light { + color: #adb5bd; + border-color: #30373f; +} +body[data-layout-mode=dark] .btn-outline-light:hover { + color: #adb5bd; + background-color: #30373f; + border-color: #30373f; +} +body[data-layout-mode=dark] .btn-soft-light { + color: #adb5bd; + background-color: rgba(133, 141, 152, 0.2); +} +body[data-layout-mode=dark] .btn-soft-light:hover, body[data-layout-mode=dark] .btn-soft-light:focus, body[data-layout-mode=dark] .btn-soft-light:active { + background-color: rgba(133, 141, 152, 0.25); +} +body[data-layout-mode=dark] .btn-check:focus + .btn-light, +body[data-layout-mode=dark] .btn-light:focus, +body[data-layout-mode=dark] .btn-check:focus + .btn-outline-light, +body[data-layout-mode=dark] .btn-outline-light:focus { + -webkit-box-shadow: 0 0 0 0.15rem rgba(48, 55, 63, 0.5); + box-shadow: 0 0 0 0.15rem rgba(48, 55, 63, 0.5); +} + +.breadcrumb-item > a { + color: #495057; +} +.breadcrumb-item + .breadcrumb-item::before { + font-family: "Material Design Icons"; +} + +body[data-layout-mode=dark] .breadcrumb-item > a { + color: #adb5bd; +} +body[data-layout-mode=dark] .breadcrumb-item.active { + color: #858d98; +} + +.carousel-indicators-rounded button { + width: 10px !important; + height: 10px !important; + border-radius: 50% !important; +} + +.carousel-indicators.auth-carousel button { + width: 3rem !important; + height: 3rem !important; + margin: 0px 8px; +} + +.card { + margin-bottom: 24px; + -webkit-box-shadow: 0 0.25rem 0.75rem rgba(18, 38, 63, 0.08); + box-shadow: 0 0.25rem 0.75rem rgba(18, 38, 63, 0.08); + border: none !important; +} + +.card-drop { + color: #495057; +} + +.card-title { + font-size: 15.4px; + margin: 0 0 7px 0; +} + +.card-title-desc { + color: #74788d; + margin-bottom: 0; + font-size: 13px; +} + +.card-header-tabs { + margin-top: -1.25rem; +} + +.card-header-pills { + margin: -0.625rem; +} + +body[data-layout-mode=dark] .card, body[data-layout-mode=dark] .card-header, +body[data-layout-mode=dark] .modal-content, body[data-layout-mode=dark] .offcanvas { + background-color: #242a30; + border-color: #2d343c; +} +body[data-layout-mode=dark] .card-title-desc { + color: #858d98; +} + +.dropdown-menu { + -webkit-box-shadow: 0 0.25rem 0.75rem rgba(18, 38, 63, 0.08); + box-shadow: 0 0.25rem 0.75rem rgba(18, 38, 63, 0.08); + -webkit-animation-name: DropDownSlide; + animation-name: DropDownSlide; + -webkit-animation-duration: 0.3s; + animation-duration: 0.3s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + padding: 0.25rem; +} +.dropdown-menu.show { + top: 100% !important; +} + +.dropdown-menu-end[style] { + right: auto !important; + left: 0 !important; +} + +.dropdown-menu[data-popper-placement^=left], +.dropdown-menu[data-popper-placement^=top], +.dropdown-menu[data-popper-placement^=right] { + top: auto !important; + -webkit-animation: none !important; + animation: none !important; +} + +@-webkit-keyframes DropDownSlide { + 100% { + -webkit-transform: translateY(0); + transform: translateY(0); + } + 0% { + -webkit-transform: translateY(10px); + transform: translateY(10px); + } +} + +@keyframes DropDownSlide { + 100% { + -webkit-transform: translateY(0); + transform: translateY(0); + } + 0% { + -webkit-transform: translateY(10px); + transform: translateY(10px); + } +} +@media (min-width: 600px) { + .dropdown-menu-lg { + width: 320px; + } + + .dropdown-menu-md { + width: 240px; + } +} +.dropdown-divider { + border-top-color: #e9e9ef; +} + +.dropdown-mega { + position: static !important; +} + +.dropdown-megamenu[style] { + padding: 20px; + right: 20px !important; + left: 20px !important; +} + +.dropdown-mega-menu-xl { + width: 40rem; +} + +.dropdown-mega-menu-lg { + width: 26rem; +} + +.dropdownmenu-primary .dropdown-item:focus, .dropdownmenu-primary .dropdown-item:hover, .dropdownmenu-primary .dropdown-item.active { + background-color: rgba(28, 132, 238, 0.07) !important; + color: #1c84ee; +} + +.dropdownmenu-secondary .dropdown-item:focus, .dropdownmenu-secondary .dropdown-item:hover, .dropdownmenu-secondary .dropdown-item.active { + background-color: rgba(116, 120, 141, 0.07) !important; + color: #74788d; +} + +.dropdownmenu-success .dropdown-item:focus, .dropdownmenu-success .dropdown-item:hover, .dropdownmenu-success .dropdown-item.active { + background-color: rgba(52, 195, 143, 0.07) !important; + color: #34c38f; +} + +.dropdownmenu-info .dropdown-item:focus, .dropdownmenu-info .dropdown-item:hover, .dropdownmenu-info .dropdown-item.active { + background-color: rgba(22, 218, 241, 0.07) !important; + color: #16daf1; +} + +.dropdownmenu-warning .dropdown-item:focus, .dropdownmenu-warning .dropdown-item:hover, .dropdownmenu-warning .dropdown-item.active { + background-color: rgba(255, 204, 90, 0.07) !important; + color: #ffcc5a; +} + +.dropdownmenu-danger .dropdown-item:focus, .dropdownmenu-danger .dropdown-item:hover, .dropdownmenu-danger .dropdown-item.active { + background-color: rgba(239, 103, 103, 0.07) !important; + color: #ef6767; +} + +.dropdownmenu-pink .dropdown-item:focus, .dropdownmenu-pink .dropdown-item:hover, .dropdownmenu-pink .dropdown-item.active { + background-color: rgba(232, 62, 140, 0.07) !important; + color: #e83e8c; +} + +.dropdownmenu-light .dropdown-item:focus, .dropdownmenu-light .dropdown-item:hover, .dropdownmenu-light .dropdown-item.active { + background-color: rgba(246, 246, 246, 0.07) !important; + color: #f6f6f6; +} + +.dropdownmenu-dark .dropdown-item:focus, .dropdownmenu-dark .dropdown-item:hover, .dropdownmenu-dark .dropdown-item.active { + background-color: rgba(43, 57, 64, 0.07) !important; + color: #2b3940; +} + +body[data-layout-mode=dark] .dropdown-menu { + background-color: #293037; + border-color: #30373f; + color: #adb5bd; + -webkit-box-shadow: 0 0.25rem 0.75rem rgba(25, 30, 34, 0.2); + box-shadow: 0 0.25rem 0.75rem rgba(25, 30, 34, 0.2); +} +body[data-layout-mode=dark] .dropdown-item { + color: #adb5bd; +} +body[data-layout-mode=dark] .dropdown-item:hover, body[data-layout-mode=dark] .dropdown-item:active, body[data-layout-mode=dark] .dropdown-item:focus { + background-color: #2f373f; +} +body[data-layout-mode=dark] .dropdown-item.active, body[data-layout-mode=dark] .dropdown-item:active { + background-color: #2f373f; +} +body[data-layout-mode=dark] .dropdown-divider { + border-top-color: #30373f; +} + +.nav-tabs > li > a, +.nav-pills > li > a { + color: #495057; + font-weight: 500; +} + +.nav-pills > a { + color: #495057; + font-weight: 500; +} + +.nav-tabs-custom { + border-bottom: 1px solid #f6f6f6; +} +.nav-tabs-custom .nav-item { + position: relative; + color: #2b3940; +} +.nav-tabs-custom .nav-item .nav-link { + border: none; +} +.nav-tabs-custom .nav-item .nav-link::after { + content: ""; + background: #1c84ee; + height: 1px; + position: absolute; + width: 100%; + right: 0; + bottom: -1px; + -webkit-transition: all 250ms ease 0s; + transition: all 250ms ease 0s; + -webkit-transform: scale(0); + transform: scale(0); +} +.nav-tabs-custom .nav-item .nav-link.active { + color: #1c84ee; +} +.nav-tabs-custom .nav-item .nav-link.active:after { + -webkit-transform: scale(1); + transform: scale(1); +} +.nav-tabs-custom.card-header-tabs { + border-bottom: none; +} +.nav-tabs-custom.card-header-tabs .nav-link { + padding: 1.25rem 1rem; + font-weight: 500; +} + +.vertical-nav .nav .nav-link { + padding: 24px 16px; + text-align: center; + margin-bottom: 8px; +} +.vertical-nav .nav .nav-link .nav-icon { + font-size: 24px; +} + +body[data-layout-mode=dark] .nav-link { + color: #adb5bd; +} +body[data-layout-mode=dark] .nav-tabs { + border-color: #30373f; +} +body[data-layout-mode=dark] .nav-tabs .nav-link { + color: #ced4da; +} +body[data-layout-mode=dark] .nav-tabs .nav-link:focus, body[data-layout-mode=dark] .nav-tabs .nav-link:hover { + border-color: #30373f #30373f #30373f; +} +body[data-layout-mode=dark] .nav-tabs .nav-link.active { + background-color: #242a30; + border-color: #30373f #30373f #242a30; +} +body[data-layout-mode=dark] .nav-pills .nav-link { + color: #ced4da; +} +body[data-layout-mode=dark] .nav-pills .nav-link.active { + color: #fff; +} + +.table th { + font-weight: 700; +} +.table .table-light { + color: #495057; + border-color: #e9e9ef; + background-color: #f8f9fa; +} + +.table-bordered { + border: 1px solid #e9e9ef; +} + +.table-dark > :not(:last-child) > :last-child > * { + border-bottom-color: #43494e; +} + +.table-nowrap th, +.table-nowrap td { + white-space: nowrap; +} + +.table > :not(:first-child) { + border-top: 0; +} + +body[data-layout-mode=dark] .table { + border-color: #2f373f; + color: #858d98; +} +body[data-layout-mode=dark] .table-bordered { + border-color: #30373f; +} +body[data-layout-mode=dark] .table-dark > :not(:last-child) > :last-child > * { + border-color: #30373f; +} +body[data-layout-mode=dark] .table > :not(:last-child) > :last-child > * { + border-bottom-color: #30373f; +} +body[data-layout-mode=dark] .table-striped > tbody > tr:nth-of-type(odd) { + --bs-table-striped-bg: #363a38; + --bs-table-striped-color: $gray-dark-400; +} +body[data-layout-mode=dark] .table-hover > tbody > tr:hover { + --bs-table-hover-bg: #363a38; + --bs-table-hover-color: $gray-dark-400; +} +body[data-layout-mode=dark] .table .table-light { + --bs-table-accent-bg: #363a38; + color: #858d98; +} +body[data-layout-mode=dark] .table-dark { + background-color: #30373f; +} +body[data-layout-mode=dark] .table-dark > :not(caption) > * > * { + background-color: #30373f; +} + +.pagination-rounded .page-link { + border-radius: 30px !important; + margin: 0 3px !important; + border: none; + width: 32px; + height: 32px; + padding: 0; + text-align: center; + line-height: 32px; +} + +body[data-layout-mode=dark] .page-link { + background-color: #242a30; + border-color: #30373f; + color: #adb5bd; +} +body[data-layout-mode=dark] .page-link:hover { + background-color: #282f36; + color: #1c84ee; +} +body[data-layout-mode=dark] .page-item.disabled .page-link { + color: #858d98; + background-color: #242a30; + border-color: #30373f; +} +body[data-layout-mode=dark] .page-item.active .page-link { + color: #fff; + background-color: #1c84ee; + border-color: #1c84ee; +} + +.progress-sm { + height: 5px; +} + +.progress-md { + height: 8px; +} + +.progress-lg { + height: 12px; +} + +.progress-xl { + height: 16px; +} + +.custom-progess { + position: relative; +} +.custom-progess .progress-icon { + position: absolute; + top: -12px; +} +.custom-progess .progress-icon .avatar-title { + background: #fff; +} + +.animated-progess { + position: relative; +} +.animated-progess .progress-bar { + position: relative; + border-radius: 6px; + -webkit-animation: animate-positive 2s; + animation: animate-positive 2s; +} + +@-webkit-keyframes animate-positive { + 0% { + width: 0; + } +} + +@keyframes animate-positive { + 0% { + width: 0; + } +} +body[data-layout-mode=dark] .progress { + background-color: #30373f; +} + +.shadow-primary { + -webkit-box-shadow: 0 2px 8px 0 rgba(28, 132, 238, 0.3); + box-shadow: 0 2px 8px 0 rgba(28, 132, 238, 0.3); +} + +.shadow-secondary { + -webkit-box-shadow: 0 2px 8px 0 rgba(116, 120, 141, 0.3); + box-shadow: 0 2px 8px 0 rgba(116, 120, 141, 0.3); +} + +.shadow-success { + -webkit-box-shadow: 0 2px 8px 0 rgba(52, 195, 143, 0.3); + box-shadow: 0 2px 8px 0 rgba(52, 195, 143, 0.3); +} + +.shadow-info { + -webkit-box-shadow: 0 2px 8px 0 rgba(22, 218, 241, 0.3); + box-shadow: 0 2px 8px 0 rgba(22, 218, 241, 0.3); +} + +.shadow-warning { + -webkit-box-shadow: 0 2px 8px 0 rgba(255, 204, 90, 0.3); + box-shadow: 0 2px 8px 0 rgba(255, 204, 90, 0.3); +} + +.shadow-danger { + -webkit-box-shadow: 0 2px 8px 0 rgba(239, 103, 103, 0.3); + box-shadow: 0 2px 8px 0 rgba(239, 103, 103, 0.3); +} + +.shadow-pink { + -webkit-box-shadow: 0 2px 8px 0 rgba(232, 62, 140, 0.3); + box-shadow: 0 2px 8px 0 rgba(232, 62, 140, 0.3); +} + +.shadow-light { + -webkit-box-shadow: 0 2px 8px 0 rgba(246, 246, 246, 0.3); + box-shadow: 0 2px 8px 0 rgba(246, 246, 246, 0.3); +} + +.shadow-dark { + -webkit-box-shadow: 0 2px 8px 0 rgba(43, 57, 64, 0.3); + box-shadow: 0 2px 8px 0 rgba(43, 57, 64, 0.3); +}2, 62, 140, 0.3); + box-shadow: 0 2px 8px 0 rgba(232, 62, 140, 0.3); +} + +.shadow-light { + -webkit-box-shadow: 0 2px 8px 0 rgba(246, 246, 246, 0.3); + box-shadow: 0 2px 8px 0 rgba(246, 246, 246, 0.3); +} + +.shadow-dark { + -webkit-box-shadow: 0 2px 8px 0 rgba(43, 57, 64, 0.3); + box-shadow: 0 2px 8px 0 rgba(43, 57, 64, 0.3); +} \ No newline at end of file diff --git a/static/css/bootstrap.min.css b/static/css/bootstrap.min.css new file mode 100644 index 0000000..b8a0396 --- /dev/null +++ b/static/css/bootstrap.min.css @@ -0,0 +1,7 @@ +@charset "UTF-8";/*! + * Bootstrap v5.1.3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--bs-blue:#1c84ee;--bs-indigo:#564ab1;--bs-purple:#6f42c1;--bs-pink:#e83e8c;--bs-red:#ef6767;--bs-orange:#fa5f1c;--bs-yellow:#ffcc5a;--bs-green:#34c38f;--bs-teal:#050505;--bs-cyan:#16daf1;--bs-white:#fff;--bs-gray:#74788d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9e9ef;--bs-gray-300:#f6f6f6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#74788d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#2b3940;--bs-primary:#1c84ee;--bs-secondary:#74788d;--bs-success:#34c38f;--bs-info:#16daf1;--bs-warning:#ffcc5a;--bs-danger:#ef6767;--bs-pink:#e83e8c;--bs-light:#f6f6f6;--bs-dark:#2b3940;--bs-primary-rgb:28,132,238;--bs-secondary-rgb:116,120,141;--bs-success-rgb:52,195,143;--bs-info-rgb:22,218,241;--bs-warning-rgb:255,204,90;--bs-danger-rgb:239,103,103;--bs-pink-rgb:232,62,140;--bs-light-rgb:246,246,246;--bs-dark-rgb:43,57,64;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-color-rgb:73,80,87;--bs-body-bg-rgb:244,245,248;--bs-font-sans-serif:"Be Vietnam Pro",sans-serif;--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:0.8125rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#495057;--bs-body-bg:#f4f5f8}*,::after,::before{-webkit-box-sizing:border-box;box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.2}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:600;line-height:1.2}.h1,h1{font-size:calc(1.328125rem + .9375vw)}@media (min-width:1200px){.h1,h1{font-size:2.03125rem}}.h2,h2{font-size:calc(1.2875rem + .45vw)}@media (min-width:1200px){.h2,h2{font-size:1.625rem}}.h3,h3{font-size:calc(1.2671875rem + .20625vw)}@media (min-width:1200px){.h3,h3{font-size:1.421875rem}}.h4,h4{font-size:1.21875rem}.h5,h5{font-size:1.015625rem}.h6,h6{font-size:.8125rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:80%}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#1c84ee;text-decoration:none}a:hover{color:#166abe;text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:87.5%;color:#2b3940}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#2b3940;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#74788d;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]::-webkit-calendar-picker-indicator{display:none}[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]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-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.015625rem;font-weight:300}.display-1{font-size:calc(1.725rem + 5.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:6rem}}.display-2{font-size:calc(1.675rem + 5.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:5.5rem}}.display-3{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4.5rem}}.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:80%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.015625rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:80%;color:#74788d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#f4f5f8;border:1px solid #ced4da;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:80%;color:#74788d}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,12px);padding-left:var(--bs-gutter-x,12px);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}}.row{--bs-gutter-x:24px;--bs-gutter-y:0;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;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>*{-ms-flex-negative:0;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{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-auto>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-1>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-2>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-3>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-5>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-6>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-1{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-2{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-3{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-4{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-5{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-6{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-7{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-8{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-9{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-10{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-11{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-12{-webkit-box-flex:0;-ms-flex:0 0 auto;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{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-sm-auto>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-sm-1>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-sm-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-sm-1{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-sm-2{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-sm-3{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-sm-4{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-sm-5{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-sm-6{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-sm-7{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-sm-8{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-sm-9{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-sm-10{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-sm-11{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-sm-12{-webkit-box-flex:0;-ms-flex:0 0 auto;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{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-md-auto>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-md-1>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-md-2>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-md-3>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-md-5>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-md-6>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-md-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-md-1{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-md-2{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-md-3{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-md-4{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-md-5{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-md-6{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-md-7{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-md-8{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-md-9{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-md-10{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-md-11{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-md-12{-webkit-box-flex:0;-ms-flex:0 0 auto;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{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-lg-auto>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-lg-1>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-lg-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-lg-1{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-lg-2{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-lg-3{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-lg-4{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-lg-5{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-lg-6{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-lg-7{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-lg-8{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-lg-9{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-lg-10{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-lg-11{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-lg-12{-webkit-box-flex:0;-ms-flex:0 0 auto;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{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-xl-auto>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-xl-1>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-xl-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-xl-1{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-xl-2{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-xl-3{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-xl-4{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-xl-5{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-xl-6{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-xl-7{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-xl-8{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-xl-9{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-xl-10{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-xl-11{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-xl-12{-webkit-box-flex:0;-ms-flex:0 0 auto;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{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-xxl-auto>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-xxl-1>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-xxl-2>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-xxl-3>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-xxl-5>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-xxl-6>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-xxl-1{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:8.33333333%}.col-xxl-2{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:16.66666667%}.col-xxl-3{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-xxl-4{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333333%}.col-xxl-5{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:41.66666667%}.col-xxl-6{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-xxl-7{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:58.33333333%}.col-xxl-8{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:66.66666667%}.col-xxl-9{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-xxl-10{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:83.33333333%}.col-xxl-11{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:91.66666667%}.col-xxl-12{-webkit-box-flex:0;-ms-flex:0 0 auto;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-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#495057;--bs-table-striped-bg:#f8f9fa;--bs-table-active-color:#495057;--bs-table-active-bg:#f8f9fa;--bs-table-hover-color:#495057;--bs-table-hover-bg:#f8f9fa;width:100%;margin-bottom:1rem;color:#495057;vertical-align:top;border-color:#e9e9ef}.table>:not(caption)>*>*{padding:.75rem .75rem;background-color:var(--bs-table-bg);border-bottom-width:1px;-webkit-box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg);box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:first-child){border-top:2px solid #e9e9ef}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.3rem .3rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.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-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover>*{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#d2e6fc;--bs-table-striped-bg:#c8dbef;--bs-table-striped-color:#000;--bs-table-active-bg:#bdcfe3;--bs-table-active-color:#fff;--bs-table-hover-bg:#c2d5e9;--bs-table-hover-color:#fff;color:#000;border-color:#bdcfe3}.table-secondary{--bs-table-bg:#e3e4e8;--bs-table-striped-bg:#d8d9dc;--bs-table-striped-color:#000;--bs-table-active-bg:#cccdd1;--bs-table-active-color:#fff;--bs-table-hover-bg:#d2d3d7;--bs-table-hover-color:#fff;color:#000;border-color:#cccdd1}.table-success{--bs-table-bg:#d6f3e9;--bs-table-striped-bg:#cbe7dd;--bs-table-striped-color:#000;--bs-table-active-bg:#c1dbd2;--bs-table-active-color:#fff;--bs-table-hover-bg:#c6e1d8;--bs-table-hover-color:#000;color:#000;border-color:#c1dbd2}.table-info{--bs-table-bg:#d0f8fc;--bs-table-striped-bg:#c6ecef;--bs-table-striped-color:#000;--bs-table-active-bg:#bbdfe3;--bs-table-active-color:#000;--bs-table-hover-bg:#c0e5e9;--bs-table-hover-color:#000;color:#000;border-color:#bbdfe3}.table-warning{--bs-table-bg:#fff5de;--bs-table-striped-bg:#f2e9d3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6ddc8;--bs-table-active-color:#000;--bs-table-hover-bg:#ece3cd;--bs-table-hover-color:#000;color:#000;border-color:#e6ddc8}.table-danger{--bs-table-bg:#fce1e1;--bs-table-striped-bg:#efd6d6;--bs-table-striped-color:#000;--bs-table-active-bg:#e3cbcb;--bs-table-active-color:#fff;--bs-table-hover-bg:#e9d0d0;--bs-table-hover-color:#fff;color:#000;border-color:#e3cbcb}.table-light{--bs-table-bg:#f6f6f6;--bs-table-striped-bg:#eaeaea;--bs-table-striped-color:#000;--bs-table-active-bg:#dddddd;--bs-table-active-color:#000;--bs-table-hover-bg:#e4e4e4;--bs-table-hover-color:#000;color:#000;border-color:#ddd}.table-dark{--bs-table-bg:#2b3940;--bs-table-striped-bg:#36434a;--bs-table-striped-color:#fff;--bs-table-active-bg:#404d53;--bs-table-active-color:#fff;--bs-table-hover-bg:#3b484e;--bs-table-hover-color:#fff;color:#fff;border-color:#404d53}.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(.47rem + 1px);padding-bottom:calc(.47rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.015625rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.7109375rem}.form-text{margin-top:.25rem;font-size:80%;color:#74788d}.form-control{display:block;width:100%;padding:.47rem .75rem;font-size:.8125rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#495057;background-color:#fff;border-color:#b9bfc4;outline:0;-webkit-box-shadow:none;box-shadow:none}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-webkit-input-placeholder{color:#adb5bd;opacity:1}.form-control::-moz-placeholder{color:#adb5bd;opacity:1}.form-control:-ms-input-placeholder{color:#adb5bd;opacity:1}.form-control::-ms-input-placeholder{color:#adb5bd;opacity:1}.form-control::placeholder{color:#adb5bd;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9e9ef;opacity:1}.form-control::file-selector-button{padding:.47rem .75rem;margin:-.47rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#495057;background-color:#e9e9ef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-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;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dddde3}.form-control::-webkit-file-upload-button{padding:.47rem .75rem;margin:-.47rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#495057;background-color:#e9e9ef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-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;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dddde3}.form-control-plaintext{display:block;width:100%;padding:.47rem 0;margin-bottom:0;line-height:1.5;color:#495057;background-color:transparent;border:solid transparent;border-width:1px 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 + 2px);padding:.25rem .5rem;font-size:.7109375rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.015625rem;border-radius:.4rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .94rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.47rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.47rem 1.75rem .47rem .75rem;-moz-padding-start:calc(.75rem - 3px);font-size:.8125rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{-webkit-transition:none;transition:none}}.form-select:focus{border-color:#b9bfc4;outline:0;-webkit-box-shadow:0 0 0 .15rem rgba(28,132,238,.25);box-shadow:0 0 0 .15rem rgba(28,132,238,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{color:#74788d;background-color:#e9e9ef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.7109375rem;border-radius:.2rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.015625rem;border-radius:.4rem}.form-check{display:block;min-height:1.21875rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;-webkit-transition:background-color .15s ease-in-out,background-position .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,background-position .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,background-position .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,background-position .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-check-input{-webkit-transition:none;transition:none}}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{-webkit-filter:brightness(90%);filter:brightness(90%)}.form-check-input:focus{border-color:#b9bfc4;outline:0;-webkit-box-shadow:0 0 0 .15rem rgba(28,132,238,.25);box-shadow:0 0 0 .15rem rgba(28,132,238,.25)}.form-check-input:checked{background-color:#1c84ee;border-color:#1c84ee}.form-check-input:checked[type=checkbox]{background-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 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-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:#1c84ee;border-color:#1c84ee;background-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;-webkit-filter:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image: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");background-position:left center;border-radius:2em;-webkit-transition:background-position .15s ease-in-out;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{-webkit-transition:none;transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23b9bfc4'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image: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-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;-webkit-filter:none;filter:none;opacity:.65}.form-range{width:100%;height:1.3rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 1px #f4f5f8,none;box-shadow:0 0 0 1px #f4f5f8,none}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #f4f5f8,none}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#1c84ee;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-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;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#bbdafa}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#f6f6f6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#1c84ee;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;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#bbdafa}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#f6f6f6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transition:opacity .1s ease-in-out,-webkit-transform .1s ease-in-out;transition:opacity .1s ease-in-out,-webkit-transform .1s ease-in-out;transition:opacity .1s ease-in-out,transform .1s ease-in-out;transition:opacity .1s ease-in-out,transform .1s ease-in-out,-webkit-transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{-webkit-transition:none;transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::-webkit-input-placeholder{color:transparent}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control:-ms-input-placeholder{color:transparent}.form-floating>.form-control::-ms-input-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-ms-input-placeholder){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.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{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-ms-input-placeholder)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;-webkit-transform:scale(.85) translateY(-.5rem) translateX(.15rem);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;-webkit-transform:scale(.85) translateY(-.5rem) translateX(.15rem);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.47rem .75rem;font-size:.8125rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9e9ef;border:1px solid #ced4da;border-radius:.25rem}.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.015625rem;border-radius:.4rem}.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:.7109375rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:2.5rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){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>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu){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:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#34c38f}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.4rem .7rem;margin-top:.1rem;font-size:.7109375rem;line-height:1.5;color:#fff;background-color:rgba(52,195,143,.9);border-radius:.25rem}.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:#34c38f;padding-right:calc(1.5em + .94rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2334c38f' d='M2.3 6.73L.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 + .235rem) center;background-size:calc(.75em + .47rem) calc(.75em + .47rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#34c38f;-webkit-box-shadow:0 0 0 .15rem rgba(52,195,143,.25);box-shadow:0 0 0 .15rem rgba(52,195,143,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .94rem);background-position:top calc(.375em + .235rem) right calc(.375em + .235rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#34c38f}.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"]{padding-right:calc(.75em + 3.205rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2334c38f' d='M2.3 6.73L.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-position:right .75rem center,center right 2.5rem;background-size:16px 12px,calc(.75em + .47rem) calc(.75em + .47rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#34c38f;-webkit-box-shadow:0 0 0 .15rem rgba(52,195,143,.25);box-shadow:0 0 0 .15rem rgba(52,195,143,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#34c38f}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#34c38f}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{-webkit-box-shadow:0 0 0 .15rem rgba(52,195,143,.25);box-shadow:0 0 0 .15rem rgba(52,195,143,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#34c38f}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#ef6767}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.4rem .7rem;margin-top:.1rem;font-size:.7109375rem;line-height:1.5;color:#fff;background-color:rgba(239,103,103,.9);border-radius:.25rem}.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:#ef6767;padding-right:calc(1.5em + .94rem);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='%23ef6767'%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='%23ef6767' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .235rem) center;background-size:calc(.75em + .47rem) calc(.75em + .47rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#ef6767;-webkit-box-shadow:0 0 0 .15rem rgba(239,103,103,.25);box-shadow:0 0 0 .15rem rgba(239,103,103,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .94rem);background-position:top calc(.375em + .235rem) right calc(.375em + .235rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#ef6767}.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"]{padding-right:calc(.75em + 3.205rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),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='%23ef6767'%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='%23ef6767' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.5rem;background-size:16px 12px,calc(.75em + .47rem) calc(.75em + .47rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#ef6767;-webkit-box-shadow:0 0 0 .15rem rgba(239,103,103,.25);box-shadow:0 0 0 .15rem rgba(239,103,103,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#ef6767}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#ef6767}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{-webkit-box-shadow:0 0 0 .15rem rgba(239,103,103,.25);box-shadow:0 0 0 .15rem rgba(239,103,103,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#ef6767}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#495057;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.47rem .75rem;font-size:.8125rem;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-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;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#495057;text-decoration:none}.btn-check:focus+.btn,.btn:focus{outline:0;-webkit-box-shadow:0 0 0 .15rem rgba(28,132,238,.25);box-shadow:0 0 0 .15rem rgba(28,132,238,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#1c84ee;border-color:#1c84ee}.btn-primary:hover{color:#fff;background-color:#1870ca;border-color:#166abe}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#1870ca;border-color:#166abe;-webkit-box-shadow:0 0 0 .15rem rgba(62,150,241,.5);box-shadow:0 0 0 .15rem rgba(62,150,241,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#166abe;border-color:#1563b3}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .15rem rgba(62,150,241,.5);box-shadow:0 0 0 .15rem rgba(62,150,241,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#1c84ee;border-color:#1c84ee}.btn-secondary{color:#fff;background-color:#74788d;border-color:#74788d}.btn-secondary:hover{color:#fff;background-color:#636678;border-color:#5d6071}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#636678;border-color:#5d6071;-webkit-box-shadow:0 0 0 .15rem rgba(137,140,158,.5);box-shadow:0 0 0 .15rem rgba(137,140,158,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#5d6071;border-color:#575a6a}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .15rem rgba(137,140,158,.5);box-shadow:0 0 0 .15rem rgba(137,140,158,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#74788d;border-color:#74788d}.btn-success{color:#fff;background-color:#34c38f;border-color:#34c38f}.btn-success:hover{color:#fff;background-color:#2ca67a;border-color:#2a9c72}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#2ca67a;border-color:#2a9c72;-webkit-box-shadow:0 0 0 .15rem rgba(82,204,160,.5);box-shadow:0 0 0 .15rem rgba(82,204,160,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#2a9c72;border-color:#27926b}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .15rem rgba(82,204,160,.5);box-shadow:0 0 0 .15rem rgba(82,204,160,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#34c38f;border-color:#34c38f}.btn-info{color:#fff;background-color:#16daf1;border-color:#16daf1}.btn-info:hover{color:#fff;background-color:#13b9cd;border-color:#12aec1}.btn-check:focus+.btn-info,.btn-info:focus{color:#fff;background-color:#13b9cd;border-color:#12aec1;-webkit-box-shadow:0 0 0 .15rem rgba(57,224,243,.5);box-shadow:0 0 0 .15rem rgba(57,224,243,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#12aec1;border-color:#11a4b5}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .15rem rgba(57,224,243,.5);box-shadow:0 0 0 .15rem rgba(57,224,243,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#16daf1;border-color:#16daf1}.btn-warning{color:#fff;background-color:#ffcc5a;border-color:#ffcc5a}.btn-warning:hover{color:#fff;background-color:#d9ad4d;border-color:#cca348}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#fff;background-color:#d9ad4d;border-color:#cca348;-webkit-box-shadow:0 0 0 .15rem rgba(255,212,115,.5);box-shadow:0 0 0 .15rem rgba(255,212,115,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#cca348;border-color:#bf9944}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .15rem rgba(255,212,115,.5);box-shadow:0 0 0 .15rem rgba(255,212,115,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#fff;background-color:#ffcc5a;border-color:#ffcc5a}.btn-danger{color:#fff;background-color:#ef6767;border-color:#ef6767}.btn-danger:hover{color:#fff;background-color:#cb5858;border-color:#bf5252}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#cb5858;border-color:#bf5252;-webkit-box-shadow:0 0 0 .15rem rgba(241,126,126,.5);box-shadow:0 0 0 .15rem rgba(241,126,126,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bf5252;border-color:#b34d4d}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .15rem rgba(241,126,126,.5);box-shadow:0 0 0 .15rem rgba(241,126,126,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#ef6767;border-color:#ef6767}.btn-pink{color:#fff;background-color:#e83e8c;border-color:#e83e8c}.btn-pink:hover{color:#fff;background-color:#c53577;border-color:#ba3270}.btn-check:focus+.btn-pink,.btn-pink:focus{color:#fff;background-color:#c53577;border-color:#ba3270;-webkit-box-shadow:0 0 0 .15rem rgba(235,91,157,.5);box-shadow:0 0 0 .15rem rgba(235,91,157,.5)}.btn-check:active+.btn-pink,.btn-check:checked+.btn-pink,.btn-pink.active,.btn-pink:active,.show>.btn-pink.dropdown-toggle{color:#fff;background-color:#ba3270;border-color:#ae2f69}.btn-check:active+.btn-pink:focus,.btn-check:checked+.btn-pink:focus,.btn-pink.active:focus,.btn-pink:active:focus,.show>.btn-pink.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .15rem rgba(235,91,157,.5);box-shadow:0 0 0 .15rem rgba(235,91,157,.5)}.btn-pink.disabled,.btn-pink:disabled{color:#fff;background-color:#e83e8c;border-color:#e83e8c}.btn-light{color:#000;background-color:#f6f6f6;border-color:#f6f6f6}.btn-light:hover{color:#000;background-color:#f7f7f7;border-color:#f7f7f7}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f7f7f7;border-color:#f7f7f7;-webkit-box-shadow:0 0 0 .15rem rgba(209,209,209,.5);box-shadow:0 0 0 .15rem rgba(209,209,209,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f8f8f8;border-color:#f7f7f7}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .15rem rgba(209,209,209,.5);box-shadow:0 0 0 .15rem rgba(209,209,209,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f6f6f6;border-color:#f6f6f6}.btn-dark{color:#fff;background-color:#2b3940;border-color:#2b3940}.btn-dark:hover{color:#fff;background-color:#253036;border-color:#222e33}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#253036;border-color:#222e33;-webkit-box-shadow:0 0 0 .15rem rgba(75,87,93,.5);box-shadow:0 0 0 .15rem rgba(75,87,93,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#222e33;border-color:#202b30}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 .15rem rgba(75,87,93,.5);box-shadow:0 0 0 .15rem rgba(75,87,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#2b3940;border-color:#2b3940}.btn-outline-primary{color:#1c84ee;border-color:#1c84ee}.btn-outline-primary:hover{color:#fff;background-color:#1c84ee;border-color:#1c84ee}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{-webkit-box-shadow:0 0 0 .15rem rgba(28,132,238,.5);box-shadow:0 0 0 .15rem rgba(28,132,238,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#1c84ee;border-color:#1c84ee}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{-webkit-box-shadow:0 0 0 .15rem rgba(28,132,238,.5);box-shadow:0 0 0 .15rem rgba(28,132,238,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#1c84ee;background-color:transparent}.btn-outline-secondary{color:#74788d;border-color:#74788d}.btn-outline-secondary:hover{color:#fff;background-color:#74788d;border-color:#74788d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{-webkit-box-shadow:0 0 0 .15rem rgba(116,120,141,.5);box-shadow:0 0 0 .15rem rgba(116,120,141,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#74788d;border-color:#74788d}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{-webkit-box-shadow:0 0 0 .15rem rgba(116,120,141,.5);box-shadow:0 0 0 .15rem rgba(116,120,141,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#74788d;background-color:transparent}.btn-outline-success{color:#34c38f;border-color:#34c38f}.btn-outline-success:hover{color:#fff;background-color:#34c38f;border-color:#34c38f}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{-webkit-box-shadow:0 0 0 .15rem rgba(52,195,143,.5);box-shadow:0 0 0 .15rem rgba(52,195,143,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#fff;background-color:#34c38f;border-color:#34c38f}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{-webkit-box-shadow:0 0 0 .15rem rgba(52,195,143,.5);box-shadow:0 0 0 .15rem rgba(52,195,143,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#34c38f;background-color:transparent}.btn-outline-info{color:#16daf1;border-color:#16daf1}.btn-outline-info:hover{color:#fff;background-color:#16daf1;border-color:#16daf1}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{-webkit-box-shadow:0 0 0 .15rem rgba(22,218,241,.5);box-shadow:0 0 0 .15rem rgba(22,218,241,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#fff;background-color:#16daf1;border-color:#16daf1}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{-webkit-box-shadow:0 0 0 .15rem rgba(22,218,241,.5);box-shadow:0 0 0 .15rem rgba(22,218,241,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#16daf1;background-color:transparent}.btn-outline-warning{color:#ffcc5a;border-color:#ffcc5a}.btn-outline-warning:hover{color:#fff;background-color:#ffcc5a;border-color:#ffcc5a}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{-webkit-box-shadow:0 0 0 .15rem rgba(255,204,90,.5);box-shadow:0 0 0 .15rem rgba(255,204,90,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#fff;background-color:#ffcc5a;border-color:#ffcc5a}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{-webkit-box-shadow:0 0 0 .15rem rgba(255,204,90,.5);box-shadow:0 0 0 .15rem rgba(255,204,90,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffcc5a;background-color:transparent}.btn-outline-danger{color:#ef6767;border-color:#ef6767}.btn-outline-danger:hover{color:#fff;background-color:#ef6767;border-color:#ef6767}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{-webkit-box-shadow:0 0 0 .15rem rgba(239,103,103,.5);box-shadow:0 0 0 .15rem rgba(239,103,103,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#ef6767;border-color:#ef6767}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{-webkit-box-shadow:0 0 0 .15rem rgba(239,103,103,.5);box-shadow:0 0 0 .15rem rgba(239,103,103,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#ef6767;background-color:transparent}.btn-outline-pink{color:#e83e8c;border-color:#e83e8c}.btn-outline-pink:hover{color:#fff;background-color:#e83e8c;border-color:#e83e8c}.btn-check:focus+.btn-outline-pink,.btn-outline-pink:focus{-webkit-box-shadow:0 0 0 .15rem rgba(232,62,140,.5);box-shadow:0 0 0 .15rem rgba(232,62,140,.5)}.btn-check:active+.btn-outline-pink,.btn-check:checked+.btn-outline-pink,.btn-outline-pink.active,.btn-outline-pink.dropdown-toggle.show,.btn-outline-pink:active{color:#fff;background-color:#e83e8c;border-color:#e83e8c}.btn-check:active+.btn-outline-pink:focus,.btn-check:checked+.btn-outline-pink:focus,.btn-outline-pink.active:focus,.btn-outline-pink.dropdown-toggle.show:focus,.btn-outline-pink:active:focus{-webkit-box-shadow:0 0 0 .15rem rgba(232,62,140,.5);box-shadow:0 0 0 .15rem rgba(232,62,140,.5)}.btn-outline-pink.disabled,.btn-outline-pink:disabled{color:#e83e8c;background-color:transparent}.btn-outline-light{color:#f6f6f6;border-color:#f6f6f6}.btn-outline-light:hover{color:#000;background-color:#f6f6f6;border-color:#f6f6f6}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{-webkit-box-shadow:0 0 0 .15rem rgba(246,246,246,.5);box-shadow:0 0 0 .15rem rgba(246,246,246,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#f6f6f6;border-color:#f6f6f6}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{-webkit-box-shadow:0 0 0 .15rem rgba(246,246,246,.5);box-shadow:0 0 0 .15rem rgba(246,246,246,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f6f6f6;background-color:transparent}.btn-outline-dark{color:#2b3940;border-color:#2b3940}.btn-outline-dark:hover{color:#fff;background-color:#2b3940;border-color:#2b3940}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{-webkit-box-shadow:0 0 0 .15rem rgba(43,57,64,.5);box-shadow:0 0 0 .15rem rgba(43,57,64,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#2b3940;border-color:#2b3940}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{-webkit-box-shadow:0 0 0 .15rem rgba(43,57,64,.5);box-shadow:0 0 0 .15rem rgba(43,57,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#2b3940;background-color:transparent}.btn-link{font-weight:400;color:#1c84ee;text-decoration:none}.btn-link:hover{color:#166abe;text-decoration:underline}.btn-link:focus{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#74788d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.015625rem;border-radius:.4rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.7109375rem;border-radius:.2rem}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;-webkit-transition:width .35s ease;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{-webkit-transition:none;transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:.8125rem;color:#495057;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #e9e9ef;border-radius:.25rem}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.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:.125rem}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9e9ef}.dropdown-item{display:block;width:100%;padding:.35rem 1rem;clear:both;font-weight:400;color:#495057;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#343a40;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#2b3940;text-decoration:none;background-color:#f8f9fa}.dropdown-item.disabled,.dropdown-item:disabled{color:#74788d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.7109375rem;color:#74788d;white-space:nowrap}.dropdown-item-text{display:block;padding:.35rem 1rem;color:#495057}.dropdown-menu-dark{color:#f6f6f6;background-color:#343a40;border-color:#e9e9ef}.dropdown-menu-dark .dropdown-item{color:#f6f6f6}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#2b3940;background-color:#f8f9fa}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:#e9e9ef}.dropdown-menu-dark .dropdown-item-text{color:#f6f6f6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;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:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.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{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:center;-ms-flex-pack:center;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:-1px}.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{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#495057;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out;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{-webkit-transition:none;transition:none}}.nav-link:focus,.nav-link:hover{color:#166abe;text-decoration:none}.nav-link.disabled{color:#74788d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #ced4da}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9e9ef #e9e9ef #ced4da;isolation:isolate}.nav-tabs .nav-link.disabled{color:#74788d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#ced4da #ced4da #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#1c84ee}.nav-fill .nav-item,.nav-fill>.nav-link{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;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{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:inherit;flex-wrap:inherit;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{padding-top:.34765625rem;padding-bottom:.34765625rem;margin-right:1rem;font-size:1.015625rem;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.015625rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;-webkit-transition:-webkit-box-shadow .15s ease-in-out;transition:-webkit-box-shadow .15s ease-in-out;transition:box-shadow .15s ease-in-out;transition:box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{-webkit-transition:none;transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;-webkit-box-shadow:0 0 0 .15rem;box-shadow:0 0 0 .15rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;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{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;-webkit-transition:none;transition:none;-webkit-transform:none;transform:none}.navbar-expand-sm .offcanvas-bottom,.navbar-expand-sm .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;-webkit-transition:none;transition:none;-webkit-transform:none;transform:none}.navbar-expand-md .offcanvas-bottom,.navbar-expand-md .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;-webkit-transition:none;transition:none;-webkit-transform:none;transform:none}.navbar-expand-lg .offcanvas-bottom,.navbar-expand-lg .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;-webkit-transition:none;transition:none;-webkit-transform:none;transform:none}.navbar-expand-xl .offcanvas-bottom,.navbar-expand-xl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;-webkit-transition:none;transition:none;-webkit-transform:none;transform:none}.navbar-expand-xxl .offcanvas-bottom,.navbar-expand-xxl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;-webkit-transition:none;transition:none;-webkit-transform:none;transform:none}.navbar-expand .offcanvas-bottom,.navbar-expand .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid #e9e9ef;border-radius:.25rem}.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:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem 1.25rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:1.25rem 1.25rem;margin-bottom:0;background-color:#fff;border-bottom:1px solid #e9e9ef}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:1.25rem 1.25rem;background-color:#fff;border-top:1px solid #e9e9ef}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-1.25rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:12px}@media (min-width:576px){.card-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;-ms-flex:1 0 0%;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-button{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;padding:1rem 1.25rem;font-size:.8125rem;color:#495057;text-align:left;background-color:transparent;border:0;border-radius:0;overflow-anchor:none;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,border-radius .15s ease,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,border-radius .15s ease,-webkit-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,border-radius .15s ease;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease,-webkit-box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button{-webkit-transition:none;transition:none}}.accordion-button:not(.collapsed){color:#1977d6;background-color:#e8f3fd;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.125);box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%231977d6'%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");-webkit-transform:rotate(180deg);transform:rotate(180deg)}.accordion-button::after{-ms-flex-negative:0;flex-shrink:0;width:16px;height:16px;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23495057'%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");background-repeat:no-repeat;background-size:16px;-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{-webkit-transition:none;transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#b9bfc4;outline:0;-webkit-box-shadow:none;box-shadow:none}.accordion-header{margin-bottom:0}.accordion-item{background-color:transparent;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.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{border-radius:0}.breadcrumb{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#74788d;content:var(--bs-breadcrumb-divider, "\f0142")}.breadcrumb-item.active{color:#74788d}.pagination{display:-webkit-box;display:-ms-flexbox;display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#74788d;background-color:#fff;border:1px solid #ced4da;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-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;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{-webkit-transition:none;transition:none}}.page-link:hover{z-index:2;color:#166abe;text-decoration:none;background-color:#e9e9ef;border-color:#ced4da}.page-link:focus{z-index:3;color:#166abe;background-color:#e9e9ef;outline:0;-webkit-box-shadow:0 0 0 .15rem rgba(28,132,238,.25);box-shadow:0 0 0 .15rem rgba(28,132,238,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#1c84ee;border-color:#1c84ee}.page-item.disabled .page-link{color:#ced4da;pointer-events:none;background-color:#fff;border-color:#ced4da}.page-link{padding:.5rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.015625rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.4rem;border-bottom-left-radius:.4rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.4rem;border-bottom-right-radius:.4rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.7109375rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:500;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1.5px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:500}.alert-dismissible{padding-right:3.75rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:.9375rem 1.25rem}.alert-primary{color:#145ca7;background-color:#bbdafa;border-color:#a4cef8}.alert-primary .alert-link{color:#104a86}.alert-secondary{color:#515463;background-color:#d5d7dd;border-color:#c7c9d1}.alert-secondary .alert-link{color:#41434f}.alert-success{color:#248964;background-color:#c2eddd;border-color:#aee7d2}.alert-success .alert-link{color:#1d6e50}.alert-info{color:#0f99a9;background-color:#b9f4fb;border-color:#a2f0f9}.alert-info .alert-link{color:#0c7a87}.alert-warning{color:#b38f3f;background-color:#fff0ce;border-color:#ffebbd}.alert-warning .alert-link{color:#8f7232}.alert-danger{color:#a74848;background-color:#fad1d1;border-color:#f9c2c2}.alert-danger .alert-link{color:#863a3a}.alert-pink{color:#a22b62;background-color:#f8c5dd;border-color:#f6b2d1}.alert-pink .alert-link{color:#82224e}.alert-light{color:#acacac;background-color:#fcfcfc;border-color:#fbfbfb}.alert-light .alert-link{color:#8a8a8a}.alert-dark{color:#1e282d;background-color:#bfc4c6;border-color:#aab0b3}.alert-dark .alert-link{color:#182024}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:.625rem}}@keyframes progress-bar-stripes{0%{background-position-x:.625rem}}.progress{display:-webkit-box;display:-ms-flexbox;display:flex;height:.625rem;overflow:hidden;font-size:.609375rem;background-color:#f6f6f6;border-radius:.25rem}.progress-bar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#1c84ee;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;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:.625rem .625rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#495057;background-color:#e9e9ef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;color:#2b3940;background-color:#fff;border:1px solid #e9e9ef}.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:#74788d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#1c84ee;border-color:#1c84ee}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;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:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;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:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;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:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;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:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;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:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;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:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#114f8f;background-color:#d2e6fc}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#114f8f;background-color:#bdcfe3}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#114f8f;border-color:#114f8f}.list-group-item-secondary{color:#464855;background-color:#e3e4e8}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#464855;background-color:#cccdd1}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#464855;border-color:#464855}.list-group-item-success{color:#1f7556;background-color:#d6f3e9}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#1f7556;background-color:#c1dbd2}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#1f7556;border-color:#1f7556}.list-group-item-info{color:#0d8391;background-color:#d0f8fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0d8391;background-color:#bbdfe3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0d8391;border-color:#0d8391}.list-group-item-warning{color:#997a36;background-color:#fff5de}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#997a36;background-color:#e6ddc8}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#997a36;border-color:#997a36}.list-group-item-danger{color:#8f3e3e;background-color:#fce1e1}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#8f3e3e;background-color:#e3cbcb}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#8f3e3e;border-color:#8f3e3e}.list-group-item-pink{color:#8b2554;background-color:#fad8e8}.list-group-item-pink.list-group-item-action:focus,.list-group-item-pink.list-group-item-action:hover{color:#8b2554;background-color:#e1c2d1}.list-group-item-pink.list-group-item-action.active{color:#fff;background-color:#8b2554;border-color:#8b2554}.list-group-item-light{color:#949494;background-color:#fdfdfd}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#949494;background-color:#e4e4e4}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#949494;border-color:#949494}.list-group-item-dark{color:#1a2226;background-color:#d5d7d9}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1a2226;background-color:#c0c2c3}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1a2226;border-color:#1a2226}.btn-close{-webkit-box-sizing:content-box;box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;-webkit-box-shadow:none;box-shadow:none;opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.25}.btn-close-white{-webkit-filter:invert(1) grayscale(100%) brightness(200%);filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);-webkit-box-shadow:0 .25rem .75rem rgba(18,38,63,.08);box-shadow:0 .25rem .75rem rgba(18,38,63,.08);border-radius:.25rem}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:12px}.toast-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#74788d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid #f6f6f6;border-radius:.25rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #e9e9ef;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-negative:0;flex-shrink:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #e9e9ef;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.modal-footer>*{margin:.25rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-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-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@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-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@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-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@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-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@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-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@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-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;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;word-spacing:normal;white-space:normal;line-break:auto;font-size:.7109375rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.4rem .7rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;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;word-spacing:normal;white-space:normal;line-break:auto;font-size:.7109375rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid #e9e9ef;border-radius:.4rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:#e9e9ef}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:#e9e9ef}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:#e9e9ef}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.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:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f5f5f5}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:#e9e9ef}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:.8125rem;background-color:#f5f5f5;border-bottom:1px solid #e9e9ef;border-top-left-radius:calc(.4rem - 1px);border-top-right-radius:calc(.4rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#495057}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;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;-webkit-transition:-webkit-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;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;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;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:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{-webkit-box-sizing:content-box;box-sizing:content-box;-webkit-box-flex:0;-ms-flex:0 1 auto;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;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{-webkit-transition:none;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{-webkit-filter:invert(1) grayscale(100);filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{-webkit-transition:none;transition:none}}.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:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid #f6f6f6;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid #f6f6f6;-webkit-transform:translateX(100%);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid #f6f6f6;-webkit-transform:translateY(-100%);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid #f6f6f6;-webkit-transform:translateY(100%);transform:translateY(100%)}.offcanvas.show{-webkit-transform:none;transform:none}.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{-webkit-animation:placeholder-glow 2s ease-in-out infinite;animation:placeholder-glow 2s ease-in-out infinite}@-webkit-keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-animation:placeholder-wave 2s linear infinite;animation:placeholder-wave 2s linear infinite}@-webkit-keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0;mask-position:-200% 0}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0;mask-position:-200% 0}}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#1c84ee}.link-primary:focus,.link-primary:hover{color:#166abe}.link-secondary{color:#74788d}.link-secondary:focus,.link-secondary:hover{color:#5d6071}.link-success{color:#34c38f}.link-success:focus,.link-success:hover{color:#2a9c72}.link-info{color:#16daf1}.link-info:focus,.link-info:hover{color:#12aec1}.link-warning{color:#ffcc5a}.link-warning:focus,.link-warning:hover{color:#cca348}.link-danger{color:#ef6767}.link-danger:focus,.link-danger:hover{color:#bf5252}.link-pink{color:#e83e8c}.link-pink:focus,.link-pink:hover{color:#ba3270}.link-light{color:#f6f6f6}.link-light:focus,.link-light:hover{color:#f8f8f8}.link-dark{color:#2b3940}.link-dark:focus,.link-dark:hover{color:#222e33}.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:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}}.hstack{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-item-align:stretch;align-self:stretch}.vstack{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-item-align:stretch;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;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}.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;-ms-flex-item-align:stretch;align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.2}.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}.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}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}.d-none{display:none!important}.shadow{-webkit-box-shadow:0 .25rem .75rem rgba(18,38,63,.08)!important;box-shadow:0 .25rem .75rem rgba(18,38,63,.08)!important}.shadow-sm{-webkit-box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important;box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{-webkit-box-shadow:0 .5rem 1rem rgba(0,0,0,.1)!important;box-shadow:0 .5rem 1rem rgba(0,0,0,.1)!important}.shadow-none{-webkit-box-shadow:none!important;box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{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{-webkit-transform:translate(-50%,-50%)!important;transform:translate(-50%,-50%)!important}.translate-middle-x{-webkit-transform:translateX(-50%)!important;transform:translateX(-50%)!important}.translate-middle-y{-webkit-transform:translateY(-50%)!important;transform:translateY(-50%)!important}.border{border:1px solid #e9e9ef!important}.border-0{border:0!important}.border-top{border-top:1px solid #e9e9ef!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #e9e9ef!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #e9e9ef!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #e9e9ef!important}.border-start-0{border-left:0!important}.border-primary{border-color:#1c84ee!important}.border-secondary{border-color:#74788d!important}.border-success{border-color:#34c38f!important}.border-info{border-color:#16daf1!important}.border-warning{border-color:#ffcc5a!important}.border-danger{border-color:#ef6767!important}.border-pink{border-color:#e83e8c!important}.border-light{border-color:#f6f6f6!important}.border-dark{border-color:#2b3940!important}.border-white{border-color:#fff!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}.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{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!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}.justify-content-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-evenly{-webkit-box-pack:space-evenly!important;-ms-flex-pack:space-evenly!important;justify-content:space-evenly!important}.align-items-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}.order-first{-webkit-box-ordinal-group:0!important;-ms-flex-order:-1!important;order:-1!important}.order-0{-webkit-box-ordinal-group:1!important;-ms-flex-order:0!important;order:0!important}.order-1{-webkit-box-ordinal-group:2!important;-ms-flex-order:1!important;order:1!important}.order-2{-webkit-box-ordinal-group:3!important;-ms-flex-order:2!important;order:2!important}.order-3{-webkit-box-ordinal-group:4!important;-ms-flex-order:3!important;order:3!important}.order-4{-webkit-box-ordinal-group:5!important;-ms-flex-order:4!important;order:4!important}.order-5{-webkit-box-ordinal-group:6!important;-ms-flex-order:5!important;order:5!important}.order-last{-webkit-box-ordinal-group:7!important;-ms-flex-order:6!important;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}.m-n1{margin:-.25rem!important}.m-n2{margin:-.5rem!important}.m-n3{margin:-1rem!important}.m-n4{margin:-1.5rem!important}.m-n5{margin:-3rem!important}.mx-n1{margin-right:-.25rem!important;margin-left:-.25rem!important}.mx-n2{margin-right:-.5rem!important;margin-left:-.5rem!important}.mx-n3{margin-right:-1rem!important;margin-left:-1rem!important}.mx-n4{margin-right:-1.5rem!important;margin-left:-1.5rem!important}.mx-n5{margin-right:-3rem!important;margin-left:-3rem!important}.my-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-n1{margin-top:-.25rem!important}.mt-n2{margin-top:-.5rem!important}.mt-n3{margin-top:-1rem!important}.mt-n4{margin-top:-1.5rem!important}.mt-n5{margin-top:-3rem!important}.me-n1{margin-right:-.25rem!important}.me-n2{margin-right:-.5rem!important}.me-n3{margin-right:-1rem!important}.me-n4{margin-right:-1.5rem!important}.me-n5{margin-right:-3rem!important}.mb-n1{margin-bottom:-.25rem!important}.mb-n2{margin-bottom:-.5rem!important}.mb-n3{margin-bottom:-1rem!important}.mb-n4{margin-bottom:-1.5rem!important}.mb-n5{margin-bottom:-3rem!important}.ms-n1{margin-left:-.25rem!important}.ms-n2{margin-left:-.5rem!important}.ms-n3{margin-left:-1rem!important}.ms-n4{margin-left:-1.5rem!important}.ms-n5{margin-left:-3rem!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}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.328125rem + .9375vw)!important}.fs-2{font-size:calc(1.2875rem + .45vw)!important}.fs-3{font-size:calc(1.2671875rem + .20625vw)!important}.fs-4{font-size:1.21875rem!important}.fs-5{font-size:1.015625rem!important}.fs-6{font-size:.8125rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!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-pink{--bs-text-opacity:1;color:rgba(var(--bs-pink-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:#74788d!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-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}.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-pink{--bs-bg-opacity:1;background-color:rgba(var(--bs-pink-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-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-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;-ms-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.4rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-end{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-start{border-bottom-left-radius:.25rem!important;border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float: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-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!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}.justify-content-sm-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-sm-evenly{-webkit-box-pack:space-evenly!important;-ms-flex-pack:space-evenly!important;justify-content:space-evenly!important}.align-items-sm-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}.order-sm-first{-webkit-box-ordinal-group:0!important;-ms-flex-order:-1!important;order:-1!important}.order-sm-0{-webkit-box-ordinal-group:1!important;-ms-flex-order:0!important;order:0!important}.order-sm-1{-webkit-box-ordinal-group:2!important;-ms-flex-order:1!important;order:1!important}.order-sm-2{-webkit-box-ordinal-group:3!important;-ms-flex-order:2!important;order:2!important}.order-sm-3{-webkit-box-ordinal-group:4!important;-ms-flex-order:3!important;order:3!important}.order-sm-4{-webkit-box-ordinal-group:5!important;-ms-flex-order:4!important;order:4!important}.order-sm-5{-webkit-box-ordinal-group:6!important;-ms-flex-order:5!important;order:5!important}.order-sm-last{-webkit-box-ordinal-group:7!important;-ms-flex-order:6!important;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}.m-sm-n1{margin:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.m-sm-n3{margin:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mx-sm-n1{margin-right:-.25rem!important;margin-left:-.25rem!important}.mx-sm-n2{margin-right:-.5rem!important;margin-left:-.5rem!important}.mx-sm-n3{margin-right:-1rem!important;margin-left:-1rem!important}.mx-sm-n4{margin-right:-1.5rem!important;margin-left:-1.5rem!important}.mx-sm-n5{margin-right:-3rem!important;margin-left:-3rem!important}.my-sm-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-sm-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-sm-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-sm-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-sm-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-sm-n1{margin-top:-.25rem!important}.mt-sm-n2{margin-top:-.5rem!important}.mt-sm-n3{margin-top:-1rem!important}.mt-sm-n4{margin-top:-1.5rem!important}.mt-sm-n5{margin-top:-3rem!important}.me-sm-n1{margin-right:-.25rem!important}.me-sm-n2{margin-right:-.5rem!important}.me-sm-n3{margin-right:-1rem!important}.me-sm-n4{margin-right:-1.5rem!important}.me-sm-n5{margin-right:-3rem!important}.mb-sm-n1{margin-bottom:-.25rem!important}.mb-sm-n2{margin-bottom:-.5rem!important}.mb-sm-n3{margin-bottom:-1rem!important}.mb-sm-n4{margin-bottom:-1.5rem!important}.mb-sm-n5{margin-bottom:-3rem!important}.ms-sm-n1{margin-left:-.25rem!important}.ms-sm-n2{margin-left:-.5rem!important}.ms-sm-n3{margin-left:-1rem!important}.ms-sm-n4{margin-left:-1.5rem!important}.ms-sm-n5{margin-left:-3rem!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}.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}.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-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!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}.justify-content-md-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-md-evenly{-webkit-box-pack:space-evenly!important;-ms-flex-pack:space-evenly!important;justify-content:space-evenly!important}.align-items-md-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}.order-md-first{-webkit-box-ordinal-group:0!important;-ms-flex-order:-1!important;order:-1!important}.order-md-0{-webkit-box-ordinal-group:1!important;-ms-flex-order:0!important;order:0!important}.order-md-1{-webkit-box-ordinal-group:2!important;-ms-flex-order:1!important;order:1!important}.order-md-2{-webkit-box-ordinal-group:3!important;-ms-flex-order:2!important;order:2!important}.order-md-3{-webkit-box-ordinal-group:4!important;-ms-flex-order:3!important;order:3!important}.order-md-4{-webkit-box-ordinal-group:5!important;-ms-flex-order:4!important;order:4!important}.order-md-5{-webkit-box-ordinal-group:6!important;-ms-flex-order:5!important;order:5!important}.order-md-last{-webkit-box-ordinal-group:7!important;-ms-flex-order:6!important;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}.m-md-n1{margin:-.25rem!important}.m-md-n2{margin:-.5rem!important}.m-md-n3{margin:-1rem!important}.m-md-n4{margin:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mx-md-n1{margin-right:-.25rem!important;margin-left:-.25rem!important}.mx-md-n2{margin-right:-.5rem!important;margin-left:-.5rem!important}.mx-md-n3{margin-right:-1rem!important;margin-left:-1rem!important}.mx-md-n4{margin-right:-1.5rem!important;margin-left:-1.5rem!important}.mx-md-n5{margin-right:-3rem!important;margin-left:-3rem!important}.my-md-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-md-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-md-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-md-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-md-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-md-n1{margin-top:-.25rem!important}.mt-md-n2{margin-top:-.5rem!important}.mt-md-n3{margin-top:-1rem!important}.mt-md-n4{margin-top:-1.5rem!important}.mt-md-n5{margin-top:-3rem!important}.me-md-n1{margin-right:-.25rem!important}.me-md-n2{margin-right:-.5rem!important}.me-md-n3{margin-right:-1rem!important}.me-md-n4{margin-right:-1.5rem!important}.me-md-n5{margin-right:-3rem!important}.mb-md-n1{margin-bottom:-.25rem!important}.mb-md-n2{margin-bottom:-.5rem!important}.mb-md-n3{margin-bottom:-1rem!important}.mb-md-n4{margin-bottom:-1.5rem!important}.mb-md-n5{margin-bottom:-3rem!important}.ms-md-n1{margin-left:-.25rem!important}.ms-md-n2{margin-left:-.5rem!important}.ms-md-n3{margin-left:-1rem!important}.ms-md-n4{margin-left:-1.5rem!important}.ms-md-n5{margin-left:-3rem!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}.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}.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-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!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}.justify-content-lg-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-lg-evenly{-webkit-box-pack:space-evenly!important;-ms-flex-pack:space-evenly!important;justify-content:space-evenly!important}.align-items-lg-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}.order-lg-first{-webkit-box-ordinal-group:0!important;-ms-flex-order:-1!important;order:-1!important}.order-lg-0{-webkit-box-ordinal-group:1!important;-ms-flex-order:0!important;order:0!important}.order-lg-1{-webkit-box-ordinal-group:2!important;-ms-flex-order:1!important;order:1!important}.order-lg-2{-webkit-box-ordinal-group:3!important;-ms-flex-order:2!important;order:2!important}.order-lg-3{-webkit-box-ordinal-group:4!important;-ms-flex-order:3!important;order:3!important}.order-lg-4{-webkit-box-ordinal-group:5!important;-ms-flex-order:4!important;order:4!important}.order-lg-5{-webkit-box-ordinal-group:6!important;-ms-flex-order:5!important;order:5!important}.order-lg-last{-webkit-box-ordinal-group:7!important;-ms-flex-order:6!important;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}.m-lg-n1{margin:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.m-lg-n3{margin:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mx-lg-n1{margin-right:-.25rem!important;margin-left:-.25rem!important}.mx-lg-n2{margin-right:-.5rem!important;margin-left:-.5rem!important}.mx-lg-n3{margin-right:-1rem!important;margin-left:-1rem!important}.mx-lg-n4{margin-right:-1.5rem!important;margin-left:-1.5rem!important}.mx-lg-n5{margin-right:-3rem!important;margin-left:-3rem!important}.my-lg-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-lg-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-lg-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-lg-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-lg-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-lg-n1{margin-top:-.25rem!important}.mt-lg-n2{margin-top:-.5rem!important}.mt-lg-n3{margin-top:-1rem!important}.mt-lg-n4{margin-top:-1.5rem!important}.mt-lg-n5{margin-top:-3rem!important}.me-lg-n1{margin-right:-.25rem!important}.me-lg-n2{margin-right:-.5rem!important}.me-lg-n3{margin-right:-1rem!important}.me-lg-n4{margin-right:-1.5rem!important}.me-lg-n5{margin-right:-3rem!important}.mb-lg-n1{margin-bottom:-.25rem!important}.mb-lg-n2{margin-bottom:-.5rem!important}.mb-lg-n3{margin-bottom:-1rem!important}.mb-lg-n4{margin-bottom:-1.5rem!important}.mb-lg-n5{margin-bottom:-3rem!important}.ms-lg-n1{margin-left:-.25rem!important}.ms-lg-n2{margin-left:-.5rem!important}.ms-lg-n3{margin-left:-1rem!important}.ms-lg-n4{margin-left:-1.5rem!important}.ms-lg-n5{margin-left:-3rem!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}.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}.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-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!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}.justify-content-xl-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-xl-evenly{-webkit-box-pack:space-evenly!important;-ms-flex-pack:space-evenly!important;justify-content:space-evenly!important}.align-items-xl-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}.order-xl-first{-webkit-box-ordinal-group:0!important;-ms-flex-order:-1!important;order:-1!important}.order-xl-0{-webkit-box-ordinal-group:1!important;-ms-flex-order:0!important;order:0!important}.order-xl-1{-webkit-box-ordinal-group:2!important;-ms-flex-order:1!important;order:1!important}.order-xl-2{-webkit-box-ordinal-group:3!important;-ms-flex-order:2!important;order:2!important}.order-xl-3{-webkit-box-ordinal-group:4!important;-ms-flex-order:3!important;order:3!important}.order-xl-4{-webkit-box-ordinal-group:5!important;-ms-flex-order:4!important;order:4!important}.order-xl-5{-webkit-box-ordinal-group:6!important;-ms-flex-order:5!important;order:5!important}.order-xl-last{-webkit-box-ordinal-group:7!important;-ms-flex-order:6!important;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}.m-xl-n1{margin:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.m-xl-n3{margin:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mx-xl-n1{margin-right:-.25rem!important;margin-left:-.25rem!important}.mx-xl-n2{margin-right:-.5rem!important;margin-left:-.5rem!important}.mx-xl-n3{margin-right:-1rem!important;margin-left:-1rem!important}.mx-xl-n4{margin-right:-1.5rem!important;margin-left:-1.5rem!important}.mx-xl-n5{margin-right:-3rem!important;margin-left:-3rem!important}.my-xl-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-xl-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-xl-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-xl-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-xl-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-xl-n1{margin-top:-.25rem!important}.mt-xl-n2{margin-top:-.5rem!important}.mt-xl-n3{margin-top:-1rem!important}.mt-xl-n4{margin-top:-1.5rem!important}.mt-xl-n5{margin-top:-3rem!important}.me-xl-n1{margin-right:-.25rem!important}.me-xl-n2{margin-right:-.5rem!important}.me-xl-n3{margin-right:-1rem!important}.me-xl-n4{margin-right:-1.5rem!important}.me-xl-n5{margin-right:-3rem!important}.mb-xl-n1{margin-bottom:-.25rem!important}.mb-xl-n2{margin-bottom:-.5rem!important}.mb-xl-n3{margin-bottom:-1rem!important}.mb-xl-n4{margin-bottom:-1.5rem!important}.mb-xl-n5{margin-bottom:-3rem!important}.ms-xl-n1{margin-left:-.25rem!important}.ms-xl-n2{margin-left:-.5rem!important}.ms-xl-n3{margin-left:-1rem!important}.ms-xl-n4{margin-left:-1.5rem!important}.ms-xl-n5{margin-left:-3rem!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}.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}.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-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-xxl-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xxl-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-xxl-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-xxl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xxl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xxl-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-xxl-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-xxl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xxl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.flex-xxl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xxl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!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}.justify-content-xxl-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xxl-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xxl-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xxl-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xxl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-xxl-evenly{-webkit-box-pack:space-evenly!important;-ms-flex-pack:space-evenly!important;justify-content:space-evenly!important}.align-items-xxl-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xxl-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xxl-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-xxl-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xxl-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xxl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xxl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xxl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xxl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xxl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xxl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xxl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xxl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xxl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xxl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xxl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xxl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}.order-xxl-first{-webkit-box-ordinal-group:0!important;-ms-flex-order:-1!important;order:-1!important}.order-xxl-0{-webkit-box-ordinal-group:1!important;-ms-flex-order:0!important;order:0!important}.order-xxl-1{-webkit-box-ordinal-group:2!important;-ms-flex-order:1!important;order:1!important}.order-xxl-2{-webkit-box-ordinal-group:3!important;-ms-flex-order:2!important;order:2!important}.order-xxl-3{-webkit-box-ordinal-group:4!important;-ms-flex-order:3!important;order:3!important}.order-xxl-4{-webkit-box-ordinal-group:5!important;-ms-flex-order:4!important;order:4!important}.order-xxl-5{-webkit-box-ordinal-group:6!important;-ms-flex-order:5!important;order:5!important}.order-xxl-last{-webkit-box-ordinal-group:7!important;-ms-flex-order:6!important;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}.m-xxl-n1{margin:-.25rem!important}.m-xxl-n2{margin:-.5rem!important}.m-xxl-n3{margin:-1rem!important}.m-xxl-n4{margin:-1.5rem!important}.m-xxl-n5{margin:-3rem!important}.mx-xxl-n1{margin-right:-.25rem!important;margin-left:-.25rem!important}.mx-xxl-n2{margin-right:-.5rem!important;margin-left:-.5rem!important}.mx-xxl-n3{margin-right:-1rem!important;margin-left:-1rem!important}.mx-xxl-n4{margin-right:-1.5rem!important;margin-left:-1.5rem!important}.mx-xxl-n5{margin-right:-3rem!important;margin-left:-3rem!important}.my-xxl-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-xxl-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-xxl-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-xxl-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-xxl-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-xxl-n1{margin-top:-.25rem!important}.mt-xxl-n2{margin-top:-.5rem!important}.mt-xxl-n3{margin-top:-1rem!important}.mt-xxl-n4{margin-top:-1.5rem!important}.mt-xxl-n5{margin-top:-3rem!important}.me-xxl-n1{margin-right:-.25rem!important}.me-xxl-n2{margin-right:-.5rem!important}.me-xxl-n3{margin-right:-1rem!important}.me-xxl-n4{margin-right:-1.5rem!important}.me-xxl-n5{margin-right:-3rem!important}.mb-xxl-n1{margin-bottom:-.25rem!important}.mb-xxl-n2{margin-bottom:-.5rem!important}.mb-xxl-n3{margin-bottom:-1rem!important}.mb-xxl-n4{margin-bottom:-1.5rem!important}.mb-xxl-n5{margin-bottom:-3rem!important}.ms-xxl-n1{margin-left:-.25rem!important}.ms-xxl-n2{margin-left:-.5rem!important}.ms-xxl-n3{margin-left:-1rem!important}.ms-xxl-n4{margin-left:-1.5rem!important}.ms-xxl-n5{margin-left:-3rem!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}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.03125rem!important}.fs-2{font-size:1.625rem!important}.fs-3{font-size:1.421875rem!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-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}.d-print-none{display:none!important}}html{position:relative;min-height:100%}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{color:#495057}a{text-decoration:none!important}label{margin-bottom:.5rem;font-weight:500}.blockquote{padding:10px 20px;border-left:4px solid #f6f6f6}.blockquote-reverse{border-left:0;border-right:4px solid #f6f6f6;text-align:right}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1140px}}.row>*{position:relative}body[data-layout-mode=dark] .blockquote{border-color:#30373f}body[data-layout-mode=dark] .blockquote-footer{color:#858d98}.alert-outline{background-color:#fff}.alert-label-icon{position:relative;padding-left:60px;border:0}.alert-label-icon .label-icon{position:absolute;width:45px;height:100%;left:0;top:0;background-color:rgba(255,255,255,.1);border-right:1px solid rgba(255,255,255,.1);font-size:16px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.alert-label-icon.label-arrow{overflow:hidden}.alert-label-icon.label-arrow .label-icon{color:#fff}.alert-label-icon.label-arrow .label-icon:after{content:"";position:absolute;border:6px solid transparent;right:-12px}.alert-border-left{border-left:3px solid}.alert-top-border{background-color:#fff;border-color:#e9e9ef;border-top:2px solid;color:#495057}.alert-outline.alert-primary{color:#1c84ee}.alert-border-left.alert-primary{border-left-color:#1c84ee}.alert-top-border.alert-primary{border-top-color:#1c84ee!important}.label-arrow.alert-primary .label-icon{background-color:#1c84ee}.label-arrow.alert-primary .label-icon:after{border-left-color:#1c84ee!important}.alert-outline.alert-secondary{color:#74788d}.alert-border-left.alert-secondary{border-left-color:#74788d}.alert-top-border.alert-secondary{border-top-color:#74788d!important}.label-arrow.alert-secondary .label-icon{background-color:#74788d}.label-arrow.alert-secondary .label-icon:after{border-left-color:#74788d!important}.alert-outline.alert-success{color:#34c38f}.alert-border-left.alert-success{border-left-color:#34c38f}.alert-top-border.alert-success{border-top-color:#34c38f!important}.label-arrow.alert-success .label-icon{background-color:#34c38f}.label-arrow.alert-success .label-icon:after{border-left-color:#34c38f!important}.alert-outline.alert-info{color:#16daf1}.alert-border-left.alert-info{border-left-color:#16daf1}.alert-top-border.alert-info{border-top-color:#16daf1!important}.label-arrow.alert-info .label-icon{background-color:#16daf1}.label-arrow.alert-info .label-icon:after{border-left-color:#16daf1!important}.alert-outline.alert-warning{color:#ffcc5a}.alert-border-left.alert-warning{border-left-color:#ffcc5a}.alert-top-border.alert-warning{border-top-color:#ffcc5a!important}.label-arrow.alert-warning .label-icon{background-color:#ffcc5a}.label-arrow.alert-warning .label-icon:after{border-left-color:#ffcc5a!important}.alert-outline.alert-danger{color:#ef6767}.alert-border-left.alert-danger{border-left-color:#ef6767}.alert-top-border.alert-danger{border-top-color:#ef6767!important}.label-arrow.alert-danger .label-icon{background-color:#ef6767}.label-arrow.alert-danger .label-icon:after{border-left-color:#ef6767!important}.alert-outline.alert-pink{color:#e83e8c}.alert-border-left.alert-pink{border-left-color:#e83e8c}.alert-top-border.alert-pink{border-top-color:#e83e8c!important}.label-arrow.alert-pink .label-icon{background-color:#e83e8c}.label-arrow.alert-pink .label-icon:after{border-left-color:#e83e8c!important}.alert-outline.alert-light{color:#f6f6f6}.alert-border-left.alert-light{border-left-color:#f6f6f6}.alert-top-border.alert-light{border-top-color:#f6f6f6!important}.label-arrow.alert-light .label-icon{background-color:#f6f6f6}.label-arrow.alert-light .label-icon:after{border-left-color:#f6f6f6!important}.alert-outline.alert-dark{color:#2b3940}.alert-border-left.alert-dark{border-left-color:#2b3940}.alert-top-border.alert-dark{border-top-color:#2b3940!important}.label-arrow.alert-dark .label-icon{background-color:#2b3940}.label-arrow.alert-dark .label-icon:after{border-left-color:#2b3940!important}body[data-layout-mode=dark] .alert .btn-close{background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat}body[data-layout-mode=dark] .alert-outline{background-color:#242a30}body[data-layout-mode=dark] .alert-outline .btn-close{background:transparent 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 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat}body[data-layout-mode=dark] .alert-top-border{background-color:#242a30;border-color:#30373f;color:#858d98}body[data-layout-mode=dark] .alert-top-border .btn-close{background:transparent 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 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat}.bg-soft-primary{background-color:rgba(28,132,238,.25)!important}.bg-soft-secondary{background-color:rgba(116,120,141,.25)!important}.bg-soft-success{background-color:rgba(52,195,143,.25)!important}.bg-soft-info{background-color:rgba(22,218,241,.25)!important}.bg-soft-warning{background-color:rgba(255,204,90,.25)!important}.bg-soft-danger{background-color:rgba(239,103,103,.25)!important}.bg-soft-pink{background-color:rgba(232,62,140,.25)!important}.bg-soft-light{background-color:rgba(246,246,246,.25)!important}.bg-soft-dark{background-color:rgba(43,57,64,.25)!important}body[data-layout-mode=dark] .bg-light{background-color:#30373f!important}body[data-layout-mode=dark] .bg-dark{background-color:#2f373f!important}body[data-layout-mode=dark] .bg-soft-light{background-color:rgba(48,55,63,.25)!important}.badge[href]:focus,.badge[href]:hover{color:#fff}.badge.bg-primary[href]:focus,.badge.bg-primary[href]:hover{background-color:#117ae4!important}.badge.bg-light{color:#495057}.badge.bg-light[href]:focus,.badge.bg-light[href]:hover{color:#495057}.badge-soft-primary{color:#1c84ee;background-color:rgba(28,132,238,.18)}.badge-soft-primary[href]:focus,.badge-soft-primary[href]:hover{color:#1c84ee;text-decoration:none;background-color:rgba(28,132,238,.4)}.badge.bg-secondary[href]:focus,.badge.bg-secondary[href]:hover{background-color:#6b6e82!important}.badge.bg-light{color:#495057}.badge.bg-light[href]:focus,.badge.bg-light[href]:hover{color:#495057}.badge-soft-secondary{color:#74788d;background-color:rgba(116,120,141,.18)}.badge-soft-secondary[href]:focus,.badge-soft-secondary[href]:hover{color:#74788d;text-decoration:none;background-color:rgba(116,120,141,.4)}.badge.bg-success[href]:focus,.badge.bg-success[href]:hover{background-color:#30b383!important}.badge.bg-light{color:#495057}.badge.bg-light[href]:focus,.badge.bg-light[href]:hover{color:#495057}.badge-soft-success{color:#34c38f;background-color:rgba(52,195,143,.18)}.badge-soft-success[href]:focus,.badge-soft-success[href]:hover{color:#34c38f;text-decoration:none;background-color:rgba(52,195,143,.4)}.badge.bg-info[href]:focus,.badge.bg-info[href]:hover{background-color:#0ecee5!important}.badge.bg-light{color:#495057}.badge.bg-light[href]:focus,.badge.bg-light[href]:hover{color:#495057}.badge-soft-info{color:#16daf1;background-color:rgba(22,218,241,.18)}.badge-soft-info[href]:focus,.badge-soft-info[href]:hover{color:#16daf1;text-decoration:none;background-color:rgba(22,218,241,.4)}.badge.bg-warning[href]:focus,.badge.bg-warning[href]:hover{background-color:#ffc646!important}.badge.bg-light{color:#495057}.badge.bg-light[href]:focus,.badge.bg-light[href]:hover{color:#495057}.badge-soft-warning{color:#ffcc5a;background-color:rgba(255,204,90,.18)}.badge-soft-warning[href]:focus,.badge-soft-warning[href]:hover{color:#ffcc5a;text-decoration:none;background-color:rgba(255,204,90,.4)}.badge.bg-danger[href]:focus,.badge.bg-danger[href]:hover{background-color:#ed5555!important}.badge.bg-light{color:#495057}.badge.bg-light[href]:focus,.badge.bg-light[href]:hover{color:#495057}.badge-soft-danger{color:#ef6767;background-color:rgba(239,103,103,.18)}.badge-soft-danger[href]:focus,.badge-soft-danger[href]:hover{color:#ef6767;text-decoration:none;background-color:rgba(239,103,103,.4)}.badge.bg-pink[href]:focus,.badge.bg-pink[href]:hover{background-color:#e62c81!important}.badge.bg-light{color:#495057}.badge.bg-light[href]:focus,.badge.bg-light[href]:hover{color:#495057}.badge-soft-pink{color:#e83e8c;background-color:rgba(232,62,140,.18)}.badge-soft-pink[href]:focus,.badge-soft-pink[href]:hover{color:#e83e8c;text-decoration:none;background-color:rgba(232,62,140,.4)}.badge.bg-light[href]:focus,.badge.bg-light[href]:hover{background-color:#ececec!important}.badge.bg-light{color:#495057}.badge.bg-light[href]:focus,.badge.bg-light[href]:hover{color:#495057}.badge-soft-light{color:#f6f6f6;background-color:rgba(246,246,246,.18)}.badge-soft-light[href]:focus,.badge-soft-light[href]:hover{color:#f6f6f6;text-decoration:none;background-color:rgba(246,246,246,.4)}.badge.bg-dark[href]:focus,.badge.bg-dark[href]:hover{background-color:#232e34!important}.badge.bg-light{color:#495057}.badge.bg-light[href]:focus,.badge.bg-light[href]:hover{color:#495057}.badge-soft-dark{color:#2b3940;background-color:rgba(43,57,64,.18)}.badge-soft-dark[href]:focus,.badge-soft-dark[href]:hover{color:#2b3940;text-decoration:none;background-color:rgba(43,57,64,.4)}.rounded-pill{padding-right:.6em;padding-left:.6em}.badge.bg-dark{color:#f6f6f6}body[data-layout-mode=dark] .badge-soft-dark{color:#ced4da;background-color:rgba(133,141,152,.18)}body[data-layout-mode=dark] .badge-soft-dark[href]:focus,body[data-layout-mode=dark] .badge-soft-dark[href]:hover{color:#ced4da;text-decoration:none;background-color:rgba(133,141,152,.4)}a,button{outline:0!important}.btn-outline-light{color:#2b3940}.btn-soft-primary{color:#1c84ee;background-color:rgba(28,132,238,.1);border-color:transparent}.btn-soft-primary:active,.btn-soft-primary:focus,.btn-soft-primary:hover{color:#fff;background-color:#1c84ee}.btn-soft-primary:focus{-webkit-box-shadow:0 0 0 .15rem rgba(28,132,238,.5);box-shadow:0 0 0 .15rem rgba(28,132,238,.5)}.btn-soft-secondary{color:#74788d;background-color:rgba(116,120,141,.1);border-color:transparent}.btn-soft-secondary:active,.btn-soft-secondary:focus,.btn-soft-secondary:hover{color:#fff;background-color:#74788d}.btn-soft-secondary:focus{-webkit-box-shadow:0 0 0 .15rem rgba(116,120,141,.5);box-shadow:0 0 0 .15rem rgba(116,120,141,.5)}.btn-soft-success{color:#34c38f;background-color:rgba(52,195,143,.1);border-color:transparent}.btn-soft-success:active,.btn-soft-success:focus,.btn-soft-success:hover{color:#fff;background-color:#34c38f}.btn-soft-success:focus{-webkit-box-shadow:0 0 0 .15rem rgba(52,195,143,.5);box-shadow:0 0 0 .15rem rgba(52,195,143,.5)}.btn-soft-info{color:#16daf1;background-color:rgba(22,218,241,.1);border-color:transparent}.btn-soft-info:active,.btn-soft-info:focus,.btn-soft-info:hover{color:#fff;background-color:#16daf1}.btn-soft-info:focus{-webkit-box-shadow:0 0 0 .15rem rgba(22,218,241,.5);box-shadow:0 0 0 .15rem rgba(22,218,241,.5)}.btn-soft-warning{color:#ffcc5a;background-color:rgba(255,204,90,.1);border-color:transparent}.btn-soft-warning:active,.btn-soft-warning:focus,.btn-soft-warning:hover{color:#fff;background-color:#ffcc5a}.btn-soft-warning:focus{-webkit-box-shadow:0 0 0 .15rem rgba(255,204,90,.5);box-shadow:0 0 0 .15rem rgba(255,204,90,.5)}.btn-soft-danger{color:#ef6767;background-color:rgba(239,103,103,.1);border-color:transparent}.btn-soft-danger:active,.btn-soft-danger:focus,.btn-soft-danger:hover{color:#fff;background-color:#ef6767}.btn-soft-danger:focus{-webkit-box-shadow:0 0 0 .15rem rgba(239,103,103,.5);box-shadow:0 0 0 .15rem rgba(239,103,103,.5)}.btn-soft-pink{color:#e83e8c;background-color:rgba(232,62,140,.1);border-color:transparent}.btn-soft-pink:active,.btn-soft-pink:focus,.btn-soft-pink:hover{color:#fff;background-color:#e83e8c}.btn-soft-pink:focus{-webkit-box-shadow:0 0 0 .15rem rgba(232,62,140,.5);box-shadow:0 0 0 .15rem rgba(232,62,140,.5)}.btn-soft-light{color:#f6f6f6;background-color:rgba(246,246,246,.1);border-color:transparent}.btn-soft-light:active,.btn-soft-light:focus,.btn-soft-light:hover{color:#fff;background-color:#f6f6f6}.btn-soft-light:focus{-webkit-box-shadow:0 0 0 .15rem rgba(246,246,246,.5);box-shadow:0 0 0 .15rem rgba(246,246,246,.5)}.btn-soft-dark{color:#2b3940;background-color:rgba(43,57,64,.1);border-color:transparent}.btn-soft-dark:active,.btn-soft-dark:focus,.btn-soft-dark:hover{color:#fff;background-color:#2b3940}.btn-soft-dark:focus{-webkit-box-shadow:0 0 0 .15rem rgba(43,57,64,.5);box-shadow:0 0 0 .15rem rgba(43,57,64,.5)}.btn-soft-light{color:#2b3940;background-color:rgba(246,246,246,.25)}.btn-soft-light:active,.btn-soft-light:focus,.btn-soft-light:hover{color:#2b3940}.btn-primary.dropdown-toggle-split{background-color:#3491f0;border:none}.btn-secondary.dropdown-toggle-split{background-color:#828698;border:none}.btn-success.dropdown-toggle-split{background-color:#44cd9b;border:none}.btn-info.dropdown-toggle-split{background-color:#2edef2;border:none}.btn-warning.dropdown-toggle-split{background-color:#ffd474;border:none}.btn-danger.dropdown-toggle-split{background-color:#f17e7e;border:none}.btn-pink.dropdown-toggle-split{background-color:#eb559a;border:none}.btn-light.dropdown-toggle-split{background-color:#fff;border:none}.btn-dark.dropdown-toggle-split{background-color:#35474f;border:none}.btn-rounded{border-radius:30px}.btn-group-example .btn{position:relative}.btn-group-example .btn:first-child::before{display:none}.btn-group-example .btn:before{content:"OR";position:absolute;font-size:10px;width:22px;height:22px;line-height:22px;border-radius:50%;background-color:#74788d;color:#f6f6f6;left:-12px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:1}.btn-label{position:relative;padding-left:44px;border:none}.btn-label .label-icon{position:absolute;width:32px;height:100%;left:0;top:0;background-color:rgba(255,255,255,.15);font-size:16px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.btn-label.btn-light .label-icon{background-color:rgba(43,57,64,.1)}.btn-label.btn-soft-light .label-icon{background-color:rgba(43,57,64,.05)}body[data-layout-mode=dark] .btn{color:#f6f6f6}body[data-layout-mode=dark] .btn-light{color:#adb5bd;background-color:#30373f;border-color:#30373f!important;-webkit-box-shadow:0 2px 6px 0 rgba(48,55,63,.5);box-shadow:0 2px 6px 0 rgba(48,55,63,.5)}body[data-layout-mode=dark] .btn-outline-light{color:#adb5bd;border-color:#30373f}body[data-layout-mode=dark] .btn-outline-light:hover{color:#adb5bd;background-color:#30373f;border-color:#30373f}body[data-layout-mode=dark] .btn-soft-light{color:#adb5bd;background-color:rgba(133,141,152,.2)}body[data-layout-mode=dark] .btn-soft-light:active,body[data-layout-mode=dark] .btn-soft-light:focus,body[data-layout-mode=dark] .btn-soft-light:hover{background-color:rgba(133,141,152,.25)}body[data-layout-mode=dark] .btn-check:focus+.btn-light,body[data-layout-mode=dark] .btn-check:focus+.btn-outline-light,body[data-layout-mode=dark] .btn-light:focus,body[data-layout-mode=dark] .btn-outline-light:focus{-webkit-box-shadow:0 0 0 .15rem rgba(48,55,63,.5);box-shadow:0 0 0 .15rem rgba(48,55,63,.5)}.breadcrumb-item>a{color:#495057}.breadcrumb-item+.breadcrumb-item::before{font-family:"Material Design Icons"}body[data-layout-mode=dark] .breadcrumb-item>a{color:#adb5bd}body[data-layout-mode=dark] .breadcrumb-item.active{color:#858d98}.carousel-indicators-rounded button{width:10px!important;height:10px!important;border-radius:50%!important}.carousel-indicators.auth-carousel button{width:3rem!important;height:3rem!important;margin:0 8px}.card{margin-bottom:24px;-webkit-box-shadow:0 .25rem .75rem rgba(18,38,63,.08);box-shadow:0 .25rem .75rem rgba(18,38,63,.08);border:none!important}.card-drop{color:#495057}.card-title{font-size:15.4px;margin:0 0 7px 0}.card-title-desc{color:#74788d;margin-bottom:0;font-size:13px}.card-header-tabs{margin-top:-1.25rem}.card-header-pills{margin:-.625rem}body[data-layout-mode=dark] .card,body[data-layout-mode=dark] .card-header,body[data-layout-mode=dark] .modal-content,body[data-layout-mode=dark] .offcanvas{background-color:#242a30;border-color:#2d343c}body[data-layout-mode=dark] .card-title-desc{color:#858d98}.dropdown-menu{-webkit-box-shadow:0 .25rem .75rem rgba(18,38,63,.08);box-shadow:0 .25rem .75rem rgba(18,38,63,.08);-webkit-animation-name:DropDownSlide;animation-name:DropDownSlide;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;padding:.25rem}.dropdown-menu.show{top:100%!important}.dropdown-menu-end[style]{left:auto!important;right:0!important}.dropdown-menu[data-popper-placement^=left],.dropdown-menu[data-popper-placement^=right],.dropdown-menu[data-popper-placement^=top]{top:auto!important;-webkit-animation:none!important;animation:none!important}@-webkit-keyframes DropDownSlide{100%{-webkit-transform:translateY(0);transform:translateY(0)}0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes DropDownSlide{100%{-webkit-transform:translateY(0);transform:translateY(0)}0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@media (min-width:600px){.dropdown-menu-lg{width:320px}.dropdown-menu-md{width:240px}}.dropdown-divider{border-top-color:#e9e9ef}.dropdown-mega{position:static!important}.dropdown-megamenu[style]{padding:20px;left:20px!important;right:20px!important}.dropdown-mega-menu-xl{width:40rem}.dropdown-mega-menu-lg{width:26rem}.dropdownmenu-primary .dropdown-item.active,.dropdownmenu-primary .dropdown-item:focus,.dropdownmenu-primary .dropdown-item:hover{background-color:rgba(28,132,238,.07)!important;color:#1c84ee}.dropdownmenu-secondary .dropdown-item.active,.dropdownmenu-secondary .dropdown-item:focus,.dropdownmenu-secondary .dropdown-item:hover{background-color:rgba(116,120,141,.07)!important;color:#74788d}.dropdownmenu-success .dropdown-item.active,.dropdownmenu-success .dropdown-item:focus,.dropdownmenu-success .dropdown-item:hover{background-color:rgba(52,195,143,.07)!important;color:#34c38f}.dropdownmenu-info .dropdown-item.active,.dropdownmenu-info .dropdown-item:focus,.dropdownmenu-info .dropdown-item:hover{background-color:rgba(22,218,241,.07)!important;color:#16daf1}.dropdownmenu-warning .dropdown-item.active,.dropdownmenu-warning .dropdown-item:focus,.dropdownmenu-warning .dropdown-item:hover{background-color:rgba(255,204,90,.07)!important;color:#ffcc5a}.dropdownmenu-danger .dropdown-item.active,.dropdownmenu-danger .dropdown-item:focus,.dropdownmenu-danger .dropdown-item:hover{background-color:rgba(239,103,103,.07)!important;color:#ef6767}.dropdownmenu-pink .dropdown-item.active,.dropdownmenu-pink .dropdown-item:focus,.dropdownmenu-pink .dropdown-item:hover{background-color:rgba(232,62,140,.07)!important;color:#e83e8c}.dropdownmenu-light .dropdown-item.active,.dropdownmenu-light .dropdown-item:focus,.dropdownmenu-light .dropdown-item:hover{background-color:rgba(246,246,246,.07)!important;color:#f6f6f6}.dropdownmenu-dark .dropdown-item.active,.dropdownmenu-dark .dropdown-item:focus,.dropdownmenu-dark .dropdown-item:hover{background-color:rgba(43,57,64,.07)!important;color:#2b3940}body[data-layout-mode=dark] .dropdown-menu{background-color:#293037;border-color:#30373f;color:#adb5bd;-webkit-box-shadow:0 .25rem .75rem rgba(25,30,34,.2);box-shadow:0 .25rem .75rem rgba(25,30,34,.2)}body[data-layout-mode=dark] .dropdown-item{color:#adb5bd}body[data-layout-mode=dark] .dropdown-item:active,body[data-layout-mode=dark] .dropdown-item:focus,body[data-layout-mode=dark] .dropdown-item:hover{background-color:#2f373f}body[data-layout-mode=dark] .dropdown-item.active,body[data-layout-mode=dark] .dropdown-item:active{background-color:#2f373f}body[data-layout-mode=dark] .dropdown-divider{border-top-color:#30373f}.nav-pills>li>a,.nav-tabs>li>a{color:#495057;font-weight:500}.nav-pills>a{color:#495057;font-weight:500}.nav-tabs-custom{border-bottom:1px solid #f6f6f6}.nav-tabs-custom .nav-item{position:relative;color:#2b3940}.nav-tabs-custom .nav-item .nav-link{border:none}.nav-tabs-custom .nav-item .nav-link::after{content:"";background:#1c84ee;height:1px;position:absolute;width:100%;left:0;bottom:-1px;-webkit-transition:all 250ms ease 0s;transition:all 250ms ease 0s;-webkit-transform:scale(0);transform:scale(0)}.nav-tabs-custom .nav-item .nav-link.active{color:#1c84ee}.nav-tabs-custom .nav-item .nav-link.active:after{-webkit-transform:scale(1);transform:scale(1)}.nav-tabs-custom.card-header-tabs{border-bottom:none}.nav-tabs-custom.card-header-tabs .nav-link{padding:1.25rem 1rem;font-weight:500}.vertical-nav .nav .nav-link{padding:24px 16px;text-align:center;margin-bottom:8px}.vertical-nav .nav .nav-link .nav-icon{font-size:24px}body[data-layout-mode=dark] .nav-link{color:#adb5bd}body[data-layout-mode=dark] .nav-tabs{border-color:#30373f}body[data-layout-mode=dark] .nav-tabs .nav-link{color:#ced4da}body[data-layout-mode=dark] .nav-tabs .nav-link:focus,body[data-layout-mode=dark] .nav-tabs .nav-link:hover{border-color:#30373f #30373f #30373f}body[data-layout-mode=dark] .nav-tabs .nav-link.active{background-color:#242a30;border-color:#30373f #30373f #242a30}body[data-layout-mode=dark] .nav-pills .nav-link{color:#ced4da}body[data-layout-mode=dark] .nav-pills .nav-link.active{color:#fff}.table th{font-weight:700}.table .table-light{color:#495057;border-color:#e9e9ef;background-color:#f8f9fa}.table-bordered{border:1px solid #e9e9ef}.table-dark>:not(:last-child)>:last-child>*{border-bottom-color:#43494e}.table-nowrap td,.table-nowrap th{white-space:nowrap}.table>:not(:first-child){border-top:0}body[data-layout-mode=dark] .table{border-color:#2f373f;color:#858d98}body[data-layout-mode=dark] .table-bordered{border-color:#30373f}body[data-layout-mode=dark] .table-dark>:not(:last-child)>:last-child>*{border-color:#30373f}body[data-layout-mode=dark] .table>:not(:last-child)>:last-child>*{border-bottom-color:#30373f}body[data-layout-mode=dark] .table-striped>tbody>tr:nth-of-type(odd){--bs-table-striped-bg:#363a38;--bs-table-striped-color:$gray-dark-400}body[data-layout-mode=dark] .table-hover>tbody>tr:hover{--bs-table-hover-bg:#363a38;--bs-table-hover-color:$gray-dark-400}body[data-layout-mode=dark] .table .table-light{--bs-table-accent-bg:#363a38;color:#858d98}body[data-layout-mode=dark] .table-dark{background-color:#30373f}body[data-layout-mode=dark] .table-dark>:not(caption)>*>*{background-color:#30373f}.pagination-rounded .page-link{border-radius:30px!important;margin:0 3px!important;border:none;width:32px;height:32px;padding:0;text-align:center;line-height:32px}body[data-layout-mode=dark] .page-link{background-color:#242a30;border-color:#30373f;color:#adb5bd}body[data-layout-mode=dark] .page-link:hover{background-color:#282f36;color:#1c84ee}body[data-layout-mode=dark] .page-item.disabled .page-link{color:#858d98;background-color:#242a30;border-color:#30373f}body[data-layout-mode=dark] .page-item.active .page-link{color:#fff;background-color:#1c84ee;border-color:#1c84ee}.progress-sm{height:5px}.progress-md{height:8px}.progress-lg{height:12px}.progress-xl{height:16px}.custom-progess{position:relative}.custom-progess .progress-icon{position:absolute;top:-12px}.custom-progess .progress-icon .avatar-title{background:#fff}.animated-progess{position:relative}.animated-progess .progress-bar{position:relative;border-radius:6px;-webkit-animation:animate-positive 2s;animation:animate-positive 2s}@-webkit-keyframes animate-positive{0%{width:0}}@keyframes animate-positive{0%{width:0}}body[data-layout-mode=dark] .progress{background-color:#30373f}.shadow-primary{-webkit-box-shadow:0 2px 8px 0 rgba(28,132,238,.3);box-shadow:0 2px 8px 0 rgba(28,132,238,.3)}.shadow-secondary{-webkit-box-shadow:0 2px 8px 0 rgba(116,120,141,.3);box-shadow:0 2px 8px 0 rgba(116,120,141,.3)}.shadow-success{-webkit-box-shadow:0 2px 8px 0 rgba(52,195,143,.3);box-shadow:0 2px 8px 0 rgba(52,195,143,.3)}.shadow-info{-webkit-box-shadow:0 2px 8px 0 rgba(22,218,241,.3);box-shadow:0 2px 8px 0 rgba(22,218,241,.3)}.shadow-warning{-webkit-box-shadow:0 2px 8px 0 rgba(255,204,90,.3);box-shadow:0 2px 8px 0 rgba(255,204,90,.3)}.shadow-danger{-webkit-box-shadow:0 2px 8px 0 rgba(239,103,103,.3);box-shadow:0 2px 8px 0 rgba(239,103,103,.3)}.shadow-pink{-webkit-box-shadow:0 2px 8px 0 rgba(232,62,140,.3);box-shadow:0 2px 8px 0 rgba(232,62,140,.3)}.shadow-light{-webkit-box-shadow:0 2px 8px 0 rgba(246,246,246,.3);box-shadow:0 2px 8px 0 rgba(246,246,246,.3)}.shadow-dark{-webkit-box-shadow:0 2px 8px 0 rgba(43,57,64,.3);box-shadow:0 2px 8px 0 rgba(43,57,64,.3)} +/*# sourceMappingURL=bootstrap.min.css.map */ diff --git a/static/css/bootstrap.min.css.map b/static/css/bootstrap.min.css.map new file mode 100644 index 0000000..259e531 --- /dev/null +++ b/static/css/bootstrap.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../node_modules/bootstrap/scss/bootstrap.scss","../../node_modules/bootstrap/scss/_root.scss","../../node_modules/bootstrap/scss/_reboot.scss","bootstrap.css","../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../node_modules/bootstrap/scss/_type.scss","../../node_modules/bootstrap/scss/mixins/_lists.scss","../../node_modules/bootstrap/scss/_images.scss","../../node_modules/bootstrap/scss/mixins/_image.scss","../../node_modules/bootstrap/scss/_containers.scss","../../node_modules/bootstrap/scss/mixins/_container.scss","../../node_modules/bootstrap/scss/mixins/_breakpoints.scss","../../node_modules/bootstrap/scss/_grid.scss","../../node_modules/bootstrap/scss/mixins/_grid.scss","../../node_modules/bootstrap/scss/_tables.scss","../../node_modules/bootstrap/scss/mixins/_table-variants.scss","../../node_modules/bootstrap/scss/forms/_labels.scss","../../node_modules/bootstrap/scss/forms/_form-text.scss","../../node_modules/bootstrap/scss/forms/_form-control.scss","../../node_modules/bootstrap/scss/mixins/_transition.scss","../../node_modules/bootstrap/scss/mixins/_gradients.scss","../../node_modules/bootstrap/scss/forms/_form-select.scss","../../node_modules/bootstrap/scss/forms/_form-check.scss","../../node_modules/bootstrap/scss/forms/_form-range.scss","../../node_modules/bootstrap/scss/forms/_floating-labels.scss","../../node_modules/bootstrap/scss/forms/_input-group.scss","../../node_modules/bootstrap/scss/mixins/_forms.scss","../../node_modules/bootstrap/scss/_buttons.scss","../../node_modules/bootstrap/scss/mixins/_buttons.scss","../../node_modules/bootstrap/scss/_transitions.scss","../../node_modules/bootstrap/scss/_dropdown.scss","../../node_modules/bootstrap/scss/_button-group.scss","../../node_modules/bootstrap/scss/_nav.scss","../../node_modules/bootstrap/scss/_navbar.scss","../../node_modules/bootstrap/scss/_card.scss","../../node_modules/bootstrap/scss/_accordion.scss","../../node_modules/bootstrap/scss/_breadcrumb.scss","../../node_modules/bootstrap/scss/_pagination.scss","../../node_modules/bootstrap/scss/mixins/_pagination.scss","../../node_modules/bootstrap/scss/_badge.scss","../../node_modules/bootstrap/scss/_alert.scss","../../node_modules/bootstrap/scss/mixins/_alert.scss","../../node_modules/bootstrap/scss/_progress.scss","../../node_modules/bootstrap/scss/_list-group.scss","../../node_modules/bootstrap/scss/mixins/_list-group.scss","../../node_modules/bootstrap/scss/_close.scss","../../node_modules/bootstrap/scss/_toasts.scss","../../node_modules/bootstrap/scss/_modal.scss","../../node_modules/bootstrap/scss/mixins/_backdrop.scss","../../node_modules/bootstrap/scss/_tooltip.scss","../../node_modules/bootstrap/scss/mixins/_reset-text.scss","../../node_modules/bootstrap/scss/_popover.scss","../../node_modules/bootstrap/scss/_carousel.scss","../../node_modules/bootstrap/scss/mixins/_clearfix.scss","../../node_modules/bootstrap/scss/_spinners.scss","../../node_modules/bootstrap/scss/_offcanvas.scss","../../node_modules/bootstrap/scss/_placeholders.scss","../../node_modules/bootstrap/scss/helpers/_colored-links.scss","../../node_modules/bootstrap/scss/helpers/_ratio.scss","../../node_modules/bootstrap/scss/helpers/_position.scss","../../node_modules/bootstrap/scss/helpers/_stacks.scss","../../node_modules/bootstrap/scss/helpers/_visually-hidden.scss","../../node_modules/bootstrap/scss/mixins/_visually-hidden.scss","../../node_modules/bootstrap/scss/helpers/_stretched-link.scss","../../node_modules/bootstrap/scss/helpers/_text-truncation.scss","../../node_modules/bootstrap/scss/mixins/_text-truncate.scss","../../node_modules/bootstrap/scss/helpers/_vr.scss","../../node_modules/bootstrap/scss/mixins/_utilities.scss","../../node_modules/bootstrap/scss/utilities/_api.scss","custom/components/_reboot.scss","custom/components/_alerts.scss","custom/components/_backgrounds.scss","custom/components/_badge.scss","custom/components/_buttons.scss","custom/components/_breadcrumb.scss","custom/components/_carousel.scss","custom/components/_card.scss","custom/components/_dropdown.scss","custom/components/_nav.scss","custom/components/_table.scss","custom/components/_pagination.scss","custom/components/_progress.scss","custom/components/_shadow.scss"],"names":[],"mappings":"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","file":"bootstrap.min.css","sourcesContent":["/*!\n * Bootstrap v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n// scss-docs-start import-stack\n// Configuration\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"utilities\";\n\n// Layout & components\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"containers\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"accordion\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"alert\";\n@import \"progress\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"offcanvas\";\n@import \"placeholders\";\n\n// Helpers\n@import \"helpers\";\n\n// Utilities\n@import \"utilities/api\";\n// scss-docs-end import-stack\n",":root {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$variable-prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$variable-prefix}#{$color}-rgb: #{$value};\n }\n\n --#{$variable-prefix}white-rgb: #{to-rgb($white)};\n --#{$variable-prefix}black-rgb: #{to-rgb($black)};\n --#{$variable-prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$variable-prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$variable-prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$variable-prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$variable-prefix}gradient: #{$gradient};\n\n // Root and body\n // stylelint-disable custom-property-empty-line-before\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$variable-prefix}root-font-size: #{$font-size-root};\n }\n --#{$variable-prefix}body-font-family: #{$font-family-base};\n --#{$variable-prefix}body-font-size: #{$font-size-base};\n --#{$variable-prefix}body-font-weight: #{$font-weight-base};\n --#{$variable-prefix}body-line-height: #{$line-height-base};\n --#{$variable-prefix}body-color: #{$body-color};\n @if $body-text-align != null {\n --#{$variable-prefix}body-text-align: #{$body-text-align};\n }\n --#{$variable-prefix}body-bg: #{$body-bg};\n // scss-docs-end root-body-variables\n // stylelint-enable custom-property-empty-line-before\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n @if $font-size-root != null {\n font-size: var(--#{$variable-prefix}root-font-size);\n }\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n}\n\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\n// scss-docs-start reboot-body-rules\nbody {\n margin: 0; // 1\n font-family: var(--#{$variable-prefix}body-font-family);\n @include font-size(var(--#{$variable-prefix}body-font-size));\n font-weight: var(--#{$variable-prefix}body-font-weight);\n line-height: var(--#{$variable-prefix}body-line-height);\n color: var(--#{$variable-prefix}body-color);\n text-align: var(--#{$variable-prefix}body-text-align);\n background-color: var(--#{$variable-prefix}body-bg); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n// scss-docs-end reboot-body-rules\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n// 2. Set correct height and prevent the `size` attribute to make the `hr` look like an input field\n\nhr {\n margin: $hr-margin-y 0;\n color: $hr-color; // 1\n background-color: currentColor;\n border: 0;\n opacity: $hr-opacity;\n}\n\nhr:not([size]) {\n height: $hr-height; // 2\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1 {\n @extend %heading;\n @include font-size($h1-font-size);\n}\n\nh2 {\n @extend %heading;\n @include font-size($h2-font-size);\n}\n\nh3 {\n @extend %heading;\n @include font-size($h3-font-size);\n}\n\nh4 {\n @extend %heading;\n @include font-size($h4-font-size);\n}\n\nh5 {\n @extend %heading;\n @include font-size($h5-font-size);\n}\n\nh6 {\n @extend %heading;\n @include font-size($h6-font-size);\n}\n\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-bs-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-bs-original-title] { // 1\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n text-decoration-skip-ink: none; // 4\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n\n &:hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n direction: ltr #{\"/* rtl:ignore */\"};\n unicode-bidi: bidi-override;\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // 1\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n text-transform: none;\n}\n// Set the cursor for non-`'),this.$dropdownContainer=d('