Index: frontend/src/App.js
===================================================================
--- frontend/src/App.js	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ frontend/src/App.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -33,4 +33,6 @@
 import ProfilesManagementPage from "./Pages/ProfilesManagementPage";
 import UserReservationsManagement from "./Pages/UserReservationsManagement";
+import LoginCallback from "./Components/LoginCallback";
+import ConnectedAccountsPage from "./Pages/ConnectedAccountsPage";
 
 
@@ -71,4 +73,6 @@
                         <Route path="/search/restaurant/:restaurantLocation/:date/:hourFrom/:hourTo/:numPeople"
                                element={<SearchPage type="restaurant"/>}/>
+                        <Route path="/login-callback" element={<LoginCallback/>}></Route>
+                        <Route path="/connected" element={<PrivateRoute><ConnectedAccountsPage/></PrivateRoute>}></Route>
                     </Routes>
                 </BrowserRouter>
Index: frontend/src/Components/ConnectedAccounts/ConnectedAccountsTable.js
===================================================================
--- frontend/src/Components/ConnectedAccounts/ConnectedAccountsTable.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ frontend/src/Components/ConnectedAccounts/ConnectedAccountsTable.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,47 @@
+import useGet from "../Hooks/useGet";
+import useApprove from "../Hooks/useApprove";
+import {Container} from "react-bootstrap";
+import {FaCheckCircle} from "react-icons/fa";
+import React from "react";
+import {useAuth} from "../Context/AuthContext";
+import profilePage from "../../Pages/ProfilePage";
+
+const ConnectedAccountsTable = (props) => {
+
+    const data = props.data;
+    const isLoading = props.isLoading;
+
+    const { getData: approveBusiness} = useApprove();
+
+    return (
+        <>
+            <Container fluid >
+                <table className="table table-hover">
+                    <thead>
+                    <tr>
+                        <th scope="col">Ред. бр.</th>
+                        <th scope="col">User ID</th>
+                        <th scope="col">Име</th>
+                        <th scope="col">Презиме</th>
+                        <th scope="col">Username</th>
+                        <th>Дисконектирај</th>
+                    </tr>
+                    </thead>
+                    <tbody>
+                    {data.map((f, i) => { return <tr key={f.userID}>
+                        <th style={{verticalAlign: "middle"}} scope="row">{i + 1}</th>
+                        <td style={{verticalAlign: "middle"}}>{f.userID}</td>
+                        <td style={{verticalAlign: "middle"}}>{f.name}</td>
+                        <td style={{verticalAlign: "middle"}}>{f.surname}</td>
+                        <td style={{verticalAlign: "middle"}}>{f.username}</td>
+                        <td style={{verticalAlign: "middle"}}><FaCheckCircle size={'2.2em'} color={'#159895'} onClick={() => {
+                        }}/></td>
+                    </tr>})}
+                    </tbody>
+                </table>
+            </Container>
+        </>
+    )
+}
+
+export default ConnectedAccountsTable;
Index: frontend/src/Components/Forms/AddItemMenuForm.js
===================================================================
--- frontend/src/Components/Forms/AddItemMenuForm.js	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ frontend/src/Components/Forms/AddItemMenuForm.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -4,4 +4,5 @@
 import useFormData from "../Hooks/useFormData";
 import useCreateMenu from "../Hooks/Restaurant/useCreateMenu"
+import useCreate from "../Hooks/useCreate";
 
 const AddItemMenuForm = (props) => {
@@ -9,4 +10,5 @@
 
   const edit = props.menu
+  console.log(props.menu)
   const dummy =     {
     name: "",
@@ -23,4 +25,5 @@
     edit ? props.menu : dummy
   );
+  const { createEntity } = useCreate();
 
   return (
@@ -72,8 +75,11 @@
               onClick={(e) => {
                 e.preventDefault();
-                createMenu(props.Id, formData)
-                props.refresh((prevState) => {
-                  return prevState + 1;
-                })
+                if(!edit) {
+                  createMenu(props.Id, formData, props.refresh)
+                }
+                else {
+                  createEntity(`/menu/${props.menu.menuId}/edit`, formData, props.refresh)
+                }
+
               }}
             >
Index: frontend/src/Components/Forms/AddTripForm.js
===================================================================
--- frontend/src/Components/Forms/AddTripForm.js	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ frontend/src/Components/Forms/AddTripForm.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -272,9 +272,6 @@
 
                                     for (let i = 0; i < Object.values(routesForm).length; i++) {
-                                        console.log(findDependantRoutes(wayPointNames, routesForm, i))
                                         setDependencies(prevState => [...prevState, findDependantRoutes(wayPointNames, routesForm, i)])
                                     }
-                                    console.log('VO STATEOOOO')
-                                    console.log(dependencies)
                                     routesSetFormData(routesForm)
                                     setRoutes(routesVar)
Index: frontend/src/Components/Hooks/Restaurant/useCreateMenu.js
===================================================================
--- frontend/src/Components/Hooks/Restaurant/useCreateMenu.js	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ frontend/src/Components/Hooks/Restaurant/useCreateMenu.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -7,5 +7,5 @@
 	const navigator = useNavigate();
 
-    const createMenu = async (id, menu) => {
+    const createMenu = async (id, menu, dep) => {
 		console.log(menu)
         console.log(id)
@@ -18,4 +18,5 @@
 					//navigator("/resources/restaurant/" + id)
 	                //history.push('/restaurant');
+					dep(prev => ++prev)
 	            })
 	            .catch((err) => {
Index: frontend/src/Components/Hooks/User/useCreateUser.js
===================================================================
--- frontend/src/Components/Hooks/User/useCreateUser.js	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ frontend/src/Components/Hooks/User/useCreateUser.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -10,5 +10,5 @@
 	            .post(`/register`, user) 
 	            .then((res) => {
-	                navigator("/login")
+	                window.location.href = "http://localhost:8080/login"
 	            })
 	            .catch((err) => {
Index: frontend/src/Components/Hooks/User/useLogin.js
===================================================================
--- frontend/src/Components/Hooks/User/useLogin.js	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ frontend/src/Components/Hooks/User/useLogin.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -1,64 +1,35 @@
-import React from "react";
-
+import { useState } from "react";
 import axios from "../../../axios.js";
-import { Navigate, useAsyncValue, useNavigate } from "react-router-dom";
-import LoginForm from "../../Login/LoginForm.js";
-import {useAuth} from "../../Context/AuthContext";
+import {useAuth} from "../../Context/AuthContext"; // Assuming you have axios configured
 
 const useLogin = () => {
+	const [loading, setLoading] = useState(false);
+	const [error, setError] = useState(null);
+	const Auth = useAuth();
 
-    const navigator = useNavigate()
-	const Auth = useAuth();
-    //const history = useNavigate();
-    const login = async (loginData) => {
-		console.log({loginData})
-		console.log(loginData)
-        await axios
-	            .post(`/api/login`, {
-                    username: loginData.email,
-                    password: loginData.password
-                }, {
-                    headers: { 
-                        "Content-Type": "application/x-www-form-urlencoded"
-                    }
-                }) 
-	            .then((res) => {
-					console.log("RES LOGIN")
-					console.log(res)
-					if(res.status === 200)
-					{
-						const user = {
-							sessionId: res.data.auth.details.sessionId,
-							userId: res.data.auth.principal.userID,
-							username: res.data.auth.principal.username,
-							role: res.data.auth.principal.role,
-							name: res.data.auth.principal.name,
-							surname: res.data.auth.principal.surname,
-						}
-						Auth.userLogin(user);
-						console.log(user)
-					}
-					const sessionId = res.data.auth.details.sessionId;
-					const userId = res.data.auth.principal.userID;
+	const handleLoginCallback = async () => {
+		setLoading(true);
 
-					localStorage.setItem("sessionId", sessionId);
-					localStorage.setItem("userId", userId);
-					if(sessionId === null)
-					{
-					}
-                    navigator("/home")
-	            })
-	            .catch((err) => {
-	                console.log(err);
-	            })
-	            .finally(() => {
-	            });
-    }
+		try {
+			const response = await axios.get("http://localhost:8080/principal");
+
+			// Extract the needed attributes from the response
+			const { id, role, username } = response.data;
+
+			Auth.userLogin({userId: id, username: username, role: role})
+
+		} catch (err) {
+			setError(err.message);
+		} finally {
+			setLoading(false);
+		}
+	};
 
 	return {
-		login
+		loading,
+		error,
+		handleLoginCallback,
 	};
-
-}
+};
 
 export default useLogin;
Index: frontend/src/Components/Hooks/useCreate.js
===================================================================
--- frontend/src/Components/Hooks/useCreate.js	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ frontend/src/Components/Hooks/useCreate.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -15,6 +15,4 @@
             .then((res) => {
                 //history.push('/hotel');
-                console.log(res)
-                console.log("gotovo")
                 getData(prev => ++prev)
                 getData2(prev => ++prev)
Index: frontend/src/Components/Layout/Navbar/Navigation.js
===================================================================
--- frontend/src/Components/Layout/Navbar/Navigation.js	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ frontend/src/Components/Layout/Navbar/Navigation.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -63,5 +63,5 @@
                   style={{ backgroundColor: "#159895" }}
                   onClick={() => {
-                    navigator("/login");
+                    window.location.href = ("http://localhost:8080/login");
                   }}
                 >
Index: frontend/src/Components/Listings/HotelListing.js
===================================================================
--- frontend/src/Components/Listings/HotelListing.js	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ frontend/src/Components/Listings/HotelListing.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -1,3 +1,3 @@
-import {Col, Container, Image, Row, Button} from "react-bootstrap";
+import {Col, Container, Image, Row, Button, Badge} from "react-bootstrap";
 import {BsFillPersonFill} from "react-icons/bs";
 import {MdOutlineLocalOffer} from "react-icons/md";
@@ -5,5 +5,18 @@
 
 function HotelListing(props) {
+
+    const getMarketingMessage = (num) => {
+        switch (num){
+            case 1:
+                return "Достапно само денес"
+            case 2:
+                return "Последна соба"
+            case 3:
+                return "Специјална цена"
+        }
+    }
+
     console.log(props)
+    const randomInt = Math.floor(Math.random() * (3)) + 1;
     return (
         <>
@@ -15,4 +28,5 @@
                     boxShadow: "0 3px 5px lightblue",
                     maxWidth: "60%",
+                    backgroundColor: props.data.promoted ? "#e1f7fa" : ""
                 }}
             >
@@ -31,5 +45,8 @@
                     <Col>
                         <Row>
-                            <h3>{props.data.hotelName}</h3>
+                            <h3>{props.data.hotelName}
+                            {props.data.marketed && randomInt !== 3 && <h6><Badge bg="warning">{getMarketingMessage(randomInt)}</Badge></h6>}
+                            {props.data.promoted && <h6><Badge bg="primary">Најпопуларно</Badge></h6>}
+                            </h3>
                         </Row>
                         <Row>
@@ -90,5 +107,6 @@
                                 >
                                     <Row>
-                                        <h4>{props.data.totalPrice}$</h4>
+                                        <h4>{props.data.marketed && randomInt === 3 && <h6><Badge bg="warning">{getMarketingMessage(randomInt)}</Badge></h6>}
+                                            {props.data.totalPrice}$</h4>
                                     </Row>
                                     <Row className="w-100">
Index: frontend/src/Components/Login/LoginForm.js
===================================================================
--- frontend/src/Components/Login/LoginForm.js	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ frontend/src/Components/Login/LoginForm.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -5,14 +5,17 @@
 import useLogin from "../Hooks/User/useLogin";
 import { Link } from "react-router-dom";
+import useCreate from "../Hooks/useCreate";
+import {useAuth} from "../Context/AuthContext";
 
-const LoginForm = () => {
+const LoginForm = (props) => {
   const { formData, onFormChange, onCheckBoxChange, setFormData } = useFormData(
     {
-      email: "",
+      username: "",
       password: "",
     }
   );
 
-  const { login } = useLogin();
+  const { createEntity } = useCreate();
+  const Auth = useAuth();
 
   return (
@@ -27,11 +30,8 @@
             type="email"
             placeholder="Enter email"
-            name="email"
+            name="username"
             onChange={onFormChange}
             value={formData.email}
           />
-          <Form.Text className="text-muted">
-            Вашите податоци никогаш нема да бидат споделени.
-          </Form.Text>
         </Form.Group>
 
@@ -46,12 +46,12 @@
           />
         </Form.Group>
-        <Form.Group className="mb-3" controlId="formBasicCheckbox">
-          <Form.Check type="checkbox" label="Check me out" />
-        </Form.Group>
-        <Link to={"/register"} style={{textDecoration: "none"}}>
-          <Form.Text className="text-muted" style={{color: "#159895!important"}} >
-            Регистритрај се
-          </Form.Text>
-        </Link>
+        {/*<Form.Group className="mb-3" controlId="formBasicCheckbox">*/}
+        {/*  <Form.Check type="checkbox" label="Check me out" />*/}
+        {/*</Form.Group>*/}
+        {/*<Link to={"/register"} style={{textDecoration: "none"}}>*/}
+        {/*  <Form.Text className="text-muted" style={{color: "#159895!important"}} >*/}
+        {/*    Регистритрај се*/}
+        {/*  </Form.Text>*/}
+        {/*</Link>*/}
         <Form.Group className="my-1">
           <Button
@@ -62,5 +62,5 @@
               e.preventDefault();
               console.log(formData);
-              login(formData)
+              createEntity(`/users/${Auth.getUser().userId}/connect`, formData, props.refresh)
             }}
           >
@@ -68,5 +68,5 @@
               <AiFillLock />
             </span>
-            <span className="ikona mx-3">Најави се</span>
+            <span className="ikona mx-3">Поврзи</span>
           </Button>
         </Form.Group>
Index: frontend/src/Components/LoginCallback.js
===================================================================
--- frontend/src/Components/LoginCallback.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ frontend/src/Components/LoginCallback.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,23 @@
+import React, { useEffect } from "react";
+import { useLocation, useNavigate } from "react-router-dom";
+import useLogin from "./Hooks/User/useLogin";
+
+const LoginCallbackComponent = () => {
+    const location = useLocation();
+    const navigator = useNavigate();
+    const { handleLoginCallback } = useLogin();
+
+    useEffect(() => {
+        // Call a function to handle the callback and extract data
+        handleLoginCallback();
+        navigator("/home");
+    }, []);
+
+    return (
+        <div>
+            Redirecting...
+        </div>
+    );
+};
+
+export default LoginCallbackComponent;
Index: frontend/src/Components/Misc/PrivateRoute.js
===================================================================
--- frontend/src/Components/Misc/PrivateRoute.js	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ frontend/src/Components/Misc/PrivateRoute.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -5,5 +5,13 @@
 function PrivateRoute({ children }) {
   const { userIsAuthenticated } = useAuth()
-  return userIsAuthenticated() ? children : <Navigate to="/login" />
+  if(userIsAuthenticated())
+  {
+    return children;
+  }
+  else
+  {
+    window.location.href = "http://localhost:8080/login";
+  }
+  return userIsAuthenticated() ? children : <Navigate to="http://localhost:8080/login" />
 }
 
Index: frontend/src/Components/ProfilePage/DataForm.js
===================================================================
--- frontend/src/Components/ProfilePage/DataForm.js	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ frontend/src/Components/ProfilePage/DataForm.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -11,5 +11,5 @@
 
   const handleClose = () =>  setShow(false);
-  const handleShow = (e) => { 
+  const handleShow = (e) => {
     e.preventDefault();
     setShow(true);
@@ -29,5 +29,6 @@
             <Form.Group as={Col} controlId="name">
               <Form.Label>Име</Form.Label>
-              <Form.Control type="text" value={props.data["name"]} />
+              <Form.Control type="text" value={props.data["name"]}
+              name={"name"}/>
             </Form.Group>
 
@@ -38,4 +39,5 @@
                 placeholder=""
                 value={props.data["surname"]}
+                name={"surname"}
               />
             </Form.Group>
@@ -45,5 +47,6 @@
             <Form.Group as={Col} controlId="name">
               <Form.Label>Датум на раѓање</Form.Label>
-              <Form.Control type="date" value={props.data["dateOfBirth"]} />
+              <Form.Control type="date" value={props.data["dateOfBirth"]}
+              name={"dateOfBirth"}/>
             </Form.Group>
 
@@ -54,4 +57,5 @@
                 placeholder=""
                 value={props.data["country"]}
+                name={"country"}
               />
             </Form.Group>
@@ -60,5 +64,6 @@
           <Form.Group className="mb-3" controlId="address">
             <Form.Label>Адреса</Form.Label>
-            <Form.Control type="text" value={props.data["address"]} />
+            <Form.Control type="text" value={props.data["address"]}
+            name={"address"}/>
           </Form.Group>
 
@@ -66,5 +71,6 @@
             <Form.Group as={Col} controlId="city">
               <Form.Label>Град</Form.Label>
-              <Form.Control type="text" value={props.data["city"]} />
+              <Form.Control type="text" value={props.data["city"]}
+              name={"city"}/>
             </Form.Group>
 
@@ -75,4 +81,5 @@
                 placeholder=""
                 value={props.data["zip"]}
+                name={"zip"}
               />
             </Form.Group>
@@ -82,5 +89,6 @@
             <Form.Group as={Col} controlId="email">
               <Form.Label>Email</Form.Label>
-              <Form.Control type="email" value={props.data["email"]} />
+              <Form.Control type="email" value={props.data["email"]}
+              name={"email"}/>
             </Form.Group>
 
@@ -91,4 +99,5 @@
                 placeholder=""
                 value={props.data["mobile"]}
+                name={"mobile"}
               />
             </Form.Group>
Index: frontend/src/Components/RestaurantDetails/MenuItem.js
===================================================================
--- frontend/src/Components/RestaurantDetails/MenuItem.js	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ frontend/src/Components/RestaurantDetails/MenuItem.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -6,5 +6,4 @@
 
     const data = props.data;
-    console.log("dva orla")
     console.log(props)
     return (<>
Index: frontend/src/Pages/ConnectedAccountsPage.js
===================================================================
--- frontend/src/Pages/ConnectedAccountsPage.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ frontend/src/Pages/ConnectedAccountsPage.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,38 @@
+import React from "react";
+import Navigation from "../Components/Layout/Navbar/Navigation";
+import {Container, Row} from "react-bootstrap";
+import ConnectedAccountsTable from "../Components/ConnectedAccounts/ConnectedAccountsTable";
+import LoginForm from "../Components/Login/LoginForm";
+import {useAuth} from "../Components/Context/AuthContext";
+import useGet from "../Components/Hooks/useGet";
+
+const ConnectedAccountsPage = () => {
+    const Auth = useAuth();
+    console.log(Auth.getUser())
+    const { data, isLoading, setData, getData, setChanged } = useGet(`/users/${Auth.getUser().userId}/connected`);
+
+
+    return (
+        <>
+            <Navigation/>
+            <Container>
+                <Row className="mb-5">
+                    <h2 style={{color: "#159895", textAlign: "left"}}>Поврзани профили</h2>
+                </Row>
+            </Container>
+            <Container>
+                {!isLoading && <ConnectedAccountsTable data={data}></ConnectedAccountsTable>}
+            </Container>
+            <Container className={'mt-5'}>
+                <Row className="mb-5">
+                    <h2 style={{color: "#159895", textAlign: "left"}}>Поврзи нов локален профил</h2>
+                </Row>
+            </Container>
+            <Container className={'w-50'}>
+                <LoginForm refresh={setChanged}></LoginForm>
+            </Container>
+        </>
+    )
+}
+
+export default ConnectedAccountsPage;
Index: frontend/src/Pages/NoBusinessRegisteredError.js
===================================================================
--- frontend/src/Pages/NoBusinessRegisteredError.js	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ frontend/src/Pages/NoBusinessRegisteredError.js	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -14,5 +14,5 @@
   const Auth = useAuth();
   const isLoggedIn = Auth.userIsAuthenticated();
-  const userId = localStorage.getItem("userId")
+  const userId = Auth.getUser().userId
   const [registered, setRegistered] = useState(false);
   let checked = false;
@@ -26,5 +26,6 @@
   
   const { data: firma, isLoading: firmaIsLoading, getData: getFirmi} = useGet("/business/" + userId + "/unapproved", changed)
-  
+  const { data, isLoading, getData} = useGet("/" + userId + "/hasBusiness")
+
 
   useEffect(() => {
@@ -52,5 +53,5 @@
   }
 
-  !firmaIsLoading && firma && firma.length > 0 && firma[0].approved && navigator("/resources/hotel")
+  !isLoading && data && navigator("/resources/hotel")
   
 
Index: pom.xml
===================================================================
--- pom.xml	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ pom.xml	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -19,4 +19,12 @@
 	</properties>
 	<dependencies>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-oauth2-client</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-mail</artifactId>
+		</dependency>
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
Index: src/main/java/com/tourMate/TourMateApplication.java
===================================================================
--- src/main/java/com/tourMate/TourMateApplication.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/TourMateApplication.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -3,8 +3,17 @@
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+import org.springframework.mail.javamail.JavaMailSender;
+import org.springframework.mail.javamail.JavaMailSenderImpl;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+import java.util.Properties;
 
 @SpringBootApplication
 @EnableTransactionManagement
+@EnableScheduling
 public class TourMateApplication {
 
@@ -13,3 +22,26 @@
 	}
 
+	@Bean
+	public PasswordEncoder passwordEncoder() {
+		return new BCryptPasswordEncoder();
+	}
+
+	@Bean
+	public JavaMailSender getJavaMailSender() {
+		JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
+		mailSender.setHost("smtp.gmail.com");
+		mailSender.setPort(587);
+
+		mailSender.setUsername("trip2mk@gmail.com");
+		mailSender.setPassword("xarb ggqg mvmr zciw");
+
+		Properties props = mailSender.getJavaMailProperties();
+		props.put("mail.transport.protocol", "smtp");
+		props.put("mail.smtp.auth", "true");
+		props.put("mail.smtp.starttls.enable", "true");
+		props.put("mail.debug", "true");
+
+		return mailSender;
+	}
+
 }
Index: src/main/java/com/tourMate/config/SecurityConfig.java
===================================================================
--- src/main/java/com/tourMate/config/SecurityConfig.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/config/SecurityConfig.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -1,6 +1,8 @@
 package com.tourMate.config;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
-import jakarta.servlet.http.HttpServletResponse;
+import com.tourMate.config.oauth2.CustomOAuth2FailureHandler;
+import com.tourMate.config.oauth2.CustomOAuth2SuccessHandler;
+import com.tourMate.config.oauth2.CustomOAuth2UserDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -10,6 +12,4 @@
 import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
 import org.springframework.security.config.http.SessionCreationPolicy;
-import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.security.web.SecurityFilterChain;
 import org.springframework.security.web.authentication.logout.HttpStatusReturningLogoutSuccessHandler;
@@ -26,4 +26,10 @@
 
     private final UserSecurity userSecurity;
+    @Autowired
+    private CustomOAuth2UserDetailService customOAuth2UserDetailService;
+    @Autowired
+    private CustomOAuth2FailureHandler oAuth2FailureHandler;
+    @Autowired
+    private CustomOAuth2SuccessHandler oAuth2SuccessHandler;
 
     public SecurityConfig(UserSecurity userSecurity) {
@@ -56,8 +62,4 @@
         return bean;
     }
-    @Bean
-    public PasswordEncoder passwordEncoder() {
-        return new BCryptPasswordEncoder();
-    }
 
     @Bean
@@ -76,25 +78,24 @@
                                         .requestMatchers(new AntPathRequestMatcher("/upload")).permitAll()
                                         .requestMatchers(new AntPathRequestMatcher("/business/approve/*")).hasAnyAuthority("SUPERADMIN")
+                                        .requestMatchers(new AntPathRequestMatcher("/users/unlock/*")).hasAnyAuthority("SUPERADMIN")
+                                        .requestMatchers(new AntPathRequestMatcher("/users/approve/*")).hasAnyAuthority("SUPERADMIN")
+                                        .requestMatchers(new AntPathRequestMatcher("/business/unapproved")).hasAnyAuthority("SUPERADMIN")
                                         .requestMatchers(new AntPathRequestMatcher("/business/add/*")).authenticated()
                                         .requestMatchers(new AntPathRequestMatcher("/*/user/{userId}")).access(userSecurity)
-                                        .anyRequest().permitAll()
-//                                        .anyRequest().authenticated()
+//                                        .anyRequest().permitAll()
+                                        .anyRequest().authenticated()
+                                        .and()
+                                        .oauth2Login()
+                                        .loginPage("/login")
+                                        .permitAll()
+                                        .userInfoEndpoint(x -> x.userService(customOAuth2UserDetailService))
+//                                        .userService(customOAuth2UserDetailService)
+                                        .successHandler(oAuth2SuccessHandler)
+                                        .failureHandler(oAuth2FailureHandler)
                                         .and()
                                         .formLogin()
-                                        .loginProcessingUrl("/api/login").usernameParameter("username").passwordParameter("password")
-                                        .successHandler((request, response, authentication) -> {
-                                            response.setStatus(HttpServletResponse.SC_OK);
-                                            response.setCharacterEncoding("UTF-8");
-                                            response.setContentType("application/json");
-                                            response.getWriter().print("{\"message\": \"Login successful\",");
-                                            response.getWriter().print("\"auth\":" + new ObjectMapper().writeValueAsString(authentication) + "}");
-                                            response.getWriter().flush();
-                                        })
-                                        .failureHandler((request, response, exception) -> {
-                                            response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
-                                            response.sendRedirect("/login");
-                                            response.getWriter().print("Neuspesna najava\n" + exception.getMessage());
-                                            response.getWriter().flush();
-                                        })
+                                        .loginPage("/login")
+                                        .successHandler(oAuth2SuccessHandler)
+                                        .permitAll()
                                         .permitAll()
                                         .and()
Index: src/main/java/com/tourMate/config/UserSecurity.java
===================================================================
--- src/main/java/com/tourMate/config/UserSecurity.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/config/UserSecurity.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -1,4 +1,6 @@
 package com.tourMate.config;
 
+import com.tourMate.config.oauth2.CustomOAuth2UserDetailService;
+import com.tourMate.config.oauth2.OAuth2UserDetailsCustom;
 import com.tourMate.entities.Hotels;
 import com.tourMate.entities.User;
@@ -25,8 +27,15 @@
     public boolean hasUserId(Authentication authentication, Long userId) {
         System.out.println(userId);
-        User user = (User) authentication.getPrincipal();
-        System.out.println(user.getUserID());
-        System.out.println(authentication.getPrincipal());
-        return userId == user.getUserID();
+        Long id;
+        if(authentication.getPrincipal() instanceof OAuth2UserDetailsCustom oAuth2UserDetailsCustom)
+        {
+            id = oAuth2UserDetailsCustom.getId();
+        }
+        else
+        {
+            User user = (User) authentication.getPrincipal();
+            id = user.getUserID();
+        }
+        return userId == id;
     }
 
Index: src/main/java/com/tourMate/config/oauth2/CustomOAuth2FailureHandler.java
===================================================================
--- src/main/java/com/tourMate/config/oauth2/CustomOAuth2FailureHandler.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/config/oauth2/CustomOAuth2FailureHandler.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,18 @@
+package com.tourMate.config.oauth2;
+
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+
+@Component
+public class CustomOAuth2FailureHandler extends SimpleUrlAuthenticationFailureHandler {
+    @Override
+    public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException {
+        getRedirectStrategy().sendRedirect(request, response, "/login");
+    }
+}
Index: src/main/java/com/tourMate/config/oauth2/CustomOAuth2SuccessHandler.java
===================================================================
--- src/main/java/com/tourMate/config/oauth2/CustomOAuth2SuccessHandler.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/config/oauth2/CustomOAuth2SuccessHandler.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,19 @@
+package com.tourMate.config.oauth2;
+
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+
+@Component
+public class CustomOAuth2SuccessHandler extends SimpleUrlAuthenticationSuccessHandler {
+    @Override
+    public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
+//        OAuth2UserDetailsCustom oAuth2UserDetailsCustom = (OAuth2UserDetailsCustom) authentication.getPrincipal();
+        getRedirectStrategy().sendRedirect(request, response, "http://localhost:3000/login-callback");
+    }
+}
Index: src/main/java/com/tourMate/config/oauth2/CustomOAuth2UserDetailService.java
===================================================================
--- src/main/java/com/tourMate/config/oauth2/CustomOAuth2UserDetailService.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/config/oauth2/CustomOAuth2UserDetailService.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,93 @@
+package com.tourMate.config.oauth2;
+
+import com.tourMate.dao.UsersDao;
+import com.tourMate.entities.Role;
+import com.tourMate.entities.User;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+import org.springframework.security.oauth2.client.userinfo.DefaultOAuth2UserService;
+import org.springframework.security.oauth2.client.userinfo.OAuth2UserRequest;
+import org.springframework.security.oauth2.core.OAuth2AuthenticationException;
+import org.springframework.security.oauth2.core.user.OAuth2User;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import java.util.Collections;
+import java.util.Objects;
+
+@Service
+public class CustomOAuth2UserDetailService extends DefaultOAuth2UserService {
+
+    private final UsersDao usersDao;
+
+    public CustomOAuth2UserDetailService(UsersDao usersDao) {
+        this.usersDao = usersDao;
+    }
+
+    @Override
+    public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException {
+        OAuth2User oAuth2User = super.loadUser(userRequest);
+
+        try
+        {
+            return checkOAuth2User(userRequest, oAuth2User);
+        }
+        catch (AuthenticationException e)
+        {
+            throw e;
+        }
+        catch (Exception ex)
+        {
+            throw ex;
+            //throw new InternalAuthenticationServiceException(ex.getMessage(), ex.getCause());
+        }
+    }
+
+    private OAuth2User checkOAuth2User(OAuth2UserRequest oAuth2UserRequest, OAuth2User oAuth2User)
+    {
+        OAuth2UserDetails oAuth2UserDetails = OAuth2UserDetailsFactory
+                .createOAuth2UserDetails(oAuth2UserRequest.getClientRegistration().getRegistrationId(), oAuth2User.getAttributes());
+
+        if(ObjectUtils.isEmpty(oAuth2UserRequest))
+        {
+            throw new RuntimeException("Cannot identifty OAuth2 user!");
+        }
+
+        User user = usersDao.findByUsernameAndProvider(
+                oAuth2UserDetails.getEmail(),
+                oAuth2UserRequest.getClientRegistration().getRegistrationId());
+        User userDetails = null;
+        if(user != null)
+        {
+            userDetails = user;
+            userDetails = updateOAuth2UserDetail(userDetails, oAuth2UserDetails);
+        }
+        else
+        {
+            userDetails = registerOAuth2UserDetail(oAuth2UserRequest, oAuth2UserDetails);
+        }
+        return new OAuth2UserDetailsCustom(
+                userDetails.getUserID(),
+                userDetails.getUsername(),
+                userDetails.getPassword(),
+                Collections.singletonList(new SimpleGrantedAuthority(userDetails.getRole().getRoleName()))
+        );
+    }
+
+    public User registerOAuth2UserDetail(OAuth2UserRequest oAuth2UserRequest, OAuth2UserDetails oAuth2UserDetails)
+    {
+        Role r = usersDao.findById(1L);
+        User user = new User();
+        user.setName(Objects.requireNonNullElse(oAuth2UserDetails.getName(), ""));
+        user.setEmail(oAuth2UserDetails.getEmail());
+        user.setProvider(oAuth2UserRequest.getClientRegistration().getRegistrationId());
+        user.setRole(r);
+        return usersDao.updateUser(user);
+    }
+
+    public User updateOAuth2UserDetail(User user, OAuth2UserDetails oAuth2UserDetails)
+    {
+        user.setEmail(oAuth2UserDetails.getEmail());
+        return usersDao.mergeUser(user);
+    }
+}
Index: src/main/java/com/tourMate/config/oauth2/OAuth2FacebookUser.java
===================================================================
--- src/main/java/com/tourMate/config/oauth2/OAuth2FacebookUser.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/config/oauth2/OAuth2FacebookUser.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,19 @@
+package com.tourMate.config.oauth2;
+
+import java.util.Map;
+
+public class OAuth2FacebookUser extends OAuth2UserDetails{
+    public OAuth2FacebookUser(Map<String, Object> attributes) {
+        super(attributes);
+    }
+
+    @Override
+    public String getName() {
+        return (String) attributes.get("name");
+    }
+
+    @Override
+    public String getEmail() {
+        return (String) attributes.get("email");
+    }
+}
Index: src/main/java/com/tourMate/config/oauth2/OAuth2GitHubUser.java
===================================================================
--- src/main/java/com/tourMate/config/oauth2/OAuth2GitHubUser.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/config/oauth2/OAuth2GitHubUser.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,19 @@
+package com.tourMate.config.oauth2;
+
+import java.util.Map;
+
+public class OAuth2GitHubUser extends OAuth2UserDetails{
+    public OAuth2GitHubUser(Map<String, Object> attributes) {
+        super(attributes);
+    }
+
+    @Override
+    public String getName() {
+        return (String) attributes.get("name");
+    }
+
+    @Override
+    public String getEmail() {
+        return (String) attributes.get("login");
+    }
+}
Index: src/main/java/com/tourMate/config/oauth2/OAuth2GoogleUser.java
===================================================================
--- src/main/java/com/tourMate/config/oauth2/OAuth2GoogleUser.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/config/oauth2/OAuth2GoogleUser.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,19 @@
+package com.tourMate.config.oauth2;
+
+import java.util.Map;
+
+public class OAuth2GoogleUser extends OAuth2UserDetails{
+    public OAuth2GoogleUser(Map<String, Object> attributes) {
+        super(attributes);
+    }
+
+    @Override
+    public String getName() {
+        return (String) attributes.get("name");
+    }
+
+    @Override
+    public String getEmail() {
+        return (String) attributes.get("email");
+    }
+}
Index: src/main/java/com/tourMate/config/oauth2/OAuth2UserDetails.java
===================================================================
--- src/main/java/com/tourMate/config/oauth2/OAuth2UserDetails.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/config/oauth2/OAuth2UserDetails.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,14 @@
+package com.tourMate.config.oauth2;
+
+import java.util.Map;
+
+public abstract class OAuth2UserDetails {
+    protected Map<String, Object> attributes;
+
+    public OAuth2UserDetails(Map<String, Object> attributes) {
+        this.attributes = attributes;
+    }
+
+    public abstract String getName();
+    public abstract String getEmail();
+}
Index: src/main/java/com/tourMate/config/oauth2/OAuth2UserDetailsCustom.java
===================================================================
--- src/main/java/com/tourMate/config/oauth2/OAuth2UserDetailsCustom.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/config/oauth2/OAuth2UserDetailsCustom.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,83 @@
+package com.tourMate.config.oauth2;
+
+import jakarta.persistence.Column;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.oauth2.core.user.OAuth2User;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+public class OAuth2UserDetailsCustom implements OAuth2User, UserDetails {
+
+    Long id;
+    String username;
+    String password;
+    List<GrantedAuthority> authorities;
+    Map<String, Object> attributes;
+    Boolean locked = true;
+    Boolean enabled = true;
+    Boolean expired = false;
+
+
+    public OAuth2UserDetailsCustom(Long id, String username, String password, List<GrantedAuthority> authorities) {
+        this.id = id;
+        this.username = username;
+        this.password = password;
+        this.authorities = authorities;
+    }
+
+    @Override
+    public String getPassword() {
+        return password;
+    }
+
+    @Override
+    public String getUsername() {
+        return username;
+    }
+
+    @Override
+    public boolean isAccountNonExpired() {
+        return expired;
+    }
+
+    @Override
+    public boolean isAccountNonLocked() {
+        return locked;
+    }
+
+    @Override
+    public boolean isCredentialsNonExpired() {
+        return true;
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return enabled;
+    }
+
+    @Override
+    public Map<String, Object> getAttributes() {
+        return attributes;
+    }
+
+    @Override
+    public Collection<? extends GrantedAuthority> getAuthorities() {
+        return authorities;
+    }
+
+    @Override
+    public String getName() {
+        return String.valueOf(id);
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+}
Index: src/main/java/com/tourMate/config/oauth2/OAuth2UserDetailsFactory.java
===================================================================
--- src/main/java/com/tourMate/config/oauth2/OAuth2UserDetailsFactory.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/config/oauth2/OAuth2UserDetailsFactory.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,27 @@
+package com.tourMate.config.oauth2;
+
+import com.tourMate.entities.Providers;
+
+import java.util.Map;
+
+public class OAuth2UserDetailsFactory {
+    public static OAuth2UserDetails createOAuth2UserDetails (String registrationId, Map<String, Object> attributes)
+    {
+        if(registrationId.equals(Providers.google.name()))
+        {
+            return new OAuth2GoogleUser(attributes);
+        }
+        else if(registrationId.equals(Providers.facebook.name()))
+        {
+            return new OAuth2FacebookUser(attributes);
+        }
+        else if(registrationId.equals(Providers.github.name()))
+        {
+            return new OAuth2GitHubUser(attributes);
+        }
+        else
+        {
+            throw  new RuntimeException("Login with this provider is not supported!");
+        }
+    }
+}
Index: src/main/java/com/tourMate/controllers/HotelController.java
===================================================================
--- src/main/java/com/tourMate/controllers/HotelController.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/controllers/HotelController.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -35,5 +35,4 @@
             return ResponseEntity.ok(hoteli);
         } catch (Exception e) {
-            // Handle the exception, log it, and return an error response
             return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
         }
@@ -41,8 +40,6 @@
 
     @GetMapping(path = "/hotel/user/{id}")
-    public ResponseEntity<List<Hotels>> getHotelsForUser (@PathVariable(name = "id") long userId)
-    {
-        try {
-
+    public ResponseEntity<List<Hotels>> getHotelsForUser(@PathVariable(name = "id") long userId) {
+        try {
             List<Hotels> hoteli = hotelManager.getHotelsForUser(userId);
             return ResponseEntity.ok(hoteli);
@@ -53,8 +50,6 @@
 
     @GetMapping(path = "/hotel/{id}/list")
-    public ResponseEntity<Hotels> getHotelById (@PathVariable(name = "id") long hotelId)
-    {
-        try {
-
+    public ResponseEntity<Hotels> getHotelById(@PathVariable(name = "id") long hotelId) {
+        try {
             return ResponseEntity.ok(hotelManager.findHotelByID(hotelId));
         } catch (Exception e) {
@@ -65,6 +60,5 @@
 
     @PostMapping(path = "/hotel/edit")
-    public void edit(@RequestBody Hotels hotel)
-    {
+    public void edit(@RequestBody Hotels hotel) {
         hotelManager.editHotel(hotel.getHotelId(), hotel.getHotelName(), hotel.getHotelDescripiton(), hotel.getHotelLocation(), hotel.getHotelEDBS(), hotel.getParking(), hotel.getPetFriendly(), hotel.getInternetAvailable());
     }
@@ -72,15 +66,11 @@
     @GetMapping(path = "/hotel/delete")
     public ResponseEntity remove(@RequestParam(name = "hotelId") long hotelId) {
-        try
-        {
+        try {
             hotelManager.deleteHotel(hotelId);
             return new ResponseEntity(HttpStatus.OK);
-        }
-        catch (Exception exception)
-        {
-            return new ResponseEntity(HttpStatus.NOT_FOUND);
-        }
-    }
-
+        } catch (Exception exception) {
+            return new ResponseEntity(HttpStatus.NOT_FOUND);
+        }
+    }
 
 
@@ -90,6 +80,5 @@
             hotelManager.deleteHotelImage(hotelId);
             return new ResponseEntity(HttpStatus.OK);
-        }
-        catch (Exception exception) {
+        } catch (Exception exception) {
             return new ResponseEntity(HttpStatus.NOT_FOUND);
         }
@@ -97,6 +86,5 @@
 
     @GetMapping(path = "/hotel/{id}/room")
-    public List<HotelRoom> getHotelRooms(@PathVariable(value = "id") long hotelId)
-    {
+    public List<HotelRoom> getHotelRooms(@PathVariable(value = "id") long hotelId) {
         System.out.println("ovde so id: " + hotelId);
         return hotelManager.getRoomsOfHotel(hotelId);
@@ -108,6 +96,5 @@
     public void addRoom(@RequestBody HotelRoom room,
                         @RequestParam(name = "hotelId") long hotelId) {
-        Hotels h = hotelManager.findHotelByID(hotelId);
-        hotelManager.createRoom(h, room.getHotelRoomDescription(), room.getHotelRoomName(), room.getKitchenAvailable(), room.getAirConditioning(), room.getBalcony(), room.getPrice(), room.getNumOfBeds());
+        hotelManager.createRoom(hotelId, room.getHotelRoomDescription(), room.getHotelRoomName(), room.getKitchenAvailable(), room.getAirConditioning(), room.getBalcony(), room.getPrice(), room.getNumOfBeds());
     }
 
@@ -119,11 +106,8 @@
     @GetMapping(path = "/hotel/rooms/delete")
     public ResponseEntity removeRoom(@RequestParam(name = "hotelRoomId") long hotelRoomId) {
-        try
-        {
+        try {
             hotelManager.deleteRoom(hotelRoomId);
             return new ResponseEntity(HttpStatus.OK);
-        }
-        catch (Exception exception)
-        {
+        } catch (Exception exception) {
             return new ResponseEntity(HttpStatus.NOT_FOUND);
         }
@@ -139,40 +123,31 @@
     @GetMapping(path = "/hotel/rooms/reservation/delete")
     public ResponseEntity removeReservation(@RequestParam(name = "hotelRoomReservationId") long hotelRoomReservationId) {
-        try
-        {
+        try {
             hotelManager.deleteReservation(hotelRoomReservationId);
             return new ResponseEntity(HttpStatus.OK);
-        }
-        catch (Exception exception)
-        {
-            return new ResponseEntity(HttpStatus.NOT_FOUND);
-        }
-    }
-
-        //HOTEL AVAILABILITY CRUD
+        } catch (Exception exception) {
+            return new ResponseEntity(HttpStatus.NOT_FOUND);
+        }
+    }
+
+    //HOTEL AVAILABILITY CRUD
     @PostMapping(path = "/hotel/rooms/available/{id}/add")
     public void addRoomAvailible(@RequestBody HotelRoomAvailable hotelRoomAvailable,
-                                 @PathVariable long id)
-    {
-        HotelRoom hotelRoom = hotelManager.findRoomById(id);
-        hotelManager.createRoomAvailible(hotelRoom, hotelRoomAvailable.getDateFrom(), hotelRoomAvailable.getDateTo(), hotelRoomAvailable.getNumberOfBeds());
+                                 @PathVariable long id) {
+
+        hotelManager.createRoomAvailible(id, hotelRoomAvailable.getDateFrom(), hotelRoomAvailable.getDateTo(), hotelRoomAvailable.getNumberOfBeds());
     }
 
     @PostMapping(path = "/hotel/rooms/available/edit")
-    public void editRoomAvailible(@RequestBody HotelRoomAvailable hotelRoomAvailable)
-    {
+    public void editRoomAvailible(@RequestBody HotelRoomAvailable hotelRoomAvailable) {
         hotelManager.editRoomAvailible(hotelRoomAvailable.getHotelRoomAvailableId(), hotelRoomAvailable.getHotelRoom(), hotelRoomAvailable.getDateFrom(), hotelRoomAvailable.getDateTo(), hotelRoomAvailable.getNumberOfBeds());
     }
 
     @GetMapping(path = "/hotel/rooms/available/remove")
-    public ResponseEntity removeRoomAvailible(@RequestParam(name = "hotelRoomAvailibleId") long hotelRoomAvailibleId)
-    {
-        try
-        {
+    public ResponseEntity removeRoomAvailible(@RequestParam(name = "hotelRoomAvailibleId") long hotelRoomAvailibleId) {
+        try {
             hotelManager.deleteRoomAvailible(hotelRoomAvailibleId);
             return new ResponseEntity(HttpStatus.OK);
-        }
-        catch (Exception ex)
-        {
+        } catch (Exception ex) {
             return new ResponseEntity(HttpStatus.NOT_FOUND);
         }
@@ -180,6 +155,5 @@
 
     @GetMapping(path = "hotel/rooms/{id}/available")
-    public List<HotelRoomAvailable> getRoomAvailability(@PathVariable Long id)
-    {
+    public List<HotelRoomAvailable> getRoomAvailability(@PathVariable Long id) {
         return hotelManager.getRoomsAvailableById(id);
     }
@@ -190,19 +164,15 @@
                                                @RequestParam(name = "dateTo") @DateTimeFormat(pattern = "yyyy-MM-dd") Date dateTo,
                                                @RequestParam(name = "numBeds") int numBeds,
-                                               @RequestParam(name = "flexible") Boolean flexible)
-    {
-        System.out.println(flexible);
-        System.out.println(dateFrom + " " + dateTo);
+                                               @RequestParam(name = "flexible") Boolean flexible) {
         return hotelManager.getRoomsAvailibilityByDateAndLocation(hotelLocation, dateFrom, dateTo, numBeds, flexible);
     }
 
     @PostMapping(path = "/hotel/reserve")
-    public void reserveHotelRoom(@RequestParam(name = "hotelRoomId")Long hotelRoomId,
+    public void reserveHotelRoom(@RequestParam(name = "hotelRoomId") Long hotelRoomId,
                                  @RequestParam(name = "userId") Long userId,
                                  @RequestParam(name = "hotelRoomAvailableId") Long hotelRoomAvailableId,
                                  @RequestParam(name = "numberOfBeds") Integer numberOfBeds,
                                  @RequestParam(name = "from") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date from,
-                                 @RequestParam(name = "to") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date to){
-
+                                 @RequestParam(name = "to") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date to) {
 
 
@@ -211,35 +181,30 @@
 
     @GetMapping(path = "/hotel/{id}/reservations/active")
-    public List<HotelReservationDto> getActiveReservationsForHotel(@PathVariable Long id)
-    {
+    public List<HotelReservationDto> getActiveReservationsForHotel(@PathVariable Long id) {
         return hotelManager.findVaidReseravtionsByHotel(id);
     }
 
     @GetMapping(path = "/hotel/reservations/user/{id}")
-    public List<HotelReservationUserDto> getActiveReservationsForUser(@PathVariable Long id)
-    {
+    public List<HotelReservationUserDto> getActiveReservationsForUser(@PathVariable Long id) {
         return hotelManager.findValidHotelReservationsByUser(id);
     }
 
     @GetMapping(path = "/hotel/reservations/user/{id}/past")
-    public List<HotelReservationUserDto> getPastReservationsForUser(@PathVariable Long id)
-    {
+    public List<HotelReservationUserDto> getPastReservationsForUser(@PathVariable Long id) {
         return hotelManager.findPastHotelReservationsByUser(id);
     }
 
     @GetMapping(path = "/hotel/{id}/images")
-    public List<HotelsImages> getImagesForHotel(@PathVariable Long id)
-    {
+    public List<HotelsImages> getImagesForHotel(@PathVariable Long id) {
         return hotelManager.getHotelImages(id);
     }
 
     @GetMapping(path = "/room/{id}/images")
-    public List<HotelRoomImages> getImagesForHotelRoom(@PathVariable Long id)
-    {
+    public List<HotelRoomImages> getImagesForHotelRoom(@PathVariable Long id) {
         return hotelManager.getRoomImages(id);
     }
 
     @PostMapping("/hotel/{id}/cancel")
-    public void cancelHotelReservation(@PathVariable Long id){
+    public void cancelHotelReservation(@PathVariable Long id) {
         hotelManager.deleteReservation(id);
     }
Index: src/main/java/com/tourMate/controllers/RestaurantController.java
===================================================================
--- src/main/java/com/tourMate/controllers/RestaurantController.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/controllers/RestaurantController.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -6,4 +6,5 @@
 import com.tourMate.dto.RestaurantReservationUserDto;
 import com.tourMate.entities.*;
+import com.tourMate.services.MenuManager;
 import com.tourMate.services.RestaurantManager;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,4 +24,6 @@
     @Autowired
     RestaurantManager restaurantManager;
+    @Autowired
+    MenuManager menuManager;
 
     @PostMapping(path = "/restaurant/add")
@@ -34,4 +37,13 @@
     public void addMenu(@PathVariable(name = "id") long restaurantId, @RequestBody Menu menu) {
         restaurantManager.addMenuToRestaurant(restaurantId, menu);
+    }
+
+    @PostMapping(path = "/menu/{id}/edit")
+    public void editMenu(@PathVariable Long id,
+                         @RequestParam String name,
+                         @RequestParam String ingredients,
+                         @RequestParam double price)
+    {
+        menuManager.editMenu(id, name, ingredients, price);
     }
 
@@ -149,13 +161,6 @@
                                                          @RequestParam(name = "hourTo") String hourTo,
                                                          @RequestParam(name = "numPeople") int noSeats) {
-        Date dateFrom = date;
-        Date dateTo = Date.from(date.toInstant());
-        String[] splittedFrom = hourFrom.split(":");
-        String[] splittedTo = hourTo.split(":");
-        dateFrom.setHours(Integer.parseInt(splittedFrom[0]));
-        dateFrom.setMinutes(Integer.parseInt(splittedFrom[1]));
-        dateTo.setHours(Integer.parseInt(splittedTo[0]));
-        dateTo.setMinutes(Integer.parseInt(splittedTo[1]));
-        return restaurantManager.getTablesByDateAndLocation(restaurantLocation, dateFrom, dateTo, noSeats);
+
+        return restaurantManager.getTablesByDateAndLocation(restaurantLocation, date, hourFrom, hourTo, noSeats);
     }
 
Index: src/main/java/com/tourMate/controllers/ReviewController.java
===================================================================
--- src/main/java/com/tourMate/controllers/ReviewController.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/controllers/ReviewController.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -28,5 +28,4 @@
     public void edit(@RequestBody Reviews review)
     {
-//        editReview(long id, String title, String description, int numStar, Hotels hotel, Restaurants restaurant, Transport transport)
         reviewManager.editReview(review.getReviewId(), review.getTitle(), review.getDescription(), review.getNumStar(), review.getHotel(), review.getRestaurant(), review.getTransport());
     }
Index: src/main/java/com/tourMate/controllers/TransportController.java
===================================================================
--- src/main/java/com/tourMate/controllers/TransportController.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/controllers/TransportController.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -84,11 +84,6 @@
     @PostMapping(path = "/transport/available/add")
     public void add(@RequestBody TransportAvailible transportAvailable, @RequestParam(name = "transportId") long transportId) {
-        Transport t = transportManager.getTransportById(transportId);
-        List<TransportRoute> routes = transportAvailable.getRoutes().stream().toList();
-        routes.get(0).setDeparture(transportAvailable.getDate());
-        transportAvailable.setTime(routes.get(routes.size() - 1).getArrival());
-        routes.forEach(x -> x.setParentRoute(transportAvailable));
-        transportAvailable.setTransport(t);
-        transportManager.createTransportAvailable(transportAvailable.getTransport(), transportAvailable.getFrom(), transportAvailable.getTo(), transportAvailable.getDate(), transportAvailable.getFreeSpace(), transportAvailable.getTime(), routes);
+
+        transportManager.createTransportAvailable(transportAvailable, transportAvailable.getTransport(), transportAvailable.getFrom(), transportAvailable.getTo(), transportAvailable.getDate(), transportAvailable.getFreeSpace(), transportAvailable.getTime(), transportId, transportAvailable.getRoutes());
     }
 
Index: src/main/java/com/tourMate/controllers/UsersController.java
===================================================================
--- src/main/java/com/tourMate/controllers/UsersController.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/controllers/UsersController.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -1,6 +1,8 @@
 package com.tourMate.controllers;
 
+import com.tourMate.dto.PrincipalInfo;
 import com.tourMate.entities.Business;
 import com.tourMate.entities.User;
+import com.tourMate.config.oauth2.OAuth2UserDetailsCustom;
 import com.tourMate.services.BusinessManager;
 import com.tourMate.services.UsersManager;
@@ -9,4 +11,5 @@
 import org.springframework.http.ResponseEntity;
 import org.springframework.security.core.Authentication;
+import org.springframework.security.core.parameters.P;
 import org.springframework.web.bind.annotation.*;
 
@@ -57,6 +60,4 @@
         usersManager.approveUserProfile(userId);
         return new ResponseEntity<>(HttpStatus.OK);
-
-
     }
 
@@ -70,5 +71,4 @@
     @PostMapping(path = "/register")
     public List<User> add(@RequestBody User user) {
-        System.out.println(user.getName() + user.getSurname());
         usersManager.createUser(user.getName(), user.getSurname(), user.getEmail(), user.getBirthDate(), user.getAddress(), user.getContact());
         return usersManager.getCreatedUsers();
@@ -88,34 +88,57 @@
     @GetMapping(value = "/principal")
     @ResponseBody
-    public User currentUser(Authentication authentication) {
-        return (User) authentication.getPrincipal();
+    public PrincipalInfo currentUser(Authentication authentication) {
+        Long id;
+        if(authentication.getPrincipal() instanceof OAuth2UserDetailsCustom)
+        {
+            OAuth2UserDetailsCustom oAuth2UserDetailsCustom = (OAuth2UserDetailsCustom) authentication.getPrincipal();
+            id = oAuth2UserDetailsCustom.getId();
+        }
+        else
+        {
+            User user = (User) authentication.getPrincipal();
+            id = user.getUserID();
+        }
+        return usersManager.getPrincipalInfo(id);
     }
     @PostMapping(path = "/user/edit")
-    public List<User> edit(@RequestBody User user)
+    public void edit(@RequestBody User user)
     {
-        System.out.println(user.getName() + " " + user.getSurname() + "id e " + user.getUserID());
-        // long userID, String name, String surname, String email, Date birthDate, String address, String contact
         usersManager.editUser(user.getUserID(), user.getName(), user.getSurname(), user.getEmail(), user.getBirthDate(), user.getAddress(), user.getContact());
-        return usersManager.getCreatedUsers();
     }
 
     @GetMapping(path = "/user/delete")
-    public ResponseEntity remove(@RequestParam(name = "userId") long userId) {
+    public ResponseEntity<?> remove(@RequestParam(name = "userId") long userId) {
         try
         {
             usersManager.deleteUser(userId);
-            return new ResponseEntity(HttpStatus.OK);
+            return new ResponseEntity<>(HttpStatus.OK);
         }
         catch (Exception exception)
         {
-            return new ResponseEntity(HttpStatus.NOT_FOUND);
+            return new ResponseEntity<>(HttpStatus.NOT_FOUND);
         }
     }
 
     @GetMapping("/users/unlock/{id}")
-    public ResponseEntity unlock(@PathVariable Long id)
+    public ResponseEntity<?> unlock(@PathVariable Long id)
     {
         usersManager.unlock(id);
-        return new ResponseEntity(HttpStatus.OK);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+
+    @PostMapping("/users/{id}/connect")
+    public ResponseEntity<?> connectAccount(@PathVariable Long id,
+                                            @RequestParam String username,
+                                            @RequestParam String password)
+    {
+        usersManager.connectAccount(id, username, password);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+
+    @GetMapping("/users/{id}/connected")
+    public List<User> getConnectedAccounts(@PathVariable Long id)
+    {
+        return usersManager.findConnectedAccountsByUser(id);
     }
 }
Index: src/main/java/com/tourMate/controllers/UtilsController.java
===================================================================
--- src/main/java/com/tourMate/controllers/UtilsController.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/controllers/UtilsController.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -2,4 +2,5 @@
 
 import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -10,15 +11,10 @@
 import java.net.http.HttpResponse;
 
-@RestController
+@Controller
 public class UtilsController {
-    @GetMapping("/loo")
-    public ResponseEntity<?> testFnc(RedirectAttributes attributes) {
-        String redirectUrl = "https://example.com"; // Replace with your desired redirect URL
-
-        // Using UriComponentsBuilder to handle URL encoding
-        return ResponseEntity
-                .status(302) // 302 Found status code for redirect
-                .location(UriComponentsBuilder.fromUriString(redirectUrl).build().toUri())
-                .build();
+    @GetMapping("/login")
+    public String getLoginPage()
+    {
+        return "login";
     }
 }
Index: src/main/java/com/tourMate/dao/HotelDao.java
===================================================================
--- src/main/java/com/tourMate/dao/HotelDao.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/dao/HotelDao.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -97,4 +97,6 @@
 
     List<HotelRoomReservations> findPastReservationByUser(User u);
+
+    List<HotelRoomReservations> getReservationsInPeriod(String hotelLocation, Date dateFrom, Date dateTo);
 //    public void createHotel(Hotels hotel, long userId);
 //    public void editHotel(long hotelId, String hotelName, String hotelDescripiton, String hotelLocation, String hotelEDBS, Boolean parking, Boolean petFriendly, Boolean internetAvailable);
Index: c/main/java/com/tourMate/dao/TokenDao.java
===================================================================
--- src/main/java/com/tourMate/dao/TokenDao.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ 	(revision )
@@ -1,14 +1,0 @@
-package com.tourMate.dao;
-
-import com.tourMate.entities.Token;
-import jakarta.transaction.Transactional;
-
-import java.time.LocalDateTime;
-import java.util.Date;
-
-public interface TokenDao {
-    public void saveToken(Token token);
-    public Token getToken(String token);
-    @Transactional
-    public void setConfirmedAt(String token, LocalDateTime dateTime);
-}
Index: src/main/java/com/tourMate/dao/TransportDao.java
===================================================================
--- src/main/java/com/tourMate/dao/TransportDao.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/dao/TransportDao.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -1,6 +1,4 @@
 package com.tourMate.dao;
 
-import com.tourMate.dto.RouteListingDto;
-import com.tourMate.dto.TransportDto;
 import com.tourMate.entities.*;
 import jakarta.transaction.Transactional;
@@ -19,9 +17,9 @@
     List<Transport> getTransports();
 
-    List<TransportDto> getTransportsByUser(User u);
+    List<Transport> getTransportsByUser(User u);
 
-    List<RouteListingDto> getRoutesForTransport(Transport t);
+    List<TransportAvailible> getRoutesForTransport(Transport t);
 
-    TransportDto findTransportById(long transportId);
+    Transport findTransportById(long transportId);
 
     Transport getTransportById(long transportId);
Index: src/main/java/com/tourMate/dao/UsersDao.java
===================================================================
--- src/main/java/com/tourMate/dao/UsersDao.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/dao/UsersDao.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -1,6 +1,8 @@
 package com.tourMate.dao;
 
+import com.tourMate.entities.Providers;
 import com.tourMate.entities.Role;
 import com.tourMate.entities.User;
+import jakarta.transaction.Transactional;
 import org.springframework.security.core.userdetails.UserDetails;
 
@@ -29,4 +31,12 @@
 
     Role findById(Long id);
-    void updateUser(User s);
+    User updateUser(User s);
+    User findByUsernameAndProvider(String username, String providers);
+
+    @Transactional
+    User mergeUser(User user);
+
+    List<User> getAdmins();
+
+    List<User> findConnectedAccountsByUser(User u);
 }
Index: src/main/java/com/tourMate/dao/impl/BusinessDaoImpl.java
===================================================================
--- src/main/java/com/tourMate/dao/impl/BusinessDaoImpl.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/dao/impl/BusinessDaoImpl.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -4,7 +4,10 @@
 import com.tourMate.entities.Business;
 import com.tourMate.entities.User;
+import com.tourMate.events.OnBusinessApprovedEvent;
 import jakarta.persistence.EntityManager;
 import jakarta.persistence.PersistenceContext;
 import jakarta.transaction.Transactional;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.stereotype.Service;
 
@@ -16,4 +19,6 @@
     @PersistenceContext
     EntityManager em;
+    @Autowired
+    ApplicationEventPublisher eventPublisher;
 
     @Transactional
@@ -37,5 +42,8 @@
     public boolean hasBusiness(User u)
     {
-        return Integer.parseInt(em.createQuery("SELECT COUNT(b) FROM Business b WHERE b.user = :user").setParameter("user", u).getSingleResult().toString()) > 0;
+        return Integer.parseInt(em.createQuery("SELECT COUNT(b) FROM Business b WHERE b.user = :user or b.user in :users")
+                .setParameter("user", u)
+                .setParameter("users", u.getConnectedAccounts())
+                .getSingleResult().toString()) > 0;
     }
 
@@ -49,4 +57,5 @@
     public void approveBusiness(Business b) {
         em.persist(b);
+        eventPublisher.publishEvent(new OnBusinessApprovedEvent(b.getUser()));
     }
 
Index: src/main/java/com/tourMate/dao/impl/HotelDaoImpl.java
===================================================================
--- src/main/java/com/tourMate/dao/impl/HotelDaoImpl.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/dao/impl/HotelDaoImpl.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -3,7 +3,11 @@
 import com.tourMate.dao.HotelDao;
 import com.tourMate.entities.*;
+import com.tourMate.events.OnHotelReservationEvent;
+import com.tourMate.events.OnRegistrationSuccessEvent;
 import jakarta.persistence.EntityManager;
 import jakarta.persistence.PersistenceContext;
 import jakarta.transaction.Transactional;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.stereotype.Service;
 
@@ -17,4 +21,6 @@
     @PersistenceContext
     EntityManager em;
+    @Autowired
+    ApplicationEventPublisher eventPublisher;
 
     @Override
@@ -31,12 +37,9 @@
     @Override
     public List<Hotels> getHotelsForUser(User u) {
-        return em.createQuery("select h from Hotels h where h.owner = :u").setParameter("u", u).getResultList();
-    }
-
-    @Override
-    public List<Hotels> getHotelsByLocation(String hotelLocation) {
-        return em.createQuery("select h from Hotels h where h.hotelLocation = hotelLocation").getResultList();
-    }
-
+        return em.createQuery("select h from Hotels h where h.owner = :u or h.owner in :users")
+                .setParameter("u", u)
+                .setParameter("users", u.getConnectedAccounts())
+                .getResultList();
+    }
     @Transactional
     @Override
@@ -211,7 +214,4 @@
         }
 
-
-
-
     }
 
@@ -232,4 +232,5 @@
     public void createReservation(HotelRoomReservations  r) {
         em.persist(r);
+        eventPublisher.publishEvent(new OnHotelReservationEvent(r.getUser(), r));
     }
 
@@ -243,5 +244,4 @@
     @Override
     public void deleteReservation(HotelRoomReservations hr) {
-
         em.remove(hr);
     }
@@ -281,3 +281,20 @@
                 .setParameter("user", u).getResultList();
     }
+
+    @Override
+    public List<HotelRoomReservations> getReservationsInPeriod(String hotelLocation, Date dateFrom, Date dateTo) {
+        return em.createQuery("select hr from HotelRoomReservations hr where hr.hotelRoom.hotel.hotelLocation like :hotelLocation and (hr.dateFrom between :dateFrom and :dateTo) or (hr.dateTo between :dateFrom and :dateTo)")
+                .setParameter("hotelLocation", hotelLocation)
+                .setParameter("dateFrom", dateFrom)
+                .setParameter("dateTo", dateTo)
+                .getResultList();
+    }
+
+    @Override
+    public List<Hotels> getHotelsByLocation(String hotelLocation)
+    {
+        return em.createQuery("select h from Hotels h where h.hotelLocation like :hotelLocation")
+                .setParameter("hotelLocation", hotelLocation)
+                .getResultList();
+    }
 }
Index: src/main/java/com/tourMate/dao/impl/RestaurantDaoImpl.java
===================================================================
--- src/main/java/com/tourMate/dao/impl/RestaurantDaoImpl.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/dao/impl/RestaurantDaoImpl.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -102,5 +102,8 @@
     @Override
     public List<Restaurant> getRestaurantsByUser(User u) {
-        return em.createQuery("select r from Restaurant r where r.restaurantOwner = :u").setParameter("u", u).getResultList();
+        return em.createQuery("select r from Restaurant r where r.restaurantOwner = :u or r.restaurantOwner in :users")
+                .setParameter("u", u)
+                .setParameter("users", u.getConnectedAccounts())
+                .getResultList();
     }
 
Index: c/main/java/com/tourMate/dao/impl/TokenDaoImpl.java
===================================================================
--- src/main/java/com/tourMate/dao/impl/TokenDaoImpl.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ 	(revision )
@@ -1,36 +1,0 @@
-package com.tourMate.dao.impl;
-
-import com.tourMate.dao.TokenDao;
-import com.tourMate.entities.Token;
-import jakarta.persistence.Entity;
-import jakarta.persistence.EntityManager;
-import jakarta.persistence.PersistenceContext;
-import jakarta.transaction.Transactional;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.time.LocalDateTime;
-
-@Service
-public class TokenDaoImpl implements TokenDao {
-
-    @PersistenceContext
-    EntityManager em;
-    @Override
-    public void saveToken(Token token) {
-        em.persist(token);
-    }
-
-    @Override
-    public Token getToken(String token) {
-        return (Token) em.createQuery("select t from Token t where t.token = :token").setParameter("token", token).getSingleResult();
-    }
-
-    @Override
-    @Transactional
-    public void setConfirmedAt(String token, LocalDateTime dateTime) {
-        Token t = getToken(token);
-        t.setConfirmedAt(LocalDateTime.now());
-        em.persist(t);
-    }
-}
Index: src/main/java/com/tourMate/dao/impl/TransportDaoImpl.java
===================================================================
--- src/main/java/com/tourMate/dao/impl/TransportDaoImpl.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/dao/impl/TransportDaoImpl.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -2,6 +2,4 @@
 
 import com.tourMate.dao.TransportDao;
-import com.tourMate.dto.RouteListingDto;
-import com.tourMate.dto.TransportDto;
 import com.tourMate.entities.*;
 import jakarta.persistence.EntityManager;
@@ -37,83 +35,22 @@
 
     @Override
-    public List<TransportDto> getTransportsByUser(User u) {
-        List<Transport> transports = em.createQuery("select t from Transport t where t.owner = :u").setParameter("u", u).getResultList();
-        return transports.stream().map(x -> new TransportDto(
-                x.getTransportID(),
-                x.getTransportName(),
-                x.getCarBrand(),
-                x.getCarType(),
-                x.getCarManufacturedYear(),
-                x.getNoPassengers(),
-                x.getNoBags(),
-                x.getEMBG(),
-                x.getOwner(),
-                x.getCarPlate(),
-                x.getAvailableRoutes().stream().map(y -> new RouteListingDto(
-                        y.getTransportAvailibleId(),
-                        y.getFrom(),
-                        y.getTo(),
-                        y.getDate(),
-                        y.getFreeSpace(),
-                        y.getTime(),
-                        y.getRoutes(),
-                        y.getRoutes().stream()
-                                .mapToDouble(TransportRoute::getPrice)
-                                .max().orElse(0)
-                )).toList(),
-                x.getAvailableRoutes().stream()
-                        .flatMapToDouble(y -> y.getRoutes()
-                                .stream()
-                                .mapToDouble(TransportRoute::getPrice)).max().orElseGet(() -> 0)
-        )).toList();
+    public List<Transport> getTransportsByUser(User u) {
+        List<Transport> transports = em.createQuery("select t from Transport t where t.owner = :u or t.owner in :users")
+                .setParameter("u", u)
+                .setParameter("users", u.getConnectedAccounts())
+                .getResultList();
+        return transports;
     }
 
     @Override
-    public List<RouteListingDto> getRoutesForTransport(Transport t) {
+    public List<TransportAvailible> getRoutesForTransport(Transport t) {
         List<TransportAvailible> transportsAvailible = em.createQuery("select ta from TransportAvailible ta where ta.transport = :transport").setParameter("transport", t).getResultList();
-        return transportsAvailible.stream().map(x -> new RouteListingDto(
-                x.getTransportAvailibleId(),
-                x.getFrom(),
-                x.getTo(),
-                x.getDate(),
-                x.getFreeSpace(),
-                x.getTime(),
-                x.getRoutes(),
-                x.getRoutes().stream()
-                        .mapToDouble(TransportRoute::getPrice)
-                        .max().orElse(0)
-        )).toList();
+        return transportsAvailible;
     }
 
     @Override
-    public TransportDto findTransportById(long transportId) {
+    public Transport findTransportById(long transportId) {
         Transport x = em.find(Transport.class,transportId);
-        return new TransportDto(
-                x.getTransportID(),
-                x.getTransportName(),
-                x.getCarBrand(),
-                x.getCarType(),
-                x.getCarManufacturedYear(),
-                x.getNoPassengers(),
-                x.getNoBags(),
-                x.getEMBG(),
-                x.getOwner(),
-                x.getCarPlate(),
-                x.getAvailableRoutes().stream().map(y -> new RouteListingDto(
-                        y.getTransportAvailibleId(),
-                        y.getFrom(),
-                        y.getTo(),
-                        y.getDate(),
-                        y.getFreeSpace(),
-                        y.getTime(),
-                        y.getRoutes(),
-                        y.getRoutes().stream()
-                                .mapToDouble(TransportRoute::getPrice)
-                                .max().orElse(0)
-                )).toList(),
-                x.getAvailableRoutes().stream()
-                        .flatMapToDouble(y -> y.getRoutes()
-                                                        .stream()
-                                                        .mapToDouble(TransportRoute::getPrice)).max().orElseGet(() -> 0));
+        return x;
     }
 
Index: src/main/java/com/tourMate/dao/impl/UsersDaoImpl.java
===================================================================
--- src/main/java/com/tourMate/dao/impl/UsersDaoImpl.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/dao/impl/UsersDaoImpl.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -4,24 +4,27 @@
 import com.tourMate.entities.Role;
 import com.tourMate.entities.User;
+import com.tourMate.events.OnProfileEnabledEvent;
+import com.tourMate.events.OnRegistrationSuccessEvent;
 import jakarta.persistence.EntityManager;
 import jakarta.persistence.PersistenceContext;
 import jakarta.transaction.Transactional;
-import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.security.crypto.password.PasswordEncoder;
-import org.springframework.stereotype.Service;
+import org.springframework.stereotype.Repository;
 
 import java.util.Date;
 import java.util.List;
 
-@Service
+@Repository
 public class UsersDaoImpl implements UsersDao {
 
     @PersistenceContext
     EntityManager em;
-
     @Autowired
     PasswordEncoder passwordEncoder;
+    @Autowired
+    private ApplicationEventPublisher eventPublisher;
 
     @Transactional
@@ -30,5 +33,11 @@
         Role r = em.find(Role.class, 2);
         User user = new User(name, surname, email, passwordEncoder.encode("password"), birthDate, address, contact, r);
+        user.setProvider("local");
+        user.setLocked(true);
         em.persist(user);
+        if(user.getProvider().equals("local"))
+        {
+            eventPublisher.publishEvent(new OnRegistrationSuccessEvent(user));
+        }
     }
 
@@ -84,4 +93,5 @@
         u.setEnabled(true);
         em.persist(u);
+        eventPublisher.publishEvent(new OnProfileEnabledEvent(u));
     }
 
@@ -93,8 +103,42 @@
     @Override
     @Transactional
-    public void updateUser(User s) {
+    public User updateUser(User s) {
         em.persist(s);
+        return s;
     }
 
+    @Override
+    public User findByUsernameAndProvider(String username, String providers)
+    {
+        try
+        {
+            return (User) em.createQuery("select u from User u where u.email = :username and u.provider = :provider")
+                    .setParameter("username", username)
+                    .setParameter("provider", providers)
+                    .getSingleResult();
+        }
+        catch (Exception ex)
+        {
+            return null;
+        }
+    }
 
+    @Override
+    @Transactional
+    public User mergeUser(User user) {
+        return em.merge(user);
+    }
+
+    @Override
+    public List<User> getAdmins() {
+        return em.createQuery("select u from User u where u.role.roleName = 'SUPERADMIN'")
+                .getResultList();
+    }
+
+    @Override
+    public List<User> findConnectedAccountsByUser(User u) {
+        return em.createQuery("select u.connectedAccounts from User u where u = :user")
+                .setParameter("user", u)
+                .getResultList();
+    }
 }
Index: src/main/java/com/tourMate/dto/HotelDto.java
===================================================================
--- src/main/java/com/tourMate/dto/HotelDto.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/dto/HotelDto.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -21,6 +21,7 @@
     private double averageScore;
     private List<HotelsImages> images;
-
-    public HotelDto(long hotelId, String hotelName, String hotelDescripiton, String hotelLocation, String hotelEDBS, Boolean parking, Boolean petFriendly, Boolean internetAvailable, double totalPrice, List<HotelRoomAvailable> hotelRooms, List<Reviews> hotelReviews, double averageScore, List<HotelsImages> images) {
+    private Boolean promoted;
+    private Boolean marketed;
+    public HotelDto(long hotelId, String hotelName, String hotelDescripiton, String hotelLocation, String hotelEDBS, Boolean parking, Boolean petFriendly, Boolean internetAvailable, double totalPrice, List<HotelRoomAvailable> hotelRooms, List<Reviews> hotelReviews, double averageScore, List<HotelsImages> images, Boolean promoted, Boolean marketed) {
         this.hotelId = hotelId;
         this.hotelName = hotelName;
@@ -36,4 +37,6 @@
         this.averageScore = averageScore;
         this.images = images;
+        this.promoted = promoted;
+        this.marketed = marketed;
     }
 
@@ -132,3 +135,27 @@
         this.images = images;
     }
+
+    public void setHotelReviews(List<Reviews> hotelReviews) {
+        this.hotelReviews = hotelReviews;
+    }
+
+    public void setAverageScore(double averageScore) {
+        this.averageScore = averageScore;
+    }
+
+    public Boolean getPromoted() {
+        return promoted;
+    }
+
+    public void setPromoted(Boolean promoted) {
+        this.promoted = promoted;
+    }
+
+    public Boolean getMarketed() {
+        return marketed;
+    }
+
+    public void setMarketed(Boolean marketed) {
+        this.marketed = marketed;
+    }
 }
Index: src/main/java/com/tourMate/dto/PrincipalInfo.java
===================================================================
--- src/main/java/com/tourMate/dto/PrincipalInfo.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/dto/PrincipalInfo.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,71 @@
+package com.tourMate.dto;
+
+public class PrincipalInfo {
+    Long id;
+    String username;
+    String role;
+    String name;
+    String surname;
+    String email;
+
+    public PrincipalInfo(Long id, String username, String role, String name, String surname, String email) {
+        this.id = id;
+        this.username = username;
+        this.role = role;
+        this.name = name;
+        this.surname = surname;
+        this.email = email;
+    }
+
+    public PrincipalInfo() {
+
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getRole() {
+        return role;
+    }
+
+    public void setRole(String role) {
+        this.role = role;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getSurname() {
+        return surname;
+    }
+
+    public void setSurname(String surname) {
+        this.surname = surname;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+}
Index: src/main/java/com/tourMate/entities/Providers.java
===================================================================
--- src/main/java/com/tourMate/entities/Providers.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/entities/Providers.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,8 @@
+package com.tourMate.entities;
+
+public enum Providers {
+    local,
+    github,
+    google,
+    facebook
+}
Index: src/main/java/com/tourMate/entities/User.java
===================================================================
--- src/main/java/com/tourMate/entities/User.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/entities/User.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -14,4 +14,5 @@
 import java.util.Collections;
 import java.util.Date;
+import java.util.List;
 
 @Entity
@@ -27,5 +28,5 @@
     private String name;
 
-    @Column(name = "surname", unique = false, nullable = false)
+    @Column(name = "surname", unique = false, nullable = true)
     private String surname;
 
@@ -34,16 +35,16 @@
     private String email;
 
-    @Column(name = "password", unique = true, nullable = false)
+    @Column(name = "password", unique = true, nullable = true)
     @NotNull
     private String password;
 
-    @Column(name = "birth_date", unique = false, nullable = false)
+    @Column(name = "birth_date", unique = false, nullable = true)
     @NotNull
     private Date birthDate;
 
-    @Column(name = "address", unique = false, nullable = false)
+    @Column(name = "address", unique = false, nullable = true)
     private String address;
 
-    @Column(name = "contact", unique = false, nullable = false)
+    @Column(name = "contact", unique = false, nullable = true)
     private String contact;
 
@@ -57,4 +58,11 @@
     boolean enabled;
 
+    @Column(name = "provider", unique = false, nullable = true)
+    String provider;
+
+    @ManyToMany
+    @JsonIgnore
+    List<User> connectedAccounts;
+
 
     public User(@NotNull String name, String surname, @NotNull String email, @NotNull String password, @NotNull Date birthDate, String address, String contact, Role role) {
@@ -120,4 +128,16 @@
     }
 
+    public List<User> getConnectedAccounts() {
+        return connectedAccounts;
+    }
+
+    public void setConnectedAccounts(List<User> connectedAccounts) {
+        this.connectedAccounts = connectedAccounts;
+    }
+
+    public void addConnectedUser(User u)
+    {
+        connectedAccounts.add(u);
+    }
 
     public void setSurname(String surname) {
@@ -212,3 +232,11 @@
         this.enabled = enabled;
     }
+
+    public String getProvider() {
+        return provider;
+    }
+
+    public void setProvider(String  provider) {
+        this.provider = provider;
+    }
 }
Index: src/main/java/com/tourMate/events/EmailEvent.java
===================================================================
--- src/main/java/com/tourMate/events/EmailEvent.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/events/EmailEvent.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,48 @@
+package com.tourMate.events;
+
+import com.tourMate.entities.User;
+import org.springframework.context.ApplicationEvent;
+
+public abstract class EmailEvent extends ApplicationEvent {
+    protected EventType eventType;
+    protected User user;
+    protected String subject;
+    protected String message;
+
+    public EmailEvent(User user) {
+        super(user);
+        this.user = user;
+    }
+
+    public User getUser() {
+        return user;
+    }
+
+    public void setUser(User user) {
+        this.user = user;
+    }
+
+    public EventType getEventType() {
+        return eventType;
+    }
+
+    public void setEventType(EventType eventType) {
+        this.eventType = eventType;
+    }
+
+    public String getSubject() {
+        return subject;
+    }
+
+    public void setSubject(String subject) {
+        this.subject = subject;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+}
Index: src/main/java/com/tourMate/events/EventType.java
===================================================================
--- src/main/java/com/tourMate/events/EventType.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/events/EventType.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,10 @@
+package com.tourMate.events;
+
+public enum EventType {
+    REGISTRATION,
+    PROFILE_ENABLED,
+    BUSINESS_APPROVED,
+    HOTEL_RESERVATION,
+    TRANSPORT_RESERVATION,
+    RESTAURANT_RESERVATION
+}
Index: src/main/java/com/tourMate/events/OnBusinessApprovedEvent.java
===================================================================
--- src/main/java/com/tourMate/events/OnBusinessApprovedEvent.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/events/OnBusinessApprovedEvent.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,12 @@
+package com.tourMate.events;
+
+import com.tourMate.entities.User;
+
+public class OnBusinessApprovedEvent extends EmailEvent{
+    public OnBusinessApprovedEvent(User u) {
+        super(u);
+        this.eventType = EventType.BUSINESS_APPROVED;
+        this.subject = "TourMate - Верификуван бизнис";
+        this.message = "Драг кориснику,\n\nВе известуваме дека Вашата регистрација за фирма е одобрена. Можете да започнете со користење на бизнис услугите од нашата апликација.\n\n\nСо почит,\nTourMate";
+    }
+}
Index: src/main/java/com/tourMate/events/OnHotelReservationEvent.java
===================================================================
--- src/main/java/com/tourMate/events/OnHotelReservationEvent.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/events/OnHotelReservationEvent.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,32 @@
+package com.tourMate.events;
+
+import com.tourMate.entities.HotelRoomReservations;
+import com.tourMate.entities.User;
+
+import java.text.SimpleDateFormat;
+
+public class OnHotelReservationEvent extends EmailEvent{
+    private HotelRoomReservations hotelRoomReservations;
+    public OnHotelReservationEvent(User u, HotelRoomReservations hotelRoomReservations) {
+        super(u);
+        this.hotelRoomReservations = hotelRoomReservations;
+        this.eventType = EventType.HOTEL_RESERVATION;
+        this.subject = "TourMate - Потврда за резервација - " + hotelRoomReservations.getHotelRoom().getHotel().getHotelName();
+        this.message = String.format("Драг кориснику,\n\nВе известуваме дека Вашата резервација за %s е потврдена\n\n" +
+                        "Детали за резервацијата:\n" +
+                        "%s - %s" +
+                        "\n%s" +
+                        "\n\n\nСо почит,\nTourMate", hotelRoomReservations.getHotelRoom().getHotel().getHotelName()
+                , new SimpleDateFormat("dd-MM-yyyy").format(hotelRoomReservations.getDateFrom())
+                , new SimpleDateFormat("dd-MM-yyyy").format(hotelRoomReservations.getDateTo())
+                , hotelRoomReservations.getHotelRoom().getHotelRoomName());
+    }
+
+    public HotelRoomReservations getHotelRoomReservations() {
+        return hotelRoomReservations;
+    }
+
+    public void setHotelRoomReservations(HotelRoomReservations hotelRoomReservations) {
+        this.hotelRoomReservations = hotelRoomReservations;
+    }
+}
Index: src/main/java/com/tourMate/events/OnProfileEnabledEvent.java
===================================================================
--- src/main/java/com/tourMate/events/OnProfileEnabledEvent.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/events/OnProfileEnabledEvent.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,17 @@
+package com.tourMate.events;
+
+import com.tourMate.entities.User;
+import jdk.jfr.Event;
+import org.springframework.context.ApplicationEvent;
+
+public class OnProfileEnabledEvent extends EmailEvent {
+    private static final long serialVersionUID = 1L;
+    private User user;
+
+    public OnProfileEnabledEvent(User user) {
+        super(user);
+        this.eventType = EventType.PROFILE_ENABLED;
+        this.subject = "TourMate - Активиран профил";
+        this.message = "Драг кориснику,\n\nВе известуваме дека Вашата регистрација е ревидирана од страна на администраторот и Вашиот профил е одобрен. Можете да започнете со користење.\n\n\nСо почит,\nTourMate";
+    }
+}
Index: src/main/java/com/tourMate/events/OnRegistrationSuccessEvent.java
===================================================================
--- src/main/java/com/tourMate/events/OnRegistrationSuccessEvent.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/events/OnRegistrationSuccessEvent.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,17 @@
+package com.tourMate.events;
+
+import com.tourMate.entities.User;
+import lombok.Data;
+import org.springframework.context.ApplicationEvent;
+
+public class OnRegistrationSuccessEvent extends EmailEvent {
+    private static final long serialVersionUID = 1L;
+    private User user;
+
+    public OnRegistrationSuccessEvent(User user) {
+        super(user);
+        this.eventType = EventType.REGISTRATION;
+        this.subject = "TourMate - Успешна регистрација";
+        this.message = "Драг кориснику,\n\nВе известуваме дека Вашата регистрација на апликацијата TourMate е успешна. За да можете да го користите профилот, потребно е истиот да е одобрен од страна на администраторот за што ќе добиете дополнителна потврда на оваа адреса.\n\n\nСо почит,\nTourMate";
+    }
+}
Index: src/main/java/com/tourMate/events/OnRestaurantReservationEvent.java
===================================================================
--- src/main/java/com/tourMate/events/OnRestaurantReservationEvent.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/events/OnRestaurantReservationEvent.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,34 @@
+package com.tourMate.events;
+
+import com.tourMate.entities.RestaurantReservations;
+import com.tourMate.entities.TransportReservation;
+import com.tourMate.entities.User;
+
+import java.text.SimpleDateFormat;
+
+public class OnRestaurantReservationEvent extends EmailEvent {
+    private RestaurantReservations restaurantReservations;
+    public OnRestaurantReservationEvent(User u, RestaurantReservations restaurantReservations) {
+        super(u);
+        this.restaurantReservations = restaurantReservations;
+        this.eventType = EventType.RESTAURANT_RESERVATION;
+        this.subject = "TourMate - Потврда за резервација - " + restaurantReservations.getTable().getRestaurant().getRestaurantName();
+        this.message = String.format("Драг кориснику,\n\nВе известуваме дека Вашата резервација за %s е потврдена\n\n" +
+                        "Детали за резервацијата:\n" +
+                        "%s - %s" +
+                        "\nМаса за %s луѓе" +
+                        "\n\n\nСо почит,\nTourMate", restaurantReservations.getTable().getRestaurant().getRestaurantName()
+                , new SimpleDateFormat("dd-MM-yyyy hh:mm").format(restaurantReservations.getTimeFrom())
+                , new SimpleDateFormat("dd-MM-yyyy hh:mm").format(restaurantReservations.getTimeTo())
+                , restaurantReservations.getTable().getNoSeats());
+
+    }
+
+    public RestaurantReservations getRestaurantReservations() {
+        return restaurantReservations;
+    }
+
+    public void setRestaurantReservations(RestaurantReservations restaurantReservations) {
+        this.restaurantReservations = restaurantReservations;
+    }
+}
Index: src/main/java/com/tourMate/events/OnTransportReservationEvent.java
===================================================================
--- src/main/java/com/tourMate/events/OnTransportReservationEvent.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/events/OnTransportReservationEvent.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,30 @@
+package com.tourMate.events;
+
+import com.tourMate.entities.HotelRoomReservations;
+import com.tourMate.entities.TransportReservation;
+import com.tourMate.entities.User;
+
+public class OnTransportReservationEvent extends EmailEvent {
+    private TransportReservation transportReservation;
+    public OnTransportReservationEvent(User u, TransportReservation transportReservation) {
+        super(u);
+        this.transportReservation = transportReservation;
+        this.eventType = EventType.HOTEL_RESERVATION;
+
+        this.subject = "TourMate - Потврда за резервација за рута " + transportReservation.getTransportRoute().getFrom() + " " + transportReservation.getTransportRoute().getTo();
+        this.message = String.format("Драг кориснику,\n\nВе известуваме дека Вашата резервација за патувањето %s е потврдена\n\n" +
+                        "Детали за резервацијата:\n" +
+                        "%s - %s" +
+                        "\n\n\nСо почит,\nTourMate", transportReservation.getTransportRoute().getFrom() + " " + transportReservation.getTransportRoute().getTo()
+                , transportReservation.getTransportRoute().getDeparture()
+                , transportReservation.getTransportRoute().getArrival());
+    }
+
+    public TransportReservation getTransportReservation() {
+        return transportReservation;
+    }
+
+    public void setTransportReservation(TransportReservation transportReservation) {
+        this.transportReservation = transportReservation;
+    }
+}
Index: src/main/java/com/tourMate/listeners/RegistrationEmailListener.java
===================================================================
--- src/main/java/com/tourMate/listeners/RegistrationEmailListener.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/listeners/RegistrationEmailListener.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,27 @@
+package com.tourMate.listeners;
+
+import com.tourMate.entities.User;
+import com.tourMate.events.*;
+import com.tourMate.services.MailingService;
+import com.tourMate.services.UsersManager;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationListener;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+
+@Component
+public class RegistrationEmailListener implements ApplicationListener<EmailEvent> {
+
+    @Autowired
+    private Environment environment;
+    @Autowired
+    private MailingService mailingService;
+
+
+    @Override
+    public void onApplicationEvent(EmailEvent event) {
+        mailingService.sendMail(event.getUser().getEmail(), event.getSubject(), event.getMessage());
+    }
+}
Index: src/main/java/com/tourMate/services/HotelManager.java
===================================================================
--- src/main/java/com/tourMate/services/HotelManager.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/services/HotelManager.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -25,8 +25,8 @@
     public HotelRoom findRoomById (long hotelRoomId);
     public List<HotelRoomImages> getRoomImages(Long hotelRoom);
-    public void createRoom(Hotels hotel, String hotelRoomDescription, String hotelRoomName, Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price, int numOfBeds);
+    public void createRoom(Long hotelId, String hotelRoomDescription, String hotelRoomName, Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price, int numOfBeds);
     public void editRoom(long hotelRoomId, Hotels hotel, String hotelRoomDescription, String hotelRoomName, Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price);
     public void deleteRoom(long hotelRoomId);
-    public void createRoomAvailible(HotelRoom hotelRoom, Date dateFrom, Date dateTo, int numberOfBeds);
+    public void createRoomAvailible(long hotelRoom, Date dateFrom, Date dateTo, int numberOfBeds);
     public void editRoomAvailible(long hotelRoomAvailableId, HotelRoom hotelRoom, Date dateFrom, Date dateTo, int numberOfBeds);
     public void editRoomAvailibleReservation(Long HotelRoomAvailableId, Long hotelRoomId, Date from, Date to, int numberOfBeds);
@@ -36,4 +36,7 @@
     public List<HotelRoomAvailable> getRoomsAvailableById(Long id);
     public List<HotelRoomAvailable> getRoomsAvailibilityByHotel(Hotels hotel);
+
+    List<HotelRoomReservations> getReservationsInPeriod(String hotelLocation, Date dateFrom, Date dateTo);
+
     public List<HotelDto> getRoomsAvailibilityByDateAndLocation(String hotelLocation, Date dateFrom, Date dateTo, int numberOfBeds, Boolean flexible);
     public void createReservation(Long userId, Long hotelRoomId, Long hotelRoomAvailableId, Date dateFrom, Date dateTo, Integer numberOfBeds);
Index: src/main/java/com/tourMate/services/MailingService.java
===================================================================
--- src/main/java/com/tourMate/services/MailingService.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/services/MailingService.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,5 @@
+package com.tourMate.services;
+
+public interface MailingService {
+    public void sendMail(String to, String subject, String message);
+}
Index: src/main/java/com/tourMate/services/RestaurantManager.java
===================================================================
--- src/main/java/com/tourMate/services/RestaurantManager.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/services/RestaurantManager.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -37,5 +37,5 @@
     public List<RestaurantsTable> getRestaurantTables(long restaurantID);
 
-    public List<RestaurantDto> getTablesByDateAndLocation(String restaurantLocation, Date hourFrom, Date hourTo, int noSeats);
+    public List<RestaurantDto> getTablesByDateAndLocation(String restaurantLocation, Date date, String hourFrom, String hourTo, int noSeats);
 
     public RestaurantsTable findTableById(long tableId);
Index: c/main/java/com/tourMate/services/TokenManager.java
===================================================================
--- src/main/java/com/tourMate/services/TokenManager.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ 	(revision )
@@ -1,9 +1,0 @@
-package com.tourMate.services;
-
-import com.tourMate.entities.Token;
-
-public interface TokenManager {
-    public void saveToken(Token token);
-    public Token getToken(String token);
-    public void setConfirmedAt(String token);
-}
Index: src/main/java/com/tourMate/services/TransportManager.java
===================================================================
--- src/main/java/com/tourMate/services/TransportManager.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/services/TransportManager.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -45,5 +45,5 @@
     public List<TransportAvailible> getTransportsAvailable();
 
-    public void createTransportAvailable(Transport transport, String departureLocation, String arrivalLocation, Date date, Integer noSeats, Date departureHour, Collection<TransportRoute> routes);
+    public void createTransportAvailable(TransportAvailible transportAvailible, Transport transport, String departureLocation, String arrivalLocation, Date date, Integer noSeats, Date departureHour, Long trnasportId, Collection<TransportRoute> routes);
     public void editTransportAvailable(Transport transport, long availableID, String departureLocation, String arrivalLocation, Date date, Integer noSeats, Date departureHour);
 
Index: src/main/java/com/tourMate/services/UsersManager.java
===================================================================
--- src/main/java/com/tourMate/services/UsersManager.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/services/UsersManager.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -1,4 +1,5 @@
 package com.tourMate.services;
 
+import com.tourMate.dto.PrincipalInfo;
 import com.tourMate.entities.User;
 
@@ -20,3 +21,10 @@
 
     void unlock(Long id);
+
+    List<User> getAdmins();
+
+    void connectAccount(Long id, String username, String password);
+
+    List<User> findConnectedAccountsByUser(Long id);
+    PrincipalInfo getPrincipalInfo(Long userId);
 }
Index: src/main/java/com/tourMate/services/impl/HotelManagerImpl.java
===================================================================
--- src/main/java/com/tourMate/services/impl/HotelManagerImpl.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/services/impl/HotelManagerImpl.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -13,7 +13,5 @@
 
 import java.time.Duration;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
@@ -123,5 +121,6 @@
 
     @Override
-    public void createRoom(Hotels hotel, String hotelRoomDescription, String hotelRoomName, Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price, int numOfBeds) {
+    public void createRoom(Long hotelId, String hotelRoomDescription, String hotelRoomName, Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price, int numOfBeds) {
+        Hotels hotel = findHotelByID(hotelId);
         HotelRoom hotelRoom = new HotelRoom(hotel, hotelRoomDescription, hotelRoomName, kitchenAvailable, airConditioning, balcony, price, numOfBeds);
         hotelDao.createRoom(hotelRoom);
@@ -154,5 +153,6 @@
 
     @Override
-    public void createRoomAvailible(HotelRoom hotelRoom, Date dateFrom, Date dateTo, int numberOfBeds) {
+    public void createRoomAvailible(long hotelRoomId, Date dateFrom, Date dateTo, int numberOfBeds) {
+        HotelRoom hotelRoom = findRoomById(hotelRoomId);
         HotelRoomAvailable hra = new HotelRoomAvailable(hotelRoom, dateFrom, dateTo, numberOfBeds);
         hotelDao.createRoomAvailible(hra);
@@ -168,5 +168,9 @@
         hotelDao.editRoomAvailible(hr);
     }
-
+    //01-01-2024 - 30-01-2024
+    //05-01-2024 - 10-01-2024
+
+    //01-01 - 05-01
+    //10-01 - 30-01
     @Override
     public void editRoomAvailibleReservation(Long HotelRoomAvailableId, Long hotelRoomId, Date from, Date to, int numberOfBeds){
@@ -202,6 +206,31 @@
 
     @Override
+    public List<HotelRoomReservations> getReservationsInPeriod(String hotelLocation, Date dateFrom, Date dateTo)
+    {
+        return hotelDao.getReservationsInPeriod(hotelLocation, dateFrom, dateTo);
+    }
+
+    @Override
     public List<HotelDto> getRoomsAvailibilityByDateAndLocation(String hotelLocation, Date dateFrom, Date dateTo, int numberOfBeds, Boolean flexible) {
         long numberOfNights = Duration.between(dateFrom.toInstant(), dateTo.toInstant()).toDays();
+        List<Hotels> hotels = getHotelsByLocation(hotelLocation);
+        List<HotelRoomReservations> hotelRoomReservations = getReservationsInPeriod(hotelLocation, dateFrom, dateTo);
+        List<Hotels> hotelsWithReservations = hotelRoomReservations.stream().map(x -> x.getHotelRoom().getHotel()).toList();
+        List<Hotels> mostReservedHotels = hotelRoomReservations.stream()
+                .collect(Collectors.groupingBy(x -> x.getHotelRoom().getHotel(), Collectors.counting())).entrySet().stream()
+                .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
+                .limit(5)
+                .map(Map.Entry::getKey)
+                .toList();
+        List<Hotels> leastReservedHotels = hotelRoomReservations.stream()
+                .collect(Collectors.groupingBy(x -> x.getHotelRoom().getHotel(), Collectors.counting())).entrySet().stream()
+                .sorted(Map.Entry.comparingByValue())
+                .limit(5)
+                .map(Map.Entry::getKey)
+                .toList();
+        List<Hotels> hotelsWithoutReservations = hotels.stream().filter(x -> !hotelsWithReservations.contains(x)).toList();
+        List<Hotels> hotelsToBeMarketed = new ArrayList<>();
+        hotelsToBeMarketed.addAll(hotelsWithoutReservations);
+        hotelsToBeMarketed.addAll(leastReservedHotels);
         List<HotelRoomAvailable> roomsAvailible = hotelDao.getRoomsAvailibilityByDateAndLocation(hotelLocation, dateFrom, dateTo, numberOfBeds, flexible);
         Map<Hotels, List<HotelRoomAvailable>> roomsByHotels = roomsAvailible.stream().collect(Collectors.groupingBy(x -> x.getHotelRoom().getHotel()));
@@ -220,5 +249,7 @@
                         getReviewsForHotel(x.getHotelId()),
                         getReviewsForHotel(x.getHotelId()).stream().mapToDouble(Reviews::getNumStar).average().orElse(0),
-                        getHotelImages(x.getHotelId())
+                        getHotelImages(x.getHotelId()),
+                        mostReservedHotels.contains(x),
+                        hotelsToBeMarketed.contains(x)
                 )).toList();
         return hotelsList;
@@ -227,4 +258,5 @@
 
     @Override
+    // TODO:Transactional
     public void createReservation(Long userId, Long hotelRoomId, Long hotelRoomAvailableId, Date dateFrom, Date dateTo, Integer numberOfBeds) {
         HotelRoom room = hotelDao.findRoomById(hotelRoomId);
@@ -246,4 +278,5 @@
         hotelDao.editReservation(hr);
     }
+
 
     @Override
Index: src/main/java/com/tourMate/services/impl/MailingServiceImpl.java
===================================================================
--- src/main/java/com/tourMate/services/impl/MailingServiceImpl.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/java/com/tourMate/services/impl/MailingServiceImpl.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,26 @@
+package com.tourMate.services.impl;
+
+import com.tourMate.services.MailingService;
+import org.springframework.mail.SimpleMailMessage;
+import org.springframework.mail.javamail.JavaMailSender;
+import org.springframework.stereotype.Service;
+
+@Service
+public class MailingServiceImpl implements MailingService {
+
+    private final JavaMailSender emailSender;
+
+    public MailingServiceImpl(JavaMailSender emailSender) {
+        this.emailSender = emailSender;
+    }
+
+    @Override
+    public void sendMail(String to, String subject, String messageText) {
+        SimpleMailMessage mail = new SimpleMailMessage();
+        mail.setFrom("Trip2MK");
+        mail.setTo(to);
+        mail.setSubject(subject);
+        mail.setText(messageText);
+        emailSender.send(mail);
+    }
+}
Index: src/main/java/com/tourMate/services/impl/RestaurantManagerImpl.java
===================================================================
--- src/main/java/com/tourMate/services/impl/RestaurantManagerImpl.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/services/impl/RestaurantManagerImpl.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -89,6 +89,14 @@
 
     @Override
-    public List<RestaurantDto> getTablesByDateAndLocation(String restaurantLocation, Date hourFrom, Date hourTo, int noSeats) {
-        List<RestaurantsAvailible> restaurantsAvailibles = restaurantDao.getTablesByDateAndLocation(restaurantLocation, hourFrom, hourTo, noSeats);
+    public List<RestaurantDto> getTablesByDateAndLocation(String restaurantLocation, Date date, String hourFrom, String hourTo, int noSeats) {
+        Date dateFrom = date;
+        Date dateTo = Date.from(date.toInstant());
+        String[] splittedFrom = hourFrom.split(":");
+        String[] splittedTo = hourTo.split(":");
+        dateFrom.setHours(Integer.parseInt(splittedFrom[0]));
+        dateFrom.setMinutes(Integer.parseInt(splittedFrom[1]));
+        dateTo.setHours(Integer.parseInt(splittedTo[0]));
+        dateTo.setMinutes(Integer.parseInt(splittedTo[1]));
+        List<RestaurantsAvailible> restaurantsAvailibles = restaurantDao.getTablesByDateAndLocation(restaurantLocation, dateFrom, dateTo, noSeats);
         Map<Restaurant, List<RestaurantsAvailible>> tablesByRestaurants = restaurantsAvailibles.stream().collect(Collectors.groupingBy(x -> x.getRestaurantTable().getRestaurant()));
         List<RestaurantDto> restaurantsList = tablesByRestaurants.keySet().stream()
Index: c/main/java/com/tourMate/services/impl/TokenManagerImpl.java
===================================================================
--- src/main/java/com/tourMate/services/impl/TokenManagerImpl.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ 	(revision )
@@ -1,31 +1,0 @@
-package com.tourMate.services.impl;
-
-import com.tourMate.dao.TokenDao;
-import com.tourMate.entities.Token;
-import com.tourMate.services.TokenManager;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.time.LocalDateTime;
-
-@Service
-public class TokenManagerImpl implements TokenManager {
-    @Autowired
-    TokenDao tokenDao;
-
-
-    @Override
-    public void saveToken(Token token) {
-        tokenDao.saveToken(token);
-    }
-
-    @Override
-    public Token getToken(String token) {
-        return tokenDao.getToken(token);
-    }
-    
-    @Override
-    public void setConfirmedAt(String token) {
-        tokenDao.setConfirmedAt(token, LocalDateTime.now());
-    }
-}
Index: src/main/java/com/tourMate/services/impl/TransportManagerImpl.java
===================================================================
--- src/main/java/com/tourMate/services/impl/TransportManagerImpl.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/services/impl/TransportManagerImpl.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -46,5 +46,33 @@
     public List<TransportDto> getTransportsByUser(long userId) {
         User u = usersManager.findUserByID(userId);
-        return transportDao.getTransportsByUser(u);
+        List<Transport> transports = transportDao.getTransportsByUser(u);
+        return transports.stream().map(x -> new TransportDto(
+                x.getTransportID(),
+                x.getTransportName(),
+                x.getCarBrand(),
+                x.getCarType(),
+                x.getCarManufacturedYear(),
+                x.getNoPassengers(),
+                x.getNoBags(),
+                x.getEMBG(),
+                x.getOwner(),
+                x.getCarPlate(),
+                x.getAvailableRoutes().stream().map(y -> new RouteListingDto(
+                        y.getTransportAvailibleId(),
+                        y.getFrom(),
+                        y.getTo(),
+                        y.getDate(),
+                        y.getFreeSpace(),
+                        y.getTime(),
+                        y.getRoutes(),
+                        y.getRoutes().stream()
+                                .mapToDouble(TransportRoute::getPrice)
+                                .max().orElse(0)
+                )).toList(),
+                x.getAvailableRoutes().stream()
+                        .flatMapToDouble(y -> y.getRoutes()
+                                .stream()
+                                .mapToDouble(TransportRoute::getPrice)).max().orElseGet(() -> 0)
+        )).toList();
     }
 
@@ -52,10 +80,49 @@
     public List<RouteListingDto> getRoutesForTransport(long transportId) {
         Transport t = getTransportById(transportId);
-        return transportDao.getRoutesForTransport(t);
+        List<TransportAvailible> transportAvailibles = transportDao.getRoutesForTransport(t);
+        return transportAvailibles.stream().map(x -> new RouteListingDto(
+                x.getTransportAvailibleId(),
+                x.getFrom(),
+                x.getTo(),
+                x.getDate(),
+                x.getFreeSpace(),
+                x.getTime(),
+                x.getRoutes(),
+                x.getRoutes().stream()
+                        .mapToDouble(TransportRoute::getPrice)
+                        .max().orElse(0)
+        )).toList();
     }
 
     @Override
     public TransportDto findTransportById(long transportId) {
-        return transportDao.findTransportById(transportId);
+        Transport x = transportDao.findTransportById(transportId);
+        return new TransportDto(
+                x.getTransportID(),
+                x.getTransportName(),
+                x.getCarBrand(),
+                x.getCarType(),
+                x.getCarManufacturedYear(),
+                x.getNoPassengers(),
+                x.getNoBags(),
+                x.getEMBG(),
+                x.getOwner(),
+                x.getCarPlate(),
+                x.getAvailableRoutes().stream().map(y -> new RouteListingDto(
+                        y.getTransportAvailibleId(),
+                        y.getFrom(),
+                        y.getTo(),
+                        y.getDate(),
+                        y.getFreeSpace(),
+                        y.getTime(),
+                        y.getRoutes(),
+                        y.getRoutes().stream()
+                                .mapToDouble(TransportRoute::getPrice)
+                                .max().orElse(0)
+                )).toList(),
+                x.getAvailableRoutes().stream()
+                        .flatMapToDouble(y -> y.getRoutes()
+                                .stream()
+                                .mapToDouble(TransportRoute::getPrice)).max().orElseGet(() -> 0));
     }
 
@@ -152,6 +219,12 @@
 
     @Override
-    public void createTransportAvailable(Transport transport, String departureLocation, String arrivalLocation, Date date, Integer noSeats, Date departureHour, Collection<TransportRoute> routes) {
-        TransportAvailible ta=new TransportAvailible(transport,departureLocation,arrivalLocation,date,noSeats,departureHour);
+    public void createTransportAvailable(TransportAvailible transportAvailible, Transport transport, String departureLocation, String arrivalLocation, Date date, Integer noSeats, Date departureHour, Long transportId, Collection<TransportRoute> trRoutes) {
+        Transport t = getTransportById(transportId);
+        List<TransportRoute> routes = trRoutes.stream().toList();
+        routes.get(0).setDeparture(transportAvailible.getDate());
+        transportAvailible.setTime(routes.get(routes.size() - 1).getArrival());
+        routes.forEach(x -> x.setParentRoute(transportAvailible));
+        transportAvailible.setTransport(t);
+        TransportAvailible ta=new TransportAvailible(t,departureLocation,arrivalLocation,date,noSeats,departureHour);
         transportDao.createTransportAvailable(ta);
         routes.forEach(x -> {
Index: src/main/java/com/tourMate/services/impl/UsersManagerImpl.java
===================================================================
--- src/main/java/com/tourMate/services/impl/UsersManagerImpl.java	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/java/com/tourMate/services/impl/UsersManagerImpl.java	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -2,10 +2,14 @@
 
 import com.tourMate.dao.UsersDao;
+import com.tourMate.dto.PrincipalInfo;
 import com.tourMate.entities.User;
+import com.tourMate.events.OnProfileEnabledEvent;
 import com.tourMate.services.UsersManager;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.security.core.userdetails.UserDetailsService;
 import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Service;
 
@@ -18,5 +22,8 @@
     @Autowired
     UsersDao usersDao;
-
+    @Autowired
+    ApplicationEventPublisher eventPublisher;
+    @Autowired
+    PasswordEncoder passwordEncoder;
     @Override
     public void createUser(String name, String surname, String email, Date birthDate, String address, String contact) {
@@ -64,4 +71,39 @@
 
     @Override
+    public List<User> getAdmins() {
+        return usersDao.getAdmins();
+    }
+
+    @Override
+    public void connectAccount(Long id, String username, String password) {
+        User u1 = findUserByID(id);
+        User u2 = (User) loadUserByUsername(username);
+        if(passwordEncoder.matches(password, u2.getPassword()))
+        {
+            u1.addConnectedUser(u2);
+        }
+        usersDao.updateUser(u1);
+    }
+
+    @Override
+    public List<User> findConnectedAccountsByUser(Long id) {
+        User u = findUserByID(id);
+        return usersDao.findConnectedAccountsByUser(u);
+    }
+
+    @Override
+    public PrincipalInfo getPrincipalInfo(Long userId) {
+        PrincipalInfo principalInfo = new PrincipalInfo();
+        User u = findUserByID(userId);
+        principalInfo.setUsername(u.getUsername());
+        principalInfo.setRole(u.getRole().getRoleName());
+        principalInfo.setId(userId);
+        principalInfo.setName(u.getName());
+        principalInfo.setEmail(u.getEmail());
+        principalInfo.setSurname(u.getSurname());
+        return principalInfo;
+    }
+
+    @Override
     public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
         return usersDao.findUserByUsername(username);
Index: src/main/resources/application.properties
===================================================================
--- src/main/resources/application.properties	(revision 07f4e8b52fa18ab7781f9660c09d7982d8cd5a0b)
+++ src/main/resources/application.properties	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -14,6 +14,22 @@
 spring.datasource.hikari.maximumPoolSize=5
 
+
+
 spring.jpa.generate-ddl=true
 logging.level.org.springframework.security=DEBUG
 
 
+spring.security.oauth2.client.registration.github.client-id=f84a0839a98bf3b25d38
+spring.security.oauth2.client.registration.github.client-secret=e22be1f60e10517c8906bde54529280e57ff21f3
+
+spring.security.oauth2.client.registration.google.client-id=122292211431-p18l1falsh51nevvm2sg85rjp0psqsn4.apps.googleusercontent.com
+spring.security.oauth2.client.registration.google.client-secret=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
+spring.security.oauth2.client.registration.google.scope=profile,email
+
+spring.security.oauth2.client.registration.facebook.client-id=904891684514537
+spring.security.oauth2.client.registration.facebook.client-secret=f69fe635933dd32c12b5786968f18b4c
+#logging.level.org.springframework.security=DEBUG
+logging.level.org.springframework.security.oauth2=DEBUG
+
+
+
Index: src/main/resources/static/login.html
===================================================================
--- src/main/resources/static/login.html	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/resources/static/login.html	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,13731 @@
+<!DOCTYPE html>
+<!-- saved from url=(0027)http://localhost:3000/login -->
+<html lang="en">
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+    <!-- <link rel="icon" href="http://localhost:3000/favicon.ico"> -->
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="theme-color" content="#000000">
+    <meta name="description" content="Web site created using create-react-app">
+    <!-- <link rel="apple-touch-icon" href="http://localhost:3000/logo192.png"> -->
+    <!--
+      manifest.json provides metadata used when your web app is installed on a
+      user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
+    -->
+    <link rel="manifest" href="http://localhost:3000/manifest.json">
+    <!--
+      Notice the use of  in the tags above.
+      It will be replaced with the URL of the `public` folder during the build.
+      Only files inside the `public` folder can be referenced from the HTML.
+
+      Unlike "/favicon.ico" or "favicon.ico", "/favicon.ico" will
+      work correctly both with client-side routing and a non-root public URL.
+      Learn how to configure a non-root public URL by running `npm run build`.
+    -->
+    <title>React App</title>
+    >
+    <style>body {
+        margin: 0;
+        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
+        'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
+        sans-serif;
+        -webkit-font-smoothing: antialiased;
+        -moz-osx-font-smoothing: grayscale;
+    }
+
+    code {
+        font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
+        monospace;
+    }
+
+    .backdrop {
+        position: fixed;
+        top: 0;
+        left: 0;
+        width: 100%;
+        height: 100vh;
+        z-index: -10;
+        background: rgba(0, 0, 0, 0.75);
+    }
+
+    .modal {
+        position: fixed;
+        top: 30vh;
+        left: 10%;
+        width: 80%;
+        z-index: 10000000;
+        overflow: hidden;
+    }
+
+    /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9pbmRleC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxTQUFTO0VBQ1Q7O2NBRVk7RUFDWixtQ0FBbUM7RUFDbkMsa0NBQWtDO0FBQ3BDOztBQUVBO0VBQ0U7YUFDVztBQUNiOztBQUVBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVztFQUNYLGFBQWE7RUFDYixZQUFZO0VBQ1osK0JBQStCO0FBQ2pDOztBQUVBO0VBQ0UsZUFBZTtFQUNmLFNBQVM7RUFDVCxTQUFTO0VBQ1QsVUFBVTtFQUNWLGlCQUFpQjtFQUNqQixnQkFBZ0I7QUFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgJ094eWdlbicsXG4gICAgJ1VidW50dScsICdDYW50YXJlbGwnLCAnRmlyYSBTYW5zJywgJ0Ryb2lkIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLFxuICAgIHNhbnMtc2VyaWY7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5jb2RlIHtcbiAgZm9udC1mYW1pbHk6IHNvdXJjZS1jb2RlLXBybywgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsICdDb3VyaWVyIE5ldycsXG4gICAgbW9ub3NwYWNlO1xufVxuXG4uYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7XG4gIHotaW5kZXg6IC0xMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjc1KTtcbn1cblxuLm1vZGFsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDMwdmg7XG4gIGxlZnQ6IDEwJTtcbiAgd2lkdGg6IDgwJTtcbiAgei1pbmRleDogMTAwMDAwMDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 */</style>
+    <style>.App {
+        text-align: center;
+    }
+
+
+    .App-logo {
+        height: 40vmin;
+        pointer-events: none;
+    }
+
+    @media (prefers-reduced-motion: no-preference) {
+        .App-logo {
+            animation: App-logo-spin infinite 20s linear;
+        }
+    }
+
+    .App-header {
+        background-color: #282c34;
+        min-height: 100vh;
+        display: flex;
+        flex-direction: column;
+        align-items: center;
+        justify-content: center;
+        font-size: calc(10px + 2vmin);
+        color: white;
+    }
+
+    .App-link {
+        color: #61dafb;
+    }
+
+    .ikona {
+        vertical-align: middle;
+        display: inline-block;
+    }
+
+    .temno {
+        color: #1A5F7A;
+        font-weight: 800;
+        font-size: 1.5rem;
+    }
+
+    .svetlo {
+        color: #57C5B6;
+        font-weight: 500;
+        font-size: 1.5rem;
+    }
+
+    .tab-item {
+
+    }
+
+    .img-link {
+        text-decoration: none;
+    }
+
+    @keyframes App-logo-spin {
+        from {
+            transform: rotate(0deg);
+        }
+        to {
+            transform: rotate(360deg);
+        }
+    }
+
+    /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9BcHAuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0FBQ3BCOzs7OztBQUtBO0VBQ0UsY0FBYztFQUNkLG9CQUFvQjtBQUN0Qjs7QUFFQTtFQUNFO0lBQ0UsNENBQTRDO0VBQzlDO0FBQ0Y7O0FBRUE7RUFDRSx5QkFBeUI7RUFDekIsaUJBQWlCO0VBQ2pCLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2Qiw2QkFBNkI7RUFDN0IsWUFBWTtBQUNkOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLHNCQUFzQjtFQUN0QixxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxjQUFjO0VBQ2QsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGNBQWM7RUFDZCxnQkFBZ0I7RUFDaEIsaUJBQWlCO0FBQ25COztBQUVBOztBQUVBOztBQUVBO0VBQ0UscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0U7SUFDRSx1QkFBdUI7RUFDekI7RUFDQTtJQUNFLHlCQUF5QjtFQUMzQjtBQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLkFwcCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuXG5cblxuLkFwcC1sb2dvIHtcbiAgaGVpZ2h0OiA0MHZtaW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IG5vLXByZWZlcmVuY2UpIHtcbiAgLkFwcC1sb2dvIHtcbiAgICBhbmltYXRpb246IEFwcC1sb2dvLXNwaW4gaW5maW5pdGUgMjBzIGxpbmVhcjtcbiAgfVxufVxuXG4uQXBwLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyODJjMzQ7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiBjYWxjKDEwcHggKyAydm1pbik7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLkFwcC1saW5rIHtcbiAgY29sb3I6ICM2MWRhZmI7XG59XG5cbi5pa29uYSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLnRlbW5vIHtcbiAgY29sb3I6ICMxQTVGN0E7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xufVxuXG4uc3ZldGxvIHtcbiAgY29sb3I6ICM1N0M1QjY7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xufVxuXG4udGFiLWl0ZW0ge1xuXG59XG5cbi5pbWctbGluayB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuQGtleWZyYW1lcyBBcHAtbG9nby1zcGluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= */</style>
+    <style>@charset "UTF-8";
+    /*!
+ * Bootstrap  v5.3.0 (https://getbootstrap.com/)
+ * Copyright 2011-2023 The Bootstrap Authors
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+    :root,
+    [data-bs-theme=light] {
+        --bs-blue: #0d6efd;
+        --bs-indigo: #6610f2;
+        --bs-purple: #6f42c1;
+        --bs-pink: #d63384;
+        --bs-red: #dc3545;
+        --bs-orange: #fd7e14;
+        --bs-yellow: #ffc107;
+        --bs-green: #198754;
+        --bs-teal: #20c997;
+        --bs-cyan: #0dcaf0;
+        --bs-black: #000;
+        --bs-white: #fff;
+        --bs-gray: #6c757d;
+        --bs-gray-dark: #343a40;
+        --bs-gray-100: #f8f9fa;
+        --bs-gray-200: #e9ecef;
+        --bs-gray-300: #dee2e6;
+        --bs-gray-400: #ced4da;
+        --bs-gray-500: #adb5bd;
+        --bs-gray-600: #6c757d;
+        --bs-gray-700: #495057;
+        --bs-gray-800: #343a40;
+        --bs-gray-900: #212529;
+        --bs-primary: #0d6efd;
+        --bs-secondary: #6c757d;
+        --bs-success: #198754;
+        --bs-info: #0dcaf0;
+        --bs-warning: #ffc107;
+        --bs-danger: #dc3545;
+        --bs-light: #f8f9fa;
+        --bs-dark: #212529;
+        --bs-primary-rgb: 13, 110, 253;
+        --bs-secondary-rgb: 108, 117, 125;
+        --bs-success-rgb: 25, 135, 84;
+        --bs-info-rgb: 13, 202, 240;
+        --bs-warning-rgb: 255, 193, 7;
+        --bs-danger-rgb: 220, 53, 69;
+        --bs-light-rgb: 248, 249, 250;
+        --bs-dark-rgb: 33, 37, 41;
+        --bs-primary-text-emphasis: #052c65;
+        --bs-secondary-text-emphasis: #2b2f32;
+        --bs-success-text-emphasis: #0a3622;
+        --bs-info-text-emphasis: #055160;
+        --bs-warning-text-emphasis: #664d03;
+        --bs-danger-text-emphasis: #58151c;
+        --bs-light-text-emphasis: #495057;
+        --bs-dark-text-emphasis: #495057;
+        --bs-primary-bg-subtle: #cfe2ff;
+        --bs-secondary-bg-subtle: #e2e3e5;
+        --bs-success-bg-subtle: #d1e7dd;
+        --bs-info-bg-subtle: #cff4fc;
+        --bs-warning-bg-subtle: #fff3cd;
+        --bs-danger-bg-subtle: #f8d7da;
+        --bs-light-bg-subtle: #fcfcfd;
+        --bs-dark-bg-subtle: #ced4da;
+        --bs-primary-border-subtle: #9ec5fe;
+        --bs-secondary-border-subtle: #c4c8cb;
+        --bs-success-border-subtle: #a3cfbb;
+        --bs-info-border-subtle: #9eeaf9;
+        --bs-warning-border-subtle: #ffe69c;
+        --bs-danger-border-subtle: #f1aeb5;
+        --bs-light-border-subtle: #e9ecef;
+        --bs-dark-border-subtle: #adb5bd;
+        --bs-white-rgb: 255, 255, 255;
+        --bs-black-rgb: 0, 0, 0;
+        --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+        --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+        --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
+        --bs-body-font-family: var(--bs-font-sans-serif);
+        --bs-body-font-size: 1rem;
+        --bs-body-font-weight: 400;
+        --bs-body-line-height: 1.5;
+        --bs-body-color: #212529;
+        --bs-body-color-rgb: 33, 37, 41;
+        --bs-body-bg: #fff;
+        --bs-body-bg-rgb: 255, 255, 255;
+        --bs-emphasis-color: #000;
+        --bs-emphasis-color-rgb: 0, 0, 0;
+        --bs-secondary-color: rgba(33, 37, 41, 0.75);
+        --bs-secondary-color-rgb: 33, 37, 41;
+        --bs-secondary-bg: #e9ecef;
+        --bs-secondary-bg-rgb: 233, 236, 239;
+        --bs-tertiary-color: rgba(33, 37, 41, 0.5);
+        --bs-tertiary-color-rgb: 33, 37, 41;
+        --bs-tertiary-bg: #f8f9fa;
+        --bs-tertiary-bg-rgb: 248, 249, 250;
+        --bs-heading-color: inherit;
+        --bs-link-color: #0d6efd;
+        --bs-link-color-rgb: 13, 110, 253;
+        --bs-link-decoration: underline;
+        --bs-link-hover-color: #0a58ca;
+        --bs-link-hover-color-rgb: 10, 88, 202;
+        --bs-code-color: #d63384;
+        --bs-highlight-bg: #fff3cd;
+        --bs-border-width: 1px;
+        --bs-border-style: solid;
+        --bs-border-color: #dee2e6;
+        --bs-border-color-translucent: rgba(0, 0, 0, 0.175);
+        --bs-border-radius: 0.375rem;
+        --bs-border-radius-sm: 0.25rem;
+        --bs-border-radius-lg: 0.5rem;
+        --bs-border-radius-xl: 1rem;
+        --bs-border-radius-xxl: 2rem;
+        --bs-border-radius-2xl: var(--bs-border-radius-xxl);
+        --bs-border-radius-pill: 50rem;
+        --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+        --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
+        --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);
+        --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);
+        --bs-focus-ring-width: 0.25rem;
+        --bs-focus-ring-opacity: 0.25;
+        --bs-focus-ring-color: rgba(13, 110, 253, 0.25);
+        --bs-form-valid-color: #198754;
+        --bs-form-valid-border-color: #198754;
+        --bs-form-invalid-color: #dc3545;
+        --bs-form-invalid-border-color: #dc3545;
+    }
+
+    [data-bs-theme=dark] {
+        color-scheme: dark;
+        --bs-body-color: #adb5bd;
+        --bs-body-color-rgb: 173, 181, 189;
+        --bs-body-bg: #212529;
+        --bs-body-bg-rgb: 33, 37, 41;
+        --bs-emphasis-color: #fff;
+        --bs-emphasis-color-rgb: 255, 255, 255;
+        --bs-secondary-color: rgba(173, 181, 189, 0.75);
+        --bs-secondary-color-rgb: 173, 181, 189;
+        --bs-secondary-bg: #343a40;
+        --bs-secondary-bg-rgb: 52, 58, 64;
+        --bs-tertiary-color: rgba(173, 181, 189, 0.5);
+        --bs-tertiary-color-rgb: 173, 181, 189;
+        --bs-tertiary-bg: #2b3035;
+        --bs-tertiary-bg-rgb: 43, 48, 53;
+        --bs-primary-text-emphasis: #6ea8fe;
+        --bs-secondary-text-emphasis: #a7acb1;
+        --bs-success-text-emphasis: #75b798;
+        --bs-info-text-emphasis: #6edff6;
+        --bs-warning-text-emphasis: #ffda6a;
+        --bs-danger-text-emphasis: #ea868f;
+        --bs-light-text-emphasis: #f8f9fa;
+        --bs-dark-text-emphasis: #dee2e6;
+        --bs-primary-bg-subtle: #031633;
+        --bs-secondary-bg-subtle: #161719;
+        --bs-success-bg-subtle: #051b11;
+        --bs-info-bg-subtle: #032830;
+        --bs-warning-bg-subtle: #332701;
+        --bs-danger-bg-subtle: #2c0b0e;
+        --bs-light-bg-subtle: #343a40;
+        --bs-dark-bg-subtle: #1a1d20;
+        --bs-primary-border-subtle: #084298;
+        --bs-secondary-border-subtle: #41464b;
+        --bs-success-border-subtle: #0f5132;
+        --bs-info-border-subtle: #087990;
+        --bs-warning-border-subtle: #997404;
+        --bs-danger-border-subtle: #842029;
+        --bs-light-border-subtle: #495057;
+        --bs-dark-border-subtle: #343a40;
+        --bs-heading-color: inherit;
+        --bs-link-color: #6ea8fe;
+        --bs-link-hover-color: #8bb9fe;
+        --bs-link-color-rgb: 110, 168, 254;
+        --bs-link-hover-color-rgb: 139, 185, 254;
+        --bs-code-color: #e685b5;
+        --bs-border-color: #495057;
+        --bs-border-color-translucent: rgba(255, 255, 255, 0.15);
+        --bs-form-valid-color: #75b798;
+        --bs-form-valid-border-color: #75b798;
+        --bs-form-invalid-color: #ea868f;
+        --bs-form-invalid-border-color: #ea868f;
+    }
+
+    *,
+    *::before,
+    *::after {
+        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;
+        border: 0;
+        border-top: var(--bs-border-width) solid;
+        opacity: 0.25;
+    }
+
+    h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {
+        margin-top: 0;
+        margin-bottom: 0.5rem;
+        font-weight: 500;
+        line-height: 1.2;
+        color: var(--bs-heading-color);
+    }
+
+    h1, .h1 {
+        font-size: calc(1.375rem + 1.5vw);
+    }
+
+    @media (min-width: 1200px) {
+        h1, .h1 {
+            font-size: 2.5rem;
+        }
+    }
+
+    h2, .h2 {
+        font-size: calc(1.325rem + 0.9vw);
+    }
+
+    @media (min-width: 1200px) {
+        h2, .h2 {
+            font-size: 2rem;
+        }
+    }
+
+    h3, .h3 {
+        font-size: calc(1.3rem + 0.6vw);
+    }
+
+    @media (min-width: 1200px) {
+        h3, .h3 {
+            font-size: 1.75rem;
+        }
+    }
+
+    h4, .h4 {
+        font-size: calc(1.275rem + 0.3vw);
+    }
+
+    @media (min-width: 1200px) {
+        h4, .h4 {
+            font-size: 1.5rem;
+        }
+    }
+
+    h5, .h5 {
+        font-size: 1.25rem;
+    }
+
+    h6, .h6 {
+        font-size: 1rem;
+    }
+
+    p {
+        margin-top: 0;
+        margin-bottom: 1rem;
+    }
+
+    abbr[title] {
+        -webkit-text-decoration: underline dotted;
+        text-decoration: underline dotted;
+        cursor: help;
+        text-decoration-skip-ink: none;
+    }
+
+    address {
+        margin-bottom: 1rem;
+        font-style: normal;
+        line-height: inherit;
+    }
+
+    ol,
+    ul {
+        padding-left: 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-left: 0;
+    }
+
+    blockquote {
+        margin: 0 0 1rem;
+    }
+
+    b,
+    strong {
+        font-weight: bolder;
+    }
+
+    small, .small {
+        font-size: 0.875em;
+    }
+
+    mark, .mark {
+        padding: 0.1875em;
+        background-color: var(--bs-highlight-bg);
+    }
+
+    sub,
+    sup {
+        position: relative;
+        font-size: 0.75em;
+        line-height: 0;
+        vertical-align: baseline;
+    }
+
+    sub {
+        bottom: -0.25em;
+    }
+
+    sup {
+        top: -0.5em;
+    }
+
+    a {
+        color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));
+        text-decoration: underline;
+    }
+
+    a:hover {
+        --bs-link-color-rgb: var(--bs-link-hover-color-rgb);
+    }
+
+    a:not([href]):not([class]), a:not([href]):not([class]):hover {
+        color: inherit;
+        text-decoration: none;
+    }
+
+    pre,
+    code,
+    kbd,
+    samp {
+        font-family: var(--bs-font-monospace);
+        font-size: 1em;
+    }
+
+    pre {
+        display: block;
+        margin-top: 0;
+        margin-bottom: 1rem;
+        overflow: auto;
+        font-size: 0.875em;
+    }
+
+    pre code {
+        font-size: inherit;
+        color: inherit;
+        word-break: normal;
+    }
+
+    code {
+        font-size: 0.875em;
+        color: var(--bs-code-color);
+        word-wrap: break-word;
+    }
+
+    a > code {
+        color: inherit;
+    }
+
+    kbd {
+        padding: 0.1875rem 0.375rem;
+        font-size: 0.875em;
+        color: var(--bs-body-bg);
+        background-color: var(--bs-body-color);
+        border-radius: 0.25rem;
+    }
+
+    kbd kbd {
+        padding: 0;
+        font-size: 1em;
+    }
+
+    figure {
+        margin: 0 0 1rem;
+    }
+
+    img,
+    svg {
+        vertical-align: middle;
+    }
+
+    table {
+        caption-side: bottom;
+        border-collapse: collapse;
+    }
+
+    caption {
+        padding-top: 0.5rem;
+        padding-bottom: 0.5rem;
+        color: var(--bs-secondary-color);
+        text-align: left;
+    }
+
+    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]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {
+        display: none !important;
+    }
+
+    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: left;
+        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: left;
+    }
+
+    ::-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;
+    }
+
+    /* rtl:raw:
+[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-appearance: button;
+    }
+
+    output {
+        display: inline-block;
+    }
+
+    iframe {
+        border: 0;
+    }
+
+    summary {
+        display: list-item;
+        cursor: pointer;
+    }
+
+    progress {
+        vertical-align: baseline;
+    }
+
+    [hidden] {
+        display: none !important;
+    }
+
+    .lead {
+        font-size: 1.25rem;
+        font-weight: 300;
+    }
+
+    .display-1 {
+        font-size: calc(1.625rem + 4.5vw);
+        font-weight: 300;
+        line-height: 1.2;
+    }
+
+    @media (min-width: 1200px) {
+        .display-1 {
+            font-size: 5rem;
+        }
+    }
+
+    .display-2 {
+        font-size: calc(1.575rem + 3.9vw);
+        font-weight: 300;
+        line-height: 1.2;
+    }
+
+    @media (min-width: 1200px) {
+        .display-2 {
+            font-size: 4.5rem;
+        }
+    }
+
+    .display-3 {
+        font-size: calc(1.525rem + 3.3vw);
+        font-weight: 300;
+        line-height: 1.2;
+    }
+
+    @media (min-width: 1200px) {
+        .display-3 {
+            font-size: 4rem;
+        }
+    }
+
+    .display-4 {
+        font-size: calc(1.475rem + 2.7vw);
+        font-weight: 300;
+        line-height: 1.2;
+    }
+
+    @media (min-width: 1200px) {
+        .display-4 {
+            font-size: 3.5rem;
+        }
+    }
+
+    .display-5 {
+        font-size: calc(1.425rem + 2.1vw);
+        font-weight: 300;
+        line-height: 1.2;
+    }
+
+    @media (min-width: 1200px) {
+        .display-5 {
+            font-size: 3rem;
+        }
+    }
+
+    .display-6 {
+        font-size: calc(1.375rem + 1.5vw);
+        font-weight: 300;
+        line-height: 1.2;
+    }
+
+    @media (min-width: 1200px) {
+        .display-6 {
+            font-size: 2.5rem;
+        }
+    }
+
+    .list-unstyled {
+        padding-left: 0;
+        list-style: none;
+    }
+
+    .list-inline {
+        padding-left: 0;
+        list-style: none;
+    }
+
+    .list-inline-item {
+        display: inline-block;
+    }
+
+    .list-inline-item:not(:last-child) {
+        margin-right: 0.5rem;
+    }
+
+    .initialism {
+        font-size: 0.875em;
+        text-transform: uppercase;
+    }
+
+    .blockquote {
+        margin-bottom: 1rem;
+        font-size: 1.25rem;
+    }
+
+    .blockquote > :last-child {
+        margin-bottom: 0;
+    }
+
+    .blockquote-footer {
+        margin-top: -1rem;
+        margin-bottom: 1rem;
+        font-size: 0.875em;
+        color: #6c757d;
+    }
+
+    .blockquote-footer::before {
+        content: "— ";
+    }
+
+    .img-fluid {
+        max-width: 100%;
+        height: auto;
+    }
+
+    .img-thumbnail {
+        padding: 0.25rem;
+        background-color: var(--bs-body-bg);
+        border: var(--bs-border-width) solid var(--bs-border-color);
+        border-radius: var(--bs-border-radius);
+        max-width: 100%;
+        height: auto;
+    }
+
+    .figure {
+        display: inline-block;
+    }
+
+    .figure-img {
+        margin-bottom: 0.5rem;
+        line-height: 1;
+    }
+
+    .figure-caption {
+        font-size: 0.875em;
+        color: var(--bs-secondary-color);
+    }
+
+    .container,
+    .container-fluid,
+    .container-xxl,
+    .container-xl,
+    .container-lg,
+    .container-md,
+    .container-sm {
+        --bs-gutter-x: 1.5rem;
+        --bs-gutter-y: 0;
+        width: 100%;
+        padding-right: calc(var(--bs-gutter-x) * 0.5);
+        padding-left: calc(var(--bs-gutter-x) * 0.5);
+        margin-right: auto;
+        margin-left: 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;
+        }
+    }
+
+    :root {
+        --bs-breakpoint-xs: 0;
+        --bs-breakpoint-sm: 576px;
+        --bs-breakpoint-md: 768px;
+        --bs-breakpoint-lg: 992px;
+        --bs-breakpoint-xl: 1200px;
+        --bs-breakpoint-xxl: 1400px;
+    }
+
+    .row {
+        --bs-gutter-x: 1.5rem;
+        --bs-gutter-y: 0;
+        display: flex;
+        flex-wrap: wrap;
+        margin-top: calc(-1 * var(--bs-gutter-y));
+        margin-right: calc(-0.5 * var(--bs-gutter-x));
+        margin-left: calc(-0.5 * var(--bs-gutter-x));
+    }
+
+    .row > * {
+        flex-shrink: 0;
+        width: 100%;
+        max-width: 100%;
+        padding-right: calc(var(--bs-gutter-x) * 0.5);
+        padding-left: calc(var(--bs-gutter-x) * 0.5);
+        margin-top: var(--bs-gutter-y);
+    }
+
+    .col {
+        flex: 1 0;
+    }
+
+    .row-cols-auto > * {
+        flex: 0 0 auto;
+        width: auto;
+    }
+
+    .row-cols-1 > * {
+        flex: 0 0 auto;
+        width: 100%;
+    }
+
+    .row-cols-2 > * {
+        flex: 0 0 auto;
+        width: 50%;
+    }
+
+    .row-cols-3 > * {
+        flex: 0 0 auto;
+        width: 33.3333333333%;
+    }
+
+    .row-cols-4 > * {
+        flex: 0 0 auto;
+        width: 25%;
+    }
+
+    .row-cols-5 > * {
+        flex: 0 0 auto;
+        width: 20%;
+    }
+
+    .row-cols-6 > * {
+        flex: 0 0 auto;
+        width: 16.6666666667%;
+    }
+
+    .col-auto {
+        flex: 0 0 auto;
+        width: auto;
+    }
+
+    .col-1 {
+        flex: 0 0 auto;
+        width: 8.33333333%;
+    }
+
+    .col-2 {
+        flex: 0 0 auto;
+        width: 16.66666667%;
+    }
+
+    .col-3 {
+        flex: 0 0 auto;
+        width: 25%;
+    }
+
+    .col-4 {
+        flex: 0 0 auto;
+        width: 33.33333333%;
+    }
+
+    .col-5 {
+        flex: 0 0 auto;
+        width: 41.66666667%;
+    }
+
+    .col-6 {
+        flex: 0 0 auto;
+        width: 50%;
+    }
+
+    .col-7 {
+        flex: 0 0 auto;
+        width: 58.33333333%;
+    }
+
+    .col-8 {
+        flex: 0 0 auto;
+        width: 66.66666667%;
+    }
+
+    .col-9 {
+        flex: 0 0 auto;
+        width: 75%;
+    }
+
+    .col-10 {
+        flex: 0 0 auto;
+        width: 83.33333333%;
+    }
+
+    .col-11 {
+        flex: 0 0 auto;
+        width: 91.66666667%;
+    }
+
+    .col-12 {
+        flex: 0 0 auto;
+        width: 100%;
+    }
+
+    .offset-1 {
+        margin-left: 8.33333333%;
+    }
+
+    .offset-2 {
+        margin-left: 16.66666667%;
+    }
+
+    .offset-3 {
+        margin-left: 25%;
+    }
+
+    .offset-4 {
+        margin-left: 33.33333333%;
+    }
+
+    .offset-5 {
+        margin-left: 41.66666667%;
+    }
+
+    .offset-6 {
+        margin-left: 50%;
+    }
+
+    .offset-7 {
+        margin-left: 58.33333333%;
+    }
+
+    .offset-8 {
+        margin-left: 66.66666667%;
+    }
+
+    .offset-9 {
+        margin-left: 75%;
+    }
+
+    .offset-10 {
+        margin-left: 83.33333333%;
+    }
+
+    .offset-11 {
+        margin-left: 91.66666667%;
+    }
+
+    .g-0,
+    .gx-0 {
+        --bs-gutter-x: 0;
+    }
+
+    .g-0,
+    .gy-0 {
+        --bs-gutter-y: 0;
+    }
+
+    .g-1,
+    .gx-1 {
+        --bs-gutter-x: 0.25rem;
+    }
+
+    .g-1,
+    .gy-1 {
+        --bs-gutter-y: 0.25rem;
+    }
+
+    .g-2,
+    .gx-2 {
+        --bs-gutter-x: 0.5rem;
+    }
+
+    .g-2,
+    .gy-2 {
+        --bs-gutter-y: 0.5rem;
+    }
+
+    .g-3,
+    .gx-3 {
+        --bs-gutter-x: 1rem;
+    }
+
+    .g-3,
+    .gy-3 {
+        --bs-gutter-y: 1rem;
+    }
+
+    .g-4,
+    .gx-4 {
+        --bs-gutter-x: 1.5rem;
+    }
+
+    .g-4,
+    .gy-4 {
+        --bs-gutter-y: 1.5rem;
+    }
+
+    .g-5,
+    .gx-5 {
+        --bs-gutter-x: 3rem;
+    }
+
+    .g-5,
+    .gy-5 {
+        --bs-gutter-y: 3rem;
+    }
+
+    @media (min-width: 576px) {
+        .col-sm {
+            flex: 1 0;
+        }
+
+        .row-cols-sm-auto > * {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .row-cols-sm-1 > * {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .row-cols-sm-2 > * {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .row-cols-sm-3 > * {
+            flex: 0 0 auto;
+            width: 33.3333333333%;
+        }
+
+        .row-cols-sm-4 > * {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .row-cols-sm-5 > * {
+            flex: 0 0 auto;
+            width: 20%;
+        }
+
+        .row-cols-sm-6 > * {
+            flex: 0 0 auto;
+            width: 16.6666666667%;
+        }
+
+        .col-sm-auto {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .col-sm-1 {
+            flex: 0 0 auto;
+            width: 8.33333333%;
+        }
+
+        .col-sm-2 {
+            flex: 0 0 auto;
+            width: 16.66666667%;
+        }
+
+        .col-sm-3 {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .col-sm-4 {
+            flex: 0 0 auto;
+            width: 33.33333333%;
+        }
+
+        .col-sm-5 {
+            flex: 0 0 auto;
+            width: 41.66666667%;
+        }
+
+        .col-sm-6 {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .col-sm-7 {
+            flex: 0 0 auto;
+            width: 58.33333333%;
+        }
+
+        .col-sm-8 {
+            flex: 0 0 auto;
+            width: 66.66666667%;
+        }
+
+        .col-sm-9 {
+            flex: 0 0 auto;
+            width: 75%;
+        }
+
+        .col-sm-10 {
+            flex: 0 0 auto;
+            width: 83.33333333%;
+        }
+
+        .col-sm-11 {
+            flex: 0 0 auto;
+            width: 91.66666667%;
+        }
+
+        .col-sm-12 {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .offset-sm-0 {
+            margin-left: 0;
+        }
+
+        .offset-sm-1 {
+            margin-left: 8.33333333%;
+        }
+
+        .offset-sm-2 {
+            margin-left: 16.66666667%;
+        }
+
+        .offset-sm-3 {
+            margin-left: 25%;
+        }
+
+        .offset-sm-4 {
+            margin-left: 33.33333333%;
+        }
+
+        .offset-sm-5 {
+            margin-left: 41.66666667%;
+        }
+
+        .offset-sm-6 {
+            margin-left: 50%;
+        }
+
+        .offset-sm-7 {
+            margin-left: 58.33333333%;
+        }
+
+        .offset-sm-8 {
+            margin-left: 66.66666667%;
+        }
+
+        .offset-sm-9 {
+            margin-left: 75%;
+        }
+
+        .offset-sm-10 {
+            margin-left: 83.33333333%;
+        }
+
+        .offset-sm-11 {
+            margin-left: 91.66666667%;
+        }
+
+        .g-sm-0,
+        .gx-sm-0 {
+            --bs-gutter-x: 0;
+        }
+
+        .g-sm-0,
+        .gy-sm-0 {
+            --bs-gutter-y: 0;
+        }
+
+        .g-sm-1,
+        .gx-sm-1 {
+            --bs-gutter-x: 0.25rem;
+        }
+
+        .g-sm-1,
+        .gy-sm-1 {
+            --bs-gutter-y: 0.25rem;
+        }
+
+        .g-sm-2,
+        .gx-sm-2 {
+            --bs-gutter-x: 0.5rem;
+        }
+
+        .g-sm-2,
+        .gy-sm-2 {
+            --bs-gutter-y: 0.5rem;
+        }
+
+        .g-sm-3,
+        .gx-sm-3 {
+            --bs-gutter-x: 1rem;
+        }
+
+        .g-sm-3,
+        .gy-sm-3 {
+            --bs-gutter-y: 1rem;
+        }
+
+        .g-sm-4,
+        .gx-sm-4 {
+            --bs-gutter-x: 1.5rem;
+        }
+
+        .g-sm-4,
+        .gy-sm-4 {
+            --bs-gutter-y: 1.5rem;
+        }
+
+        .g-sm-5,
+        .gx-sm-5 {
+            --bs-gutter-x: 3rem;
+        }
+
+        .g-sm-5,
+        .gy-sm-5 {
+            --bs-gutter-y: 3rem;
+        }
+    }
+
+    @media (min-width: 768px) {
+        .col-md {
+            flex: 1 0;
+        }
+
+        .row-cols-md-auto > * {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .row-cols-md-1 > * {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .row-cols-md-2 > * {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .row-cols-md-3 > * {
+            flex: 0 0 auto;
+            width: 33.3333333333%;
+        }
+
+        .row-cols-md-4 > * {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .row-cols-md-5 > * {
+            flex: 0 0 auto;
+            width: 20%;
+        }
+
+        .row-cols-md-6 > * {
+            flex: 0 0 auto;
+            width: 16.6666666667%;
+        }
+
+        .col-md-auto {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .col-md-1 {
+            flex: 0 0 auto;
+            width: 8.33333333%;
+        }
+
+        .col-md-2 {
+            flex: 0 0 auto;
+            width: 16.66666667%;
+        }
+
+        .col-md-3 {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .col-md-4 {
+            flex: 0 0 auto;
+            width: 33.33333333%;
+        }
+
+        .col-md-5 {
+            flex: 0 0 auto;
+            width: 41.66666667%;
+        }
+
+        .col-md-6 {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .col-md-7 {
+            flex: 0 0 auto;
+            width: 58.33333333%;
+        }
+
+        .col-md-8 {
+            flex: 0 0 auto;
+            width: 66.66666667%;
+        }
+
+        .col-md-9 {
+            flex: 0 0 auto;
+            width: 75%;
+        }
+
+        .col-md-10 {
+            flex: 0 0 auto;
+            width: 83.33333333%;
+        }
+
+        .col-md-11 {
+            flex: 0 0 auto;
+            width: 91.66666667%;
+        }
+
+        .col-md-12 {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .offset-md-0 {
+            margin-left: 0;
+        }
+
+        .offset-md-1 {
+            margin-left: 8.33333333%;
+        }
+
+        .offset-md-2 {
+            margin-left: 16.66666667%;
+        }
+
+        .offset-md-3 {
+            margin-left: 25%;
+        }
+
+        .offset-md-4 {
+            margin-left: 33.33333333%;
+        }
+
+        .offset-md-5 {
+            margin-left: 41.66666667%;
+        }
+
+        .offset-md-6 {
+            margin-left: 50%;
+        }
+
+        .offset-md-7 {
+            margin-left: 58.33333333%;
+        }
+
+        .offset-md-8 {
+            margin-left: 66.66666667%;
+        }
+
+        .offset-md-9 {
+            margin-left: 75%;
+        }
+
+        .offset-md-10 {
+            margin-left: 83.33333333%;
+        }
+
+        .offset-md-11 {
+            margin-left: 91.66666667%;
+        }
+
+        .g-md-0,
+        .gx-md-0 {
+            --bs-gutter-x: 0;
+        }
+
+        .g-md-0,
+        .gy-md-0 {
+            --bs-gutter-y: 0;
+        }
+
+        .g-md-1,
+        .gx-md-1 {
+            --bs-gutter-x: 0.25rem;
+        }
+
+        .g-md-1,
+        .gy-md-1 {
+            --bs-gutter-y: 0.25rem;
+        }
+
+        .g-md-2,
+        .gx-md-2 {
+            --bs-gutter-x: 0.5rem;
+        }
+
+        .g-md-2,
+        .gy-md-2 {
+            --bs-gutter-y: 0.5rem;
+        }
+
+        .g-md-3,
+        .gx-md-3 {
+            --bs-gutter-x: 1rem;
+        }
+
+        .g-md-3,
+        .gy-md-3 {
+            --bs-gutter-y: 1rem;
+        }
+
+        .g-md-4,
+        .gx-md-4 {
+            --bs-gutter-x: 1.5rem;
+        }
+
+        .g-md-4,
+        .gy-md-4 {
+            --bs-gutter-y: 1.5rem;
+        }
+
+        .g-md-5,
+        .gx-md-5 {
+            --bs-gutter-x: 3rem;
+        }
+
+        .g-md-5,
+        .gy-md-5 {
+            --bs-gutter-y: 3rem;
+        }
+    }
+
+    @media (min-width: 992px) {
+        .col-lg {
+            flex: 1 0;
+        }
+
+        .row-cols-lg-auto > * {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .row-cols-lg-1 > * {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .row-cols-lg-2 > * {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .row-cols-lg-3 > * {
+            flex: 0 0 auto;
+            width: 33.3333333333%;
+        }
+
+        .row-cols-lg-4 > * {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .row-cols-lg-5 > * {
+            flex: 0 0 auto;
+            width: 20%;
+        }
+
+        .row-cols-lg-6 > * {
+            flex: 0 0 auto;
+            width: 16.6666666667%;
+        }
+
+        .col-lg-auto {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .col-lg-1 {
+            flex: 0 0 auto;
+            width: 8.33333333%;
+        }
+
+        .col-lg-2 {
+            flex: 0 0 auto;
+            width: 16.66666667%;
+        }
+
+        .col-lg-3 {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .col-lg-4 {
+            flex: 0 0 auto;
+            width: 33.33333333%;
+        }
+
+        .col-lg-5 {
+            flex: 0 0 auto;
+            width: 41.66666667%;
+        }
+
+        .col-lg-6 {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .col-lg-7 {
+            flex: 0 0 auto;
+            width: 58.33333333%;
+        }
+
+        .col-lg-8 {
+            flex: 0 0 auto;
+            width: 66.66666667%;
+        }
+
+        .col-lg-9 {
+            flex: 0 0 auto;
+            width: 75%;
+        }
+
+        .col-lg-10 {
+            flex: 0 0 auto;
+            width: 83.33333333%;
+        }
+
+        .col-lg-11 {
+            flex: 0 0 auto;
+            width: 91.66666667%;
+        }
+
+        .col-lg-12 {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .offset-lg-0 {
+            margin-left: 0;
+        }
+
+        .offset-lg-1 {
+            margin-left: 8.33333333%;
+        }
+
+        .offset-lg-2 {
+            margin-left: 16.66666667%;
+        }
+
+        .offset-lg-3 {
+            margin-left: 25%;
+        }
+
+        .offset-lg-4 {
+            margin-left: 33.33333333%;
+        }
+
+        .offset-lg-5 {
+            margin-left: 41.66666667%;
+        }
+
+        .offset-lg-6 {
+            margin-left: 50%;
+        }
+
+        .offset-lg-7 {
+            margin-left: 58.33333333%;
+        }
+
+        .offset-lg-8 {
+            margin-left: 66.66666667%;
+        }
+
+        .offset-lg-9 {
+            margin-left: 75%;
+        }
+
+        .offset-lg-10 {
+            margin-left: 83.33333333%;
+        }
+
+        .offset-lg-11 {
+            margin-left: 91.66666667%;
+        }
+
+        .g-lg-0,
+        .gx-lg-0 {
+            --bs-gutter-x: 0;
+        }
+
+        .g-lg-0,
+        .gy-lg-0 {
+            --bs-gutter-y: 0;
+        }
+
+        .g-lg-1,
+        .gx-lg-1 {
+            --bs-gutter-x: 0.25rem;
+        }
+
+        .g-lg-1,
+        .gy-lg-1 {
+            --bs-gutter-y: 0.25rem;
+        }
+
+        .g-lg-2,
+        .gx-lg-2 {
+            --bs-gutter-x: 0.5rem;
+        }
+
+        .g-lg-2,
+        .gy-lg-2 {
+            --bs-gutter-y: 0.5rem;
+        }
+
+        .g-lg-3,
+        .gx-lg-3 {
+            --bs-gutter-x: 1rem;
+        }
+
+        .g-lg-3,
+        .gy-lg-3 {
+            --bs-gutter-y: 1rem;
+        }
+
+        .g-lg-4,
+        .gx-lg-4 {
+            --bs-gutter-x: 1.5rem;
+        }
+
+        .g-lg-4,
+        .gy-lg-4 {
+            --bs-gutter-y: 1.5rem;
+        }
+
+        .g-lg-5,
+        .gx-lg-5 {
+            --bs-gutter-x: 3rem;
+        }
+
+        .g-lg-5,
+        .gy-lg-5 {
+            --bs-gutter-y: 3rem;
+        }
+    }
+
+    @media (min-width: 1200px) {
+        .col-xl {
+            flex: 1 0;
+        }
+
+        .row-cols-xl-auto > * {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .row-cols-xl-1 > * {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .row-cols-xl-2 > * {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .row-cols-xl-3 > * {
+            flex: 0 0 auto;
+            width: 33.3333333333%;
+        }
+
+        .row-cols-xl-4 > * {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .row-cols-xl-5 > * {
+            flex: 0 0 auto;
+            width: 20%;
+        }
+
+        .row-cols-xl-6 > * {
+            flex: 0 0 auto;
+            width: 16.6666666667%;
+        }
+
+        .col-xl-auto {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .col-xl-1 {
+            flex: 0 0 auto;
+            width: 8.33333333%;
+        }
+
+        .col-xl-2 {
+            flex: 0 0 auto;
+            width: 16.66666667%;
+        }
+
+        .col-xl-3 {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .col-xl-4 {
+            flex: 0 0 auto;
+            width: 33.33333333%;
+        }
+
+        .col-xl-5 {
+            flex: 0 0 auto;
+            width: 41.66666667%;
+        }
+
+        .col-xl-6 {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .col-xl-7 {
+            flex: 0 0 auto;
+            width: 58.33333333%;
+        }
+
+        .col-xl-8 {
+            flex: 0 0 auto;
+            width: 66.66666667%;
+        }
+
+        .col-xl-9 {
+            flex: 0 0 auto;
+            width: 75%;
+        }
+
+        .col-xl-10 {
+            flex: 0 0 auto;
+            width: 83.33333333%;
+        }
+
+        .col-xl-11 {
+            flex: 0 0 auto;
+            width: 91.66666667%;
+        }
+
+        .col-xl-12 {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .offset-xl-0 {
+            margin-left: 0;
+        }
+
+        .offset-xl-1 {
+            margin-left: 8.33333333%;
+        }
+
+        .offset-xl-2 {
+            margin-left: 16.66666667%;
+        }
+
+        .offset-xl-3 {
+            margin-left: 25%;
+        }
+
+        .offset-xl-4 {
+            margin-left: 33.33333333%;
+        }
+
+        .offset-xl-5 {
+            margin-left: 41.66666667%;
+        }
+
+        .offset-xl-6 {
+            margin-left: 50%;
+        }
+
+        .offset-xl-7 {
+            margin-left: 58.33333333%;
+        }
+
+        .offset-xl-8 {
+            margin-left: 66.66666667%;
+        }
+
+        .offset-xl-9 {
+            margin-left: 75%;
+        }
+
+        .offset-xl-10 {
+            margin-left: 83.33333333%;
+        }
+
+        .offset-xl-11 {
+            margin-left: 91.66666667%;
+        }
+
+        .g-xl-0,
+        .gx-xl-0 {
+            --bs-gutter-x: 0;
+        }
+
+        .g-xl-0,
+        .gy-xl-0 {
+            --bs-gutter-y: 0;
+        }
+
+        .g-xl-1,
+        .gx-xl-1 {
+            --bs-gutter-x: 0.25rem;
+        }
+
+        .g-xl-1,
+        .gy-xl-1 {
+            --bs-gutter-y: 0.25rem;
+        }
+
+        .g-xl-2,
+        .gx-xl-2 {
+            --bs-gutter-x: 0.5rem;
+        }
+
+        .g-xl-2,
+        .gy-xl-2 {
+            --bs-gutter-y: 0.5rem;
+        }
+
+        .g-xl-3,
+        .gx-xl-3 {
+            --bs-gutter-x: 1rem;
+        }
+
+        .g-xl-3,
+        .gy-xl-3 {
+            --bs-gutter-y: 1rem;
+        }
+
+        .g-xl-4,
+        .gx-xl-4 {
+            --bs-gutter-x: 1.5rem;
+        }
+
+        .g-xl-4,
+        .gy-xl-4 {
+            --bs-gutter-y: 1.5rem;
+        }
+
+        .g-xl-5,
+        .gx-xl-5 {
+            --bs-gutter-x: 3rem;
+        }
+
+        .g-xl-5,
+        .gy-xl-5 {
+            --bs-gutter-y: 3rem;
+        }
+    }
+
+    @media (min-width: 1400px) {
+        .col-xxl {
+            flex: 1 0;
+        }
+
+        .row-cols-xxl-auto > * {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .row-cols-xxl-1 > * {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .row-cols-xxl-2 > * {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .row-cols-xxl-3 > * {
+            flex: 0 0 auto;
+            width: 33.3333333333%;
+        }
+
+        .row-cols-xxl-4 > * {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .row-cols-xxl-5 > * {
+            flex: 0 0 auto;
+            width: 20%;
+        }
+
+        .row-cols-xxl-6 > * {
+            flex: 0 0 auto;
+            width: 16.6666666667%;
+        }
+
+        .col-xxl-auto {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .col-xxl-1 {
+            flex: 0 0 auto;
+            width: 8.33333333%;
+        }
+
+        .col-xxl-2 {
+            flex: 0 0 auto;
+            width: 16.66666667%;
+        }
+
+        .col-xxl-3 {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .col-xxl-4 {
+            flex: 0 0 auto;
+            width: 33.33333333%;
+        }
+
+        .col-xxl-5 {
+            flex: 0 0 auto;
+            width: 41.66666667%;
+        }
+
+        .col-xxl-6 {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .col-xxl-7 {
+            flex: 0 0 auto;
+            width: 58.33333333%;
+        }
+
+        .col-xxl-8 {
+            flex: 0 0 auto;
+            width: 66.66666667%;
+        }
+
+        .col-xxl-9 {
+            flex: 0 0 auto;
+            width: 75%;
+        }
+
+        .col-xxl-10 {
+            flex: 0 0 auto;
+            width: 83.33333333%;
+        }
+
+        .col-xxl-11 {
+            flex: 0 0 auto;
+            width: 91.66666667%;
+        }
+
+        .col-xxl-12 {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .offset-xxl-0 {
+            margin-left: 0;
+        }
+
+        .offset-xxl-1 {
+            margin-left: 8.33333333%;
+        }
+
+        .offset-xxl-2 {
+            margin-left: 16.66666667%;
+        }
+
+        .offset-xxl-3 {
+            margin-left: 25%;
+        }
+
+        .offset-xxl-4 {
+            margin-left: 33.33333333%;
+        }
+
+        .offset-xxl-5 {
+            margin-left: 41.66666667%;
+        }
+
+        .offset-xxl-6 {
+            margin-left: 50%;
+        }
+
+        .offset-xxl-7 {
+            margin-left: 58.33333333%;
+        }
+
+        .offset-xxl-8 {
+            margin-left: 66.66666667%;
+        }
+
+        .offset-xxl-9 {
+            margin-left: 75%;
+        }
+
+        .offset-xxl-10 {
+            margin-left: 83.33333333%;
+        }
+
+        .offset-xxl-11 {
+            margin-left: 91.66666667%;
+        }
+
+        .g-xxl-0,
+        .gx-xxl-0 {
+            --bs-gutter-x: 0;
+        }
+
+        .g-xxl-0,
+        .gy-xxl-0 {
+            --bs-gutter-y: 0;
+        }
+
+        .g-xxl-1,
+        .gx-xxl-1 {
+            --bs-gutter-x: 0.25rem;
+        }
+
+        .g-xxl-1,
+        .gy-xxl-1 {
+            --bs-gutter-y: 0.25rem;
+        }
+
+        .g-xxl-2,
+        .gx-xxl-2 {
+            --bs-gutter-x: 0.5rem;
+        }
+
+        .g-xxl-2,
+        .gy-xxl-2 {
+            --bs-gutter-y: 0.5rem;
+        }
+
+        .g-xxl-3,
+        .gx-xxl-3 {
+            --bs-gutter-x: 1rem;
+        }
+
+        .g-xxl-3,
+        .gy-xxl-3 {
+            --bs-gutter-y: 1rem;
+        }
+
+        .g-xxl-4,
+        .gx-xxl-4 {
+            --bs-gutter-x: 1.5rem;
+        }
+
+        .g-xxl-4,
+        .gy-xxl-4 {
+            --bs-gutter-y: 1.5rem;
+        }
+
+        .g-xxl-5,
+        .gx-xxl-5 {
+            --bs-gutter-x: 3rem;
+        }
+
+        .g-xxl-5,
+        .gy-xxl-5 {
+            --bs-gutter-y: 3rem;
+        }
+    }
+
+    .table {
+        --bs-table-color-type: initial;
+        --bs-table-bg-type: initial;
+        --bs-table-color-state: initial;
+        --bs-table-bg-state: initial;
+        --bs-table-color: var(--bs-body-color);
+        --bs-table-bg: var(--bs-body-bg);
+        --bs-table-border-color: var(--bs-border-color);
+        --bs-table-accent-bg: transparent;
+        --bs-table-striped-color: var(--bs-body-color);
+        --bs-table-striped-bg: rgba(0, 0, 0, 0.05);
+        --bs-table-active-color: var(--bs-body-color);
+        --bs-table-active-bg: rgba(0, 0, 0, 0.1);
+        --bs-table-hover-color: var(--bs-body-color);
+        --bs-table-hover-bg: rgba(0, 0, 0, 0.075);
+        width: 100%;
+        margin-bottom: 1rem;
+        vertical-align: top;
+        border-color: var(--bs-table-border-color);
+    }
+
+    .table > :not(caption) > * > * {
+        padding: 0.5rem 0.5rem;
+        color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));
+        background-color: var(--bs-table-bg);
+        border-bottom-width: var(--bs-border-width);
+        box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)));
+    }
+
+    .table > tbody {
+        vertical-align: inherit;
+    }
+
+    .table > thead {
+        vertical-align: bottom;
+    }
+
+    .table-group-divider {
+        border-top: calc(var(--bs-border-width) * 2) solid currentcolor;
+    }
+
+    .caption-top {
+        caption-side: top;
+    }
+
+    .table-sm > :not(caption) > * > * {
+        padding: 0.25rem 0.25rem;
+    }
+
+    .table-bordered > :not(caption) > * {
+        border-width: var(--bs-border-width) 0;
+    }
+
+    .table-bordered > :not(caption) > * > * {
+        border-width: 0 var(--bs-border-width);
+    }
+
+    .table-borderless > :not(caption) > * > * {
+        border-bottom-width: 0;
+    }
+
+    .table-borderless > :not(:first-child) {
+        border-top-width: 0;
+    }
+
+    .table-striped > tbody > tr:nth-of-type(odd) > * {
+        --bs-table-color-type: var(--bs-table-striped-color);
+        --bs-table-bg-type: var(--bs-table-striped-bg);
+    }
+
+    .table-striped-columns > :not(caption) > tr > :nth-child(even) {
+        --bs-table-color-type: var(--bs-table-striped-color);
+        --bs-table-bg-type: var(--bs-table-striped-bg);
+    }
+
+    .table-active {
+        --bs-table-color-state: var(--bs-table-active-color);
+        --bs-table-bg-state: var(--bs-table-active-bg);
+    }
+
+    .table-hover > tbody > tr:hover > * {
+        --bs-table-color-state: var(--bs-table-hover-color);
+        --bs-table-bg-state: var(--bs-table-hover-bg);
+    }
+
+    .table-primary {
+        --bs-table-color: #000;
+        --bs-table-bg: #cfe2ff;
+        --bs-table-border-color: #bacbe6;
+        --bs-table-striped-bg: #c5d7f2;
+        --bs-table-striped-color: #000;
+        --bs-table-active-bg: #bacbe6;
+        --bs-table-active-color: #000;
+        --bs-table-hover-bg: #bfd1ec;
+        --bs-table-hover-color: #000;
+        color: var(--bs-table-color);
+        border-color: var(--bs-table-border-color);
+    }
+
+    .table-secondary {
+        --bs-table-color: #000;
+        --bs-table-bg: #e2e3e5;
+        --bs-table-border-color: #cbccce;
+        --bs-table-striped-bg: #d7d8da;
+        --bs-table-striped-color: #000;
+        --bs-table-active-bg: #cbccce;
+        --bs-table-active-color: #000;
+        --bs-table-hover-bg: #d1d2d4;
+        --bs-table-hover-color: #000;
+        color: var(--bs-table-color);
+        border-color: var(--bs-table-border-color);
+    }
+
+    .table-success {
+        --bs-table-color: #000;
+        --bs-table-bg: #d1e7dd;
+        --bs-table-border-color: #bcd0c7;
+        --bs-table-striped-bg: #c7dbd2;
+        --bs-table-striped-color: #000;
+        --bs-table-active-bg: #bcd0c7;
+        --bs-table-active-color: #000;
+        --bs-table-hover-bg: #c1d6cc;
+        --bs-table-hover-color: #000;
+        color: var(--bs-table-color);
+        border-color: var(--bs-table-border-color);
+    }
+
+    .table-info {
+        --bs-table-color: #000;
+        --bs-table-bg: #cff4fc;
+        --bs-table-border-color: #badce3;
+        --bs-table-striped-bg: #c5e8ef;
+        --bs-table-striped-color: #000;
+        --bs-table-active-bg: #badce3;
+        --bs-table-active-color: #000;
+        --bs-table-hover-bg: #bfe2e9;
+        --bs-table-hover-color: #000;
+        color: var(--bs-table-color);
+        border-color: var(--bs-table-border-color);
+    }
+
+    .table-warning {
+        --bs-table-color: #000;
+        --bs-table-bg: #fff3cd;
+        --bs-table-border-color: #e6dbb9;
+        --bs-table-striped-bg: #f2e7c3;
+        --bs-table-striped-color: #000;
+        --bs-table-active-bg: #e6dbb9;
+        --bs-table-active-color: #000;
+        --bs-table-hover-bg: #ece1be;
+        --bs-table-hover-color: #000;
+        color: var(--bs-table-color);
+        border-color: var(--bs-table-border-color);
+    }
+
+    .table-danger {
+        --bs-table-color: #000;
+        --bs-table-bg: #f8d7da;
+        --bs-table-border-color: #dfc2c4;
+        --bs-table-striped-bg: #eccccf;
+        --bs-table-striped-color: #000;
+        --bs-table-active-bg: #dfc2c4;
+        --bs-table-active-color: #000;
+        --bs-table-hover-bg: #e5c7ca;
+        --bs-table-hover-color: #000;
+        color: var(--bs-table-color);
+        border-color: var(--bs-table-border-color);
+    }
+
+    .table-light {
+        --bs-table-color: #000;
+        --bs-table-bg: #f8f9fa;
+        --bs-table-border-color: #dfe0e1;
+        --bs-table-striped-bg: #ecedee;
+        --bs-table-striped-color: #000;
+        --bs-table-active-bg: #dfe0e1;
+        --bs-table-active-color: #000;
+        --bs-table-hover-bg: #e5e6e7;
+        --bs-table-hover-color: #000;
+        color: var(--bs-table-color);
+        border-color: var(--bs-table-border-color);
+    }
+
+    .table-dark {
+        --bs-table-color: #fff;
+        --bs-table-bg: #212529;
+        --bs-table-border-color: #373b3e;
+        --bs-table-striped-bg: #2c3034;
+        --bs-table-striped-color: #fff;
+        --bs-table-active-bg: #373b3e;
+        --bs-table-active-color: #fff;
+        --bs-table-hover-bg: #323539;
+        --bs-table-hover-color: #fff;
+        color: var(--bs-table-color);
+        border-color: var(--bs-table-border-color);
+    }
+
+    .table-responsive {
+        overflow-x: auto;
+        -webkit-overflow-scrolling: touch;
+    }
+
+    @media (max-width: 575.98px) {
+        .table-responsive-sm {
+            overflow-x: auto;
+            -webkit-overflow-scrolling: touch;
+        }
+    }
+
+    @media (max-width: 767.98px) {
+        .table-responsive-md {
+            overflow-x: auto;
+            -webkit-overflow-scrolling: touch;
+        }
+    }
+
+    @media (max-width: 991.98px) {
+        .table-responsive-lg {
+            overflow-x: auto;
+            -webkit-overflow-scrolling: touch;
+        }
+    }
+
+    @media (max-width: 1199.98px) {
+        .table-responsive-xl {
+            overflow-x: auto;
+            -webkit-overflow-scrolling: touch;
+        }
+    }
+
+    @media (max-width: 1399.98px) {
+        .table-responsive-xxl {
+            overflow-x: auto;
+            -webkit-overflow-scrolling: touch;
+        }
+    }
+
+    .form-label {
+        margin-bottom: 0.5rem;
+    }
+
+    .col-form-label {
+        padding-top: calc(0.375rem + var(--bs-border-width));
+        padding-bottom: calc(0.375rem + var(--bs-border-width));
+        margin-bottom: 0;
+        font-size: inherit;
+        line-height: 1.5;
+    }
+
+    .col-form-label-lg {
+        padding-top: calc(0.5rem + var(--bs-border-width));
+        padding-bottom: calc(0.5rem + var(--bs-border-width));
+        font-size: 1.25rem;
+    }
+
+    .col-form-label-sm {
+        padding-top: calc(0.25rem + var(--bs-border-width));
+        padding-bottom: calc(0.25rem + var(--bs-border-width));
+        font-size: 0.875rem;
+    }
+
+    .form-text {
+        margin-top: 0.25rem;
+        font-size: 0.875em;
+        color: var(--bs-secondary-color);
+    }
+
+    .form-control {
+        display: block;
+        width: 100%;
+        padding: 0.375rem 0.75rem;
+        font-size: 1rem;
+        font-weight: 400;
+        line-height: 1.5;
+        color: var(--bs-body-color);
+        background-color: var(--bs-body-bg);
+        background-clip: padding-box;
+        border: var(--bs-border-width) solid var(--bs-border-color);
+        appearance: none;
+        border-radius: var(--bs-border-radius);
+        transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .form-control {
+            transition: none;
+        }
+    }
+
+    .form-control[type=file] {
+        overflow: hidden;
+    }
+
+    .form-control[type=file]:not(:disabled):not([readonly]) {
+        cursor: pointer;
+    }
+
+    .form-control:focus {
+        color: var(--bs-body-color);
+        background-color: var(--bs-body-bg);
+        border-color: #86b7fe;
+        outline: 0;
+        box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+    }
+
+    .form-control::-webkit-date-and-time-value {
+        min-width: 85px;
+        height: 1.5em;
+        margin: 0;
+    }
+
+    .form-control::-webkit-datetime-edit {
+        display: block;
+        padding: 0;
+    }
+
+    .form-control::placeholder {
+        color: var(--bs-secondary-color);
+        opacity: 1;
+    }
+
+    .form-control:disabled {
+        background-color: var(--bs-secondary-bg);
+        opacity: 1;
+    }
+
+    .form-control::file-selector-button {
+        padding: 0.375rem 0.75rem;
+        margin: -0.375rem -0.75rem;
+        margin-inline-end: 0.75rem;
+        color: var(--bs-body-color);
+        background-color: var(--bs-tertiary-bg);
+        pointer-events: none;
+        border-color: inherit;
+        border-style: solid;
+        border-width: 0;
+        border-inline-end-width: var(--bs-border-width);
+        border-radius: 0;
+        transition: color 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;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .form-control::file-selector-button {
+            transition: none;
+        }
+    }
+
+    .form-control:hover:not(:disabled):not([readonly])::file-selector-button {
+        background-color: var(--bs-secondary-bg);
+    }
+
+    .form-control-plaintext {
+        display: block;
+        width: 100%;
+        padding: 0.375rem 0;
+        margin-bottom: 0;
+        line-height: 1.5;
+        color: var(--bs-body-color);
+        background-color: transparent;
+        border: solid transparent;
+        border-width: var(--bs-border-width) 0;
+    }
+
+    .form-control-plaintext:focus {
+        outline: 0;
+    }
+
+    .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {
+        padding-right: 0;
+        padding-left: 0;
+    }
+
+    .form-control-sm {
+        min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
+        padding: 0.25rem 0.5rem;
+        font-size: 0.875rem;
+        border-radius: var(--bs-border-radius-sm);
+    }
+
+    .form-control-sm::file-selector-button {
+        padding: 0.25rem 0.5rem;
+        margin: -0.25rem -0.5rem;
+        margin-inline-end: 0.5rem;
+    }
+
+    .form-control-lg {
+        min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
+        padding: 0.5rem 1rem;
+        font-size: 1.25rem;
+        border-radius: var(--bs-border-radius-lg);
+    }
+
+    .form-control-lg::file-selector-button {
+        padding: 0.5rem 1rem;
+        margin: -0.5rem -1rem;
+        margin-inline-end: 1rem;
+    }
+
+    textarea.form-control {
+        min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));
+    }
+
+    textarea.form-control-sm {
+        min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
+    }
+
+    textarea.form-control-lg {
+        min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
+    }
+
+    .form-control-color {
+        width: 3rem;
+        height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));
+        padding: 0.375rem;
+    }
+
+    .form-control-color:not(:disabled):not([readonly]) {
+        cursor: pointer;
+    }
+
+    .form-control-color::-moz-color-swatch {
+        border: 0 !important;
+        border-radius: var(--bs-border-radius);
+    }
+
+    .form-control-color::-webkit-color-swatch {
+        border: 0 !important;
+        border-radius: var(--bs-border-radius);
+    }
+
+    .form-control-color.form-control-sm {
+        height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
+    }
+
+    .form-control-color.form-control-lg {
+        height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
+    }
+
+    .form-select {
+        --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27m2 5 6 6 6-6%27/%3e%3c/svg%3e");
+        display: block;
+        width: 100%;
+        padding: 0.375rem 2.25rem 0.375rem 0.75rem;
+        font-size: 1rem;
+        font-weight: 400;
+        line-height: 1.5;
+        color: var(--bs-body-color);
+        background-color: var(--bs-body-bg);
+        background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none);
+        background-repeat: no-repeat;
+        background-position: right 0.75rem center;
+        background-size: 16px 12px;
+        border: var(--bs-border-width) solid var(--bs-border-color);
+        border-radius: var(--bs-border-radius);
+        transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+        appearance: none;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .form-select {
+            transition: none;
+        }
+    }
+
+    .form-select:focus {
+        border-color: #86b7fe;
+        outline: 0;
+        box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+    }
+
+    .form-select[multiple], .form-select[size]:not([size="1"]) {
+        padding-right: 0.75rem;
+        background-image: none;
+    }
+
+    .form-select:disabled {
+        background-color: var(--bs-secondary-bg);
+    }
+
+    .form-select:-moz-focusring {
+        color: transparent;
+        text-shadow: 0 0 0 var(--bs-body-color);
+    }
+
+    .form-select-sm {
+        padding-top: 0.25rem;
+        padding-bottom: 0.25rem;
+        padding-left: 0.5rem;
+        font-size: 0.875rem;
+        border-radius: var(--bs-border-radius-sm);
+    }
+
+    .form-select-lg {
+        padding-top: 0.5rem;
+        padding-bottom: 0.5rem;
+        padding-left: 1rem;
+        font-size: 1.25rem;
+        border-radius: var(--bs-border-radius-lg);
+    }
+
+    [data-bs-theme=dark] .form-select {
+        --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23adb5bd%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27m2 5 6 6 6-6%27/%3e%3c/svg%3e");
+    }
+
+    .form-check {
+        display: block;
+        min-height: 1.5rem;
+        padding-left: 1.5em;
+        margin-bottom: 0.125rem;
+    }
+
+    .form-check .form-check-input {
+        float: left;
+        margin-left: -1.5em;
+    }
+
+    .form-check-reverse {
+        padding-right: 1.5em;
+        padding-left: 0;
+        text-align: right;
+    }
+
+    .form-check-reverse .form-check-input {
+        float: right;
+        margin-right: -1.5em;
+        margin-left: 0;
+    }
+
+    .form-check-input {
+        --bs-form-check-bg: var(--bs-body-bg);
+        width: 1em;
+        height: 1em;
+        margin-top: 0.25em;
+        vertical-align: top;
+        background-color: var(--bs-form-check-bg);
+        background-image: var(--bs-form-check-bg-image);
+        background-repeat: no-repeat;
+        background-position: center;
+        background-size: contain;
+        border: var(--bs-border-width) solid var(--bs-border-color);
+        appearance: none;
+        -webkit-print-color-adjust: exact;
+        print-color-adjust: exact;
+    }
+
+    .form-check-input[type=checkbox] {
+        border-radius: 0.25em;
+    }
+
+    .form-check-input[type=radio] {
+        border-radius: 50%;
+    }
+
+    .form-check-input:active {
+        filter: brightness(90%);
+    }
+
+    .form-check-input:focus {
+        border-color: #86b7fe;
+        outline: 0;
+        box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+    }
+
+    .form-check-input:checked {
+        background-color: #0d6efd;
+        border-color: #0d6efd;
+    }
+
+    .form-check-input:checked[type=checkbox] {
+        --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3e%3cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27m6 10 3 3 6-6%27/%3e%3c/svg%3e");
+    }
+
+    .form-check-input:checked[type=radio] {
+        --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%272%27 fill=%27%23fff%27/%3e%3c/svg%3e");
+    }
+
+    .form-check-input[type=checkbox]:indeterminate {
+        background-color: #0d6efd;
+        border-color: #0d6efd;
+        --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3e%3cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27M6 10h8%27/%3e%3c/svg%3e");
+    }
+
+    .form-check-input:disabled {
+        pointer-events: none;
+        filter: none;
+        opacity: 0.5;
+    }
+
+    .form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {
+        cursor: default;
+        opacity: 0.5;
+    }
+
+    .form-switch {
+        padding-left: 2.5em;
+    }
+
+    .form-switch .form-check-input {
+        --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27rgba%280, 0, 0, 0.25%29%27/%3e%3c/svg%3e");
+        width: 2em;
+        margin-left: -2.5em;
+        background-image: var(--bs-form-switch-bg);
+        background-position: left center;
+        border-radius: 2em;
+        transition: background-position 0.15s ease-in-out;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .form-switch .form-check-input {
+            transition: none;
+        }
+    }
+
+    .form-switch .form-check-input:focus {
+        --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27%2386b7fe%27/%3e%3c/svg%3e");
+    }
+
+    .form-switch .form-check-input:checked {
+        background-position: right center;
+        --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27%23fff%27/%3e%3c/svg%3e");
+    }
+
+    .form-switch.form-check-reverse {
+        padding-right: 2.5em;
+        padding-left: 0;
+    }
+
+    .form-switch.form-check-reverse .form-check-input {
+        margin-right: -2.5em;
+        margin-left: 0;
+    }
+
+    .form-check-inline {
+        display: inline-block;
+        margin-right: 1rem;
+    }
+
+    .btn-check {
+        position: absolute;
+        clip: rect(0, 0, 0, 0);
+        pointer-events: none;
+    }
+
+    .btn-check[disabled] + .btn, .btn-check:disabled + .btn {
+        pointer-events: none;
+        filter: none;
+        opacity: 0.65;
+    }
+
+    [data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus) {
+        --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27rgba%28255, 255, 255, 0.25%29%27/%3e%3c/svg%3e");
+    }
+
+    .form-range {
+        width: 100%;
+        height: 1.5rem;
+        padding: 0;
+        background-color: transparent;
+        appearance: none;
+    }
+
+    .form-range:focus {
+        outline: 0;
+    }
+
+    .form-range:focus::-webkit-slider-thumb {
+        box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+    }
+
+    .form-range:focus::-moz-range-thumb {
+        box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+    }
+
+    .form-range::-moz-focus-outer {
+        border: 0;
+    }
+
+    .form-range::-webkit-slider-thumb {
+        width: 1rem;
+        height: 1rem;
+        margin-top: -0.25rem;
+        background-color: #0d6efd;
+        border: 0;
+        border-radius: 1rem;
+        -webkit-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;
+        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: #b6d4fe;
+    }
+
+    .form-range::-webkit-slider-runnable-track {
+        width: 100%;
+        height: 0.5rem;
+        color: transparent;
+        cursor: pointer;
+        background-color: var(--bs-tertiary-bg);
+        border-color: transparent;
+        border-radius: 1rem;
+    }
+
+    .form-range::-moz-range-thumb {
+        width: 1rem;
+        height: 1rem;
+        background-color: #0d6efd;
+        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;
+        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: #b6d4fe;
+    }
+
+    .form-range::-moz-range-track {
+        width: 100%;
+        height: 0.5rem;
+        color: transparent;
+        cursor: pointer;
+        background-color: var(--bs-tertiary-bg);
+        border-color: transparent;
+        border-radius: 1rem;
+    }
+
+    .form-range:disabled {
+        pointer-events: none;
+    }
+
+    .form-range:disabled::-webkit-slider-thumb {
+        background-color: var(--bs-secondary-color);
+    }
+
+    .form-range:disabled::-moz-range-thumb {
+        background-color: var(--bs-secondary-color);
+    }
+
+    .form-floating {
+        position: relative;
+    }
+
+    .form-floating > .form-control,
+    .form-floating > .form-control-plaintext,
+    .form-floating > .form-select {
+        height: calc(3.5rem + calc(var(--bs-border-width) * 2));
+        min-height: calc(3.5rem + calc(var(--bs-border-width) * 2));
+        line-height: 1.25;
+    }
+
+    .form-floating > label {
+        position: absolute;
+        top: 0;
+        left: 0;
+        z-index: 2;
+        height: 100%;
+        padding: 1rem 0.75rem;
+        overflow: hidden;
+        text-align: start;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+        pointer-events: none;
+        border: var(--bs-border-width) solid transparent;
+        transform-origin: 0 0;
+        transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .form-floating > label {
+            transition: none;
+        }
+    }
+
+    .form-floating > .form-control,
+    .form-floating > .form-control-plaintext {
+        padding: 1rem 0.75rem;
+    }
+
+    .form-floating > .form-control::placeholder,
+    .form-floating > .form-control-plaintext::placeholder {
+        color: transparent;
+    }
+
+    .form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown),
+    .form-floating > .form-control-plaintext:focus,
+    .form-floating > .form-control-plaintext:not(:placeholder-shown) {
+        padding-top: 1.625rem;
+        padding-bottom: 0.625rem;
+    }
+
+    .form-floating > .form-control:-webkit-autofill,
+    .form-floating > .form-control-plaintext:-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:focus ~ label,
+    .form-floating > .form-control:not(:placeholder-shown) ~ label,
+    .form-floating > .form-control-plaintext ~ label,
+    .form-floating > .form-select ~ label {
+        color: rgba(var(--bs-body-color-rgb), 0.65);
+        transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
+    }
+
+    .form-floating > .form-control:focus ~ label::after,
+    .form-floating > .form-control:not(:placeholder-shown) ~ label::after,
+    .form-floating > .form-control-plaintext ~ label::after,
+    .form-floating > .form-select ~ label::after {
+        position: absolute;
+        inset: 1rem 0.375rem;
+        z-index: -1;
+        height: 1.5em;
+        content: "";
+        background-color: var(--bs-body-bg);
+        border-radius: var(--bs-border-radius);
+    }
+
+    .form-floating > .form-control:-webkit-autofill ~ label {
+        color: rgba(var(--bs-body-color-rgb), 0.65);
+        transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
+    }
+
+    .form-floating > .form-control-plaintext ~ label {
+        border-width: var(--bs-border-width) 0;
+    }
+
+    .form-floating > :disabled ~ label {
+        color: #6c757d;
+    }
+
+    .form-floating > :disabled ~ label::after {
+        background-color: var(--bs-secondary-bg);
+    }
+
+    .input-group {
+        position: relative;
+        display: flex;
+        flex-wrap: wrap;
+        align-items: stretch;
+        width: 100%;
+    }
+
+    .input-group > .form-control,
+    .input-group > .form-select,
+    .input-group > .form-floating {
+        position: relative;
+        flex: 1 1 auto;
+        width: 1%;
+        min-width: 0;
+    }
+
+    .input-group > .form-control:focus,
+    .input-group > .form-select:focus,
+    .input-group > .form-floating:focus-within {
+        z-index: 5;
+    }
+
+    .input-group .btn {
+        position: relative;
+        z-index: 2;
+    }
+
+    .input-group .btn:focus {
+        z-index: 5;
+    }
+
+    .input-group-text {
+        display: flex;
+        align-items: center;
+        padding: 0.375rem 0.75rem;
+        font-size: 1rem;
+        font-weight: 400;
+        line-height: 1.5;
+        color: var(--bs-body-color);
+        text-align: center;
+        white-space: nowrap;
+        background-color: var(--bs-tertiary-bg);
+        border: var(--bs-border-width) solid var(--bs-border-color);
+        border-radius: var(--bs-border-radius);
+    }
+
+    .input-group-lg > .form-control,
+    .input-group-lg > .form-select,
+    .input-group-lg > .input-group-text,
+    .input-group-lg > .btn {
+        padding: 0.5rem 1rem;
+        font-size: 1.25rem;
+        border-radius: var(--bs-border-radius-lg);
+    }
+
+    .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.875rem;
+        border-radius: var(--bs-border-radius-sm);
+    }
+
+    .input-group-lg > .form-select,
+    .input-group-sm > .form-select {
+        padding-right: 3rem;
+    }
+
+    .input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),
+    .input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3),
+    .input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control,
+    .input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select {
+        border-top-right-radius: 0;
+        border-bottom-right-radius: 0;
+    }
+
+    .input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),
+    .input-group.has-validation > .dropdown-toggle:nth-last-child(n+4),
+    .input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control,
+    .input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select {
+        border-top-right-radius: 0;
+        border-bottom-right-radius: 0;
+    }
+
+    .input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
+        margin-left: calc(var(--bs-border-width) * -1);
+        border-top-left-radius: 0;
+        border-bottom-left-radius: 0;
+    }
+
+    .input-group > .form-floating:not(:first-child) > .form-control,
+    .input-group > .form-floating:not(:first-child) > .form-select {
+        border-top-left-radius: 0;
+        border-bottom-left-radius: 0;
+    }
+
+    .valid-feedback {
+        display: none;
+        width: 100%;
+        margin-top: 0.25rem;
+        font-size: 0.875em;
+        color: var(--bs-form-valid-color);
+    }
+
+    .valid-tooltip {
+        position: absolute;
+        top: 100%;
+        z-index: 5;
+        display: none;
+        max-width: 100%;
+        padding: 0.25rem 0.5rem;
+        margin-top: 0.1rem;
+        font-size: 0.875rem;
+        color: #fff;
+        background-color: var(--bs-success);
+        border-radius: var(--bs-border-radius);
+    }
+
+    .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: var(--bs-form-valid-border-color);
+        padding-right: calc(1.5em + 0.75rem);
+        background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 8 8%27%3e%3cpath fill=%27%23198754%27 d=%27M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z%27/%3e%3c/svg%3e");
+        background-repeat: no-repeat;
+        background-position: right calc(0.375em + 0.1875rem) center;
+        background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+    }
+
+    .was-validated .form-control:valid:focus, .form-control.is-valid:focus {
+        border-color: var(--bs-form-valid-border-color);
+        box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);
+    }
+
+    .was-validated textarea.form-control:valid, textarea.form-control.is-valid {
+        padding-right: calc(1.5em + 0.75rem);
+        background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+    }
+
+    .was-validated .form-select:valid, .form-select.is-valid {
+        border-color: var(--bs-form-valid-border-color);
+    }
+
+    .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"] {
+        --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 8 8%27%3e%3cpath fill=%27%23198754%27 d=%27M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z%27/%3e%3c/svg%3e");
+        padding-right: 4.125rem;
+        background-position: right 0.75rem center, center right 2.25rem;
+        background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+    }
+
+    .was-validated .form-select:valid:focus, .form-select.is-valid:focus {
+        border-color: var(--bs-form-valid-border-color);
+        box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);
+    }
+
+    .was-validated .form-control-color:valid, .form-control-color.is-valid {
+        width: calc(3rem + calc(1.5em + 0.75rem));
+    }
+
+    .was-validated .form-check-input:valid, .form-check-input.is-valid {
+        border-color: var(--bs-form-valid-border-color);
+    }
+
+    .was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked {
+        background-color: var(--bs-form-valid-color);
+    }
+
+    .was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus {
+        box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);
+    }
+
+    .was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
+        color: var(--bs-form-valid-color);
+    }
+
+    .form-check-inline .form-check-input ~ .valid-feedback {
+        margin-left: 0.5em;
+    }
+
+    .was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid,
+    .was-validated .input-group > .form-select:not(:focus):valid,
+    .input-group > .form-select:not(:focus).is-valid,
+    .was-validated .input-group > .form-floating:not(:focus-within):valid,
+    .input-group > .form-floating:not(:focus-within).is-valid {
+        z-index: 3;
+    }
+
+    .invalid-feedback {
+        display: none;
+        width: 100%;
+        margin-top: 0.25rem;
+        font-size: 0.875em;
+        color: var(--bs-form-invalid-color);
+    }
+
+    .invalid-tooltip {
+        position: absolute;
+        top: 100%;
+        z-index: 5;
+        display: none;
+        max-width: 100%;
+        padding: 0.25rem 0.5rem;
+        margin-top: 0.1rem;
+        font-size: 0.875rem;
+        color: #fff;
+        background-color: var(--bs-danger);
+        border-radius: var(--bs-border-radius);
+    }
+
+    .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: var(--bs-form-invalid-border-color);
+        padding-right: calc(1.5em + 0.75rem);
+        background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 12%27 width=%2712%27 height=%2712%27 fill=%27none%27 stroke=%27%23dc3545%27%3e%3ccircle cx=%276%27 cy=%276%27 r=%274.5%27/%3e%3cpath stroke-linejoin=%27round%27 d=%27M5.8 3.6h.4L6 6.5z%27/%3e%3ccircle cx=%276%27 cy=%278.2%27 r=%27.6%27 fill=%27%23dc3545%27 stroke=%27none%27/%3e%3c/svg%3e");
+        background-repeat: no-repeat;
+        background-position: right calc(0.375em + 0.1875rem) center;
+        background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+    }
+
+    .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {
+        border-color: var(--bs-form-invalid-border-color);
+        box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
+    }
+
+    .was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {
+        padding-right: calc(1.5em + 0.75rem);
+        background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+    }
+
+    .was-validated .form-select:invalid, .form-select.is-invalid {
+        border-color: var(--bs-form-invalid-border-color);
+    }
+
+    .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"] {
+        --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 12%27 width=%2712%27 height=%2712%27 fill=%27none%27 stroke=%27%23dc3545%27%3e%3ccircle cx=%276%27 cy=%276%27 r=%274.5%27/%3e%3cpath stroke-linejoin=%27round%27 d=%27M5.8 3.6h.4L6 6.5z%27/%3e%3ccircle cx=%276%27 cy=%278.2%27 r=%27.6%27 fill=%27%23dc3545%27 stroke=%27none%27/%3e%3c/svg%3e");
+        padding-right: 4.125rem;
+        background-position: right 0.75rem center, center right 2.25rem;
+        background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+    }
+
+    .was-validated .form-select:invalid:focus, .form-select.is-invalid:focus {
+        border-color: var(--bs-form-invalid-border-color);
+        box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
+    }
+
+    .was-validated .form-control-color:invalid, .form-control-color.is-invalid {
+        width: calc(3rem + calc(1.5em + 0.75rem));
+    }
+
+    .was-validated .form-check-input:invalid, .form-check-input.is-invalid {
+        border-color: var(--bs-form-invalid-border-color);
+    }
+
+    .was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked {
+        background-color: var(--bs-form-invalid-color);
+    }
+
+    .was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus {
+        box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
+    }
+
+    .was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
+        color: var(--bs-form-invalid-color);
+    }
+
+    .form-check-inline .form-check-input ~ .invalid-feedback {
+        margin-left: 0.5em;
+    }
+
+    .was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid,
+    .was-validated .input-group > .form-select:not(:focus):invalid,
+    .input-group > .form-select:not(:focus).is-invalid,
+    .was-validated .input-group > .form-floating:not(:focus-within):invalid,
+    .input-group > .form-floating:not(:focus-within).is-invalid {
+        z-index: 4;
+    }
+
+    .btn {
+        --bs-btn-padding-x: 0.75rem;
+        --bs-btn-padding-y: 0.375rem;
+        --bs-btn-font-family: ;
+        --bs-btn-font-size: 1rem;
+        --bs-btn-font-weight: 400;
+        --bs-btn-line-height: 1.5;
+        --bs-btn-color: var(--bs-body-color);
+        --bs-btn-bg: transparent;
+        --bs-btn-border-width: var(--bs-border-width);
+        --bs-btn-border-color: transparent;
+        --bs-btn-border-radius: var(--bs-border-radius);
+        --bs-btn-hover-border-color: transparent;
+        --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+        --bs-btn-disabled-opacity: 0.65;
+        --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);
+        display: inline-block;
+        padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
+        font-family: var(--bs-btn-font-family);
+        font-size: var(--bs-btn-font-size);
+        font-weight: var(--bs-btn-font-weight);
+        line-height: var(--bs-btn-line-height);
+        color: var(--bs-btn-color);
+        text-align: center;
+        text-decoration: none;
+        vertical-align: middle;
+        cursor: pointer;
+        -webkit-user-select: none;
+        user-select: none;
+        border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
+        border-radius: var(--bs-btn-border-radius);
+        background-color: var(--bs-btn-bg);
+        transition: color 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;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .btn {
+            transition: none;
+        }
+    }
+
+    .btn:hover {
+        color: var(--bs-btn-hover-color);
+        background-color: var(--bs-btn-hover-bg);
+        border-color: var(--bs-btn-hover-border-color);
+    }
+
+    .btn-check + .btn:hover {
+        color: var(--bs-btn-color);
+        background-color: var(--bs-btn-bg);
+        border-color: var(--bs-btn-border-color);
+    }
+
+    .btn:focus-visible {
+        color: var(--bs-btn-hover-color);
+        background-color: var(--bs-btn-hover-bg);
+        border-color: var(--bs-btn-hover-border-color);
+        outline: 0;
+        box-shadow: var(--bs-btn-focus-box-shadow);
+    }
+
+    .btn-check:focus-visible + .btn {
+        border-color: var(--bs-btn-hover-border-color);
+        outline: 0;
+        box-shadow: var(--bs-btn-focus-box-shadow);
+    }
+
+    .btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show {
+        color: var(--bs-btn-active-color);
+        background-color: var(--bs-btn-active-bg);
+        border-color: var(--bs-btn-active-border-color);
+    }
+
+    .btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible {
+        box-shadow: var(--bs-btn-focus-box-shadow);
+    }
+
+    .btn:disabled, .btn.disabled, fieldset:disabled .btn {
+        color: var(--bs-btn-disabled-color);
+        pointer-events: none;
+        background-color: var(--bs-btn-disabled-bg);
+        border-color: var(--bs-btn-disabled-border-color);
+        opacity: var(--bs-btn-disabled-opacity);
+    }
+
+    .btn-primary {
+        --bs-btn-color: #fff;
+        --bs-btn-bg: #0d6efd;
+        --bs-btn-border-color: #0d6efd;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #0b5ed7;
+        --bs-btn-hover-border-color: #0a58ca;
+        --bs-btn-focus-shadow-rgb: 49, 132, 253;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #0a58ca;
+        --bs-btn-active-border-color: #0a53be;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #fff;
+        --bs-btn-disabled-bg: #0d6efd;
+        --bs-btn-disabled-border-color: #0d6efd;
+    }
+
+    .btn-secondary {
+        --bs-btn-color: #fff;
+        --bs-btn-bg: #6c757d;
+        --bs-btn-border-color: #6c757d;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #5c636a;
+        --bs-btn-hover-border-color: #565e64;
+        --bs-btn-focus-shadow-rgb: 130, 138, 145;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #565e64;
+        --bs-btn-active-border-color: #51585e;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #fff;
+        --bs-btn-disabled-bg: #6c757d;
+        --bs-btn-disabled-border-color: #6c757d;
+    }
+
+    .btn-success {
+        --bs-btn-color: #fff;
+        --bs-btn-bg: #198754;
+        --bs-btn-border-color: #198754;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #157347;
+        --bs-btn-hover-border-color: #146c43;
+        --bs-btn-focus-shadow-rgb: 60, 153, 110;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #146c43;
+        --bs-btn-active-border-color: #13653f;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #fff;
+        --bs-btn-disabled-bg: #198754;
+        --bs-btn-disabled-border-color: #198754;
+    }
+
+    .btn-info {
+        --bs-btn-color: #000;
+        --bs-btn-bg: #0dcaf0;
+        --bs-btn-border-color: #0dcaf0;
+        --bs-btn-hover-color: #000;
+        --bs-btn-hover-bg: #31d2f2;
+        --bs-btn-hover-border-color: #25cff2;
+        --bs-btn-focus-shadow-rgb: 11, 172, 204;
+        --bs-btn-active-color: #000;
+        --bs-btn-active-bg: #3dd5f3;
+        --bs-btn-active-border-color: #25cff2;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #000;
+        --bs-btn-disabled-bg: #0dcaf0;
+        --bs-btn-disabled-border-color: #0dcaf0;
+    }
+
+    .btn-warning {
+        --bs-btn-color: #000;
+        --bs-btn-bg: #ffc107;
+        --bs-btn-border-color: #ffc107;
+        --bs-btn-hover-color: #000;
+        --bs-btn-hover-bg: #ffca2c;
+        --bs-btn-hover-border-color: #ffc720;
+        --bs-btn-focus-shadow-rgb: 217, 164, 6;
+        --bs-btn-active-color: #000;
+        --bs-btn-active-bg: #ffcd39;
+        --bs-btn-active-border-color: #ffc720;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #000;
+        --bs-btn-disabled-bg: #ffc107;
+        --bs-btn-disabled-border-color: #ffc107;
+    }
+
+    .btn-danger {
+        --bs-btn-color: #fff;
+        --bs-btn-bg: #dc3545;
+        --bs-btn-border-color: #dc3545;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #bb2d3b;
+        --bs-btn-hover-border-color: #b02a37;
+        --bs-btn-focus-shadow-rgb: 225, 83, 97;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #b02a37;
+        --bs-btn-active-border-color: #a52834;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #fff;
+        --bs-btn-disabled-bg: #dc3545;
+        --bs-btn-disabled-border-color: #dc3545;
+    }
+
+    .btn-light {
+        --bs-btn-color: #000;
+        --bs-btn-bg: #f8f9fa;
+        --bs-btn-border-color: #f8f9fa;
+        --bs-btn-hover-color: #000;
+        --bs-btn-hover-bg: #d3d4d5;
+        --bs-btn-hover-border-color: #c6c7c8;
+        --bs-btn-focus-shadow-rgb: 211, 212, 213;
+        --bs-btn-active-color: #000;
+        --bs-btn-active-bg: #c6c7c8;
+        --bs-btn-active-border-color: #babbbc;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #000;
+        --bs-btn-disabled-bg: #f8f9fa;
+        --bs-btn-disabled-border-color: #f8f9fa;
+    }
+
+    .btn-dark {
+        --bs-btn-color: #fff;
+        --bs-btn-bg: #212529;
+        --bs-btn-border-color: #212529;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #424649;
+        --bs-btn-hover-border-color: #373b3e;
+        --bs-btn-focus-shadow-rgb: 66, 70, 73;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #4d5154;
+        --bs-btn-active-border-color: #373b3e;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #fff;
+        --bs-btn-disabled-bg: #212529;
+        --bs-btn-disabled-border-color: #212529;
+    }
+
+    .btn-outline-primary {
+        --bs-btn-color: #0d6efd;
+        --bs-btn-border-color: #0d6efd;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #0d6efd;
+        --bs-btn-hover-border-color: #0d6efd;
+        --bs-btn-focus-shadow-rgb: 13, 110, 253;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #0d6efd;
+        --bs-btn-active-border-color: #0d6efd;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #0d6efd;
+        --bs-btn-disabled-bg: transparent;
+        --bs-btn-disabled-border-color: #0d6efd;
+        --bs-gradient: none;
+    }
+
+    .btn-outline-secondary {
+        --bs-btn-color: #6c757d;
+        --bs-btn-border-color: #6c757d;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #6c757d;
+        --bs-btn-hover-border-color: #6c757d;
+        --bs-btn-focus-shadow-rgb: 108, 117, 125;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #6c757d;
+        --bs-btn-active-border-color: #6c757d;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #6c757d;
+        --bs-btn-disabled-bg: transparent;
+        --bs-btn-disabled-border-color: #6c757d;
+        --bs-gradient: none;
+    }
+
+    .btn-outline-success {
+        --bs-btn-color: #198754;
+        --bs-btn-border-color: #198754;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #198754;
+        --bs-btn-hover-border-color: #198754;
+        --bs-btn-focus-shadow-rgb: 25, 135, 84;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #198754;
+        --bs-btn-active-border-color: #198754;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #198754;
+        --bs-btn-disabled-bg: transparent;
+        --bs-btn-disabled-border-color: #198754;
+        --bs-gradient: none;
+    }
+
+    .btn-outline-info {
+        --bs-btn-color: #0dcaf0;
+        --bs-btn-border-color: #0dcaf0;
+        --bs-btn-hover-color: #000;
+        --bs-btn-hover-bg: #0dcaf0;
+        --bs-btn-hover-border-color: #0dcaf0;
+        --bs-btn-focus-shadow-rgb: 13, 202, 240;
+        --bs-btn-active-color: #000;
+        --bs-btn-active-bg: #0dcaf0;
+        --bs-btn-active-border-color: #0dcaf0;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #0dcaf0;
+        --bs-btn-disabled-bg: transparent;
+        --bs-btn-disabled-border-color: #0dcaf0;
+        --bs-gradient: none;
+    }
+
+    .btn-outline-warning {
+        --bs-btn-color: #ffc107;
+        --bs-btn-border-color: #ffc107;
+        --bs-btn-hover-color: #000;
+        --bs-btn-hover-bg: #ffc107;
+        --bs-btn-hover-border-color: #ffc107;
+        --bs-btn-focus-shadow-rgb: 255, 193, 7;
+        --bs-btn-active-color: #000;
+        --bs-btn-active-bg: #ffc107;
+        --bs-btn-active-border-color: #ffc107;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #ffc107;
+        --bs-btn-disabled-bg: transparent;
+        --bs-btn-disabled-border-color: #ffc107;
+        --bs-gradient: none;
+    }
+
+    .btn-outline-danger {
+        --bs-btn-color: #dc3545;
+        --bs-btn-border-color: #dc3545;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #dc3545;
+        --bs-btn-hover-border-color: #dc3545;
+        --bs-btn-focus-shadow-rgb: 220, 53, 69;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #dc3545;
+        --bs-btn-active-border-color: #dc3545;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #dc3545;
+        --bs-btn-disabled-bg: transparent;
+        --bs-btn-disabled-border-color: #dc3545;
+        --bs-gradient: none;
+    }
+
+    .btn-outline-light {
+        --bs-btn-color: #f8f9fa;
+        --bs-btn-border-color: #f8f9fa;
+        --bs-btn-hover-color: #000;
+        --bs-btn-hover-bg: #f8f9fa;
+        --bs-btn-hover-border-color: #f8f9fa;
+        --bs-btn-focus-shadow-rgb: 248, 249, 250;
+        --bs-btn-active-color: #000;
+        --bs-btn-active-bg: #f8f9fa;
+        --bs-btn-active-border-color: #f8f9fa;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #f8f9fa;
+        --bs-btn-disabled-bg: transparent;
+        --bs-btn-disabled-border-color: #f8f9fa;
+        --bs-gradient: none;
+    }
+
+    .btn-outline-dark {
+        --bs-btn-color: #212529;
+        --bs-btn-border-color: #212529;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #212529;
+        --bs-btn-hover-border-color: #212529;
+        --bs-btn-focus-shadow-rgb: 33, 37, 41;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #212529;
+        --bs-btn-active-border-color: #212529;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #212529;
+        --bs-btn-disabled-bg: transparent;
+        --bs-btn-disabled-border-color: #212529;
+        --bs-gradient: none;
+    }
+
+    .btn-link {
+        --bs-btn-font-weight: 400;
+        --bs-btn-color: var(--bs-link-color);
+        --bs-btn-bg: transparent;
+        --bs-btn-border-color: transparent;
+        --bs-btn-hover-color: var(--bs-link-hover-color);
+        --bs-btn-hover-border-color: transparent;
+        --bs-btn-active-color: var(--bs-link-hover-color);
+        --bs-btn-active-border-color: transparent;
+        --bs-btn-disabled-color: #6c757d;
+        --bs-btn-disabled-border-color: transparent;
+        --bs-btn-box-shadow: 0 0 0 #000;
+        --bs-btn-focus-shadow-rgb: 49, 132, 253;
+        text-decoration: underline;
+    }
+
+    .btn-link:focus-visible {
+        color: var(--bs-btn-color);
+    }
+
+    .btn-link:hover {
+        color: var(--bs-btn-hover-color);
+    }
+
+    .btn-lg, .btn-group-lg > .btn {
+        --bs-btn-padding-y: 0.5rem;
+        --bs-btn-padding-x: 1rem;
+        --bs-btn-font-size: 1.25rem;
+        --bs-btn-border-radius: var(--bs-border-radius-lg);
+    }
+
+    .btn-sm, .btn-group-sm > .btn {
+        --bs-btn-padding-y: 0.25rem;
+        --bs-btn-padding-x: 0.5rem;
+        --bs-btn-font-size: 0.875rem;
+        --bs-btn-border-radius: var(--bs-border-radius-sm);
+    }
+
+    .fade {
+        transition: opacity 0.15s linear;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .fade {
+            transition: none;
+        }
+    }
+
+    .fade:not(.show) {
+        opacity: 0;
+    }
+
+    .collapse:not(.show) {
+        display: none;
+    }
+
+    .collapsing {
+        height: 0;
+        overflow: hidden;
+        transition: height 0.35s ease;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .collapsing {
+            transition: none;
+        }
+    }
+
+    .collapsing.collapse-horizontal {
+        width: 0;
+        height: auto;
+        transition: width 0.35s ease;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .collapsing.collapse-horizontal {
+            transition: none;
+        }
+    }
+
+    .dropup,
+    .dropend,
+    .dropdown,
+    .dropstart,
+    .dropup-center,
+    .dropdown-center {
+        position: relative;
+    }
+
+    .dropdown-toggle {
+        white-space: nowrap;
+    }
+
+    .dropdown-toggle::after {
+        display: inline-block;
+        margin-left: 0.255em;
+        vertical-align: 0.255em;
+        content: "";
+        border-top: 0.3em solid;
+        border-right: 0.3em solid transparent;
+        border-bottom: 0;
+        border-left: 0.3em solid transparent;
+    }
+
+    .dropdown-toggle:empty::after {
+        margin-left: 0;
+    }
+
+    .dropdown-menu {
+        --bs-dropdown-zindex: 1000;
+        --bs-dropdown-min-width: 10rem;
+        --bs-dropdown-padding-x: 0;
+        --bs-dropdown-padding-y: 0.5rem;
+        --bs-dropdown-spacer: 0.125rem;
+        --bs-dropdown-font-size: 1rem;
+        --bs-dropdown-color: var(--bs-body-color);
+        --bs-dropdown-bg: var(--bs-body-bg);
+        --bs-dropdown-border-color: var(--bs-border-color-translucent);
+        --bs-dropdown-border-radius: var(--bs-border-radius);
+        --bs-dropdown-border-width: var(--bs-border-width);
+        --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));
+        --bs-dropdown-divider-bg: var(--bs-border-color-translucent);
+        --bs-dropdown-divider-margin-y: 0.5rem;
+        --bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+        --bs-dropdown-link-color: var(--bs-body-color);
+        --bs-dropdown-link-hover-color: var(--bs-body-color);
+        --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);
+        --bs-dropdown-link-active-color: #fff;
+        --bs-dropdown-link-active-bg: #0d6efd;
+        --bs-dropdown-link-disabled-color: var(--bs-tertiary-color);
+        --bs-dropdown-item-padding-x: 1rem;
+        --bs-dropdown-item-padding-y: 0.25rem;
+        --bs-dropdown-header-color: #6c757d;
+        --bs-dropdown-header-padding-x: 1rem;
+        --bs-dropdown-header-padding-y: 0.5rem;
+        position: absolute;
+        z-index: var(--bs-dropdown-zindex);
+        display: none;
+        min-width: var(--bs-dropdown-min-width);
+        padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);
+        margin: 0;
+        font-size: var(--bs-dropdown-font-size);
+        color: var(--bs-dropdown-color);
+        text-align: left;
+        list-style: none;
+        background-color: var(--bs-dropdown-bg);
+        background-clip: padding-box;
+        border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);
+        border-radius: var(--bs-dropdown-border-radius);
+    }
+
+    .dropdown-menu[data-bs-popper] {
+        top: 100%;
+        left: 0;
+        margin-top: var(--bs-dropdown-spacer);
+    }
+
+    .dropdown-menu-start {
+        --bs-position: start;
+    }
+
+    .dropdown-menu-start[data-bs-popper] {
+        right: auto;
+        left: 0;
+    }
+
+    .dropdown-menu-end {
+        --bs-position: end;
+    }
+
+    .dropdown-menu-end[data-bs-popper] {
+        right: 0;
+        left: auto;
+    }
+
+    @media (min-width: 576px) {
+        .dropdown-menu-sm-start {
+            --bs-position: start;
+        }
+
+        .dropdown-menu-sm-start[data-bs-popper] {
+            right: auto;
+            left: 0;
+        }
+
+        .dropdown-menu-sm-end {
+            --bs-position: end;
+        }
+
+        .dropdown-menu-sm-end[data-bs-popper] {
+            right: 0;
+            left: auto;
+        }
+    }
+
+    @media (min-width: 768px) {
+        .dropdown-menu-md-start {
+            --bs-position: start;
+        }
+
+        .dropdown-menu-md-start[data-bs-popper] {
+            right: auto;
+            left: 0;
+        }
+
+        .dropdown-menu-md-end {
+            --bs-position: end;
+        }
+
+        .dropdown-menu-md-end[data-bs-popper] {
+            right: 0;
+            left: auto;
+        }
+    }
+
+    @media (min-width: 992px) {
+        .dropdown-menu-lg-start {
+            --bs-position: start;
+        }
+
+        .dropdown-menu-lg-start[data-bs-popper] {
+            right: auto;
+            left: 0;
+        }
+
+        .dropdown-menu-lg-end {
+            --bs-position: end;
+        }
+
+        .dropdown-menu-lg-end[data-bs-popper] {
+            right: 0;
+            left: auto;
+        }
+    }
+
+    @media (min-width: 1200px) {
+        .dropdown-menu-xl-start {
+            --bs-position: start;
+        }
+
+        .dropdown-menu-xl-start[data-bs-popper] {
+            right: auto;
+            left: 0;
+        }
+
+        .dropdown-menu-xl-end {
+            --bs-position: end;
+        }
+
+        .dropdown-menu-xl-end[data-bs-popper] {
+            right: 0;
+            left: auto;
+        }
+    }
+
+    @media (min-width: 1400px) {
+        .dropdown-menu-xxl-start {
+            --bs-position: start;
+        }
+
+        .dropdown-menu-xxl-start[data-bs-popper] {
+            right: auto;
+            left: 0;
+        }
+
+        .dropdown-menu-xxl-end {
+            --bs-position: end;
+        }
+
+        .dropdown-menu-xxl-end[data-bs-popper] {
+            right: 0;
+            left: auto;
+        }
+    }
+
+    .dropup .dropdown-menu[data-bs-popper] {
+        top: auto;
+        bottom: 100%;
+        margin-top: 0;
+        margin-bottom: var(--bs-dropdown-spacer);
+    }
+
+    .dropup .dropdown-toggle::after {
+        display: inline-block;
+        margin-left: 0.255em;
+        vertical-align: 0.255em;
+        content: "";
+        border-top: 0;
+        border-right: 0.3em solid transparent;
+        border-bottom: 0.3em solid;
+        border-left: 0.3em solid transparent;
+    }
+
+    .dropup .dropdown-toggle:empty::after {
+        margin-left: 0;
+    }
+
+    .dropend .dropdown-menu[data-bs-popper] {
+        top: 0;
+        right: auto;
+        left: 100%;
+        margin-top: 0;
+        margin-left: var(--bs-dropdown-spacer);
+    }
+
+    .dropend .dropdown-toggle::after {
+        display: inline-block;
+        margin-left: 0.255em;
+        vertical-align: 0.255em;
+        content: "";
+        border-top: 0.3em solid transparent;
+        border-right: 0;
+        border-bottom: 0.3em solid transparent;
+        border-left: 0.3em solid;
+    }
+
+    .dropend .dropdown-toggle:empty::after {
+        margin-left: 0;
+    }
+
+    .dropend .dropdown-toggle::after {
+        vertical-align: 0;
+    }
+
+    .dropstart .dropdown-menu[data-bs-popper] {
+        top: 0;
+        right: 100%;
+        left: auto;
+        margin-top: 0;
+        margin-right: var(--bs-dropdown-spacer);
+    }
+
+    .dropstart .dropdown-toggle::after {
+        display: inline-block;
+        margin-left: 0.255em;
+        vertical-align: 0.255em;
+        content: "";
+    }
+
+    .dropstart .dropdown-toggle::after {
+        display: none;
+    }
+
+    .dropstart .dropdown-toggle::before {
+        display: inline-block;
+        margin-right: 0.255em;
+        vertical-align: 0.255em;
+        content: "";
+        border-top: 0.3em solid transparent;
+        border-right: 0.3em solid;
+        border-bottom: 0.3em solid transparent;
+    }
+
+    .dropstart .dropdown-toggle:empty::after {
+        margin-left: 0;
+    }
+
+    .dropstart .dropdown-toggle::before {
+        vertical-align: 0;
+    }
+
+    .dropdown-divider {
+        height: 0;
+        margin: var(--bs-dropdown-divider-margin-y) 0;
+        overflow: hidden;
+        border-top: 1px solid var(--bs-dropdown-divider-bg);
+        opacity: 1;
+    }
+
+    .dropdown-item {
+        display: block;
+        width: 100%;
+        padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
+        clear: both;
+        font-weight: 400;
+        color: var(--bs-dropdown-link-color);
+        text-align: inherit;
+        text-decoration: none;
+        white-space: nowrap;
+        background-color: transparent;
+        border: 0;
+        border-radius: var(--bs-dropdown-item-border-radius, 0);
+    }
+
+    .dropdown-item:hover, .dropdown-item:focus {
+        color: var(--bs-dropdown-link-hover-color);
+        background-color: var(--bs-dropdown-link-hover-bg);
+    }
+
+    .dropdown-item.active, .dropdown-item:active {
+        color: var(--bs-dropdown-link-active-color);
+        text-decoration: none;
+        background-color: var(--bs-dropdown-link-active-bg);
+    }
+
+    .dropdown-item.disabled, .dropdown-item:disabled {
+        color: var(--bs-dropdown-link-disabled-color);
+        pointer-events: none;
+        background-color: transparent;
+    }
+
+    .dropdown-menu.show {
+        display: block;
+    }
+
+    .dropdown-header {
+        display: block;
+        padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);
+        margin-bottom: 0;
+        font-size: 0.875rem;
+        color: var(--bs-dropdown-header-color);
+        white-space: nowrap;
+    }
+
+    .dropdown-item-text {
+        display: block;
+        padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
+        color: var(--bs-dropdown-link-color);
+    }
+
+    .dropdown-menu-dark {
+        --bs-dropdown-color: #dee2e6;
+        --bs-dropdown-bg: #343a40;
+        --bs-dropdown-border-color: var(--bs-border-color-translucent);
+        --bs-dropdown-box-shadow: ;
+        --bs-dropdown-link-color: #dee2e6;
+        --bs-dropdown-link-hover-color: #fff;
+        --bs-dropdown-divider-bg: var(--bs-border-color-translucent);
+        --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);
+        --bs-dropdown-link-active-color: #fff;
+        --bs-dropdown-link-active-bg: #0d6efd;
+        --bs-dropdown-link-disabled-color: #adb5bd;
+        --bs-dropdown-header-color: #adb5bd;
+    }
+
+    .btn-group,
+    .btn-group-vertical {
+        position: relative;
+        display: inline-flex;
+        vertical-align: middle;
+    }
+
+    .btn-group > .btn,
+    .btn-group-vertical > .btn {
+        position: relative;
+        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: flex;
+        flex-wrap: wrap;
+        justify-content: flex-start;
+    }
+
+    .btn-toolbar .input-group {
+        width: auto;
+    }
+
+    .btn-group {
+        border-radius: var(--bs-border-radius);
+    }
+
+    .btn-group > :not(.btn-check:first-child) + .btn,
+    .btn-group > .btn-group:not(:first-child) {
+        margin-left: calc(var(--bs-border-width) * -1);
+    }
+
+    .btn-group > .btn:not(:last-child):not(.dropdown-toggle),
+    .btn-group > .btn.dropdown-toggle-split:first-child,
+    .btn-group > .btn-group:not(:last-child) > .btn {
+        border-top-right-radius: 0;
+        border-bottom-right-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-left-radius: 0;
+        border-bottom-left-radius: 0;
+    }
+
+    .dropdown-toggle-split {
+        padding-right: 0.5625rem;
+        padding-left: 0.5625rem;
+    }
+
+    .dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after {
+        margin-left: 0;
+    }
+
+    .dropstart .dropdown-toggle-split::before {
+        margin-right: 0;
+    }
+
+    .btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
+        padding-right: 0.375rem;
+        padding-left: 0.375rem;
+    }
+
+    .btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
+        padding-right: 0.75rem;
+        padding-left: 0.75rem;
+    }
+
+    .btn-group-vertical {
+        flex-direction: column;
+        align-items: flex-start;
+        justify-content: center;
+    }
+
+    .btn-group-vertical > .btn,
+    .btn-group-vertical > .btn-group {
+        width: 100%;
+    }
+
+    .btn-group-vertical > .btn:not(:first-child),
+    .btn-group-vertical > .btn-group:not(:first-child) {
+        margin-top: calc(var(--bs-border-width) * -1);
+    }
+
+    .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
+    .btn-group-vertical > .btn-group:not(:last-child) > .btn {
+        border-bottom-right-radius: 0;
+        border-bottom-left-radius: 0;
+    }
+
+    .btn-group-vertical > .btn ~ .btn,
+    .btn-group-vertical > .btn-group:not(:first-child) > .btn {
+        border-top-left-radius: 0;
+        border-top-right-radius: 0;
+    }
+
+    .nav {
+        --bs-nav-link-padding-x: 1rem;
+        --bs-nav-link-padding-y: 0.5rem;
+        --bs-nav-link-font-weight: ;
+        --bs-nav-link-color: var(--bs-link-color);
+        --bs-nav-link-hover-color: var(--bs-link-hover-color);
+        --bs-nav-link-disabled-color: var(--bs-secondary-color);
+        display: flex;
+        flex-wrap: wrap;
+        padding-left: 0;
+        margin-bottom: 0;
+        list-style: none;
+    }
+
+    .nav-link {
+        display: block;
+        padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);
+        font-size: var(--bs-nav-link-font-size);
+        font-weight: var(--bs-nav-link-font-weight);
+        color: var(--bs-nav-link-color);
+        text-decoration: none;
+        background: none;
+        border: 0;
+        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 {
+            transition: none;
+        }
+    }
+
+    .nav-link:hover, .nav-link:focus {
+        color: var(--bs-nav-link-hover-color);
+    }
+
+    .nav-link:focus-visible {
+        outline: 0;
+        box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+    }
+
+    .nav-link.disabled {
+        color: var(--bs-nav-link-disabled-color);
+        pointer-events: none;
+        cursor: default;
+    }
+
+    .nav-tabs {
+        --bs-nav-tabs-border-width: var(--bs-border-width);
+        --bs-nav-tabs-border-color: var(--bs-border-color);
+        --bs-nav-tabs-border-radius: var(--bs-border-radius);
+        --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);
+        --bs-nav-tabs-link-active-color: var(--bs-emphasis-color);
+        --bs-nav-tabs-link-active-bg: var(--bs-body-bg);
+        --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);
+        border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color);
+    }
+
+    .nav-tabs .nav-link {
+        margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width));
+        border: var(--bs-nav-tabs-border-width) solid transparent;
+        border-top-left-radius: var(--bs-nav-tabs-border-radius);
+        border-top-right-radius: var(--bs-nav-tabs-border-radius);
+    }
+
+    .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
+        isolation: isolate;
+        border-color: var(--bs-nav-tabs-link-hover-border-color);
+    }
+
+    .nav-tabs .nav-link.disabled, .nav-tabs .nav-link:disabled {
+        color: var(--bs-nav-link-disabled-color);
+        background-color: transparent;
+        border-color: transparent;
+    }
+
+    .nav-tabs .nav-link.active,
+    .nav-tabs .nav-item.show .nav-link {
+        color: var(--bs-nav-tabs-link-active-color);
+        background-color: var(--bs-nav-tabs-link-active-bg);
+        border-color: var(--bs-nav-tabs-link-active-border-color);
+    }
+
+    .nav-tabs .dropdown-menu {
+        margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
+        border-top-left-radius: 0;
+        border-top-right-radius: 0;
+    }
+
+    .nav-pills {
+        --bs-nav-pills-border-radius: var(--bs-border-radius);
+        --bs-nav-pills-link-active-color: #fff;
+        --bs-nav-pills-link-active-bg: #0d6efd;
+    }
+
+    .nav-pills .nav-link {
+        border-radius: var(--bs-nav-pills-border-radius);
+    }
+
+    .nav-pills .nav-link:disabled {
+        color: var(--bs-nav-link-disabled-color);
+        background-color: transparent;
+        border-color: transparent;
+    }
+
+    .nav-pills .nav-link.active,
+    .nav-pills .show > .nav-link {
+        color: var(--bs-nav-pills-link-active-color);
+        background-color: var(--bs-nav-pills-link-active-bg);
+    }
+
+    .nav-underline {
+        --bs-nav-underline-gap: 1rem;
+        --bs-nav-underline-border-width: 0.125rem;
+        --bs-nav-underline-link-active-color: var(--bs-emphasis-color);
+        gap: var(--bs-nav-underline-gap);
+    }
+
+    .nav-underline .nav-link {
+        padding-right: 0;
+        padding-left: 0;
+        border-bottom: var(--bs-nav-underline-border-width) solid transparent;
+    }
+
+    .nav-underline .nav-link:hover, .nav-underline .nav-link:focus {
+        border-bottom-color: currentcolor;
+    }
+
+    .nav-underline .nav-link.active,
+    .nav-underline .show > .nav-link {
+        font-weight: 700;
+        color: var(--bs-nav-underline-link-active-color);
+        border-bottom-color: currentcolor;
+    }
+
+    .nav-fill > .nav-link,
+    .nav-fill .nav-item {
+        flex: 1 1 auto;
+        text-align: center;
+    }
+
+    .nav-justified > .nav-link,
+    .nav-justified .nav-item {
+        flex-basis: 0;
+        flex-grow: 1;
+        text-align: center;
+    }
+
+    .nav-fill .nav-item .nav-link,
+    .nav-justified .nav-item .nav-link {
+        width: 100%;
+    }
+
+    .tab-content > .tab-pane {
+        display: none;
+    }
+
+    .tab-content > .active {
+        display: block;
+    }
+
+    .navbar {
+        --bs-navbar-padding-x: 0;
+        --bs-navbar-padding-y: 0.5rem;
+        --bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65);
+        --bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8);
+        --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);
+        --bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);
+        --bs-navbar-brand-padding-y: 0.3125rem;
+        --bs-navbar-brand-margin-end: 1rem;
+        --bs-navbar-brand-font-size: 1.25rem;
+        --bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);
+        --bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);
+        --bs-navbar-nav-link-padding-x: 0.5rem;
+        --bs-navbar-toggler-padding-y: 0.25rem;
+        --bs-navbar-toggler-padding-x: 0.75rem;
+        --bs-navbar-toggler-font-size: 1.25rem;
+        --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3e%3cpath stroke=%27rgba%2833, 37, 41, 0.75%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3e%3c/svg%3e");
+        --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15);
+        --bs-navbar-toggler-border-radius: var(--bs-border-radius);
+        --bs-navbar-toggler-focus-width: 0.25rem;
+        --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;
+        position: relative;
+        display: flex;
+        flex-wrap: wrap;
+        align-items: center;
+        justify-content: space-between;
+        padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x);
+    }
+
+    .navbar > .container,
+    .navbar > .container-fluid,
+    .navbar > .container-sm,
+    .navbar > .container-md,
+    .navbar > .container-lg,
+    .navbar > .container-xl,
+    .navbar > .container-xxl {
+        display: flex;
+        flex-wrap: inherit;
+        align-items: center;
+        justify-content: space-between;
+    }
+
+    .navbar-brand {
+        padding-top: var(--bs-navbar-brand-padding-y);
+        padding-bottom: var(--bs-navbar-brand-padding-y);
+        margin-right: var(--bs-navbar-brand-margin-end);
+        font-size: var(--bs-navbar-brand-font-size);
+        color: var(--bs-navbar-brand-color);
+        text-decoration: none;
+        white-space: nowrap;
+    }
+
+    .navbar-brand:hover, .navbar-brand:focus {
+        color: var(--bs-navbar-brand-hover-color);
+    }
+
+    .navbar-nav {
+        --bs-nav-link-padding-x: 0;
+        --bs-nav-link-padding-y: 0.5rem;
+        --bs-nav-link-font-weight: ;
+        --bs-nav-link-color: var(--bs-navbar-color);
+        --bs-nav-link-hover-color: var(--bs-navbar-hover-color);
+        --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);
+        display: flex;
+        flex-direction: column;
+        padding-left: 0;
+        margin-bottom: 0;
+        list-style: none;
+    }
+
+    .navbar-nav .nav-link.active, .navbar-nav .nav-link.show {
+        color: var(--bs-navbar-active-color);
+    }
+
+    .navbar-nav .dropdown-menu {
+        position: static;
+    }
+
+    .navbar-text {
+        padding-top: 0.5rem;
+        padding-bottom: 0.5rem;
+        color: var(--bs-navbar-color);
+    }
+
+    .navbar-text a,
+    .navbar-text a:hover,
+    .navbar-text a:focus {
+        color: var(--bs-navbar-active-color);
+    }
+
+    .navbar-collapse {
+        flex-basis: 100%;
+        flex-grow: 1;
+        align-items: center;
+    }
+
+    .navbar-toggler {
+        padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);
+        font-size: var(--bs-navbar-toggler-font-size);
+        line-height: 1;
+        color: var(--bs-navbar-color);
+        background-color: transparent;
+        border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);
+        border-radius: var(--bs-navbar-toggler-border-radius);
+        transition: var(--bs-navbar-toggler-transition);
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .navbar-toggler {
+            transition: none;
+        }
+    }
+
+    .navbar-toggler:hover {
+        text-decoration: none;
+    }
+
+    .navbar-toggler:focus {
+        text-decoration: none;
+        outline: 0;
+        box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width);
+    }
+
+    .navbar-toggler-icon {
+        display: inline-block;
+        width: 1.5em;
+        height: 1.5em;
+        vertical-align: middle;
+        background-image: var(--bs-navbar-toggler-icon-bg);
+        background-repeat: no-repeat;
+        background-position: center;
+        background-size: 100%;
+    }
+
+    .navbar-nav-scroll {
+        max-height: var(--bs-scroll-height, 75vh);
+        overflow-y: auto;
+    }
+
+    @media (min-width: 576px) {
+        .navbar-expand-sm {
+            flex-wrap: nowrap;
+            justify-content: flex-start;
+        }
+
+        .navbar-expand-sm .navbar-nav {
+            flex-direction: row;
+        }
+
+        .navbar-expand-sm .navbar-nav .dropdown-menu {
+            position: absolute;
+        }
+
+        .navbar-expand-sm .navbar-nav .nav-link {
+            padding-right: var(--bs-navbar-nav-link-padding-x);
+            padding-left: var(--bs-navbar-nav-link-padding-x);
+        }
+
+        .navbar-expand-sm .navbar-nav-scroll {
+            overflow: visible;
+        }
+
+        .navbar-expand-sm .navbar-collapse {
+            display: flex !important;
+            flex-basis: auto;
+        }
+
+        .navbar-expand-sm .navbar-toggler {
+            display: none;
+        }
+
+        .navbar-expand-sm .offcanvas {
+            position: static;
+            z-index: auto;
+            flex-grow: 1;
+            width: auto !important;
+            height: auto !important;
+            visibility: visible !important;
+            background-color: transparent !important;
+            border: 0 !important;
+            transform: none !important;
+            transition: none;
+        }
+
+        .navbar-expand-sm .offcanvas .offcanvas-header {
+            display: none;
+        }
+
+        .navbar-expand-sm .offcanvas .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+        }
+    }
+
+    @media (min-width: 768px) {
+        .navbar-expand-md {
+            flex-wrap: nowrap;
+            justify-content: flex-start;
+        }
+
+        .navbar-expand-md .navbar-nav {
+            flex-direction: row;
+        }
+
+        .navbar-expand-md .navbar-nav .dropdown-menu {
+            position: absolute;
+        }
+
+        .navbar-expand-md .navbar-nav .nav-link {
+            padding-right: var(--bs-navbar-nav-link-padding-x);
+            padding-left: var(--bs-navbar-nav-link-padding-x);
+        }
+
+        .navbar-expand-md .navbar-nav-scroll {
+            overflow: visible;
+        }
+
+        .navbar-expand-md .navbar-collapse {
+            display: flex !important;
+            flex-basis: auto;
+        }
+
+        .navbar-expand-md .navbar-toggler {
+            display: none;
+        }
+
+        .navbar-expand-md .offcanvas {
+            position: static;
+            z-index: auto;
+            flex-grow: 1;
+            width: auto !important;
+            height: auto !important;
+            visibility: visible !important;
+            background-color: transparent !important;
+            border: 0 !important;
+            transform: none !important;
+            transition: none;
+        }
+
+        .navbar-expand-md .offcanvas .offcanvas-header {
+            display: none;
+        }
+
+        .navbar-expand-md .offcanvas .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+        }
+    }
+
+    @media (min-width: 992px) {
+        .navbar-expand-lg {
+            flex-wrap: nowrap;
+            justify-content: flex-start;
+        }
+
+        .navbar-expand-lg .navbar-nav {
+            flex-direction: row;
+        }
+
+        .navbar-expand-lg .navbar-nav .dropdown-menu {
+            position: absolute;
+        }
+
+        .navbar-expand-lg .navbar-nav .nav-link {
+            padding-right: var(--bs-navbar-nav-link-padding-x);
+            padding-left: var(--bs-navbar-nav-link-padding-x);
+        }
+
+        .navbar-expand-lg .navbar-nav-scroll {
+            overflow: visible;
+        }
+
+        .navbar-expand-lg .navbar-collapse {
+            display: flex !important;
+            flex-basis: auto;
+        }
+
+        .navbar-expand-lg .navbar-toggler {
+            display: none;
+        }
+
+        .navbar-expand-lg .offcanvas {
+            position: static;
+            z-index: auto;
+            flex-grow: 1;
+            width: auto !important;
+            height: auto !important;
+            visibility: visible !important;
+            background-color: transparent !important;
+            border: 0 !important;
+            transform: none !important;
+            transition: none;
+        }
+
+        .navbar-expand-lg .offcanvas .offcanvas-header {
+            display: none;
+        }
+
+        .navbar-expand-lg .offcanvas .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+        }
+    }
+
+    @media (min-width: 1200px) {
+        .navbar-expand-xl {
+            flex-wrap: nowrap;
+            justify-content: flex-start;
+        }
+
+        .navbar-expand-xl .navbar-nav {
+            flex-direction: row;
+        }
+
+        .navbar-expand-xl .navbar-nav .dropdown-menu {
+            position: absolute;
+        }
+
+        .navbar-expand-xl .navbar-nav .nav-link {
+            padding-right: var(--bs-navbar-nav-link-padding-x);
+            padding-left: var(--bs-navbar-nav-link-padding-x);
+        }
+
+        .navbar-expand-xl .navbar-nav-scroll {
+            overflow: visible;
+        }
+
+        .navbar-expand-xl .navbar-collapse {
+            display: flex !important;
+            flex-basis: auto;
+        }
+
+        .navbar-expand-xl .navbar-toggler {
+            display: none;
+        }
+
+        .navbar-expand-xl .offcanvas {
+            position: static;
+            z-index: auto;
+            flex-grow: 1;
+            width: auto !important;
+            height: auto !important;
+            visibility: visible !important;
+            background-color: transparent !important;
+            border: 0 !important;
+            transform: none !important;
+            transition: none;
+        }
+
+        .navbar-expand-xl .offcanvas .offcanvas-header {
+            display: none;
+        }
+
+        .navbar-expand-xl .offcanvas .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+        }
+    }
+
+    @media (min-width: 1400px) {
+        .navbar-expand-xxl {
+            flex-wrap: nowrap;
+            justify-content: flex-start;
+        }
+
+        .navbar-expand-xxl .navbar-nav {
+            flex-direction: row;
+        }
+
+        .navbar-expand-xxl .navbar-nav .dropdown-menu {
+            position: absolute;
+        }
+
+        .navbar-expand-xxl .navbar-nav .nav-link {
+            padding-right: var(--bs-navbar-nav-link-padding-x);
+            padding-left: var(--bs-navbar-nav-link-padding-x);
+        }
+
+        .navbar-expand-xxl .navbar-nav-scroll {
+            overflow: visible;
+        }
+
+        .navbar-expand-xxl .navbar-collapse {
+            display: flex !important;
+            flex-basis: auto;
+        }
+
+        .navbar-expand-xxl .navbar-toggler {
+            display: none;
+        }
+
+        .navbar-expand-xxl .offcanvas {
+            position: static;
+            z-index: auto;
+            flex-grow: 1;
+            width: auto !important;
+            height: auto !important;
+            visibility: visible !important;
+            background-color: transparent !important;
+            border: 0 !important;
+            transform: none !important;
+            transition: none;
+        }
+
+        .navbar-expand-xxl .offcanvas .offcanvas-header {
+            display: none;
+        }
+
+        .navbar-expand-xxl .offcanvas .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+        }
+    }
+
+    .navbar-expand {
+        flex-wrap: nowrap;
+        justify-content: flex-start;
+    }
+
+    .navbar-expand .navbar-nav {
+        flex-direction: row;
+    }
+
+    .navbar-expand .navbar-nav .dropdown-menu {
+        position: absolute;
+    }
+
+    .navbar-expand .navbar-nav .nav-link {
+        padding-right: var(--bs-navbar-nav-link-padding-x);
+        padding-left: var(--bs-navbar-nav-link-padding-x);
+    }
+
+    .navbar-expand .navbar-nav-scroll {
+        overflow: visible;
+    }
+
+    .navbar-expand .navbar-collapse {
+        display: flex !important;
+        flex-basis: auto;
+    }
+
+    .navbar-expand .navbar-toggler {
+        display: none;
+    }
+
+    .navbar-expand .offcanvas {
+        position: static;
+        z-index: auto;
+        flex-grow: 1;
+        width: auto !important;
+        height: auto !important;
+        visibility: visible !important;
+        background-color: transparent !important;
+        border: 0 !important;
+        transform: none !important;
+        transition: none;
+    }
+
+    .navbar-expand .offcanvas .offcanvas-header {
+        display: none;
+    }
+
+    .navbar-expand .offcanvas .offcanvas-body {
+        display: flex;
+        flex-grow: 0;
+        padding: 0;
+        overflow-y: visible;
+    }
+
+    .navbar-dark,
+    .navbar[data-bs-theme=dark] {
+        --bs-navbar-color: rgba(255, 255, 255, 0.55);
+        --bs-navbar-hover-color: rgba(255, 255, 255, 0.75);
+        --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25);
+        --bs-navbar-active-color: #fff;
+        --bs-navbar-brand-color: #fff;
+        --bs-navbar-brand-hover-color: #fff;
+        --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1);
+        --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3e%3cpath stroke=%27rgba%28255, 255, 255, 0.55%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3e%3c/svg%3e");
+    }
+
+    [data-bs-theme=dark] .navbar-toggler-icon {
+        --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3e%3cpath stroke=%27rgba%28255, 255, 255, 0.55%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3e%3c/svg%3e");
+    }
+
+    .card {
+        --bs-card-spacer-y: 1rem;
+        --bs-card-spacer-x: 1rem;
+        --bs-card-title-spacer-y: 0.5rem;
+        --bs-card-title-color: ;
+        --bs-card-subtitle-color: ;
+        --bs-card-border-width: var(--bs-border-width);
+        --bs-card-border-color: var(--bs-border-color-translucent);
+        --bs-card-border-radius: var(--bs-border-radius);
+        --bs-card-box-shadow: ;
+        --bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));
+        --bs-card-cap-padding-y: 0.5rem;
+        --bs-card-cap-padding-x: 1rem;
+        --bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03);
+        --bs-card-cap-color: ;
+        --bs-card-height: ;
+        --bs-card-color: ;
+        --bs-card-bg: var(--bs-body-bg);
+        --bs-card-img-overlay-padding: 1rem;
+        --bs-card-group-margin: 0.75rem;
+        position: relative;
+        display: flex;
+        flex-direction: column;
+        min-width: 0;
+        height: var(--bs-card-height);
+        color: var(--bs-body-color);
+        word-wrap: break-word;
+        background-color: var(--bs-card-bg);
+        background-clip: border-box;
+        border: var(--bs-card-border-width) solid var(--bs-card-border-color);
+        border-radius: var(--bs-card-border-radius);
+    }
+
+    .card > hr {
+        margin-right: 0;
+        margin-left: 0;
+    }
+
+    .card > .list-group {
+        border-top: inherit;
+        border-bottom: inherit;
+    }
+
+    .card > .list-group:first-child {
+        border-top-width: 0;
+        border-top-left-radius: var(--bs-card-inner-border-radius);
+        border-top-right-radius: var(--bs-card-inner-border-radius);
+    }
+
+    .card > .list-group:last-child {
+        border-bottom-width: 0;
+        border-bottom-right-radius: var(--bs-card-inner-border-radius);
+        border-bottom-left-radius: var(--bs-card-inner-border-radius);
+    }
+
+    .card > .card-header + .list-group,
+    .card > .list-group + .card-footer {
+        border-top: 0;
+    }
+
+    .card-body {
+        flex: 1 1 auto;
+        padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x);
+        color: var(--bs-card-color);
+    }
+
+    .card-title {
+        margin-bottom: var(--bs-card-title-spacer-y);
+        color: var(--bs-card-title-color);
+    }
+
+    .card-subtitle {
+        margin-top: calc(-0.5 * var(--bs-card-title-spacer-y));
+        margin-bottom: 0;
+        color: var(--bs-card-subtitle-color);
+    }
+
+    .card-text:last-child {
+        margin-bottom: 0;
+    }
+
+    .card-link + .card-link {
+        margin-left: var(--bs-card-spacer-x);
+    }
+
+    .card-header {
+        padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
+        margin-bottom: 0;
+        color: var(--bs-card-cap-color);
+        background-color: var(--bs-card-cap-bg);
+        border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color);
+    }
+
+    .card-header:first-child {
+        border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0;
+    }
+
+    .card-footer {
+        padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
+        color: var(--bs-card-cap-color);
+        background-color: var(--bs-card-cap-bg);
+        border-top: var(--bs-card-border-width) solid var(--bs-card-border-color);
+    }
+
+    .card-footer:last-child {
+        border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius);
+    }
+
+    .card-header-tabs {
+        margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));
+        margin-bottom: calc(-1 * var(--bs-card-cap-padding-y));
+        margin-left: calc(-0.5 * var(--bs-card-cap-padding-x));
+        border-bottom: 0;
+    }
+
+    .card-header-tabs .nav-link.active {
+        background-color: var(--bs-card-bg);
+        border-bottom-color: var(--bs-card-bg);
+    }
+
+    .card-header-pills {
+        margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));
+        margin-left: calc(-0.5 * var(--bs-card-cap-padding-x));
+    }
+
+    .card-img-overlay {
+        position: absolute;
+        top: 0;
+        right: 0;
+        bottom: 0;
+        left: 0;
+        padding: var(--bs-card-img-overlay-padding);
+        border-radius: var(--bs-card-inner-border-radius);
+    }
+
+    .card-img,
+    .card-img-top,
+    .card-img-bottom {
+        width: 100%;
+    }
+
+    .card-img,
+    .card-img-top {
+        border-top-left-radius: var(--bs-card-inner-border-radius);
+        border-top-right-radius: var(--bs-card-inner-border-radius);
+    }
+
+    .card-img,
+    .card-img-bottom {
+        border-bottom-right-radius: var(--bs-card-inner-border-radius);
+        border-bottom-left-radius: var(--bs-card-inner-border-radius);
+    }
+
+    .card-group > .card {
+        margin-bottom: var(--bs-card-group-margin);
+    }
+
+    @media (min-width: 576px) {
+        .card-group {
+            display: flex;
+            flex-flow: row wrap;
+        }
+
+        .card-group > .card {
+            flex: 1 0;
+            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-img-top,
+        .card-group > .card:not(:last-child) .card-header {
+            border-top-right-radius: 0;
+        }
+
+        .card-group > .card:not(:last-child) .card-img-bottom,
+        .card-group > .card:not(:last-child) .card-footer {
+            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-img-top,
+        .card-group > .card:not(:first-child) .card-header {
+            border-top-left-radius: 0;
+        }
+
+        .card-group > .card:not(:first-child) .card-img-bottom,
+        .card-group > .card:not(:first-child) .card-footer {
+            border-bottom-left-radius: 0;
+        }
+    }
+
+    .accordion {
+        --bs-accordion-color: var(--bs-body-color);
+        --bs-accordion-bg: var(--bs-body-bg);
+        --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;
+        --bs-accordion-border-color: var(--bs-border-color);
+        --bs-accordion-border-width: var(--bs-border-width);
+        --bs-accordion-border-radius: var(--bs-border-radius);
+        --bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));
+        --bs-accordion-btn-padding-x: 1.25rem;
+        --bs-accordion-btn-padding-y: 1rem;
+        --bs-accordion-btn-color: var(--bs-body-color);
+        --bs-accordion-btn-bg: var(--bs-accordion-bg);
+        --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23212529%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.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%27/%3e%3c/svg%3e");
+        --bs-accordion-btn-icon-width: 1.25rem;
+        --bs-accordion-btn-icon-transform: rotate(-180deg);
+        --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;
+        --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23052c65%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.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%27/%3e%3c/svg%3e");
+        --bs-accordion-btn-focus-border-color: #86b7fe;
+        --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+        --bs-accordion-body-padding-x: 1.25rem;
+        --bs-accordion-body-padding-y: 1rem;
+        --bs-accordion-active-color: var(--bs-primary-text-emphasis);
+        --bs-accordion-active-bg: var(--bs-primary-bg-subtle);
+    }
+
+    .accordion-button {
+        position: relative;
+        display: flex;
+        align-items: center;
+        width: 100%;
+        padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);
+        font-size: 1rem;
+        color: var(--bs-accordion-btn-color);
+        text-align: left;
+        background-color: var(--bs-accordion-btn-bg);
+        border: 0;
+        border-radius: 0;
+        overflow-anchor: none;
+        transition: var(--bs-accordion-transition);
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .accordion-button {
+            transition: none;
+        }
+    }
+
+    .accordion-button:not(.collapsed) {
+        color: var(--bs-accordion-active-color);
+        background-color: var(--bs-accordion-active-bg);
+        box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color);
+    }
+
+    .accordion-button:not(.collapsed)::after {
+        background-image: var(--bs-accordion-btn-active-icon);
+        transform: var(--bs-accordion-btn-icon-transform);
+    }
+
+    .accordion-button::after {
+        flex-shrink: 0;
+        width: var(--bs-accordion-btn-icon-width);
+        height: var(--bs-accordion-btn-icon-width);
+        margin-left: auto;
+        content: "";
+        background-image: var(--bs-accordion-btn-icon);
+        background-repeat: no-repeat;
+        background-size: var(--bs-accordion-btn-icon-width);
+        transition: var(--bs-accordion-btn-icon-transition);
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .accordion-button::after {
+            transition: none;
+        }
+    }
+
+    .accordion-button:hover {
+        z-index: 2;
+    }
+
+    .accordion-button:focus {
+        z-index: 3;
+        border-color: var(--bs-accordion-btn-focus-border-color);
+        outline: 0;
+        box-shadow: var(--bs-accordion-btn-focus-box-shadow);
+    }
+
+    .accordion-header {
+        margin-bottom: 0;
+    }
+
+    .accordion-item {
+        color: var(--bs-accordion-color);
+        background-color: var(--bs-accordion-bg);
+        border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);
+    }
+
+    .accordion-item:first-of-type {
+        border-top-left-radius: var(--bs-accordion-border-radius);
+        border-top-right-radius: var(--bs-accordion-border-radius);
+    }
+
+    .accordion-item:first-of-type .accordion-button {
+        border-top-left-radius: var(--bs-accordion-inner-border-radius);
+        border-top-right-radius: var(--bs-accordion-inner-border-radius);
+    }
+
+    .accordion-item:not(:first-of-type) {
+        border-top: 0;
+    }
+
+    .accordion-item:last-of-type {
+        border-bottom-right-radius: var(--bs-accordion-border-radius);
+        border-bottom-left-radius: var(--bs-accordion-border-radius);
+    }
+
+    .accordion-item:last-of-type .accordion-button.collapsed {
+        border-bottom-right-radius: var(--bs-accordion-inner-border-radius);
+        border-bottom-left-radius: var(--bs-accordion-inner-border-radius);
+    }
+
+    .accordion-item:last-of-type .accordion-collapse {
+        border-bottom-right-radius: var(--bs-accordion-border-radius);
+        border-bottom-left-radius: var(--bs-accordion-border-radius);
+    }
+
+    .accordion-body {
+        padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x);
+    }
+
+    .accordion-flush .accordion-collapse {
+        border-width: 0;
+    }
+
+    .accordion-flush .accordion-item {
+        border-right: 0;
+        border-left: 0;
+        border-radius: 0;
+    }
+
+    .accordion-flush .accordion-item:first-child {
+        border-top: 0;
+    }
+
+    .accordion-flush .accordion-item:last-child {
+        border-bottom: 0;
+    }
+
+    .accordion-flush .accordion-item .accordion-button, .accordion-flush .accordion-item .accordion-button.collapsed {
+        border-radius: 0;
+    }
+
+    [data-bs-theme=dark] .accordion-button::after {
+        --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%236ea8fe%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.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%27/%3e%3c/svg%3e");
+        --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%236ea8fe%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.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%27/%3e%3c/svg%3e");
+    }
+
+    .breadcrumb {
+        --bs-breadcrumb-padding-x: 0;
+        --bs-breadcrumb-padding-y: 0;
+        --bs-breadcrumb-margin-bottom: 1rem;
+        --bs-breadcrumb-bg: ;
+        --bs-breadcrumb-border-radius: ;
+        --bs-breadcrumb-divider-color: var(--bs-secondary-color);
+        --bs-breadcrumb-item-padding-x: 0.5rem;
+        --bs-breadcrumb-item-active-color: var(--bs-secondary-color);
+        display: flex;
+        flex-wrap: wrap;
+        padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);
+        margin-bottom: var(--bs-breadcrumb-margin-bottom);
+        font-size: var(--bs-breadcrumb-font-size);
+        list-style: none;
+        background-color: var(--bs-breadcrumb-bg);
+        border-radius: var(--bs-breadcrumb-border-radius);
+    }
+
+    .breadcrumb-item + .breadcrumb-item {
+        padding-left: var(--bs-breadcrumb-item-padding-x);
+    }
+
+    .breadcrumb-item + .breadcrumb-item::before {
+        float: left;
+        padding-right: var(--bs-breadcrumb-item-padding-x);
+        color: var(--bs-breadcrumb-divider-color);
+        content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */;
+    }
+
+    .breadcrumb-item.active {
+        color: var(--bs-breadcrumb-item-active-color);
+    }
+
+    .pagination {
+        --bs-pagination-padding-x: 0.75rem;
+        --bs-pagination-padding-y: 0.375rem;
+        --bs-pagination-font-size: 1rem;
+        --bs-pagination-color: var(--bs-link-color);
+        --bs-pagination-bg: var(--bs-body-bg);
+        --bs-pagination-border-width: var(--bs-border-width);
+        --bs-pagination-border-color: var(--bs-border-color);
+        --bs-pagination-border-radius: var(--bs-border-radius);
+        --bs-pagination-hover-color: var(--bs-link-hover-color);
+        --bs-pagination-hover-bg: var(--bs-tertiary-bg);
+        --bs-pagination-hover-border-color: var(--bs-border-color);
+        --bs-pagination-focus-color: var(--bs-link-hover-color);
+        --bs-pagination-focus-bg: var(--bs-secondary-bg);
+        --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+        --bs-pagination-active-color: #fff;
+        --bs-pagination-active-bg: #0d6efd;
+        --bs-pagination-active-border-color: #0d6efd;
+        --bs-pagination-disabled-color: var(--bs-secondary-color);
+        --bs-pagination-disabled-bg: var(--bs-secondary-bg);
+        --bs-pagination-disabled-border-color: var(--bs-border-color);
+        display: flex;
+        padding-left: 0;
+        list-style: none;
+    }
+
+    .page-link {
+        position: relative;
+        display: block;
+        padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);
+        font-size: var(--bs-pagination-font-size);
+        color: var(--bs-pagination-color);
+        text-decoration: none;
+        background-color: var(--bs-pagination-bg);
+        border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);
+        transition: color 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;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .page-link {
+            transition: none;
+        }
+    }
+
+    .page-link:hover {
+        z-index: 2;
+        color: var(--bs-pagination-hover-color);
+        background-color: var(--bs-pagination-hover-bg);
+        border-color: var(--bs-pagination-hover-border-color);
+    }
+
+    .page-link:focus {
+        z-index: 3;
+        color: var(--bs-pagination-focus-color);
+        background-color: var(--bs-pagination-focus-bg);
+        outline: 0;
+        box-shadow: var(--bs-pagination-focus-box-shadow);
+    }
+
+    .page-link.active, .active > .page-link {
+        z-index: 3;
+        color: var(--bs-pagination-active-color);
+        background-color: var(--bs-pagination-active-bg);
+        border-color: var(--bs-pagination-active-border-color);
+    }
+
+    .page-link.disabled, .disabled > .page-link {
+        color: var(--bs-pagination-disabled-color);
+        pointer-events: none;
+        background-color: var(--bs-pagination-disabled-bg);
+        border-color: var(--bs-pagination-disabled-border-color);
+    }
+
+    .page-item:not(:first-child) .page-link {
+        margin-left: calc(var(--bs-border-width) * -1);
+    }
+
+    .page-item:first-child .page-link {
+        border-top-left-radius: var(--bs-pagination-border-radius);
+        border-bottom-left-radius: var(--bs-pagination-border-radius);
+    }
+
+    .page-item:last-child .page-link {
+        border-top-right-radius: var(--bs-pagination-border-radius);
+        border-bottom-right-radius: var(--bs-pagination-border-radius);
+    }
+
+    .pagination-lg {
+        --bs-pagination-padding-x: 1.5rem;
+        --bs-pagination-padding-y: 0.75rem;
+        --bs-pagination-font-size: 1.25rem;
+        --bs-pagination-border-radius: var(--bs-border-radius-lg);
+    }
+
+    .pagination-sm {
+        --bs-pagination-padding-x: 0.5rem;
+        --bs-pagination-padding-y: 0.25rem;
+        --bs-pagination-font-size: 0.875rem;
+        --bs-pagination-border-radius: var(--bs-border-radius-sm);
+    }
+
+    .badge {
+        --bs-badge-padding-x: 0.65em;
+        --bs-badge-padding-y: 0.35em;
+        --bs-badge-font-size: 0.75em;
+        --bs-badge-font-weight: 700;
+        --bs-badge-color: #fff;
+        --bs-badge-border-radius: var(--bs-border-radius);
+        display: inline-block;
+        padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x);
+        font-size: var(--bs-badge-font-size);
+        font-weight: var(--bs-badge-font-weight);
+        line-height: 1;
+        color: var(--bs-badge-color);
+        text-align: center;
+        white-space: nowrap;
+        vertical-align: baseline;
+        border-radius: var(--bs-badge-border-radius);
+    }
+
+    .badge:empty {
+        display: none;
+    }
+
+    .btn .badge {
+        position: relative;
+        top: -1px;
+    }
+
+    .alert {
+        --bs-alert-bg: transparent;
+        --bs-alert-padding-x: 1rem;
+        --bs-alert-padding-y: 1rem;
+        --bs-alert-margin-bottom: 1rem;
+        --bs-alert-color: inherit;
+        --bs-alert-border-color: transparent;
+        --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);
+        --bs-alert-border-radius: var(--bs-border-radius);
+        --bs-alert-link-color: inherit;
+        position: relative;
+        padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x);
+        margin-bottom: var(--bs-alert-margin-bottom);
+        color: var(--bs-alert-color);
+        background-color: var(--bs-alert-bg);
+        border: var(--bs-alert-border);
+        border-radius: var(--bs-alert-border-radius);
+    }
+
+    .alert-heading {
+        color: inherit;
+    }
+
+    .alert-link {
+        font-weight: 700;
+        color: var(--bs-alert-link-color);
+    }
+
+    .alert-dismissible {
+        padding-right: 3rem;
+    }
+
+    .alert-dismissible .btn-close {
+        position: absolute;
+        top: 0;
+        right: 0;
+        z-index: 2;
+        padding: 1.25rem 1rem;
+    }
+
+    .alert-primary {
+        --bs-alert-color: var(--bs-primary-text-emphasis);
+        --bs-alert-bg: var(--bs-primary-bg-subtle);
+        --bs-alert-border-color: var(--bs-primary-border-subtle);
+        --bs-alert-link-color: var(--bs-primary-text-emphasis);
+    }
+
+    .alert-secondary {
+        --bs-alert-color: var(--bs-secondary-text-emphasis);
+        --bs-alert-bg: var(--bs-secondary-bg-subtle);
+        --bs-alert-border-color: var(--bs-secondary-border-subtle);
+        --bs-alert-link-color: var(--bs-secondary-text-emphasis);
+    }
+
+    .alert-success {
+        --bs-alert-color: var(--bs-success-text-emphasis);
+        --bs-alert-bg: var(--bs-success-bg-subtle);
+        --bs-alert-border-color: var(--bs-success-border-subtle);
+        --bs-alert-link-color: var(--bs-success-text-emphasis);
+    }
+
+    .alert-info {
+        --bs-alert-color: var(--bs-info-text-emphasis);
+        --bs-alert-bg: var(--bs-info-bg-subtle);
+        --bs-alert-border-color: var(--bs-info-border-subtle);
+        --bs-alert-link-color: var(--bs-info-text-emphasis);
+    }
+
+    .alert-warning {
+        --bs-alert-color: var(--bs-warning-text-emphasis);
+        --bs-alert-bg: var(--bs-warning-bg-subtle);
+        --bs-alert-border-color: var(--bs-warning-border-subtle);
+        --bs-alert-link-color: var(--bs-warning-text-emphasis);
+    }
+
+    .alert-danger {
+        --bs-alert-color: var(--bs-danger-text-emphasis);
+        --bs-alert-bg: var(--bs-danger-bg-subtle);
+        --bs-alert-border-color: var(--bs-danger-border-subtle);
+        --bs-alert-link-color: var(--bs-danger-text-emphasis);
+    }
+
+    .alert-light {
+        --bs-alert-color: var(--bs-light-text-emphasis);
+        --bs-alert-bg: var(--bs-light-bg-subtle);
+        --bs-alert-border-color: var(--bs-light-border-subtle);
+        --bs-alert-link-color: var(--bs-light-text-emphasis);
+    }
+
+    .alert-dark {
+        --bs-alert-color: var(--bs-dark-text-emphasis);
+        --bs-alert-bg: var(--bs-dark-bg-subtle);
+        --bs-alert-border-color: var(--bs-dark-border-subtle);
+        --bs-alert-link-color: var(--bs-dark-text-emphasis);
+    }
+
+    @keyframes progress-bar-stripes {
+        0% {
+            background-position-x: 1rem;
+        }
+    }
+
+    .progress,
+    .progress-stacked {
+        --bs-progress-height: 1rem;
+        --bs-progress-font-size: 0.75rem;
+        --bs-progress-bg: var(--bs-secondary-bg);
+        --bs-progress-border-radius: var(--bs-border-radius);
+        --bs-progress-box-shadow: var(--bs-box-shadow-inset);
+        --bs-progress-bar-color: #fff;
+        --bs-progress-bar-bg: #0d6efd;
+        --bs-progress-bar-transition: width 0.6s ease;
+        display: flex;
+        height: var(--bs-progress-height);
+        overflow: hidden;
+        font-size: var(--bs-progress-font-size);
+        background-color: var(--bs-progress-bg);
+        border-radius: var(--bs-progress-border-radius);
+    }
+
+    .progress-bar {
+        display: flex;
+        flex-direction: column;
+        justify-content: center;
+        overflow: hidden;
+        color: var(--bs-progress-bar-color);
+        text-align: center;
+        white-space: nowrap;
+        background-color: var(--bs-progress-bar-bg);
+        transition: var(--bs-progress-bar-transition);
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .progress-bar {
+            transition: none;
+        }
+    }
+
+    .progress-bar-striped {
+        background-image: linear-gradient(45deg, rgba(255, 255, 255, 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: var(--bs-progress-height) var(--bs-progress-height);
+    }
+
+    .progress-stacked > .progress {
+        overflow: visible;
+    }
+
+    .progress-stacked > .progress > .progress-bar {
+        width: 100%;
+    }
+
+    .progress-bar-animated {
+        animation: 1s linear infinite progress-bar-stripes;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .progress-bar-animated {
+            animation: none;
+        }
+    }
+
+    .list-group {
+        --bs-list-group-color: var(--bs-body-color);
+        --bs-list-group-bg: var(--bs-body-bg);
+        --bs-list-group-border-color: var(--bs-border-color);
+        --bs-list-group-border-width: var(--bs-border-width);
+        --bs-list-group-border-radius: var(--bs-border-radius);
+        --bs-list-group-item-padding-x: 1rem;
+        --bs-list-group-item-padding-y: 0.5rem;
+        --bs-list-group-action-color: var(--bs-secondary-color);
+        --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+        --bs-list-group-action-hover-bg: var(--bs-tertiary-bg);
+        --bs-list-group-action-active-color: var(--bs-body-color);
+        --bs-list-group-action-active-bg: var(--bs-secondary-bg);
+        --bs-list-group-disabled-color: var(--bs-secondary-color);
+        --bs-list-group-disabled-bg: var(--bs-body-bg);
+        --bs-list-group-active-color: #fff;
+        --bs-list-group-active-bg: #0d6efd;
+        --bs-list-group-active-border-color: #0d6efd;
+        display: flex;
+        flex-direction: column;
+        padding-left: 0;
+        margin-bottom: 0;
+        border-radius: var(--bs-list-group-border-radius);
+    }
+
+    .list-group-numbered {
+        list-style-type: none;
+        counter-reset: section;
+    }
+
+    .list-group-numbered > .list-group-item::before {
+        content: counters(section, ".") ". ";
+        counter-increment: section;
+    }
+
+    .list-group-item-action {
+        width: 100%;
+        color: var(--bs-list-group-action-color);
+        text-align: inherit;
+    }
+
+    .list-group-item-action:hover, .list-group-item-action:focus {
+        z-index: 1;
+        color: var(--bs-list-group-action-hover-color);
+        text-decoration: none;
+        background-color: var(--bs-list-group-action-hover-bg);
+    }
+
+    .list-group-item-action:active {
+        color: var(--bs-list-group-action-active-color);
+        background-color: var(--bs-list-group-action-active-bg);
+    }
+
+    .list-group-item {
+        position: relative;
+        display: block;
+        padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);
+        color: var(--bs-list-group-color);
+        text-decoration: none;
+        background-color: var(--bs-list-group-bg);
+        border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color);
+    }
+
+    .list-group-item:first-child {
+        border-top-left-radius: inherit;
+        border-top-right-radius: inherit;
+    }
+
+    .list-group-item:last-child {
+        border-bottom-right-radius: inherit;
+        border-bottom-left-radius: inherit;
+    }
+
+    .list-group-item.disabled, .list-group-item:disabled {
+        color: var(--bs-list-group-disabled-color);
+        pointer-events: none;
+        background-color: var(--bs-list-group-disabled-bg);
+    }
+
+    .list-group-item.active {
+        z-index: 2;
+        color: var(--bs-list-group-active-color);
+        background-color: var(--bs-list-group-active-bg);
+        border-color: var(--bs-list-group-active-border-color);
+    }
+
+    .list-group-item + .list-group-item {
+        border-top-width: 0;
+    }
+
+    .list-group-item + .list-group-item.active {
+        margin-top: calc(-1 * var(--bs-list-group-border-width));
+        border-top-width: var(--bs-list-group-border-width);
+    }
+
+    .list-group-horizontal {
+        flex-direction: row;
+    }
+
+    .list-group-horizontal > .list-group-item:first-child:not(:last-child) {
+        border-bottom-left-radius: var(--bs-list-group-border-radius);
+        border-top-right-radius: 0;
+    }
+
+    .list-group-horizontal > .list-group-item:last-child:not(:first-child) {
+        border-top-right-radius: var(--bs-list-group-border-radius);
+        border-bottom-left-radius: 0;
+    }
+
+    .list-group-horizontal > .list-group-item.active {
+        margin-top: 0;
+    }
+
+    .list-group-horizontal > .list-group-item + .list-group-item {
+        border-top-width: var(--bs-list-group-border-width);
+        border-left-width: 0;
+    }
+
+    .list-group-horizontal > .list-group-item + .list-group-item.active {
+        margin-left: calc(-1 * var(--bs-list-group-border-width));
+        border-left-width: var(--bs-list-group-border-width);
+    }
+
+    @media (min-width: 576px) {
+        .list-group-horizontal-sm {
+            flex-direction: row;
+        }
+
+        .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) {
+            border-bottom-left-radius: var(--bs-list-group-border-radius);
+            border-top-right-radius: 0;
+        }
+
+        .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) {
+            border-top-right-radius: var(--bs-list-group-border-radius);
+            border-bottom-left-radius: 0;
+        }
+
+        .list-group-horizontal-sm > .list-group-item.active {
+            margin-top: 0;
+        }
+
+        .list-group-horizontal-sm > .list-group-item + .list-group-item {
+            border-top-width: var(--bs-list-group-border-width);
+            border-left-width: 0;
+        }
+
+        .list-group-horizontal-sm > .list-group-item + .list-group-item.active {
+            margin-left: calc(-1 * var(--bs-list-group-border-width));
+            border-left-width: var(--bs-list-group-border-width);
+        }
+    }
+
+    @media (min-width: 768px) {
+        .list-group-horizontal-md {
+            flex-direction: row;
+        }
+
+        .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) {
+            border-bottom-left-radius: var(--bs-list-group-border-radius);
+            border-top-right-radius: 0;
+        }
+
+        .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) {
+            border-top-right-radius: var(--bs-list-group-border-radius);
+            border-bottom-left-radius: 0;
+        }
+
+        .list-group-horizontal-md > .list-group-item.active {
+            margin-top: 0;
+        }
+
+        .list-group-horizontal-md > .list-group-item + .list-group-item {
+            border-top-width: var(--bs-list-group-border-width);
+            border-left-width: 0;
+        }
+
+        .list-group-horizontal-md > .list-group-item + .list-group-item.active {
+            margin-left: calc(-1 * var(--bs-list-group-border-width));
+            border-left-width: var(--bs-list-group-border-width);
+        }
+    }
+
+    @media (min-width: 992px) {
+        .list-group-horizontal-lg {
+            flex-direction: row;
+        }
+
+        .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) {
+            border-bottom-left-radius: var(--bs-list-group-border-radius);
+            border-top-right-radius: 0;
+        }
+
+        .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) {
+            border-top-right-radius: var(--bs-list-group-border-radius);
+            border-bottom-left-radius: 0;
+        }
+
+        .list-group-horizontal-lg > .list-group-item.active {
+            margin-top: 0;
+        }
+
+        .list-group-horizontal-lg > .list-group-item + .list-group-item {
+            border-top-width: var(--bs-list-group-border-width);
+            border-left-width: 0;
+        }
+
+        .list-group-horizontal-lg > .list-group-item + .list-group-item.active {
+            margin-left: calc(-1 * var(--bs-list-group-border-width));
+            border-left-width: var(--bs-list-group-border-width);
+        }
+    }
+
+    @media (min-width: 1200px) {
+        .list-group-horizontal-xl {
+            flex-direction: row;
+        }
+
+        .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) {
+            border-bottom-left-radius: var(--bs-list-group-border-radius);
+            border-top-right-radius: 0;
+        }
+
+        .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) {
+            border-top-right-radius: var(--bs-list-group-border-radius);
+            border-bottom-left-radius: 0;
+        }
+
+        .list-group-horizontal-xl > .list-group-item.active {
+            margin-top: 0;
+        }
+
+        .list-group-horizontal-xl > .list-group-item + .list-group-item {
+            border-top-width: var(--bs-list-group-border-width);
+            border-left-width: 0;
+        }
+
+        .list-group-horizontal-xl > .list-group-item + .list-group-item.active {
+            margin-left: calc(-1 * var(--bs-list-group-border-width));
+            border-left-width: var(--bs-list-group-border-width);
+        }
+    }
+
+    @media (min-width: 1400px) {
+        .list-group-horizontal-xxl {
+            flex-direction: row;
+        }
+
+        .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) {
+            border-bottom-left-radius: var(--bs-list-group-border-radius);
+            border-top-right-radius: 0;
+        }
+
+        .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) {
+            border-top-right-radius: var(--bs-list-group-border-radius);
+            border-bottom-left-radius: 0;
+        }
+
+        .list-group-horizontal-xxl > .list-group-item.active {
+            margin-top: 0;
+        }
+
+        .list-group-horizontal-xxl > .list-group-item + .list-group-item {
+            border-top-width: var(--bs-list-group-border-width);
+            border-left-width: 0;
+        }
+
+        .list-group-horizontal-xxl > .list-group-item + .list-group-item.active {
+            margin-left: calc(-1 * var(--bs-list-group-border-width));
+            border-left-width: var(--bs-list-group-border-width);
+        }
+    }
+
+    .list-group-flush {
+        border-radius: 0;
+    }
+
+    .list-group-flush > .list-group-item {
+        border-width: 0 0 var(--bs-list-group-border-width);
+    }
+
+    .list-group-flush > .list-group-item:last-child {
+        border-bottom-width: 0;
+    }
+
+    .list-group-item-primary {
+        --bs-list-group-color: var(--bs-primary-text-emphasis);
+        --bs-list-group-bg: var(--bs-primary-bg-subtle);
+        --bs-list-group-border-color: var(--bs-primary-border-subtle);
+        --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+        --bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);
+        --bs-list-group-action-active-color: var(--bs-emphasis-color);
+        --bs-list-group-action-active-bg: var(--bs-primary-border-subtle);
+        --bs-list-group-active-color: var(--bs-primary-bg-subtle);
+        --bs-list-group-active-bg: var(--bs-primary-text-emphasis);
+        --bs-list-group-active-border-color: var(--bs-primary-text-emphasis);
+    }
+
+    .list-group-item-secondary {
+        --bs-list-group-color: var(--bs-secondary-text-emphasis);
+        --bs-list-group-bg: var(--bs-secondary-bg-subtle);
+        --bs-list-group-border-color: var(--bs-secondary-border-subtle);
+        --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+        --bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);
+        --bs-list-group-action-active-color: var(--bs-emphasis-color);
+        --bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);
+        --bs-list-group-active-color: var(--bs-secondary-bg-subtle);
+        --bs-list-group-active-bg: var(--bs-secondary-text-emphasis);
+        --bs-list-group-active-border-color: var(--bs-secondary-text-emphasis);
+    }
+
+    .list-group-item-success {
+        --bs-list-group-color: var(--bs-success-text-emphasis);
+        --bs-list-group-bg: var(--bs-success-bg-subtle);
+        --bs-list-group-border-color: var(--bs-success-border-subtle);
+        --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+        --bs-list-group-action-hover-bg: var(--bs-success-border-subtle);
+        --bs-list-group-action-active-color: var(--bs-emphasis-color);
+        --bs-list-group-action-active-bg: var(--bs-success-border-subtle);
+        --bs-list-group-active-color: var(--bs-success-bg-subtle);
+        --bs-list-group-active-bg: var(--bs-success-text-emphasis);
+        --bs-list-group-active-border-color: var(--bs-success-text-emphasis);
+    }
+
+    .list-group-item-info {
+        --bs-list-group-color: var(--bs-info-text-emphasis);
+        --bs-list-group-bg: var(--bs-info-bg-subtle);
+        --bs-list-group-border-color: var(--bs-info-border-subtle);
+        --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+        --bs-list-group-action-hover-bg: var(--bs-info-border-subtle);
+        --bs-list-group-action-active-color: var(--bs-emphasis-color);
+        --bs-list-group-action-active-bg: var(--bs-info-border-subtle);
+        --bs-list-group-active-color: var(--bs-info-bg-subtle);
+        --bs-list-group-active-bg: var(--bs-info-text-emphasis);
+        --bs-list-group-active-border-color: var(--bs-info-text-emphasis);
+    }
+
+    .list-group-item-warning {
+        --bs-list-group-color: var(--bs-warning-text-emphasis);
+        --bs-list-group-bg: var(--bs-warning-bg-subtle);
+        --bs-list-group-border-color: var(--bs-warning-border-subtle);
+        --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+        --bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);
+        --bs-list-group-action-active-color: var(--bs-emphasis-color);
+        --bs-list-group-action-active-bg: var(--bs-warning-border-subtle);
+        --bs-list-group-active-color: var(--bs-warning-bg-subtle);
+        --bs-list-group-active-bg: var(--bs-warning-text-emphasis);
+        --bs-list-group-active-border-color: var(--bs-warning-text-emphasis);
+    }
+
+    .list-group-item-danger {
+        --bs-list-group-color: var(--bs-danger-text-emphasis);
+        --bs-list-group-bg: var(--bs-danger-bg-subtle);
+        --bs-list-group-border-color: var(--bs-danger-border-subtle);
+        --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+        --bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);
+        --bs-list-group-action-active-color: var(--bs-emphasis-color);
+        --bs-list-group-action-active-bg: var(--bs-danger-border-subtle);
+        --bs-list-group-active-color: var(--bs-danger-bg-subtle);
+        --bs-list-group-active-bg: var(--bs-danger-text-emphasis);
+        --bs-list-group-active-border-color: var(--bs-danger-text-emphasis);
+    }
+
+    .list-group-item-light {
+        --bs-list-group-color: var(--bs-light-text-emphasis);
+        --bs-list-group-bg: var(--bs-light-bg-subtle);
+        --bs-list-group-border-color: var(--bs-light-border-subtle);
+        --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+        --bs-list-group-action-hover-bg: var(--bs-light-border-subtle);
+        --bs-list-group-action-active-color: var(--bs-emphasis-color);
+        --bs-list-group-action-active-bg: var(--bs-light-border-subtle);
+        --bs-list-group-active-color: var(--bs-light-bg-subtle);
+        --bs-list-group-active-bg: var(--bs-light-text-emphasis);
+        --bs-list-group-active-border-color: var(--bs-light-text-emphasis);
+    }
+
+    .list-group-item-dark {
+        --bs-list-group-color: var(--bs-dark-text-emphasis);
+        --bs-list-group-bg: var(--bs-dark-bg-subtle);
+        --bs-list-group-border-color: var(--bs-dark-border-subtle);
+        --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+        --bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);
+        --bs-list-group-action-active-color: var(--bs-emphasis-color);
+        --bs-list-group-action-active-bg: var(--bs-dark-border-subtle);
+        --bs-list-group-active-color: var(--bs-dark-bg-subtle);
+        --bs-list-group-active-bg: var(--bs-dark-text-emphasis);
+        --bs-list-group-active-border-color: var(--bs-dark-text-emphasis);
+    }
+
+    .btn-close {
+        --bs-btn-close-color: #000;
+        --bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23000%27%3e%3cpath d=%27M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z%27/%3e%3c/svg%3e");
+        --bs-btn-close-opacity: 0.5;
+        --bs-btn-close-hover-opacity: 0.75;
+        --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+        --bs-btn-close-focus-opacity: 1;
+        --bs-btn-close-disabled-opacity: 0.25;
+        --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);
+        box-sizing: content-box;
+        width: 1em;
+        height: 1em;
+        padding: 0.25em 0.25em;
+        color: var(--bs-btn-close-color);
+        background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat;
+        border: 0;
+        border-radius: 0.375rem;
+        opacity: var(--bs-btn-close-opacity);
+    }
+
+    .btn-close:hover {
+        color: var(--bs-btn-close-color);
+        text-decoration: none;
+        opacity: var(--bs-btn-close-hover-opacity);
+    }
+
+    .btn-close:focus {
+        outline: 0;
+        box-shadow: var(--bs-btn-close-focus-shadow);
+        opacity: var(--bs-btn-close-focus-opacity);
+    }
+
+    .btn-close:disabled, .btn-close.disabled {
+        pointer-events: none;
+        -webkit-user-select: none;
+        user-select: none;
+        opacity: var(--bs-btn-close-disabled-opacity);
+    }
+
+    .btn-close-white {
+        filter: var(--bs-btn-close-white-filter);
+    }
+
+    [data-bs-theme=dark] .btn-close {
+        filter: var(--bs-btn-close-white-filter);
+    }
+
+    .toast {
+        --bs-toast-zindex: 1090;
+        --bs-toast-padding-x: 0.75rem;
+        --bs-toast-padding-y: 0.5rem;
+        --bs-toast-spacing: 1.5rem;
+        --bs-toast-max-width: 350px;
+        --bs-toast-font-size: 0.875rem;
+        --bs-toast-color: ;
+        --bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85);
+        --bs-toast-border-width: var(--bs-border-width);
+        --bs-toast-border-color: var(--bs-border-color-translucent);
+        --bs-toast-border-radius: var(--bs-border-radius);
+        --bs-toast-box-shadow: var(--bs-box-shadow);
+        --bs-toast-header-color: var(--bs-secondary-color);
+        --bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85);
+        --bs-toast-header-border-color: var(--bs-border-color-translucent);
+        width: var(--bs-toast-max-width);
+        max-width: 100%;
+        font-size: var(--bs-toast-font-size);
+        color: var(--bs-toast-color);
+        pointer-events: auto;
+        background-color: var(--bs-toast-bg);
+        background-clip: padding-box;
+        border: var(--bs-toast-border-width) solid var(--bs-toast-border-color);
+        box-shadow: var(--bs-toast-box-shadow);
+        border-radius: var(--bs-toast-border-radius);
+    }
+
+    .toast.showing {
+        opacity: 0;
+    }
+
+    .toast:not(.show) {
+        display: none;
+    }
+
+    .toast-container {
+        --bs-toast-zindex: 1090;
+        position: absolute;
+        z-index: var(--bs-toast-zindex);
+        width: max-content;
+        max-width: 100%;
+        pointer-events: none;
+    }
+
+    .toast-container > :not(:last-child) {
+        margin-bottom: var(--bs-toast-spacing);
+    }
+
+    .toast-header {
+        display: flex;
+        align-items: center;
+        padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x);
+        color: var(--bs-toast-header-color);
+        background-color: var(--bs-toast-header-bg);
+        background-clip: padding-box;
+        border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);
+        border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));
+        border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));
+    }
+
+    .toast-header .btn-close {
+        margin-right: calc(-0.5 * var(--bs-toast-padding-x));
+        margin-left: var(--bs-toast-padding-x);
+    }
+
+    .toast-body {
+        padding: var(--bs-toast-padding-x);
+        word-wrap: break-word;
+    }
+
+    .modal {
+        --bs-modal-zindex: 1055;
+        --bs-modal-width: 500px;
+        --bs-modal-padding: 1rem;
+        --bs-modal-margin: 0.5rem;
+        --bs-modal-color: ;
+        --bs-modal-bg: var(--bs-body-bg);
+        --bs-modal-border-color: var(--bs-border-color-translucent);
+        --bs-modal-border-width: var(--bs-border-width);
+        --bs-modal-border-radius: var(--bs-border-radius-lg);
+        --bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
+        --bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));
+        --bs-modal-header-padding-x: 1rem;
+        --bs-modal-header-padding-y: 1rem;
+        --bs-modal-header-padding: 1rem 1rem;
+        --bs-modal-header-border-color: var(--bs-border-color);
+        --bs-modal-header-border-width: var(--bs-border-width);
+        --bs-modal-title-line-height: 1.5;
+        --bs-modal-footer-gap: 0.5rem;
+        --bs-modal-footer-bg: ;
+        --bs-modal-footer-border-color: var(--bs-border-color);
+        --bs-modal-footer-border-width: var(--bs-border-width);
+        position: fixed;
+        top: 0;
+        left: 0;
+        z-index: var(--bs-modal-zindex);
+        display: none;
+        width: 100%;
+        height: 100%;
+        overflow-x: hidden;
+        overflow-y: auto;
+        outline: 0;
+    }
+
+    .modal-dialog {
+        position: relative;
+        width: auto;
+        margin: var(--bs-modal-margin);
+        pointer-events: none;
+    }
+
+    .modal.fade .modal-dialog {
+        transition: transform 0.3s ease-out;
+        transform: translate(0, -50px);
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .modal.fade .modal-dialog {
+            transition: none;
+        }
+    }
+
+    .modal.show .modal-dialog {
+        transform: none;
+    }
+
+    .modal.modal-static .modal-dialog {
+        transform: scale(1.02);
+    }
+
+    .modal-dialog-scrollable {
+        height: calc(100% - var(--bs-modal-margin) * 2);
+    }
+
+    .modal-dialog-scrollable .modal-content {
+        max-height: 100%;
+        overflow: hidden;
+    }
+
+    .modal-dialog-scrollable .modal-body {
+        overflow-y: auto;
+    }
+
+    .modal-dialog-centered {
+        display: flex;
+        align-items: center;
+        min-height: calc(100% - var(--bs-modal-margin) * 2);
+    }
+
+    .modal-content {
+        position: relative;
+        display: flex;
+        flex-direction: column;
+        width: 100%;
+        color: var(--bs-modal-color);
+        pointer-events: auto;
+        background-color: var(--bs-modal-bg);
+        background-clip: padding-box;
+        border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);
+        border-radius: var(--bs-modal-border-radius);
+        outline: 0;
+    }
+
+    .modal-backdrop {
+        --bs-backdrop-zindex: 1050;
+        --bs-backdrop-bg: #000;
+        --bs-backdrop-opacity: 0.5;
+        position: fixed;
+        top: 0;
+        left: 0;
+        z-index: var(--bs-backdrop-zindex);
+        width: 100vw;
+        height: 100vh;
+        background-color: var(--bs-backdrop-bg);
+    }
+
+    .modal-backdrop.fade {
+        opacity: 0;
+    }
+
+    .modal-backdrop.show {
+        opacity: var(--bs-backdrop-opacity);
+    }
+
+    .modal-header {
+        display: flex;
+        flex-shrink: 0;
+        align-items: center;
+        justify-content: space-between;
+        padding: var(--bs-modal-header-padding);
+        border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);
+        border-top-left-radius: var(--bs-modal-inner-border-radius);
+        border-top-right-radius: var(--bs-modal-inner-border-radius);
+    }
+
+    .modal-header .btn-close {
+        padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5);
+        margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto;
+    }
+
+    .modal-title {
+        margin-bottom: 0;
+        line-height: var(--bs-modal-title-line-height);
+    }
+
+    .modal-body {
+        position: relative;
+        flex: 1 1 auto;
+        padding: var(--bs-modal-padding);
+    }
+
+    .modal-footer {
+        display: flex;
+        flex-shrink: 0;
+        flex-wrap: wrap;
+        align-items: center;
+        justify-content: flex-end;
+        padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5);
+        background-color: var(--bs-modal-footer-bg);
+        border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);
+        border-bottom-right-radius: var(--bs-modal-inner-border-radius);
+        border-bottom-left-radius: var(--bs-modal-inner-border-radius);
+    }
+
+    .modal-footer > * {
+        margin: calc(var(--bs-modal-footer-gap) * 0.5);
+    }
+
+    @media (min-width: 576px) {
+        .modal {
+            --bs-modal-margin: 1.75rem;
+            --bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+        }
+
+        .modal-dialog {
+            max-width: var(--bs-modal-width);
+            margin-right: auto;
+            margin-left: auto;
+        }
+
+        .modal-sm {
+            --bs-modal-width: 300px;
+        }
+    }
+
+    @media (min-width: 992px) {
+        .modal-lg,
+        .modal-xl {
+            --bs-modal-width: 800px;
+        }
+    }
+
+    @media (min-width: 1200px) {
+        .modal-xl {
+            --bs-modal-width: 1140px;
+        }
+    }
+
+    .modal-fullscreen {
+        width: 100vw;
+        max-width: none;
+        height: 100%;
+        margin: 0;
+    }
+
+    .modal-fullscreen .modal-content {
+        height: 100%;
+        border: 0;
+        border-radius: 0;
+    }
+
+    .modal-fullscreen .modal-header,
+    .modal-fullscreen .modal-footer {
+        border-radius: 0;
+    }
+
+    .modal-fullscreen .modal-body {
+        overflow-y: auto;
+    }
+
+    @media (max-width: 575.98px) {
+        .modal-fullscreen-sm-down {
+            width: 100vw;
+            max-width: none;
+            height: 100%;
+            margin: 0;
+        }
+
+        .modal-fullscreen-sm-down .modal-content {
+            height: 100%;
+            border: 0;
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-sm-down .modal-header,
+        .modal-fullscreen-sm-down .modal-footer {
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-sm-down .modal-body {
+            overflow-y: auto;
+        }
+    }
+
+    @media (max-width: 767.98px) {
+        .modal-fullscreen-md-down {
+            width: 100vw;
+            max-width: none;
+            height: 100%;
+            margin: 0;
+        }
+
+        .modal-fullscreen-md-down .modal-content {
+            height: 100%;
+            border: 0;
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-md-down .modal-header,
+        .modal-fullscreen-md-down .modal-footer {
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-md-down .modal-body {
+            overflow-y: auto;
+        }
+    }
+
+    @media (max-width: 991.98px) {
+        .modal-fullscreen-lg-down {
+            width: 100vw;
+            max-width: none;
+            height: 100%;
+            margin: 0;
+        }
+
+        .modal-fullscreen-lg-down .modal-content {
+            height: 100%;
+            border: 0;
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-lg-down .modal-header,
+        .modal-fullscreen-lg-down .modal-footer {
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-lg-down .modal-body {
+            overflow-y: auto;
+        }
+    }
+
+    @media (max-width: 1199.98px) {
+        .modal-fullscreen-xl-down {
+            width: 100vw;
+            max-width: none;
+            height: 100%;
+            margin: 0;
+        }
+
+        .modal-fullscreen-xl-down .modal-content {
+            height: 100%;
+            border: 0;
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-xl-down .modal-header,
+        .modal-fullscreen-xl-down .modal-footer {
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-xl-down .modal-body {
+            overflow-y: auto;
+        }
+    }
+
+    @media (max-width: 1399.98px) {
+        .modal-fullscreen-xxl-down {
+            width: 100vw;
+            max-width: none;
+            height: 100%;
+            margin: 0;
+        }
+
+        .modal-fullscreen-xxl-down .modal-content {
+            height: 100%;
+            border: 0;
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-xxl-down .modal-header,
+        .modal-fullscreen-xxl-down .modal-footer {
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-xxl-down .modal-body {
+            overflow-y: auto;
+        }
+    }
+
+    .tooltip {
+        --bs-tooltip-zindex: 1080;
+        --bs-tooltip-max-width: 200px;
+        --bs-tooltip-padding-x: 0.5rem;
+        --bs-tooltip-padding-y: 0.25rem;
+        --bs-tooltip-margin: ;
+        --bs-tooltip-font-size: 0.875rem;
+        --bs-tooltip-color: var(--bs-body-bg);
+        --bs-tooltip-bg: var(--bs-emphasis-color);
+        --bs-tooltip-border-radius: var(--bs-border-radius);
+        --bs-tooltip-opacity: 0.9;
+        --bs-tooltip-arrow-width: 0.8rem;
+        --bs-tooltip-arrow-height: 0.4rem;
+        z-index: var(--bs-tooltip-zindex);
+        display: block;
+        margin: var(--bs-tooltip-margin);
+        font-family: var(--bs-font-sans-serif);
+        font-style: normal;
+        font-weight: 400;
+        line-height: 1.5;
+        text-align: left;
+        text-align: start;
+        text-decoration: none;
+        text-shadow: none;
+        text-transform: none;
+        letter-spacing: normal;
+        word-break: normal;
+        white-space: normal;
+        word-spacing: normal;
+        line-break: auto;
+        font-size: var(--bs-tooltip-font-size);
+        word-wrap: break-word;
+        opacity: 0;
+    }
+
+    .tooltip.show {
+        opacity: var(--bs-tooltip-opacity);
+    }
+
+    .tooltip .tooltip-arrow {
+        display: block;
+        width: var(--bs-tooltip-arrow-width);
+        height: var(--bs-tooltip-arrow-height);
+    }
+
+    .tooltip .tooltip-arrow::before {
+        position: absolute;
+        content: "";
+        border-color: transparent;
+        border-style: solid;
+    }
+
+    .bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow {
+        bottom: calc(-1 * var(--bs-tooltip-arrow-height));
+    }
+
+    .bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {
+        top: -1px;
+        border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0;
+        border-top-color: var(--bs-tooltip-bg);
+    }
+
+    /* rtl:begin:ignore */
+    .bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow {
+        left: calc(-1 * var(--bs-tooltip-arrow-height));
+        width: var(--bs-tooltip-arrow-height);
+        height: var(--bs-tooltip-arrow-width);
+    }
+
+    .bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before {
+        right: -1px;
+        border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0;
+        border-right-color: var(--bs-tooltip-bg);
+    }
+
+    /* rtl:end:ignore */
+    .bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow {
+        top: calc(-1 * var(--bs-tooltip-arrow-height));
+    }
+
+    .bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {
+        bottom: -1px;
+        border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height);
+        border-bottom-color: var(--bs-tooltip-bg);
+    }
+
+    /* rtl:begin:ignore */
+    .bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow {
+        right: calc(-1 * var(--bs-tooltip-arrow-height));
+        width: var(--bs-tooltip-arrow-height);
+        height: var(--bs-tooltip-arrow-width);
+    }
+
+    .bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before {
+        left: -1px;
+        border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height);
+        border-left-color: var(--bs-tooltip-bg);
+    }
+
+    /* rtl:end:ignore */
+    .tooltip-inner {
+        max-width: var(--bs-tooltip-max-width);
+        padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);
+        color: var(--bs-tooltip-color);
+        text-align: center;
+        background-color: var(--bs-tooltip-bg);
+        border-radius: var(--bs-tooltip-border-radius);
+    }
+
+    .popover {
+        --bs-popover-zindex: 1070;
+        --bs-popover-max-width: 276px;
+        --bs-popover-font-size: 0.875rem;
+        --bs-popover-bg: var(--bs-body-bg);
+        --bs-popover-border-width: var(--bs-border-width);
+        --bs-popover-border-color: var(--bs-border-color-translucent);
+        --bs-popover-border-radius: var(--bs-border-radius-lg);
+        --bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));
+        --bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+        --bs-popover-header-padding-x: 1rem;
+        --bs-popover-header-padding-y: 0.5rem;
+        --bs-popover-header-font-size: 1rem;
+        --bs-popover-header-color: inherit;
+        --bs-popover-header-bg: var(--bs-secondary-bg);
+        --bs-popover-body-padding-x: 1rem;
+        --bs-popover-body-padding-y: 1rem;
+        --bs-popover-body-color: var(--bs-body-color);
+        --bs-popover-arrow-width: 1rem;
+        --bs-popover-arrow-height: 0.5rem;
+        --bs-popover-arrow-border: var(--bs-popover-border-color);
+        z-index: var(--bs-popover-zindex);
+        display: block;
+        max-width: var(--bs-popover-max-width);
+        font-family: var(--bs-font-sans-serif);
+        font-style: normal;
+        font-weight: 400;
+        line-height: 1.5;
+        text-align: left;
+        text-align: start;
+        text-decoration: none;
+        text-shadow: none;
+        text-transform: none;
+        letter-spacing: normal;
+        word-break: normal;
+        white-space: normal;
+        word-spacing: normal;
+        line-break: auto;
+        font-size: var(--bs-popover-font-size);
+        word-wrap: break-word;
+        background-color: var(--bs-popover-bg);
+        background-clip: padding-box;
+        border: var(--bs-popover-border-width) solid var(--bs-popover-border-color);
+        border-radius: var(--bs-popover-border-radius);
+    }
+
+    .popover .popover-arrow {
+        display: block;
+        width: var(--bs-popover-arrow-width);
+        height: var(--bs-popover-arrow-height);
+    }
+
+    .popover .popover-arrow::before, .popover .popover-arrow::after {
+        position: absolute;
+        display: block;
+        content: "";
+        border-color: transparent;
+        border-style: solid;
+        border-width: 0;
+    }
+
+    .bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow {
+        bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+    }
+
+    .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {
+        border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;
+    }
+
+    .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before {
+        bottom: 0;
+        border-top-color: var(--bs-popover-arrow-border);
+    }
+
+    .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {
+        bottom: var(--bs-popover-border-width);
+        border-top-color: var(--bs-popover-bg);
+    }
+
+    /* rtl:begin:ignore */
+    .bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow {
+        left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+        width: var(--bs-popover-arrow-height);
+        height: var(--bs-popover-arrow-width);
+    }
+
+    .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {
+        border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;
+    }
+
+    .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before {
+        left: 0;
+        border-right-color: var(--bs-popover-arrow-border);
+    }
+
+    .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {
+        left: var(--bs-popover-border-width);
+        border-right-color: var(--bs-popover-bg);
+    }
+
+    /* rtl:end:ignore */
+    .bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow {
+        top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+    }
+
+    .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {
+        border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height);
+    }
+
+    .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before {
+        top: 0;
+        border-bottom-color: var(--bs-popover-arrow-border);
+    }
+
+    .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {
+        top: var(--bs-popover-border-width);
+        border-bottom-color: var(--bs-popover-bg);
+    }
+
+    .bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before {
+        position: absolute;
+        top: 0;
+        left: 50%;
+        display: block;
+        width: var(--bs-popover-arrow-width);
+        margin-left: calc(-0.5 * var(--bs-popover-arrow-width));
+        content: "";
+        border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg);
+    }
+
+    /* rtl:begin:ignore */
+    .bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow {
+        right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+        width: var(--bs-popover-arrow-height);
+        height: var(--bs-popover-arrow-width);
+    }
+
+    .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {
+        border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height);
+    }
+
+    .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before {
+        right: 0;
+        border-left-color: var(--bs-popover-arrow-border);
+    }
+
+    .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {
+        right: var(--bs-popover-border-width);
+        border-left-color: var(--bs-popover-bg);
+    }
+
+    /* rtl:end:ignore */
+    .popover-header {
+        padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);
+        margin-bottom: 0;
+        font-size: var(--bs-popover-header-font-size);
+        color: var(--bs-popover-header-color);
+        background-color: var(--bs-popover-header-bg);
+        border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color);
+        border-top-left-radius: var(--bs-popover-inner-border-radius);
+        border-top-right-radius: var(--bs-popover-inner-border-radius);
+    }
+
+    .popover-header:empty {
+        display: none;
+    }
+
+    .popover-body {
+        padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);
+        color: var(--bs-popover-body-color);
+    }
+
+    .carousel {
+        position: relative;
+    }
+
+    .carousel.pointer-event {
+        touch-action: pan-y;
+    }
+
+    .carousel-inner {
+        position: relative;
+        width: 100%;
+        overflow: hidden;
+    }
+
+    .carousel-inner::after {
+        display: block;
+        clear: both;
+        content: "";
+    }
+
+    .carousel-item {
+        position: relative;
+        display: none;
+        float: left;
+        width: 100%;
+        margin-right: -100%;
+        backface-visibility: hidden;
+        transition: transform 0.6s ease-in-out;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .carousel-item {
+            transition: none;
+        }
+    }
+
+    .carousel-item.active,
+    .carousel-item-next,
+    .carousel-item-prev {
+        display: block;
+    }
+
+    .carousel-item-next:not(.carousel-item-start),
+    .active.carousel-item-end {
+        transform: translateX(100%);
+    }
+
+    .carousel-item-prev:not(.carousel-item-end),
+    .active.carousel-item-start {
+        transform: translateX(-100%);
+    }
+
+    .carousel-fade .carousel-item {
+        opacity: 0;
+        transition-property: opacity;
+        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;
+        transition: opacity 0s 0.6s;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .carousel-fade .active.carousel-item-start,
+        .carousel-fade .active.carousel-item-end {
+            transition: none;
+        }
+    }
+
+    .carousel-control-prev,
+    .carousel-control-next {
+        position: absolute;
+        top: 0;
+        bottom: 0;
+        z-index: 1;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        width: 15%;
+        padding: 0;
+        color: #fff;
+        text-align: center;
+        background: none;
+        border: 0;
+        opacity: 0.5;
+        transition: opacity 0.15s ease;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .carousel-control-prev,
+        .carousel-control-next {
+            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 {
+        left: 0;
+    }
+
+    .carousel-control-next {
+        right: 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%;
+    }
+
+    /* rtl:options: {
+  "autoRename": true,
+  "stringMap":[ {
+    "name"    : "prev-next",
+    "search"  : "prev",
+    "replace" : "next"
+  } ]
+} */
+    .carousel-control-prev-icon {
+        background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23fff%27%3e%3cpath d=%27M11.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%27/%3e%3c/svg%3e");
+    }
+
+    .carousel-control-next-icon {
+        background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23fff%27%3e%3cpath d=%27M4.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%27/%3e%3c/svg%3e");
+    }
+
+    .carousel-indicators {
+        position: absolute;
+        right: 0;
+        bottom: 0;
+        left: 0;
+        z-index: 2;
+        display: flex;
+        justify-content: center;
+        padding: 0;
+        margin-right: 15%;
+        margin-bottom: 1rem;
+        margin-left: 15%;
+    }
+
+    .carousel-indicators [data-bs-target] {
+        box-sizing: content-box;
+        flex: 0 1 auto;
+        width: 30px;
+        height: 3px;
+        padding: 0;
+        margin-right: 3px;
+        margin-left: 3px;
+        text-indent: -999px;
+        cursor: pointer;
+        background-color: #fff;
+        background-clip: padding-box;
+        border: 0;
+        border-top: 10px solid transparent;
+        border-bottom: 10px solid transparent;
+        opacity: 0.5;
+        transition: opacity 0.6s ease;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .carousel-indicators [data-bs-target] {
+            transition: none;
+        }
+    }
+
+    .carousel-indicators .active {
+        opacity: 1;
+    }
+
+    .carousel-caption {
+        position: absolute;
+        right: 15%;
+        bottom: 1.25rem;
+        left: 15%;
+        padding-top: 1.25rem;
+        padding-bottom: 1.25rem;
+        color: #fff;
+        text-align: center;
+    }
+
+    .carousel-dark .carousel-control-prev-icon,
+    .carousel-dark .carousel-control-next-icon {
+        filter: invert(1) grayscale(100);
+    }
+
+    .carousel-dark .carousel-indicators [data-bs-target] {
+        background-color: #000;
+    }
+
+    .carousel-dark .carousel-caption {
+        color: #000;
+    }
+
+    [data-bs-theme=dark] .carousel .carousel-control-prev-icon,
+    [data-bs-theme=dark] .carousel .carousel-control-next-icon, [data-bs-theme=dark].carousel .carousel-control-prev-icon,
+    [data-bs-theme=dark].carousel .carousel-control-next-icon {
+        filter: invert(1) grayscale(100);
+    }
+
+    [data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target], [data-bs-theme=dark].carousel .carousel-indicators [data-bs-target] {
+        background-color: #000;
+    }
+
+    [data-bs-theme=dark] .carousel .carousel-caption, [data-bs-theme=dark].carousel .carousel-caption {
+        color: #000;
+    }
+
+    .spinner-grow,
+    .spinner-border {
+        display: inline-block;
+        width: var(--bs-spinner-width);
+        height: var(--bs-spinner-height);
+        vertical-align: var(--bs-spinner-vertical-align);
+        border-radius: 50%;
+        animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);
+    }
+
+    @keyframes spinner-border {
+        to {
+            transform: rotate(360deg) /* rtl:ignore */;
+        }
+    }
+
+    .spinner-border {
+        --bs-spinner-width: 2rem;
+        --bs-spinner-height: 2rem;
+        --bs-spinner-vertical-align: -0.125em;
+        --bs-spinner-border-width: 0.25em;
+        --bs-spinner-animation-speed: 0.75s;
+        --bs-spinner-animation-name: spinner-border;
+        border: var(--bs-spinner-border-width) solid currentcolor;
+        border-right-color: transparent;
+    }
+
+    .spinner-border-sm {
+        --bs-spinner-width: 1rem;
+        --bs-spinner-height: 1rem;
+        --bs-spinner-border-width: 0.2em;
+    }
+
+    @keyframes spinner-grow {
+        0% {
+            transform: scale(0);
+        }
+        50% {
+            opacity: 1;
+            transform: none;
+        }
+    }
+
+    .spinner-grow {
+        --bs-spinner-width: 2rem;
+        --bs-spinner-height: 2rem;
+        --bs-spinner-vertical-align: -0.125em;
+        --bs-spinner-animation-speed: 0.75s;
+        --bs-spinner-animation-name: spinner-grow;
+        background-color: currentcolor;
+        opacity: 0;
+    }
+
+    .spinner-grow-sm {
+        --bs-spinner-width: 1rem;
+        --bs-spinner-height: 1rem;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .spinner-border,
+        .spinner-grow {
+            --bs-spinner-animation-speed: 1.5s;
+        }
+    }
+
+    .offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm {
+        --bs-offcanvas-zindex: 1045;
+        --bs-offcanvas-width: 400px;
+        --bs-offcanvas-height: 30vh;
+        --bs-offcanvas-padding-x: 1rem;
+        --bs-offcanvas-padding-y: 1rem;
+        --bs-offcanvas-color: var(--bs-body-color);
+        --bs-offcanvas-bg: var(--bs-body-bg);
+        --bs-offcanvas-border-width: var(--bs-border-width);
+        --bs-offcanvas-border-color: var(--bs-border-color-translucent);
+        --bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
+        --bs-offcanvas-transition: transform 0.3s ease-in-out;
+        --bs-offcanvas-title-line-height: 1.5;
+    }
+
+    @media (max-width: 575.98px) {
+        .offcanvas-sm {
+            position: fixed;
+            bottom: 0;
+            z-index: var(--bs-offcanvas-zindex);
+            display: flex;
+            flex-direction: column;
+            max-width: 100%;
+            color: var(--bs-offcanvas-color);
+            visibility: hidden;
+            background-color: var(--bs-offcanvas-bg);
+            background-clip: padding-box;
+            outline: 0;
+            transition: var(--bs-offcanvas-transition);
+        }
+    }
+
+    @media (max-width: 575.98px) and (prefers-reduced-motion: reduce) {
+        .offcanvas-sm {
+            transition: none;
+        }
+    }
+
+    @media (max-width: 575.98px) {
+        .offcanvas-sm.offcanvas-start {
+            top: 0;
+            left: 0;
+            width: var(--bs-offcanvas-width);
+            border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(-100%);
+        }
+
+        .offcanvas-sm.offcanvas-end {
+            top: 0;
+            right: 0;
+            width: var(--bs-offcanvas-width);
+            border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(100%);
+        }
+
+        .offcanvas-sm.offcanvas-top {
+            top: 0;
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(-100%);
+        }
+
+        .offcanvas-sm.offcanvas-bottom {
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(100%);
+        }
+
+        .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) {
+            transform: none;
+        }
+
+        .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show {
+            visibility: visible;
+        }
+    }
+
+    @media (min-width: 576px) {
+        .offcanvas-sm {
+            --bs-offcanvas-height: auto;
+            --bs-offcanvas-border-width: 0;
+            background-color: transparent !important;
+        }
+
+        .offcanvas-sm .offcanvas-header {
+            display: none;
+        }
+
+        .offcanvas-sm .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+            background-color: transparent !important;
+        }
+    }
+
+    @media (max-width: 767.98px) {
+        .offcanvas-md {
+            position: fixed;
+            bottom: 0;
+            z-index: var(--bs-offcanvas-zindex);
+            display: flex;
+            flex-direction: column;
+            max-width: 100%;
+            color: var(--bs-offcanvas-color);
+            visibility: hidden;
+            background-color: var(--bs-offcanvas-bg);
+            background-clip: padding-box;
+            outline: 0;
+            transition: var(--bs-offcanvas-transition);
+        }
+    }
+
+    @media (max-width: 767.98px) and (prefers-reduced-motion: reduce) {
+        .offcanvas-md {
+            transition: none;
+        }
+    }
+
+    @media (max-width: 767.98px) {
+        .offcanvas-md.offcanvas-start {
+            top: 0;
+            left: 0;
+            width: var(--bs-offcanvas-width);
+            border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(-100%);
+        }
+
+        .offcanvas-md.offcanvas-end {
+            top: 0;
+            right: 0;
+            width: var(--bs-offcanvas-width);
+            border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(100%);
+        }
+
+        .offcanvas-md.offcanvas-top {
+            top: 0;
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(-100%);
+        }
+
+        .offcanvas-md.offcanvas-bottom {
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(100%);
+        }
+
+        .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) {
+            transform: none;
+        }
+
+        .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show {
+            visibility: visible;
+        }
+    }
+
+    @media (min-width: 768px) {
+        .offcanvas-md {
+            --bs-offcanvas-height: auto;
+            --bs-offcanvas-border-width: 0;
+            background-color: transparent !important;
+        }
+
+        .offcanvas-md .offcanvas-header {
+            display: none;
+        }
+
+        .offcanvas-md .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+            background-color: transparent !important;
+        }
+    }
+
+    @media (max-width: 991.98px) {
+        .offcanvas-lg {
+            position: fixed;
+            bottom: 0;
+            z-index: var(--bs-offcanvas-zindex);
+            display: flex;
+            flex-direction: column;
+            max-width: 100%;
+            color: var(--bs-offcanvas-color);
+            visibility: hidden;
+            background-color: var(--bs-offcanvas-bg);
+            background-clip: padding-box;
+            outline: 0;
+            transition: var(--bs-offcanvas-transition);
+        }
+    }
+
+    @media (max-width: 991.98px) and (prefers-reduced-motion: reduce) {
+        .offcanvas-lg {
+            transition: none;
+        }
+    }
+
+    @media (max-width: 991.98px) {
+        .offcanvas-lg.offcanvas-start {
+            top: 0;
+            left: 0;
+            width: var(--bs-offcanvas-width);
+            border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(-100%);
+        }
+
+        .offcanvas-lg.offcanvas-end {
+            top: 0;
+            right: 0;
+            width: var(--bs-offcanvas-width);
+            border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(100%);
+        }
+
+        .offcanvas-lg.offcanvas-top {
+            top: 0;
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(-100%);
+        }
+
+        .offcanvas-lg.offcanvas-bottom {
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(100%);
+        }
+
+        .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) {
+            transform: none;
+        }
+
+        .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show {
+            visibility: visible;
+        }
+    }
+
+    @media (min-width: 992px) {
+        .offcanvas-lg {
+            --bs-offcanvas-height: auto;
+            --bs-offcanvas-border-width: 0;
+            background-color: transparent !important;
+        }
+
+        .offcanvas-lg .offcanvas-header {
+            display: none;
+        }
+
+        .offcanvas-lg .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+            background-color: transparent !important;
+        }
+    }
+
+    @media (max-width: 1199.98px) {
+        .offcanvas-xl {
+            position: fixed;
+            bottom: 0;
+            z-index: var(--bs-offcanvas-zindex);
+            display: flex;
+            flex-direction: column;
+            max-width: 100%;
+            color: var(--bs-offcanvas-color);
+            visibility: hidden;
+            background-color: var(--bs-offcanvas-bg);
+            background-clip: padding-box;
+            outline: 0;
+            transition: var(--bs-offcanvas-transition);
+        }
+    }
+
+    @media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) {
+        .offcanvas-xl {
+            transition: none;
+        }
+    }
+
+    @media (max-width: 1199.98px) {
+        .offcanvas-xl.offcanvas-start {
+            top: 0;
+            left: 0;
+            width: var(--bs-offcanvas-width);
+            border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(-100%);
+        }
+
+        .offcanvas-xl.offcanvas-end {
+            top: 0;
+            right: 0;
+            width: var(--bs-offcanvas-width);
+            border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(100%);
+        }
+
+        .offcanvas-xl.offcanvas-top {
+            top: 0;
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(-100%);
+        }
+
+        .offcanvas-xl.offcanvas-bottom {
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(100%);
+        }
+
+        .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) {
+            transform: none;
+        }
+
+        .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show {
+            visibility: visible;
+        }
+    }
+
+    @media (min-width: 1200px) {
+        .offcanvas-xl {
+            --bs-offcanvas-height: auto;
+            --bs-offcanvas-border-width: 0;
+            background-color: transparent !important;
+        }
+
+        .offcanvas-xl .offcanvas-header {
+            display: none;
+        }
+
+        .offcanvas-xl .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+            background-color: transparent !important;
+        }
+    }
+
+    @media (max-width: 1399.98px) {
+        .offcanvas-xxl {
+            position: fixed;
+            bottom: 0;
+            z-index: var(--bs-offcanvas-zindex);
+            display: flex;
+            flex-direction: column;
+            max-width: 100%;
+            color: var(--bs-offcanvas-color);
+            visibility: hidden;
+            background-color: var(--bs-offcanvas-bg);
+            background-clip: padding-box;
+            outline: 0;
+            transition: var(--bs-offcanvas-transition);
+        }
+    }
+
+    @media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) {
+        .offcanvas-xxl {
+            transition: none;
+        }
+    }
+
+    @media (max-width: 1399.98px) {
+        .offcanvas-xxl.offcanvas-start {
+            top: 0;
+            left: 0;
+            width: var(--bs-offcanvas-width);
+            border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(-100%);
+        }
+
+        .offcanvas-xxl.offcanvas-end {
+            top: 0;
+            right: 0;
+            width: var(--bs-offcanvas-width);
+            border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(100%);
+        }
+
+        .offcanvas-xxl.offcanvas-top {
+            top: 0;
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(-100%);
+        }
+
+        .offcanvas-xxl.offcanvas-bottom {
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(100%);
+        }
+
+        .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) {
+            transform: none;
+        }
+
+        .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show {
+            visibility: visible;
+        }
+    }
+
+    @media (min-width: 1400px) {
+        .offcanvas-xxl {
+            --bs-offcanvas-height: auto;
+            --bs-offcanvas-border-width: 0;
+            background-color: transparent !important;
+        }
+
+        .offcanvas-xxl .offcanvas-header {
+            display: none;
+        }
+
+        .offcanvas-xxl .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+            background-color: transparent !important;
+        }
+    }
+
+    .offcanvas {
+        position: fixed;
+        bottom: 0;
+        z-index: var(--bs-offcanvas-zindex);
+        display: flex;
+        flex-direction: column;
+        max-width: 100%;
+        color: var(--bs-offcanvas-color);
+        visibility: hidden;
+        background-color: var(--bs-offcanvas-bg);
+        background-clip: padding-box;
+        outline: 0;
+        transition: var(--bs-offcanvas-transition);
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .offcanvas {
+            transition: none;
+        }
+    }
+
+    .offcanvas.offcanvas-start {
+        top: 0;
+        left: 0;
+        width: var(--bs-offcanvas-width);
+        border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+        transform: translateX(-100%);
+    }
+
+    .offcanvas.offcanvas-end {
+        top: 0;
+        right: 0;
+        width: var(--bs-offcanvas-width);
+        border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+        transform: translateX(100%);
+    }
+
+    .offcanvas.offcanvas-top {
+        top: 0;
+        right: 0;
+        left: 0;
+        height: var(--bs-offcanvas-height);
+        max-height: 100%;
+        border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+        transform: translateY(-100%);
+    }
+
+    .offcanvas.offcanvas-bottom {
+        right: 0;
+        left: 0;
+        height: var(--bs-offcanvas-height);
+        max-height: 100%;
+        border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+        transform: translateY(100%);
+    }
+
+    .offcanvas.showing, .offcanvas.show:not(.hiding) {
+        transform: none;
+    }
+
+    .offcanvas.showing, .offcanvas.hiding, .offcanvas.show {
+        visibility: visible;
+    }
+
+    .offcanvas-backdrop {
+        position: fixed;
+        top: 0;
+        left: 0;
+        z-index: 1040;
+        width: 100vw;
+        height: 100vh;
+        background-color: #000;
+    }
+
+    .offcanvas-backdrop.fade {
+        opacity: 0;
+    }
+
+    .offcanvas-backdrop.show {
+        opacity: 0.5;
+    }
+
+    .offcanvas-header {
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);
+    }
+
+    .offcanvas-header .btn-close {
+        padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5);
+        margin-top: calc(-0.5 * var(--bs-offcanvas-padding-y));
+        margin-right: calc(-0.5 * var(--bs-offcanvas-padding-x));
+        margin-bottom: calc(-0.5 * var(--bs-offcanvas-padding-y));
+    }
+
+    .offcanvas-title {
+        margin-bottom: 0;
+        line-height: var(--bs-offcanvas-title-line-height);
+    }
+
+    .offcanvas-body {
+        flex-grow: 1;
+        padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);
+        overflow-y: auto;
+    }
+
+    .placeholder {
+        display: inline-block;
+        min-height: 1em;
+        vertical-align: middle;
+        cursor: wait;
+        background-color: currentcolor;
+        opacity: 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 {
+        animation: placeholder-glow 2s ease-in-out infinite;
+    }
+
+    @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%;
+        animation: placeholder-wave 2s linear infinite;
+    }
+
+    @keyframes placeholder-wave {
+        100% {
+            -webkit-mask-position: -200% 0%;
+            mask-position: -200% 0%;
+        }
+    }
+
+    .clearfix::after {
+        display: block;
+        clear: both;
+        content: "";
+    }
+
+    .text-bg-primary {
+        color: #fff !important;
+        background-color: RGBA(13, 110, 253, var(--bs-bg-opacity, 1)) !important;
+    }
+
+    .text-bg-secondary {
+        color: #fff !important;
+        background-color: RGBA(108, 117, 125, var(--bs-bg-opacity, 1)) !important;
+    }
+
+    .text-bg-success {
+        color: #fff !important;
+        background-color: RGBA(25, 135, 84, var(--bs-bg-opacity, 1)) !important;
+    }
+
+    .text-bg-info {
+        color: #000 !important;
+        background-color: RGBA(13, 202, 240, var(--bs-bg-opacity, 1)) !important;
+    }
+
+    .text-bg-warning {
+        color: #000 !important;
+        background-color: RGBA(255, 193, 7, var(--bs-bg-opacity, 1)) !important;
+    }
+
+    .text-bg-danger {
+        color: #fff !important;
+        background-color: RGBA(220, 53, 69, var(--bs-bg-opacity, 1)) !important;
+    }
+
+    .text-bg-light {
+        color: #000 !important;
+        background-color: RGBA(248, 249, 250, var(--bs-bg-opacity, 1)) !important;
+    }
+
+    .text-bg-dark {
+        color: #fff !important;
+        background-color: RGBA(33, 37, 41, var(--bs-bg-opacity, 1)) !important;
+    }
+
+    .link-primary {
+        color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-primary:hover, .link-primary:focus {
+        color: RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-secondary {
+        color: RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-secondary:hover, .link-secondary:focus {
+        color: RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-success {
+        color: RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-success:hover, .link-success:focus {
+        color: RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-info {
+        color: RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-info:hover, .link-info:focus {
+        color: RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-warning {
+        color: RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-warning:hover, .link-warning:focus {
+        color: RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-danger {
+        color: RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-danger:hover, .link-danger:focus {
+        color: RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-light {
+        color: RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-light:hover, .link-light:focus {
+        color: RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-dark {
+        color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-dark:hover, .link-dark:focus {
+        color: RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-body-emphasis {
+        color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-body-emphasis:hover, .link-body-emphasis:focus {
+        color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;
+        text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important;
+    }
+
+    .focus-ring:focus {
+        outline: 0;
+        box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color);
+    }
+
+    .icon-link {
+        display: inline-flex;
+        gap: 0.375rem;
+        align-items: center;
+        text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));
+        text-underline-offset: 0.25em;
+        backface-visibility: hidden;
+    }
+
+    .icon-link > .bi {
+        flex-shrink: 0;
+        width: 1em;
+        height: 1em;
+        fill: currentcolor;
+        transition: 0.2s ease-in-out transform;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .icon-link > .bi {
+            transition: none;
+        }
+    }
+
+    .icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi {
+        transform: var(--bs-icon-link-transform, translate3d(0.25em, 0, 0));
+    }
+
+    .ratio {
+        position: relative;
+        width: 100%;
+    }
+
+    .ratio::before {
+        display: block;
+        padding-top: var(--bs-aspect-ratio);
+        content: "";
+    }
+
+    .ratio > * {
+        position: absolute;
+        top: 0;
+        left: 0;
+        width: 100%;
+        height: 100%;
+    }
+
+    .ratio-1x1 {
+        --bs-aspect-ratio: 100%;
+    }
+
+    .ratio-4x3 {
+        --bs-aspect-ratio: 75%;
+    }
+
+    .ratio-16x9 {
+        --bs-aspect-ratio: 56.25%;
+    }
+
+    .ratio-21x9 {
+        --bs-aspect-ratio: 42.8571428571%;
+    }
+
+    .fixed-top {
+        position: fixed;
+        top: 0;
+        right: 0;
+        left: 0;
+        z-index: 1030;
+    }
+
+    .fixed-bottom {
+        position: fixed;
+        right: 0;
+        bottom: 0;
+        left: 0;
+        z-index: 1030;
+    }
+
+    .sticky-top {
+        position: sticky;
+        top: 0;
+        z-index: 1020;
+    }
+
+    .sticky-bottom {
+        position: sticky;
+        bottom: 0;
+        z-index: 1020;
+    }
+
+    @media (min-width: 576px) {
+        .sticky-sm-top {
+            position: sticky;
+            top: 0;
+            z-index: 1020;
+        }
+
+        .sticky-sm-bottom {
+            position: sticky;
+            bottom: 0;
+            z-index: 1020;
+        }
+    }
+
+    @media (min-width: 768px) {
+        .sticky-md-top {
+            position: sticky;
+            top: 0;
+            z-index: 1020;
+        }
+
+        .sticky-md-bottom {
+            position: sticky;
+            bottom: 0;
+            z-index: 1020;
+        }
+    }
+
+    @media (min-width: 992px) {
+        .sticky-lg-top {
+            position: sticky;
+            top: 0;
+            z-index: 1020;
+        }
+
+        .sticky-lg-bottom {
+            position: sticky;
+            bottom: 0;
+            z-index: 1020;
+        }
+    }
+
+    @media (min-width: 1200px) {
+        .sticky-xl-top {
+            position: sticky;
+            top: 0;
+            z-index: 1020;
+        }
+
+        .sticky-xl-bottom {
+            position: sticky;
+            bottom: 0;
+            z-index: 1020;
+        }
+    }
+
+    @media (min-width: 1400px) {
+        .sticky-xxl-top {
+            position: sticky;
+            top: 0;
+            z-index: 1020;
+        }
+
+        .sticky-xxl-bottom {
+            position: sticky;
+            bottom: 0;
+            z-index: 1020;
+        }
+    }
+
+    .hstack {
+        display: flex;
+        flex-direction: row;
+        align-items: center;
+        align-self: stretch;
+    }
+
+    .vstack {
+        display: flex;
+        flex: 1 1 auto;
+        flex-direction: column;
+        align-self: stretch;
+    }
+
+    .visually-hidden,
+    .visually-hidden-focusable:not(:focus):not(:focus-within) {
+        width: 1px !important;
+        height: 1px !important;
+        padding: 0 !important;
+        margin: -1px !important;
+        overflow: hidden !important;
+        clip: rect(0, 0, 0, 0) !important;
+        white-space: nowrap !important;
+        border: 0 !important;
+    }
+
+    .visually-hidden:not(caption),
+    .visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) {
+        position: absolute !important;
+    }
+
+    .stretched-link::after {
+        position: absolute;
+        top: 0;
+        right: 0;
+        bottom: 0;
+        left: 0;
+        z-index: 1;
+        content: "";
+    }
+
+    .text-truncate {
+        overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+    }
+
+    .vr {
+        display: inline-block;
+        align-self: stretch;
+        width: 1px;
+        min-height: 1em;
+        background-color: currentcolor;
+        opacity: 0.25;
+    }
+
+    .align-baseline {
+        vertical-align: baseline !important;
+    }
+
+    .align-top {
+        vertical-align: top !important;
+    }
+
+    .align-middle {
+        vertical-align: middle !important;
+    }
+
+    .align-bottom {
+        vertical-align: bottom !important;
+    }
+
+    .align-text-bottom {
+        vertical-align: text-bottom !important;
+    }
+
+    .align-text-top {
+        vertical-align: text-top !important;
+    }
+
+    .float-start {
+        float: left !important;
+    }
+
+    .float-end {
+        float: right !important;
+    }
+
+    .float-none {
+        float: none !important;
+    }
+
+    .object-fit-contain {
+        object-fit: contain !important;
+    }
+
+    .object-fit-cover {
+        object-fit: cover !important;
+    }
+
+    .object-fit-fill {
+        object-fit: fill !important;
+    }
+
+    .object-fit-scale {
+        object-fit: scale-down !important;
+    }
+
+    .object-fit-none {
+        object-fit: 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;
+    }
+
+    .overflow-x-auto {
+        overflow-x: auto !important;
+    }
+
+    .overflow-x-hidden {
+        overflow-x: hidden !important;
+    }
+
+    .overflow-x-visible {
+        overflow-x: visible !important;
+    }
+
+    .overflow-x-scroll {
+        overflow-x: scroll !important;
+    }
+
+    .overflow-y-auto {
+        overflow-y: auto !important;
+    }
+
+    .overflow-y-hidden {
+        overflow-y: hidden !important;
+    }
+
+    .overflow-y-visible {
+        overflow-y: visible !important;
+    }
+
+    .overflow-y-scroll {
+        overflow-y: scroll !important;
+    }
+
+    .d-inline {
+        display: inline !important;
+    }
+
+    .d-inline-block {
+        display: inline-block !important;
+    }
+
+    .d-block {
+        display: block !important;
+    }
+
+    .d-grid {
+        display: grid !important;
+    }
+
+    .d-inline-grid {
+        display: inline-grid !important;
+    }
+
+    .d-table {
+        display: table !important;
+    }
+
+    .d-table-row {
+        display: table-row !important;
+    }
+
+    .d-table-cell {
+        display: table-cell !important;
+    }
+
+    .d-flex {
+        display: flex !important;
+    }
+
+    .d-inline-flex {
+        display: inline-flex !important;
+    }
+
+    .d-none {
+        display: none !important;
+    }
+
+    .shadow {
+        box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
+    }
+
+    .shadow-sm {
+        box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
+    }
+
+    .shadow-lg {
+        box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
+    }
+
+    .shadow-none {
+        box-shadow: none !important;
+    }
+
+    .focus-ring-primary {
+        --bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity));
+    }
+
+    .focus-ring-secondary {
+        --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity));
+    }
+
+    .focus-ring-success {
+        --bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity));
+    }
+
+    .focus-ring-info {
+        --bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity));
+    }
+
+    .focus-ring-warning {
+        --bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity));
+    }
+
+    .focus-ring-danger {
+        --bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity));
+    }
+
+    .focus-ring-light {
+        --bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity));
+    }
+
+    .focus-ring-dark {
+        --bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity));
+    }
+
+    .position-static {
+        position: static !important;
+    }
+
+    .position-relative {
+        position: relative !important;
+    }
+
+    .position-absolute {
+        position: absolute !important;
+    }
+
+    .position-fixed {
+        position: fixed !important;
+    }
+
+    .position-sticky {
+        position: sticky !important;
+    }
+
+    .top-0 {
+        top: 0 !important;
+    }
+
+    .top-50 {
+        top: 50% !important;
+    }
+
+    .top-100 {
+        top: 100% !important;
+    }
+
+    .bottom-0 {
+        bottom: 0 !important;
+    }
+
+    .bottom-50 {
+        bottom: 50% !important;
+    }
+
+    .bottom-100 {
+        bottom: 100% !important;
+    }
+
+    .start-0 {
+        left: 0 !important;
+    }
+
+    .start-50 {
+        left: 50% !important;
+    }
+
+    .start-100 {
+        left: 100% !important;
+    }
+
+    .end-0 {
+        right: 0 !important;
+    }
+
+    .end-50 {
+        right: 50% !important;
+    }
+
+    .end-100 {
+        right: 100% !important;
+    }
+
+    .translate-middle {
+        transform: translate(-50%, -50%) !important;
+    }
+
+    .translate-middle-x {
+        transform: translateX(-50%) !important;
+    }
+
+    .translate-middle-y {
+        transform: translateY(-50%) !important;
+    }
+
+    .border {
+        border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+    }
+
+    .border-0 {
+        border: 0 !important;
+    }
+
+    .border-top {
+        border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+    }
+
+    .border-top-0 {
+        border-top: 0 !important;
+    }
+
+    .border-end {
+        border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+    }
+
+    .border-end-0 {
+        border-right: 0 !important;
+    }
+
+    .border-bottom {
+        border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+    }
+
+    .border-bottom-0 {
+        border-bottom: 0 !important;
+    }
+
+    .border-start {
+        border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+    }
+
+    .border-start-0 {
+        border-left: 0 !important;
+    }
+
+    .border-primary {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-secondary {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-success {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-info {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-warning {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-danger {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-light {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-dark {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-black {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-white {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-primary-subtle {
+        border-color: var(--bs-primary-border-subtle) !important;
+    }
+
+    .border-secondary-subtle {
+        border-color: var(--bs-secondary-border-subtle) !important;
+    }
+
+    .border-success-subtle {
+        border-color: var(--bs-success-border-subtle) !important;
+    }
+
+    .border-info-subtle {
+        border-color: var(--bs-info-border-subtle) !important;
+    }
+
+    .border-warning-subtle {
+        border-color: var(--bs-warning-border-subtle) !important;
+    }
+
+    .border-danger-subtle {
+        border-color: var(--bs-danger-border-subtle) !important;
+    }
+
+    .border-light-subtle {
+        border-color: var(--bs-light-border-subtle) !important;
+    }
+
+    .border-dark-subtle {
+        border-color: var(--bs-dark-border-subtle) !important;
+    }
+
+    .border-1 {
+        border-width: 1px !important;
+    }
+
+    .border-2 {
+        border-width: 2px !important;
+    }
+
+    .border-3 {
+        border-width: 3px !important;
+    }
+
+    .border-4 {
+        border-width: 4px !important;
+    }
+
+    .border-5 {
+        border-width: 5px !important;
+    }
+
+    .border-opacity-10 {
+        --bs-border-opacity: 0.1;
+    }
+
+    .border-opacity-25 {
+        --bs-border-opacity: 0.25;
+    }
+
+    .border-opacity-50 {
+        --bs-border-opacity: 0.5;
+    }
+
+    .border-opacity-75 {
+        --bs-border-opacity: 0.75;
+    }
+
+    .border-opacity-100 {
+        --bs-border-opacity: 1;
+    }
+
+    .w-25 {
+        width: 25% !important;
+    }
+
+    .w-50 {
+        width: 50% !important;
+    }
+
+    .w-75 {
+        width: 75% !important;
+    }
+
+    .w-100 {
+        width: 100% !important;
+    }
+
+    .w-auto {
+        width: auto !important;
+    }
+
+    .mw-100 {
+        max-width: 100% !important;
+    }
+
+    .vw-100 {
+        width: 100vw !important;
+    }
+
+    .min-vw-100 {
+        min-width: 100vw !important;
+    }
+
+    .h-25 {
+        height: 25% !important;
+    }
+
+    .h-50 {
+        height: 50% !important;
+    }
+
+    .h-75 {
+        height: 75% !important;
+    }
+
+    .h-100 {
+        height: 100% !important;
+    }
+
+    .h-auto {
+        height: auto !important;
+    }
+
+    .mh-100 {
+        max-height: 100% !important;
+    }
+
+    .vh-100 {
+        height: 100vh !important;
+    }
+
+    .min-vh-100 {
+        min-height: 100vh !important;
+    }
+
+    .flex-fill {
+        flex: 1 1 auto !important;
+    }
+
+    .flex-row {
+        flex-direction: row !important;
+    }
+
+    .flex-column {
+        flex-direction: column !important;
+    }
+
+    .flex-row-reverse {
+        flex-direction: row-reverse !important;
+    }
+
+    .flex-column-reverse {
+        flex-direction: column-reverse !important;
+    }
+
+    .flex-grow-0 {
+        flex-grow: 0 !important;
+    }
+
+    .flex-grow-1 {
+        flex-grow: 1 !important;
+    }
+
+    .flex-shrink-0 {
+        flex-shrink: 0 !important;
+    }
+
+    .flex-shrink-1 {
+        flex-shrink: 1 !important;
+    }
+
+    .flex-wrap {
+        flex-wrap: wrap !important;
+    }
+
+    .flex-nowrap {
+        flex-wrap: nowrap !important;
+    }
+
+    .flex-wrap-reverse {
+        flex-wrap: wrap-reverse !important;
+    }
+
+    .justify-content-start {
+        justify-content: flex-start !important;
+    }
+
+    .justify-content-end {
+        justify-content: flex-end !important;
+    }
+
+    .justify-content-center {
+        justify-content: center !important;
+    }
+
+    .justify-content-between {
+        justify-content: space-between !important;
+    }
+
+    .justify-content-around {
+        justify-content: space-around !important;
+    }
+
+    .justify-content-evenly {
+        justify-content: space-evenly !important;
+    }
+
+    .align-items-start {
+        align-items: flex-start !important;
+    }
+
+    .align-items-end {
+        align-items: flex-end !important;
+    }
+
+    .align-items-center {
+        align-items: center !important;
+    }
+
+    .align-items-baseline {
+        align-items: baseline !important;
+    }
+
+    .align-items-stretch {
+        align-items: stretch !important;
+    }
+
+    .align-content-start {
+        align-content: flex-start !important;
+    }
+
+    .align-content-end {
+        align-content: flex-end !important;
+    }
+
+    .align-content-center {
+        align-content: center !important;
+    }
+
+    .align-content-between {
+        align-content: space-between !important;
+    }
+
+    .align-content-around {
+        align-content: space-around !important;
+    }
+
+    .align-content-stretch {
+        align-content: stretch !important;
+    }
+
+    .align-self-auto {
+        align-self: auto !important;
+    }
+
+    .align-self-start {
+        align-self: flex-start !important;
+    }
+
+    .align-self-end {
+        align-self: flex-end !important;
+    }
+
+    .align-self-center {
+        align-self: center !important;
+    }
+
+    .align-self-baseline {
+        align-self: baseline !important;
+    }
+
+    .align-self-stretch {
+        align-self: stretch !important;
+    }
+
+    .order-first {
+        order: -1 !important;
+    }
+
+    .order-0 {
+        order: 0 !important;
+    }
+
+    .order-1 {
+        order: 1 !important;
+    }
+
+    .order-2 {
+        order: 2 !important;
+    }
+
+    .order-3 {
+        order: 3 !important;
+    }
+
+    .order-4 {
+        order: 4 !important;
+    }
+
+    .order-5 {
+        order: 5 !important;
+    }
+
+    .order-last {
+        order: 6 !important;
+    }
+
+    .m-0 {
+        margin: 0 !important;
+    }
+
+    .m-1 {
+        margin: 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-right: 0 !important;
+        margin-left: 0 !important;
+    }
+
+    .mx-1 {
+        margin-right: 0.25rem !important;
+        margin-left: 0.25rem !important;
+    }
+
+    .mx-2 {
+        margin-right: 0.5rem !important;
+        margin-left: 0.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: 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-right: 0 !important;
+    }
+
+    .me-1 {
+        margin-right: 0.25rem !important;
+    }
+
+    .me-2 {
+        margin-right: 0.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: 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-left: 0 !important;
+    }
+
+    .ms-1 {
+        margin-left: 0.25rem !important;
+    }
+
+    .ms-2 {
+        margin-left: 0.5rem !important;
+    }
+
+    .ms-3 {
+        margin-left: 1rem !important;
+    }
+
+    .ms-4 {
+        margin-left: 1.5rem !important;
+    }
+
+    .ms-5 {
+        margin-left: 3rem !important;
+    }
+
+    .ms-auto {
+        margin-left: auto !important;
+    }
+
+    .p-0 {
+        padding: 0 !important;
+    }
+
+    .p-1 {
+        padding: 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-right: 0 !important;
+        padding-left: 0 !important;
+    }
+
+    .px-1 {
+        padding-right: 0.25rem !important;
+        padding-left: 0.25rem !important;
+    }
+
+    .px-2 {
+        padding-right: 0.5rem !important;
+        padding-left: 0.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: 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-right: 0 !important;
+    }
+
+    .pe-1 {
+        padding-right: 0.25rem !important;
+    }
+
+    .pe-2 {
+        padding-right: 0.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: 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-left: 0 !important;
+    }
+
+    .ps-1 {
+        padding-left: 0.25rem !important;
+    }
+
+    .ps-2 {
+        padding-left: 0.5rem !important;
+    }
+
+    .ps-3 {
+        padding-left: 1rem !important;
+    }
+
+    .ps-4 {
+        padding-left: 1.5rem !important;
+    }
+
+    .ps-5 {
+        padding-left: 3rem !important;
+    }
+
+    .gap-0 {
+        gap: 0 !important;
+    }
+
+    .gap-1 {
+        gap: 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;
+    }
+
+    .row-gap-0 {
+        row-gap: 0 !important;
+    }
+
+    .row-gap-1 {
+        row-gap: 0.25rem !important;
+    }
+
+    .row-gap-2 {
+        row-gap: 0.5rem !important;
+    }
+
+    .row-gap-3 {
+        row-gap: 1rem !important;
+    }
+
+    .row-gap-4 {
+        row-gap: 1.5rem !important;
+    }
+
+    .row-gap-5 {
+        row-gap: 3rem !important;
+    }
+
+    .column-gap-0 {
+        column-gap: 0 !important;
+    }
+
+    .column-gap-1 {
+        column-gap: 0.25rem !important;
+    }
+
+    .column-gap-2 {
+        column-gap: 0.5rem !important;
+    }
+
+    .column-gap-3 {
+        column-gap: 1rem !important;
+    }
+
+    .column-gap-4 {
+        column-gap: 1.5rem !important;
+    }
+
+    .column-gap-5 {
+        column-gap: 3rem !important;
+    }
+
+    .font-monospace {
+        font-family: var(--bs-font-monospace) !important;
+    }
+
+    .fs-1 {
+        font-size: calc(1.375rem + 1.5vw) !important;
+    }
+
+    .fs-2 {
+        font-size: calc(1.325rem + 0.9vw) !important;
+    }
+
+    .fs-3 {
+        font-size: calc(1.3rem + 0.6vw) !important;
+    }
+
+    .fs-4 {
+        font-size: calc(1.275rem + 0.3vw) !important;
+    }
+
+    .fs-5 {
+        font-size: 1.25rem !important;
+    }
+
+    .fs-6 {
+        font-size: 1rem !important;
+    }
+
+    .fst-italic {
+        font-style: italic !important;
+    }
+
+    .fst-normal {
+        font-style: normal !important;
+    }
+
+    .fw-lighter {
+        font-weight: lighter !important;
+    }
+
+    .fw-light {
+        font-weight: 300 !important;
+    }
+
+    .fw-normal {
+        font-weight: 400 !important;
+    }
+
+    .fw-medium {
+        font-weight: 500 !important;
+    }
+
+    .fw-semibold {
+        font-weight: 600 !important;
+    }
+
+    .fw-bold {
+        font-weight: 700 !important;
+    }
+
+    .fw-bolder {
+        font-weight: bolder !important;
+    }
+
+    .lh-1 {
+        line-height: 1 !important;
+    }
+
+    .lh-sm {
+        line-height: 1.25 !important;
+    }
+
+    .lh-base {
+        line-height: 1.5 !important;
+    }
+
+    .lh-lg {
+        line-height: 2 !important;
+    }
+
+    .text-start {
+        text-align: left !important;
+    }
+
+    .text-end {
+        text-align: right !important;
+    }
+
+    .text-center {
+        text-align: center !important;
+    }
+
+    .text-decoration-none {
+        text-decoration: none !important;
+    }
+
+    .text-decoration-underline {
+        text-decoration: underline !important;
+    }
+
+    .text-decoration-line-through {
+        text-decoration: line-through !important;
+    }
+
+    .text-lowercase {
+        text-transform: lowercase !important;
+    }
+
+    .text-uppercase {
+        text-transform: uppercase !important;
+    }
+
+    .text-capitalize {
+        text-transform: capitalize !important;
+    }
+
+    .text-wrap {
+        white-space: normal !important;
+    }
+
+    .text-nowrap {
+        white-space: nowrap !important;
+    }
+
+    /* rtl:begin:remove */
+    .text-break {
+        word-wrap: break-word !important;
+        word-break: break-word !important;
+    }
+
+    /* rtl:end:remove */
+    .text-primary {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-secondary {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-success {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-info {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-warning {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-danger {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-light {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-dark {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-black {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-white {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-body {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-muted {
+        --bs-text-opacity: 1;
+        color: var(--bs-secondary-color) !important;
+    }
+
+    .text-black-50 {
+        --bs-text-opacity: 1;
+        color: rgba(0, 0, 0, 0.5) !important;
+    }
+
+    .text-white-50 {
+        --bs-text-opacity: 1;
+        color: rgba(255, 255, 255, 0.5) !important;
+    }
+
+    .text-body-secondary {
+        --bs-text-opacity: 1;
+        color: var(--bs-secondary-color) !important;
+    }
+
+    .text-body-tertiary {
+        --bs-text-opacity: 1;
+        color: var(--bs-tertiary-color) !important;
+    }
+
+    .text-body-emphasis {
+        --bs-text-opacity: 1;
+        color: var(--bs-emphasis-color) !important;
+    }
+
+    .text-reset {
+        --bs-text-opacity: 1;
+        color: inherit !important;
+    }
+
+    .text-opacity-25 {
+        --bs-text-opacity: 0.25;
+    }
+
+    .text-opacity-50 {
+        --bs-text-opacity: 0.5;
+    }
+
+    .text-opacity-75 {
+        --bs-text-opacity: 0.75;
+    }
+
+    .text-opacity-100 {
+        --bs-text-opacity: 1;
+    }
+
+    .text-primary-emphasis {
+        color: var(--bs-primary-text-emphasis) !important;
+    }
+
+    .text-secondary-emphasis {
+        color: var(--bs-secondary-text-emphasis) !important;
+    }
+
+    .text-success-emphasis {
+        color: var(--bs-success-text-emphasis) !important;
+    }
+
+    .text-info-emphasis {
+        color: var(--bs-info-text-emphasis) !important;
+    }
+
+    .text-warning-emphasis {
+        color: var(--bs-warning-text-emphasis) !important;
+    }
+
+    .text-danger-emphasis {
+        color: var(--bs-danger-text-emphasis) !important;
+    }
+
+    .text-light-emphasis {
+        color: var(--bs-light-text-emphasis) !important;
+    }
+
+    .text-dark-emphasis {
+        color: var(--bs-dark-text-emphasis) !important;
+    }
+
+    .link-opacity-10 {
+        --bs-link-opacity: 0.1;
+    }
+
+    .link-opacity-10-hover:hover {
+        --bs-link-opacity: 0.1;
+    }
+
+    .link-opacity-25 {
+        --bs-link-opacity: 0.25;
+    }
+
+    .link-opacity-25-hover:hover {
+        --bs-link-opacity: 0.25;
+    }
+
+    .link-opacity-50 {
+        --bs-link-opacity: 0.5;
+    }
+
+    .link-opacity-50-hover:hover {
+        --bs-link-opacity: 0.5;
+    }
+
+    .link-opacity-75 {
+        --bs-link-opacity: 0.75;
+    }
+
+    .link-opacity-75-hover:hover {
+        --bs-link-opacity: 0.75;
+    }
+
+    .link-opacity-100 {
+        --bs-link-opacity: 1;
+    }
+
+    .link-opacity-100-hover:hover {
+        --bs-link-opacity: 1;
+    }
+
+    .link-offset-1 {
+        text-underline-offset: 0.125em !important;
+    }
+
+    .link-offset-1-hover:hover {
+        text-underline-offset: 0.125em !important;
+    }
+
+    .link-offset-2 {
+        text-underline-offset: 0.25em !important;
+    }
+
+    .link-offset-2-hover:hover {
+        text-underline-offset: 0.25em !important;
+    }
+
+    .link-offset-3 {
+        text-underline-offset: 0.375em !important;
+    }
+
+    .link-offset-3-hover:hover {
+        text-underline-offset: 0.375em !important;
+    }
+
+    .link-underline-primary {
+        --bs-link-underline-opacity: 1;
+        text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important;
+    }
+
+    .link-underline-secondary {
+        --bs-link-underline-opacity: 1;
+        text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important;
+    }
+
+    .link-underline-success {
+        --bs-link-underline-opacity: 1;
+        text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important;
+    }
+
+    .link-underline-info {
+        --bs-link-underline-opacity: 1;
+        text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important;
+    }
+
+    .link-underline-warning {
+        --bs-link-underline-opacity: 1;
+        text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important;
+    }
+
+    .link-underline-danger {
+        --bs-link-underline-opacity: 1;
+        text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important;
+    }
+
+    .link-underline-light {
+        --bs-link-underline-opacity: 1;
+        text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important;
+    }
+
+    .link-underline-dark {
+        --bs-link-underline-opacity: 1;
+        text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important;
+    }
+
+    .link-underline {
+        --bs-link-underline-opacity: 1;
+        text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-underline-opacity-0 {
+        --bs-link-underline-opacity: 0;
+    }
+
+    .link-underline-opacity-0-hover:hover {
+        --bs-link-underline-opacity: 0;
+    }
+
+    .link-underline-opacity-10 {
+        --bs-link-underline-opacity: 0.1;
+    }
+
+    .link-underline-opacity-10-hover:hover {
+        --bs-link-underline-opacity: 0.1;
+    }
+
+    .link-underline-opacity-25 {
+        --bs-link-underline-opacity: 0.25;
+    }
+
+    .link-underline-opacity-25-hover:hover {
+        --bs-link-underline-opacity: 0.25;
+    }
+
+    .link-underline-opacity-50 {
+        --bs-link-underline-opacity: 0.5;
+    }
+
+    .link-underline-opacity-50-hover:hover {
+        --bs-link-underline-opacity: 0.5;
+    }
+
+    .link-underline-opacity-75 {
+        --bs-link-underline-opacity: 0.75;
+    }
+
+    .link-underline-opacity-75-hover:hover {
+        --bs-link-underline-opacity: 0.75;
+    }
+
+    .link-underline-opacity-100 {
+        --bs-link-underline-opacity: 1;
+    }
+
+    .link-underline-opacity-100-hover:hover {
+        --bs-link-underline-opacity: 1;
+    }
+
+    .bg-primary {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-secondary {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-success {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-info {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-warning {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-danger {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-light {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-dark {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-black {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-white {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-body {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-transparent {
+        --bs-bg-opacity: 1;
+        background-color: transparent !important;
+    }
+
+    .bg-body-secondary {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-body-tertiary {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-opacity-10 {
+        --bs-bg-opacity: 0.1;
+    }
+
+    .bg-opacity-25 {
+        --bs-bg-opacity: 0.25;
+    }
+
+    .bg-opacity-50 {
+        --bs-bg-opacity: 0.5;
+    }
+
+    .bg-opacity-75 {
+        --bs-bg-opacity: 0.75;
+    }
+
+    .bg-opacity-100 {
+        --bs-bg-opacity: 1;
+    }
+
+    .bg-primary-subtle {
+        background-color: var(--bs-primary-bg-subtle) !important;
+    }
+
+    .bg-secondary-subtle {
+        background-color: var(--bs-secondary-bg-subtle) !important;
+    }
+
+    .bg-success-subtle {
+        background-color: var(--bs-success-bg-subtle) !important;
+    }
+
+    .bg-info-subtle {
+        background-color: var(--bs-info-bg-subtle) !important;
+    }
+
+    .bg-warning-subtle {
+        background-color: var(--bs-warning-bg-subtle) !important;
+    }
+
+    .bg-danger-subtle {
+        background-color: var(--bs-danger-bg-subtle) !important;
+    }
+
+    .bg-light-subtle {
+        background-color: var(--bs-light-bg-subtle) !important;
+    }
+
+    .bg-dark-subtle {
+        background-color: var(--bs-dark-bg-subtle) !important;
+    }
+
+    .bg-gradient {
+        background-image: var(--bs-gradient) !important;
+    }
+
+    .user-select-all {
+        -webkit-user-select: all !important;
+        user-select: all !important;
+    }
+
+    .user-select-auto {
+        -webkit-user-select: auto !important;
+        user-select: auto !important;
+    }
+
+    .user-select-none {
+        -webkit-user-select: none !important;
+        user-select: none !important;
+    }
+
+    .pe-none {
+        pointer-events: none !important;
+    }
+
+    .pe-auto {
+        pointer-events: auto !important;
+    }
+
+    .rounded {
+        border-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-0 {
+        border-radius: 0 !important;
+    }
+
+    .rounded-1 {
+        border-radius: var(--bs-border-radius-sm) !important;
+    }
+
+    .rounded-2 {
+        border-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-3 {
+        border-radius: var(--bs-border-radius-lg) !important;
+    }
+
+    .rounded-4 {
+        border-radius: var(--bs-border-radius-xl) !important;
+    }
+
+    .rounded-5 {
+        border-radius: var(--bs-border-radius-xxl) !important;
+    }
+
+    .rounded-circle {
+        border-radius: 50% !important;
+    }
+
+    .rounded-pill {
+        border-radius: var(--bs-border-radius-pill) !important;
+    }
+
+    .rounded-top {
+        border-top-left-radius: var(--bs-border-radius) !important;
+        border-top-right-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-top-0 {
+        border-top-left-radius: 0 !important;
+        border-top-right-radius: 0 !important;
+    }
+
+    .rounded-top-1 {
+        border-top-left-radius: var(--bs-border-radius-sm) !important;
+        border-top-right-radius: var(--bs-border-radius-sm) !important;
+    }
+
+    .rounded-top-2 {
+        border-top-left-radius: var(--bs-border-radius) !important;
+        border-top-right-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-top-3 {
+        border-top-left-radius: var(--bs-border-radius-lg) !important;
+        border-top-right-radius: var(--bs-border-radius-lg) !important;
+    }
+
+    .rounded-top-4 {
+        border-top-left-radius: var(--bs-border-radius-xl) !important;
+        border-top-right-radius: var(--bs-border-radius-xl) !important;
+    }
+
+    .rounded-top-5 {
+        border-top-left-radius: var(--bs-border-radius-xxl) !important;
+        border-top-right-radius: var(--bs-border-radius-xxl) !important;
+    }
+
+    .rounded-top-circle {
+        border-top-left-radius: 50% !important;
+        border-top-right-radius: 50% !important;
+    }
+
+    .rounded-top-pill {
+        border-top-left-radius: var(--bs-border-radius-pill) !important;
+        border-top-right-radius: var(--bs-border-radius-pill) !important;
+    }
+
+    .rounded-end {
+        border-top-right-radius: var(--bs-border-radius) !important;
+        border-bottom-right-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-end-0 {
+        border-top-right-radius: 0 !important;
+        border-bottom-right-radius: 0 !important;
+    }
+
+    .rounded-end-1 {
+        border-top-right-radius: var(--bs-border-radius-sm) !important;
+        border-bottom-right-radius: var(--bs-border-radius-sm) !important;
+    }
+
+    .rounded-end-2 {
+        border-top-right-radius: var(--bs-border-radius) !important;
+        border-bottom-right-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-end-3 {
+        border-top-right-radius: var(--bs-border-radius-lg) !important;
+        border-bottom-right-radius: var(--bs-border-radius-lg) !important;
+    }
+
+    .rounded-end-4 {
+        border-top-right-radius: var(--bs-border-radius-xl) !important;
+        border-bottom-right-radius: var(--bs-border-radius-xl) !important;
+    }
+
+    .rounded-end-5 {
+        border-top-right-radius: var(--bs-border-radius-xxl) !important;
+        border-bottom-right-radius: var(--bs-border-radius-xxl) !important;
+    }
+
+    .rounded-end-circle {
+        border-top-right-radius: 50% !important;
+        border-bottom-right-radius: 50% !important;
+    }
+
+    .rounded-end-pill {
+        border-top-right-radius: var(--bs-border-radius-pill) !important;
+        border-bottom-right-radius: var(--bs-border-radius-pill) !important;
+    }
+
+    .rounded-bottom {
+        border-bottom-right-radius: var(--bs-border-radius) !important;
+        border-bottom-left-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-bottom-0 {
+        border-bottom-right-radius: 0 !important;
+        border-bottom-left-radius: 0 !important;
+    }
+
+    .rounded-bottom-1 {
+        border-bottom-right-radius: var(--bs-border-radius-sm) !important;
+        border-bottom-left-radius: var(--bs-border-radius-sm) !important;
+    }
+
+    .rounded-bottom-2 {
+        border-bottom-right-radius: var(--bs-border-radius) !important;
+        border-bottom-left-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-bottom-3 {
+        border-bottom-right-radius: var(--bs-border-radius-lg) !important;
+        border-bottom-left-radius: var(--bs-border-radius-lg) !important;
+    }
+
+    .rounded-bottom-4 {
+        border-bottom-right-radius: var(--bs-border-radius-xl) !important;
+        border-bottom-left-radius: var(--bs-border-radius-xl) !important;
+    }
+
+    .rounded-bottom-5 {
+        border-bottom-right-radius: var(--bs-border-radius-xxl) !important;
+        border-bottom-left-radius: var(--bs-border-radius-xxl) !important;
+    }
+
+    .rounded-bottom-circle {
+        border-bottom-right-radius: 50% !important;
+        border-bottom-left-radius: 50% !important;
+    }
+
+    .rounded-bottom-pill {
+        border-bottom-right-radius: var(--bs-border-radius-pill) !important;
+        border-bottom-left-radius: var(--bs-border-radius-pill) !important;
+    }
+
+    .rounded-start {
+        border-bottom-left-radius: var(--bs-border-radius) !important;
+        border-top-left-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-start-0 {
+        border-bottom-left-radius: 0 !important;
+        border-top-left-radius: 0 !important;
+    }
+
+    .rounded-start-1 {
+        border-bottom-left-radius: var(--bs-border-radius-sm) !important;
+        border-top-left-radius: var(--bs-border-radius-sm) !important;
+    }
+
+    .rounded-start-2 {
+        border-bottom-left-radius: var(--bs-border-radius) !important;
+        border-top-left-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-start-3 {
+        border-bottom-left-radius: var(--bs-border-radius-lg) !important;
+        border-top-left-radius: var(--bs-border-radius-lg) !important;
+    }
+
+    .rounded-start-4 {
+        border-bottom-left-radius: var(--bs-border-radius-xl) !important;
+        border-top-left-radius: var(--bs-border-radius-xl) !important;
+    }
+
+    .rounded-start-5 {
+        border-bottom-left-radius: var(--bs-border-radius-xxl) !important;
+        border-top-left-radius: var(--bs-border-radius-xxl) !important;
+    }
+
+    .rounded-start-circle {
+        border-bottom-left-radius: 50% !important;
+        border-top-left-radius: 50% !important;
+    }
+
+    .rounded-start-pill {
+        border-bottom-left-radius: var(--bs-border-radius-pill) !important;
+        border-top-left-radius: var(--bs-border-radius-pill) !important;
+    }
+
+    .visible {
+        visibility: visible !important;
+    }
+
+    .invisible {
+        visibility: hidden !important;
+    }
+
+    .z-n1 {
+        z-index: -1 !important;
+    }
+
+    .z-0 {
+        z-index: 0 !important;
+    }
+
+    .z-1 {
+        z-index: 1 !important;
+    }
+
+    .z-2 {
+        z-index: 2 !important;
+    }
+
+    .z-3 {
+        z-index: 3 !important;
+    }
+
+    @media (min-width: 576px) {
+        .float-sm-start {
+            float: left !important;
+        }
+
+        .float-sm-end {
+            float: right !important;
+        }
+
+        .float-sm-none {
+            float: none !important;
+        }
+
+        .object-fit-sm-contain {
+            object-fit: contain !important;
+        }
+
+        .object-fit-sm-cover {
+            object-fit: cover !important;
+        }
+
+        .object-fit-sm-fill {
+            object-fit: fill !important;
+        }
+
+        .object-fit-sm-scale {
+            object-fit: scale-down !important;
+        }
+
+        .object-fit-sm-none {
+            object-fit: none !important;
+        }
+
+        .d-sm-inline {
+            display: inline !important;
+        }
+
+        .d-sm-inline-block {
+            display: inline-block !important;
+        }
+
+        .d-sm-block {
+            display: block !important;
+        }
+
+        .d-sm-grid {
+            display: grid !important;
+        }
+
+        .d-sm-inline-grid {
+            display: inline-grid !important;
+        }
+
+        .d-sm-table {
+            display: table !important;
+        }
+
+        .d-sm-table-row {
+            display: table-row !important;
+        }
+
+        .d-sm-table-cell {
+            display: table-cell !important;
+        }
+
+        .d-sm-flex {
+            display: flex !important;
+        }
+
+        .d-sm-inline-flex {
+            display: inline-flex !important;
+        }
+
+        .d-sm-none {
+            display: none !important;
+        }
+
+        .flex-sm-fill {
+            flex: 1 1 auto !important;
+        }
+
+        .flex-sm-row {
+            flex-direction: row !important;
+        }
+
+        .flex-sm-column {
+            flex-direction: column !important;
+        }
+
+        .flex-sm-row-reverse {
+            flex-direction: row-reverse !important;
+        }
+
+        .flex-sm-column-reverse {
+            flex-direction: column-reverse !important;
+        }
+
+        .flex-sm-grow-0 {
+            flex-grow: 0 !important;
+        }
+
+        .flex-sm-grow-1 {
+            flex-grow: 1 !important;
+        }
+
+        .flex-sm-shrink-0 {
+            flex-shrink: 0 !important;
+        }
+
+        .flex-sm-shrink-1 {
+            flex-shrink: 1 !important;
+        }
+
+        .flex-sm-wrap {
+            flex-wrap: wrap !important;
+        }
+
+        .flex-sm-nowrap {
+            flex-wrap: nowrap !important;
+        }
+
+        .flex-sm-wrap-reverse {
+            flex-wrap: wrap-reverse !important;
+        }
+
+        .justify-content-sm-start {
+            justify-content: flex-start !important;
+        }
+
+        .justify-content-sm-end {
+            justify-content: flex-end !important;
+        }
+
+        .justify-content-sm-center {
+            justify-content: center !important;
+        }
+
+        .justify-content-sm-between {
+            justify-content: space-between !important;
+        }
+
+        .justify-content-sm-around {
+            justify-content: space-around !important;
+        }
+
+        .justify-content-sm-evenly {
+            justify-content: space-evenly !important;
+        }
+
+        .align-items-sm-start {
+            align-items: flex-start !important;
+        }
+
+        .align-items-sm-end {
+            align-items: flex-end !important;
+        }
+
+        .align-items-sm-center {
+            align-items: center !important;
+        }
+
+        .align-items-sm-baseline {
+            align-items: baseline !important;
+        }
+
+        .align-items-sm-stretch {
+            align-items: stretch !important;
+        }
+
+        .align-content-sm-start {
+            align-content: flex-start !important;
+        }
+
+        .align-content-sm-end {
+            align-content: flex-end !important;
+        }
+
+        .align-content-sm-center {
+            align-content: center !important;
+        }
+
+        .align-content-sm-between {
+            align-content: space-between !important;
+        }
+
+        .align-content-sm-around {
+            align-content: space-around !important;
+        }
+
+        .align-content-sm-stretch {
+            align-content: stretch !important;
+        }
+
+        .align-self-sm-auto {
+            align-self: auto !important;
+        }
+
+        .align-self-sm-start {
+            align-self: flex-start !important;
+        }
+
+        .align-self-sm-end {
+            align-self: flex-end !important;
+        }
+
+        .align-self-sm-center {
+            align-self: center !important;
+        }
+
+        .align-self-sm-baseline {
+            align-self: baseline !important;
+        }
+
+        .align-self-sm-stretch {
+            align-self: stretch !important;
+        }
+
+        .order-sm-first {
+            order: -1 !important;
+        }
+
+        .order-sm-0 {
+            order: 0 !important;
+        }
+
+        .order-sm-1 {
+            order: 1 !important;
+        }
+
+        .order-sm-2 {
+            order: 2 !important;
+        }
+
+        .order-sm-3 {
+            order: 3 !important;
+        }
+
+        .order-sm-4 {
+            order: 4 !important;
+        }
+
+        .order-sm-5 {
+            order: 5 !important;
+        }
+
+        .order-sm-last {
+            order: 6 !important;
+        }
+
+        .m-sm-0 {
+            margin: 0 !important;
+        }
+
+        .m-sm-1 {
+            margin: 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-right: 0 !important;
+            margin-left: 0 !important;
+        }
+
+        .mx-sm-1 {
+            margin-right: 0.25rem !important;
+            margin-left: 0.25rem !important;
+        }
+
+        .mx-sm-2 {
+            margin-right: 0.5rem !important;
+            margin-left: 0.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: 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-right: 0 !important;
+        }
+
+        .me-sm-1 {
+            margin-right: 0.25rem !important;
+        }
+
+        .me-sm-2 {
+            margin-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ms-sm-1 {
+            margin-left: 0.25rem !important;
+        }
+
+        .ms-sm-2 {
+            margin-left: 0.5rem !important;
+        }
+
+        .ms-sm-3 {
+            margin-left: 1rem !important;
+        }
+
+        .ms-sm-4 {
+            margin-left: 1.5rem !important;
+        }
+
+        .ms-sm-5 {
+            margin-left: 3rem !important;
+        }
+
+        .ms-sm-auto {
+            margin-left: auto !important;
+        }
+
+        .p-sm-0 {
+            padding: 0 !important;
+        }
+
+        .p-sm-1 {
+            padding: 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-right: 0 !important;
+            padding-left: 0 !important;
+        }
+
+        .px-sm-1 {
+            padding-right: 0.25rem !important;
+            padding-left: 0.25rem !important;
+        }
+
+        .px-sm-2 {
+            padding-right: 0.5rem !important;
+            padding-left: 0.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: 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-right: 0 !important;
+        }
+
+        .pe-sm-1 {
+            padding-right: 0.25rem !important;
+        }
+
+        .pe-sm-2 {
+            padding-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ps-sm-1 {
+            padding-left: 0.25rem !important;
+        }
+
+        .ps-sm-2 {
+            padding-left: 0.5rem !important;
+        }
+
+        .ps-sm-3 {
+            padding-left: 1rem !important;
+        }
+
+        .ps-sm-4 {
+            padding-left: 1.5rem !important;
+        }
+
+        .ps-sm-5 {
+            padding-left: 3rem !important;
+        }
+
+        .gap-sm-0 {
+            gap: 0 !important;
+        }
+
+        .gap-sm-1 {
+            gap: 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;
+        }
+
+        .row-gap-sm-0 {
+            row-gap: 0 !important;
+        }
+
+        .row-gap-sm-1 {
+            row-gap: 0.25rem !important;
+        }
+
+        .row-gap-sm-2 {
+            row-gap: 0.5rem !important;
+        }
+
+        .row-gap-sm-3 {
+            row-gap: 1rem !important;
+        }
+
+        .row-gap-sm-4 {
+            row-gap: 1.5rem !important;
+        }
+
+        .row-gap-sm-5 {
+            row-gap: 3rem !important;
+        }
+
+        .column-gap-sm-0 {
+            column-gap: 0 !important;
+        }
+
+        .column-gap-sm-1 {
+            column-gap: 0.25rem !important;
+        }
+
+        .column-gap-sm-2 {
+            column-gap: 0.5rem !important;
+        }
+
+        .column-gap-sm-3 {
+            column-gap: 1rem !important;
+        }
+
+        .column-gap-sm-4 {
+            column-gap: 1.5rem !important;
+        }
+
+        .column-gap-sm-5 {
+            column-gap: 3rem !important;
+        }
+
+        .text-sm-start {
+            text-align: left !important;
+        }
+
+        .text-sm-end {
+            text-align: right !important;
+        }
+
+        .text-sm-center {
+            text-align: center !important;
+        }
+    }
+
+    @media (min-width: 768px) {
+        .float-md-start {
+            float: left !important;
+        }
+
+        .float-md-end {
+            float: right !important;
+        }
+
+        .float-md-none {
+            float: none !important;
+        }
+
+        .object-fit-md-contain {
+            object-fit: contain !important;
+        }
+
+        .object-fit-md-cover {
+            object-fit: cover !important;
+        }
+
+        .object-fit-md-fill {
+            object-fit: fill !important;
+        }
+
+        .object-fit-md-scale {
+            object-fit: scale-down !important;
+        }
+
+        .object-fit-md-none {
+            object-fit: none !important;
+        }
+
+        .d-md-inline {
+            display: inline !important;
+        }
+
+        .d-md-inline-block {
+            display: inline-block !important;
+        }
+
+        .d-md-block {
+            display: block !important;
+        }
+
+        .d-md-grid {
+            display: grid !important;
+        }
+
+        .d-md-inline-grid {
+            display: inline-grid !important;
+        }
+
+        .d-md-table {
+            display: table !important;
+        }
+
+        .d-md-table-row {
+            display: table-row !important;
+        }
+
+        .d-md-table-cell {
+            display: table-cell !important;
+        }
+
+        .d-md-flex {
+            display: flex !important;
+        }
+
+        .d-md-inline-flex {
+            display: inline-flex !important;
+        }
+
+        .d-md-none {
+            display: none !important;
+        }
+
+        .flex-md-fill {
+            flex: 1 1 auto !important;
+        }
+
+        .flex-md-row {
+            flex-direction: row !important;
+        }
+
+        .flex-md-column {
+            flex-direction: column !important;
+        }
+
+        .flex-md-row-reverse {
+            flex-direction: row-reverse !important;
+        }
+
+        .flex-md-column-reverse {
+            flex-direction: column-reverse !important;
+        }
+
+        .flex-md-grow-0 {
+            flex-grow: 0 !important;
+        }
+
+        .flex-md-grow-1 {
+            flex-grow: 1 !important;
+        }
+
+        .flex-md-shrink-0 {
+            flex-shrink: 0 !important;
+        }
+
+        .flex-md-shrink-1 {
+            flex-shrink: 1 !important;
+        }
+
+        .flex-md-wrap {
+            flex-wrap: wrap !important;
+        }
+
+        .flex-md-nowrap {
+            flex-wrap: nowrap !important;
+        }
+
+        .flex-md-wrap-reverse {
+            flex-wrap: wrap-reverse !important;
+        }
+
+        .justify-content-md-start {
+            justify-content: flex-start !important;
+        }
+
+        .justify-content-md-end {
+            justify-content: flex-end !important;
+        }
+
+        .justify-content-md-center {
+            justify-content: center !important;
+        }
+
+        .justify-content-md-between {
+            justify-content: space-between !important;
+        }
+
+        .justify-content-md-around {
+            justify-content: space-around !important;
+        }
+
+        .justify-content-md-evenly {
+            justify-content: space-evenly !important;
+        }
+
+        .align-items-md-start {
+            align-items: flex-start !important;
+        }
+
+        .align-items-md-end {
+            align-items: flex-end !important;
+        }
+
+        .align-items-md-center {
+            align-items: center !important;
+        }
+
+        .align-items-md-baseline {
+            align-items: baseline !important;
+        }
+
+        .align-items-md-stretch {
+            align-items: stretch !important;
+        }
+
+        .align-content-md-start {
+            align-content: flex-start !important;
+        }
+
+        .align-content-md-end {
+            align-content: flex-end !important;
+        }
+
+        .align-content-md-center {
+            align-content: center !important;
+        }
+
+        .align-content-md-between {
+            align-content: space-between !important;
+        }
+
+        .align-content-md-around {
+            align-content: space-around !important;
+        }
+
+        .align-content-md-stretch {
+            align-content: stretch !important;
+        }
+
+        .align-self-md-auto {
+            align-self: auto !important;
+        }
+
+        .align-self-md-start {
+            align-self: flex-start !important;
+        }
+
+        .align-self-md-end {
+            align-self: flex-end !important;
+        }
+
+        .align-self-md-center {
+            align-self: center !important;
+        }
+
+        .align-self-md-baseline {
+            align-self: baseline !important;
+        }
+
+        .align-self-md-stretch {
+            align-self: stretch !important;
+        }
+
+        .order-md-first {
+            order: -1 !important;
+        }
+
+        .order-md-0 {
+            order: 0 !important;
+        }
+
+        .order-md-1 {
+            order: 1 !important;
+        }
+
+        .order-md-2 {
+            order: 2 !important;
+        }
+
+        .order-md-3 {
+            order: 3 !important;
+        }
+
+        .order-md-4 {
+            order: 4 !important;
+        }
+
+        .order-md-5 {
+            order: 5 !important;
+        }
+
+        .order-md-last {
+            order: 6 !important;
+        }
+
+        .m-md-0 {
+            margin: 0 !important;
+        }
+
+        .m-md-1 {
+            margin: 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-right: 0 !important;
+            margin-left: 0 !important;
+        }
+
+        .mx-md-1 {
+            margin-right: 0.25rem !important;
+            margin-left: 0.25rem !important;
+        }
+
+        .mx-md-2 {
+            margin-right: 0.5rem !important;
+            margin-left: 0.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: 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-right: 0 !important;
+        }
+
+        .me-md-1 {
+            margin-right: 0.25rem !important;
+        }
+
+        .me-md-2 {
+            margin-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ms-md-1 {
+            margin-left: 0.25rem !important;
+        }
+
+        .ms-md-2 {
+            margin-left: 0.5rem !important;
+        }
+
+        .ms-md-3 {
+            margin-left: 1rem !important;
+        }
+
+        .ms-md-4 {
+            margin-left: 1.5rem !important;
+        }
+
+        .ms-md-5 {
+            margin-left: 3rem !important;
+        }
+
+        .ms-md-auto {
+            margin-left: auto !important;
+        }
+
+        .p-md-0 {
+            padding: 0 !important;
+        }
+
+        .p-md-1 {
+            padding: 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-right: 0 !important;
+            padding-left: 0 !important;
+        }
+
+        .px-md-1 {
+            padding-right: 0.25rem !important;
+            padding-left: 0.25rem !important;
+        }
+
+        .px-md-2 {
+            padding-right: 0.5rem !important;
+            padding-left: 0.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: 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-right: 0 !important;
+        }
+
+        .pe-md-1 {
+            padding-right: 0.25rem !important;
+        }
+
+        .pe-md-2 {
+            padding-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ps-md-1 {
+            padding-left: 0.25rem !important;
+        }
+
+        .ps-md-2 {
+            padding-left: 0.5rem !important;
+        }
+
+        .ps-md-3 {
+            padding-left: 1rem !important;
+        }
+
+        .ps-md-4 {
+            padding-left: 1.5rem !important;
+        }
+
+        .ps-md-5 {
+            padding-left: 3rem !important;
+        }
+
+        .gap-md-0 {
+            gap: 0 !important;
+        }
+
+        .gap-md-1 {
+            gap: 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;
+        }
+
+        .row-gap-md-0 {
+            row-gap: 0 !important;
+        }
+
+        .row-gap-md-1 {
+            row-gap: 0.25rem !important;
+        }
+
+        .row-gap-md-2 {
+            row-gap: 0.5rem !important;
+        }
+
+        .row-gap-md-3 {
+            row-gap: 1rem !important;
+        }
+
+        .row-gap-md-4 {
+            row-gap: 1.5rem !important;
+        }
+
+        .row-gap-md-5 {
+            row-gap: 3rem !important;
+        }
+
+        .column-gap-md-0 {
+            column-gap: 0 !important;
+        }
+
+        .column-gap-md-1 {
+            column-gap: 0.25rem !important;
+        }
+
+        .column-gap-md-2 {
+            column-gap: 0.5rem !important;
+        }
+
+        .column-gap-md-3 {
+            column-gap: 1rem !important;
+        }
+
+        .column-gap-md-4 {
+            column-gap: 1.5rem !important;
+        }
+
+        .column-gap-md-5 {
+            column-gap: 3rem !important;
+        }
+
+        .text-md-start {
+            text-align: left !important;
+        }
+
+        .text-md-end {
+            text-align: right !important;
+        }
+
+        .text-md-center {
+            text-align: center !important;
+        }
+    }
+
+    @media (min-width: 992px) {
+        .float-lg-start {
+            float: left !important;
+        }
+
+        .float-lg-end {
+            float: right !important;
+        }
+
+        .float-lg-none {
+            float: none !important;
+        }
+
+        .object-fit-lg-contain {
+            object-fit: contain !important;
+        }
+
+        .object-fit-lg-cover {
+            object-fit: cover !important;
+        }
+
+        .object-fit-lg-fill {
+            object-fit: fill !important;
+        }
+
+        .object-fit-lg-scale {
+            object-fit: scale-down !important;
+        }
+
+        .object-fit-lg-none {
+            object-fit: none !important;
+        }
+
+        .d-lg-inline {
+            display: inline !important;
+        }
+
+        .d-lg-inline-block {
+            display: inline-block !important;
+        }
+
+        .d-lg-block {
+            display: block !important;
+        }
+
+        .d-lg-grid {
+            display: grid !important;
+        }
+
+        .d-lg-inline-grid {
+            display: inline-grid !important;
+        }
+
+        .d-lg-table {
+            display: table !important;
+        }
+
+        .d-lg-table-row {
+            display: table-row !important;
+        }
+
+        .d-lg-table-cell {
+            display: table-cell !important;
+        }
+
+        .d-lg-flex {
+            display: flex !important;
+        }
+
+        .d-lg-inline-flex {
+            display: inline-flex !important;
+        }
+
+        .d-lg-none {
+            display: none !important;
+        }
+
+        .flex-lg-fill {
+            flex: 1 1 auto !important;
+        }
+
+        .flex-lg-row {
+            flex-direction: row !important;
+        }
+
+        .flex-lg-column {
+            flex-direction: column !important;
+        }
+
+        .flex-lg-row-reverse {
+            flex-direction: row-reverse !important;
+        }
+
+        .flex-lg-column-reverse {
+            flex-direction: column-reverse !important;
+        }
+
+        .flex-lg-grow-0 {
+            flex-grow: 0 !important;
+        }
+
+        .flex-lg-grow-1 {
+            flex-grow: 1 !important;
+        }
+
+        .flex-lg-shrink-0 {
+            flex-shrink: 0 !important;
+        }
+
+        .flex-lg-shrink-1 {
+            flex-shrink: 1 !important;
+        }
+
+        .flex-lg-wrap {
+            flex-wrap: wrap !important;
+        }
+
+        .flex-lg-nowrap {
+            flex-wrap: nowrap !important;
+        }
+
+        .flex-lg-wrap-reverse {
+            flex-wrap: wrap-reverse !important;
+        }
+
+        .justify-content-lg-start {
+            justify-content: flex-start !important;
+        }
+
+        .justify-content-lg-end {
+            justify-content: flex-end !important;
+        }
+
+        .justify-content-lg-center {
+            justify-content: center !important;
+        }
+
+        .justify-content-lg-between {
+            justify-content: space-between !important;
+        }
+
+        .justify-content-lg-around {
+            justify-content: space-around !important;
+        }
+
+        .justify-content-lg-evenly {
+            justify-content: space-evenly !important;
+        }
+
+        .align-items-lg-start {
+            align-items: flex-start !important;
+        }
+
+        .align-items-lg-end {
+            align-items: flex-end !important;
+        }
+
+        .align-items-lg-center {
+            align-items: center !important;
+        }
+
+        .align-items-lg-baseline {
+            align-items: baseline !important;
+        }
+
+        .align-items-lg-stretch {
+            align-items: stretch !important;
+        }
+
+        .align-content-lg-start {
+            align-content: flex-start !important;
+        }
+
+        .align-content-lg-end {
+            align-content: flex-end !important;
+        }
+
+        .align-content-lg-center {
+            align-content: center !important;
+        }
+
+        .align-content-lg-between {
+            align-content: space-between !important;
+        }
+
+        .align-content-lg-around {
+            align-content: space-around !important;
+        }
+
+        .align-content-lg-stretch {
+            align-content: stretch !important;
+        }
+
+        .align-self-lg-auto {
+            align-self: auto !important;
+        }
+
+        .align-self-lg-start {
+            align-self: flex-start !important;
+        }
+
+        .align-self-lg-end {
+            align-self: flex-end !important;
+        }
+
+        .align-self-lg-center {
+            align-self: center !important;
+        }
+
+        .align-self-lg-baseline {
+            align-self: baseline !important;
+        }
+
+        .align-self-lg-stretch {
+            align-self: stretch !important;
+        }
+
+        .order-lg-first {
+            order: -1 !important;
+        }
+
+        .order-lg-0 {
+            order: 0 !important;
+        }
+
+        .order-lg-1 {
+            order: 1 !important;
+        }
+
+        .order-lg-2 {
+            order: 2 !important;
+        }
+
+        .order-lg-3 {
+            order: 3 !important;
+        }
+
+        .order-lg-4 {
+            order: 4 !important;
+        }
+
+        .order-lg-5 {
+            order: 5 !important;
+        }
+
+        .order-lg-last {
+            order: 6 !important;
+        }
+
+        .m-lg-0 {
+            margin: 0 !important;
+        }
+
+        .m-lg-1 {
+            margin: 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-right: 0 !important;
+            margin-left: 0 !important;
+        }
+
+        .mx-lg-1 {
+            margin-right: 0.25rem !important;
+            margin-left: 0.25rem !important;
+        }
+
+        .mx-lg-2 {
+            margin-right: 0.5rem !important;
+            margin-left: 0.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: 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-right: 0 !important;
+        }
+
+        .me-lg-1 {
+            margin-right: 0.25rem !important;
+        }
+
+        .me-lg-2 {
+            margin-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ms-lg-1 {
+            margin-left: 0.25rem !important;
+        }
+
+        .ms-lg-2 {
+            margin-left: 0.5rem !important;
+        }
+
+        .ms-lg-3 {
+            margin-left: 1rem !important;
+        }
+
+        .ms-lg-4 {
+            margin-left: 1.5rem !important;
+        }
+
+        .ms-lg-5 {
+            margin-left: 3rem !important;
+        }
+
+        .ms-lg-auto {
+            margin-left: auto !important;
+        }
+
+        .p-lg-0 {
+            padding: 0 !important;
+        }
+
+        .p-lg-1 {
+            padding: 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-right: 0 !important;
+            padding-left: 0 !important;
+        }
+
+        .px-lg-1 {
+            padding-right: 0.25rem !important;
+            padding-left: 0.25rem !important;
+        }
+
+        .px-lg-2 {
+            padding-right: 0.5rem !important;
+            padding-left: 0.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: 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-right: 0 !important;
+        }
+
+        .pe-lg-1 {
+            padding-right: 0.25rem !important;
+        }
+
+        .pe-lg-2 {
+            padding-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ps-lg-1 {
+            padding-left: 0.25rem !important;
+        }
+
+        .ps-lg-2 {
+            padding-left: 0.5rem !important;
+        }
+
+        .ps-lg-3 {
+            padding-left: 1rem !important;
+        }
+
+        .ps-lg-4 {
+            padding-left: 1.5rem !important;
+        }
+
+        .ps-lg-5 {
+            padding-left: 3rem !important;
+        }
+
+        .gap-lg-0 {
+            gap: 0 !important;
+        }
+
+        .gap-lg-1 {
+            gap: 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;
+        }
+
+        .row-gap-lg-0 {
+            row-gap: 0 !important;
+        }
+
+        .row-gap-lg-1 {
+            row-gap: 0.25rem !important;
+        }
+
+        .row-gap-lg-2 {
+            row-gap: 0.5rem !important;
+        }
+
+        .row-gap-lg-3 {
+            row-gap: 1rem !important;
+        }
+
+        .row-gap-lg-4 {
+            row-gap: 1.5rem !important;
+        }
+
+        .row-gap-lg-5 {
+            row-gap: 3rem !important;
+        }
+
+        .column-gap-lg-0 {
+            column-gap: 0 !important;
+        }
+
+        .column-gap-lg-1 {
+            column-gap: 0.25rem !important;
+        }
+
+        .column-gap-lg-2 {
+            column-gap: 0.5rem !important;
+        }
+
+        .column-gap-lg-3 {
+            column-gap: 1rem !important;
+        }
+
+        .column-gap-lg-4 {
+            column-gap: 1.5rem !important;
+        }
+
+        .column-gap-lg-5 {
+            column-gap: 3rem !important;
+        }
+
+        .text-lg-start {
+            text-align: left !important;
+        }
+
+        .text-lg-end {
+            text-align: right !important;
+        }
+
+        .text-lg-center {
+            text-align: center !important;
+        }
+    }
+
+    @media (min-width: 1200px) {
+        .float-xl-start {
+            float: left !important;
+        }
+
+        .float-xl-end {
+            float: right !important;
+        }
+
+        .float-xl-none {
+            float: none !important;
+        }
+
+        .object-fit-xl-contain {
+            object-fit: contain !important;
+        }
+
+        .object-fit-xl-cover {
+            object-fit: cover !important;
+        }
+
+        .object-fit-xl-fill {
+            object-fit: fill !important;
+        }
+
+        .object-fit-xl-scale {
+            object-fit: scale-down !important;
+        }
+
+        .object-fit-xl-none {
+            object-fit: none !important;
+        }
+
+        .d-xl-inline {
+            display: inline !important;
+        }
+
+        .d-xl-inline-block {
+            display: inline-block !important;
+        }
+
+        .d-xl-block {
+            display: block !important;
+        }
+
+        .d-xl-grid {
+            display: grid !important;
+        }
+
+        .d-xl-inline-grid {
+            display: inline-grid !important;
+        }
+
+        .d-xl-table {
+            display: table !important;
+        }
+
+        .d-xl-table-row {
+            display: table-row !important;
+        }
+
+        .d-xl-table-cell {
+            display: table-cell !important;
+        }
+
+        .d-xl-flex {
+            display: flex !important;
+        }
+
+        .d-xl-inline-flex {
+            display: inline-flex !important;
+        }
+
+        .d-xl-none {
+            display: none !important;
+        }
+
+        .flex-xl-fill {
+            flex: 1 1 auto !important;
+        }
+
+        .flex-xl-row {
+            flex-direction: row !important;
+        }
+
+        .flex-xl-column {
+            flex-direction: column !important;
+        }
+
+        .flex-xl-row-reverse {
+            flex-direction: row-reverse !important;
+        }
+
+        .flex-xl-column-reverse {
+            flex-direction: column-reverse !important;
+        }
+
+        .flex-xl-grow-0 {
+            flex-grow: 0 !important;
+        }
+
+        .flex-xl-grow-1 {
+            flex-grow: 1 !important;
+        }
+
+        .flex-xl-shrink-0 {
+            flex-shrink: 0 !important;
+        }
+
+        .flex-xl-shrink-1 {
+            flex-shrink: 1 !important;
+        }
+
+        .flex-xl-wrap {
+            flex-wrap: wrap !important;
+        }
+
+        .flex-xl-nowrap {
+            flex-wrap: nowrap !important;
+        }
+
+        .flex-xl-wrap-reverse {
+            flex-wrap: wrap-reverse !important;
+        }
+
+        .justify-content-xl-start {
+            justify-content: flex-start !important;
+        }
+
+        .justify-content-xl-end {
+            justify-content: flex-end !important;
+        }
+
+        .justify-content-xl-center {
+            justify-content: center !important;
+        }
+
+        .justify-content-xl-between {
+            justify-content: space-between !important;
+        }
+
+        .justify-content-xl-around {
+            justify-content: space-around !important;
+        }
+
+        .justify-content-xl-evenly {
+            justify-content: space-evenly !important;
+        }
+
+        .align-items-xl-start {
+            align-items: flex-start !important;
+        }
+
+        .align-items-xl-end {
+            align-items: flex-end !important;
+        }
+
+        .align-items-xl-center {
+            align-items: center !important;
+        }
+
+        .align-items-xl-baseline {
+            align-items: baseline !important;
+        }
+
+        .align-items-xl-stretch {
+            align-items: stretch !important;
+        }
+
+        .align-content-xl-start {
+            align-content: flex-start !important;
+        }
+
+        .align-content-xl-end {
+            align-content: flex-end !important;
+        }
+
+        .align-content-xl-center {
+            align-content: center !important;
+        }
+
+        .align-content-xl-between {
+            align-content: space-between !important;
+        }
+
+        .align-content-xl-around {
+            align-content: space-around !important;
+        }
+
+        .align-content-xl-stretch {
+            align-content: stretch !important;
+        }
+
+        .align-self-xl-auto {
+            align-self: auto !important;
+        }
+
+        .align-self-xl-start {
+            align-self: flex-start !important;
+        }
+
+        .align-self-xl-end {
+            align-self: flex-end !important;
+        }
+
+        .align-self-xl-center {
+            align-self: center !important;
+        }
+
+        .align-self-xl-baseline {
+            align-self: baseline !important;
+        }
+
+        .align-self-xl-stretch {
+            align-self: stretch !important;
+        }
+
+        .order-xl-first {
+            order: -1 !important;
+        }
+
+        .order-xl-0 {
+            order: 0 !important;
+        }
+
+        .order-xl-1 {
+            order: 1 !important;
+        }
+
+        .order-xl-2 {
+            order: 2 !important;
+        }
+
+        .order-xl-3 {
+            order: 3 !important;
+        }
+
+        .order-xl-4 {
+            order: 4 !important;
+        }
+
+        .order-xl-5 {
+            order: 5 !important;
+        }
+
+        .order-xl-last {
+            order: 6 !important;
+        }
+
+        .m-xl-0 {
+            margin: 0 !important;
+        }
+
+        .m-xl-1 {
+            margin: 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-right: 0 !important;
+            margin-left: 0 !important;
+        }
+
+        .mx-xl-1 {
+            margin-right: 0.25rem !important;
+            margin-left: 0.25rem !important;
+        }
+
+        .mx-xl-2 {
+            margin-right: 0.5rem !important;
+            margin-left: 0.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: 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-right: 0 !important;
+        }
+
+        .me-xl-1 {
+            margin-right: 0.25rem !important;
+        }
+
+        .me-xl-2 {
+            margin-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ms-xl-1 {
+            margin-left: 0.25rem !important;
+        }
+
+        .ms-xl-2 {
+            margin-left: 0.5rem !important;
+        }
+
+        .ms-xl-3 {
+            margin-left: 1rem !important;
+        }
+
+        .ms-xl-4 {
+            margin-left: 1.5rem !important;
+        }
+
+        .ms-xl-5 {
+            margin-left: 3rem !important;
+        }
+
+        .ms-xl-auto {
+            margin-left: auto !important;
+        }
+
+        .p-xl-0 {
+            padding: 0 !important;
+        }
+
+        .p-xl-1 {
+            padding: 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-right: 0 !important;
+            padding-left: 0 !important;
+        }
+
+        .px-xl-1 {
+            padding-right: 0.25rem !important;
+            padding-left: 0.25rem !important;
+        }
+
+        .px-xl-2 {
+            padding-right: 0.5rem !important;
+            padding-left: 0.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: 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-right: 0 !important;
+        }
+
+        .pe-xl-1 {
+            padding-right: 0.25rem !important;
+        }
+
+        .pe-xl-2 {
+            padding-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ps-xl-1 {
+            padding-left: 0.25rem !important;
+        }
+
+        .ps-xl-2 {
+            padding-left: 0.5rem !important;
+        }
+
+        .ps-xl-3 {
+            padding-left: 1rem !important;
+        }
+
+        .ps-xl-4 {
+            padding-left: 1.5rem !important;
+        }
+
+        .ps-xl-5 {
+            padding-left: 3rem !important;
+        }
+
+        .gap-xl-0 {
+            gap: 0 !important;
+        }
+
+        .gap-xl-1 {
+            gap: 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;
+        }
+
+        .row-gap-xl-0 {
+            row-gap: 0 !important;
+        }
+
+        .row-gap-xl-1 {
+            row-gap: 0.25rem !important;
+        }
+
+        .row-gap-xl-2 {
+            row-gap: 0.5rem !important;
+        }
+
+        .row-gap-xl-3 {
+            row-gap: 1rem !important;
+        }
+
+        .row-gap-xl-4 {
+            row-gap: 1.5rem !important;
+        }
+
+        .row-gap-xl-5 {
+            row-gap: 3rem !important;
+        }
+
+        .column-gap-xl-0 {
+            column-gap: 0 !important;
+        }
+
+        .column-gap-xl-1 {
+            column-gap: 0.25rem !important;
+        }
+
+        .column-gap-xl-2 {
+            column-gap: 0.5rem !important;
+        }
+
+        .column-gap-xl-3 {
+            column-gap: 1rem !important;
+        }
+
+        .column-gap-xl-4 {
+            column-gap: 1.5rem !important;
+        }
+
+        .column-gap-xl-5 {
+            column-gap: 3rem !important;
+        }
+
+        .text-xl-start {
+            text-align: left !important;
+        }
+
+        .text-xl-end {
+            text-align: right !important;
+        }
+
+        .text-xl-center {
+            text-align: center !important;
+        }
+    }
+
+    @media (min-width: 1400px) {
+        .float-xxl-start {
+            float: left !important;
+        }
+
+        .float-xxl-end {
+            float: right !important;
+        }
+
+        .float-xxl-none {
+            float: none !important;
+        }
+
+        .object-fit-xxl-contain {
+            object-fit: contain !important;
+        }
+
+        .object-fit-xxl-cover {
+            object-fit: cover !important;
+        }
+
+        .object-fit-xxl-fill {
+            object-fit: fill !important;
+        }
+
+        .object-fit-xxl-scale {
+            object-fit: scale-down !important;
+        }
+
+        .object-fit-xxl-none {
+            object-fit: none !important;
+        }
+
+        .d-xxl-inline {
+            display: inline !important;
+        }
+
+        .d-xxl-inline-block {
+            display: inline-block !important;
+        }
+
+        .d-xxl-block {
+            display: block !important;
+        }
+
+        .d-xxl-grid {
+            display: grid !important;
+        }
+
+        .d-xxl-inline-grid {
+            display: inline-grid !important;
+        }
+
+        .d-xxl-table {
+            display: table !important;
+        }
+
+        .d-xxl-table-row {
+            display: table-row !important;
+        }
+
+        .d-xxl-table-cell {
+            display: table-cell !important;
+        }
+
+        .d-xxl-flex {
+            display: flex !important;
+        }
+
+        .d-xxl-inline-flex {
+            display: inline-flex !important;
+        }
+
+        .d-xxl-none {
+            display: none !important;
+        }
+
+        .flex-xxl-fill {
+            flex: 1 1 auto !important;
+        }
+
+        .flex-xxl-row {
+            flex-direction: row !important;
+        }
+
+        .flex-xxl-column {
+            flex-direction: column !important;
+        }
+
+        .flex-xxl-row-reverse {
+            flex-direction: row-reverse !important;
+        }
+
+        .flex-xxl-column-reverse {
+            flex-direction: column-reverse !important;
+        }
+
+        .flex-xxl-grow-0 {
+            flex-grow: 0 !important;
+        }
+
+        .flex-xxl-grow-1 {
+            flex-grow: 1 !important;
+        }
+
+        .flex-xxl-shrink-0 {
+            flex-shrink: 0 !important;
+        }
+
+        .flex-xxl-shrink-1 {
+            flex-shrink: 1 !important;
+        }
+
+        .flex-xxl-wrap {
+            flex-wrap: wrap !important;
+        }
+
+        .flex-xxl-nowrap {
+            flex-wrap: nowrap !important;
+        }
+
+        .flex-xxl-wrap-reverse {
+            flex-wrap: wrap-reverse !important;
+        }
+
+        .justify-content-xxl-start {
+            justify-content: flex-start !important;
+        }
+
+        .justify-content-xxl-end {
+            justify-content: flex-end !important;
+        }
+
+        .justify-content-xxl-center {
+            justify-content: center !important;
+        }
+
+        .justify-content-xxl-between {
+            justify-content: space-between !important;
+        }
+
+        .justify-content-xxl-around {
+            justify-content: space-around !important;
+        }
+
+        .justify-content-xxl-evenly {
+            justify-content: space-evenly !important;
+        }
+
+        .align-items-xxl-start {
+            align-items: flex-start !important;
+        }
+
+        .align-items-xxl-end {
+            align-items: flex-end !important;
+        }
+
+        .align-items-xxl-center {
+            align-items: center !important;
+        }
+
+        .align-items-xxl-baseline {
+            align-items: baseline !important;
+        }
+
+        .align-items-xxl-stretch {
+            align-items: stretch !important;
+        }
+
+        .align-content-xxl-start {
+            align-content: flex-start !important;
+        }
+
+        .align-content-xxl-end {
+            align-content: flex-end !important;
+        }
+
+        .align-content-xxl-center {
+            align-content: center !important;
+        }
+
+        .align-content-xxl-between {
+            align-content: space-between !important;
+        }
+
+        .align-content-xxl-around {
+            align-content: space-around !important;
+        }
+
+        .align-content-xxl-stretch {
+            align-content: stretch !important;
+        }
+
+        .align-self-xxl-auto {
+            align-self: auto !important;
+        }
+
+        .align-self-xxl-start {
+            align-self: flex-start !important;
+        }
+
+        .align-self-xxl-end {
+            align-self: flex-end !important;
+        }
+
+        .align-self-xxl-center {
+            align-self: center !important;
+        }
+
+        .align-self-xxl-baseline {
+            align-self: baseline !important;
+        }
+
+        .align-self-xxl-stretch {
+            align-self: stretch !important;
+        }
+
+        .order-xxl-first {
+            order: -1 !important;
+        }
+
+        .order-xxl-0 {
+            order: 0 !important;
+        }
+
+        .order-xxl-1 {
+            order: 1 !important;
+        }
+
+        .order-xxl-2 {
+            order: 2 !important;
+        }
+
+        .order-xxl-3 {
+            order: 3 !important;
+        }
+
+        .order-xxl-4 {
+            order: 4 !important;
+        }
+
+        .order-xxl-5 {
+            order: 5 !important;
+        }
+
+        .order-xxl-last {
+            order: 6 !important;
+        }
+
+        .m-xxl-0 {
+            margin: 0 !important;
+        }
+
+        .m-xxl-1 {
+            margin: 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-right: 0 !important;
+            margin-left: 0 !important;
+        }
+
+        .mx-xxl-1 {
+            margin-right: 0.25rem !important;
+            margin-left: 0.25rem !important;
+        }
+
+        .mx-xxl-2 {
+            margin-right: 0.5rem !important;
+            margin-left: 0.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: 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-right: 0 !important;
+        }
+
+        .me-xxl-1 {
+            margin-right: 0.25rem !important;
+        }
+
+        .me-xxl-2 {
+            margin-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ms-xxl-1 {
+            margin-left: 0.25rem !important;
+        }
+
+        .ms-xxl-2 {
+            margin-left: 0.5rem !important;
+        }
+
+        .ms-xxl-3 {
+            margin-left: 1rem !important;
+        }
+
+        .ms-xxl-4 {
+            margin-left: 1.5rem !important;
+        }
+
+        .ms-xxl-5 {
+            margin-left: 3rem !important;
+        }
+
+        .ms-xxl-auto {
+            margin-left: auto !important;
+        }
+
+        .p-xxl-0 {
+            padding: 0 !important;
+        }
+
+        .p-xxl-1 {
+            padding: 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-right: 0 !important;
+            padding-left: 0 !important;
+        }
+
+        .px-xxl-1 {
+            padding-right: 0.25rem !important;
+            padding-left: 0.25rem !important;
+        }
+
+        .px-xxl-2 {
+            padding-right: 0.5rem !important;
+            padding-left: 0.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: 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-right: 0 !important;
+        }
+
+        .pe-xxl-1 {
+            padding-right: 0.25rem !important;
+        }
+
+        .pe-xxl-2 {
+            padding-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ps-xxl-1 {
+            padding-left: 0.25rem !important;
+        }
+
+        .ps-xxl-2 {
+            padding-left: 0.5rem !important;
+        }
+
+        .ps-xxl-3 {
+            padding-left: 1rem !important;
+        }
+
+        .ps-xxl-4 {
+            padding-left: 1.5rem !important;
+        }
+
+        .ps-xxl-5 {
+            padding-left: 3rem !important;
+        }
+
+        .gap-xxl-0 {
+            gap: 0 !important;
+        }
+
+        .gap-xxl-1 {
+            gap: 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;
+        }
+
+        .row-gap-xxl-0 {
+            row-gap: 0 !important;
+        }
+
+        .row-gap-xxl-1 {
+            row-gap: 0.25rem !important;
+        }
+
+        .row-gap-xxl-2 {
+            row-gap: 0.5rem !important;
+        }
+
+        .row-gap-xxl-3 {
+            row-gap: 1rem !important;
+        }
+
+        .row-gap-xxl-4 {
+            row-gap: 1.5rem !important;
+        }
+
+        .row-gap-xxl-5 {
+            row-gap: 3rem !important;
+        }
+
+        .column-gap-xxl-0 {
+            column-gap: 0 !important;
+        }
+
+        .column-gap-xxl-1 {
+            column-gap: 0.25rem !important;
+        }
+
+        .column-gap-xxl-2 {
+            column-gap: 0.5rem !important;
+        }
+
+        .column-gap-xxl-3 {
+            column-gap: 1rem !important;
+        }
+
+        .column-gap-xxl-4 {
+            column-gap: 1.5rem !important;
+        }
+
+        .column-gap-xxl-5 {
+            column-gap: 3rem !important;
+        }
+
+        .text-xxl-start {
+            text-align: left !important;
+        }
+
+        .text-xxl-end {
+            text-align: right !important;
+        }
+
+        .text-xxl-center {
+            text-align: center !important;
+        }
+    }
+
+    @media (min-width: 1200px) {
+        .fs-1 {
+            font-size: 2.5rem !important;
+        }
+
+        .fs-2 {
+            font-size: 2rem !important;
+        }
+
+        .fs-3 {
+            font-size: 1.75rem !important;
+        }
+
+        .fs-4 {
+            font-size: 1.5rem !important;
+        }
+    }
+
+    @media print {
+        .d-print-inline {
+            display: inline !important;
+        }
+
+        .d-print-inline-block {
+            display: inline-block !important;
+        }
+
+        .d-print-block {
+            display: block !important;
+        }
+
+        .d-print-grid {
+            display: grid !important;
+        }
+
+        .d-print-inline-grid {
+            display: inline-grid !important;
+        }
+
+        .d-print-table {
+            display: table !important;
+        }
+
+        .d-print-table-row {
+            display: table-row !important;
+        }
+
+        .d-print-table-cell {
+            display: table-cell !important;
+        }
+
+        .d-print-flex {
+            display: flex !important;
+        }
+
+        .d-print-inline-flex {
+            display: inline-flex !important;
+        }
+
+        .d-print-none {
+            display: none !important;
+        }
+    }
+
+</style>
+</head>
+<body style="background-color: rgb(21, 152, 149); margin-top: auto; margin-bottom: auto;">
+<div id="root">
+    <div class="App" style="overflow: hidden;">
+        <div class="px-0 container-fluid">
+            <nav class="navbar navbar-expand-md navbar-white bg-white">
+                <div class="container"><a href="http://localhost:3000/home" class="navbar-brand"><span
+                        class="ikona"><img id="background-img" src="logo.png" width="60" height="60"
+                                           class=""></span><span class="mx-3 ikona"><span
+                        class="svetlo">Tour</span><span class="temno">Mate</span></span></a>
+                    <button aria-controls="navbarScroll" type="button" aria-label="Toggle navigation"
+                            class="navbar-toggler collapsed"><span class="navbar-toggler-icon"></span></button>
+                    <div class="navbar-collapse collapse" id="navbarScroll">
+                        <div class="ms-auto navbar-nav navbar-nav-scroll">
+                            <a href="http://localhost:3000/home"
+                                                                             data-rr-ui-event-key="/home"
+                                                                             class="m-2 nav-link">Home</a><a
+                                href="http://localhost:3000/login#features" data-rr-ui-event-key="#features"
+                                class="m-2 nav-link">Features</a><a href="http://localhost:3000/login#pricing"
+                                                                    data-rr-ui-event-key="#pricing"
+                                                                    class="m-2 nav-link">
+                            <button type="button" class="btn btn-primary"></button>
+                        </a>
+                            <button type="button" class="m-2 btn btn-primary btn-md"
+                                    style="background-color: rgb(21, 152, 149);">
+                                <svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 16 16"
+                                     height="1.5em" width="1.5em" xmlns="http://www.w3.org/2000/svg">
+                                    <path d="M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3Zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z"></path>
+                                </svg>
+                                Најави се
+                            </button>
+                        </div>
+                    </div>
+                </div>
+            </nav>
+            <br></div>
+        <div class="mt-5 container">
+            <div class="container" style="width: 40%;">
+                <div class="rounded-5 m-5 my-auto mx-auto py-5 px-5 container"
+                     style="background-color: rgb(255, 255, 255);">
+                    <form class="" action="/login" method="post">
+                        <div class="mb-3"><label class="form-label" for="formBasicEmail">Е-адреса</label><input
+                                placeholder="Enter email" name="email" type="email" id="formBasicEmail"
+                                class="form-control" value="darsov2@gmail.com"><small class="text-muted form-text">Вашите
+                            податоци никогаш нема да бидат споделени.</small></div>
+                        <div class="mb-3"><label class="form-label" for="formBasicPassword">Лозинка</label><input
+                                placeholder="Password" name="password" type="password" id="formBasicPassword"
+                                class="form-control" value="orelorel123"></div>
+                        <div class="mb-3">
+                            <div class="form-check"><input type="checkbox" id="formBasicCheckbox"
+                                                           class="form-check-input"><label title=""
+                                                                                           for="formBasicCheckbox"
+                                                                                           class="form-check-label">Check
+                                me out</label></div>
+                        </div>
+                        <a href="http://localhost:3000/register" style="text-decoration: none;"><small
+                                class="text-muted form-text">Регистритрај се</small></a>
+                        <div class="my-1">
+                            <button type="submit" class="btn btn-primary btn-md"
+                                    style="background-color: rgb(21, 152, 149);"><span class="ikona my-1"><svg
+                                    stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024"
+                                    height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path
+                                    d="M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM540 701v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 1 1 56 0zm152-237H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224z"></path></svg></span><span
+                                    class="ikona mx-3">Најави се</span></button>
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+</body>
+</html>
Index: src/main/resources/templates/login.html
===================================================================
--- src/main/resources/templates/login.html	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
+++ src/main/resources/templates/login.html	(revision 0f5aa2759dde06c45eeb640feeb15cb583c6af32)
@@ -0,0 +1,13751 @@
+<!DOCTYPE html>
+<!-- saved from url=(0027)http://localhost:3000/login -->
+<html lang="en">
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+    <!-- <link rel="icon" href="http://localhost:3000/favicon.ico"> -->
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="theme-color" content="#000000">
+    <meta name="description" content="Web site created using create-react-app">
+    <!-- <link rel="apple-touch-icon" href="http://localhost:3000/logo192.png"> -->
+    <!--
+      manifest.json provides metadata used when your web app is installed on a
+      user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
+    -->
+    <link rel="manifest" href="http://localhost:3000/manifest.json">
+    <!--
+      Notice the use of  in the tags above.
+      It will be replaced with the URL of the `public` folder during the build.
+      Only files inside the `public` folder can be referenced from the HTML.
+
+      Unlike "/favicon.ico" or "favicon.ico", "/favicon.ico" will
+      work correctly both with client-side routing and a non-root public URL.
+      Learn how to configure a non-root public URL by running `npm run build`.
+    -->
+    <title>React App</title>
+    >
+    <style>body {
+        margin: 0;
+        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
+        'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
+        sans-serif;
+        -webkit-font-smoothing: antialiased;
+        -moz-osx-font-smoothing: grayscale;
+    }
+
+    code {
+        font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
+        monospace;
+    }
+
+    .backdrop {
+        position: fixed;
+        top: 0;
+        left: 0;
+        width: 100%;
+        height: 100vh;
+        z-index: -10;
+        background: rgba(0, 0, 0, 0.75);
+    }
+
+    .modal {
+        position: fixed;
+        top: 30vh;
+        left: 10%;
+        width: 80%;
+        z-index: 10000000;
+        overflow: hidden;
+    }
+
+    /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9pbmRleC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxTQUFTO0VBQ1Q7O2NBRVk7RUFDWixtQ0FBbUM7RUFDbkMsa0NBQWtDO0FBQ3BDOztBQUVBO0VBQ0U7YUFDVztBQUNiOztBQUVBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVztFQUNYLGFBQWE7RUFDYixZQUFZO0VBQ1osK0JBQStCO0FBQ2pDOztBQUVBO0VBQ0UsZUFBZTtFQUNmLFNBQVM7RUFDVCxTQUFTO0VBQ1QsVUFBVTtFQUNWLGlCQUFpQjtFQUNqQixnQkFBZ0I7QUFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgJ094eWdlbicsXG4gICAgJ1VidW50dScsICdDYW50YXJlbGwnLCAnRmlyYSBTYW5zJywgJ0Ryb2lkIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLFxuICAgIHNhbnMtc2VyaWY7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5jb2RlIHtcbiAgZm9udC1mYW1pbHk6IHNvdXJjZS1jb2RlLXBybywgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsICdDb3VyaWVyIE5ldycsXG4gICAgbW9ub3NwYWNlO1xufVxuXG4uYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7XG4gIHotaW5kZXg6IC0xMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjc1KTtcbn1cblxuLm1vZGFsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDMwdmg7XG4gIGxlZnQ6IDEwJTtcbiAgd2lkdGg6IDgwJTtcbiAgei1pbmRleDogMTAwMDAwMDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 */</style>
+    <style>.App {
+        text-align: center;
+    }
+
+
+    .App-logo {
+        height: 40vmin;
+        pointer-events: none;
+    }
+
+    @media (prefers-reduced-motion: no-preference) {
+        .App-logo {
+            animation: App-logo-spin infinite 20s linear;
+        }
+    }
+
+    .App-header {
+        background-color: #282c34;
+        min-height: 100vh;
+        display: flex;
+        flex-direction: column;
+        align-items: center;
+        justify-content: center;
+        font-size: calc(10px + 2vmin);
+        color: white;
+    }
+
+    .App-link {
+        color: #61dafb;
+    }
+
+    .ikona {
+        vertical-align: middle;
+        display: inline-block;
+    }
+
+    .temno {
+        color: #1A5F7A;
+        font-weight: 800;
+        font-size: 1.5rem;
+    }
+
+    .svetlo {
+        color: #57C5B6;
+        font-weight: 500;
+        font-size: 1.5rem;
+    }
+
+    .tab-item {
+
+    }
+
+    .img-link {
+        text-decoration: none;
+    }
+
+    @keyframes App-logo-spin {
+        from {
+            transform: rotate(0deg);
+        }
+        to {
+            transform: rotate(360deg);
+        }
+    }
+
+    /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL3NyYy9BcHAuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0FBQ3BCOzs7OztBQUtBO0VBQ0UsY0FBYztFQUNkLG9CQUFvQjtBQUN0Qjs7QUFFQTtFQUNFO0lBQ0UsNENBQTRDO0VBQzlDO0FBQ0Y7O0FBRUE7RUFDRSx5QkFBeUI7RUFDekIsaUJBQWlCO0VBQ2pCLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2Qiw2QkFBNkI7RUFDN0IsWUFBWTtBQUNkOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLHNCQUFzQjtFQUN0QixxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxjQUFjO0VBQ2QsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGNBQWM7RUFDZCxnQkFBZ0I7RUFDaEIsaUJBQWlCO0FBQ25COztBQUVBOztBQUVBOztBQUVBO0VBQ0UscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0U7SUFDRSx1QkFBdUI7RUFDekI7RUFDQTtJQUNFLHlCQUF5QjtFQUMzQjtBQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLkFwcCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuXG5cblxuLkFwcC1sb2dvIHtcbiAgaGVpZ2h0OiA0MHZtaW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IG5vLXByZWZlcmVuY2UpIHtcbiAgLkFwcC1sb2dvIHtcbiAgICBhbmltYXRpb246IEFwcC1sb2dvLXNwaW4gaW5maW5pdGUgMjBzIGxpbmVhcjtcbiAgfVxufVxuXG4uQXBwLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyODJjMzQ7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiBjYWxjKDEwcHggKyAydm1pbik7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLkFwcC1saW5rIHtcbiAgY29sb3I6ICM2MWRhZmI7XG59XG5cbi5pa29uYSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLnRlbW5vIHtcbiAgY29sb3I6ICMxQTVGN0E7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xufVxuXG4uc3ZldGxvIHtcbiAgY29sb3I6ICM1N0M1QjY7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xufVxuXG4udGFiLWl0ZW0ge1xuXG59XG5cbi5pbWctbGluayB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuQGtleWZyYW1lcyBBcHAtbG9nby1zcGluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= */</style>
+    <style>@charset "UTF-8";
+    /*!
+ * Bootstrap  v5.3.0 (https://getbootstrap.com/)
+ * Copyright 2011-2023 The Bootstrap Authors
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+    :root,
+    [data-bs-theme=light] {
+        --bs-blue: #0d6efd;
+        --bs-indigo: #6610f2;
+        --bs-purple: #6f42c1;
+        --bs-pink: #d63384;
+        --bs-red: #dc3545;
+        --bs-orange: #fd7e14;
+        --bs-yellow: #ffc107;
+        --bs-green: #198754;
+        --bs-teal: #20c997;
+        --bs-cyan: #0dcaf0;
+        --bs-black: #000;
+        --bs-white: #fff;
+        --bs-gray: #6c757d;
+        --bs-gray-dark: #343a40;
+        --bs-gray-100: #f8f9fa;
+        --bs-gray-200: #e9ecef;
+        --bs-gray-300: #dee2e6;
+        --bs-gray-400: #ced4da;
+        --bs-gray-500: #adb5bd;
+        --bs-gray-600: #6c757d;
+        --bs-gray-700: #495057;
+        --bs-gray-800: #343a40;
+        --bs-gray-900: #212529;
+        --bs-primary: #0d6efd;
+        --bs-secondary: #6c757d;
+        --bs-success: #198754;
+        --bs-info: #0dcaf0;
+        --bs-warning: #ffc107;
+        --bs-danger: #dc3545;
+        --bs-light: #f8f9fa;
+        --bs-dark: #212529;
+        --bs-primary-rgb: 13, 110, 253;
+        --bs-secondary-rgb: 108, 117, 125;
+        --bs-success-rgb: 25, 135, 84;
+        --bs-info-rgb: 13, 202, 240;
+        --bs-warning-rgb: 255, 193, 7;
+        --bs-danger-rgb: 220, 53, 69;
+        --bs-light-rgb: 248, 249, 250;
+        --bs-dark-rgb: 33, 37, 41;
+        --bs-primary-text-emphasis: #052c65;
+        --bs-secondary-text-emphasis: #2b2f32;
+        --bs-success-text-emphasis: #0a3622;
+        --bs-info-text-emphasis: #055160;
+        --bs-warning-text-emphasis: #664d03;
+        --bs-danger-text-emphasis: #58151c;
+        --bs-light-text-emphasis: #495057;
+        --bs-dark-text-emphasis: #495057;
+        --bs-primary-bg-subtle: #cfe2ff;
+        --bs-secondary-bg-subtle: #e2e3e5;
+        --bs-success-bg-subtle: #d1e7dd;
+        --bs-info-bg-subtle: #cff4fc;
+        --bs-warning-bg-subtle: #fff3cd;
+        --bs-danger-bg-subtle: #f8d7da;
+        --bs-light-bg-subtle: #fcfcfd;
+        --bs-dark-bg-subtle: #ced4da;
+        --bs-primary-border-subtle: #9ec5fe;
+        --bs-secondary-border-subtle: #c4c8cb;
+        --bs-success-border-subtle: #a3cfbb;
+        --bs-info-border-subtle: #9eeaf9;
+        --bs-warning-border-subtle: #ffe69c;
+        --bs-danger-border-subtle: #f1aeb5;
+        --bs-light-border-subtle: #e9ecef;
+        --bs-dark-border-subtle: #adb5bd;
+        --bs-white-rgb: 255, 255, 255;
+        --bs-black-rgb: 0, 0, 0;
+        --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+        --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+        --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
+        --bs-body-font-family: var(--bs-font-sans-serif);
+        --bs-body-font-size: 1rem;
+        --bs-body-font-weight: 400;
+        --bs-body-line-height: 1.5;
+        --bs-body-color: #212529;
+        --bs-body-color-rgb: 33, 37, 41;
+        --bs-body-bg: #fff;
+        --bs-body-bg-rgb: 255, 255, 255;
+        --bs-emphasis-color: #000;
+        --bs-emphasis-color-rgb: 0, 0, 0;
+        --bs-secondary-color: rgba(33, 37, 41, 0.75);
+        --bs-secondary-color-rgb: 33, 37, 41;
+        --bs-secondary-bg: #e9ecef;
+        --bs-secondary-bg-rgb: 233, 236, 239;
+        --bs-tertiary-color: rgba(33, 37, 41, 0.5);
+        --bs-tertiary-color-rgb: 33, 37, 41;
+        --bs-tertiary-bg: #f8f9fa;
+        --bs-tertiary-bg-rgb: 248, 249, 250;
+        --bs-heading-color: inherit;
+        --bs-link-color: #0d6efd;
+        --bs-link-color-rgb: 13, 110, 253;
+        --bs-link-decoration: underline;
+        --bs-link-hover-color: #0a58ca;
+        --bs-link-hover-color-rgb: 10, 88, 202;
+        --bs-code-color: #d63384;
+        --bs-highlight-bg: #fff3cd;
+        --bs-border-width: 1px;
+        --bs-border-style: solid;
+        --bs-border-color: #dee2e6;
+        --bs-border-color-translucent: rgba(0, 0, 0, 0.175);
+        --bs-border-radius: 0.375rem;
+        --bs-border-radius-sm: 0.25rem;
+        --bs-border-radius-lg: 0.5rem;
+        --bs-border-radius-xl: 1rem;
+        --bs-border-radius-xxl: 2rem;
+        --bs-border-radius-2xl: var(--bs-border-radius-xxl);
+        --bs-border-radius-pill: 50rem;
+        --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+        --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
+        --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);
+        --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);
+        --bs-focus-ring-width: 0.25rem;
+        --bs-focus-ring-opacity: 0.25;
+        --bs-focus-ring-color: rgba(13, 110, 253, 0.25);
+        --bs-form-valid-color: #198754;
+        --bs-form-valid-border-color: #198754;
+        --bs-form-invalid-color: #dc3545;
+        --bs-form-invalid-border-color: #dc3545;
+    }
+
+    [data-bs-theme=dark] {
+        color-scheme: dark;
+        --bs-body-color: #adb5bd;
+        --bs-body-color-rgb: 173, 181, 189;
+        --bs-body-bg: #212529;
+        --bs-body-bg-rgb: 33, 37, 41;
+        --bs-emphasis-color: #fff;
+        --bs-emphasis-color-rgb: 255, 255, 255;
+        --bs-secondary-color: rgba(173, 181, 189, 0.75);
+        --bs-secondary-color-rgb: 173, 181, 189;
+        --bs-secondary-bg: #343a40;
+        --bs-secondary-bg-rgb: 52, 58, 64;
+        --bs-tertiary-color: rgba(173, 181, 189, 0.5);
+        --bs-tertiary-color-rgb: 173, 181, 189;
+        --bs-tertiary-bg: #2b3035;
+        --bs-tertiary-bg-rgb: 43, 48, 53;
+        --bs-primary-text-emphasis: #6ea8fe;
+        --bs-secondary-text-emphasis: #a7acb1;
+        --bs-success-text-emphasis: #75b798;
+        --bs-info-text-emphasis: #6edff6;
+        --bs-warning-text-emphasis: #ffda6a;
+        --bs-danger-text-emphasis: #ea868f;
+        --bs-light-text-emphasis: #f8f9fa;
+        --bs-dark-text-emphasis: #dee2e6;
+        --bs-primary-bg-subtle: #031633;
+        --bs-secondary-bg-subtle: #161719;
+        --bs-success-bg-subtle: #051b11;
+        --bs-info-bg-subtle: #032830;
+        --bs-warning-bg-subtle: #332701;
+        --bs-danger-bg-subtle: #2c0b0e;
+        --bs-light-bg-subtle: #343a40;
+        --bs-dark-bg-subtle: #1a1d20;
+        --bs-primary-border-subtle: #084298;
+        --bs-secondary-border-subtle: #41464b;
+        --bs-success-border-subtle: #0f5132;
+        --bs-info-border-subtle: #087990;
+        --bs-warning-border-subtle: #997404;
+        --bs-danger-border-subtle: #842029;
+        --bs-light-border-subtle: #495057;
+        --bs-dark-border-subtle: #343a40;
+        --bs-heading-color: inherit;
+        --bs-link-color: #6ea8fe;
+        --bs-link-hover-color: #8bb9fe;
+        --bs-link-color-rgb: 110, 168, 254;
+        --bs-link-hover-color-rgb: 139, 185, 254;
+        --bs-code-color: #e685b5;
+        --bs-border-color: #495057;
+        --bs-border-color-translucent: rgba(255, 255, 255, 0.15);
+        --bs-form-valid-color: #75b798;
+        --bs-form-valid-border-color: #75b798;
+        --bs-form-invalid-color: #ea868f;
+        --bs-form-invalid-border-color: #ea868f;
+    }
+
+    *,
+    *::before,
+    *::after {
+        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;
+        border: 0;
+        border-top: var(--bs-border-width) solid;
+        opacity: 0.25;
+    }
+
+    h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {
+        margin-top: 0;
+        margin-bottom: 0.5rem;
+        font-weight: 500;
+        line-height: 1.2;
+        color: var(--bs-heading-color);
+    }
+
+    h1, .h1 {
+        font-size: calc(1.375rem + 1.5vw);
+    }
+
+    @media (min-width: 1200px) {
+        h1, .h1 {
+            font-size: 2.5rem;
+        }
+    }
+
+    h2, .h2 {
+        font-size: calc(1.325rem + 0.9vw);
+    }
+
+    @media (min-width: 1200px) {
+        h2, .h2 {
+            font-size: 2rem;
+        }
+    }
+
+    h3, .h3 {
+        font-size: calc(1.3rem + 0.6vw);
+    }
+
+    @media (min-width: 1200px) {
+        h3, .h3 {
+            font-size: 1.75rem;
+        }
+    }
+
+    h4, .h4 {
+        font-size: calc(1.275rem + 0.3vw);
+    }
+
+    @media (min-width: 1200px) {
+        h4, .h4 {
+            font-size: 1.5rem;
+        }
+    }
+
+    h5, .h5 {
+        font-size: 1.25rem;
+    }
+
+    h6, .h6 {
+        font-size: 1rem;
+    }
+
+    p {
+        margin-top: 0;
+        margin-bottom: 1rem;
+    }
+
+    abbr[title] {
+        -webkit-text-decoration: underline dotted;
+        text-decoration: underline dotted;
+        cursor: help;
+        text-decoration-skip-ink: none;
+    }
+
+    address {
+        margin-bottom: 1rem;
+        font-style: normal;
+        line-height: inherit;
+    }
+
+    ol,
+    ul {
+        padding-left: 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-left: 0;
+    }
+
+    blockquote {
+        margin: 0 0 1rem;
+    }
+
+    b,
+    strong {
+        font-weight: bolder;
+    }
+
+    small, .small {
+        font-size: 0.875em;
+    }
+
+    mark, .mark {
+        padding: 0.1875em;
+        background-color: var(--bs-highlight-bg);
+    }
+
+    sub,
+    sup {
+        position: relative;
+        font-size: 0.75em;
+        line-height: 0;
+        vertical-align: baseline;
+    }
+
+    sub {
+        bottom: -0.25em;
+    }
+
+    sup {
+        top: -0.5em;
+    }
+
+    a {
+        color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));
+        text-decoration: underline;
+    }
+
+    a:hover {
+        --bs-link-color-rgb: var(--bs-link-hover-color-rgb);
+    }
+
+    a:not([href]):not([class]), a:not([href]):not([class]):hover {
+        color: inherit;
+        text-decoration: none;
+    }
+
+    pre,
+    code,
+    kbd,
+    samp {
+        font-family: var(--bs-font-monospace);
+        font-size: 1em;
+    }
+
+    pre {
+        display: block;
+        margin-top: 0;
+        margin-bottom: 1rem;
+        overflow: auto;
+        font-size: 0.875em;
+    }
+
+    pre code {
+        font-size: inherit;
+        color: inherit;
+        word-break: normal;
+    }
+
+    code {
+        font-size: 0.875em;
+        color: var(--bs-code-color);
+        word-wrap: break-word;
+    }
+
+    a > code {
+        color: inherit;
+    }
+
+    kbd {
+        padding: 0.1875rem 0.375rem;
+        font-size: 0.875em;
+        color: var(--bs-body-bg);
+        background-color: var(--bs-body-color);
+        border-radius: 0.25rem;
+    }
+
+    kbd kbd {
+        padding: 0;
+        font-size: 1em;
+    }
+
+    figure {
+        margin: 0 0 1rem;
+    }
+
+    img,
+    svg {
+        vertical-align: middle;
+    }
+
+    table {
+        caption-side: bottom;
+        border-collapse: collapse;
+    }
+
+    caption {
+        padding-top: 0.5rem;
+        padding-bottom: 0.5rem;
+        color: var(--bs-secondary-color);
+        text-align: left;
+    }
+
+    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]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {
+        display: none !important;
+    }
+
+    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: left;
+        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: left;
+    }
+
+    ::-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;
+    }
+
+    /* rtl:raw:
+[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-appearance: button;
+    }
+
+    output {
+        display: inline-block;
+    }
+
+    iframe {
+        border: 0;
+    }
+
+    summary {
+        display: list-item;
+        cursor: pointer;
+    }
+
+    progress {
+        vertical-align: baseline;
+    }
+
+    [hidden] {
+        display: none !important;
+    }
+
+    .lead {
+        font-size: 1.25rem;
+        font-weight: 300;
+    }
+
+    .display-1 {
+        font-size: calc(1.625rem + 4.5vw);
+        font-weight: 300;
+        line-height: 1.2;
+    }
+
+    @media (min-width: 1200px) {
+        .display-1 {
+            font-size: 5rem;
+        }
+    }
+
+    .display-2 {
+        font-size: calc(1.575rem + 3.9vw);
+        font-weight: 300;
+        line-height: 1.2;
+    }
+
+    @media (min-width: 1200px) {
+        .display-2 {
+            font-size: 4.5rem;
+        }
+    }
+
+    .display-3 {
+        font-size: calc(1.525rem + 3.3vw);
+        font-weight: 300;
+        line-height: 1.2;
+    }
+
+    @media (min-width: 1200px) {
+        .display-3 {
+            font-size: 4rem;
+        }
+    }
+
+    .display-4 {
+        font-size: calc(1.475rem + 2.7vw);
+        font-weight: 300;
+        line-height: 1.2;
+    }
+
+    @media (min-width: 1200px) {
+        .display-4 {
+            font-size: 3.5rem;
+        }
+    }
+
+    .display-5 {
+        font-size: calc(1.425rem + 2.1vw);
+        font-weight: 300;
+        line-height: 1.2;
+    }
+
+    @media (min-width: 1200px) {
+        .display-5 {
+            font-size: 3rem;
+        }
+    }
+
+    .display-6 {
+        font-size: calc(1.375rem + 1.5vw);
+        font-weight: 300;
+        line-height: 1.2;
+    }
+
+    @media (min-width: 1200px) {
+        .display-6 {
+            font-size: 2.5rem;
+        }
+    }
+
+    .list-unstyled {
+        padding-left: 0;
+        list-style: none;
+    }
+
+    .list-inline {
+        padding-left: 0;
+        list-style: none;
+    }
+
+    .list-inline-item {
+        display: inline-block;
+    }
+
+    .list-inline-item:not(:last-child) {
+        margin-right: 0.5rem;
+    }
+
+    .initialism {
+        font-size: 0.875em;
+        text-transform: uppercase;
+    }
+
+    .blockquote {
+        margin-bottom: 1rem;
+        font-size: 1.25rem;
+    }
+
+    .blockquote > :last-child {
+        margin-bottom: 0;
+    }
+
+    .blockquote-footer {
+        margin-top: -1rem;
+        margin-bottom: 1rem;
+        font-size: 0.875em;
+        color: #6c757d;
+    }
+
+    .blockquote-footer::before {
+        content: "— ";
+    }
+
+    .img-fluid {
+        max-width: 100%;
+        height: auto;
+    }
+
+    .img-thumbnail {
+        padding: 0.25rem;
+        background-color: var(--bs-body-bg);
+        border: var(--bs-border-width) solid var(--bs-border-color);
+        border-radius: var(--bs-border-radius);
+        max-width: 100%;
+        height: auto;
+    }
+
+    .figure {
+        display: inline-block;
+    }
+
+    .figure-img {
+        margin-bottom: 0.5rem;
+        line-height: 1;
+    }
+
+    .figure-caption {
+        font-size: 0.875em;
+        color: var(--bs-secondary-color);
+    }
+
+    .container,
+    .container-fluid,
+    .container-xxl,
+    .container-xl,
+    .container-lg,
+    .container-md,
+    .container-sm {
+        --bs-gutter-x: 1.5rem;
+        --bs-gutter-y: 0;
+        width: 100%;
+        padding-right: calc(var(--bs-gutter-x) * 0.5);
+        padding-left: calc(var(--bs-gutter-x) * 0.5);
+        margin-right: auto;
+        margin-left: 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;
+        }
+    }
+
+    :root {
+        --bs-breakpoint-xs: 0;
+        --bs-breakpoint-sm: 576px;
+        --bs-breakpoint-md: 768px;
+        --bs-breakpoint-lg: 992px;
+        --bs-breakpoint-xl: 1200px;
+        --bs-breakpoint-xxl: 1400px;
+    }
+
+    .row {
+        --bs-gutter-x: 1.5rem;
+        --bs-gutter-y: 0;
+        display: flex;
+        flex-wrap: wrap;
+        margin-top: calc(-1 * var(--bs-gutter-y));
+        margin-right: calc(-0.5 * var(--bs-gutter-x));
+        margin-left: calc(-0.5 * var(--bs-gutter-x));
+    }
+
+    .row > * {
+        flex-shrink: 0;
+        width: 100%;
+        max-width: 100%;
+        padding-right: calc(var(--bs-gutter-x) * 0.5);
+        padding-left: calc(var(--bs-gutter-x) * 0.5);
+        margin-top: var(--bs-gutter-y);
+    }
+
+    .col {
+        flex: 1 0;
+    }
+
+    .row-cols-auto > * {
+        flex: 0 0 auto;
+        width: auto;
+    }
+
+    .row-cols-1 > * {
+        flex: 0 0 auto;
+        width: 100%;
+    }
+
+    .row-cols-2 > * {
+        flex: 0 0 auto;
+        width: 50%;
+    }
+
+    .row-cols-3 > * {
+        flex: 0 0 auto;
+        width: 33.3333333333%;
+    }
+
+    .row-cols-4 > * {
+        flex: 0 0 auto;
+        width: 25%;
+    }
+
+    .row-cols-5 > * {
+        flex: 0 0 auto;
+        width: 20%;
+    }
+
+    .row-cols-6 > * {
+        flex: 0 0 auto;
+        width: 16.6666666667%;
+    }
+
+    .col-auto {
+        flex: 0 0 auto;
+        width: auto;
+    }
+
+    .col-1 {
+        flex: 0 0 auto;
+        width: 8.33333333%;
+    }
+
+    .col-2 {
+        flex: 0 0 auto;
+        width: 16.66666667%;
+    }
+
+    .col-3 {
+        flex: 0 0 auto;
+        width: 25%;
+    }
+
+    .col-4 {
+        flex: 0 0 auto;
+        width: 33.33333333%;
+    }
+
+    .col-5 {
+        flex: 0 0 auto;
+        width: 41.66666667%;
+    }
+
+    .col-6 {
+        flex: 0 0 auto;
+        width: 50%;
+    }
+
+    .col-7 {
+        flex: 0 0 auto;
+        width: 58.33333333%;
+    }
+
+    .col-8 {
+        flex: 0 0 auto;
+        width: 66.66666667%;
+    }
+
+    .col-9 {
+        flex: 0 0 auto;
+        width: 75%;
+    }
+
+    .col-10 {
+        flex: 0 0 auto;
+        width: 83.33333333%;
+    }
+
+    .col-11 {
+        flex: 0 0 auto;
+        width: 91.66666667%;
+    }
+
+    .col-12 {
+        flex: 0 0 auto;
+        width: 100%;
+    }
+
+    .offset-1 {
+        margin-left: 8.33333333%;
+    }
+
+    .offset-2 {
+        margin-left: 16.66666667%;
+    }
+
+    .offset-3 {
+        margin-left: 25%;
+    }
+
+    .offset-4 {
+        margin-left: 33.33333333%;
+    }
+
+    .offset-5 {
+        margin-left: 41.66666667%;
+    }
+
+    .offset-6 {
+        margin-left: 50%;
+    }
+
+    .offset-7 {
+        margin-left: 58.33333333%;
+    }
+
+    .offset-8 {
+        margin-left: 66.66666667%;
+    }
+
+    .offset-9 {
+        margin-left: 75%;
+    }
+
+    .offset-10 {
+        margin-left: 83.33333333%;
+    }
+
+    .offset-11 {
+        margin-left: 91.66666667%;
+    }
+
+    .g-0,
+    .gx-0 {
+        --bs-gutter-x: 0;
+    }
+
+    .g-0,
+    .gy-0 {
+        --bs-gutter-y: 0;
+    }
+
+    .g-1,
+    .gx-1 {
+        --bs-gutter-x: 0.25rem;
+    }
+
+    .g-1,
+    .gy-1 {
+        --bs-gutter-y: 0.25rem;
+    }
+
+    .g-2,
+    .gx-2 {
+        --bs-gutter-x: 0.5rem;
+    }
+
+    .g-2,
+    .gy-2 {
+        --bs-gutter-y: 0.5rem;
+    }
+
+    .g-3,
+    .gx-3 {
+        --bs-gutter-x: 1rem;
+    }
+
+    .g-3,
+    .gy-3 {
+        --bs-gutter-y: 1rem;
+    }
+
+    .g-4,
+    .gx-4 {
+        --bs-gutter-x: 1.5rem;
+    }
+
+    .g-4,
+    .gy-4 {
+        --bs-gutter-y: 1.5rem;
+    }
+
+    .g-5,
+    .gx-5 {
+        --bs-gutter-x: 3rem;
+    }
+
+    .g-5,
+    .gy-5 {
+        --bs-gutter-y: 3rem;
+    }
+
+    @media (min-width: 576px) {
+        .col-sm {
+            flex: 1 0;
+        }
+
+        .row-cols-sm-auto > * {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .row-cols-sm-1 > * {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .row-cols-sm-2 > * {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .row-cols-sm-3 > * {
+            flex: 0 0 auto;
+            width: 33.3333333333%;
+        }
+
+        .row-cols-sm-4 > * {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .row-cols-sm-5 > * {
+            flex: 0 0 auto;
+            width: 20%;
+        }
+
+        .row-cols-sm-6 > * {
+            flex: 0 0 auto;
+            width: 16.6666666667%;
+        }
+
+        .col-sm-auto {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .col-sm-1 {
+            flex: 0 0 auto;
+            width: 8.33333333%;
+        }
+
+        .col-sm-2 {
+            flex: 0 0 auto;
+            width: 16.66666667%;
+        }
+
+        .col-sm-3 {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .col-sm-4 {
+            flex: 0 0 auto;
+            width: 33.33333333%;
+        }
+
+        .col-sm-5 {
+            flex: 0 0 auto;
+            width: 41.66666667%;
+        }
+
+        .col-sm-6 {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .col-sm-7 {
+            flex: 0 0 auto;
+            width: 58.33333333%;
+        }
+
+        .col-sm-8 {
+            flex: 0 0 auto;
+            width: 66.66666667%;
+        }
+
+        .col-sm-9 {
+            flex: 0 0 auto;
+            width: 75%;
+        }
+
+        .col-sm-10 {
+            flex: 0 0 auto;
+            width: 83.33333333%;
+        }
+
+        .col-sm-11 {
+            flex: 0 0 auto;
+            width: 91.66666667%;
+        }
+
+        .col-sm-12 {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .offset-sm-0 {
+            margin-left: 0;
+        }
+
+        .offset-sm-1 {
+            margin-left: 8.33333333%;
+        }
+
+        .offset-sm-2 {
+            margin-left: 16.66666667%;
+        }
+
+        .offset-sm-3 {
+            margin-left: 25%;
+        }
+
+        .offset-sm-4 {
+            margin-left: 33.33333333%;
+        }
+
+        .offset-sm-5 {
+            margin-left: 41.66666667%;
+        }
+
+        .offset-sm-6 {
+            margin-left: 50%;
+        }
+
+        .offset-sm-7 {
+            margin-left: 58.33333333%;
+        }
+
+        .offset-sm-8 {
+            margin-left: 66.66666667%;
+        }
+
+        .offset-sm-9 {
+            margin-left: 75%;
+        }
+
+        .offset-sm-10 {
+            margin-left: 83.33333333%;
+        }
+
+        .offset-sm-11 {
+            margin-left: 91.66666667%;
+        }
+
+        .g-sm-0,
+        .gx-sm-0 {
+            --bs-gutter-x: 0;
+        }
+
+        .g-sm-0,
+        .gy-sm-0 {
+            --bs-gutter-y: 0;
+        }
+
+        .g-sm-1,
+        .gx-sm-1 {
+            --bs-gutter-x: 0.25rem;
+        }
+
+        .g-sm-1,
+        .gy-sm-1 {
+            --bs-gutter-y: 0.25rem;
+        }
+
+        .g-sm-2,
+        .gx-sm-2 {
+            --bs-gutter-x: 0.5rem;
+        }
+
+        .g-sm-2,
+        .gy-sm-2 {
+            --bs-gutter-y: 0.5rem;
+        }
+
+        .g-sm-3,
+        .gx-sm-3 {
+            --bs-gutter-x: 1rem;
+        }
+
+        .g-sm-3,
+        .gy-sm-3 {
+            --bs-gutter-y: 1rem;
+        }
+
+        .g-sm-4,
+        .gx-sm-4 {
+            --bs-gutter-x: 1.5rem;
+        }
+
+        .g-sm-4,
+        .gy-sm-4 {
+            --bs-gutter-y: 1.5rem;
+        }
+
+        .g-sm-5,
+        .gx-sm-5 {
+            --bs-gutter-x: 3rem;
+        }
+
+        .g-sm-5,
+        .gy-sm-5 {
+            --bs-gutter-y: 3rem;
+        }
+    }
+
+    @media (min-width: 768px) {
+        .col-md {
+            flex: 1 0;
+        }
+
+        .row-cols-md-auto > * {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .row-cols-md-1 > * {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .row-cols-md-2 > * {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .row-cols-md-3 > * {
+            flex: 0 0 auto;
+            width: 33.3333333333%;
+        }
+
+        .row-cols-md-4 > * {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .row-cols-md-5 > * {
+            flex: 0 0 auto;
+            width: 20%;
+        }
+
+        .row-cols-md-6 > * {
+            flex: 0 0 auto;
+            width: 16.6666666667%;
+        }
+
+        .col-md-auto {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .col-md-1 {
+            flex: 0 0 auto;
+            width: 8.33333333%;
+        }
+
+        .col-md-2 {
+            flex: 0 0 auto;
+            width: 16.66666667%;
+        }
+
+        .col-md-3 {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .col-md-4 {
+            flex: 0 0 auto;
+            width: 33.33333333%;
+        }
+
+        .col-md-5 {
+            flex: 0 0 auto;
+            width: 41.66666667%;
+        }
+
+        .col-md-6 {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .col-md-7 {
+            flex: 0 0 auto;
+            width: 58.33333333%;
+        }
+
+        .col-md-8 {
+            flex: 0 0 auto;
+            width: 66.66666667%;
+        }
+
+        .col-md-9 {
+            flex: 0 0 auto;
+            width: 75%;
+        }
+
+        .col-md-10 {
+            flex: 0 0 auto;
+            width: 83.33333333%;
+        }
+
+        .col-md-11 {
+            flex: 0 0 auto;
+            width: 91.66666667%;
+        }
+
+        .col-md-12 {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .offset-md-0 {
+            margin-left: 0;
+        }
+
+        .offset-md-1 {
+            margin-left: 8.33333333%;
+        }
+
+        .offset-md-2 {
+            margin-left: 16.66666667%;
+        }
+
+        .offset-md-3 {
+            margin-left: 25%;
+        }
+
+        .offset-md-4 {
+            margin-left: 33.33333333%;
+        }
+
+        .offset-md-5 {
+            margin-left: 41.66666667%;
+        }
+
+        .offset-md-6 {
+            margin-left: 50%;
+        }
+
+        .offset-md-7 {
+            margin-left: 58.33333333%;
+        }
+
+        .offset-md-8 {
+            margin-left: 66.66666667%;
+        }
+
+        .offset-md-9 {
+            margin-left: 75%;
+        }
+
+        .offset-md-10 {
+            margin-left: 83.33333333%;
+        }
+
+        .offset-md-11 {
+            margin-left: 91.66666667%;
+        }
+
+        .g-md-0,
+        .gx-md-0 {
+            --bs-gutter-x: 0;
+        }
+
+        .g-md-0,
+        .gy-md-0 {
+            --bs-gutter-y: 0;
+        }
+
+        .g-md-1,
+        .gx-md-1 {
+            --bs-gutter-x: 0.25rem;
+        }
+
+        .g-md-1,
+        .gy-md-1 {
+            --bs-gutter-y: 0.25rem;
+        }
+
+        .g-md-2,
+        .gx-md-2 {
+            --bs-gutter-x: 0.5rem;
+        }
+
+        .g-md-2,
+        .gy-md-2 {
+            --bs-gutter-y: 0.5rem;
+        }
+
+        .g-md-3,
+        .gx-md-3 {
+            --bs-gutter-x: 1rem;
+        }
+
+        .g-md-3,
+        .gy-md-3 {
+            --bs-gutter-y: 1rem;
+        }
+
+        .g-md-4,
+        .gx-md-4 {
+            --bs-gutter-x: 1.5rem;
+        }
+
+        .g-md-4,
+        .gy-md-4 {
+            --bs-gutter-y: 1.5rem;
+        }
+
+        .g-md-5,
+        .gx-md-5 {
+            --bs-gutter-x: 3rem;
+        }
+
+        .g-md-5,
+        .gy-md-5 {
+            --bs-gutter-y: 3rem;
+        }
+    }
+
+    @media (min-width: 992px) {
+        .col-lg {
+            flex: 1 0;
+        }
+
+        .row-cols-lg-auto > * {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .row-cols-lg-1 > * {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .row-cols-lg-2 > * {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .row-cols-lg-3 > * {
+            flex: 0 0 auto;
+            width: 33.3333333333%;
+        }
+
+        .row-cols-lg-4 > * {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .row-cols-lg-5 > * {
+            flex: 0 0 auto;
+            width: 20%;
+        }
+
+        .row-cols-lg-6 > * {
+            flex: 0 0 auto;
+            width: 16.6666666667%;
+        }
+
+        .col-lg-auto {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .col-lg-1 {
+            flex: 0 0 auto;
+            width: 8.33333333%;
+        }
+
+        .col-lg-2 {
+            flex: 0 0 auto;
+            width: 16.66666667%;
+        }
+
+        .col-lg-3 {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .col-lg-4 {
+            flex: 0 0 auto;
+            width: 33.33333333%;
+        }
+
+        .col-lg-5 {
+            flex: 0 0 auto;
+            width: 41.66666667%;
+        }
+
+        .col-lg-6 {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .col-lg-7 {
+            flex: 0 0 auto;
+            width: 58.33333333%;
+        }
+
+        .col-lg-8 {
+            flex: 0 0 auto;
+            width: 66.66666667%;
+        }
+
+        .col-lg-9 {
+            flex: 0 0 auto;
+            width: 75%;
+        }
+
+        .col-lg-10 {
+            flex: 0 0 auto;
+            width: 83.33333333%;
+        }
+
+        .col-lg-11 {
+            flex: 0 0 auto;
+            width: 91.66666667%;
+        }
+
+        .col-lg-12 {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .offset-lg-0 {
+            margin-left: 0;
+        }
+
+        .offset-lg-1 {
+            margin-left: 8.33333333%;
+        }
+
+        .offset-lg-2 {
+            margin-left: 16.66666667%;
+        }
+
+        .offset-lg-3 {
+            margin-left: 25%;
+        }
+
+        .offset-lg-4 {
+            margin-left: 33.33333333%;
+        }
+
+        .offset-lg-5 {
+            margin-left: 41.66666667%;
+        }
+
+        .offset-lg-6 {
+            margin-left: 50%;
+        }
+
+        .offset-lg-7 {
+            margin-left: 58.33333333%;
+        }
+
+        .offset-lg-8 {
+            margin-left: 66.66666667%;
+        }
+
+        .offset-lg-9 {
+            margin-left: 75%;
+        }
+
+        .offset-lg-10 {
+            margin-left: 83.33333333%;
+        }
+
+        .offset-lg-11 {
+            margin-left: 91.66666667%;
+        }
+
+        .g-lg-0,
+        .gx-lg-0 {
+            --bs-gutter-x: 0;
+        }
+
+        .g-lg-0,
+        .gy-lg-0 {
+            --bs-gutter-y: 0;
+        }
+
+        .g-lg-1,
+        .gx-lg-1 {
+            --bs-gutter-x: 0.25rem;
+        }
+
+        .g-lg-1,
+        .gy-lg-1 {
+            --bs-gutter-y: 0.25rem;
+        }
+
+        .g-lg-2,
+        .gx-lg-2 {
+            --bs-gutter-x: 0.5rem;
+        }
+
+        .g-lg-2,
+        .gy-lg-2 {
+            --bs-gutter-y: 0.5rem;
+        }
+
+        .g-lg-3,
+        .gx-lg-3 {
+            --bs-gutter-x: 1rem;
+        }
+
+        .g-lg-3,
+        .gy-lg-3 {
+            --bs-gutter-y: 1rem;
+        }
+
+        .g-lg-4,
+        .gx-lg-4 {
+            --bs-gutter-x: 1.5rem;
+        }
+
+        .g-lg-4,
+        .gy-lg-4 {
+            --bs-gutter-y: 1.5rem;
+        }
+
+        .g-lg-5,
+        .gx-lg-5 {
+            --bs-gutter-x: 3rem;
+        }
+
+        .g-lg-5,
+        .gy-lg-5 {
+            --bs-gutter-y: 3rem;
+        }
+    }
+
+    @media (min-width: 1200px) {
+        .col-xl {
+            flex: 1 0;
+        }
+
+        .row-cols-xl-auto > * {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .row-cols-xl-1 > * {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .row-cols-xl-2 > * {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .row-cols-xl-3 > * {
+            flex: 0 0 auto;
+            width: 33.3333333333%;
+        }
+
+        .row-cols-xl-4 > * {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .row-cols-xl-5 > * {
+            flex: 0 0 auto;
+            width: 20%;
+        }
+
+        .row-cols-xl-6 > * {
+            flex: 0 0 auto;
+            width: 16.6666666667%;
+        }
+
+        .col-xl-auto {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .col-xl-1 {
+            flex: 0 0 auto;
+            width: 8.33333333%;
+        }
+
+        .col-xl-2 {
+            flex: 0 0 auto;
+            width: 16.66666667%;
+        }
+
+        .col-xl-3 {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .col-xl-4 {
+            flex: 0 0 auto;
+            width: 33.33333333%;
+        }
+
+        .col-xl-5 {
+            flex: 0 0 auto;
+            width: 41.66666667%;
+        }
+
+        .col-xl-6 {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .col-xl-7 {
+            flex: 0 0 auto;
+            width: 58.33333333%;
+        }
+
+        .col-xl-8 {
+            flex: 0 0 auto;
+            width: 66.66666667%;
+        }
+
+        .col-xl-9 {
+            flex: 0 0 auto;
+            width: 75%;
+        }
+
+        .col-xl-10 {
+            flex: 0 0 auto;
+            width: 83.33333333%;
+        }
+
+        .col-xl-11 {
+            flex: 0 0 auto;
+            width: 91.66666667%;
+        }
+
+        .col-xl-12 {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .offset-xl-0 {
+            margin-left: 0;
+        }
+
+        .offset-xl-1 {
+            margin-left: 8.33333333%;
+        }
+
+        .offset-xl-2 {
+            margin-left: 16.66666667%;
+        }
+
+        .offset-xl-3 {
+            margin-left: 25%;
+        }
+
+        .offset-xl-4 {
+            margin-left: 33.33333333%;
+        }
+
+        .offset-xl-5 {
+            margin-left: 41.66666667%;
+        }
+
+        .offset-xl-6 {
+            margin-left: 50%;
+        }
+
+        .offset-xl-7 {
+            margin-left: 58.33333333%;
+        }
+
+        .offset-xl-8 {
+            margin-left: 66.66666667%;
+        }
+
+        .offset-xl-9 {
+            margin-left: 75%;
+        }
+
+        .offset-xl-10 {
+            margin-left: 83.33333333%;
+        }
+
+        .offset-xl-11 {
+            margin-left: 91.66666667%;
+        }
+
+        .g-xl-0,
+        .gx-xl-0 {
+            --bs-gutter-x: 0;
+        }
+
+        .g-xl-0,
+        .gy-xl-0 {
+            --bs-gutter-y: 0;
+        }
+
+        .g-xl-1,
+        .gx-xl-1 {
+            --bs-gutter-x: 0.25rem;
+        }
+
+        .g-xl-1,
+        .gy-xl-1 {
+            --bs-gutter-y: 0.25rem;
+        }
+
+        .g-xl-2,
+        .gx-xl-2 {
+            --bs-gutter-x: 0.5rem;
+        }
+
+        .g-xl-2,
+        .gy-xl-2 {
+            --bs-gutter-y: 0.5rem;
+        }
+
+        .g-xl-3,
+        .gx-xl-3 {
+            --bs-gutter-x: 1rem;
+        }
+
+        .g-xl-3,
+        .gy-xl-3 {
+            --bs-gutter-y: 1rem;
+        }
+
+        .g-xl-4,
+        .gx-xl-4 {
+            --bs-gutter-x: 1.5rem;
+        }
+
+        .g-xl-4,
+        .gy-xl-4 {
+            --bs-gutter-y: 1.5rem;
+        }
+
+        .g-xl-5,
+        .gx-xl-5 {
+            --bs-gutter-x: 3rem;
+        }
+
+        .g-xl-5,
+        .gy-xl-5 {
+            --bs-gutter-y: 3rem;
+        }
+    }
+
+    @media (min-width: 1400px) {
+        .col-xxl {
+            flex: 1 0;
+        }
+
+        .row-cols-xxl-auto > * {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .row-cols-xxl-1 > * {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .row-cols-xxl-2 > * {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .row-cols-xxl-3 > * {
+            flex: 0 0 auto;
+            width: 33.3333333333%;
+        }
+
+        .row-cols-xxl-4 > * {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .row-cols-xxl-5 > * {
+            flex: 0 0 auto;
+            width: 20%;
+        }
+
+        .row-cols-xxl-6 > * {
+            flex: 0 0 auto;
+            width: 16.6666666667%;
+        }
+
+        .col-xxl-auto {
+            flex: 0 0 auto;
+            width: auto;
+        }
+
+        .col-xxl-1 {
+            flex: 0 0 auto;
+            width: 8.33333333%;
+        }
+
+        .col-xxl-2 {
+            flex: 0 0 auto;
+            width: 16.66666667%;
+        }
+
+        .col-xxl-3 {
+            flex: 0 0 auto;
+            width: 25%;
+        }
+
+        .col-xxl-4 {
+            flex: 0 0 auto;
+            width: 33.33333333%;
+        }
+
+        .col-xxl-5 {
+            flex: 0 0 auto;
+            width: 41.66666667%;
+        }
+
+        .col-xxl-6 {
+            flex: 0 0 auto;
+            width: 50%;
+        }
+
+        .col-xxl-7 {
+            flex: 0 0 auto;
+            width: 58.33333333%;
+        }
+
+        .col-xxl-8 {
+            flex: 0 0 auto;
+            width: 66.66666667%;
+        }
+
+        .col-xxl-9 {
+            flex: 0 0 auto;
+            width: 75%;
+        }
+
+        .col-xxl-10 {
+            flex: 0 0 auto;
+            width: 83.33333333%;
+        }
+
+        .col-xxl-11 {
+            flex: 0 0 auto;
+            width: 91.66666667%;
+        }
+
+        .col-xxl-12 {
+            flex: 0 0 auto;
+            width: 100%;
+        }
+
+        .offset-xxl-0 {
+            margin-left: 0;
+        }
+
+        .offset-xxl-1 {
+            margin-left: 8.33333333%;
+        }
+
+        .offset-xxl-2 {
+            margin-left: 16.66666667%;
+        }
+
+        .offset-xxl-3 {
+            margin-left: 25%;
+        }
+
+        .offset-xxl-4 {
+            margin-left: 33.33333333%;
+        }
+
+        .offset-xxl-5 {
+            margin-left: 41.66666667%;
+        }
+
+        .offset-xxl-6 {
+            margin-left: 50%;
+        }
+
+        .offset-xxl-7 {
+            margin-left: 58.33333333%;
+        }
+
+        .offset-xxl-8 {
+            margin-left: 66.66666667%;
+        }
+
+        .offset-xxl-9 {
+            margin-left: 75%;
+        }
+
+        .offset-xxl-10 {
+            margin-left: 83.33333333%;
+        }
+
+        .offset-xxl-11 {
+            margin-left: 91.66666667%;
+        }
+
+        .g-xxl-0,
+        .gx-xxl-0 {
+            --bs-gutter-x: 0;
+        }
+
+        .g-xxl-0,
+        .gy-xxl-0 {
+            --bs-gutter-y: 0;
+        }
+
+        .g-xxl-1,
+        .gx-xxl-1 {
+            --bs-gutter-x: 0.25rem;
+        }
+
+        .g-xxl-1,
+        .gy-xxl-1 {
+            --bs-gutter-y: 0.25rem;
+        }
+
+        .g-xxl-2,
+        .gx-xxl-2 {
+            --bs-gutter-x: 0.5rem;
+        }
+
+        .g-xxl-2,
+        .gy-xxl-2 {
+            --bs-gutter-y: 0.5rem;
+        }
+
+        .g-xxl-3,
+        .gx-xxl-3 {
+            --bs-gutter-x: 1rem;
+        }
+
+        .g-xxl-3,
+        .gy-xxl-3 {
+            --bs-gutter-y: 1rem;
+        }
+
+        .g-xxl-4,
+        .gx-xxl-4 {
+            --bs-gutter-x: 1.5rem;
+        }
+
+        .g-xxl-4,
+        .gy-xxl-4 {
+            --bs-gutter-y: 1.5rem;
+        }
+
+        .g-xxl-5,
+        .gx-xxl-5 {
+            --bs-gutter-x: 3rem;
+        }
+
+        .g-xxl-5,
+        .gy-xxl-5 {
+            --bs-gutter-y: 3rem;
+        }
+    }
+
+    .table {
+        --bs-table-color-type: initial;
+        --bs-table-bg-type: initial;
+        --bs-table-color-state: initial;
+        --bs-table-bg-state: initial;
+        --bs-table-color: var(--bs-body-color);
+        --bs-table-bg: var(--bs-body-bg);
+        --bs-table-border-color: var(--bs-border-color);
+        --bs-table-accent-bg: transparent;
+        --bs-table-striped-color: var(--bs-body-color);
+        --bs-table-striped-bg: rgba(0, 0, 0, 0.05);
+        --bs-table-active-color: var(--bs-body-color);
+        --bs-table-active-bg: rgba(0, 0, 0, 0.1);
+        --bs-table-hover-color: var(--bs-body-color);
+        --bs-table-hover-bg: rgba(0, 0, 0, 0.075);
+        width: 100%;
+        margin-bottom: 1rem;
+        vertical-align: top;
+        border-color: var(--bs-table-border-color);
+    }
+
+    .table > :not(caption) > * > * {
+        padding: 0.5rem 0.5rem;
+        color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));
+        background-color: var(--bs-table-bg);
+        border-bottom-width: var(--bs-border-width);
+        box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)));
+    }
+
+    .table > tbody {
+        vertical-align: inherit;
+    }
+
+    .table > thead {
+        vertical-align: bottom;
+    }
+
+    .table-group-divider {
+        border-top: calc(var(--bs-border-width) * 2) solid currentcolor;
+    }
+
+    .caption-top {
+        caption-side: top;
+    }
+
+    .table-sm > :not(caption) > * > * {
+        padding: 0.25rem 0.25rem;
+    }
+
+    .table-bordered > :not(caption) > * {
+        border-width: var(--bs-border-width) 0;
+    }
+
+    .table-bordered > :not(caption) > * > * {
+        border-width: 0 var(--bs-border-width);
+    }
+
+    .table-borderless > :not(caption) > * > * {
+        border-bottom-width: 0;
+    }
+
+    .table-borderless > :not(:first-child) {
+        border-top-width: 0;
+    }
+
+    .table-striped > tbody > tr:nth-of-type(odd) > * {
+        --bs-table-color-type: var(--bs-table-striped-color);
+        --bs-table-bg-type: var(--bs-table-striped-bg);
+    }
+
+    .table-striped-columns > :not(caption) > tr > :nth-child(even) {
+        --bs-table-color-type: var(--bs-table-striped-color);
+        --bs-table-bg-type: var(--bs-table-striped-bg);
+    }
+
+    .table-active {
+        --bs-table-color-state: var(--bs-table-active-color);
+        --bs-table-bg-state: var(--bs-table-active-bg);
+    }
+
+    .table-hover > tbody > tr:hover > * {
+        --bs-table-color-state: var(--bs-table-hover-color);
+        --bs-table-bg-state: var(--bs-table-hover-bg);
+    }
+
+    .table-primary {
+        --bs-table-color: #000;
+        --bs-table-bg: #cfe2ff;
+        --bs-table-border-color: #bacbe6;
+        --bs-table-striped-bg: #c5d7f2;
+        --bs-table-striped-color: #000;
+        --bs-table-active-bg: #bacbe6;
+        --bs-table-active-color: #000;
+        --bs-table-hover-bg: #bfd1ec;
+        --bs-table-hover-color: #000;
+        color: var(--bs-table-color);
+        border-color: var(--bs-table-border-color);
+    }
+
+    .table-secondary {
+        --bs-table-color: #000;
+        --bs-table-bg: #e2e3e5;
+        --bs-table-border-color: #cbccce;
+        --bs-table-striped-bg: #d7d8da;
+        --bs-table-striped-color: #000;
+        --bs-table-active-bg: #cbccce;
+        --bs-table-active-color: #000;
+        --bs-table-hover-bg: #d1d2d4;
+        --bs-table-hover-color: #000;
+        color: var(--bs-table-color);
+        border-color: var(--bs-table-border-color);
+    }
+
+    .table-success {
+        --bs-table-color: #000;
+        --bs-table-bg: #d1e7dd;
+        --bs-table-border-color: #bcd0c7;
+        --bs-table-striped-bg: #c7dbd2;
+        --bs-table-striped-color: #000;
+        --bs-table-active-bg: #bcd0c7;
+        --bs-table-active-color: #000;
+        --bs-table-hover-bg: #c1d6cc;
+        --bs-table-hover-color: #000;
+        color: var(--bs-table-color);
+        border-color: var(--bs-table-border-color);
+    }
+
+    .table-info {
+        --bs-table-color: #000;
+        --bs-table-bg: #cff4fc;
+        --bs-table-border-color: #badce3;
+        --bs-table-striped-bg: #c5e8ef;
+        --bs-table-striped-color: #000;
+        --bs-table-active-bg: #badce3;
+        --bs-table-active-color: #000;
+        --bs-table-hover-bg: #bfe2e9;
+        --bs-table-hover-color: #000;
+        color: var(--bs-table-color);
+        border-color: var(--bs-table-border-color);
+    }
+
+    .table-warning {
+        --bs-table-color: #000;
+        --bs-table-bg: #fff3cd;
+        --bs-table-border-color: #e6dbb9;
+        --bs-table-striped-bg: #f2e7c3;
+        --bs-table-striped-color: #000;
+        --bs-table-active-bg: #e6dbb9;
+        --bs-table-active-color: #000;
+        --bs-table-hover-bg: #ece1be;
+        --bs-table-hover-color: #000;
+        color: var(--bs-table-color);
+        border-color: var(--bs-table-border-color);
+    }
+
+    .table-danger {
+        --bs-table-color: #000;
+        --bs-table-bg: #f8d7da;
+        --bs-table-border-color: #dfc2c4;
+        --bs-table-striped-bg: #eccccf;
+        --bs-table-striped-color: #000;
+        --bs-table-active-bg: #dfc2c4;
+        --bs-table-active-color: #000;
+        --bs-table-hover-bg: #e5c7ca;
+        --bs-table-hover-color: #000;
+        color: var(--bs-table-color);
+        border-color: var(--bs-table-border-color);
+    }
+
+    .table-light {
+        --bs-table-color: #000;
+        --bs-table-bg: #f8f9fa;
+        --bs-table-border-color: #dfe0e1;
+        --bs-table-striped-bg: #ecedee;
+        --bs-table-striped-color: #000;
+        --bs-table-active-bg: #dfe0e1;
+        --bs-table-active-color: #000;
+        --bs-table-hover-bg: #e5e6e7;
+        --bs-table-hover-color: #000;
+        color: var(--bs-table-color);
+        border-color: var(--bs-table-border-color);
+    }
+
+    .table-dark {
+        --bs-table-color: #fff;
+        --bs-table-bg: #212529;
+        --bs-table-border-color: #373b3e;
+        --bs-table-striped-bg: #2c3034;
+        --bs-table-striped-color: #fff;
+        --bs-table-active-bg: #373b3e;
+        --bs-table-active-color: #fff;
+        --bs-table-hover-bg: #323539;
+        --bs-table-hover-color: #fff;
+        color: var(--bs-table-color);
+        border-color: var(--bs-table-border-color);
+    }
+
+    .table-responsive {
+        overflow-x: auto;
+        -webkit-overflow-scrolling: touch;
+    }
+
+    @media (max-width: 575.98px) {
+        .table-responsive-sm {
+            overflow-x: auto;
+            -webkit-overflow-scrolling: touch;
+        }
+    }
+
+    @media (max-width: 767.98px) {
+        .table-responsive-md {
+            overflow-x: auto;
+            -webkit-overflow-scrolling: touch;
+        }
+    }
+
+    @media (max-width: 991.98px) {
+        .table-responsive-lg {
+            overflow-x: auto;
+            -webkit-overflow-scrolling: touch;
+        }
+    }
+
+    @media (max-width: 1199.98px) {
+        .table-responsive-xl {
+            overflow-x: auto;
+            -webkit-overflow-scrolling: touch;
+        }
+    }
+
+    @media (max-width: 1399.98px) {
+        .table-responsive-xxl {
+            overflow-x: auto;
+            -webkit-overflow-scrolling: touch;
+        }
+    }
+
+    .form-label {
+        margin-bottom: 0.5rem;
+    }
+
+    .col-form-label {
+        padding-top: calc(0.375rem + var(--bs-border-width));
+        padding-bottom: calc(0.375rem + var(--bs-border-width));
+        margin-bottom: 0;
+        font-size: inherit;
+        line-height: 1.5;
+    }
+
+    .col-form-label-lg {
+        padding-top: calc(0.5rem + var(--bs-border-width));
+        padding-bottom: calc(0.5rem + var(--bs-border-width));
+        font-size: 1.25rem;
+    }
+
+    .col-form-label-sm {
+        padding-top: calc(0.25rem + var(--bs-border-width));
+        padding-bottom: calc(0.25rem + var(--bs-border-width));
+        font-size: 0.875rem;
+    }
+
+    .form-text {
+        margin-top: 0.25rem;
+        font-size: 0.875em;
+        color: var(--bs-secondary-color);
+    }
+
+    .form-control {
+        display: block;
+        width: 100%;
+        padding: 0.375rem 0.75rem;
+        font-size: 1rem;
+        font-weight: 400;
+        line-height: 1.5;
+        color: var(--bs-body-color);
+        background-color: var(--bs-body-bg);
+        background-clip: padding-box;
+        border: var(--bs-border-width) solid var(--bs-border-color);
+        appearance: none;
+        border-radius: var(--bs-border-radius);
+        transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .form-control {
+            transition: none;
+        }
+    }
+
+    .form-control[type=file] {
+        overflow: hidden;
+    }
+
+    .form-control[type=file]:not(:disabled):not([readonly]) {
+        cursor: pointer;
+    }
+
+    .form-control:focus {
+        color: var(--bs-body-color);
+        background-color: var(--bs-body-bg);
+        border-color: #86b7fe;
+        outline: 0;
+        box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+    }
+
+    .form-control::-webkit-date-and-time-value {
+        min-width: 85px;
+        height: 1.5em;
+        margin: 0;
+    }
+
+    .form-control::-webkit-datetime-edit {
+        display: block;
+        padding: 0;
+    }
+
+    .form-control::placeholder {
+        color: var(--bs-secondary-color);
+        opacity: 1;
+    }
+
+    .form-control:disabled {
+        background-color: var(--bs-secondary-bg);
+        opacity: 1;
+    }
+
+    .form-control::file-selector-button {
+        padding: 0.375rem 0.75rem;
+        margin: -0.375rem -0.75rem;
+        margin-inline-end: 0.75rem;
+        color: var(--bs-body-color);
+        background-color: var(--bs-tertiary-bg);
+        pointer-events: none;
+        border-color: inherit;
+        border-style: solid;
+        border-width: 0;
+        border-inline-end-width: var(--bs-border-width);
+        border-radius: 0;
+        transition: color 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;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .form-control::file-selector-button {
+            transition: none;
+        }
+    }
+
+    .form-control:hover:not(:disabled):not([readonly])::file-selector-button {
+        background-color: var(--bs-secondary-bg);
+    }
+
+    .form-control-plaintext {
+        display: block;
+        width: 100%;
+        padding: 0.375rem 0;
+        margin-bottom: 0;
+        line-height: 1.5;
+        color: var(--bs-body-color);
+        background-color: transparent;
+        border: solid transparent;
+        border-width: var(--bs-border-width) 0;
+    }
+
+    .form-control-plaintext:focus {
+        outline: 0;
+    }
+
+    .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {
+        padding-right: 0;
+        padding-left: 0;
+    }
+
+    .form-control-sm {
+        min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
+        padding: 0.25rem 0.5rem;
+        font-size: 0.875rem;
+        border-radius: var(--bs-border-radius-sm);
+    }
+
+    .form-control-sm::file-selector-button {
+        padding: 0.25rem 0.5rem;
+        margin: -0.25rem -0.5rem;
+        margin-inline-end: 0.5rem;
+    }
+
+    .form-control-lg {
+        min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
+        padding: 0.5rem 1rem;
+        font-size: 1.25rem;
+        border-radius: var(--bs-border-radius-lg);
+    }
+
+    .form-control-lg::file-selector-button {
+        padding: 0.5rem 1rem;
+        margin: -0.5rem -1rem;
+        margin-inline-end: 1rem;
+    }
+
+    textarea.form-control {
+        min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));
+    }
+
+    textarea.form-control-sm {
+        min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
+    }
+
+    textarea.form-control-lg {
+        min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
+    }
+
+    .form-control-color {
+        width: 3rem;
+        height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));
+        padding: 0.375rem;
+    }
+
+    .form-control-color:not(:disabled):not([readonly]) {
+        cursor: pointer;
+    }
+
+    .form-control-color::-moz-color-swatch {
+        border: 0 !important;
+        border-radius: var(--bs-border-radius);
+    }
+
+    .form-control-color::-webkit-color-swatch {
+        border: 0 !important;
+        border-radius: var(--bs-border-radius);
+    }
+
+    .form-control-color.form-control-sm {
+        height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
+    }
+
+    .form-control-color.form-control-lg {
+        height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
+    }
+
+    .form-select {
+        --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27m2 5 6 6 6-6%27/%3e%3c/svg%3e");
+        display: block;
+        width: 100%;
+        padding: 0.375rem 2.25rem 0.375rem 0.75rem;
+        font-size: 1rem;
+        font-weight: 400;
+        line-height: 1.5;
+        color: var(--bs-body-color);
+        background-color: var(--bs-body-bg);
+        background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none);
+        background-repeat: no-repeat;
+        background-position: right 0.75rem center;
+        background-size: 16px 12px;
+        border: var(--bs-border-width) solid var(--bs-border-color);
+        border-radius: var(--bs-border-radius);
+        transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+        appearance: none;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .form-select {
+            transition: none;
+        }
+    }
+
+    .form-select:focus {
+        border-color: #86b7fe;
+        outline: 0;
+        box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+    }
+
+    .form-select[multiple], .form-select[size]:not([size="1"]) {
+        padding-right: 0.75rem;
+        background-image: none;
+    }
+
+    .form-select:disabled {
+        background-color: var(--bs-secondary-bg);
+    }
+
+    .form-select:-moz-focusring {
+        color: transparent;
+        text-shadow: 0 0 0 var(--bs-body-color);
+    }
+
+    .form-select-sm {
+        padding-top: 0.25rem;
+        padding-bottom: 0.25rem;
+        padding-left: 0.5rem;
+        font-size: 0.875rem;
+        border-radius: var(--bs-border-radius-sm);
+    }
+
+    .form-select-lg {
+        padding-top: 0.5rem;
+        padding-bottom: 0.5rem;
+        padding-left: 1rem;
+        font-size: 1.25rem;
+        border-radius: var(--bs-border-radius-lg);
+    }
+
+    [data-bs-theme=dark] .form-select {
+        --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23adb5bd%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27m2 5 6 6 6-6%27/%3e%3c/svg%3e");
+    }
+
+    .form-check {
+        display: block;
+        min-height: 1.5rem;
+        padding-left: 1.5em;
+        margin-bottom: 0.125rem;
+    }
+
+    .form-check .form-check-input {
+        float: left;
+        margin-left: -1.5em;
+    }
+
+    .form-check-reverse {
+        padding-right: 1.5em;
+        padding-left: 0;
+        text-align: right;
+    }
+
+    .form-check-reverse .form-check-input {
+        float: right;
+        margin-right: -1.5em;
+        margin-left: 0;
+    }
+
+    .form-check-input {
+        --bs-form-check-bg: var(--bs-body-bg);
+        width: 1em;
+        height: 1em;
+        margin-top: 0.25em;
+        vertical-align: top;
+        background-color: var(--bs-form-check-bg);
+        background-image: var(--bs-form-check-bg-image);
+        background-repeat: no-repeat;
+        background-position: center;
+        background-size: contain;
+        border: var(--bs-border-width) solid var(--bs-border-color);
+        appearance: none;
+        -webkit-print-color-adjust: exact;
+        print-color-adjust: exact;
+    }
+
+    .form-check-input[type=checkbox] {
+        border-radius: 0.25em;
+    }
+
+    .form-check-input[type=radio] {
+        border-radius: 50%;
+    }
+
+    .form-check-input:active {
+        filter: brightness(90%);
+    }
+
+    .form-check-input:focus {
+        border-color: #86b7fe;
+        outline: 0;
+        box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+    }
+
+    .form-check-input:checked {
+        background-color: #0d6efd;
+        border-color: #0d6efd;
+    }
+
+    .form-check-input:checked[type=checkbox] {
+        --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3e%3cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27m6 10 3 3 6-6%27/%3e%3c/svg%3e");
+    }
+
+    .form-check-input:checked[type=radio] {
+        --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%272%27 fill=%27%23fff%27/%3e%3c/svg%3e");
+    }
+
+    .form-check-input[type=checkbox]:indeterminate {
+        background-color: #0d6efd;
+        border-color: #0d6efd;
+        --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3e%3cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27M6 10h8%27/%3e%3c/svg%3e");
+    }
+
+    .form-check-input:disabled {
+        pointer-events: none;
+        filter: none;
+        opacity: 0.5;
+    }
+
+    .form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {
+        cursor: default;
+        opacity: 0.5;
+    }
+
+    .form-switch {
+        padding-left: 2.5em;
+    }
+
+    .form-switch .form-check-input {
+        --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27rgba%280, 0, 0, 0.25%29%27/%3e%3c/svg%3e");
+        width: 2em;
+        margin-left: -2.5em;
+        background-image: var(--bs-form-switch-bg);
+        background-position: left center;
+        border-radius: 2em;
+        transition: background-position 0.15s ease-in-out;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .form-switch .form-check-input {
+            transition: none;
+        }
+    }
+
+    .form-switch .form-check-input:focus {
+        --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27%2386b7fe%27/%3e%3c/svg%3e");
+    }
+
+    .form-switch .form-check-input:checked {
+        background-position: right center;
+        --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27%23fff%27/%3e%3c/svg%3e");
+    }
+
+    .form-switch.form-check-reverse {
+        padding-right: 2.5em;
+        padding-left: 0;
+    }
+
+    .form-switch.form-check-reverse .form-check-input {
+        margin-right: -2.5em;
+        margin-left: 0;
+    }
+
+    .form-check-inline {
+        display: inline-block;
+        margin-right: 1rem;
+    }
+
+    .btn-check {
+        position: absolute;
+        clip: rect(0, 0, 0, 0);
+        pointer-events: none;
+    }
+
+    .btn-check[disabled] + .btn, .btn-check:disabled + .btn {
+        pointer-events: none;
+        filter: none;
+        opacity: 0.65;
+    }
+
+    [data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus) {
+        --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27rgba%28255, 255, 255, 0.25%29%27/%3e%3c/svg%3e");
+    }
+
+    .form-range {
+        width: 100%;
+        height: 1.5rem;
+        padding: 0;
+        background-color: transparent;
+        appearance: none;
+    }
+
+    .form-range:focus {
+        outline: 0;
+    }
+
+    .form-range:focus::-webkit-slider-thumb {
+        box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+    }
+
+    .form-range:focus::-moz-range-thumb {
+        box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+    }
+
+    .form-range::-moz-focus-outer {
+        border: 0;
+    }
+
+    .form-range::-webkit-slider-thumb {
+        width: 1rem;
+        height: 1rem;
+        margin-top: -0.25rem;
+        background-color: #0d6efd;
+        border: 0;
+        border-radius: 1rem;
+        -webkit-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;
+        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: #b6d4fe;
+    }
+
+    .form-range::-webkit-slider-runnable-track {
+        width: 100%;
+        height: 0.5rem;
+        color: transparent;
+        cursor: pointer;
+        background-color: var(--bs-tertiary-bg);
+        border-color: transparent;
+        border-radius: 1rem;
+    }
+
+    .form-range::-moz-range-thumb {
+        width: 1rem;
+        height: 1rem;
+        background-color: #0d6efd;
+        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;
+        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: #b6d4fe;
+    }
+
+    .form-range::-moz-range-track {
+        width: 100%;
+        height: 0.5rem;
+        color: transparent;
+        cursor: pointer;
+        background-color: var(--bs-tertiary-bg);
+        border-color: transparent;
+        border-radius: 1rem;
+    }
+
+    .form-range:disabled {
+        pointer-events: none;
+    }
+
+    .form-range:disabled::-webkit-slider-thumb {
+        background-color: var(--bs-secondary-color);
+    }
+
+    .form-range:disabled::-moz-range-thumb {
+        background-color: var(--bs-secondary-color);
+    }
+
+    .form-floating {
+        position: relative;
+    }
+
+    .form-floating > .form-control,
+    .form-floating > .form-control-plaintext,
+    .form-floating > .form-select {
+        height: calc(3.5rem + calc(var(--bs-border-width) * 2));
+        min-height: calc(3.5rem + calc(var(--bs-border-width) * 2));
+        line-height: 1.25;
+    }
+
+    .form-floating > label {
+        position: absolute;
+        top: 0;
+        left: 0;
+        z-index: 2;
+        height: 100%;
+        padding: 1rem 0.75rem;
+        overflow: hidden;
+        text-align: start;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+        pointer-events: none;
+        border: var(--bs-border-width) solid transparent;
+        transform-origin: 0 0;
+        transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .form-floating > label {
+            transition: none;
+        }
+    }
+
+    .form-floating > .form-control,
+    .form-floating > .form-control-plaintext {
+        padding: 1rem 0.75rem;
+    }
+
+    .form-floating > .form-control::placeholder,
+    .form-floating > .form-control-plaintext::placeholder {
+        color: transparent;
+    }
+
+    .form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown),
+    .form-floating > .form-control-plaintext:focus,
+    .form-floating > .form-control-plaintext:not(:placeholder-shown) {
+        padding-top: 1.625rem;
+        padding-bottom: 0.625rem;
+    }
+
+    .form-floating > .form-control:-webkit-autofill,
+    .form-floating > .form-control-plaintext:-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:focus ~ label,
+    .form-floating > .form-control:not(:placeholder-shown) ~ label,
+    .form-floating > .form-control-plaintext ~ label,
+    .form-floating > .form-select ~ label {
+        color: rgba(var(--bs-body-color-rgb), 0.65);
+        transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
+    }
+
+    .form-floating > .form-control:focus ~ label::after,
+    .form-floating > .form-control:not(:placeholder-shown) ~ label::after,
+    .form-floating > .form-control-plaintext ~ label::after,
+    .form-floating > .form-select ~ label::after {
+        position: absolute;
+        inset: 1rem 0.375rem;
+        z-index: -1;
+        height: 1.5em;
+        content: "";
+        background-color: var(--bs-body-bg);
+        border-radius: var(--bs-border-radius);
+    }
+
+    .form-floating > .form-control:-webkit-autofill ~ label {
+        color: rgba(var(--bs-body-color-rgb), 0.65);
+        transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
+    }
+
+    .form-floating > .form-control-plaintext ~ label {
+        border-width: var(--bs-border-width) 0;
+    }
+
+    .form-floating > :disabled ~ label {
+        color: #6c757d;
+    }
+
+    .form-floating > :disabled ~ label::after {
+        background-color: var(--bs-secondary-bg);
+    }
+
+    .input-group {
+        position: relative;
+        display: flex;
+        flex-wrap: wrap;
+        align-items: stretch;
+        width: 100%;
+    }
+
+    .input-group > .form-control,
+    .input-group > .form-select,
+    .input-group > .form-floating {
+        position: relative;
+        flex: 1 1 auto;
+        width: 1%;
+        min-width: 0;
+    }
+
+    .input-group > .form-control:focus,
+    .input-group > .form-select:focus,
+    .input-group > .form-floating:focus-within {
+        z-index: 5;
+    }
+
+    .input-group .btn {
+        position: relative;
+        z-index: 2;
+    }
+
+    .input-group .btn:focus {
+        z-index: 5;
+    }
+
+    .input-group-text {
+        display: flex;
+        align-items: center;
+        padding: 0.375rem 0.75rem;
+        font-size: 1rem;
+        font-weight: 400;
+        line-height: 1.5;
+        color: var(--bs-body-color);
+        text-align: center;
+        white-space: nowrap;
+        background-color: var(--bs-tertiary-bg);
+        border: var(--bs-border-width) solid var(--bs-border-color);
+        border-radius: var(--bs-border-radius);
+    }
+
+    .input-group-lg > .form-control,
+    .input-group-lg > .form-select,
+    .input-group-lg > .input-group-text,
+    .input-group-lg > .btn {
+        padding: 0.5rem 1rem;
+        font-size: 1.25rem;
+        border-radius: var(--bs-border-radius-lg);
+    }
+
+    .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.875rem;
+        border-radius: var(--bs-border-radius-sm);
+    }
+
+    .input-group-lg > .form-select,
+    .input-group-sm > .form-select {
+        padding-right: 3rem;
+    }
+
+    .input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),
+    .input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3),
+    .input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control,
+    .input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select {
+        border-top-right-radius: 0;
+        border-bottom-right-radius: 0;
+    }
+
+    .input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),
+    .input-group.has-validation > .dropdown-toggle:nth-last-child(n+4),
+    .input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control,
+    .input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select {
+        border-top-right-radius: 0;
+        border-bottom-right-radius: 0;
+    }
+
+    .input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
+        margin-left: calc(var(--bs-border-width) * -1);
+        border-top-left-radius: 0;
+        border-bottom-left-radius: 0;
+    }
+
+    .input-group > .form-floating:not(:first-child) > .form-control,
+    .input-group > .form-floating:not(:first-child) > .form-select {
+        border-top-left-radius: 0;
+        border-bottom-left-radius: 0;
+    }
+
+    .valid-feedback {
+        display: none;
+        width: 100%;
+        margin-top: 0.25rem;
+        font-size: 0.875em;
+        color: var(--bs-form-valid-color);
+    }
+
+    .valid-tooltip {
+        position: absolute;
+        top: 100%;
+        z-index: 5;
+        display: none;
+        max-width: 100%;
+        padding: 0.25rem 0.5rem;
+        margin-top: 0.1rem;
+        font-size: 0.875rem;
+        color: #fff;
+        background-color: var(--bs-success);
+        border-radius: var(--bs-border-radius);
+    }
+
+    .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: var(--bs-form-valid-border-color);
+        padding-right: calc(1.5em + 0.75rem);
+        background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 8 8%27%3e%3cpath fill=%27%23198754%27 d=%27M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z%27/%3e%3c/svg%3e");
+        background-repeat: no-repeat;
+        background-position: right calc(0.375em + 0.1875rem) center;
+        background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+    }
+
+    .was-validated .form-control:valid:focus, .form-control.is-valid:focus {
+        border-color: var(--bs-form-valid-border-color);
+        box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);
+    }
+
+    .was-validated textarea.form-control:valid, textarea.form-control.is-valid {
+        padding-right: calc(1.5em + 0.75rem);
+        background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+    }
+
+    .was-validated .form-select:valid, .form-select.is-valid {
+        border-color: var(--bs-form-valid-border-color);
+    }
+
+    .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"] {
+        --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 8 8%27%3e%3cpath fill=%27%23198754%27 d=%27M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z%27/%3e%3c/svg%3e");
+        padding-right: 4.125rem;
+        background-position: right 0.75rem center, center right 2.25rem;
+        background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+    }
+
+    .was-validated .form-select:valid:focus, .form-select.is-valid:focus {
+        border-color: var(--bs-form-valid-border-color);
+        box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);
+    }
+
+    .was-validated .form-control-color:valid, .form-control-color.is-valid {
+        width: calc(3rem + calc(1.5em + 0.75rem));
+    }
+
+    .was-validated .form-check-input:valid, .form-check-input.is-valid {
+        border-color: var(--bs-form-valid-border-color);
+    }
+
+    .was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked {
+        background-color: var(--bs-form-valid-color);
+    }
+
+    .was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus {
+        box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);
+    }
+
+    .was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
+        color: var(--bs-form-valid-color);
+    }
+
+    .form-check-inline .form-check-input ~ .valid-feedback {
+        margin-left: 0.5em;
+    }
+
+    .was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid,
+    .was-validated .input-group > .form-select:not(:focus):valid,
+    .input-group > .form-select:not(:focus).is-valid,
+    .was-validated .input-group > .form-floating:not(:focus-within):valid,
+    .input-group > .form-floating:not(:focus-within).is-valid {
+        z-index: 3;
+    }
+
+    .invalid-feedback {
+        display: none;
+        width: 100%;
+        margin-top: 0.25rem;
+        font-size: 0.875em;
+        color: var(--bs-form-invalid-color);
+    }
+
+    .invalid-tooltip {
+        position: absolute;
+        top: 100%;
+        z-index: 5;
+        display: none;
+        max-width: 100%;
+        padding: 0.25rem 0.5rem;
+        margin-top: 0.1rem;
+        font-size: 0.875rem;
+        color: #fff;
+        background-color: var(--bs-danger);
+        border-radius: var(--bs-border-radius);
+    }
+
+    .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: var(--bs-form-invalid-border-color);
+        padding-right: calc(1.5em + 0.75rem);
+        background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 12%27 width=%2712%27 height=%2712%27 fill=%27none%27 stroke=%27%23dc3545%27%3e%3ccircle cx=%276%27 cy=%276%27 r=%274.5%27/%3e%3cpath stroke-linejoin=%27round%27 d=%27M5.8 3.6h.4L6 6.5z%27/%3e%3ccircle cx=%276%27 cy=%278.2%27 r=%27.6%27 fill=%27%23dc3545%27 stroke=%27none%27/%3e%3c/svg%3e");
+        background-repeat: no-repeat;
+        background-position: right calc(0.375em + 0.1875rem) center;
+        background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+    }
+
+    .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {
+        border-color: var(--bs-form-invalid-border-color);
+        box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
+    }
+
+    .was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {
+        padding-right: calc(1.5em + 0.75rem);
+        background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+    }
+
+    .was-validated .form-select:invalid, .form-select.is-invalid {
+        border-color: var(--bs-form-invalid-border-color);
+    }
+
+    .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"] {
+        --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 12%27 width=%2712%27 height=%2712%27 fill=%27none%27 stroke=%27%23dc3545%27%3e%3ccircle cx=%276%27 cy=%276%27 r=%274.5%27/%3e%3cpath stroke-linejoin=%27round%27 d=%27M5.8 3.6h.4L6 6.5z%27/%3e%3ccircle cx=%276%27 cy=%278.2%27 r=%27.6%27 fill=%27%23dc3545%27 stroke=%27none%27/%3e%3c/svg%3e");
+        padding-right: 4.125rem;
+        background-position: right 0.75rem center, center right 2.25rem;
+        background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+    }
+
+    .was-validated .form-select:invalid:focus, .form-select.is-invalid:focus {
+        border-color: var(--bs-form-invalid-border-color);
+        box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
+    }
+
+    .was-validated .form-control-color:invalid, .form-control-color.is-invalid {
+        width: calc(3rem + calc(1.5em + 0.75rem));
+    }
+
+    .was-validated .form-check-input:invalid, .form-check-input.is-invalid {
+        border-color: var(--bs-form-invalid-border-color);
+    }
+
+    .was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked {
+        background-color: var(--bs-form-invalid-color);
+    }
+
+    .was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus {
+        box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
+    }
+
+    .was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
+        color: var(--bs-form-invalid-color);
+    }
+
+    .form-check-inline .form-check-input ~ .invalid-feedback {
+        margin-left: 0.5em;
+    }
+
+    .was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid,
+    .was-validated .input-group > .form-select:not(:focus):invalid,
+    .input-group > .form-select:not(:focus).is-invalid,
+    .was-validated .input-group > .form-floating:not(:focus-within):invalid,
+    .input-group > .form-floating:not(:focus-within).is-invalid {
+        z-index: 4;
+    }
+
+    .btn {
+        --bs-btn-padding-x: 0.75rem;
+        --bs-btn-padding-y: 0.375rem;
+        --bs-btn-font-family: ;
+        --bs-btn-font-size: 1rem;
+        --bs-btn-font-weight: 400;
+        --bs-btn-line-height: 1.5;
+        --bs-btn-color: var(--bs-body-color);
+        --bs-btn-bg: transparent;
+        --bs-btn-border-width: var(--bs-border-width);
+        --bs-btn-border-color: transparent;
+        --bs-btn-border-radius: var(--bs-border-radius);
+        --bs-btn-hover-border-color: transparent;
+        --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+        --bs-btn-disabled-opacity: 0.65;
+        --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);
+        display: inline-block;
+        padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
+        font-family: var(--bs-btn-font-family);
+        font-size: var(--bs-btn-font-size);
+        font-weight: var(--bs-btn-font-weight);
+        line-height: var(--bs-btn-line-height);
+        color: var(--bs-btn-color);
+        text-align: center;
+        text-decoration: none;
+        vertical-align: middle;
+        cursor: pointer;
+        -webkit-user-select: none;
+        user-select: none;
+        border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
+        border-radius: var(--bs-btn-border-radius);
+        background-color: var(--bs-btn-bg);
+        transition: color 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;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .btn {
+            transition: none;
+        }
+    }
+
+    .btn:hover {
+        color: var(--bs-btn-hover-color);
+        background-color: var(--bs-btn-hover-bg);
+        border-color: var(--bs-btn-hover-border-color);
+    }
+
+    .btn-check + .btn:hover {
+        color: var(--bs-btn-color);
+        background-color: var(--bs-btn-bg);
+        border-color: var(--bs-btn-border-color);
+    }
+
+    .btn:focus-visible {
+        color: var(--bs-btn-hover-color);
+        background-color: var(--bs-btn-hover-bg);
+        border-color: var(--bs-btn-hover-border-color);
+        outline: 0;
+        box-shadow: var(--bs-btn-focus-box-shadow);
+    }
+
+    .btn-check:focus-visible + .btn {
+        border-color: var(--bs-btn-hover-border-color);
+        outline: 0;
+        box-shadow: var(--bs-btn-focus-box-shadow);
+    }
+
+    .btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show {
+        color: var(--bs-btn-active-color);
+        background-color: var(--bs-btn-active-bg);
+        border-color: var(--bs-btn-active-border-color);
+    }
+
+    .btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible {
+        box-shadow: var(--bs-btn-focus-box-shadow);
+    }
+
+    .btn:disabled, .btn.disabled, fieldset:disabled .btn {
+        color: var(--bs-btn-disabled-color);
+        pointer-events: none;
+        background-color: var(--bs-btn-disabled-bg);
+        border-color: var(--bs-btn-disabled-border-color);
+        opacity: var(--bs-btn-disabled-opacity);
+    }
+
+    .btn-primary {
+        --bs-btn-color: #fff;
+        --bs-btn-bg: #0d6efd;
+        --bs-btn-border-color: #0d6efd;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #0b5ed7;
+        --bs-btn-hover-border-color: #0a58ca;
+        --bs-btn-focus-shadow-rgb: 49, 132, 253;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #0a58ca;
+        --bs-btn-active-border-color: #0a53be;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #fff;
+        --bs-btn-disabled-bg: #0d6efd;
+        --bs-btn-disabled-border-color: #0d6efd;
+    }
+
+    .btn-secondary {
+        --bs-btn-color: #fff;
+        --bs-btn-bg: #6c757d;
+        --bs-btn-border-color: #6c757d;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #5c636a;
+        --bs-btn-hover-border-color: #565e64;
+        --bs-btn-focus-shadow-rgb: 130, 138, 145;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #565e64;
+        --bs-btn-active-border-color: #51585e;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #fff;
+        --bs-btn-disabled-bg: #6c757d;
+        --bs-btn-disabled-border-color: #6c757d;
+    }
+
+    .btn-success {
+        --bs-btn-color: #fff;
+        --bs-btn-bg: #198754;
+        --bs-btn-border-color: #198754;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #157347;
+        --bs-btn-hover-border-color: #146c43;
+        --bs-btn-focus-shadow-rgb: 60, 153, 110;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #146c43;
+        --bs-btn-active-border-color: #13653f;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #fff;
+        --bs-btn-disabled-bg: #198754;
+        --bs-btn-disabled-border-color: #198754;
+    }
+
+    .btn-info {
+        --bs-btn-color: #000;
+        --bs-btn-bg: #0dcaf0;
+        --bs-btn-border-color: #0dcaf0;
+        --bs-btn-hover-color: #000;
+        --bs-btn-hover-bg: #31d2f2;
+        --bs-btn-hover-border-color: #25cff2;
+        --bs-btn-focus-shadow-rgb: 11, 172, 204;
+        --bs-btn-active-color: #000;
+        --bs-btn-active-bg: #3dd5f3;
+        --bs-btn-active-border-color: #25cff2;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #000;
+        --bs-btn-disabled-bg: #0dcaf0;
+        --bs-btn-disabled-border-color: #0dcaf0;
+    }
+
+    .btn-warning {
+        --bs-btn-color: #000;
+        --bs-btn-bg: #ffc107;
+        --bs-btn-border-color: #ffc107;
+        --bs-btn-hover-color: #000;
+        --bs-btn-hover-bg: #ffca2c;
+        --bs-btn-hover-border-color: #ffc720;
+        --bs-btn-focus-shadow-rgb: 217, 164, 6;
+        --bs-btn-active-color: #000;
+        --bs-btn-active-bg: #ffcd39;
+        --bs-btn-active-border-color: #ffc720;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #000;
+        --bs-btn-disabled-bg: #ffc107;
+        --bs-btn-disabled-border-color: #ffc107;
+    }
+
+    .btn-danger {
+        --bs-btn-color: #fff;
+        --bs-btn-bg: #dc3545;
+        --bs-btn-border-color: #dc3545;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #bb2d3b;
+        --bs-btn-hover-border-color: #b02a37;
+        --bs-btn-focus-shadow-rgb: 225, 83, 97;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #b02a37;
+        --bs-btn-active-border-color: #a52834;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #fff;
+        --bs-btn-disabled-bg: #dc3545;
+        --bs-btn-disabled-border-color: #dc3545;
+    }
+
+    .btn-light {
+        --bs-btn-color: #000;
+        --bs-btn-bg: #f8f9fa;
+        --bs-btn-border-color: #f8f9fa;
+        --bs-btn-hover-color: #000;
+        --bs-btn-hover-bg: #d3d4d5;
+        --bs-btn-hover-border-color: #c6c7c8;
+        --bs-btn-focus-shadow-rgb: 211, 212, 213;
+        --bs-btn-active-color: #000;
+        --bs-btn-active-bg: #c6c7c8;
+        --bs-btn-active-border-color: #babbbc;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #000;
+        --bs-btn-disabled-bg: #f8f9fa;
+        --bs-btn-disabled-border-color: #f8f9fa;
+    }
+
+    .btn-dark {
+        --bs-btn-color: #fff;
+        --bs-btn-bg: #212529;
+        --bs-btn-border-color: #212529;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #424649;
+        --bs-btn-hover-border-color: #373b3e;
+        --bs-btn-focus-shadow-rgb: 66, 70, 73;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #4d5154;
+        --bs-btn-active-border-color: #373b3e;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #fff;
+        --bs-btn-disabled-bg: #212529;
+        --bs-btn-disabled-border-color: #212529;
+    }
+
+    .btn-outline-primary {
+        --bs-btn-color: #0d6efd;
+        --bs-btn-border-color: #0d6efd;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #0d6efd;
+        --bs-btn-hover-border-color: #0d6efd;
+        --bs-btn-focus-shadow-rgb: 13, 110, 253;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #0d6efd;
+        --bs-btn-active-border-color: #0d6efd;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #0d6efd;
+        --bs-btn-disabled-bg: transparent;
+        --bs-btn-disabled-border-color: #0d6efd;
+        --bs-gradient: none;
+    }
+
+    .btn-outline-secondary {
+        --bs-btn-color: #6c757d;
+        --bs-btn-border-color: #6c757d;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #6c757d;
+        --bs-btn-hover-border-color: #6c757d;
+        --bs-btn-focus-shadow-rgb: 108, 117, 125;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #6c757d;
+        --bs-btn-active-border-color: #6c757d;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #6c757d;
+        --bs-btn-disabled-bg: transparent;
+        --bs-btn-disabled-border-color: #6c757d;
+        --bs-gradient: none;
+    }
+
+    .btn-outline-success {
+        --bs-btn-color: #198754;
+        --bs-btn-border-color: #198754;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #198754;
+        --bs-btn-hover-border-color: #198754;
+        --bs-btn-focus-shadow-rgb: 25, 135, 84;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #198754;
+        --bs-btn-active-border-color: #198754;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #198754;
+        --bs-btn-disabled-bg: transparent;
+        --bs-btn-disabled-border-color: #198754;
+        --bs-gradient: none;
+    }
+
+    .btn-outline-info {
+        --bs-btn-color: #0dcaf0;
+        --bs-btn-border-color: #0dcaf0;
+        --bs-btn-hover-color: #000;
+        --bs-btn-hover-bg: #0dcaf0;
+        --bs-btn-hover-border-color: #0dcaf0;
+        --bs-btn-focus-shadow-rgb: 13, 202, 240;
+        --bs-btn-active-color: #000;
+        --bs-btn-active-bg: #0dcaf0;
+        --bs-btn-active-border-color: #0dcaf0;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #0dcaf0;
+        --bs-btn-disabled-bg: transparent;
+        --bs-btn-disabled-border-color: #0dcaf0;
+        --bs-gradient: none;
+    }
+
+    .btn-outline-warning {
+        --bs-btn-color: #ffc107;
+        --bs-btn-border-color: #ffc107;
+        --bs-btn-hover-color: #000;
+        --bs-btn-hover-bg: #ffc107;
+        --bs-btn-hover-border-color: #ffc107;
+        --bs-btn-focus-shadow-rgb: 255, 193, 7;
+        --bs-btn-active-color: #000;
+        --bs-btn-active-bg: #ffc107;
+        --bs-btn-active-border-color: #ffc107;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #ffc107;
+        --bs-btn-disabled-bg: transparent;
+        --bs-btn-disabled-border-color: #ffc107;
+        --bs-gradient: none;
+    }
+
+    .btn-outline-danger {
+        --bs-btn-color: #dc3545;
+        --bs-btn-border-color: #dc3545;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #dc3545;
+        --bs-btn-hover-border-color: #dc3545;
+        --bs-btn-focus-shadow-rgb: 220, 53, 69;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #dc3545;
+        --bs-btn-active-border-color: #dc3545;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #dc3545;
+        --bs-btn-disabled-bg: transparent;
+        --bs-btn-disabled-border-color: #dc3545;
+        --bs-gradient: none;
+    }
+
+    .btn-outline-light {
+        --bs-btn-color: #f8f9fa;
+        --bs-btn-border-color: #f8f9fa;
+        --bs-btn-hover-color: #000;
+        --bs-btn-hover-bg: #f8f9fa;
+        --bs-btn-hover-border-color: #f8f9fa;
+        --bs-btn-focus-shadow-rgb: 248, 249, 250;
+        --bs-btn-active-color: #000;
+        --bs-btn-active-bg: #f8f9fa;
+        --bs-btn-active-border-color: #f8f9fa;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #f8f9fa;
+        --bs-btn-disabled-bg: transparent;
+        --bs-btn-disabled-border-color: #f8f9fa;
+        --bs-gradient: none;
+    }
+
+    .btn-outline-dark {
+        --bs-btn-color: #212529;
+        --bs-btn-border-color: #212529;
+        --bs-btn-hover-color: #fff;
+        --bs-btn-hover-bg: #212529;
+        --bs-btn-hover-border-color: #212529;
+        --bs-btn-focus-shadow-rgb: 33, 37, 41;
+        --bs-btn-active-color: #fff;
+        --bs-btn-active-bg: #212529;
+        --bs-btn-active-border-color: #212529;
+        --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+        --bs-btn-disabled-color: #212529;
+        --bs-btn-disabled-bg: transparent;
+        --bs-btn-disabled-border-color: #212529;
+        --bs-gradient: none;
+    }
+
+    .btn-link {
+        --bs-btn-font-weight: 400;
+        --bs-btn-color: var(--bs-link-color);
+        --bs-btn-bg: transparent;
+        --bs-btn-border-color: transparent;
+        --bs-btn-hover-color: var(--bs-link-hover-color);
+        --bs-btn-hover-border-color: transparent;
+        --bs-btn-active-color: var(--bs-link-hover-color);
+        --bs-btn-active-border-color: transparent;
+        --bs-btn-disabled-color: #6c757d;
+        --bs-btn-disabled-border-color: transparent;
+        --bs-btn-box-shadow: 0 0 0 #000;
+        --bs-btn-focus-shadow-rgb: 49, 132, 253;
+        text-decoration: underline;
+    }
+
+    .btn-link:focus-visible {
+        color: var(--bs-btn-color);
+    }
+
+    .btn-link:hover {
+        color: var(--bs-btn-hover-color);
+    }
+
+    .btn-lg, .btn-group-lg > .btn {
+        --bs-btn-padding-y: 0.5rem;
+        --bs-btn-padding-x: 1rem;
+        --bs-btn-font-size: 1.25rem;
+        --bs-btn-border-radius: var(--bs-border-radius-lg);
+    }
+
+    .btn-sm, .btn-group-sm > .btn {
+        --bs-btn-padding-y: 0.25rem;
+        --bs-btn-padding-x: 0.5rem;
+        --bs-btn-font-size: 0.875rem;
+        --bs-btn-border-radius: var(--bs-border-radius-sm);
+    }
+
+    .fade {
+        transition: opacity 0.15s linear;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .fade {
+            transition: none;
+        }
+    }
+
+    .fade:not(.show) {
+        opacity: 0;
+    }
+
+    .collapse:not(.show) {
+        display: none;
+    }
+
+    .collapsing {
+        height: 0;
+        overflow: hidden;
+        transition: height 0.35s ease;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .collapsing {
+            transition: none;
+        }
+    }
+
+    .collapsing.collapse-horizontal {
+        width: 0;
+        height: auto;
+        transition: width 0.35s ease;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .collapsing.collapse-horizontal {
+            transition: none;
+        }
+    }
+
+    .dropup,
+    .dropend,
+    .dropdown,
+    .dropstart,
+    .dropup-center,
+    .dropdown-center {
+        position: relative;
+    }
+
+    .dropdown-toggle {
+        white-space: nowrap;
+    }
+
+    .dropdown-toggle::after {
+        display: inline-block;
+        margin-left: 0.255em;
+        vertical-align: 0.255em;
+        content: "";
+        border-top: 0.3em solid;
+        border-right: 0.3em solid transparent;
+        border-bottom: 0;
+        border-left: 0.3em solid transparent;
+    }
+
+    .dropdown-toggle:empty::after {
+        margin-left: 0;
+    }
+
+    .dropdown-menu {
+        --bs-dropdown-zindex: 1000;
+        --bs-dropdown-min-width: 10rem;
+        --bs-dropdown-padding-x: 0;
+        --bs-dropdown-padding-y: 0.5rem;
+        --bs-dropdown-spacer: 0.125rem;
+        --bs-dropdown-font-size: 1rem;
+        --bs-dropdown-color: var(--bs-body-color);
+        --bs-dropdown-bg: var(--bs-body-bg);
+        --bs-dropdown-border-color: var(--bs-border-color-translucent);
+        --bs-dropdown-border-radius: var(--bs-border-radius);
+        --bs-dropdown-border-width: var(--bs-border-width);
+        --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));
+        --bs-dropdown-divider-bg: var(--bs-border-color-translucent);
+        --bs-dropdown-divider-margin-y: 0.5rem;
+        --bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+        --bs-dropdown-link-color: var(--bs-body-color);
+        --bs-dropdown-link-hover-color: var(--bs-body-color);
+        --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);
+        --bs-dropdown-link-active-color: #fff;
+        --bs-dropdown-link-active-bg: #0d6efd;
+        --bs-dropdown-link-disabled-color: var(--bs-tertiary-color);
+        --bs-dropdown-item-padding-x: 1rem;
+        --bs-dropdown-item-padding-y: 0.25rem;
+        --bs-dropdown-header-color: #6c757d;
+        --bs-dropdown-header-padding-x: 1rem;
+        --bs-dropdown-header-padding-y: 0.5rem;
+        position: absolute;
+        z-index: var(--bs-dropdown-zindex);
+        display: none;
+        min-width: var(--bs-dropdown-min-width);
+        padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);
+        margin: 0;
+        font-size: var(--bs-dropdown-font-size);
+        color: var(--bs-dropdown-color);
+        text-align: left;
+        list-style: none;
+        background-color: var(--bs-dropdown-bg);
+        background-clip: padding-box;
+        border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);
+        border-radius: var(--bs-dropdown-border-radius);
+    }
+
+    .dropdown-menu[data-bs-popper] {
+        top: 100%;
+        left: 0;
+        margin-top: var(--bs-dropdown-spacer);
+    }
+
+    .dropdown-menu-start {
+        --bs-position: start;
+    }
+
+    .dropdown-menu-start[data-bs-popper] {
+        right: auto;
+        left: 0;
+    }
+
+    .dropdown-menu-end {
+        --bs-position: end;
+    }
+
+    .dropdown-menu-end[data-bs-popper] {
+        right: 0;
+        left: auto;
+    }
+
+    @media (min-width: 576px) {
+        .dropdown-menu-sm-start {
+            --bs-position: start;
+        }
+
+        .dropdown-menu-sm-start[data-bs-popper] {
+            right: auto;
+            left: 0;
+        }
+
+        .dropdown-menu-sm-end {
+            --bs-position: end;
+        }
+
+        .dropdown-menu-sm-end[data-bs-popper] {
+            right: 0;
+            left: auto;
+        }
+    }
+
+    @media (min-width: 768px) {
+        .dropdown-menu-md-start {
+            --bs-position: start;
+        }
+
+        .dropdown-menu-md-start[data-bs-popper] {
+            right: auto;
+            left: 0;
+        }
+
+        .dropdown-menu-md-end {
+            --bs-position: end;
+        }
+
+        .dropdown-menu-md-end[data-bs-popper] {
+            right: 0;
+            left: auto;
+        }
+    }
+
+    @media (min-width: 992px) {
+        .dropdown-menu-lg-start {
+            --bs-position: start;
+        }
+
+        .dropdown-menu-lg-start[data-bs-popper] {
+            right: auto;
+            left: 0;
+        }
+
+        .dropdown-menu-lg-end {
+            --bs-position: end;
+        }
+
+        .dropdown-menu-lg-end[data-bs-popper] {
+            right: 0;
+            left: auto;
+        }
+    }
+
+    @media (min-width: 1200px) {
+        .dropdown-menu-xl-start {
+            --bs-position: start;
+        }
+
+        .dropdown-menu-xl-start[data-bs-popper] {
+            right: auto;
+            left: 0;
+        }
+
+        .dropdown-menu-xl-end {
+            --bs-position: end;
+        }
+
+        .dropdown-menu-xl-end[data-bs-popper] {
+            right: 0;
+            left: auto;
+        }
+    }
+
+    @media (min-width: 1400px) {
+        .dropdown-menu-xxl-start {
+            --bs-position: start;
+        }
+
+        .dropdown-menu-xxl-start[data-bs-popper] {
+            right: auto;
+            left: 0;
+        }
+
+        .dropdown-menu-xxl-end {
+            --bs-position: end;
+        }
+
+        .dropdown-menu-xxl-end[data-bs-popper] {
+            right: 0;
+            left: auto;
+        }
+    }
+
+    .dropup .dropdown-menu[data-bs-popper] {
+        top: auto;
+        bottom: 100%;
+        margin-top: 0;
+        margin-bottom: var(--bs-dropdown-spacer);
+    }
+
+    .dropup .dropdown-toggle::after {
+        display: inline-block;
+        margin-left: 0.255em;
+        vertical-align: 0.255em;
+        content: "";
+        border-top: 0;
+        border-right: 0.3em solid transparent;
+        border-bottom: 0.3em solid;
+        border-left: 0.3em solid transparent;
+    }
+
+    .dropup .dropdown-toggle:empty::after {
+        margin-left: 0;
+    }
+
+    .dropend .dropdown-menu[data-bs-popper] {
+        top: 0;
+        right: auto;
+        left: 100%;
+        margin-top: 0;
+        margin-left: var(--bs-dropdown-spacer);
+    }
+
+    .dropend .dropdown-toggle::after {
+        display: inline-block;
+        margin-left: 0.255em;
+        vertical-align: 0.255em;
+        content: "";
+        border-top: 0.3em solid transparent;
+        border-right: 0;
+        border-bottom: 0.3em solid transparent;
+        border-left: 0.3em solid;
+    }
+
+    .dropend .dropdown-toggle:empty::after {
+        margin-left: 0;
+    }
+
+    .dropend .dropdown-toggle::after {
+        vertical-align: 0;
+    }
+
+    .dropstart .dropdown-menu[data-bs-popper] {
+        top: 0;
+        right: 100%;
+        left: auto;
+        margin-top: 0;
+        margin-right: var(--bs-dropdown-spacer);
+    }
+
+    .dropstart .dropdown-toggle::after {
+        display: inline-block;
+        margin-left: 0.255em;
+        vertical-align: 0.255em;
+        content: "";
+    }
+
+    .dropstart .dropdown-toggle::after {
+        display: none;
+    }
+
+    .dropstart .dropdown-toggle::before {
+        display: inline-block;
+        margin-right: 0.255em;
+        vertical-align: 0.255em;
+        content: "";
+        border-top: 0.3em solid transparent;
+        border-right: 0.3em solid;
+        border-bottom: 0.3em solid transparent;
+    }
+
+    .dropstart .dropdown-toggle:empty::after {
+        margin-left: 0;
+    }
+
+    .dropstart .dropdown-toggle::before {
+        vertical-align: 0;
+    }
+
+    .dropdown-divider {
+        height: 0;
+        margin: var(--bs-dropdown-divider-margin-y) 0;
+        overflow: hidden;
+        border-top: 1px solid var(--bs-dropdown-divider-bg);
+        opacity: 1;
+    }
+
+    .dropdown-item {
+        display: block;
+        width: 100%;
+        padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
+        clear: both;
+        font-weight: 400;
+        color: var(--bs-dropdown-link-color);
+        text-align: inherit;
+        text-decoration: none;
+        white-space: nowrap;
+        background-color: transparent;
+        border: 0;
+        border-radius: var(--bs-dropdown-item-border-radius, 0);
+    }
+
+    .dropdown-item:hover, .dropdown-item:focus {
+        color: var(--bs-dropdown-link-hover-color);
+        background-color: var(--bs-dropdown-link-hover-bg);
+    }
+
+    .dropdown-item.active, .dropdown-item:active {
+        color: var(--bs-dropdown-link-active-color);
+        text-decoration: none;
+        background-color: var(--bs-dropdown-link-active-bg);
+    }
+
+    .dropdown-item.disabled, .dropdown-item:disabled {
+        color: var(--bs-dropdown-link-disabled-color);
+        pointer-events: none;
+        background-color: transparent;
+    }
+
+    .dropdown-menu.show {
+        display: block;
+    }
+
+    .dropdown-header {
+        display: block;
+        padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);
+        margin-bottom: 0;
+        font-size: 0.875rem;
+        color: var(--bs-dropdown-header-color);
+        white-space: nowrap;
+    }
+
+    .dropdown-item-text {
+        display: block;
+        padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
+        color: var(--bs-dropdown-link-color);
+    }
+
+    .dropdown-menu-dark {
+        --bs-dropdown-color: #dee2e6;
+        --bs-dropdown-bg: #343a40;
+        --bs-dropdown-border-color: var(--bs-border-color-translucent);
+        --bs-dropdown-box-shadow: ;
+        --bs-dropdown-link-color: #dee2e6;
+        --bs-dropdown-link-hover-color: #fff;
+        --bs-dropdown-divider-bg: var(--bs-border-color-translucent);
+        --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);
+        --bs-dropdown-link-active-color: #fff;
+        --bs-dropdown-link-active-bg: #0d6efd;
+        --bs-dropdown-link-disabled-color: #adb5bd;
+        --bs-dropdown-header-color: #adb5bd;
+    }
+
+    .btn-group,
+    .btn-group-vertical {
+        position: relative;
+        display: inline-flex;
+        vertical-align: middle;
+    }
+
+    .btn-group > .btn,
+    .btn-group-vertical > .btn {
+        position: relative;
+        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: flex;
+        flex-wrap: wrap;
+        justify-content: flex-start;
+    }
+
+    .btn-toolbar .input-group {
+        width: auto;
+    }
+
+    .btn-group {
+        border-radius: var(--bs-border-radius);
+    }
+
+    .btn-group > :not(.btn-check:first-child) + .btn,
+    .btn-group > .btn-group:not(:first-child) {
+        margin-left: calc(var(--bs-border-width) * -1);
+    }
+
+    .btn-group > .btn:not(:last-child):not(.dropdown-toggle),
+    .btn-group > .btn.dropdown-toggle-split:first-child,
+    .btn-group > .btn-group:not(:last-child) > .btn {
+        border-top-right-radius: 0;
+        border-bottom-right-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-left-radius: 0;
+        border-bottom-left-radius: 0;
+    }
+
+    .dropdown-toggle-split {
+        padding-right: 0.5625rem;
+        padding-left: 0.5625rem;
+    }
+
+    .dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after {
+        margin-left: 0;
+    }
+
+    .dropstart .dropdown-toggle-split::before {
+        margin-right: 0;
+    }
+
+    .btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
+        padding-right: 0.375rem;
+        padding-left: 0.375rem;
+    }
+
+    .btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
+        padding-right: 0.75rem;
+        padding-left: 0.75rem;
+    }
+
+    .btn-group-vertical {
+        flex-direction: column;
+        align-items: flex-start;
+        justify-content: center;
+    }
+
+    .btn-group-vertical > .btn,
+    .btn-group-vertical > .btn-group {
+        width: 100%;
+    }
+
+    .btn-group-vertical > .btn:not(:first-child),
+    .btn-group-vertical > .btn-group:not(:first-child) {
+        margin-top: calc(var(--bs-border-width) * -1);
+    }
+
+    .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
+    .btn-group-vertical > .btn-group:not(:last-child) > .btn {
+        border-bottom-right-radius: 0;
+        border-bottom-left-radius: 0;
+    }
+
+    .btn-group-vertical > .btn ~ .btn,
+    .btn-group-vertical > .btn-group:not(:first-child) > .btn {
+        border-top-left-radius: 0;
+        border-top-right-radius: 0;
+    }
+
+    .nav {
+        --bs-nav-link-padding-x: 1rem;
+        --bs-nav-link-padding-y: 0.5rem;
+        --bs-nav-link-font-weight: ;
+        --bs-nav-link-color: var(--bs-link-color);
+        --bs-nav-link-hover-color: var(--bs-link-hover-color);
+        --bs-nav-link-disabled-color: var(--bs-secondary-color);
+        display: flex;
+        flex-wrap: wrap;
+        padding-left: 0;
+        margin-bottom: 0;
+        list-style: none;
+    }
+
+    .nav-link {
+        display: block;
+        padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);
+        font-size: var(--bs-nav-link-font-size);
+        font-weight: var(--bs-nav-link-font-weight);
+        color: var(--bs-nav-link-color);
+        text-decoration: none;
+        background: none;
+        border: 0;
+        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 {
+            transition: none;
+        }
+    }
+
+    .nav-link:hover, .nav-link:focus {
+        color: var(--bs-nav-link-hover-color);
+    }
+
+    .nav-link:focus-visible {
+        outline: 0;
+        box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+    }
+
+    .nav-link.disabled {
+        color: var(--bs-nav-link-disabled-color);
+        pointer-events: none;
+        cursor: default;
+    }
+
+    .nav-tabs {
+        --bs-nav-tabs-border-width: var(--bs-border-width);
+        --bs-nav-tabs-border-color: var(--bs-border-color);
+        --bs-nav-tabs-border-radius: var(--bs-border-radius);
+        --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);
+        --bs-nav-tabs-link-active-color: var(--bs-emphasis-color);
+        --bs-nav-tabs-link-active-bg: var(--bs-body-bg);
+        --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);
+        border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color);
+    }
+
+    .nav-tabs .nav-link {
+        margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width));
+        border: var(--bs-nav-tabs-border-width) solid transparent;
+        border-top-left-radius: var(--bs-nav-tabs-border-radius);
+        border-top-right-radius: var(--bs-nav-tabs-border-radius);
+    }
+
+    .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
+        isolation: isolate;
+        border-color: var(--bs-nav-tabs-link-hover-border-color);
+    }
+
+    .nav-tabs .nav-link.disabled, .nav-tabs .nav-link:disabled {
+        color: var(--bs-nav-link-disabled-color);
+        background-color: transparent;
+        border-color: transparent;
+    }
+
+    .nav-tabs .nav-link.active,
+    .nav-tabs .nav-item.show .nav-link {
+        color: var(--bs-nav-tabs-link-active-color);
+        background-color: var(--bs-nav-tabs-link-active-bg);
+        border-color: var(--bs-nav-tabs-link-active-border-color);
+    }
+
+    .nav-tabs .dropdown-menu {
+        margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
+        border-top-left-radius: 0;
+        border-top-right-radius: 0;
+    }
+
+    .nav-pills {
+        --bs-nav-pills-border-radius: var(--bs-border-radius);
+        --bs-nav-pills-link-active-color: #fff;
+        --bs-nav-pills-link-active-bg: #0d6efd;
+    }
+
+    .nav-pills .nav-link {
+        border-radius: var(--bs-nav-pills-border-radius);
+    }
+
+    .nav-pills .nav-link:disabled {
+        color: var(--bs-nav-link-disabled-color);
+        background-color: transparent;
+        border-color: transparent;
+    }
+
+    .nav-pills .nav-link.active,
+    .nav-pills .show > .nav-link {
+        color: var(--bs-nav-pills-link-active-color);
+        background-color: var(--bs-nav-pills-link-active-bg);
+    }
+
+    .nav-underline {
+        --bs-nav-underline-gap: 1rem;
+        --bs-nav-underline-border-width: 0.125rem;
+        --bs-nav-underline-link-active-color: var(--bs-emphasis-color);
+        gap: var(--bs-nav-underline-gap);
+    }
+
+    .nav-underline .nav-link {
+        padding-right: 0;
+        padding-left: 0;
+        border-bottom: var(--bs-nav-underline-border-width) solid transparent;
+    }
+
+    .nav-underline .nav-link:hover, .nav-underline .nav-link:focus {
+        border-bottom-color: currentcolor;
+    }
+
+    .nav-underline .nav-link.active,
+    .nav-underline .show > .nav-link {
+        font-weight: 700;
+        color: var(--bs-nav-underline-link-active-color);
+        border-bottom-color: currentcolor;
+    }
+
+    .nav-fill > .nav-link,
+    .nav-fill .nav-item {
+        flex: 1 1 auto;
+        text-align: center;
+    }
+
+    .nav-justified > .nav-link,
+    .nav-justified .nav-item {
+        flex-basis: 0;
+        flex-grow: 1;
+        text-align: center;
+    }
+
+    .nav-fill .nav-item .nav-link,
+    .nav-justified .nav-item .nav-link {
+        width: 100%;
+    }
+
+    .tab-content > .tab-pane {
+        display: none;
+    }
+
+    .tab-content > .active {
+        display: block;
+    }
+
+    .navbar {
+        --bs-navbar-padding-x: 0;
+        --bs-navbar-padding-y: 0.5rem;
+        --bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65);
+        --bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8);
+        --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);
+        --bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);
+        --bs-navbar-brand-padding-y: 0.3125rem;
+        --bs-navbar-brand-margin-end: 1rem;
+        --bs-navbar-brand-font-size: 1.25rem;
+        --bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);
+        --bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);
+        --bs-navbar-nav-link-padding-x: 0.5rem;
+        --bs-navbar-toggler-padding-y: 0.25rem;
+        --bs-navbar-toggler-padding-x: 0.75rem;
+        --bs-navbar-toggler-font-size: 1.25rem;
+        --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3e%3cpath stroke=%27rgba%2833, 37, 41, 0.75%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3e%3c/svg%3e");
+        --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15);
+        --bs-navbar-toggler-border-radius: var(--bs-border-radius);
+        --bs-navbar-toggler-focus-width: 0.25rem;
+        --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;
+        position: relative;
+        display: flex;
+        flex-wrap: wrap;
+        align-items: center;
+        justify-content: space-between;
+        padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x);
+    }
+
+    .navbar > .container,
+    .navbar > .container-fluid,
+    .navbar > .container-sm,
+    .navbar > .container-md,
+    .navbar > .container-lg,
+    .navbar > .container-xl,
+    .navbar > .container-xxl {
+        display: flex;
+        flex-wrap: inherit;
+        align-items: center;
+        justify-content: space-between;
+    }
+
+    .navbar-brand {
+        padding-top: var(--bs-navbar-brand-padding-y);
+        padding-bottom: var(--bs-navbar-brand-padding-y);
+        margin-right: var(--bs-navbar-brand-margin-end);
+        font-size: var(--bs-navbar-brand-font-size);
+        color: var(--bs-navbar-brand-color);
+        text-decoration: none;
+        white-space: nowrap;
+    }
+
+    .navbar-brand:hover, .navbar-brand:focus {
+        color: var(--bs-navbar-brand-hover-color);
+    }
+
+    .navbar-nav {
+        --bs-nav-link-padding-x: 0;
+        --bs-nav-link-padding-y: 0.5rem;
+        --bs-nav-link-font-weight: ;
+        --bs-nav-link-color: var(--bs-navbar-color);
+        --bs-nav-link-hover-color: var(--bs-navbar-hover-color);
+        --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);
+        display: flex;
+        flex-direction: column;
+        padding-left: 0;
+        margin-bottom: 0;
+        list-style: none;
+    }
+
+    .navbar-nav .nav-link.active, .navbar-nav .nav-link.show {
+        color: var(--bs-navbar-active-color);
+    }
+
+    .navbar-nav .dropdown-menu {
+        position: static;
+    }
+
+    .navbar-text {
+        padding-top: 0.5rem;
+        padding-bottom: 0.5rem;
+        color: var(--bs-navbar-color);
+    }
+
+    .navbar-text a,
+    .navbar-text a:hover,
+    .navbar-text a:focus {
+        color: var(--bs-navbar-active-color);
+    }
+
+    .navbar-collapse {
+        flex-basis: 100%;
+        flex-grow: 1;
+        align-items: center;
+    }
+
+    .navbar-toggler {
+        padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);
+        font-size: var(--bs-navbar-toggler-font-size);
+        line-height: 1;
+        color: var(--bs-navbar-color);
+        background-color: transparent;
+        border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);
+        border-radius: var(--bs-navbar-toggler-border-radius);
+        transition: var(--bs-navbar-toggler-transition);
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .navbar-toggler {
+            transition: none;
+        }
+    }
+
+    .navbar-toggler:hover {
+        text-decoration: none;
+    }
+
+    .navbar-toggler:focus {
+        text-decoration: none;
+        outline: 0;
+        box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width);
+    }
+
+    .navbar-toggler-icon {
+        display: inline-block;
+        width: 1.5em;
+        height: 1.5em;
+        vertical-align: middle;
+        background-image: var(--bs-navbar-toggler-icon-bg);
+        background-repeat: no-repeat;
+        background-position: center;
+        background-size: 100%;
+    }
+
+    .navbar-nav-scroll {
+        max-height: var(--bs-scroll-height, 75vh);
+        overflow-y: auto;
+    }
+
+    @media (min-width: 576px) {
+        .navbar-expand-sm {
+            flex-wrap: nowrap;
+            justify-content: flex-start;
+        }
+
+        .navbar-expand-sm .navbar-nav {
+            flex-direction: row;
+        }
+
+        .navbar-expand-sm .navbar-nav .dropdown-menu {
+            position: absolute;
+        }
+
+        .navbar-expand-sm .navbar-nav .nav-link {
+            padding-right: var(--bs-navbar-nav-link-padding-x);
+            padding-left: var(--bs-navbar-nav-link-padding-x);
+        }
+
+        .navbar-expand-sm .navbar-nav-scroll {
+            overflow: visible;
+        }
+
+        .navbar-expand-sm .navbar-collapse {
+            display: flex !important;
+            flex-basis: auto;
+        }
+
+        .navbar-expand-sm .navbar-toggler {
+            display: none;
+        }
+
+        .navbar-expand-sm .offcanvas {
+            position: static;
+            z-index: auto;
+            flex-grow: 1;
+            width: auto !important;
+            height: auto !important;
+            visibility: visible !important;
+            background-color: transparent !important;
+            border: 0 !important;
+            transform: none !important;
+            transition: none;
+        }
+
+        .navbar-expand-sm .offcanvas .offcanvas-header {
+            display: none;
+        }
+
+        .navbar-expand-sm .offcanvas .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+        }
+    }
+
+    @media (min-width: 768px) {
+        .navbar-expand-md {
+            flex-wrap: nowrap;
+            justify-content: flex-start;
+        }
+
+        .navbar-expand-md .navbar-nav {
+            flex-direction: row;
+        }
+
+        .navbar-expand-md .navbar-nav .dropdown-menu {
+            position: absolute;
+        }
+
+        .navbar-expand-md .navbar-nav .nav-link {
+            padding-right: var(--bs-navbar-nav-link-padding-x);
+            padding-left: var(--bs-navbar-nav-link-padding-x);
+        }
+
+        .navbar-expand-md .navbar-nav-scroll {
+            overflow: visible;
+        }
+
+        .navbar-expand-md .navbar-collapse {
+            display: flex !important;
+            flex-basis: auto;
+        }
+
+        .navbar-expand-md .navbar-toggler {
+            display: none;
+        }
+
+        .navbar-expand-md .offcanvas {
+            position: static;
+            z-index: auto;
+            flex-grow: 1;
+            width: auto !important;
+            height: auto !important;
+            visibility: visible !important;
+            background-color: transparent !important;
+            border: 0 !important;
+            transform: none !important;
+            transition: none;
+        }
+
+        .navbar-expand-md .offcanvas .offcanvas-header {
+            display: none;
+        }
+
+        .navbar-expand-md .offcanvas .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+        }
+    }
+
+    @media (min-width: 992px) {
+        .navbar-expand-lg {
+            flex-wrap: nowrap;
+            justify-content: flex-start;
+        }
+
+        .navbar-expand-lg .navbar-nav {
+            flex-direction: row;
+        }
+
+        .navbar-expand-lg .navbar-nav .dropdown-menu {
+            position: absolute;
+        }
+
+        .navbar-expand-lg .navbar-nav .nav-link {
+            padding-right: var(--bs-navbar-nav-link-padding-x);
+            padding-left: var(--bs-navbar-nav-link-padding-x);
+        }
+
+        .navbar-expand-lg .navbar-nav-scroll {
+            overflow: visible;
+        }
+
+        .navbar-expand-lg .navbar-collapse {
+            display: flex !important;
+            flex-basis: auto;
+        }
+
+        .navbar-expand-lg .navbar-toggler {
+            display: none;
+        }
+
+        .navbar-expand-lg .offcanvas {
+            position: static;
+            z-index: auto;
+            flex-grow: 1;
+            width: auto !important;
+            height: auto !important;
+            visibility: visible !important;
+            background-color: transparent !important;
+            border: 0 !important;
+            transform: none !important;
+            transition: none;
+        }
+
+        .navbar-expand-lg .offcanvas .offcanvas-header {
+            display: none;
+        }
+
+        .navbar-expand-lg .offcanvas .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+        }
+    }
+
+    @media (min-width: 1200px) {
+        .navbar-expand-xl {
+            flex-wrap: nowrap;
+            justify-content: flex-start;
+        }
+
+        .navbar-expand-xl .navbar-nav {
+            flex-direction: row;
+        }
+
+        .navbar-expand-xl .navbar-nav .dropdown-menu {
+            position: absolute;
+        }
+
+        .navbar-expand-xl .navbar-nav .nav-link {
+            padding-right: var(--bs-navbar-nav-link-padding-x);
+            padding-left: var(--bs-navbar-nav-link-padding-x);
+        }
+
+        .navbar-expand-xl .navbar-nav-scroll {
+            overflow: visible;
+        }
+
+        .navbar-expand-xl .navbar-collapse {
+            display: flex !important;
+            flex-basis: auto;
+        }
+
+        .navbar-expand-xl .navbar-toggler {
+            display: none;
+        }
+
+        .navbar-expand-xl .offcanvas {
+            position: static;
+            z-index: auto;
+            flex-grow: 1;
+            width: auto !important;
+            height: auto !important;
+            visibility: visible !important;
+            background-color: transparent !important;
+            border: 0 !important;
+            transform: none !important;
+            transition: none;
+        }
+
+        .navbar-expand-xl .offcanvas .offcanvas-header {
+            display: none;
+        }
+
+        .navbar-expand-xl .offcanvas .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+        }
+    }
+
+    @media (min-width: 1400px) {
+        .navbar-expand-xxl {
+            flex-wrap: nowrap;
+            justify-content: flex-start;
+        }
+
+        .navbar-expand-xxl .navbar-nav {
+            flex-direction: row;
+        }
+
+        .navbar-expand-xxl .navbar-nav .dropdown-menu {
+            position: absolute;
+        }
+
+        .navbar-expand-xxl .navbar-nav .nav-link {
+            padding-right: var(--bs-navbar-nav-link-padding-x);
+            padding-left: var(--bs-navbar-nav-link-padding-x);
+        }
+
+        .navbar-expand-xxl .navbar-nav-scroll {
+            overflow: visible;
+        }
+
+        .navbar-expand-xxl .navbar-collapse {
+            display: flex !important;
+            flex-basis: auto;
+        }
+
+        .navbar-expand-xxl .navbar-toggler {
+            display: none;
+        }
+
+        .navbar-expand-xxl .offcanvas {
+            position: static;
+            z-index: auto;
+            flex-grow: 1;
+            width: auto !important;
+            height: auto !important;
+            visibility: visible !important;
+            background-color: transparent !important;
+            border: 0 !important;
+            transform: none !important;
+            transition: none;
+        }
+
+        .navbar-expand-xxl .offcanvas .offcanvas-header {
+            display: none;
+        }
+
+        .navbar-expand-xxl .offcanvas .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+        }
+    }
+
+    .navbar-expand {
+        flex-wrap: nowrap;
+        justify-content: flex-start;
+    }
+
+    .navbar-expand .navbar-nav {
+        flex-direction: row;
+    }
+
+    .navbar-expand .navbar-nav .dropdown-menu {
+        position: absolute;
+    }
+
+    .navbar-expand .navbar-nav .nav-link {
+        padding-right: var(--bs-navbar-nav-link-padding-x);
+        padding-left: var(--bs-navbar-nav-link-padding-x);
+    }
+
+    .navbar-expand .navbar-nav-scroll {
+        overflow: visible;
+    }
+
+    .navbar-expand .navbar-collapse {
+        display: flex !important;
+        flex-basis: auto;
+    }
+
+    .navbar-expand .navbar-toggler {
+        display: none;
+    }
+
+    .navbar-expand .offcanvas {
+        position: static;
+        z-index: auto;
+        flex-grow: 1;
+        width: auto !important;
+        height: auto !important;
+        visibility: visible !important;
+        background-color: transparent !important;
+        border: 0 !important;
+        transform: none !important;
+        transition: none;
+    }
+
+    .navbar-expand .offcanvas .offcanvas-header {
+        display: none;
+    }
+
+    .navbar-expand .offcanvas .offcanvas-body {
+        display: flex;
+        flex-grow: 0;
+        padding: 0;
+        overflow-y: visible;
+    }
+
+    .navbar-dark,
+    .navbar[data-bs-theme=dark] {
+        --bs-navbar-color: rgba(255, 255, 255, 0.55);
+        --bs-navbar-hover-color: rgba(255, 255, 255, 0.75);
+        --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25);
+        --bs-navbar-active-color: #fff;
+        --bs-navbar-brand-color: #fff;
+        --bs-navbar-brand-hover-color: #fff;
+        --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1);
+        --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3e%3cpath stroke=%27rgba%28255, 255, 255, 0.55%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3e%3c/svg%3e");
+    }
+
+    [data-bs-theme=dark] .navbar-toggler-icon {
+        --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3e%3cpath stroke=%27rgba%28255, 255, 255, 0.55%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3e%3c/svg%3e");
+    }
+
+    .card {
+        --bs-card-spacer-y: 1rem;
+        --bs-card-spacer-x: 1rem;
+        --bs-card-title-spacer-y: 0.5rem;
+        --bs-card-title-color: ;
+        --bs-card-subtitle-color: ;
+        --bs-card-border-width: var(--bs-border-width);
+        --bs-card-border-color: var(--bs-border-color-translucent);
+        --bs-card-border-radius: var(--bs-border-radius);
+        --bs-card-box-shadow: ;
+        --bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));
+        --bs-card-cap-padding-y: 0.5rem;
+        --bs-card-cap-padding-x: 1rem;
+        --bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03);
+        --bs-card-cap-color: ;
+        --bs-card-height: ;
+        --bs-card-color: ;
+        --bs-card-bg: var(--bs-body-bg);
+        --bs-card-img-overlay-padding: 1rem;
+        --bs-card-group-margin: 0.75rem;
+        position: relative;
+        display: flex;
+        flex-direction: column;
+        min-width: 0;
+        height: var(--bs-card-height);
+        color: var(--bs-body-color);
+        word-wrap: break-word;
+        background-color: var(--bs-card-bg);
+        background-clip: border-box;
+        border: var(--bs-card-border-width) solid var(--bs-card-border-color);
+        border-radius: var(--bs-card-border-radius);
+    }
+
+    .card > hr {
+        margin-right: 0;
+        margin-left: 0;
+    }
+
+    .card > .list-group {
+        border-top: inherit;
+        border-bottom: inherit;
+    }
+
+    .card > .list-group:first-child {
+        border-top-width: 0;
+        border-top-left-radius: var(--bs-card-inner-border-radius);
+        border-top-right-radius: var(--bs-card-inner-border-radius);
+    }
+
+    .card > .list-group:last-child {
+        border-bottom-width: 0;
+        border-bottom-right-radius: var(--bs-card-inner-border-radius);
+        border-bottom-left-radius: var(--bs-card-inner-border-radius);
+    }
+
+    .card > .card-header + .list-group,
+    .card > .list-group + .card-footer {
+        border-top: 0;
+    }
+
+    .card-body {
+        flex: 1 1 auto;
+        padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x);
+        color: var(--bs-card-color);
+    }
+
+    .card-title {
+        margin-bottom: var(--bs-card-title-spacer-y);
+        color: var(--bs-card-title-color);
+    }
+
+    .card-subtitle {
+        margin-top: calc(-0.5 * var(--bs-card-title-spacer-y));
+        margin-bottom: 0;
+        color: var(--bs-card-subtitle-color);
+    }
+
+    .card-text:last-child {
+        margin-bottom: 0;
+    }
+
+    .card-link + .card-link {
+        margin-left: var(--bs-card-spacer-x);
+    }
+
+    .card-header {
+        padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
+        margin-bottom: 0;
+        color: var(--bs-card-cap-color);
+        background-color: var(--bs-card-cap-bg);
+        border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color);
+    }
+
+    .card-header:first-child {
+        border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0;
+    }
+
+    .card-footer {
+        padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
+        color: var(--bs-card-cap-color);
+        background-color: var(--bs-card-cap-bg);
+        border-top: var(--bs-card-border-width) solid var(--bs-card-border-color);
+    }
+
+    .card-footer:last-child {
+        border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius);
+    }
+
+    .card-header-tabs {
+        margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));
+        margin-bottom: calc(-1 * var(--bs-card-cap-padding-y));
+        margin-left: calc(-0.5 * var(--bs-card-cap-padding-x));
+        border-bottom: 0;
+    }
+
+    .card-header-tabs .nav-link.active {
+        background-color: var(--bs-card-bg);
+        border-bottom-color: var(--bs-card-bg);
+    }
+
+    .card-header-pills {
+        margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));
+        margin-left: calc(-0.5 * var(--bs-card-cap-padding-x));
+    }
+
+    .card-img-overlay {
+        position: absolute;
+        top: 0;
+        right: 0;
+        bottom: 0;
+        left: 0;
+        padding: var(--bs-card-img-overlay-padding);
+        border-radius: var(--bs-card-inner-border-radius);
+    }
+
+    .card-img,
+    .card-img-top,
+    .card-img-bottom {
+        width: 100%;
+    }
+
+    .card-img,
+    .card-img-top {
+        border-top-left-radius: var(--bs-card-inner-border-radius);
+        border-top-right-radius: var(--bs-card-inner-border-radius);
+    }
+
+    .card-img,
+    .card-img-bottom {
+        border-bottom-right-radius: var(--bs-card-inner-border-radius);
+        border-bottom-left-radius: var(--bs-card-inner-border-radius);
+    }
+
+    .card-group > .card {
+        margin-bottom: var(--bs-card-group-margin);
+    }
+
+    @media (min-width: 576px) {
+        .card-group {
+            display: flex;
+            flex-flow: row wrap;
+        }
+
+        .card-group > .card {
+            flex: 1 0;
+            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-img-top,
+        .card-group > .card:not(:last-child) .card-header {
+            border-top-right-radius: 0;
+        }
+
+        .card-group > .card:not(:last-child) .card-img-bottom,
+        .card-group > .card:not(:last-child) .card-footer {
+            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-img-top,
+        .card-group > .card:not(:first-child) .card-header {
+            border-top-left-radius: 0;
+        }
+
+        .card-group > .card:not(:first-child) .card-img-bottom,
+        .card-group > .card:not(:first-child) .card-footer {
+            border-bottom-left-radius: 0;
+        }
+    }
+
+    .accordion {
+        --bs-accordion-color: var(--bs-body-color);
+        --bs-accordion-bg: var(--bs-body-bg);
+        --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;
+        --bs-accordion-border-color: var(--bs-border-color);
+        --bs-accordion-border-width: var(--bs-border-width);
+        --bs-accordion-border-radius: var(--bs-border-radius);
+        --bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));
+        --bs-accordion-btn-padding-x: 1.25rem;
+        --bs-accordion-btn-padding-y: 1rem;
+        --bs-accordion-btn-color: var(--bs-body-color);
+        --bs-accordion-btn-bg: var(--bs-accordion-bg);
+        --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23212529%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.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%27/%3e%3c/svg%3e");
+        --bs-accordion-btn-icon-width: 1.25rem;
+        --bs-accordion-btn-icon-transform: rotate(-180deg);
+        --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;
+        --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23052c65%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.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%27/%3e%3c/svg%3e");
+        --bs-accordion-btn-focus-border-color: #86b7fe;
+        --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+        --bs-accordion-body-padding-x: 1.25rem;
+        --bs-accordion-body-padding-y: 1rem;
+        --bs-accordion-active-color: var(--bs-primary-text-emphasis);
+        --bs-accordion-active-bg: var(--bs-primary-bg-subtle);
+    }
+
+    .accordion-button {
+        position: relative;
+        display: flex;
+        align-items: center;
+        width: 100%;
+        padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);
+        font-size: 1rem;
+        color: var(--bs-accordion-btn-color);
+        text-align: left;
+        background-color: var(--bs-accordion-btn-bg);
+        border: 0;
+        border-radius: 0;
+        overflow-anchor: none;
+        transition: var(--bs-accordion-transition);
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .accordion-button {
+            transition: none;
+        }
+    }
+
+    .accordion-button:not(.collapsed) {
+        color: var(--bs-accordion-active-color);
+        background-color: var(--bs-accordion-active-bg);
+        box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color);
+    }
+
+    .accordion-button:not(.collapsed)::after {
+        background-image: var(--bs-accordion-btn-active-icon);
+        transform: var(--bs-accordion-btn-icon-transform);
+    }
+
+    .accordion-button::after {
+        flex-shrink: 0;
+        width: var(--bs-accordion-btn-icon-width);
+        height: var(--bs-accordion-btn-icon-width);
+        margin-left: auto;
+        content: "";
+        background-image: var(--bs-accordion-btn-icon);
+        background-repeat: no-repeat;
+        background-size: var(--bs-accordion-btn-icon-width);
+        transition: var(--bs-accordion-btn-icon-transition);
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .accordion-button::after {
+            transition: none;
+        }
+    }
+
+    .accordion-button:hover {
+        z-index: 2;
+    }
+
+    .accordion-button:focus {
+        z-index: 3;
+        border-color: var(--bs-accordion-btn-focus-border-color);
+        outline: 0;
+        box-shadow: var(--bs-accordion-btn-focus-box-shadow);
+    }
+
+    .accordion-header {
+        margin-bottom: 0;
+    }
+
+    .accordion-item {
+        color: var(--bs-accordion-color);
+        background-color: var(--bs-accordion-bg);
+        border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);
+    }
+
+    .accordion-item:first-of-type {
+        border-top-left-radius: var(--bs-accordion-border-radius);
+        border-top-right-radius: var(--bs-accordion-border-radius);
+    }
+
+    .accordion-item:first-of-type .accordion-button {
+        border-top-left-radius: var(--bs-accordion-inner-border-radius);
+        border-top-right-radius: var(--bs-accordion-inner-border-radius);
+    }
+
+    .accordion-item:not(:first-of-type) {
+        border-top: 0;
+    }
+
+    .accordion-item:last-of-type {
+        border-bottom-right-radius: var(--bs-accordion-border-radius);
+        border-bottom-left-radius: var(--bs-accordion-border-radius);
+    }
+
+    .accordion-item:last-of-type .accordion-button.collapsed {
+        border-bottom-right-radius: var(--bs-accordion-inner-border-radius);
+        border-bottom-left-radius: var(--bs-accordion-inner-border-radius);
+    }
+
+    .accordion-item:last-of-type .accordion-collapse {
+        border-bottom-right-radius: var(--bs-accordion-border-radius);
+        border-bottom-left-radius: var(--bs-accordion-border-radius);
+    }
+
+    .accordion-body {
+        padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x);
+    }
+
+    .accordion-flush .accordion-collapse {
+        border-width: 0;
+    }
+
+    .accordion-flush .accordion-item {
+        border-right: 0;
+        border-left: 0;
+        border-radius: 0;
+    }
+
+    .accordion-flush .accordion-item:first-child {
+        border-top: 0;
+    }
+
+    .accordion-flush .accordion-item:last-child {
+        border-bottom: 0;
+    }
+
+    .accordion-flush .accordion-item .accordion-button, .accordion-flush .accordion-item .accordion-button.collapsed {
+        border-radius: 0;
+    }
+
+    [data-bs-theme=dark] .accordion-button::after {
+        --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%236ea8fe%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.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%27/%3e%3c/svg%3e");
+        --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%236ea8fe%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.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%27/%3e%3c/svg%3e");
+    }
+
+    .breadcrumb {
+        --bs-breadcrumb-padding-x: 0;
+        --bs-breadcrumb-padding-y: 0;
+        --bs-breadcrumb-margin-bottom: 1rem;
+        --bs-breadcrumb-bg: ;
+        --bs-breadcrumb-border-radius: ;
+        --bs-breadcrumb-divider-color: var(--bs-secondary-color);
+        --bs-breadcrumb-item-padding-x: 0.5rem;
+        --bs-breadcrumb-item-active-color: var(--bs-secondary-color);
+        display: flex;
+        flex-wrap: wrap;
+        padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);
+        margin-bottom: var(--bs-breadcrumb-margin-bottom);
+        font-size: var(--bs-breadcrumb-font-size);
+        list-style: none;
+        background-color: var(--bs-breadcrumb-bg);
+        border-radius: var(--bs-breadcrumb-border-radius);
+    }
+
+    .breadcrumb-item + .breadcrumb-item {
+        padding-left: var(--bs-breadcrumb-item-padding-x);
+    }
+
+    .breadcrumb-item + .breadcrumb-item::before {
+        float: left;
+        padding-right: var(--bs-breadcrumb-item-padding-x);
+        color: var(--bs-breadcrumb-divider-color);
+        content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */;
+    }
+
+    .breadcrumb-item.active {
+        color: var(--bs-breadcrumb-item-active-color);
+    }
+
+    .pagination {
+        --bs-pagination-padding-x: 0.75rem;
+        --bs-pagination-padding-y: 0.375rem;
+        --bs-pagination-font-size: 1rem;
+        --bs-pagination-color: var(--bs-link-color);
+        --bs-pagination-bg: var(--bs-body-bg);
+        --bs-pagination-border-width: var(--bs-border-width);
+        --bs-pagination-border-color: var(--bs-border-color);
+        --bs-pagination-border-radius: var(--bs-border-radius);
+        --bs-pagination-hover-color: var(--bs-link-hover-color);
+        --bs-pagination-hover-bg: var(--bs-tertiary-bg);
+        --bs-pagination-hover-border-color: var(--bs-border-color);
+        --bs-pagination-focus-color: var(--bs-link-hover-color);
+        --bs-pagination-focus-bg: var(--bs-secondary-bg);
+        --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+        --bs-pagination-active-color: #fff;
+        --bs-pagination-active-bg: #0d6efd;
+        --bs-pagination-active-border-color: #0d6efd;
+        --bs-pagination-disabled-color: var(--bs-secondary-color);
+        --bs-pagination-disabled-bg: var(--bs-secondary-bg);
+        --bs-pagination-disabled-border-color: var(--bs-border-color);
+        display: flex;
+        padding-left: 0;
+        list-style: none;
+    }
+
+    .page-link {
+        position: relative;
+        display: block;
+        padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);
+        font-size: var(--bs-pagination-font-size);
+        color: var(--bs-pagination-color);
+        text-decoration: none;
+        background-color: var(--bs-pagination-bg);
+        border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);
+        transition: color 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;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .page-link {
+            transition: none;
+        }
+    }
+
+    .page-link:hover {
+        z-index: 2;
+        color: var(--bs-pagination-hover-color);
+        background-color: var(--bs-pagination-hover-bg);
+        border-color: var(--bs-pagination-hover-border-color);
+    }
+
+    .page-link:focus {
+        z-index: 3;
+        color: var(--bs-pagination-focus-color);
+        background-color: var(--bs-pagination-focus-bg);
+        outline: 0;
+        box-shadow: var(--bs-pagination-focus-box-shadow);
+    }
+
+    .page-link.active, .active > .page-link {
+        z-index: 3;
+        color: var(--bs-pagination-active-color);
+        background-color: var(--bs-pagination-active-bg);
+        border-color: var(--bs-pagination-active-border-color);
+    }
+
+    .page-link.disabled, .disabled > .page-link {
+        color: var(--bs-pagination-disabled-color);
+        pointer-events: none;
+        background-color: var(--bs-pagination-disabled-bg);
+        border-color: var(--bs-pagination-disabled-border-color);
+    }
+
+    .page-item:not(:first-child) .page-link {
+        margin-left: calc(var(--bs-border-width) * -1);
+    }
+
+    .page-item:first-child .page-link {
+        border-top-left-radius: var(--bs-pagination-border-radius);
+        border-bottom-left-radius: var(--bs-pagination-border-radius);
+    }
+
+    .page-item:last-child .page-link {
+        border-top-right-radius: var(--bs-pagination-border-radius);
+        border-bottom-right-radius: var(--bs-pagination-border-radius);
+    }
+
+    .pagination-lg {
+        --bs-pagination-padding-x: 1.5rem;
+        --bs-pagination-padding-y: 0.75rem;
+        --bs-pagination-font-size: 1.25rem;
+        --bs-pagination-border-radius: var(--bs-border-radius-lg);
+    }
+
+    .pagination-sm {
+        --bs-pagination-padding-x: 0.5rem;
+        --bs-pagination-padding-y: 0.25rem;
+        --bs-pagination-font-size: 0.875rem;
+        --bs-pagination-border-radius: var(--bs-border-radius-sm);
+    }
+
+    .badge {
+        --bs-badge-padding-x: 0.65em;
+        --bs-badge-padding-y: 0.35em;
+        --bs-badge-font-size: 0.75em;
+        --bs-badge-font-weight: 700;
+        --bs-badge-color: #fff;
+        --bs-badge-border-radius: var(--bs-border-radius);
+        display: inline-block;
+        padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x);
+        font-size: var(--bs-badge-font-size);
+        font-weight: var(--bs-badge-font-weight);
+        line-height: 1;
+        color: var(--bs-badge-color);
+        text-align: center;
+        white-space: nowrap;
+        vertical-align: baseline;
+        border-radius: var(--bs-badge-border-radius);
+    }
+
+    .badge:empty {
+        display: none;
+    }
+
+    .btn .badge {
+        position: relative;
+        top: -1px;
+    }
+
+    .alert {
+        --bs-alert-bg: transparent;
+        --bs-alert-padding-x: 1rem;
+        --bs-alert-padding-y: 1rem;
+        --bs-alert-margin-bottom: 1rem;
+        --bs-alert-color: inherit;
+        --bs-alert-border-color: transparent;
+        --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);
+        --bs-alert-border-radius: var(--bs-border-radius);
+        --bs-alert-link-color: inherit;
+        position: relative;
+        padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x);
+        margin-bottom: var(--bs-alert-margin-bottom);
+        color: var(--bs-alert-color);
+        background-color: var(--bs-alert-bg);
+        border: var(--bs-alert-border);
+        border-radius: var(--bs-alert-border-radius);
+    }
+
+    .alert-heading {
+        color: inherit;
+    }
+
+    .alert-link {
+        font-weight: 700;
+        color: var(--bs-alert-link-color);
+    }
+
+    .alert-dismissible {
+        padding-right: 3rem;
+    }
+
+    .alert-dismissible .btn-close {
+        position: absolute;
+        top: 0;
+        right: 0;
+        z-index: 2;
+        padding: 1.25rem 1rem;
+    }
+
+    .alert-primary {
+        --bs-alert-color: var(--bs-primary-text-emphasis);
+        --bs-alert-bg: var(--bs-primary-bg-subtle);
+        --bs-alert-border-color: var(--bs-primary-border-subtle);
+        --bs-alert-link-color: var(--bs-primary-text-emphasis);
+    }
+
+    .alert-secondary {
+        --bs-alert-color: var(--bs-secondary-text-emphasis);
+        --bs-alert-bg: var(--bs-secondary-bg-subtle);
+        --bs-alert-border-color: var(--bs-secondary-border-subtle);
+        --bs-alert-link-color: var(--bs-secondary-text-emphasis);
+    }
+
+    .alert-success {
+        --bs-alert-color: var(--bs-success-text-emphasis);
+        --bs-alert-bg: var(--bs-success-bg-subtle);
+        --bs-alert-border-color: var(--bs-success-border-subtle);
+        --bs-alert-link-color: var(--bs-success-text-emphasis);
+    }
+
+    .alert-info {
+        --bs-alert-color: var(--bs-info-text-emphasis);
+        --bs-alert-bg: var(--bs-info-bg-subtle);
+        --bs-alert-border-color: var(--bs-info-border-subtle);
+        --bs-alert-link-color: var(--bs-info-text-emphasis);
+    }
+
+    .alert-warning {
+        --bs-alert-color: var(--bs-warning-text-emphasis);
+        --bs-alert-bg: var(--bs-warning-bg-subtle);
+        --bs-alert-border-color: var(--bs-warning-border-subtle);
+        --bs-alert-link-color: var(--bs-warning-text-emphasis);
+    }
+
+    .alert-danger {
+        --bs-alert-color: var(--bs-danger-text-emphasis);
+        --bs-alert-bg: var(--bs-danger-bg-subtle);
+        --bs-alert-border-color: var(--bs-danger-border-subtle);
+        --bs-alert-link-color: var(--bs-danger-text-emphasis);
+    }
+
+    .alert-light {
+        --bs-alert-color: var(--bs-light-text-emphasis);
+        --bs-alert-bg: var(--bs-light-bg-subtle);
+        --bs-alert-border-color: var(--bs-light-border-subtle);
+        --bs-alert-link-color: var(--bs-light-text-emphasis);
+    }
+
+    .alert-dark {
+        --bs-alert-color: var(--bs-dark-text-emphasis);
+        --bs-alert-bg: var(--bs-dark-bg-subtle);
+        --bs-alert-border-color: var(--bs-dark-border-subtle);
+        --bs-alert-link-color: var(--bs-dark-text-emphasis);
+    }
+
+    @keyframes progress-bar-stripes {
+        0% {
+            background-position-x: 1rem;
+        }
+    }
+
+    .progress,
+    .progress-stacked {
+        --bs-progress-height: 1rem;
+        --bs-progress-font-size: 0.75rem;
+        --bs-progress-bg: var(--bs-secondary-bg);
+        --bs-progress-border-radius: var(--bs-border-radius);
+        --bs-progress-box-shadow: var(--bs-box-shadow-inset);
+        --bs-progress-bar-color: #fff;
+        --bs-progress-bar-bg: #0d6efd;
+        --bs-progress-bar-transition: width 0.6s ease;
+        display: flex;
+        height: var(--bs-progress-height);
+        overflow: hidden;
+        font-size: var(--bs-progress-font-size);
+        background-color: var(--bs-progress-bg);
+        border-radius: var(--bs-progress-border-radius);
+    }
+
+    .progress-bar {
+        display: flex;
+        flex-direction: column;
+        justify-content: center;
+        overflow: hidden;
+        color: var(--bs-progress-bar-color);
+        text-align: center;
+        white-space: nowrap;
+        background-color: var(--bs-progress-bar-bg);
+        transition: var(--bs-progress-bar-transition);
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .progress-bar {
+            transition: none;
+        }
+    }
+
+    .progress-bar-striped {
+        background-image: linear-gradient(45deg, rgba(255, 255, 255, 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: var(--bs-progress-height) var(--bs-progress-height);
+    }
+
+    .progress-stacked > .progress {
+        overflow: visible;
+    }
+
+    .progress-stacked > .progress > .progress-bar {
+        width: 100%;
+    }
+
+    .progress-bar-animated {
+        animation: 1s linear infinite progress-bar-stripes;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .progress-bar-animated {
+            animation: none;
+        }
+    }
+
+    .list-group {
+        --bs-list-group-color: var(--bs-body-color);
+        --bs-list-group-bg: var(--bs-body-bg);
+        --bs-list-group-border-color: var(--bs-border-color);
+        --bs-list-group-border-width: var(--bs-border-width);
+        --bs-list-group-border-radius: var(--bs-border-radius);
+        --bs-list-group-item-padding-x: 1rem;
+        --bs-list-group-item-padding-y: 0.5rem;
+        --bs-list-group-action-color: var(--bs-secondary-color);
+        --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+        --bs-list-group-action-hover-bg: var(--bs-tertiary-bg);
+        --bs-list-group-action-active-color: var(--bs-body-color);
+        --bs-list-group-action-active-bg: var(--bs-secondary-bg);
+        --bs-list-group-disabled-color: var(--bs-secondary-color);
+        --bs-list-group-disabled-bg: var(--bs-body-bg);
+        --bs-list-group-active-color: #fff;
+        --bs-list-group-active-bg: #0d6efd;
+        --bs-list-group-active-border-color: #0d6efd;
+        display: flex;
+        flex-direction: column;
+        padding-left: 0;
+        margin-bottom: 0;
+        border-radius: var(--bs-list-group-border-radius);
+    }
+
+    .list-group-numbered {
+        list-style-type: none;
+        counter-reset: section;
+    }
+
+    .list-group-numbered > .list-group-item::before {
+        content: counters(section, ".") ". ";
+        counter-increment: section;
+    }
+
+    .list-group-item-action {
+        width: 100%;
+        color: var(--bs-list-group-action-color);
+        text-align: inherit;
+    }
+
+    .list-group-item-action:hover, .list-group-item-action:focus {
+        z-index: 1;
+        color: var(--bs-list-group-action-hover-color);
+        text-decoration: none;
+        background-color: var(--bs-list-group-action-hover-bg);
+    }
+
+    .list-group-item-action:active {
+        color: var(--bs-list-group-action-active-color);
+        background-color: var(--bs-list-group-action-active-bg);
+    }
+
+    .list-group-item {
+        position: relative;
+        display: block;
+        padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);
+        color: var(--bs-list-group-color);
+        text-decoration: none;
+        background-color: var(--bs-list-group-bg);
+        border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color);
+    }
+
+    .list-group-item:first-child {
+        border-top-left-radius: inherit;
+        border-top-right-radius: inherit;
+    }
+
+    .list-group-item:last-child {
+        border-bottom-right-radius: inherit;
+        border-bottom-left-radius: inherit;
+    }
+
+    .list-group-item.disabled, .list-group-item:disabled {
+        color: var(--bs-list-group-disabled-color);
+        pointer-events: none;
+        background-color: var(--bs-list-group-disabled-bg);
+    }
+
+    .list-group-item.active {
+        z-index: 2;
+        color: var(--bs-list-group-active-color);
+        background-color: var(--bs-list-group-active-bg);
+        border-color: var(--bs-list-group-active-border-color);
+    }
+
+    .list-group-item + .list-group-item {
+        border-top-width: 0;
+    }
+
+    .list-group-item + .list-group-item.active {
+        margin-top: calc(-1 * var(--bs-list-group-border-width));
+        border-top-width: var(--bs-list-group-border-width);
+    }
+
+    .list-group-horizontal {
+        flex-direction: row;
+    }
+
+    .list-group-horizontal > .list-group-item:first-child:not(:last-child) {
+        border-bottom-left-radius: var(--bs-list-group-border-radius);
+        border-top-right-radius: 0;
+    }
+
+    .list-group-horizontal > .list-group-item:last-child:not(:first-child) {
+        border-top-right-radius: var(--bs-list-group-border-radius);
+        border-bottom-left-radius: 0;
+    }
+
+    .list-group-horizontal > .list-group-item.active {
+        margin-top: 0;
+    }
+
+    .list-group-horizontal > .list-group-item + .list-group-item {
+        border-top-width: var(--bs-list-group-border-width);
+        border-left-width: 0;
+    }
+
+    .list-group-horizontal > .list-group-item + .list-group-item.active {
+        margin-left: calc(-1 * var(--bs-list-group-border-width));
+        border-left-width: var(--bs-list-group-border-width);
+    }
+
+    @media (min-width: 576px) {
+        .list-group-horizontal-sm {
+            flex-direction: row;
+        }
+
+        .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) {
+            border-bottom-left-radius: var(--bs-list-group-border-radius);
+            border-top-right-radius: 0;
+        }
+
+        .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) {
+            border-top-right-radius: var(--bs-list-group-border-radius);
+            border-bottom-left-radius: 0;
+        }
+
+        .list-group-horizontal-sm > .list-group-item.active {
+            margin-top: 0;
+        }
+
+        .list-group-horizontal-sm > .list-group-item + .list-group-item {
+            border-top-width: var(--bs-list-group-border-width);
+            border-left-width: 0;
+        }
+
+        .list-group-horizontal-sm > .list-group-item + .list-group-item.active {
+            margin-left: calc(-1 * var(--bs-list-group-border-width));
+            border-left-width: var(--bs-list-group-border-width);
+        }
+    }
+
+    @media (min-width: 768px) {
+        .list-group-horizontal-md {
+            flex-direction: row;
+        }
+
+        .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) {
+            border-bottom-left-radius: var(--bs-list-group-border-radius);
+            border-top-right-radius: 0;
+        }
+
+        .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) {
+            border-top-right-radius: var(--bs-list-group-border-radius);
+            border-bottom-left-radius: 0;
+        }
+
+        .list-group-horizontal-md > .list-group-item.active {
+            margin-top: 0;
+        }
+
+        .list-group-horizontal-md > .list-group-item + .list-group-item {
+            border-top-width: var(--bs-list-group-border-width);
+            border-left-width: 0;
+        }
+
+        .list-group-horizontal-md > .list-group-item + .list-group-item.active {
+            margin-left: calc(-1 * var(--bs-list-group-border-width));
+            border-left-width: var(--bs-list-group-border-width);
+        }
+    }
+
+    @media (min-width: 992px) {
+        .list-group-horizontal-lg {
+            flex-direction: row;
+        }
+
+        .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) {
+            border-bottom-left-radius: var(--bs-list-group-border-radius);
+            border-top-right-radius: 0;
+        }
+
+        .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) {
+            border-top-right-radius: var(--bs-list-group-border-radius);
+            border-bottom-left-radius: 0;
+        }
+
+        .list-group-horizontal-lg > .list-group-item.active {
+            margin-top: 0;
+        }
+
+        .list-group-horizontal-lg > .list-group-item + .list-group-item {
+            border-top-width: var(--bs-list-group-border-width);
+            border-left-width: 0;
+        }
+
+        .list-group-horizontal-lg > .list-group-item + .list-group-item.active {
+            margin-left: calc(-1 * var(--bs-list-group-border-width));
+            border-left-width: var(--bs-list-group-border-width);
+        }
+    }
+
+    @media (min-width: 1200px) {
+        .list-group-horizontal-xl {
+            flex-direction: row;
+        }
+
+        .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) {
+            border-bottom-left-radius: var(--bs-list-group-border-radius);
+            border-top-right-radius: 0;
+        }
+
+        .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) {
+            border-top-right-radius: var(--bs-list-group-border-radius);
+            border-bottom-left-radius: 0;
+        }
+
+        .list-group-horizontal-xl > .list-group-item.active {
+            margin-top: 0;
+        }
+
+        .list-group-horizontal-xl > .list-group-item + .list-group-item {
+            border-top-width: var(--bs-list-group-border-width);
+            border-left-width: 0;
+        }
+
+        .list-group-horizontal-xl > .list-group-item + .list-group-item.active {
+            margin-left: calc(-1 * var(--bs-list-group-border-width));
+            border-left-width: var(--bs-list-group-border-width);
+        }
+    }
+
+    @media (min-width: 1400px) {
+        .list-group-horizontal-xxl {
+            flex-direction: row;
+        }
+
+        .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) {
+            border-bottom-left-radius: var(--bs-list-group-border-radius);
+            border-top-right-radius: 0;
+        }
+
+        .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) {
+            border-top-right-radius: var(--bs-list-group-border-radius);
+            border-bottom-left-radius: 0;
+        }
+
+        .list-group-horizontal-xxl > .list-group-item.active {
+            margin-top: 0;
+        }
+
+        .list-group-horizontal-xxl > .list-group-item + .list-group-item {
+            border-top-width: var(--bs-list-group-border-width);
+            border-left-width: 0;
+        }
+
+        .list-group-horizontal-xxl > .list-group-item + .list-group-item.active {
+            margin-left: calc(-1 * var(--bs-list-group-border-width));
+            border-left-width: var(--bs-list-group-border-width);
+        }
+    }
+
+    .list-group-flush {
+        border-radius: 0;
+    }
+
+    .list-group-flush > .list-group-item {
+        border-width: 0 0 var(--bs-list-group-border-width);
+    }
+
+    .list-group-flush > .list-group-item:last-child {
+        border-bottom-width: 0;
+    }
+
+    .list-group-item-primary {
+        --bs-list-group-color: var(--bs-primary-text-emphasis);
+        --bs-list-group-bg: var(--bs-primary-bg-subtle);
+        --bs-list-group-border-color: var(--bs-primary-border-subtle);
+        --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+        --bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);
+        --bs-list-group-action-active-color: var(--bs-emphasis-color);
+        --bs-list-group-action-active-bg: var(--bs-primary-border-subtle);
+        --bs-list-group-active-color: var(--bs-primary-bg-subtle);
+        --bs-list-group-active-bg: var(--bs-primary-text-emphasis);
+        --bs-list-group-active-border-color: var(--bs-primary-text-emphasis);
+    }
+
+    .list-group-item-secondary {
+        --bs-list-group-color: var(--bs-secondary-text-emphasis);
+        --bs-list-group-bg: var(--bs-secondary-bg-subtle);
+        --bs-list-group-border-color: var(--bs-secondary-border-subtle);
+        --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+        --bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);
+        --bs-list-group-action-active-color: var(--bs-emphasis-color);
+        --bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);
+        --bs-list-group-active-color: var(--bs-secondary-bg-subtle);
+        --bs-list-group-active-bg: var(--bs-secondary-text-emphasis);
+        --bs-list-group-active-border-color: var(--bs-secondary-text-emphasis);
+    }
+
+    .list-group-item-success {
+        --bs-list-group-color: var(--bs-success-text-emphasis);
+        --bs-list-group-bg: var(--bs-success-bg-subtle);
+        --bs-list-group-border-color: var(--bs-success-border-subtle);
+        --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+        --bs-list-group-action-hover-bg: var(--bs-success-border-subtle);
+        --bs-list-group-action-active-color: var(--bs-emphasis-color);
+        --bs-list-group-action-active-bg: var(--bs-success-border-subtle);
+        --bs-list-group-active-color: var(--bs-success-bg-subtle);
+        --bs-list-group-active-bg: var(--bs-success-text-emphasis);
+        --bs-list-group-active-border-color: var(--bs-success-text-emphasis);
+    }
+
+    .list-group-item-info {
+        --bs-list-group-color: var(--bs-info-text-emphasis);
+        --bs-list-group-bg: var(--bs-info-bg-subtle);
+        --bs-list-group-border-color: var(--bs-info-border-subtle);
+        --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+        --bs-list-group-action-hover-bg: var(--bs-info-border-subtle);
+        --bs-list-group-action-active-color: var(--bs-emphasis-color);
+        --bs-list-group-action-active-bg: var(--bs-info-border-subtle);
+        --bs-list-group-active-color: var(--bs-info-bg-subtle);
+        --bs-list-group-active-bg: var(--bs-info-text-emphasis);
+        --bs-list-group-active-border-color: var(--bs-info-text-emphasis);
+    }
+
+    .list-group-item-warning {
+        --bs-list-group-color: var(--bs-warning-text-emphasis);
+        --bs-list-group-bg: var(--bs-warning-bg-subtle);
+        --bs-list-group-border-color: var(--bs-warning-border-subtle);
+        --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+        --bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);
+        --bs-list-group-action-active-color: var(--bs-emphasis-color);
+        --bs-list-group-action-active-bg: var(--bs-warning-border-subtle);
+        --bs-list-group-active-color: var(--bs-warning-bg-subtle);
+        --bs-list-group-active-bg: var(--bs-warning-text-emphasis);
+        --bs-list-group-active-border-color: var(--bs-warning-text-emphasis);
+    }
+
+    .list-group-item-danger {
+        --bs-list-group-color: var(--bs-danger-text-emphasis);
+        --bs-list-group-bg: var(--bs-danger-bg-subtle);
+        --bs-list-group-border-color: var(--bs-danger-border-subtle);
+        --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+        --bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);
+        --bs-list-group-action-active-color: var(--bs-emphasis-color);
+        --bs-list-group-action-active-bg: var(--bs-danger-border-subtle);
+        --bs-list-group-active-color: var(--bs-danger-bg-subtle);
+        --bs-list-group-active-bg: var(--bs-danger-text-emphasis);
+        --bs-list-group-active-border-color: var(--bs-danger-text-emphasis);
+    }
+
+    .list-group-item-light {
+        --bs-list-group-color: var(--bs-light-text-emphasis);
+        --bs-list-group-bg: var(--bs-light-bg-subtle);
+        --bs-list-group-border-color: var(--bs-light-border-subtle);
+        --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+        --bs-list-group-action-hover-bg: var(--bs-light-border-subtle);
+        --bs-list-group-action-active-color: var(--bs-emphasis-color);
+        --bs-list-group-action-active-bg: var(--bs-light-border-subtle);
+        --bs-list-group-active-color: var(--bs-light-bg-subtle);
+        --bs-list-group-active-bg: var(--bs-light-text-emphasis);
+        --bs-list-group-active-border-color: var(--bs-light-text-emphasis);
+    }
+
+    .list-group-item-dark {
+        --bs-list-group-color: var(--bs-dark-text-emphasis);
+        --bs-list-group-bg: var(--bs-dark-bg-subtle);
+        --bs-list-group-border-color: var(--bs-dark-border-subtle);
+        --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+        --bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);
+        --bs-list-group-action-active-color: var(--bs-emphasis-color);
+        --bs-list-group-action-active-bg: var(--bs-dark-border-subtle);
+        --bs-list-group-active-color: var(--bs-dark-bg-subtle);
+        --bs-list-group-active-bg: var(--bs-dark-text-emphasis);
+        --bs-list-group-active-border-color: var(--bs-dark-text-emphasis);
+    }
+
+    .btn-close {
+        --bs-btn-close-color: #000;
+        --bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23000%27%3e%3cpath d=%27M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z%27/%3e%3c/svg%3e");
+        --bs-btn-close-opacity: 0.5;
+        --bs-btn-close-hover-opacity: 0.75;
+        --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+        --bs-btn-close-focus-opacity: 1;
+        --bs-btn-close-disabled-opacity: 0.25;
+        --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);
+        box-sizing: content-box;
+        width: 1em;
+        height: 1em;
+        padding: 0.25em 0.25em;
+        color: var(--bs-btn-close-color);
+        background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat;
+        border: 0;
+        border-radius: 0.375rem;
+        opacity: var(--bs-btn-close-opacity);
+    }
+
+    .btn-close:hover {
+        color: var(--bs-btn-close-color);
+        text-decoration: none;
+        opacity: var(--bs-btn-close-hover-opacity);
+    }
+
+    .btn-close:focus {
+        outline: 0;
+        box-shadow: var(--bs-btn-close-focus-shadow);
+        opacity: var(--bs-btn-close-focus-opacity);
+    }
+
+    .btn-close:disabled, .btn-close.disabled {
+        pointer-events: none;
+        -webkit-user-select: none;
+        user-select: none;
+        opacity: var(--bs-btn-close-disabled-opacity);
+    }
+
+    .btn-close-white {
+        filter: var(--bs-btn-close-white-filter);
+    }
+
+    [data-bs-theme=dark] .btn-close {
+        filter: var(--bs-btn-close-white-filter);
+    }
+
+    .toast {
+        --bs-toast-zindex: 1090;
+        --bs-toast-padding-x: 0.75rem;
+        --bs-toast-padding-y: 0.5rem;
+        --bs-toast-spacing: 1.5rem;
+        --bs-toast-max-width: 350px;
+        --bs-toast-font-size: 0.875rem;
+        --bs-toast-color: ;
+        --bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85);
+        --bs-toast-border-width: var(--bs-border-width);
+        --bs-toast-border-color: var(--bs-border-color-translucent);
+        --bs-toast-border-radius: var(--bs-border-radius);
+        --bs-toast-box-shadow: var(--bs-box-shadow);
+        --bs-toast-header-color: var(--bs-secondary-color);
+        --bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85);
+        --bs-toast-header-border-color: var(--bs-border-color-translucent);
+        width: var(--bs-toast-max-width);
+        max-width: 100%;
+        font-size: var(--bs-toast-font-size);
+        color: var(--bs-toast-color);
+        pointer-events: auto;
+        background-color: var(--bs-toast-bg);
+        background-clip: padding-box;
+        border: var(--bs-toast-border-width) solid var(--bs-toast-border-color);
+        box-shadow: var(--bs-toast-box-shadow);
+        border-radius: var(--bs-toast-border-radius);
+    }
+
+    .toast.showing {
+        opacity: 0;
+    }
+
+    .toast:not(.show) {
+        display: none;
+    }
+
+    .toast-container {
+        --bs-toast-zindex: 1090;
+        position: absolute;
+        z-index: var(--bs-toast-zindex);
+        width: max-content;
+        max-width: 100%;
+        pointer-events: none;
+    }
+
+    .toast-container > :not(:last-child) {
+        margin-bottom: var(--bs-toast-spacing);
+    }
+
+    .toast-header {
+        display: flex;
+        align-items: center;
+        padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x);
+        color: var(--bs-toast-header-color);
+        background-color: var(--bs-toast-header-bg);
+        background-clip: padding-box;
+        border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);
+        border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));
+        border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));
+    }
+
+    .toast-header .btn-close {
+        margin-right: calc(-0.5 * var(--bs-toast-padding-x));
+        margin-left: var(--bs-toast-padding-x);
+    }
+
+    .toast-body {
+        padding: var(--bs-toast-padding-x);
+        word-wrap: break-word;
+    }
+
+    .modal {
+        --bs-modal-zindex: 1055;
+        --bs-modal-width: 500px;
+        --bs-modal-padding: 1rem;
+        --bs-modal-margin: 0.5rem;
+        --bs-modal-color: ;
+        --bs-modal-bg: var(--bs-body-bg);
+        --bs-modal-border-color: var(--bs-border-color-translucent);
+        --bs-modal-border-width: var(--bs-border-width);
+        --bs-modal-border-radius: var(--bs-border-radius-lg);
+        --bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
+        --bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));
+        --bs-modal-header-padding-x: 1rem;
+        --bs-modal-header-padding-y: 1rem;
+        --bs-modal-header-padding: 1rem 1rem;
+        --bs-modal-header-border-color: var(--bs-border-color);
+        --bs-modal-header-border-width: var(--bs-border-width);
+        --bs-modal-title-line-height: 1.5;
+        --bs-modal-footer-gap: 0.5rem;
+        --bs-modal-footer-bg: ;
+        --bs-modal-footer-border-color: var(--bs-border-color);
+        --bs-modal-footer-border-width: var(--bs-border-width);
+        position: fixed;
+        top: 0;
+        left: 0;
+        z-index: var(--bs-modal-zindex);
+        display: none;
+        width: 100%;
+        height: 100%;
+        overflow-x: hidden;
+        overflow-y: auto;
+        outline: 0;
+    }
+
+    .modal-dialog {
+        position: relative;
+        width: auto;
+        margin: var(--bs-modal-margin);
+        pointer-events: none;
+    }
+
+    .modal.fade .modal-dialog {
+        transition: transform 0.3s ease-out;
+        transform: translate(0, -50px);
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .modal.fade .modal-dialog {
+            transition: none;
+        }
+    }
+
+    .modal.show .modal-dialog {
+        transform: none;
+    }
+
+    .modal.modal-static .modal-dialog {
+        transform: scale(1.02);
+    }
+
+    .modal-dialog-scrollable {
+        height: calc(100% - var(--bs-modal-margin) * 2);
+    }
+
+    .modal-dialog-scrollable .modal-content {
+        max-height: 100%;
+        overflow: hidden;
+    }
+
+    .modal-dialog-scrollable .modal-body {
+        overflow-y: auto;
+    }
+
+    .modal-dialog-centered {
+        display: flex;
+        align-items: center;
+        min-height: calc(100% - var(--bs-modal-margin) * 2);
+    }
+
+    .modal-content {
+        position: relative;
+        display: flex;
+        flex-direction: column;
+        width: 100%;
+        color: var(--bs-modal-color);
+        pointer-events: auto;
+        background-color: var(--bs-modal-bg);
+        background-clip: padding-box;
+        border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);
+        border-radius: var(--bs-modal-border-radius);
+        outline: 0;
+    }
+
+    .modal-backdrop {
+        --bs-backdrop-zindex: 1050;
+        --bs-backdrop-bg: #000;
+        --bs-backdrop-opacity: 0.5;
+        position: fixed;
+        top: 0;
+        left: 0;
+        z-index: var(--bs-backdrop-zindex);
+        width: 100vw;
+        height: 100vh;
+        background-color: var(--bs-backdrop-bg);
+    }
+
+    .modal-backdrop.fade {
+        opacity: 0;
+    }
+
+    .modal-backdrop.show {
+        opacity: var(--bs-backdrop-opacity);
+    }
+
+    .modal-header {
+        display: flex;
+        flex-shrink: 0;
+        align-items: center;
+        justify-content: space-between;
+        padding: var(--bs-modal-header-padding);
+        border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);
+        border-top-left-radius: var(--bs-modal-inner-border-radius);
+        border-top-right-radius: var(--bs-modal-inner-border-radius);
+    }
+
+    .modal-header .btn-close {
+        padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5);
+        margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto;
+    }
+
+    .modal-title {
+        margin-bottom: 0;
+        line-height: var(--bs-modal-title-line-height);
+    }
+
+    .modal-body {
+        position: relative;
+        flex: 1 1 auto;
+        padding: var(--bs-modal-padding);
+    }
+
+    .modal-footer {
+        display: flex;
+        flex-shrink: 0;
+        flex-wrap: wrap;
+        align-items: center;
+        justify-content: flex-end;
+        padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5);
+        background-color: var(--bs-modal-footer-bg);
+        border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);
+        border-bottom-right-radius: var(--bs-modal-inner-border-radius);
+        border-bottom-left-radius: var(--bs-modal-inner-border-radius);
+    }
+
+    .modal-footer > * {
+        margin: calc(var(--bs-modal-footer-gap) * 0.5);
+    }
+
+    @media (min-width: 576px) {
+        .modal {
+            --bs-modal-margin: 1.75rem;
+            --bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+        }
+
+        .modal-dialog {
+            max-width: var(--bs-modal-width);
+            margin-right: auto;
+            margin-left: auto;
+        }
+
+        .modal-sm {
+            --bs-modal-width: 300px;
+        }
+    }
+
+    @media (min-width: 992px) {
+        .modal-lg,
+        .modal-xl {
+            --bs-modal-width: 800px;
+        }
+    }
+
+    @media (min-width: 1200px) {
+        .modal-xl {
+            --bs-modal-width: 1140px;
+        }
+    }
+
+    .modal-fullscreen {
+        width: 100vw;
+        max-width: none;
+        height: 100%;
+        margin: 0;
+    }
+
+    .modal-fullscreen .modal-content {
+        height: 100%;
+        border: 0;
+        border-radius: 0;
+    }
+
+    .modal-fullscreen .modal-header,
+    .modal-fullscreen .modal-footer {
+        border-radius: 0;
+    }
+
+    .modal-fullscreen .modal-body {
+        overflow-y: auto;
+    }
+
+    @media (max-width: 575.98px) {
+        .modal-fullscreen-sm-down {
+            width: 100vw;
+            max-width: none;
+            height: 100%;
+            margin: 0;
+        }
+
+        .modal-fullscreen-sm-down .modal-content {
+            height: 100%;
+            border: 0;
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-sm-down .modal-header,
+        .modal-fullscreen-sm-down .modal-footer {
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-sm-down .modal-body {
+            overflow-y: auto;
+        }
+    }
+
+    @media (max-width: 767.98px) {
+        .modal-fullscreen-md-down {
+            width: 100vw;
+            max-width: none;
+            height: 100%;
+            margin: 0;
+        }
+
+        .modal-fullscreen-md-down .modal-content {
+            height: 100%;
+            border: 0;
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-md-down .modal-header,
+        .modal-fullscreen-md-down .modal-footer {
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-md-down .modal-body {
+            overflow-y: auto;
+        }
+    }
+
+    @media (max-width: 991.98px) {
+        .modal-fullscreen-lg-down {
+            width: 100vw;
+            max-width: none;
+            height: 100%;
+            margin: 0;
+        }
+
+        .modal-fullscreen-lg-down .modal-content {
+            height: 100%;
+            border: 0;
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-lg-down .modal-header,
+        .modal-fullscreen-lg-down .modal-footer {
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-lg-down .modal-body {
+            overflow-y: auto;
+        }
+    }
+
+    @media (max-width: 1199.98px) {
+        .modal-fullscreen-xl-down {
+            width: 100vw;
+            max-width: none;
+            height: 100%;
+            margin: 0;
+        }
+
+        .modal-fullscreen-xl-down .modal-content {
+            height: 100%;
+            border: 0;
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-xl-down .modal-header,
+        .modal-fullscreen-xl-down .modal-footer {
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-xl-down .modal-body {
+            overflow-y: auto;
+        }
+    }
+
+    @media (max-width: 1399.98px) {
+        .modal-fullscreen-xxl-down {
+            width: 100vw;
+            max-width: none;
+            height: 100%;
+            margin: 0;
+        }
+
+        .modal-fullscreen-xxl-down .modal-content {
+            height: 100%;
+            border: 0;
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-xxl-down .modal-header,
+        .modal-fullscreen-xxl-down .modal-footer {
+            border-radius: 0;
+        }
+
+        .modal-fullscreen-xxl-down .modal-body {
+            overflow-y: auto;
+        }
+    }
+
+    .tooltip {
+        --bs-tooltip-zindex: 1080;
+        --bs-tooltip-max-width: 200px;
+        --bs-tooltip-padding-x: 0.5rem;
+        --bs-tooltip-padding-y: 0.25rem;
+        --bs-tooltip-margin: ;
+        --bs-tooltip-font-size: 0.875rem;
+        --bs-tooltip-color: var(--bs-body-bg);
+        --bs-tooltip-bg: var(--bs-emphasis-color);
+        --bs-tooltip-border-radius: var(--bs-border-radius);
+        --bs-tooltip-opacity: 0.9;
+        --bs-tooltip-arrow-width: 0.8rem;
+        --bs-tooltip-arrow-height: 0.4rem;
+        z-index: var(--bs-tooltip-zindex);
+        display: block;
+        margin: var(--bs-tooltip-margin);
+        font-family: var(--bs-font-sans-serif);
+        font-style: normal;
+        font-weight: 400;
+        line-height: 1.5;
+        text-align: left;
+        text-align: start;
+        text-decoration: none;
+        text-shadow: none;
+        text-transform: none;
+        letter-spacing: normal;
+        word-break: normal;
+        white-space: normal;
+        word-spacing: normal;
+        line-break: auto;
+        font-size: var(--bs-tooltip-font-size);
+        word-wrap: break-word;
+        opacity: 0;
+    }
+
+    .tooltip.show {
+        opacity: var(--bs-tooltip-opacity);
+    }
+
+    .tooltip .tooltip-arrow {
+        display: block;
+        width: var(--bs-tooltip-arrow-width);
+        height: var(--bs-tooltip-arrow-height);
+    }
+
+    .tooltip .tooltip-arrow::before {
+        position: absolute;
+        content: "";
+        border-color: transparent;
+        border-style: solid;
+    }
+
+    .bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow {
+        bottom: calc(-1 * var(--bs-tooltip-arrow-height));
+    }
+
+    .bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {
+        top: -1px;
+        border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0;
+        border-top-color: var(--bs-tooltip-bg);
+    }
+
+    /* rtl:begin:ignore */
+    .bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow {
+        left: calc(-1 * var(--bs-tooltip-arrow-height));
+        width: var(--bs-tooltip-arrow-height);
+        height: var(--bs-tooltip-arrow-width);
+    }
+
+    .bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before {
+        right: -1px;
+        border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0;
+        border-right-color: var(--bs-tooltip-bg);
+    }
+
+    /* rtl:end:ignore */
+    .bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow {
+        top: calc(-1 * var(--bs-tooltip-arrow-height));
+    }
+
+    .bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {
+        bottom: -1px;
+        border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height);
+        border-bottom-color: var(--bs-tooltip-bg);
+    }
+
+    /* rtl:begin:ignore */
+    .bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow {
+        right: calc(-1 * var(--bs-tooltip-arrow-height));
+        width: var(--bs-tooltip-arrow-height);
+        height: var(--bs-tooltip-arrow-width);
+    }
+
+    .bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before {
+        left: -1px;
+        border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height);
+        border-left-color: var(--bs-tooltip-bg);
+    }
+
+    /* rtl:end:ignore */
+    .tooltip-inner {
+        max-width: var(--bs-tooltip-max-width);
+        padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);
+        color: var(--bs-tooltip-color);
+        text-align: center;
+        background-color: var(--bs-tooltip-bg);
+        border-radius: var(--bs-tooltip-border-radius);
+    }
+
+    .popover {
+        --bs-popover-zindex: 1070;
+        --bs-popover-max-width: 276px;
+        --bs-popover-font-size: 0.875rem;
+        --bs-popover-bg: var(--bs-body-bg);
+        --bs-popover-border-width: var(--bs-border-width);
+        --bs-popover-border-color: var(--bs-border-color-translucent);
+        --bs-popover-border-radius: var(--bs-border-radius-lg);
+        --bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));
+        --bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+        --bs-popover-header-padding-x: 1rem;
+        --bs-popover-header-padding-y: 0.5rem;
+        --bs-popover-header-font-size: 1rem;
+        --bs-popover-header-color: inherit;
+        --bs-popover-header-bg: var(--bs-secondary-bg);
+        --bs-popover-body-padding-x: 1rem;
+        --bs-popover-body-padding-y: 1rem;
+        --bs-popover-body-color: var(--bs-body-color);
+        --bs-popover-arrow-width: 1rem;
+        --bs-popover-arrow-height: 0.5rem;
+        --bs-popover-arrow-border: var(--bs-popover-border-color);
+        z-index: var(--bs-popover-zindex);
+        display: block;
+        max-width: var(--bs-popover-max-width);
+        font-family: var(--bs-font-sans-serif);
+        font-style: normal;
+        font-weight: 400;
+        line-height: 1.5;
+        text-align: left;
+        text-align: start;
+        text-decoration: none;
+        text-shadow: none;
+        text-transform: none;
+        letter-spacing: normal;
+        word-break: normal;
+        white-space: normal;
+        word-spacing: normal;
+        line-break: auto;
+        font-size: var(--bs-popover-font-size);
+        word-wrap: break-word;
+        background-color: var(--bs-popover-bg);
+        background-clip: padding-box;
+        border: var(--bs-popover-border-width) solid var(--bs-popover-border-color);
+        border-radius: var(--bs-popover-border-radius);
+    }
+
+    .popover .popover-arrow {
+        display: block;
+        width: var(--bs-popover-arrow-width);
+        height: var(--bs-popover-arrow-height);
+    }
+
+    .popover .popover-arrow::before, .popover .popover-arrow::after {
+        position: absolute;
+        display: block;
+        content: "";
+        border-color: transparent;
+        border-style: solid;
+        border-width: 0;
+    }
+
+    .bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow {
+        bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+    }
+
+    .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {
+        border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;
+    }
+
+    .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before {
+        bottom: 0;
+        border-top-color: var(--bs-popover-arrow-border);
+    }
+
+    .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {
+        bottom: var(--bs-popover-border-width);
+        border-top-color: var(--bs-popover-bg);
+    }
+
+    /* rtl:begin:ignore */
+    .bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow {
+        left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+        width: var(--bs-popover-arrow-height);
+        height: var(--bs-popover-arrow-width);
+    }
+
+    .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {
+        border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;
+    }
+
+    .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before {
+        left: 0;
+        border-right-color: var(--bs-popover-arrow-border);
+    }
+
+    .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {
+        left: var(--bs-popover-border-width);
+        border-right-color: var(--bs-popover-bg);
+    }
+
+    /* rtl:end:ignore */
+    .bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow {
+        top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+    }
+
+    .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {
+        border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height);
+    }
+
+    .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before {
+        top: 0;
+        border-bottom-color: var(--bs-popover-arrow-border);
+    }
+
+    .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {
+        top: var(--bs-popover-border-width);
+        border-bottom-color: var(--bs-popover-bg);
+    }
+
+    .bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before {
+        position: absolute;
+        top: 0;
+        left: 50%;
+        display: block;
+        width: var(--bs-popover-arrow-width);
+        margin-left: calc(-0.5 * var(--bs-popover-arrow-width));
+        content: "";
+        border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg);
+    }
+
+    /* rtl:begin:ignore */
+    .bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow {
+        right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+        width: var(--bs-popover-arrow-height);
+        height: var(--bs-popover-arrow-width);
+    }
+
+    .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {
+        border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height);
+    }
+
+    .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before {
+        right: 0;
+        border-left-color: var(--bs-popover-arrow-border);
+    }
+
+    .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {
+        right: var(--bs-popover-border-width);
+        border-left-color: var(--bs-popover-bg);
+    }
+
+    /* rtl:end:ignore */
+    .popover-header {
+        padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);
+        margin-bottom: 0;
+        font-size: var(--bs-popover-header-font-size);
+        color: var(--bs-popover-header-color);
+        background-color: var(--bs-popover-header-bg);
+        border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color);
+        border-top-left-radius: var(--bs-popover-inner-border-radius);
+        border-top-right-radius: var(--bs-popover-inner-border-radius);
+    }
+
+    .popover-header:empty {
+        display: none;
+    }
+
+    .popover-body {
+        padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);
+        color: var(--bs-popover-body-color);
+    }
+
+    .carousel {
+        position: relative;
+    }
+
+    .carousel.pointer-event {
+        touch-action: pan-y;
+    }
+
+    .carousel-inner {
+        position: relative;
+        width: 100%;
+        overflow: hidden;
+    }
+
+    .carousel-inner::after {
+        display: block;
+        clear: both;
+        content: "";
+    }
+
+    .carousel-item {
+        position: relative;
+        display: none;
+        float: left;
+        width: 100%;
+        margin-right: -100%;
+        backface-visibility: hidden;
+        transition: transform 0.6s ease-in-out;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .carousel-item {
+            transition: none;
+        }
+    }
+
+    .carousel-item.active,
+    .carousel-item-next,
+    .carousel-item-prev {
+        display: block;
+    }
+
+    .carousel-item-next:not(.carousel-item-start),
+    .active.carousel-item-end {
+        transform: translateX(100%);
+    }
+
+    .carousel-item-prev:not(.carousel-item-end),
+    .active.carousel-item-start {
+        transform: translateX(-100%);
+    }
+
+    .carousel-fade .carousel-item {
+        opacity: 0;
+        transition-property: opacity;
+        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;
+        transition: opacity 0s 0.6s;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .carousel-fade .active.carousel-item-start,
+        .carousel-fade .active.carousel-item-end {
+            transition: none;
+        }
+    }
+
+    .carousel-control-prev,
+    .carousel-control-next {
+        position: absolute;
+        top: 0;
+        bottom: 0;
+        z-index: 1;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        width: 15%;
+        padding: 0;
+        color: #fff;
+        text-align: center;
+        background: none;
+        border: 0;
+        opacity: 0.5;
+        transition: opacity 0.15s ease;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .carousel-control-prev,
+        .carousel-control-next {
+            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 {
+        left: 0;
+    }
+
+    .carousel-control-next {
+        right: 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%;
+    }
+
+    /* rtl:options: {
+  "autoRename": true,
+  "stringMap":[ {
+    "name"    : "prev-next",
+    "search"  : "prev",
+    "replace" : "next"
+  } ]
+} */
+    .carousel-control-prev-icon {
+        background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23fff%27%3e%3cpath d=%27M11.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%27/%3e%3c/svg%3e");
+    }
+
+    .carousel-control-next-icon {
+        background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23fff%27%3e%3cpath d=%27M4.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%27/%3e%3c/svg%3e");
+    }
+
+    .carousel-indicators {
+        position: absolute;
+        right: 0;
+        bottom: 0;
+        left: 0;
+        z-index: 2;
+        display: flex;
+        justify-content: center;
+        padding: 0;
+        margin-right: 15%;
+        margin-bottom: 1rem;
+        margin-left: 15%;
+    }
+
+    .carousel-indicators [data-bs-target] {
+        box-sizing: content-box;
+        flex: 0 1 auto;
+        width: 30px;
+        height: 3px;
+        padding: 0;
+        margin-right: 3px;
+        margin-left: 3px;
+        text-indent: -999px;
+        cursor: pointer;
+        background-color: #fff;
+        background-clip: padding-box;
+        border: 0;
+        border-top: 10px solid transparent;
+        border-bottom: 10px solid transparent;
+        opacity: 0.5;
+        transition: opacity 0.6s ease;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .carousel-indicators [data-bs-target] {
+            transition: none;
+        }
+    }
+
+    .carousel-indicators .active {
+        opacity: 1;
+    }
+
+    .carousel-caption {
+        position: absolute;
+        right: 15%;
+        bottom: 1.25rem;
+        left: 15%;
+        padding-top: 1.25rem;
+        padding-bottom: 1.25rem;
+        color: #fff;
+        text-align: center;
+    }
+
+    .carousel-dark .carousel-control-prev-icon,
+    .carousel-dark .carousel-control-next-icon {
+        filter: invert(1) grayscale(100);
+    }
+
+    .carousel-dark .carousel-indicators [data-bs-target] {
+        background-color: #000;
+    }
+
+    .carousel-dark .carousel-caption {
+        color: #000;
+    }
+
+    [data-bs-theme=dark] .carousel .carousel-control-prev-icon,
+    [data-bs-theme=dark] .carousel .carousel-control-next-icon, [data-bs-theme=dark].carousel .carousel-control-prev-icon,
+    [data-bs-theme=dark].carousel .carousel-control-next-icon {
+        filter: invert(1) grayscale(100);
+    }
+
+    [data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target], [data-bs-theme=dark].carousel .carousel-indicators [data-bs-target] {
+        background-color: #000;
+    }
+
+    [data-bs-theme=dark] .carousel .carousel-caption, [data-bs-theme=dark].carousel .carousel-caption {
+        color: #000;
+    }
+
+    .spinner-grow,
+    .spinner-border {
+        display: inline-block;
+        width: var(--bs-spinner-width);
+        height: var(--bs-spinner-height);
+        vertical-align: var(--bs-spinner-vertical-align);
+        border-radius: 50%;
+        animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);
+    }
+
+    @keyframes spinner-border {
+        to {
+            transform: rotate(360deg) /* rtl:ignore */;
+        }
+    }
+
+    .spinner-border {
+        --bs-spinner-width: 2rem;
+        --bs-spinner-height: 2rem;
+        --bs-spinner-vertical-align: -0.125em;
+        --bs-spinner-border-width: 0.25em;
+        --bs-spinner-animation-speed: 0.75s;
+        --bs-spinner-animation-name: spinner-border;
+        border: var(--bs-spinner-border-width) solid currentcolor;
+        border-right-color: transparent;
+    }
+
+    .spinner-border-sm {
+        --bs-spinner-width: 1rem;
+        --bs-spinner-height: 1rem;
+        --bs-spinner-border-width: 0.2em;
+    }
+
+    @keyframes spinner-grow {
+        0% {
+            transform: scale(0);
+        }
+        50% {
+            opacity: 1;
+            transform: none;
+        }
+    }
+
+    .spinner-grow {
+        --bs-spinner-width: 2rem;
+        --bs-spinner-height: 2rem;
+        --bs-spinner-vertical-align: -0.125em;
+        --bs-spinner-animation-speed: 0.75s;
+        --bs-spinner-animation-name: spinner-grow;
+        background-color: currentcolor;
+        opacity: 0;
+    }
+
+    .spinner-grow-sm {
+        --bs-spinner-width: 1rem;
+        --bs-spinner-height: 1rem;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .spinner-border,
+        .spinner-grow {
+            --bs-spinner-animation-speed: 1.5s;
+        }
+    }
+
+    .offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm {
+        --bs-offcanvas-zindex: 1045;
+        --bs-offcanvas-width: 400px;
+        --bs-offcanvas-height: 30vh;
+        --bs-offcanvas-padding-x: 1rem;
+        --bs-offcanvas-padding-y: 1rem;
+        --bs-offcanvas-color: var(--bs-body-color);
+        --bs-offcanvas-bg: var(--bs-body-bg);
+        --bs-offcanvas-border-width: var(--bs-border-width);
+        --bs-offcanvas-border-color: var(--bs-border-color-translucent);
+        --bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
+        --bs-offcanvas-transition: transform 0.3s ease-in-out;
+        --bs-offcanvas-title-line-height: 1.5;
+    }
+
+    @media (max-width: 575.98px) {
+        .offcanvas-sm {
+            position: fixed;
+            bottom: 0;
+            z-index: var(--bs-offcanvas-zindex);
+            display: flex;
+            flex-direction: column;
+            max-width: 100%;
+            color: var(--bs-offcanvas-color);
+            visibility: hidden;
+            background-color: var(--bs-offcanvas-bg);
+            background-clip: padding-box;
+            outline: 0;
+            transition: var(--bs-offcanvas-transition);
+        }
+    }
+
+    @media (max-width: 575.98px) and (prefers-reduced-motion: reduce) {
+        .offcanvas-sm {
+            transition: none;
+        }
+    }
+
+    @media (max-width: 575.98px) {
+        .offcanvas-sm.offcanvas-start {
+            top: 0;
+            left: 0;
+            width: var(--bs-offcanvas-width);
+            border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(-100%);
+        }
+
+        .offcanvas-sm.offcanvas-end {
+            top: 0;
+            right: 0;
+            width: var(--bs-offcanvas-width);
+            border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(100%);
+        }
+
+        .offcanvas-sm.offcanvas-top {
+            top: 0;
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(-100%);
+        }
+
+        .offcanvas-sm.offcanvas-bottom {
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(100%);
+        }
+
+        .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) {
+            transform: none;
+        }
+
+        .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show {
+            visibility: visible;
+        }
+    }
+
+    @media (min-width: 576px) {
+        .offcanvas-sm {
+            --bs-offcanvas-height: auto;
+            --bs-offcanvas-border-width: 0;
+            background-color: transparent !important;
+        }
+
+        .offcanvas-sm .offcanvas-header {
+            display: none;
+        }
+
+        .offcanvas-sm .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+            background-color: transparent !important;
+        }
+    }
+
+    @media (max-width: 767.98px) {
+        .offcanvas-md {
+            position: fixed;
+            bottom: 0;
+            z-index: var(--bs-offcanvas-zindex);
+            display: flex;
+            flex-direction: column;
+            max-width: 100%;
+            color: var(--bs-offcanvas-color);
+            visibility: hidden;
+            background-color: var(--bs-offcanvas-bg);
+            background-clip: padding-box;
+            outline: 0;
+            transition: var(--bs-offcanvas-transition);
+        }
+    }
+
+    @media (max-width: 767.98px) and (prefers-reduced-motion: reduce) {
+        .offcanvas-md {
+            transition: none;
+        }
+    }
+
+    @media (max-width: 767.98px) {
+        .offcanvas-md.offcanvas-start {
+            top: 0;
+            left: 0;
+            width: var(--bs-offcanvas-width);
+            border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(-100%);
+        }
+
+        .offcanvas-md.offcanvas-end {
+            top: 0;
+            right: 0;
+            width: var(--bs-offcanvas-width);
+            border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(100%);
+        }
+
+        .offcanvas-md.offcanvas-top {
+            top: 0;
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(-100%);
+        }
+
+        .offcanvas-md.offcanvas-bottom {
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(100%);
+        }
+
+        .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) {
+            transform: none;
+        }
+
+        .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show {
+            visibility: visible;
+        }
+    }
+
+    @media (min-width: 768px) {
+        .offcanvas-md {
+            --bs-offcanvas-height: auto;
+            --bs-offcanvas-border-width: 0;
+            background-color: transparent !important;
+        }
+
+        .offcanvas-md .offcanvas-header {
+            display: none;
+        }
+
+        .offcanvas-md .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+            background-color: transparent !important;
+        }
+    }
+
+    @media (max-width: 991.98px) {
+        .offcanvas-lg {
+            position: fixed;
+            bottom: 0;
+            z-index: var(--bs-offcanvas-zindex);
+            display: flex;
+            flex-direction: column;
+            max-width: 100%;
+            color: var(--bs-offcanvas-color);
+            visibility: hidden;
+            background-color: var(--bs-offcanvas-bg);
+            background-clip: padding-box;
+            outline: 0;
+            transition: var(--bs-offcanvas-transition);
+        }
+    }
+
+    @media (max-width: 991.98px) and (prefers-reduced-motion: reduce) {
+        .offcanvas-lg {
+            transition: none;
+        }
+    }
+
+    @media (max-width: 991.98px) {
+        .offcanvas-lg.offcanvas-start {
+            top: 0;
+            left: 0;
+            width: var(--bs-offcanvas-width);
+            border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(-100%);
+        }
+
+        .offcanvas-lg.offcanvas-end {
+            top: 0;
+            right: 0;
+            width: var(--bs-offcanvas-width);
+            border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(100%);
+        }
+
+        .offcanvas-lg.offcanvas-top {
+            top: 0;
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(-100%);
+        }
+
+        .offcanvas-lg.offcanvas-bottom {
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(100%);
+        }
+
+        .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) {
+            transform: none;
+        }
+
+        .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show {
+            visibility: visible;
+        }
+    }
+
+    @media (min-width: 992px) {
+        .offcanvas-lg {
+            --bs-offcanvas-height: auto;
+            --bs-offcanvas-border-width: 0;
+            background-color: transparent !important;
+        }
+
+        .offcanvas-lg .offcanvas-header {
+            display: none;
+        }
+
+        .offcanvas-lg .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+            background-color: transparent !important;
+        }
+    }
+
+    @media (max-width: 1199.98px) {
+        .offcanvas-xl {
+            position: fixed;
+            bottom: 0;
+            z-index: var(--bs-offcanvas-zindex);
+            display: flex;
+            flex-direction: column;
+            max-width: 100%;
+            color: var(--bs-offcanvas-color);
+            visibility: hidden;
+            background-color: var(--bs-offcanvas-bg);
+            background-clip: padding-box;
+            outline: 0;
+            transition: var(--bs-offcanvas-transition);
+        }
+    }
+
+    @media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) {
+        .offcanvas-xl {
+            transition: none;
+        }
+    }
+
+    @media (max-width: 1199.98px) {
+        .offcanvas-xl.offcanvas-start {
+            top: 0;
+            left: 0;
+            width: var(--bs-offcanvas-width);
+            border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(-100%);
+        }
+
+        .offcanvas-xl.offcanvas-end {
+            top: 0;
+            right: 0;
+            width: var(--bs-offcanvas-width);
+            border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(100%);
+        }
+
+        .offcanvas-xl.offcanvas-top {
+            top: 0;
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(-100%);
+        }
+
+        .offcanvas-xl.offcanvas-bottom {
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(100%);
+        }
+
+        .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) {
+            transform: none;
+        }
+
+        .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show {
+            visibility: visible;
+        }
+    }
+
+    @media (min-width: 1200px) {
+        .offcanvas-xl {
+            --bs-offcanvas-height: auto;
+            --bs-offcanvas-border-width: 0;
+            background-color: transparent !important;
+        }
+
+        .offcanvas-xl .offcanvas-header {
+            display: none;
+        }
+
+        .offcanvas-xl .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+            background-color: transparent !important;
+        }
+    }
+
+    @media (max-width: 1399.98px) {
+        .offcanvas-xxl {
+            position: fixed;
+            bottom: 0;
+            z-index: var(--bs-offcanvas-zindex);
+            display: flex;
+            flex-direction: column;
+            max-width: 100%;
+            color: var(--bs-offcanvas-color);
+            visibility: hidden;
+            background-color: var(--bs-offcanvas-bg);
+            background-clip: padding-box;
+            outline: 0;
+            transition: var(--bs-offcanvas-transition);
+        }
+    }
+
+    @media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) {
+        .offcanvas-xxl {
+            transition: none;
+        }
+    }
+
+    @media (max-width: 1399.98px) {
+        .offcanvas-xxl.offcanvas-start {
+            top: 0;
+            left: 0;
+            width: var(--bs-offcanvas-width);
+            border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(-100%);
+        }
+
+        .offcanvas-xxl.offcanvas-end {
+            top: 0;
+            right: 0;
+            width: var(--bs-offcanvas-width);
+            border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateX(100%);
+        }
+
+        .offcanvas-xxl.offcanvas-top {
+            top: 0;
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(-100%);
+        }
+
+        .offcanvas-xxl.offcanvas-bottom {
+            right: 0;
+            left: 0;
+            height: var(--bs-offcanvas-height);
+            max-height: 100%;
+            border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+            transform: translateY(100%);
+        }
+
+        .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) {
+            transform: none;
+        }
+
+        .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show {
+            visibility: visible;
+        }
+    }
+
+    @media (min-width: 1400px) {
+        .offcanvas-xxl {
+            --bs-offcanvas-height: auto;
+            --bs-offcanvas-border-width: 0;
+            background-color: transparent !important;
+        }
+
+        .offcanvas-xxl .offcanvas-header {
+            display: none;
+        }
+
+        .offcanvas-xxl .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+            background-color: transparent !important;
+        }
+    }
+
+    .offcanvas {
+        position: fixed;
+        bottom: 0;
+        z-index: var(--bs-offcanvas-zindex);
+        display: flex;
+        flex-direction: column;
+        max-width: 100%;
+        color: var(--bs-offcanvas-color);
+        visibility: hidden;
+        background-color: var(--bs-offcanvas-bg);
+        background-clip: padding-box;
+        outline: 0;
+        transition: var(--bs-offcanvas-transition);
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .offcanvas {
+            transition: none;
+        }
+    }
+
+    .offcanvas.offcanvas-start {
+        top: 0;
+        left: 0;
+        width: var(--bs-offcanvas-width);
+        border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+        transform: translateX(-100%);
+    }
+
+    .offcanvas.offcanvas-end {
+        top: 0;
+        right: 0;
+        width: var(--bs-offcanvas-width);
+        border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+        transform: translateX(100%);
+    }
+
+    .offcanvas.offcanvas-top {
+        top: 0;
+        right: 0;
+        left: 0;
+        height: var(--bs-offcanvas-height);
+        max-height: 100%;
+        border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+        transform: translateY(-100%);
+    }
+
+    .offcanvas.offcanvas-bottom {
+        right: 0;
+        left: 0;
+        height: var(--bs-offcanvas-height);
+        max-height: 100%;
+        border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+        transform: translateY(100%);
+    }
+
+    .offcanvas.showing, .offcanvas.show:not(.hiding) {
+        transform: none;
+    }
+
+    .offcanvas.showing, .offcanvas.hiding, .offcanvas.show {
+        visibility: visible;
+    }
+
+    .offcanvas-backdrop {
+        position: fixed;
+        top: 0;
+        left: 0;
+        z-index: 1040;
+        width: 100vw;
+        height: 100vh;
+        background-color: #000;
+    }
+
+    .offcanvas-backdrop.fade {
+        opacity: 0;
+    }
+
+    .offcanvas-backdrop.show {
+        opacity: 0.5;
+    }
+
+    .offcanvas-header {
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);
+    }
+
+    .offcanvas-header .btn-close {
+        padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5);
+        margin-top: calc(-0.5 * var(--bs-offcanvas-padding-y));
+        margin-right: calc(-0.5 * var(--bs-offcanvas-padding-x));
+        margin-bottom: calc(-0.5 * var(--bs-offcanvas-padding-y));
+    }
+
+    .offcanvas-title {
+        margin-bottom: 0;
+        line-height: var(--bs-offcanvas-title-line-height);
+    }
+
+    .offcanvas-body {
+        flex-grow: 1;
+        padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);
+        overflow-y: auto;
+    }
+
+    .placeholder {
+        display: inline-block;
+        min-height: 1em;
+        vertical-align: middle;
+        cursor: wait;
+        background-color: currentcolor;
+        opacity: 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 {
+        animation: placeholder-glow 2s ease-in-out infinite;
+    }
+
+    @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%;
+        animation: placeholder-wave 2s linear infinite;
+    }
+
+    @keyframes placeholder-wave {
+        100% {
+            -webkit-mask-position: -200% 0%;
+            mask-position: -200% 0%;
+        }
+    }
+
+    .clearfix::after {
+        display: block;
+        clear: both;
+        content: "";
+    }
+
+    .text-bg-primary {
+        color: #fff !important;
+        background-color: RGBA(13, 110, 253, var(--bs-bg-opacity, 1)) !important;
+    }
+
+    .text-bg-secondary {
+        color: #fff !important;
+        background-color: RGBA(108, 117, 125, var(--bs-bg-opacity, 1)) !important;
+    }
+
+    .text-bg-success {
+        color: #fff !important;
+        background-color: RGBA(25, 135, 84, var(--bs-bg-opacity, 1)) !important;
+    }
+
+    .text-bg-info {
+        color: #000 !important;
+        background-color: RGBA(13, 202, 240, var(--bs-bg-opacity, 1)) !important;
+    }
+
+    .text-bg-warning {
+        color: #000 !important;
+        background-color: RGBA(255, 193, 7, var(--bs-bg-opacity, 1)) !important;
+    }
+
+    .text-bg-danger {
+        color: #fff !important;
+        background-color: RGBA(220, 53, 69, var(--bs-bg-opacity, 1)) !important;
+    }
+
+    .text-bg-light {
+        color: #000 !important;
+        background-color: RGBA(248, 249, 250, var(--bs-bg-opacity, 1)) !important;
+    }
+
+    .text-bg-dark {
+        color: #fff !important;
+        background-color: RGBA(33, 37, 41, var(--bs-bg-opacity, 1)) !important;
+    }
+
+    .link-primary {
+        color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-primary:hover, .link-primary:focus {
+        color: RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-secondary {
+        color: RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-secondary:hover, .link-secondary:focus {
+        color: RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-success {
+        color: RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-success:hover, .link-success:focus {
+        color: RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-info {
+        color: RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-info:hover, .link-info:focus {
+        color: RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-warning {
+        color: RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-warning:hover, .link-warning:focus {
+        color: RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-danger {
+        color: RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-danger:hover, .link-danger:focus {
+        color: RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-light {
+        color: RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-light:hover, .link-light:focus {
+        color: RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-dark {
+        color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-dark:hover, .link-dark:focus {
+        color: RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-body-emphasis {
+        color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;
+        text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-body-emphasis:hover, .link-body-emphasis:focus {
+        color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;
+        text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important;
+    }
+
+    .focus-ring:focus {
+        outline: 0;
+        box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color);
+    }
+
+    .icon-link {
+        display: inline-flex;
+        gap: 0.375rem;
+        align-items: center;
+        text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));
+        text-underline-offset: 0.25em;
+        backface-visibility: hidden;
+    }
+
+    .icon-link > .bi {
+        flex-shrink: 0;
+        width: 1em;
+        height: 1em;
+        fill: currentcolor;
+        transition: 0.2s ease-in-out transform;
+    }
+
+    @media (prefers-reduced-motion: reduce) {
+        .icon-link > .bi {
+            transition: none;
+        }
+    }
+
+    .icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi {
+        transform: var(--bs-icon-link-transform, translate3d(0.25em, 0, 0));
+    }
+
+    .ratio {
+        position: relative;
+        width: 100%;
+    }
+
+    .ratio::before {
+        display: block;
+        padding-top: var(--bs-aspect-ratio);
+        content: "";
+    }
+
+    .ratio > * {
+        position: absolute;
+        top: 0;
+        left: 0;
+        width: 100%;
+        height: 100%;
+    }
+
+    .ratio-1x1 {
+        --bs-aspect-ratio: 100%;
+    }
+
+    .ratio-4x3 {
+        --bs-aspect-ratio: 75%;
+    }
+
+    .ratio-16x9 {
+        --bs-aspect-ratio: 56.25%;
+    }
+
+    .ratio-21x9 {
+        --bs-aspect-ratio: 42.8571428571%;
+    }
+
+    .fixed-top {
+        position: fixed;
+        top: 0;
+        right: 0;
+        left: 0;
+        z-index: 1030;
+    }
+
+    .fixed-bottom {
+        position: fixed;
+        right: 0;
+        bottom: 0;
+        left: 0;
+        z-index: 1030;
+    }
+
+    .sticky-top {
+        position: sticky;
+        top: 0;
+        z-index: 1020;
+    }
+
+    .sticky-bottom {
+        position: sticky;
+        bottom: 0;
+        z-index: 1020;
+    }
+
+    @media (min-width: 576px) {
+        .sticky-sm-top {
+            position: sticky;
+            top: 0;
+            z-index: 1020;
+        }
+
+        .sticky-sm-bottom {
+            position: sticky;
+            bottom: 0;
+            z-index: 1020;
+        }
+    }
+
+    @media (min-width: 768px) {
+        .sticky-md-top {
+            position: sticky;
+            top: 0;
+            z-index: 1020;
+        }
+
+        .sticky-md-bottom {
+            position: sticky;
+            bottom: 0;
+            z-index: 1020;
+        }
+    }
+
+    @media (min-width: 992px) {
+        .sticky-lg-top {
+            position: sticky;
+            top: 0;
+            z-index: 1020;
+        }
+
+        .sticky-lg-bottom {
+            position: sticky;
+            bottom: 0;
+            z-index: 1020;
+        }
+    }
+
+    @media (min-width: 1200px) {
+        .sticky-xl-top {
+            position: sticky;
+            top: 0;
+            z-index: 1020;
+        }
+
+        .sticky-xl-bottom {
+            position: sticky;
+            bottom: 0;
+            z-index: 1020;
+        }
+    }
+
+    @media (min-width: 1400px) {
+        .sticky-xxl-top {
+            position: sticky;
+            top: 0;
+            z-index: 1020;
+        }
+
+        .sticky-xxl-bottom {
+            position: sticky;
+            bottom: 0;
+            z-index: 1020;
+        }
+    }
+
+    .hstack {
+        display: flex;
+        flex-direction: row;
+        align-items: center;
+        align-self: stretch;
+    }
+
+    .vstack {
+        display: flex;
+        flex: 1 1 auto;
+        flex-direction: column;
+        align-self: stretch;
+    }
+
+    .visually-hidden,
+    .visually-hidden-focusable:not(:focus):not(:focus-within) {
+        width: 1px !important;
+        height: 1px !important;
+        padding: 0 !important;
+        margin: -1px !important;
+        overflow: hidden !important;
+        clip: rect(0, 0, 0, 0) !important;
+        white-space: nowrap !important;
+        border: 0 !important;
+    }
+
+    .visually-hidden:not(caption),
+    .visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) {
+        position: absolute !important;
+    }
+
+    .stretched-link::after {
+        position: absolute;
+        top: 0;
+        right: 0;
+        bottom: 0;
+        left: 0;
+        z-index: 1;
+        content: "";
+    }
+
+    .text-truncate {
+        overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+    }
+
+    .vr {
+        display: inline-block;
+        align-self: stretch;
+        width: 1px;
+        min-height: 1em;
+        background-color: currentcolor;
+        opacity: 0.25;
+    }
+
+    .align-baseline {
+        vertical-align: baseline !important;
+    }
+
+    .align-top {
+        vertical-align: top !important;
+    }
+
+    .align-middle {
+        vertical-align: middle !important;
+    }
+
+    .align-bottom {
+        vertical-align: bottom !important;
+    }
+
+    .align-text-bottom {
+        vertical-align: text-bottom !important;
+    }
+
+    .align-text-top {
+        vertical-align: text-top !important;
+    }
+
+    .float-start {
+        float: left !important;
+    }
+
+    .float-end {
+        float: right !important;
+    }
+
+    .float-none {
+        float: none !important;
+    }
+
+    .object-fit-contain {
+        object-fit: contain !important;
+    }
+
+    .object-fit-cover {
+        object-fit: cover !important;
+    }
+
+    .object-fit-fill {
+        object-fit: fill !important;
+    }
+
+    .object-fit-scale {
+        object-fit: scale-down !important;
+    }
+
+    .object-fit-none {
+        object-fit: 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;
+    }
+
+    .overflow-x-auto {
+        overflow-x: auto !important;
+    }
+
+    .overflow-x-hidden {
+        overflow-x: hidden !important;
+    }
+
+    .overflow-x-visible {
+        overflow-x: visible !important;
+    }
+
+    .overflow-x-scroll {
+        overflow-x: scroll !important;
+    }
+
+    .overflow-y-auto {
+        overflow-y: auto !important;
+    }
+
+    .overflow-y-hidden {
+        overflow-y: hidden !important;
+    }
+
+    .overflow-y-visible {
+        overflow-y: visible !important;
+    }
+
+    .overflow-y-scroll {
+        overflow-y: scroll !important;
+    }
+
+    .d-inline {
+        display: inline !important;
+    }
+
+    .d-inline-block {
+        display: inline-block !important;
+    }
+
+    .d-block {
+        display: block !important;
+    }
+
+    .d-grid {
+        display: grid !important;
+    }
+
+    .d-inline-grid {
+        display: inline-grid !important;
+    }
+
+    .d-table {
+        display: table !important;
+    }
+
+    .d-table-row {
+        display: table-row !important;
+    }
+
+    .d-table-cell {
+        display: table-cell !important;
+    }
+
+    .d-flex {
+        display: flex !important;
+    }
+
+    .d-inline-flex {
+        display: inline-flex !important;
+    }
+
+    .d-none {
+        display: none !important;
+    }
+
+    .shadow {
+        box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
+    }
+
+    .shadow-sm {
+        box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
+    }
+
+    .shadow-lg {
+        box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
+    }
+
+    .shadow-none {
+        box-shadow: none !important;
+    }
+
+    .focus-ring-primary {
+        --bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity));
+    }
+
+    .focus-ring-secondary {
+        --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity));
+    }
+
+    .focus-ring-success {
+        --bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity));
+    }
+
+    .focus-ring-info {
+        --bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity));
+    }
+
+    .focus-ring-warning {
+        --bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity));
+    }
+
+    .focus-ring-danger {
+        --bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity));
+    }
+
+    .focus-ring-light {
+        --bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity));
+    }
+
+    .focus-ring-dark {
+        --bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity));
+    }
+
+    .position-static {
+        position: static !important;
+    }
+
+    .position-relative {
+        position: relative !important;
+    }
+
+    .position-absolute {
+        position: absolute !important;
+    }
+
+    .position-fixed {
+        position: fixed !important;
+    }
+
+    .position-sticky {
+        position: sticky !important;
+    }
+
+    .top-0 {
+        top: 0 !important;
+    }
+
+    .top-50 {
+        top: 50% !important;
+    }
+
+    .top-100 {
+        top: 100% !important;
+    }
+
+    .bottom-0 {
+        bottom: 0 !important;
+    }
+
+    .bottom-50 {
+        bottom: 50% !important;
+    }
+
+    .bottom-100 {
+        bottom: 100% !important;
+    }
+
+    .start-0 {
+        left: 0 !important;
+    }
+
+    .start-50 {
+        left: 50% !important;
+    }
+
+    .start-100 {
+        left: 100% !important;
+    }
+
+    .end-0 {
+        right: 0 !important;
+    }
+
+    .end-50 {
+        right: 50% !important;
+    }
+
+    .end-100 {
+        right: 100% !important;
+    }
+
+    .translate-middle {
+        transform: translate(-50%, -50%) !important;
+    }
+
+    .translate-middle-x {
+        transform: translateX(-50%) !important;
+    }
+
+    .translate-middle-y {
+        transform: translateY(-50%) !important;
+    }
+
+    .border {
+        border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+    }
+
+    .border-0 {
+        border: 0 !important;
+    }
+
+    .border-top {
+        border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+    }
+
+    .border-top-0 {
+        border-top: 0 !important;
+    }
+
+    .border-end {
+        border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+    }
+
+    .border-end-0 {
+        border-right: 0 !important;
+    }
+
+    .border-bottom {
+        border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+    }
+
+    .border-bottom-0 {
+        border-bottom: 0 !important;
+    }
+
+    .border-start {
+        border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+    }
+
+    .border-start-0 {
+        border-left: 0 !important;
+    }
+
+    .border-primary {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-secondary {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-success {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-info {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-warning {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-danger {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-light {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-dark {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-black {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-white {
+        --bs-border-opacity: 1;
+        border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important;
+    }
+
+    .border-primary-subtle {
+        border-color: var(--bs-primary-border-subtle) !important;
+    }
+
+    .border-secondary-subtle {
+        border-color: var(--bs-secondary-border-subtle) !important;
+    }
+
+    .border-success-subtle {
+        border-color: var(--bs-success-border-subtle) !important;
+    }
+
+    .border-info-subtle {
+        border-color: var(--bs-info-border-subtle) !important;
+    }
+
+    .border-warning-subtle {
+        border-color: var(--bs-warning-border-subtle) !important;
+    }
+
+    .border-danger-subtle {
+        border-color: var(--bs-danger-border-subtle) !important;
+    }
+
+    .border-light-subtle {
+        border-color: var(--bs-light-border-subtle) !important;
+    }
+
+    .border-dark-subtle {
+        border-color: var(--bs-dark-border-subtle) !important;
+    }
+
+    .border-1 {
+        border-width: 1px !important;
+    }
+
+    .border-2 {
+        border-width: 2px !important;
+    }
+
+    .border-3 {
+        border-width: 3px !important;
+    }
+
+    .border-4 {
+        border-width: 4px !important;
+    }
+
+    .border-5 {
+        border-width: 5px !important;
+    }
+
+    .border-opacity-10 {
+        --bs-border-opacity: 0.1;
+    }
+
+    .border-opacity-25 {
+        --bs-border-opacity: 0.25;
+    }
+
+    .border-opacity-50 {
+        --bs-border-opacity: 0.5;
+    }
+
+    .border-opacity-75 {
+        --bs-border-opacity: 0.75;
+    }
+
+    .border-opacity-100 {
+        --bs-border-opacity: 1;
+    }
+
+    .w-25 {
+        width: 25% !important;
+    }
+
+    .w-50 {
+        width: 50% !important;
+    }
+
+    .w-75 {
+        width: 75% !important;
+    }
+
+    .w-100 {
+        width: 100% !important;
+    }
+
+    .w-auto {
+        width: auto !important;
+    }
+
+    .mw-100 {
+        max-width: 100% !important;
+    }
+
+    .vw-100 {
+        width: 100vw !important;
+    }
+
+    .min-vw-100 {
+        min-width: 100vw !important;
+    }
+
+    .h-25 {
+        height: 25% !important;
+    }
+
+    .h-50 {
+        height: 50% !important;
+    }
+
+    .h-75 {
+        height: 75% !important;
+    }
+
+    .h-100 {
+        height: 100% !important;
+    }
+
+    .h-auto {
+        height: auto !important;
+    }
+
+    .mh-100 {
+        max-height: 100% !important;
+    }
+
+    .vh-100 {
+        height: 100vh !important;
+    }
+
+    .min-vh-100 {
+        min-height: 100vh !important;
+    }
+
+    .flex-fill {
+        flex: 1 1 auto !important;
+    }
+
+    .flex-row {
+        flex-direction: row !important;
+    }
+
+    .flex-column {
+        flex-direction: column !important;
+    }
+
+    .flex-row-reverse {
+        flex-direction: row-reverse !important;
+    }
+
+    .flex-column-reverse {
+        flex-direction: column-reverse !important;
+    }
+
+    .flex-grow-0 {
+        flex-grow: 0 !important;
+    }
+
+    .flex-grow-1 {
+        flex-grow: 1 !important;
+    }
+
+    .flex-shrink-0 {
+        flex-shrink: 0 !important;
+    }
+
+    .flex-shrink-1 {
+        flex-shrink: 1 !important;
+    }
+
+    .flex-wrap {
+        flex-wrap: wrap !important;
+    }
+
+    .flex-nowrap {
+        flex-wrap: nowrap !important;
+    }
+
+    .flex-wrap-reverse {
+        flex-wrap: wrap-reverse !important;
+    }
+
+    .justify-content-start {
+        justify-content: flex-start !important;
+    }
+
+    .justify-content-end {
+        justify-content: flex-end !important;
+    }
+
+    .justify-content-center {
+        justify-content: center !important;
+    }
+
+    .justify-content-between {
+        justify-content: space-between !important;
+    }
+
+    .justify-content-around {
+        justify-content: space-around !important;
+    }
+
+    .justify-content-evenly {
+        justify-content: space-evenly !important;
+    }
+
+    .align-items-start {
+        align-items: flex-start !important;
+    }
+
+    .align-items-end {
+        align-items: flex-end !important;
+    }
+
+    .align-items-center {
+        align-items: center !important;
+    }
+
+    .align-items-baseline {
+        align-items: baseline !important;
+    }
+
+    .align-items-stretch {
+        align-items: stretch !important;
+    }
+
+    .align-content-start {
+        align-content: flex-start !important;
+    }
+
+    .align-content-end {
+        align-content: flex-end !important;
+    }
+
+    .align-content-center {
+        align-content: center !important;
+    }
+
+    .align-content-between {
+        align-content: space-between !important;
+    }
+
+    .align-content-around {
+        align-content: space-around !important;
+    }
+
+    .align-content-stretch {
+        align-content: stretch !important;
+    }
+
+    .align-self-auto {
+        align-self: auto !important;
+    }
+
+    .align-self-start {
+        align-self: flex-start !important;
+    }
+
+    .align-self-end {
+        align-self: flex-end !important;
+    }
+
+    .align-self-center {
+        align-self: center !important;
+    }
+
+    .align-self-baseline {
+        align-self: baseline !important;
+    }
+
+    .align-self-stretch {
+        align-self: stretch !important;
+    }
+
+    .order-first {
+        order: -1 !important;
+    }
+
+    .order-0 {
+        order: 0 !important;
+    }
+
+    .order-1 {
+        order: 1 !important;
+    }
+
+    .order-2 {
+        order: 2 !important;
+    }
+
+    .order-3 {
+        order: 3 !important;
+    }
+
+    .order-4 {
+        order: 4 !important;
+    }
+
+    .order-5 {
+        order: 5 !important;
+    }
+
+    .order-last {
+        order: 6 !important;
+    }
+
+    .m-0 {
+        margin: 0 !important;
+    }
+
+    .m-1 {
+        margin: 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-right: 0 !important;
+        margin-left: 0 !important;
+    }
+
+    .mx-1 {
+        margin-right: 0.25rem !important;
+        margin-left: 0.25rem !important;
+    }
+
+    .mx-2 {
+        margin-right: 0.5rem !important;
+        margin-left: 0.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: 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-right: 0 !important;
+    }
+
+    .me-1 {
+        margin-right: 0.25rem !important;
+    }
+
+    .me-2 {
+        margin-right: 0.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: 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-left: 0 !important;
+    }
+
+    .ms-1 {
+        margin-left: 0.25rem !important;
+    }
+
+    .ms-2 {
+        margin-left: 0.5rem !important;
+    }
+
+    .ms-3 {
+        margin-left: 1rem !important;
+    }
+
+    .ms-4 {
+        margin-left: 1.5rem !important;
+    }
+
+    .ms-5 {
+        margin-left: 3rem !important;
+    }
+
+    .ms-auto {
+        margin-left: auto !important;
+    }
+
+    .p-0 {
+        padding: 0 !important;
+    }
+
+    .p-1 {
+        padding: 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-right: 0 !important;
+        padding-left: 0 !important;
+    }
+
+    .px-1 {
+        padding-right: 0.25rem !important;
+        padding-left: 0.25rem !important;
+    }
+
+    .px-2 {
+        padding-right: 0.5rem !important;
+        padding-left: 0.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: 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-right: 0 !important;
+    }
+
+    .pe-1 {
+        padding-right: 0.25rem !important;
+    }
+
+    .pe-2 {
+        padding-right: 0.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: 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-left: 0 !important;
+    }
+
+    .ps-1 {
+        padding-left: 0.25rem !important;
+    }
+
+    .ps-2 {
+        padding-left: 0.5rem !important;
+    }
+
+    .ps-3 {
+        padding-left: 1rem !important;
+    }
+
+    .ps-4 {
+        padding-left: 1.5rem !important;
+    }
+
+    .ps-5 {
+        padding-left: 3rem !important;
+    }
+
+    .gap-0 {
+        gap: 0 !important;
+    }
+
+    .gap-1 {
+        gap: 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;
+    }
+
+    .row-gap-0 {
+        row-gap: 0 !important;
+    }
+
+    .row-gap-1 {
+        row-gap: 0.25rem !important;
+    }
+
+    .row-gap-2 {
+        row-gap: 0.5rem !important;
+    }
+
+    .row-gap-3 {
+        row-gap: 1rem !important;
+    }
+
+    .row-gap-4 {
+        row-gap: 1.5rem !important;
+    }
+
+    .row-gap-5 {
+        row-gap: 3rem !important;
+    }
+
+    .column-gap-0 {
+        column-gap: 0 !important;
+    }
+
+    .column-gap-1 {
+        column-gap: 0.25rem !important;
+    }
+
+    .column-gap-2 {
+        column-gap: 0.5rem !important;
+    }
+
+    .column-gap-3 {
+        column-gap: 1rem !important;
+    }
+
+    .column-gap-4 {
+        column-gap: 1.5rem !important;
+    }
+
+    .column-gap-5 {
+        column-gap: 3rem !important;
+    }
+
+    .font-monospace {
+        font-family: var(--bs-font-monospace) !important;
+    }
+
+    .fs-1 {
+        font-size: calc(1.375rem + 1.5vw) !important;
+    }
+
+    .fs-2 {
+        font-size: calc(1.325rem + 0.9vw) !important;
+    }
+
+    .fs-3 {
+        font-size: calc(1.3rem + 0.6vw) !important;
+    }
+
+    .fs-4 {
+        font-size: calc(1.275rem + 0.3vw) !important;
+    }
+
+    .fs-5 {
+        font-size: 1.25rem !important;
+    }
+
+    .fs-6 {
+        font-size: 1rem !important;
+    }
+
+    .fst-italic {
+        font-style: italic !important;
+    }
+
+    .fst-normal {
+        font-style: normal !important;
+    }
+
+    .fw-lighter {
+        font-weight: lighter !important;
+    }
+
+    .fw-light {
+        font-weight: 300 !important;
+    }
+
+    .fw-normal {
+        font-weight: 400 !important;
+    }
+
+    .fw-medium {
+        font-weight: 500 !important;
+    }
+
+    .fw-semibold {
+        font-weight: 600 !important;
+    }
+
+    .fw-bold {
+        font-weight: 700 !important;
+    }
+
+    .fw-bolder {
+        font-weight: bolder !important;
+    }
+
+    .lh-1 {
+        line-height: 1 !important;
+    }
+
+    .lh-sm {
+        line-height: 1.25 !important;
+    }
+
+    .lh-base {
+        line-height: 1.5 !important;
+    }
+
+    .lh-lg {
+        line-height: 2 !important;
+    }
+
+    .text-start {
+        text-align: left !important;
+    }
+
+    .text-end {
+        text-align: right !important;
+    }
+
+    .text-center {
+        text-align: center !important;
+    }
+
+    .text-decoration-none {
+        text-decoration: none !important;
+    }
+
+    .text-decoration-underline {
+        text-decoration: underline !important;
+    }
+
+    .text-decoration-line-through {
+        text-decoration: line-through !important;
+    }
+
+    .text-lowercase {
+        text-transform: lowercase !important;
+    }
+
+    .text-uppercase {
+        text-transform: uppercase !important;
+    }
+
+    .text-capitalize {
+        text-transform: capitalize !important;
+    }
+
+    .text-wrap {
+        white-space: normal !important;
+    }
+
+    .text-nowrap {
+        white-space: nowrap !important;
+    }
+
+    /* rtl:begin:remove */
+    .text-break {
+        word-wrap: break-word !important;
+        word-break: break-word !important;
+    }
+
+    /* rtl:end:remove */
+    .text-primary {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-secondary {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-success {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-info {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-warning {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-danger {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-light {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-dark {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-black {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-white {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-body {
+        --bs-text-opacity: 1;
+        color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important;
+    }
+
+    .text-muted {
+        --bs-text-opacity: 1;
+        color: var(--bs-secondary-color) !important;
+    }
+
+    .text-black-50 {
+        --bs-text-opacity: 1;
+        color: rgba(0, 0, 0, 0.5) !important;
+    }
+
+    .text-white-50 {
+        --bs-text-opacity: 1;
+        color: rgba(255, 255, 255, 0.5) !important;
+    }
+
+    .text-body-secondary {
+        --bs-text-opacity: 1;
+        color: var(--bs-secondary-color) !important;
+    }
+
+    .text-body-tertiary {
+        --bs-text-opacity: 1;
+        color: var(--bs-tertiary-color) !important;
+    }
+
+    .text-body-emphasis {
+        --bs-text-opacity: 1;
+        color: var(--bs-emphasis-color) !important;
+    }
+
+    .text-reset {
+        --bs-text-opacity: 1;
+        color: inherit !important;
+    }
+
+    .text-opacity-25 {
+        --bs-text-opacity: 0.25;
+    }
+
+    .text-opacity-50 {
+        --bs-text-opacity: 0.5;
+    }
+
+    .text-opacity-75 {
+        --bs-text-opacity: 0.75;
+    }
+
+    .text-opacity-100 {
+        --bs-text-opacity: 1;
+    }
+
+    .text-primary-emphasis {
+        color: var(--bs-primary-text-emphasis) !important;
+    }
+
+    .text-secondary-emphasis {
+        color: var(--bs-secondary-text-emphasis) !important;
+    }
+
+    .text-success-emphasis {
+        color: var(--bs-success-text-emphasis) !important;
+    }
+
+    .text-info-emphasis {
+        color: var(--bs-info-text-emphasis) !important;
+    }
+
+    .text-warning-emphasis {
+        color: var(--bs-warning-text-emphasis) !important;
+    }
+
+    .text-danger-emphasis {
+        color: var(--bs-danger-text-emphasis) !important;
+    }
+
+    .text-light-emphasis {
+        color: var(--bs-light-text-emphasis) !important;
+    }
+
+    .text-dark-emphasis {
+        color: var(--bs-dark-text-emphasis) !important;
+    }
+
+    .link-opacity-10 {
+        --bs-link-opacity: 0.1;
+    }
+
+    .link-opacity-10-hover:hover {
+        --bs-link-opacity: 0.1;
+    }
+
+    .link-opacity-25 {
+        --bs-link-opacity: 0.25;
+    }
+
+    .link-opacity-25-hover:hover {
+        --bs-link-opacity: 0.25;
+    }
+
+    .link-opacity-50 {
+        --bs-link-opacity: 0.5;
+    }
+
+    .link-opacity-50-hover:hover {
+        --bs-link-opacity: 0.5;
+    }
+
+    .link-opacity-75 {
+        --bs-link-opacity: 0.75;
+    }
+
+    .link-opacity-75-hover:hover {
+        --bs-link-opacity: 0.75;
+    }
+
+    .link-opacity-100 {
+        --bs-link-opacity: 1;
+    }
+
+    .link-opacity-100-hover:hover {
+        --bs-link-opacity: 1;
+    }
+
+    .link-offset-1 {
+        text-underline-offset: 0.125em !important;
+    }
+
+    .link-offset-1-hover:hover {
+        text-underline-offset: 0.125em !important;
+    }
+
+    .link-offset-2 {
+        text-underline-offset: 0.25em !important;
+    }
+
+    .link-offset-2-hover:hover {
+        text-underline-offset: 0.25em !important;
+    }
+
+    .link-offset-3 {
+        text-underline-offset: 0.375em !important;
+    }
+
+    .link-offset-3-hover:hover {
+        text-underline-offset: 0.375em !important;
+    }
+
+    .link-underline-primary {
+        --bs-link-underline-opacity: 1;
+        text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important;
+    }
+
+    .link-underline-secondary {
+        --bs-link-underline-opacity: 1;
+        text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important;
+    }
+
+    .link-underline-success {
+        --bs-link-underline-opacity: 1;
+        text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important;
+    }
+
+    .link-underline-info {
+        --bs-link-underline-opacity: 1;
+        text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important;
+    }
+
+    .link-underline-warning {
+        --bs-link-underline-opacity: 1;
+        text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important;
+    }
+
+    .link-underline-danger {
+        --bs-link-underline-opacity: 1;
+        text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important;
+    }
+
+    .link-underline-light {
+        --bs-link-underline-opacity: 1;
+        text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important;
+    }
+
+    .link-underline-dark {
+        --bs-link-underline-opacity: 1;
+        text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important;
+    }
+
+    .link-underline {
+        --bs-link-underline-opacity: 1;
+        text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important;
+    }
+
+    .link-underline-opacity-0 {
+        --bs-link-underline-opacity: 0;
+    }
+
+    .link-underline-opacity-0-hover:hover {
+        --bs-link-underline-opacity: 0;
+    }
+
+    .link-underline-opacity-10 {
+        --bs-link-underline-opacity: 0.1;
+    }
+
+    .link-underline-opacity-10-hover:hover {
+        --bs-link-underline-opacity: 0.1;
+    }
+
+    .link-underline-opacity-25 {
+        --bs-link-underline-opacity: 0.25;
+    }
+
+    .link-underline-opacity-25-hover:hover {
+        --bs-link-underline-opacity: 0.25;
+    }
+
+    .link-underline-opacity-50 {
+        --bs-link-underline-opacity: 0.5;
+    }
+
+    .link-underline-opacity-50-hover:hover {
+        --bs-link-underline-opacity: 0.5;
+    }
+
+    .link-underline-opacity-75 {
+        --bs-link-underline-opacity: 0.75;
+    }
+
+    .link-underline-opacity-75-hover:hover {
+        --bs-link-underline-opacity: 0.75;
+    }
+
+    .link-underline-opacity-100 {
+        --bs-link-underline-opacity: 1;
+    }
+
+    .link-underline-opacity-100-hover:hover {
+        --bs-link-underline-opacity: 1;
+    }
+
+    .bg-primary {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-secondary {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-success {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-info {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-warning {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-danger {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-light {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-dark {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-black {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-white {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-body {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-transparent {
+        --bs-bg-opacity: 1;
+        background-color: transparent !important;
+    }
+
+    .bg-body-secondary {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-body-tertiary {
+        --bs-bg-opacity: 1;
+        background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important;
+    }
+
+    .bg-opacity-10 {
+        --bs-bg-opacity: 0.1;
+    }
+
+    .bg-opacity-25 {
+        --bs-bg-opacity: 0.25;
+    }
+
+    .bg-opacity-50 {
+        --bs-bg-opacity: 0.5;
+    }
+
+    .bg-opacity-75 {
+        --bs-bg-opacity: 0.75;
+    }
+
+    .bg-opacity-100 {
+        --bs-bg-opacity: 1;
+    }
+
+    .bg-primary-subtle {
+        background-color: var(--bs-primary-bg-subtle) !important;
+    }
+
+    .bg-secondary-subtle {
+        background-color: var(--bs-secondary-bg-subtle) !important;
+    }
+
+    .bg-success-subtle {
+        background-color: var(--bs-success-bg-subtle) !important;
+    }
+
+    .bg-info-subtle {
+        background-color: var(--bs-info-bg-subtle) !important;
+    }
+
+    .bg-warning-subtle {
+        background-color: var(--bs-warning-bg-subtle) !important;
+    }
+
+    .bg-danger-subtle {
+        background-color: var(--bs-danger-bg-subtle) !important;
+    }
+
+    .bg-light-subtle {
+        background-color: var(--bs-light-bg-subtle) !important;
+    }
+
+    .bg-dark-subtle {
+        background-color: var(--bs-dark-bg-subtle) !important;
+    }
+
+    .bg-gradient {
+        background-image: var(--bs-gradient) !important;
+    }
+
+    .user-select-all {
+        -webkit-user-select: all !important;
+        user-select: all !important;
+    }
+
+    .user-select-auto {
+        -webkit-user-select: auto !important;
+        user-select: auto !important;
+    }
+
+    .user-select-none {
+        -webkit-user-select: none !important;
+        user-select: none !important;
+    }
+
+    .pe-none {
+        pointer-events: none !important;
+    }
+
+    .pe-auto {
+        pointer-events: auto !important;
+    }
+
+    .rounded {
+        border-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-0 {
+        border-radius: 0 !important;
+    }
+
+    .rounded-1 {
+        border-radius: var(--bs-border-radius-sm) !important;
+    }
+
+    .rounded-2 {
+        border-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-3 {
+        border-radius: var(--bs-border-radius-lg) !important;
+    }
+
+    .rounded-4 {
+        border-radius: var(--bs-border-radius-xl) !important;
+    }
+
+    .rounded-5 {
+        border-radius: var(--bs-border-radius-xxl) !important;
+    }
+
+    .rounded-circle {
+        border-radius: 50% !important;
+    }
+
+    .rounded-pill {
+        border-radius: var(--bs-border-radius-pill) !important;
+    }
+
+    .rounded-top {
+        border-top-left-radius: var(--bs-border-radius) !important;
+        border-top-right-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-top-0 {
+        border-top-left-radius: 0 !important;
+        border-top-right-radius: 0 !important;
+    }
+
+    .rounded-top-1 {
+        border-top-left-radius: var(--bs-border-radius-sm) !important;
+        border-top-right-radius: var(--bs-border-radius-sm) !important;
+    }
+
+    .rounded-top-2 {
+        border-top-left-radius: var(--bs-border-radius) !important;
+        border-top-right-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-top-3 {
+        border-top-left-radius: var(--bs-border-radius-lg) !important;
+        border-top-right-radius: var(--bs-border-radius-lg) !important;
+    }
+
+    .rounded-top-4 {
+        border-top-left-radius: var(--bs-border-radius-xl) !important;
+        border-top-right-radius: var(--bs-border-radius-xl) !important;
+    }
+
+    .rounded-top-5 {
+        border-top-left-radius: var(--bs-border-radius-xxl) !important;
+        border-top-right-radius: var(--bs-border-radius-xxl) !important;
+    }
+
+    .rounded-top-circle {
+        border-top-left-radius: 50% !important;
+        border-top-right-radius: 50% !important;
+    }
+
+    .rounded-top-pill {
+        border-top-left-radius: var(--bs-border-radius-pill) !important;
+        border-top-right-radius: var(--bs-border-radius-pill) !important;
+    }
+
+    .rounded-end {
+        border-top-right-radius: var(--bs-border-radius) !important;
+        border-bottom-right-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-end-0 {
+        border-top-right-radius: 0 !important;
+        border-bottom-right-radius: 0 !important;
+    }
+
+    .rounded-end-1 {
+        border-top-right-radius: var(--bs-border-radius-sm) !important;
+        border-bottom-right-radius: var(--bs-border-radius-sm) !important;
+    }
+
+    .rounded-end-2 {
+        border-top-right-radius: var(--bs-border-radius) !important;
+        border-bottom-right-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-end-3 {
+        border-top-right-radius: var(--bs-border-radius-lg) !important;
+        border-bottom-right-radius: var(--bs-border-radius-lg) !important;
+    }
+
+    .rounded-end-4 {
+        border-top-right-radius: var(--bs-border-radius-xl) !important;
+        border-bottom-right-radius: var(--bs-border-radius-xl) !important;
+    }
+
+    .rounded-end-5 {
+        border-top-right-radius: var(--bs-border-radius-xxl) !important;
+        border-bottom-right-radius: var(--bs-border-radius-xxl) !important;
+    }
+
+    .rounded-end-circle {
+        border-top-right-radius: 50% !important;
+        border-bottom-right-radius: 50% !important;
+    }
+
+    .rounded-end-pill {
+        border-top-right-radius: var(--bs-border-radius-pill) !important;
+        border-bottom-right-radius: var(--bs-border-radius-pill) !important;
+    }
+
+    .rounded-bottom {
+        border-bottom-right-radius: var(--bs-border-radius) !important;
+        border-bottom-left-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-bottom-0 {
+        border-bottom-right-radius: 0 !important;
+        border-bottom-left-radius: 0 !important;
+    }
+
+    .rounded-bottom-1 {
+        border-bottom-right-radius: var(--bs-border-radius-sm) !important;
+        border-bottom-left-radius: var(--bs-border-radius-sm) !important;
+    }
+
+    .rounded-bottom-2 {
+        border-bottom-right-radius: var(--bs-border-radius) !important;
+        border-bottom-left-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-bottom-3 {
+        border-bottom-right-radius: var(--bs-border-radius-lg) !important;
+        border-bottom-left-radius: var(--bs-border-radius-lg) !important;
+    }
+
+    .rounded-bottom-4 {
+        border-bottom-right-radius: var(--bs-border-radius-xl) !important;
+        border-bottom-left-radius: var(--bs-border-radius-xl) !important;
+    }
+
+    .rounded-bottom-5 {
+        border-bottom-right-radius: var(--bs-border-radius-xxl) !important;
+        border-bottom-left-radius: var(--bs-border-radius-xxl) !important;
+    }
+
+    .rounded-bottom-circle {
+        border-bottom-right-radius: 50% !important;
+        border-bottom-left-radius: 50% !important;
+    }
+
+    .rounded-bottom-pill {
+        border-bottom-right-radius: var(--bs-border-radius-pill) !important;
+        border-bottom-left-radius: var(--bs-border-radius-pill) !important;
+    }
+
+    .rounded-start {
+        border-bottom-left-radius: var(--bs-border-radius) !important;
+        border-top-left-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-start-0 {
+        border-bottom-left-radius: 0 !important;
+        border-top-left-radius: 0 !important;
+    }
+
+    .rounded-start-1 {
+        border-bottom-left-radius: var(--bs-border-radius-sm) !important;
+        border-top-left-radius: var(--bs-border-radius-sm) !important;
+    }
+
+    .rounded-start-2 {
+        border-bottom-left-radius: var(--bs-border-radius) !important;
+        border-top-left-radius: var(--bs-border-radius) !important;
+    }
+
+    .rounded-start-3 {
+        border-bottom-left-radius: var(--bs-border-radius-lg) !important;
+        border-top-left-radius: var(--bs-border-radius-lg) !important;
+    }
+
+    .rounded-start-4 {
+        border-bottom-left-radius: var(--bs-border-radius-xl) !important;
+        border-top-left-radius: var(--bs-border-radius-xl) !important;
+    }
+
+    .rounded-start-5 {
+        border-bottom-left-radius: var(--bs-border-radius-xxl) !important;
+        border-top-left-radius: var(--bs-border-radius-xxl) !important;
+    }
+
+    .rounded-start-circle {
+        border-bottom-left-radius: 50% !important;
+        border-top-left-radius: 50% !important;
+    }
+
+    .rounded-start-pill {
+        border-bottom-left-radius: var(--bs-border-radius-pill) !important;
+        border-top-left-radius: var(--bs-border-radius-pill) !important;
+    }
+
+    .visible {
+        visibility: visible !important;
+    }
+
+    .invisible {
+        visibility: hidden !important;
+    }
+
+    .z-n1 {
+        z-index: -1 !important;
+    }
+
+    .z-0 {
+        z-index: 0 !important;
+    }
+
+    .z-1 {
+        z-index: 1 !important;
+    }
+
+    .z-2 {
+        z-index: 2 !important;
+    }
+
+    .z-3 {
+        z-index: 3 !important;
+    }
+
+    @media (min-width: 576px) {
+        .float-sm-start {
+            float: left !important;
+        }
+
+        .float-sm-end {
+            float: right !important;
+        }
+
+        .float-sm-none {
+            float: none !important;
+        }
+
+        .object-fit-sm-contain {
+            object-fit: contain !important;
+        }
+
+        .object-fit-sm-cover {
+            object-fit: cover !important;
+        }
+
+        .object-fit-sm-fill {
+            object-fit: fill !important;
+        }
+
+        .object-fit-sm-scale {
+            object-fit: scale-down !important;
+        }
+
+        .object-fit-sm-none {
+            object-fit: none !important;
+        }
+
+        .d-sm-inline {
+            display: inline !important;
+        }
+
+        .d-sm-inline-block {
+            display: inline-block !important;
+        }
+
+        .d-sm-block {
+            display: block !important;
+        }
+
+        .d-sm-grid {
+            display: grid !important;
+        }
+
+        .d-sm-inline-grid {
+            display: inline-grid !important;
+        }
+
+        .d-sm-table {
+            display: table !important;
+        }
+
+        .d-sm-table-row {
+            display: table-row !important;
+        }
+
+        .d-sm-table-cell {
+            display: table-cell !important;
+        }
+
+        .d-sm-flex {
+            display: flex !important;
+        }
+
+        .d-sm-inline-flex {
+            display: inline-flex !important;
+        }
+
+        .d-sm-none {
+            display: none !important;
+        }
+
+        .flex-sm-fill {
+            flex: 1 1 auto !important;
+        }
+
+        .flex-sm-row {
+            flex-direction: row !important;
+        }
+
+        .flex-sm-column {
+            flex-direction: column !important;
+        }
+
+        .flex-sm-row-reverse {
+            flex-direction: row-reverse !important;
+        }
+
+        .flex-sm-column-reverse {
+            flex-direction: column-reverse !important;
+        }
+
+        .flex-sm-grow-0 {
+            flex-grow: 0 !important;
+        }
+
+        .flex-sm-grow-1 {
+            flex-grow: 1 !important;
+        }
+
+        .flex-sm-shrink-0 {
+            flex-shrink: 0 !important;
+        }
+
+        .flex-sm-shrink-1 {
+            flex-shrink: 1 !important;
+        }
+
+        .flex-sm-wrap {
+            flex-wrap: wrap !important;
+        }
+
+        .flex-sm-nowrap {
+            flex-wrap: nowrap !important;
+        }
+
+        .flex-sm-wrap-reverse {
+            flex-wrap: wrap-reverse !important;
+        }
+
+        .justify-content-sm-start {
+            justify-content: flex-start !important;
+        }
+
+        .justify-content-sm-end {
+            justify-content: flex-end !important;
+        }
+
+        .justify-content-sm-center {
+            justify-content: center !important;
+        }
+
+        .justify-content-sm-between {
+            justify-content: space-between !important;
+        }
+
+        .justify-content-sm-around {
+            justify-content: space-around !important;
+        }
+
+        .justify-content-sm-evenly {
+            justify-content: space-evenly !important;
+        }
+
+        .align-items-sm-start {
+            align-items: flex-start !important;
+        }
+
+        .align-items-sm-end {
+            align-items: flex-end !important;
+        }
+
+        .align-items-sm-center {
+            align-items: center !important;
+        }
+
+        .align-items-sm-baseline {
+            align-items: baseline !important;
+        }
+
+        .align-items-sm-stretch {
+            align-items: stretch !important;
+        }
+
+        .align-content-sm-start {
+            align-content: flex-start !important;
+        }
+
+        .align-content-sm-end {
+            align-content: flex-end !important;
+        }
+
+        .align-content-sm-center {
+            align-content: center !important;
+        }
+
+        .align-content-sm-between {
+            align-content: space-between !important;
+        }
+
+        .align-content-sm-around {
+            align-content: space-around !important;
+        }
+
+        .align-content-sm-stretch {
+            align-content: stretch !important;
+        }
+
+        .align-self-sm-auto {
+            align-self: auto !important;
+        }
+
+        .align-self-sm-start {
+            align-self: flex-start !important;
+        }
+
+        .align-self-sm-end {
+            align-self: flex-end !important;
+        }
+
+        .align-self-sm-center {
+            align-self: center !important;
+        }
+
+        .align-self-sm-baseline {
+            align-self: baseline !important;
+        }
+
+        .align-self-sm-stretch {
+            align-self: stretch !important;
+        }
+
+        .order-sm-first {
+            order: -1 !important;
+        }
+
+        .order-sm-0 {
+            order: 0 !important;
+        }
+
+        .order-sm-1 {
+            order: 1 !important;
+        }
+
+        .order-sm-2 {
+            order: 2 !important;
+        }
+
+        .order-sm-3 {
+            order: 3 !important;
+        }
+
+        .order-sm-4 {
+            order: 4 !important;
+        }
+
+        .order-sm-5 {
+            order: 5 !important;
+        }
+
+        .order-sm-last {
+            order: 6 !important;
+        }
+
+        .m-sm-0 {
+            margin: 0 !important;
+        }
+
+        .m-sm-1 {
+            margin: 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-right: 0 !important;
+            margin-left: 0 !important;
+        }
+
+        .mx-sm-1 {
+            margin-right: 0.25rem !important;
+            margin-left: 0.25rem !important;
+        }
+
+        .mx-sm-2 {
+            margin-right: 0.5rem !important;
+            margin-left: 0.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: 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-right: 0 !important;
+        }
+
+        .me-sm-1 {
+            margin-right: 0.25rem !important;
+        }
+
+        .me-sm-2 {
+            margin-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ms-sm-1 {
+            margin-left: 0.25rem !important;
+        }
+
+        .ms-sm-2 {
+            margin-left: 0.5rem !important;
+        }
+
+        .ms-sm-3 {
+            margin-left: 1rem !important;
+        }
+
+        .ms-sm-4 {
+            margin-left: 1.5rem !important;
+        }
+
+        .ms-sm-5 {
+            margin-left: 3rem !important;
+        }
+
+        .ms-sm-auto {
+            margin-left: auto !important;
+        }
+
+        .p-sm-0 {
+            padding: 0 !important;
+        }
+
+        .p-sm-1 {
+            padding: 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-right: 0 !important;
+            padding-left: 0 !important;
+        }
+
+        .px-sm-1 {
+            padding-right: 0.25rem !important;
+            padding-left: 0.25rem !important;
+        }
+
+        .px-sm-2 {
+            padding-right: 0.5rem !important;
+            padding-left: 0.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: 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-right: 0 !important;
+        }
+
+        .pe-sm-1 {
+            padding-right: 0.25rem !important;
+        }
+
+        .pe-sm-2 {
+            padding-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ps-sm-1 {
+            padding-left: 0.25rem !important;
+        }
+
+        .ps-sm-2 {
+            padding-left: 0.5rem !important;
+        }
+
+        .ps-sm-3 {
+            padding-left: 1rem !important;
+        }
+
+        .ps-sm-4 {
+            padding-left: 1.5rem !important;
+        }
+
+        .ps-sm-5 {
+            padding-left: 3rem !important;
+        }
+
+        .gap-sm-0 {
+            gap: 0 !important;
+        }
+
+        .gap-sm-1 {
+            gap: 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;
+        }
+
+        .row-gap-sm-0 {
+            row-gap: 0 !important;
+        }
+
+        .row-gap-sm-1 {
+            row-gap: 0.25rem !important;
+        }
+
+        .row-gap-sm-2 {
+            row-gap: 0.5rem !important;
+        }
+
+        .row-gap-sm-3 {
+            row-gap: 1rem !important;
+        }
+
+        .row-gap-sm-4 {
+            row-gap: 1.5rem !important;
+        }
+
+        .row-gap-sm-5 {
+            row-gap: 3rem !important;
+        }
+
+        .column-gap-sm-0 {
+            column-gap: 0 !important;
+        }
+
+        .column-gap-sm-1 {
+            column-gap: 0.25rem !important;
+        }
+
+        .column-gap-sm-2 {
+            column-gap: 0.5rem !important;
+        }
+
+        .column-gap-sm-3 {
+            column-gap: 1rem !important;
+        }
+
+        .column-gap-sm-4 {
+            column-gap: 1.5rem !important;
+        }
+
+        .column-gap-sm-5 {
+            column-gap: 3rem !important;
+        }
+
+        .text-sm-start {
+            text-align: left !important;
+        }
+
+        .text-sm-end {
+            text-align: right !important;
+        }
+
+        .text-sm-center {
+            text-align: center !important;
+        }
+    }
+
+    @media (min-width: 768px) {
+        .float-md-start {
+            float: left !important;
+        }
+
+        .float-md-end {
+            float: right !important;
+        }
+
+        .float-md-none {
+            float: none !important;
+        }
+
+        .object-fit-md-contain {
+            object-fit: contain !important;
+        }
+
+        .object-fit-md-cover {
+            object-fit: cover !important;
+        }
+
+        .object-fit-md-fill {
+            object-fit: fill !important;
+        }
+
+        .object-fit-md-scale {
+            object-fit: scale-down !important;
+        }
+
+        .object-fit-md-none {
+            object-fit: none !important;
+        }
+
+        .d-md-inline {
+            display: inline !important;
+        }
+
+        .d-md-inline-block {
+            display: inline-block !important;
+        }
+
+        .d-md-block {
+            display: block !important;
+        }
+
+        .d-md-grid {
+            display: grid !important;
+        }
+
+        .d-md-inline-grid {
+            display: inline-grid !important;
+        }
+
+        .d-md-table {
+            display: table !important;
+        }
+
+        .d-md-table-row {
+            display: table-row !important;
+        }
+
+        .d-md-table-cell {
+            display: table-cell !important;
+        }
+
+        .d-md-flex {
+            display: flex !important;
+        }
+
+        .d-md-inline-flex {
+            display: inline-flex !important;
+        }
+
+        .d-md-none {
+            display: none !important;
+        }
+
+        .flex-md-fill {
+            flex: 1 1 auto !important;
+        }
+
+        .flex-md-row {
+            flex-direction: row !important;
+        }
+
+        .flex-md-column {
+            flex-direction: column !important;
+        }
+
+        .flex-md-row-reverse {
+            flex-direction: row-reverse !important;
+        }
+
+        .flex-md-column-reverse {
+            flex-direction: column-reverse !important;
+        }
+
+        .flex-md-grow-0 {
+            flex-grow: 0 !important;
+        }
+
+        .flex-md-grow-1 {
+            flex-grow: 1 !important;
+        }
+
+        .flex-md-shrink-0 {
+            flex-shrink: 0 !important;
+        }
+
+        .flex-md-shrink-1 {
+            flex-shrink: 1 !important;
+        }
+
+        .flex-md-wrap {
+            flex-wrap: wrap !important;
+        }
+
+        .flex-md-nowrap {
+            flex-wrap: nowrap !important;
+        }
+
+        .flex-md-wrap-reverse {
+            flex-wrap: wrap-reverse !important;
+        }
+
+        .justify-content-md-start {
+            justify-content: flex-start !important;
+        }
+
+        .justify-content-md-end {
+            justify-content: flex-end !important;
+        }
+
+        .justify-content-md-center {
+            justify-content: center !important;
+        }
+
+        .justify-content-md-between {
+            justify-content: space-between !important;
+        }
+
+        .justify-content-md-around {
+            justify-content: space-around !important;
+        }
+
+        .justify-content-md-evenly {
+            justify-content: space-evenly !important;
+        }
+
+        .align-items-md-start {
+            align-items: flex-start !important;
+        }
+
+        .align-items-md-end {
+            align-items: flex-end !important;
+        }
+
+        .align-items-md-center {
+            align-items: center !important;
+        }
+
+        .align-items-md-baseline {
+            align-items: baseline !important;
+        }
+
+        .align-items-md-stretch {
+            align-items: stretch !important;
+        }
+
+        .align-content-md-start {
+            align-content: flex-start !important;
+        }
+
+        .align-content-md-end {
+            align-content: flex-end !important;
+        }
+
+        .align-content-md-center {
+            align-content: center !important;
+        }
+
+        .align-content-md-between {
+            align-content: space-between !important;
+        }
+
+        .align-content-md-around {
+            align-content: space-around !important;
+        }
+
+        .align-content-md-stretch {
+            align-content: stretch !important;
+        }
+
+        .align-self-md-auto {
+            align-self: auto !important;
+        }
+
+        .align-self-md-start {
+            align-self: flex-start !important;
+        }
+
+        .align-self-md-end {
+            align-self: flex-end !important;
+        }
+
+        .align-self-md-center {
+            align-self: center !important;
+        }
+
+        .align-self-md-baseline {
+            align-self: baseline !important;
+        }
+
+        .align-self-md-stretch {
+            align-self: stretch !important;
+        }
+
+        .order-md-first {
+            order: -1 !important;
+        }
+
+        .order-md-0 {
+            order: 0 !important;
+        }
+
+        .order-md-1 {
+            order: 1 !important;
+        }
+
+        .order-md-2 {
+            order: 2 !important;
+        }
+
+        .order-md-3 {
+            order: 3 !important;
+        }
+
+        .order-md-4 {
+            order: 4 !important;
+        }
+
+        .order-md-5 {
+            order: 5 !important;
+        }
+
+        .order-md-last {
+            order: 6 !important;
+        }
+
+        .m-md-0 {
+            margin: 0 !important;
+        }
+
+        .m-md-1 {
+            margin: 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-right: 0 !important;
+            margin-left: 0 !important;
+        }
+
+        .mx-md-1 {
+            margin-right: 0.25rem !important;
+            margin-left: 0.25rem !important;
+        }
+
+        .mx-md-2 {
+            margin-right: 0.5rem !important;
+            margin-left: 0.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: 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-right: 0 !important;
+        }
+
+        .me-md-1 {
+            margin-right: 0.25rem !important;
+        }
+
+        .me-md-2 {
+            margin-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ms-md-1 {
+            margin-left: 0.25rem !important;
+        }
+
+        .ms-md-2 {
+            margin-left: 0.5rem !important;
+        }
+
+        .ms-md-3 {
+            margin-left: 1rem !important;
+        }
+
+        .ms-md-4 {
+            margin-left: 1.5rem !important;
+        }
+
+        .ms-md-5 {
+            margin-left: 3rem !important;
+        }
+
+        .ms-md-auto {
+            margin-left: auto !important;
+        }
+
+        .p-md-0 {
+            padding: 0 !important;
+        }
+
+        .p-md-1 {
+            padding: 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-right: 0 !important;
+            padding-left: 0 !important;
+        }
+
+        .px-md-1 {
+            padding-right: 0.25rem !important;
+            padding-left: 0.25rem !important;
+        }
+
+        .px-md-2 {
+            padding-right: 0.5rem !important;
+            padding-left: 0.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: 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-right: 0 !important;
+        }
+
+        .pe-md-1 {
+            padding-right: 0.25rem !important;
+        }
+
+        .pe-md-2 {
+            padding-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ps-md-1 {
+            padding-left: 0.25rem !important;
+        }
+
+        .ps-md-2 {
+            padding-left: 0.5rem !important;
+        }
+
+        .ps-md-3 {
+            padding-left: 1rem !important;
+        }
+
+        .ps-md-4 {
+            padding-left: 1.5rem !important;
+        }
+
+        .ps-md-5 {
+            padding-left: 3rem !important;
+        }
+
+        .gap-md-0 {
+            gap: 0 !important;
+        }
+
+        .gap-md-1 {
+            gap: 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;
+        }
+
+        .row-gap-md-0 {
+            row-gap: 0 !important;
+        }
+
+        .row-gap-md-1 {
+            row-gap: 0.25rem !important;
+        }
+
+        .row-gap-md-2 {
+            row-gap: 0.5rem !important;
+        }
+
+        .row-gap-md-3 {
+            row-gap: 1rem !important;
+        }
+
+        .row-gap-md-4 {
+            row-gap: 1.5rem !important;
+        }
+
+        .row-gap-md-5 {
+            row-gap: 3rem !important;
+        }
+
+        .column-gap-md-0 {
+            column-gap: 0 !important;
+        }
+
+        .column-gap-md-1 {
+            column-gap: 0.25rem !important;
+        }
+
+        .column-gap-md-2 {
+            column-gap: 0.5rem !important;
+        }
+
+        .column-gap-md-3 {
+            column-gap: 1rem !important;
+        }
+
+        .column-gap-md-4 {
+            column-gap: 1.5rem !important;
+        }
+
+        .column-gap-md-5 {
+            column-gap: 3rem !important;
+        }
+
+        .text-md-start {
+            text-align: left !important;
+        }
+
+        .text-md-end {
+            text-align: right !important;
+        }
+
+        .text-md-center {
+            text-align: center !important;
+        }
+    }
+
+    @media (min-width: 992px) {
+        .float-lg-start {
+            float: left !important;
+        }
+
+        .float-lg-end {
+            float: right !important;
+        }
+
+        .float-lg-none {
+            float: none !important;
+        }
+
+        .object-fit-lg-contain {
+            object-fit: contain !important;
+        }
+
+        .object-fit-lg-cover {
+            object-fit: cover !important;
+        }
+
+        .object-fit-lg-fill {
+            object-fit: fill !important;
+        }
+
+        .object-fit-lg-scale {
+            object-fit: scale-down !important;
+        }
+
+        .object-fit-lg-none {
+            object-fit: none !important;
+        }
+
+        .d-lg-inline {
+            display: inline !important;
+        }
+
+        .d-lg-inline-block {
+            display: inline-block !important;
+        }
+
+        .d-lg-block {
+            display: block !important;
+        }
+
+        .d-lg-grid {
+            display: grid !important;
+        }
+
+        .d-lg-inline-grid {
+            display: inline-grid !important;
+        }
+
+        .d-lg-table {
+            display: table !important;
+        }
+
+        .d-lg-table-row {
+            display: table-row !important;
+        }
+
+        .d-lg-table-cell {
+            display: table-cell !important;
+        }
+
+        .d-lg-flex {
+            display: flex !important;
+        }
+
+        .d-lg-inline-flex {
+            display: inline-flex !important;
+        }
+
+        .d-lg-none {
+            display: none !important;
+        }
+
+        .flex-lg-fill {
+            flex: 1 1 auto !important;
+        }
+
+        .flex-lg-row {
+            flex-direction: row !important;
+        }
+
+        .flex-lg-column {
+            flex-direction: column !important;
+        }
+
+        .flex-lg-row-reverse {
+            flex-direction: row-reverse !important;
+        }
+
+        .flex-lg-column-reverse {
+            flex-direction: column-reverse !important;
+        }
+
+        .flex-lg-grow-0 {
+            flex-grow: 0 !important;
+        }
+
+        .flex-lg-grow-1 {
+            flex-grow: 1 !important;
+        }
+
+        .flex-lg-shrink-0 {
+            flex-shrink: 0 !important;
+        }
+
+        .flex-lg-shrink-1 {
+            flex-shrink: 1 !important;
+        }
+
+        .flex-lg-wrap {
+            flex-wrap: wrap !important;
+        }
+
+        .flex-lg-nowrap {
+            flex-wrap: nowrap !important;
+        }
+
+        .flex-lg-wrap-reverse {
+            flex-wrap: wrap-reverse !important;
+        }
+
+        .justify-content-lg-start {
+            justify-content: flex-start !important;
+        }
+
+        .justify-content-lg-end {
+            justify-content: flex-end !important;
+        }
+
+        .justify-content-lg-center {
+            justify-content: center !important;
+        }
+
+        .justify-content-lg-between {
+            justify-content: space-between !important;
+        }
+
+        .justify-content-lg-around {
+            justify-content: space-around !important;
+        }
+
+        .justify-content-lg-evenly {
+            justify-content: space-evenly !important;
+        }
+
+        .align-items-lg-start {
+            align-items: flex-start !important;
+        }
+
+        .align-items-lg-end {
+            align-items: flex-end !important;
+        }
+
+        .align-items-lg-center {
+            align-items: center !important;
+        }
+
+        .align-items-lg-baseline {
+            align-items: baseline !important;
+        }
+
+        .align-items-lg-stretch {
+            align-items: stretch !important;
+        }
+
+        .align-content-lg-start {
+            align-content: flex-start !important;
+        }
+
+        .align-content-lg-end {
+            align-content: flex-end !important;
+        }
+
+        .align-content-lg-center {
+            align-content: center !important;
+        }
+
+        .align-content-lg-between {
+            align-content: space-between !important;
+        }
+
+        .align-content-lg-around {
+            align-content: space-around !important;
+        }
+
+        .align-content-lg-stretch {
+            align-content: stretch !important;
+        }
+
+        .align-self-lg-auto {
+            align-self: auto !important;
+        }
+
+        .align-self-lg-start {
+            align-self: flex-start !important;
+        }
+
+        .align-self-lg-end {
+            align-self: flex-end !important;
+        }
+
+        .align-self-lg-center {
+            align-self: center !important;
+        }
+
+        .align-self-lg-baseline {
+            align-self: baseline !important;
+        }
+
+        .align-self-lg-stretch {
+            align-self: stretch !important;
+        }
+
+        .order-lg-first {
+            order: -1 !important;
+        }
+
+        .order-lg-0 {
+            order: 0 !important;
+        }
+
+        .order-lg-1 {
+            order: 1 !important;
+        }
+
+        .order-lg-2 {
+            order: 2 !important;
+        }
+
+        .order-lg-3 {
+            order: 3 !important;
+        }
+
+        .order-lg-4 {
+            order: 4 !important;
+        }
+
+        .order-lg-5 {
+            order: 5 !important;
+        }
+
+        .order-lg-last {
+            order: 6 !important;
+        }
+
+        .m-lg-0 {
+            margin: 0 !important;
+        }
+
+        .m-lg-1 {
+            margin: 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-right: 0 !important;
+            margin-left: 0 !important;
+        }
+
+        .mx-lg-1 {
+            margin-right: 0.25rem !important;
+            margin-left: 0.25rem !important;
+        }
+
+        .mx-lg-2 {
+            margin-right: 0.5rem !important;
+            margin-left: 0.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: 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-right: 0 !important;
+        }
+
+        .me-lg-1 {
+            margin-right: 0.25rem !important;
+        }
+
+        .me-lg-2 {
+            margin-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ms-lg-1 {
+            margin-left: 0.25rem !important;
+        }
+
+        .ms-lg-2 {
+            margin-left: 0.5rem !important;
+        }
+
+        .ms-lg-3 {
+            margin-left: 1rem !important;
+        }
+
+        .ms-lg-4 {
+            margin-left: 1.5rem !important;
+        }
+
+        .ms-lg-5 {
+            margin-left: 3rem !important;
+        }
+
+        .ms-lg-auto {
+            margin-left: auto !important;
+        }
+
+        .p-lg-0 {
+            padding: 0 !important;
+        }
+
+        .p-lg-1 {
+            padding: 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-right: 0 !important;
+            padding-left: 0 !important;
+        }
+
+        .px-lg-1 {
+            padding-right: 0.25rem !important;
+            padding-left: 0.25rem !important;
+        }
+
+        .px-lg-2 {
+            padding-right: 0.5rem !important;
+            padding-left: 0.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: 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-right: 0 !important;
+        }
+
+        .pe-lg-1 {
+            padding-right: 0.25rem !important;
+        }
+
+        .pe-lg-2 {
+            padding-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ps-lg-1 {
+            padding-left: 0.25rem !important;
+        }
+
+        .ps-lg-2 {
+            padding-left: 0.5rem !important;
+        }
+
+        .ps-lg-3 {
+            padding-left: 1rem !important;
+        }
+
+        .ps-lg-4 {
+            padding-left: 1.5rem !important;
+        }
+
+        .ps-lg-5 {
+            padding-left: 3rem !important;
+        }
+
+        .gap-lg-0 {
+            gap: 0 !important;
+        }
+
+        .gap-lg-1 {
+            gap: 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;
+        }
+
+        .row-gap-lg-0 {
+            row-gap: 0 !important;
+        }
+
+        .row-gap-lg-1 {
+            row-gap: 0.25rem !important;
+        }
+
+        .row-gap-lg-2 {
+            row-gap: 0.5rem !important;
+        }
+
+        .row-gap-lg-3 {
+            row-gap: 1rem !important;
+        }
+
+        .row-gap-lg-4 {
+            row-gap: 1.5rem !important;
+        }
+
+        .row-gap-lg-5 {
+            row-gap: 3rem !important;
+        }
+
+        .column-gap-lg-0 {
+            column-gap: 0 !important;
+        }
+
+        .column-gap-lg-1 {
+            column-gap: 0.25rem !important;
+        }
+
+        .column-gap-lg-2 {
+            column-gap: 0.5rem !important;
+        }
+
+        .column-gap-lg-3 {
+            column-gap: 1rem !important;
+        }
+
+        .column-gap-lg-4 {
+            column-gap: 1.5rem !important;
+        }
+
+        .column-gap-lg-5 {
+            column-gap: 3rem !important;
+        }
+
+        .text-lg-start {
+            text-align: left !important;
+        }
+
+        .text-lg-end {
+            text-align: right !important;
+        }
+
+        .text-lg-center {
+            text-align: center !important;
+        }
+    }
+
+    @media (min-width: 1200px) {
+        .float-xl-start {
+            float: left !important;
+        }
+
+        .float-xl-end {
+            float: right !important;
+        }
+
+        .float-xl-none {
+            float: none !important;
+        }
+
+        .object-fit-xl-contain {
+            object-fit: contain !important;
+        }
+
+        .object-fit-xl-cover {
+            object-fit: cover !important;
+        }
+
+        .object-fit-xl-fill {
+            object-fit: fill !important;
+        }
+
+        .object-fit-xl-scale {
+            object-fit: scale-down !important;
+        }
+
+        .object-fit-xl-none {
+            object-fit: none !important;
+        }
+
+        .d-xl-inline {
+            display: inline !important;
+        }
+
+        .d-xl-inline-block {
+            display: inline-block !important;
+        }
+
+        .d-xl-block {
+            display: block !important;
+        }
+
+        .d-xl-grid {
+            display: grid !important;
+        }
+
+        .d-xl-inline-grid {
+            display: inline-grid !important;
+        }
+
+        .d-xl-table {
+            display: table !important;
+        }
+
+        .d-xl-table-row {
+            display: table-row !important;
+        }
+
+        .d-xl-table-cell {
+            display: table-cell !important;
+        }
+
+        .d-xl-flex {
+            display: flex !important;
+        }
+
+        .d-xl-inline-flex {
+            display: inline-flex !important;
+        }
+
+        .d-xl-none {
+            display: none !important;
+        }
+
+        .flex-xl-fill {
+            flex: 1 1 auto !important;
+        }
+
+        .flex-xl-row {
+            flex-direction: row !important;
+        }
+
+        .flex-xl-column {
+            flex-direction: column !important;
+        }
+
+        .flex-xl-row-reverse {
+            flex-direction: row-reverse !important;
+        }
+
+        .flex-xl-column-reverse {
+            flex-direction: column-reverse !important;
+        }
+
+        .flex-xl-grow-0 {
+            flex-grow: 0 !important;
+        }
+
+        .flex-xl-grow-1 {
+            flex-grow: 1 !important;
+        }
+
+        .flex-xl-shrink-0 {
+            flex-shrink: 0 !important;
+        }
+
+        .flex-xl-shrink-1 {
+            flex-shrink: 1 !important;
+        }
+
+        .flex-xl-wrap {
+            flex-wrap: wrap !important;
+        }
+
+        .flex-xl-nowrap {
+            flex-wrap: nowrap !important;
+        }
+
+        .flex-xl-wrap-reverse {
+            flex-wrap: wrap-reverse !important;
+        }
+
+        .justify-content-xl-start {
+            justify-content: flex-start !important;
+        }
+
+        .justify-content-xl-end {
+            justify-content: flex-end !important;
+        }
+
+        .justify-content-xl-center {
+            justify-content: center !important;
+        }
+
+        .justify-content-xl-between {
+            justify-content: space-between !important;
+        }
+
+        .justify-content-xl-around {
+            justify-content: space-around !important;
+        }
+
+        .justify-content-xl-evenly {
+            justify-content: space-evenly !important;
+        }
+
+        .align-items-xl-start {
+            align-items: flex-start !important;
+        }
+
+        .align-items-xl-end {
+            align-items: flex-end !important;
+        }
+
+        .align-items-xl-center {
+            align-items: center !important;
+        }
+
+        .align-items-xl-baseline {
+            align-items: baseline !important;
+        }
+
+        .align-items-xl-stretch {
+            align-items: stretch !important;
+        }
+
+        .align-content-xl-start {
+            align-content: flex-start !important;
+        }
+
+        .align-content-xl-end {
+            align-content: flex-end !important;
+        }
+
+        .align-content-xl-center {
+            align-content: center !important;
+        }
+
+        .align-content-xl-between {
+            align-content: space-between !important;
+        }
+
+        .align-content-xl-around {
+            align-content: space-around !important;
+        }
+
+        .align-content-xl-stretch {
+            align-content: stretch !important;
+        }
+
+        .align-self-xl-auto {
+            align-self: auto !important;
+        }
+
+        .align-self-xl-start {
+            align-self: flex-start !important;
+        }
+
+        .align-self-xl-end {
+            align-self: flex-end !important;
+        }
+
+        .align-self-xl-center {
+            align-self: center !important;
+        }
+
+        .align-self-xl-baseline {
+            align-self: baseline !important;
+        }
+
+        .align-self-xl-stretch {
+            align-self: stretch !important;
+        }
+
+        .order-xl-first {
+            order: -1 !important;
+        }
+
+        .order-xl-0 {
+            order: 0 !important;
+        }
+
+        .order-xl-1 {
+            order: 1 !important;
+        }
+
+        .order-xl-2 {
+            order: 2 !important;
+        }
+
+        .order-xl-3 {
+            order: 3 !important;
+        }
+
+        .order-xl-4 {
+            order: 4 !important;
+        }
+
+        .order-xl-5 {
+            order: 5 !important;
+        }
+
+        .order-xl-last {
+            order: 6 !important;
+        }
+
+        .m-xl-0 {
+            margin: 0 !important;
+        }
+
+        .m-xl-1 {
+            margin: 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-right: 0 !important;
+            margin-left: 0 !important;
+        }
+
+        .mx-xl-1 {
+            margin-right: 0.25rem !important;
+            margin-left: 0.25rem !important;
+        }
+
+        .mx-xl-2 {
+            margin-right: 0.5rem !important;
+            margin-left: 0.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: 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-right: 0 !important;
+        }
+
+        .me-xl-1 {
+            margin-right: 0.25rem !important;
+        }
+
+        .me-xl-2 {
+            margin-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ms-xl-1 {
+            margin-left: 0.25rem !important;
+        }
+
+        .ms-xl-2 {
+            margin-left: 0.5rem !important;
+        }
+
+        .ms-xl-3 {
+            margin-left: 1rem !important;
+        }
+
+        .ms-xl-4 {
+            margin-left: 1.5rem !important;
+        }
+
+        .ms-xl-5 {
+            margin-left: 3rem !important;
+        }
+
+        .ms-xl-auto {
+            margin-left: auto !important;
+        }
+
+        .p-xl-0 {
+            padding: 0 !important;
+        }
+
+        .p-xl-1 {
+            padding: 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-right: 0 !important;
+            padding-left: 0 !important;
+        }
+
+        .px-xl-1 {
+            padding-right: 0.25rem !important;
+            padding-left: 0.25rem !important;
+        }
+
+        .px-xl-2 {
+            padding-right: 0.5rem !important;
+            padding-left: 0.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: 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-right: 0 !important;
+        }
+
+        .pe-xl-1 {
+            padding-right: 0.25rem !important;
+        }
+
+        .pe-xl-2 {
+            padding-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ps-xl-1 {
+            padding-left: 0.25rem !important;
+        }
+
+        .ps-xl-2 {
+            padding-left: 0.5rem !important;
+        }
+
+        .ps-xl-3 {
+            padding-left: 1rem !important;
+        }
+
+        .ps-xl-4 {
+            padding-left: 1.5rem !important;
+        }
+
+        .ps-xl-5 {
+            padding-left: 3rem !important;
+        }
+
+        .gap-xl-0 {
+            gap: 0 !important;
+        }
+
+        .gap-xl-1 {
+            gap: 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;
+        }
+
+        .row-gap-xl-0 {
+            row-gap: 0 !important;
+        }
+
+        .row-gap-xl-1 {
+            row-gap: 0.25rem !important;
+        }
+
+        .row-gap-xl-2 {
+            row-gap: 0.5rem !important;
+        }
+
+        .row-gap-xl-3 {
+            row-gap: 1rem !important;
+        }
+
+        .row-gap-xl-4 {
+            row-gap: 1.5rem !important;
+        }
+
+        .row-gap-xl-5 {
+            row-gap: 3rem !important;
+        }
+
+        .column-gap-xl-0 {
+            column-gap: 0 !important;
+        }
+
+        .column-gap-xl-1 {
+            column-gap: 0.25rem !important;
+        }
+
+        .column-gap-xl-2 {
+            column-gap: 0.5rem !important;
+        }
+
+        .column-gap-xl-3 {
+            column-gap: 1rem !important;
+        }
+
+        .column-gap-xl-4 {
+            column-gap: 1.5rem !important;
+        }
+
+        .column-gap-xl-5 {
+            column-gap: 3rem !important;
+        }
+
+        .text-xl-start {
+            text-align: left !important;
+        }
+
+        .text-xl-end {
+            text-align: right !important;
+        }
+
+        .text-xl-center {
+            text-align: center !important;
+        }
+    }
+
+    @media (min-width: 1400px) {
+        .float-xxl-start {
+            float: left !important;
+        }
+
+        .float-xxl-end {
+            float: right !important;
+        }
+
+        .float-xxl-none {
+            float: none !important;
+        }
+
+        .object-fit-xxl-contain {
+            object-fit: contain !important;
+        }
+
+        .object-fit-xxl-cover {
+            object-fit: cover !important;
+        }
+
+        .object-fit-xxl-fill {
+            object-fit: fill !important;
+        }
+
+        .object-fit-xxl-scale {
+            object-fit: scale-down !important;
+        }
+
+        .object-fit-xxl-none {
+            object-fit: none !important;
+        }
+
+        .d-xxl-inline {
+            display: inline !important;
+        }
+
+        .d-xxl-inline-block {
+            display: inline-block !important;
+        }
+
+        .d-xxl-block {
+            display: block !important;
+        }
+
+        .d-xxl-grid {
+            display: grid !important;
+        }
+
+        .d-xxl-inline-grid {
+            display: inline-grid !important;
+        }
+
+        .d-xxl-table {
+            display: table !important;
+        }
+
+        .d-xxl-table-row {
+            display: table-row !important;
+        }
+
+        .d-xxl-table-cell {
+            display: table-cell !important;
+        }
+
+        .d-xxl-flex {
+            display: flex !important;
+        }
+
+        .d-xxl-inline-flex {
+            display: inline-flex !important;
+        }
+
+        .d-xxl-none {
+            display: none !important;
+        }
+
+        .flex-xxl-fill {
+            flex: 1 1 auto !important;
+        }
+
+        .flex-xxl-row {
+            flex-direction: row !important;
+        }
+
+        .flex-xxl-column {
+            flex-direction: column !important;
+        }
+
+        .flex-xxl-row-reverse {
+            flex-direction: row-reverse !important;
+        }
+
+        .flex-xxl-column-reverse {
+            flex-direction: column-reverse !important;
+        }
+
+        .flex-xxl-grow-0 {
+            flex-grow: 0 !important;
+        }
+
+        .flex-xxl-grow-1 {
+            flex-grow: 1 !important;
+        }
+
+        .flex-xxl-shrink-0 {
+            flex-shrink: 0 !important;
+        }
+
+        .flex-xxl-shrink-1 {
+            flex-shrink: 1 !important;
+        }
+
+        .flex-xxl-wrap {
+            flex-wrap: wrap !important;
+        }
+
+        .flex-xxl-nowrap {
+            flex-wrap: nowrap !important;
+        }
+
+        .flex-xxl-wrap-reverse {
+            flex-wrap: wrap-reverse !important;
+        }
+
+        .justify-content-xxl-start {
+            justify-content: flex-start !important;
+        }
+
+        .justify-content-xxl-end {
+            justify-content: flex-end !important;
+        }
+
+        .justify-content-xxl-center {
+            justify-content: center !important;
+        }
+
+        .justify-content-xxl-between {
+            justify-content: space-between !important;
+        }
+
+        .justify-content-xxl-around {
+            justify-content: space-around !important;
+        }
+
+        .justify-content-xxl-evenly {
+            justify-content: space-evenly !important;
+        }
+
+        .align-items-xxl-start {
+            align-items: flex-start !important;
+        }
+
+        .align-items-xxl-end {
+            align-items: flex-end !important;
+        }
+
+        .align-items-xxl-center {
+            align-items: center !important;
+        }
+
+        .align-items-xxl-baseline {
+            align-items: baseline !important;
+        }
+
+        .align-items-xxl-stretch {
+            align-items: stretch !important;
+        }
+
+        .align-content-xxl-start {
+            align-content: flex-start !important;
+        }
+
+        .align-content-xxl-end {
+            align-content: flex-end !important;
+        }
+
+        .align-content-xxl-center {
+            align-content: center !important;
+        }
+
+        .align-content-xxl-between {
+            align-content: space-between !important;
+        }
+
+        .align-content-xxl-around {
+            align-content: space-around !important;
+        }
+
+        .align-content-xxl-stretch {
+            align-content: stretch !important;
+        }
+
+        .align-self-xxl-auto {
+            align-self: auto !important;
+        }
+
+        .align-self-xxl-start {
+            align-self: flex-start !important;
+        }
+
+        .align-self-xxl-end {
+            align-self: flex-end !important;
+        }
+
+        .align-self-xxl-center {
+            align-self: center !important;
+        }
+
+        .align-self-xxl-baseline {
+            align-self: baseline !important;
+        }
+
+        .align-self-xxl-stretch {
+            align-self: stretch !important;
+        }
+
+        .order-xxl-first {
+            order: -1 !important;
+        }
+
+        .order-xxl-0 {
+            order: 0 !important;
+        }
+
+        .order-xxl-1 {
+            order: 1 !important;
+        }
+
+        .order-xxl-2 {
+            order: 2 !important;
+        }
+
+        .order-xxl-3 {
+            order: 3 !important;
+        }
+
+        .order-xxl-4 {
+            order: 4 !important;
+        }
+
+        .order-xxl-5 {
+            order: 5 !important;
+        }
+
+        .order-xxl-last {
+            order: 6 !important;
+        }
+
+        .m-xxl-0 {
+            margin: 0 !important;
+        }
+
+        .m-xxl-1 {
+            margin: 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-right: 0 !important;
+            margin-left: 0 !important;
+        }
+
+        .mx-xxl-1 {
+            margin-right: 0.25rem !important;
+            margin-left: 0.25rem !important;
+        }
+
+        .mx-xxl-2 {
+            margin-right: 0.5rem !important;
+            margin-left: 0.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: 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-right: 0 !important;
+        }
+
+        .me-xxl-1 {
+            margin-right: 0.25rem !important;
+        }
+
+        .me-xxl-2 {
+            margin-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ms-xxl-1 {
+            margin-left: 0.25rem !important;
+        }
+
+        .ms-xxl-2 {
+            margin-left: 0.5rem !important;
+        }
+
+        .ms-xxl-3 {
+            margin-left: 1rem !important;
+        }
+
+        .ms-xxl-4 {
+            margin-left: 1.5rem !important;
+        }
+
+        .ms-xxl-5 {
+            margin-left: 3rem !important;
+        }
+
+        .ms-xxl-auto {
+            margin-left: auto !important;
+        }
+
+        .p-xxl-0 {
+            padding: 0 !important;
+        }
+
+        .p-xxl-1 {
+            padding: 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-right: 0 !important;
+            padding-left: 0 !important;
+        }
+
+        .px-xxl-1 {
+            padding-right: 0.25rem !important;
+            padding-left: 0.25rem !important;
+        }
+
+        .px-xxl-2 {
+            padding-right: 0.5rem !important;
+            padding-left: 0.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: 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-right: 0 !important;
+        }
+
+        .pe-xxl-1 {
+            padding-right: 0.25rem !important;
+        }
+
+        .pe-xxl-2 {
+            padding-right: 0.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: 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-left: 0 !important;
+        }
+
+        .ps-xxl-1 {
+            padding-left: 0.25rem !important;
+        }
+
+        .ps-xxl-2 {
+            padding-left: 0.5rem !important;
+        }
+
+        .ps-xxl-3 {
+            padding-left: 1rem !important;
+        }
+
+        .ps-xxl-4 {
+            padding-left: 1.5rem !important;
+        }
+
+        .ps-xxl-5 {
+            padding-left: 3rem !important;
+        }
+
+        .gap-xxl-0 {
+            gap: 0 !important;
+        }
+
+        .gap-xxl-1 {
+            gap: 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;
+        }
+
+        .row-gap-xxl-0 {
+            row-gap: 0 !important;
+        }
+
+        .row-gap-xxl-1 {
+            row-gap: 0.25rem !important;
+        }
+
+        .row-gap-xxl-2 {
+            row-gap: 0.5rem !important;
+        }
+
+        .row-gap-xxl-3 {
+            row-gap: 1rem !important;
+        }
+
+        .row-gap-xxl-4 {
+            row-gap: 1.5rem !important;
+        }
+
+        .row-gap-xxl-5 {
+            row-gap: 3rem !important;
+        }
+
+        .column-gap-xxl-0 {
+            column-gap: 0 !important;
+        }
+
+        .column-gap-xxl-1 {
+            column-gap: 0.25rem !important;
+        }
+
+        .column-gap-xxl-2 {
+            column-gap: 0.5rem !important;
+        }
+
+        .column-gap-xxl-3 {
+            column-gap: 1rem !important;
+        }
+
+        .column-gap-xxl-4 {
+            column-gap: 1.5rem !important;
+        }
+
+        .column-gap-xxl-5 {
+            column-gap: 3rem !important;
+        }
+
+        .text-xxl-start {
+            text-align: left !important;
+        }
+
+        .text-xxl-end {
+            text-align: right !important;
+        }
+
+        .text-xxl-center {
+            text-align: center !important;
+        }
+    }
+
+    @media (min-width: 1200px) {
+        .fs-1 {
+            font-size: 2.5rem !important;
+        }
+
+        .fs-2 {
+            font-size: 2rem !important;
+        }
+
+        .fs-3 {
+            font-size: 1.75rem !important;
+        }
+
+        .fs-4 {
+            font-size: 1.5rem !important;
+        }
+    }
+
+    @media print {
+        .d-print-inline {
+            display: inline !important;
+        }
+
+        .d-print-inline-block {
+            display: inline-block !important;
+        }
+
+        .d-print-block {
+            display: block !important;
+        }
+
+        .d-print-grid {
+            display: grid !important;
+        }
+
+        .d-print-inline-grid {
+            display: inline-grid !important;
+        }
+
+        .d-print-table {
+            display: table !important;
+        }
+
+        .d-print-table-row {
+            display: table-row !important;
+        }
+
+        .d-print-table-cell {
+            display: table-cell !important;
+        }
+
+        .d-print-flex {
+            display: flex !important;
+        }
+
+        .d-print-inline-flex {
+            display: inline-flex !important;
+        }
+
+        .d-print-none {
+            display: none !important;
+        }
+    }
+
+    </style>
+    <script src="https://kit.fontawesome.com/d8d5f3840a.js" crossorigin="anonymous"></script>
+</head>
+<body style="background-color: rgb(21, 152, 149); margin-top: auto; margin-bottom: auto;">
+<div id="root">
+    <div class="App" style="overflow: hidden;">
+        <div class="px-0 container-fluid">
+            <nav class="navbar navbar-expand-md navbar-white bg-white">
+                <div class="container">
+                    <a href="http://localhost:3000/home" class="navbar-brand">
+                        <span class="ikona">
+                        <img id="background-img" src="logo.png" width="60" height="60" class=""></span>
+                        <span class="mx-3 ikona"><span class="svetlo">Tour</span><span class="temno">Mate</span></span>
+                    </a>
+                    <button aria-controls="navbarScroll" type="button" aria-label="Toggle navigation"
+                            class="navbar-toggler collapsed"><span class="navbar-toggler-icon"></span></button>
+                    <div class="navbar-collapse collapse" id="navbarScroll">
+                        <div class="ms-auto navbar-nav navbar-nav-scroll">
+                            <a href="http://localhost:3000/home"
+                               data-rr-ui-event-key="/home"
+                               class="m-2 nav-link">Home</a><a
+                                href="http://localhost:3000/login#features" data-rr-ui-event-key="#features"
+                                class="m-2 nav-link">Features</a><a href="http://localhost:3000/login#pricing"
+                                                                    data-rr-ui-event-key="#pricing"
+                                                                    class="m-2 nav-link">
+                            <button type="button" class="btn btn-primary"></button>
+                        </a>
+                            <button type="button" class="m-2 btn btn-primary btn-md"
+                                    style="background-color: rgb(21, 152, 149);">
+                                <svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 16 16"
+                                     height="1.5em" width="1.5em" xmlns="http://www.w3.org/2000/svg">
+                                    <path d="M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3Zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z"></path>
+                                </svg>
+                                Најави се
+                            </button>
+                        </div>
+                    </div>
+                </div>
+            </nav>
+            <br></div>
+        <div class="mt-5 container">
+            <div class="container" style="width: 40%;">
+                <div class="rounded-5 m-5 my-auto mx-auto py-5 px-5 container"
+                     style="background-color: rgb(255, 255, 255);">
+                    <form class="" action="/login" method="post">
+                        <div class="mb-3"><label class="form-label" for="formBasicEmail">Е-адреса</label><input
+                                placeholder="Enter email" name="username" type="email" id="formBasicEmail"
+                                class="form-control" value="darsov2@gmail.com"><small class="text-muted form-text">Вашите
+                            податоци никогаш нема да бидат споделени.</small></div>
+                        <div class="mb-3"><label class="form-label" for="formBasicPassword">Лозинка</label><input
+                                placeholder="Password" name="password" type="password" id="formBasicPassword"
+                                class="form-control" value="orelorel123"></div>
+                        <div class="mb-3">
+                            <div class="form-check"><input type="checkbox" id="formBasicCheckbox"
+                                                           class="form-check-input"><label title=""
+                                                                                           for="formBasicCheckbox"
+                                                                                           class="form-check-label">Check
+                                me out</label></div>
+                            <div class="row px-5 my-3 align-self-center">
+                                <div class="col">
+                                    <a href="/oauth2/authorization/facebook">
+                                        <i class="fa-brands fa-facebook" style="color: rgb(21, 152, 149); font-size: 1.8em"></i>
+                                    </a>
+                                </div>
+                                <div class="col">
+                                    <a href="/oauth2/authorization/google">
+                                        <i class="fa-brands fa-google" style="color: rgb(21, 152, 149); font-size: 1.8em"></i>
+                                    </a>
+                                </div>
+                                <div class="col">
+                                    <a href="/oauth2/authorization/github">
+                                        <i class="fa-brands fa-github" style="color: rgb(21, 152, 149); font-size: 1.8em"></i>
+                                    </a>
+                                </div>
+                            </div>
+                        </div>
+                        <a href="http://localhost:3000/register" style="text-decoration: none;"><small
+                                class="text-muted form-text">Регистрирај се</small></a>
+                        <div class="my-1">
+                            <button type="submit" class="btn btn-primary btn-md"
+                                    style="background-color: rgb(21, 152, 149);"><span class="ikona my-1"><svg
+                                    stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024"
+                                    height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path
+                                    d="M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM540 701v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 1 1 56 0zm152-237H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224z"></path></svg></span><span
+                                    class="ikona mx-3">Најави се</span></button>
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+</body>
+</html>
